<|start_filename|>xdocs/api/html/axutil__array__list_8h.html<|end_filename|>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html><head><meta http-equiv="Content-Type" content="text/html;charset=UTF-8">
<title>Axis2/C: axutil_array_list.h File Reference</title>
<link href="doxygen.css" rel="stylesheet" type="text/css">
<link href="tabs.css" rel="stylesheet" type="text/css">
</head><body>
<!-- Generated by Doxygen 1.5.3 -->
<div class="tabs">
  <ul>
    <li><a href="index.html"><span>Main&nbsp;Page</span></a></li>
    <li><a href="modules.html"><span>Modules</span></a></li>
    <li><a href="annotated.html"><span>Classes</span></a></li>
    <li class="current"><a href="files.html"><span>Files</span></a></li>
    <li><a href="dirs.html"><span>Directories</span></a></li>
    <li><a href="pages.html"><span>Related&nbsp;Pages</span></a></li>
    <li><a href="examples.html"><span>Examples</span></a></li>
    <li>
      <form action="search.php" method="get">
        <table cellspacing="0" cellpadding="0" border="0">
          <tr>
            <td><label>&nbsp;<u>S</u>earch&nbsp;for&nbsp;</label></td>
            <td><input type="text" name="query" value="" size="20" accesskey="s"/></td>
          </tr>
        </table>
      </form>
    </li>
  </ul>
</div>
<div class="nav">
<a class="el" href="dir_f60961de8e5edc3b2658ef023e959e45.html">deploy</a>&nbsp;&raquo&nbsp;<a class="el" href="dir_6b4e91e54b7316b376882a6402adbf44.html">include</a>&nbsp;&raquo&nbsp;<a class="el" href="dir_df3a7695d5a9e696f30b948b566829e7.html">axis2-1.6.0</a></div>
<h1>axutil_array_list.h File Reference</h1>Axis2 array_list interface. <a href="#_details">More...</a>
<p>
<code>#include &lt;axutil_utils_defines.h&gt;</code><br>
<code>#include &lt;<a class="el" href="axutil__env_8h-source.html">axutil_env.h</a>&gt;</code><br>

<p>
<a href="axutil__array__list_8h-source.html">Go to the source code of this file.</a><table border="0" cellpadding="0" cellspacing="0">
<tr><td></td></tr>
<tr><td colspan="2"><br><h2>Typedefs</h2></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top">typedef struct <br>
axutil_array_list&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__axutil__array__list.html#g1a6a89777db876cfa0cc86787b7be6a0">axutil_array_list_t</a></td></tr>

<tr><td colspan="2"><br><h2>Functions</h2></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top">AXIS2_EXTERN <br>
<a class="el" href="group__axutil__array__list.html#g1a6a89777db876cfa0cc86787b7be6a0">axutil_array_list_t</a> *&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__axutil__array__list.html#g97d190815f1d8ab2045c203ebd92919b">axutil_array_list_create</a> (const <a class="el" href="structaxutil__env.html">axutil_env_t</a> *env, int capacity)</td></tr>

<tr><td class="memItemLeft" nowrap align="right" valign="top">AXIS2_EXTERN void&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__axutil__array__list.html#gf649de5177ea73a4e2e39c38af79e62f">axutil_array_list_free_void_arg</a> (void *array_list, const <a class="el" href="structaxutil__env.html">axutil_env_t</a> *env)</td></tr>

<tr><td class="memItemLeft" nowrap align="right" valign="top">AXIS2_EXTERN <br>
axis2_status_t&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__axutil__array__list.html#g07cd8d75ecc51f53224af4b6793dcde7">axutil_array_list_ensure_capacity</a> (struct axutil_array_list *array_list, const <a class="el" href="structaxutil__env.html">axutil_env_t</a> *env, int min_capacity)</td></tr>

<tr><td class="memItemLeft" nowrap align="right" valign="top">AXIS2_EXTERN int&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__axutil__array__list.html#g89efc3fe773e2655f1884121a97273f3">axutil_array_list_size</a> (struct axutil_array_list *array_list, const <a class="el" href="structaxutil__env.html">axutil_env_t</a> *env)</td></tr>

<tr><td class="memItemLeft" nowrap align="right" valign="top">AXIS2_EXTERN axis2_bool_t&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__axutil__array__list.html#g3ed8b5b9d4a0a4e76e4c55d92a307a0d">axutil_array_list_is_empty</a> (struct axutil_array_list *array_list, const <a class="el" href="structaxutil__env.html">axutil_env_t</a> *env)</td></tr>

<tr><td class="memItemLeft" nowrap align="right" valign="top">AXIS2_EXTERN axis2_bool_t&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__axutil__array__list.html#g7a0aa68c089a2905ed506213aba40578">axutil_array_list_contains</a> (struct axutil_array_list *array_list, const <a class="el" href="structaxutil__env.html">axutil_env_t</a> *env, void *e)</td></tr>

<tr><td class="memItemLeft" nowrap align="right" valign="top">AXIS2_EXTERN int&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__axutil__array__list.html#gb539c683dea5713f8388e131e686ad28">axutil_array_list_index_of</a> (struct axutil_array_list *array_list, const <a class="el" href="structaxutil__env.html">axutil_env_t</a> *env, void *e)</td></tr>

<tr><td class="memItemLeft" nowrap align="right" valign="top">AXIS2_EXTERN void *&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__axutil__array__list.html#gb6e54fa2917ddc0128e98a3bb0adcfad">axutil_array_list_get</a> (struct axutil_array_list *array_list, const <a class="el" href="structaxutil__env.html">axutil_env_t</a> *env, int index)</td></tr>

<tr><td class="memItemLeft" nowrap align="right" valign="top">AXIS2_EXTERN void *&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__axutil__array__list.html#g77177f8cd9a95ec0bedeec6906352395">axutil_array_list_set</a> (struct axutil_array_list *array_list, const <a class="el" href="structaxutil__env.html">axutil_env_t</a> *env, int index, void *e)</td></tr>

<tr><td class="memItemLeft" nowrap align="right" valign="top">AXIS2_EXTERN <br>
axis2_status_t&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__axutil__array__list.html#g507c7dbb9fe09bbca571739e64ff9835">axutil_array_list_add</a> (struct axutil_array_list *array_list, const <a class="el" href="structaxutil__env.html">axutil_env_t</a> *env, const void *e)</td></tr>

<tr><td class="memItemLeft" nowrap align="right" valign="top">AXIS2_EXTERN <br>
axis2_status_t&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__axutil__array__list.html#g6c5f7a93a8d3e7e8ed2eebadd05a59f6">axutil_array_list_add_at</a> (struct axutil_array_list *array_list, const <a class="el" href="structaxutil__env.html">axutil_env_t</a> *env, const int index, const void *e)</td></tr>

<tr><td class="memItemLeft" nowrap align="right" valign="top">AXIS2_EXTERN void *&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__axutil__array__list.html#g2aefd638d987a77684c95d3d49250c9a">axutil_array_list_remove</a> (struct axutil_array_list *array_list, const <a class="el" href="structaxutil__env.html">axutil_env_t</a> *env, int index)</td></tr>

<tr><td class="memItemLeft" nowrap align="right" valign="top">AXIS2_EXTERN axis2_bool_t&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__axutil__array__list.html#g7e79d235403a8cc6cf5dcf93e8c79dc1">axutil_array_list_check_bound_inclusive</a> (struct axutil_array_list *array_list, const <a class="el" href="structaxutil__env.html">axutil_env_t</a> *env, int index)</td></tr>

<tr><td class="memItemLeft" nowrap align="right" valign="top">AXIS2_EXTERN axis2_bool_t&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__axutil__array__list.html#gdcfecde9d78409f5ff53607d756e3c45">axutil_array_list_check_bound_exclusive</a> (struct axutil_array_list *array_list, const <a class="el" href="structaxutil__env.html">axutil_env_t</a> *env, int index)</td></tr>

<tr><td class="memItemLeft" nowrap align="right" valign="top">AXIS2_EXTERN void&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__axutil__array__list.html#g549e9d4e6c502650ea76d0134551130e">axutil_array_list_free</a> (struct axutil_array_list *array_list, const <a class="el" href="structaxutil__env.html">axutil_env_t</a> *env)</td></tr>

</table>
<hr><a name="_details"></a><h2>Detailed Description</h2>
Axis2 array_list interface. 
<p>
<hr size="1"><address style="text-align: right;"><small>Generated on Fri Apr 17 11:49:43 2009 for Axis2/C by&nbsp;
<a href="http://www.doxygen.org/index.html">
<img src="doxygen.png" alt="doxygen" align="middle" border="0"></a> 1.5.3 </small></address>
</body>
</html>


<|start_filename|>test/core/addr/test_addr.c<|end_filename|>

/*
 * 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.
 */

#include <axis2_msg_info_headers.h>
#include <axutil_env.h>
#include <axutil_allocator.h>
#include <axis2_endpoint_ref.h>
#include <stdio.h>

int
axis2_test_msg_info_headers(
    )
{
    axis2_endpoint_ref_t *to = NULL;
    axis2_endpoint_ref_t *from = NULL;
    axis2_endpoint_ref_t *reply_to = NULL;
    axis2_endpoint_ref_t *fault_to = NULL;
    axis2_endpoint_ref_t *axis2_endpoint_ref = NULL;
    axis2_status_t status = AXIS2_FAILURE;
    axis2_msg_info_headers_t *axis2_msg_info_headers = NULL;
    axutil_allocator_t *allocator = axutil_allocator_init(NULL);
    const axutil_env_t *env = axutil_env_create(allocator);
    const axis2_char_t *action = "test action";
    const axis2_char_t *get_action = NULL;
    to = axis2_endpoint_ref_create(env, "to");
    from = axis2_endpoint_ref_create(env, "from");
    reply_to = axis2_endpoint_ref_create(env, "reply to");
    fault_to = axis2_endpoint_ref_create(env, "fault to");

    axis2_msg_info_headers = axis2_msg_info_headers_create(env, NULL, action);
    if (axis2_msg_info_headers)
        printf("SUCCESS axis2_msg_info_headers_create\n");
    else
    {
        printf("ERROR AXIS2_MSG_INFO_HEADERS_CREATE\n");
        return -1;
    }

    status = axis2_msg_info_headers_set_to(axis2_msg_info_headers, env, to);

    if (status == AXIS2_SUCCESS)
        printf("SUCCESS axis2_msg_info_headers_set_to\n");
    else
    {
        printf("ERROR axis2_msg_info_headers_set_to");
        return -1;
    }

    axis2_endpoint_ref =
        axis2_msg_info_headers_get_to(axis2_msg_info_headers, env);

    if (axis2_endpoint_ref)
        printf("SUCCESS axis2_msg_info_headers_get_to\n");
    else
    {
        printf("ERROR axis2_msg_info_headers_get_to\n");
        return -1;
    }

    status = AXIS2_FAILURE;
    status = axis2_msg_info_headers_set_from(axis2_msg_info_headers, env, from);

    if (status)
        printf("SUCCESS axis2_msg_info_headers_set_from\n");
    else
    {
        printf("ERROR axis2_msg_info_headers_set_from\n");
        return -1;
    }

    axis2_endpoint_ref = NULL;
    axis2_endpoint_ref =
        axis2_msg_info_headers_get_from(axis2_msg_info_headers, env);

    if (axis2_endpoint_ref)
        printf("SUCCESS axis2_msg_info_headers_get_from\n");
    else
    {
        printf("ERROR axis2_msg_info_headers_get_from\n");
        return -1;
    }

    axis2_endpoint_ref = NULL;
    axis2_endpoint_ref =
        axis2_msg_info_headers_get_reply_to(axis2_msg_info_headers, env);

    if (status)
        printf("SUCCESS axis2_msg_info_headers_get_reply_to\n");
    else
    {
        printf("ERROR axis2_msg_info_headers_get_reply_to\n");
        return -1;
    }

    status = AXIS2_FAILURE;
    status =
        axis2_msg_info_headers_set_reply_to(axis2_msg_info_headers, env,
                                            reply_to);

    if (status)
        printf("SUCCESS axis2_msg_info_headers_set_reply_to\n");
    else
    {
        printf("ERROR axis2_msg_info_headers_set_reply_to\n");
        return -1;
    }

    status = AXIS2_FAILURE;
    status =
        axis2_msg_info_headers_set_fault_to(axis2_msg_info_headers, env,
                                            fault_to);
    if (status)
        printf("SUCCESS axis2_msg_info_headers_set_fault_to\n");
    else
    {
        printf("ERROR axis2_msg_info_headers_set_fault_to\n");
        return -1;
    }

    axis2_endpoint_ref = NULL;
    axis2_endpoint_ref =
        axis2_msg_info_headers_get_fault_to(axis2_msg_info_headers, env);
    if (axis2_endpoint_ref)
        printf("SUCCESS axis2_msg_info_headers_get_fault_to\n");
    else
    {
        printf("ERROR axis2_msg_info_headers_get_fault_to\n");
        return -1;
    }

    get_action = axis2_msg_info_headers_get_action(axis2_msg_info_headers, env);
    if (get_action)
        printf("SUCCESS axis2_msg_info_headers_get_action\n");
    else
    {
        printf("ERROR axis2_msg_info_headers_get_action\n");
        return -1;
    }

    status = AXIS2_FAILURE;
    status =
        axis2_msg_info_headers_set_action(axis2_msg_info_headers, env, action);
    if (status)
        printf("SUCCESS axis2_msg_info_headers_set_action\n");
    else
    {
        printf("ERROR axis2_msg_info_headers_set_action\n");
    }

    status = AXIS2_FAILURE;
    /* status = axis2_msg_info_headers_free(axis2_msg_info_headers, env); */
    if (status)
        printf("SUCCESS axis2_msg_info_headers_free\n");
    else
    {
        printf("ERROR axis2_msg_info_headers_free\n");
    }
    return 0;
}

int
main(
    )
{
    axis2_test_msg_info_headers();
    return 0;
}


<|start_filename|>xdocs/api/html/group__axis2__engine.html<|end_filename|>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html><head><meta http-equiv="Content-Type" content="text/html;charset=UTF-8">
<title>Axis2/C: engine</title>
<link href="doxygen.css" rel="stylesheet" type="text/css">
<link href="tabs.css" rel="stylesheet" type="text/css">
</head><body>
<!-- Generated by Doxygen 1.5.3 -->
<div class="tabs">
  <ul>
    <li><a href="index.html"><span>Main&nbsp;Page</span></a></li>
    <li><a href="modules.html"><span>Modules</span></a></li>
    <li><a href="annotated.html"><span>Classes</span></a></li>
    <li><a href="files.html"><span>Files</span></a></li>
    <li><a href="dirs.html"><span>Directories</span></a></li>
    <li><a href="pages.html"><span>Related&nbsp;Pages</span></a></li>
    <li><a href="examples.html"><span>Examples</span></a></li>
    <li>
      <form action="search.php" method="get">
        <table cellspacing="0" cellpadding="0" border="0">
          <tr>
            <td><label>&nbsp;<u>S</u>earch&nbsp;for&nbsp;</label></td>
            <td><input type="text" name="query" value="" size="20" accesskey="s"/></td>
          </tr>
        </table>
      </form>
    </li>
  </ul>
</div>
<h1>engine</h1><table border="0" cellpadding="0" cellspacing="0">
<tr><td></td></tr>
<tr><td colspan="2"><br><h2>Files</h2></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top">file &nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="axis2__engine_8h.html">axis2_engine.h</a></td></tr>

<tr><td colspan="2"><br><h2>Modules</h2></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top">&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__axis2__config.html">configuration</a></td></tr>

<tr><td class="memItemLeft" nowrap align="right" valign="top">&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__axis2__disp.html">dispatcher</a></td></tr>

<tr><td class="memItemLeft" nowrap align="right" valign="top">&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__axis2__phase.html">phases</a></td></tr>

<tr><td class="memItemLeft" nowrap align="right" valign="top">&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__axis2__phase__meta.html">phase meta data</a></td></tr>

<tr><td colspan="2"><br><h2>Typedefs</h2></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top">typedef struct <br>
axis2_engine&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__axis2__engine.html#g9e253706c74ca12c9674c3714861fe74">axis2_engine_t</a></td></tr>

<tr><td colspan="2"><br><h2>Functions</h2></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top">AXIS2_EXTERN <br>
axis2_status_t&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__axis2__engine.html#g7a9ad14546e8c132d3a5ea9b14206b51">axis2_engine_send</a> (<a class="el" href="group__axis2__engine.html#g9e253706c74ca12c9674c3714861fe74">axis2_engine_t</a> *engine, const <a class="el" href="structaxutil__env.html">axutil_env_t</a> *env, <a class="el" href="group__axis2__msg__ctx.html#g160acae289ac39cb49fa625ffd88e410">axis2_msg_ctx_t</a> *msg_ctx)</td></tr>

<tr><td class="memItemLeft" nowrap align="right" valign="top">AXIS2_EXTERN <br>
axis2_status_t&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__axis2__engine.html#g1ed2e678409c629544ba0f11f7c5fe8f">axis2_engine_receive</a> (<a class="el" href="group__axis2__engine.html#g9e253706c74ca12c9674c3714861fe74">axis2_engine_t</a> *engine, const <a class="el" href="structaxutil__env.html">axutil_env_t</a> *env, <a class="el" href="group__axis2__msg__ctx.html#g160acae289ac39cb49fa625ffd88e410">axis2_msg_ctx_t</a> *msg_ctx)</td></tr>

<tr><td class="memItemLeft" nowrap align="right" valign="top">AXIS2_EXTERN <br>
axis2_status_t&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__axis2__engine.html#g6d77e1d59b04cb68e36581e946946a2d">axis2_engine_send_fault</a> (<a class="el" href="group__axis2__engine.html#g9e253706c74ca12c9674c3714861fe74">axis2_engine_t</a> *engine, const <a class="el" href="structaxutil__env.html">axutil_env_t</a> *env, <a class="el" href="group__axis2__msg__ctx.html#g160acae289ac39cb49fa625ffd88e410">axis2_msg_ctx_t</a> *msg_ctx)</td></tr>

<tr><td class="memItemLeft" nowrap align="right" valign="top">AXIS2_EXTERN <br>
axis2_status_t&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__axis2__engine.html#gc42896a93f7288df6e7a10ceb9e31e31">axis2_engine_receive_fault</a> (<a class="el" href="group__axis2__engine.html#g9e253706c74ca12c9674c3714861fe74">axis2_engine_t</a> *engine, const <a class="el" href="structaxutil__env.html">axutil_env_t</a> *env, <a class="el" href="group__axis2__msg__ctx.html#g160acae289ac39cb49fa625ffd88e410">axis2_msg_ctx_t</a> *msg_ctx)</td></tr>

<tr><td class="memItemLeft" nowrap align="right" valign="top">AXIS2_EXTERN <br>
<a class="el" href="group__axis2__msg__ctx.html#g160acae289ac39cb49fa625ffd88e410">axis2_msg_ctx_t</a> *&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__axis2__engine.html#g048a9c624d618b3c705d41ae77bab9d0">axis2_engine_create_fault_msg_ctx</a> (<a class="el" href="group__axis2__engine.html#g9e253706c74ca12c9674c3714861fe74">axis2_engine_t</a> *engine, const <a class="el" href="structaxutil__env.html">axutil_env_t</a> *env, <a class="el" href="group__axis2__msg__ctx.html#g160acae289ac39cb49fa625ffd88e410">axis2_msg_ctx_t</a> *processing_context, const axis2_char_t *code_value, const axis2_char_t *reason_text)</td></tr>

<tr><td class="memItemLeft" nowrap align="right" valign="top">AXIS2_EXTERN <br>
axis2_status_t&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__axis2__engine.html#g95c41e8b17352fcd0df40a1af8952e28">axis2_engine_invoke_phases</a> (<a class="el" href="group__axis2__engine.html#g9e253706c74ca12c9674c3714861fe74">axis2_engine_t</a> *engine, const <a class="el" href="structaxutil__env.html">axutil_env_t</a> *env, <a class="el" href="group__axutil__array__list.html#g1a6a89777db876cfa0cc86787b7be6a0">axutil_array_list_t</a> *phases, <a class="el" href="group__axis2__msg__ctx.html#g160acae289ac39cb49fa625ffd88e410">axis2_msg_ctx_t</a> *msg_ctx)</td></tr>

<tr><td class="memItemLeft" nowrap align="right" valign="top">AXIS2_EXTERN <br>
axis2_status_t&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__axis2__engine.html#ga9d62410babeb061b9bf300d6a837ca2">axis2_engine_resume_invocation_phases</a> (<a class="el" href="group__axis2__engine.html#g9e253706c74ca12c9674c3714861fe74">axis2_engine_t</a> *engine, const <a class="el" href="structaxutil__env.html">axutil_env_t</a> *env, <a class="el" href="group__axutil__array__list.html#g1a6a89777db876cfa0cc86787b7be6a0">axutil_array_list_t</a> *phases, <a class="el" href="group__axis2__msg__ctx.html#g160acae289ac39cb49fa625ffd88e410">axis2_msg_ctx_t</a> *msg_ctx)</td></tr>

<tr><td class="memItemLeft" nowrap align="right" valign="top">AXIS2_EXTERN const <br>
axis2_char_t *&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__axis2__engine.html#g4233d6e24f32c5d59fe7bd507a91395c">axis2_engine_get_sender_fault_code</a> (const <a class="el" href="group__axis2__engine.html#g9e253706c74ca12c9674c3714861fe74">axis2_engine_t</a> *engine, const <a class="el" href="structaxutil__env.html">axutil_env_t</a> *env, const axis2_char_t *soap_namespace)</td></tr>

<tr><td class="memItemLeft" nowrap align="right" valign="top">AXIS2_EXTERN const <br>
axis2_char_t *&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__axis2__engine.html#g750a760536008dcec26bff80a891197e">axis2_engine_get_receiver_fault_code</a> (const <a class="el" href="group__axis2__engine.html#g9e253706c74ca12c9674c3714861fe74">axis2_engine_t</a> *engine, const <a class="el" href="structaxutil__env.html">axutil_env_t</a> *env, const axis2_char_t *soap_namespace)</td></tr>

<tr><td class="memItemLeft" nowrap align="right" valign="top">AXIS2_EXTERN void&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__axis2__engine.html#g7ca747905b4bb17877e94a44aad3887d">axis2_engine_free</a> (<a class="el" href="group__axis2__engine.html#g9e253706c74ca12c9674c3714861fe74">axis2_engine_t</a> *engine, const <a class="el" href="structaxutil__env.html">axutil_env_t</a> *env)</td></tr>

<tr><td class="memItemLeft" nowrap align="right" valign="top">AXIS2_EXTERN <br>
axis2_status_t&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__axis2__engine.html#g845f6ddb96bf1b9f02ed6ad24a1c3653">axis2_engine_resume_receive</a> (<a class="el" href="group__axis2__engine.html#g9e253706c74ca12c9674c3714861fe74">axis2_engine_t</a> *engine, const <a class="el" href="structaxutil__env.html">axutil_env_t</a> *env, <a class="el" href="group__axis2__msg__ctx.html#g160acae289ac39cb49fa625ffd88e410">axis2_msg_ctx_t</a> *msg_ctx)</td></tr>

<tr><td class="memItemLeft" nowrap align="right" valign="top">AXIS2_EXTERN <br>
axis2_status_t&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__axis2__engine.html#gba1a56931bc5ad105c7059c2af3cd59b">axis2_engine_resume_send</a> (<a class="el" href="group__axis2__engine.html#g9e253706c74ca12c9674c3714861fe74">axis2_engine_t</a> *engine, const <a class="el" href="structaxutil__env.html">axutil_env_t</a> *env, <a class="el" href="group__axis2__msg__ctx.html#g160acae289ac39cb49fa625ffd88e410">axis2_msg_ctx_t</a> *msg_ctx)</td></tr>

<tr><td class="memItemLeft" nowrap align="right" valign="top">AXIS2_EXTERN <br>
<a class="el" href="group__axis2__engine.html#g9e253706c74ca12c9674c3714861fe74">axis2_engine_t</a> *&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__axis2__engine.html#ged13c1a9fe02067b8678f4d1c8a412a5">axis2_engine_create</a> (const <a class="el" href="structaxutil__env.html">axutil_env_t</a> *env, <a class="el" href="group__axis2__conf__ctx.html#gab2f89df328e63d4f9fa3a4d035d18f0">axis2_conf_ctx_t</a> *conf_ctx)</td></tr>

</table>
<hr><a name="_details"></a><h2>Detailed Description</h2>
engine has the send and receive functions that is the heart when providing and consuming services. In Axis2 SOAP engine architecture, all the others parts are build around the concept of the engine. There is only one engine for both the server side and the client side, and the engine is not aware of if it is invoked as an client or a service. engine supports both synchronous and asynchronous messaging modes based on send and receive functions. <hr><h2>Typedef Documentation</h2>
<a class="anchor" name="g9e253706c74ca12c9674c3714861fe74"></a><!-- doxytag: member="axis2_engine.h::axis2_engine_t" ref="g9e253706c74ca12c9674c3714861fe74" args="" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">typedef struct axis2_engine <a class="el" href="group__axis2__engine.html#g9e253706c74ca12c9674c3714861fe74">axis2_engine_t</a>          </td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
Type name for struct axis2_engine 
</div>
</div><p>
<hr><h2>Function Documentation</h2>
<a class="anchor" name="ged13c1a9fe02067b8678f4d1c8a412a5"></a><!-- doxytag: member="axis2_engine.h::axis2_engine_create" ref="ged13c1a9fe02067b8678f4d1c8a412a5" args="(const axutil_env_t *env, axis2_conf_ctx_t *conf_ctx)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">AXIS2_EXTERN <a class="el" href="group__axis2__engine.html#g9e253706c74ca12c9674c3714861fe74">axis2_engine_t</a>* axis2_engine_create           </td>
          <td>(</td>
          <td class="paramtype">const <a class="el" href="structaxutil__env.html">axutil_env_t</a> *&nbsp;</td>
          <td class="paramname"> <em>env</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype"><a class="el" href="group__axis2__conf__ctx.html#gab2f89df328e63d4f9fa3a4d035d18f0">axis2_conf_ctx_t</a> *&nbsp;</td>
          <td class="paramname"> <em>conf_ctx</em></td><td>&nbsp;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td><td width="100%"></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
Creates en engine struct instance. <dl compact><dt><b>Parameters:</b></dt><dd>
  <table border="0" cellspacing="2" cellpadding="0">
    <tr><td valign="top"></td><td valign="top"><em>env</em>&nbsp;</td><td>pointer to environment struct </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>conf_ctx</em>&nbsp;</td><td>pointer to configuration context struct </td></tr>
  </table>
</dl>
<dl class="return" compact><dt><b>Returns:</b></dt><dd>pointer to newly created engine struct </dd></dl>

</div>
</div><p>
<a class="anchor" name="g048a9c624d618b3c705d41ae77bab9d0"></a><!-- doxytag: member="axis2_engine.h::axis2_engine_create_fault_msg_ctx" ref="g048a9c624d618b3c705d41ae77bab9d0" args="(axis2_engine_t *engine, const axutil_env_t *env, axis2_msg_ctx_t *processing_context, const axis2_char_t *code_value, const axis2_char_t *reason_text)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">AXIS2_EXTERN <a class="el" href="group__axis2__msg__ctx.html#g160acae289ac39cb49fa625ffd88e410">axis2_msg_ctx_t</a>* axis2_engine_create_fault_msg_ctx           </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="group__axis2__engine.html#g9e253706c74ca12c9674c3714861fe74">axis2_engine_t</a> *&nbsp;</td>
          <td class="paramname"> <em>engine</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const <a class="el" href="structaxutil__env.html">axutil_env_t</a> *&nbsp;</td>
          <td class="paramname"> <em>env</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype"><a class="el" href="group__axis2__msg__ctx.html#g160acae289ac39cb49fa625ffd88e410">axis2_msg_ctx_t</a> *&nbsp;</td>
          <td class="paramname"> <em>processing_context</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const axis2_char_t *&nbsp;</td>
          <td class="paramname"> <em>code_value</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const axis2_char_t *&nbsp;</td>
          <td class="paramname"> <em>reason_text</em></td><td>&nbsp;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td><td width="100%"></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
Creates a message context that represents the fault state based on current processing state. <dl compact><dt><b>Parameters:</b></dt><dd>
  <table border="0" cellspacing="2" cellpadding="0">
    <tr><td valign="top"></td><td valign="top"><em>engine</em>&nbsp;</td><td>pointer to engine </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>env</em>&nbsp;</td><td>pointer to environment struct </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>processing_context</em>&nbsp;</td><td>pointer to message context representing current processing context </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>code_value</em>&nbsp;</td><td>pointer to a string containing fault code </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>reason_text</em>&nbsp;</td><td>pointer to a string containing reason of the fault </td></tr>
  </table>
</dl>
<dl class="return" compact><dt><b>Returns:</b></dt><dd>pointer to message context representing the fault state </dd></dl>

</div>
</div><p>
<a class="anchor" name="g7ca747905b4bb17877e94a44aad3887d"></a><!-- doxytag: member="axis2_engine.h::axis2_engine_free" ref="g7ca747905b4bb17877e94a44aad3887d" args="(axis2_engine_t *engine, const axutil_env_t *env)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">AXIS2_EXTERN void axis2_engine_free           </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="group__axis2__engine.html#g9e253706c74ca12c9674c3714861fe74">axis2_engine_t</a> *&nbsp;</td>
          <td class="paramname"> <em>engine</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const <a class="el" href="structaxutil__env.html">axutil_env_t</a> *&nbsp;</td>
          <td class="paramname"> <em>env</em></td><td>&nbsp;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td><td width="100%"></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
Frees engine struct. <dl compact><dt><b>Parameters:</b></dt><dd>
  <table border="0" cellspacing="2" cellpadding="0">
    <tr><td valign="top"></td><td valign="top"><em>engine</em>&nbsp;</td><td>pointer to engine </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>env</em>&nbsp;</td><td>pointer to environment struct </td></tr>
  </table>
</dl>
<dl class="return" compact><dt><b>Returns:</b></dt><dd>AXIS2_SUCCESS on success, else AXIS2_FAILURE </dd></dl>

</div>
</div><p>
<a class="anchor" name="g750a760536008dcec26bff80a891197e"></a><!-- doxytag: member="axis2_engine.h::axis2_engine_get_receiver_fault_code" ref="g750a760536008dcec26bff80a891197e" args="(const axis2_engine_t *engine, const axutil_env_t *env, const axis2_char_t *soap_namespace)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">AXIS2_EXTERN const axis2_char_t* axis2_engine_get_receiver_fault_code           </td>
          <td>(</td>
          <td class="paramtype">const <a class="el" href="group__axis2__engine.html#g9e253706c74ca12c9674c3714861fe74">axis2_engine_t</a> *&nbsp;</td>
          <td class="paramname"> <em>engine</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const <a class="el" href="structaxutil__env.html">axutil_env_t</a> *&nbsp;</td>
          <td class="paramname"> <em>env</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const axis2_char_t *&nbsp;</td>
          <td class="paramname"> <em>soap_namespace</em></td><td>&nbsp;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td><td width="100%"></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
Gets receiver's SOAP fault code. <dl compact><dt><b>Parameters:</b></dt><dd>
  <table border="0" cellspacing="2" cellpadding="0">
    <tr><td valign="top"></td><td valign="top"><em>engine</em>&nbsp;</td><td>pointer to engine </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>env</em>&nbsp;</td><td>pointer to environment struct </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>soap_namespace</em>&nbsp;</td><td>pointer to soap namespace </td></tr>
  </table>
</dl>

</div>
</div><p>
<a class="anchor" name="g4233d6e24f32c5d59fe7bd507a91395c"></a><!-- doxytag: member="axis2_engine.h::axis2_engine_get_sender_fault_code" ref="g4233d6e24f32c5d59fe7bd507a91395c" args="(const axis2_engine_t *engine, const axutil_env_t *env, const axis2_char_t *soap_namespace)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">AXIS2_EXTERN const axis2_char_t* axis2_engine_get_sender_fault_code           </td>
          <td>(</td>
          <td class="paramtype">const <a class="el" href="group__axis2__engine.html#g9e253706c74ca12c9674c3714861fe74">axis2_engine_t</a> *&nbsp;</td>
          <td class="paramname"> <em>engine</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const <a class="el" href="structaxutil__env.html">axutil_env_t</a> *&nbsp;</td>
          <td class="paramname"> <em>env</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const axis2_char_t *&nbsp;</td>
          <td class="paramname"> <em>soap_namespace</em></td><td>&nbsp;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td><td width="100%"></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
Gets sender's SOAP fault code. <dl compact><dt><b>Parameters:</b></dt><dd>
  <table border="0" cellspacing="2" cellpadding="0">
    <tr><td valign="top"></td><td valign="top"><em>engine</em>&nbsp;</td><td>pointer to engine </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>env</em>&nbsp;</td><td>pointer to environment struct </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>soap_namespace</em>&nbsp;</td><td>pointer to SOAP namespace </td></tr>
  </table>
</dl>
<dl class="return" compact><dt><b>Returns:</b></dt><dd>pointer to SOAP fault code string </dd></dl>

</div>
</div><p>
<a class="anchor" name="g95c41e8b17352fcd0df40a1af8952e28"></a><!-- doxytag: member="axis2_engine.h::axis2_engine_invoke_phases" ref="g95c41e8b17352fcd0df40a1af8952e28" args="(axis2_engine_t *engine, const axutil_env_t *env, axutil_array_list_t *phases, axis2_msg_ctx_t *msg_ctx)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">AXIS2_EXTERN axis2_status_t axis2_engine_invoke_phases           </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="group__axis2__engine.html#g9e253706c74ca12c9674c3714861fe74">axis2_engine_t</a> *&nbsp;</td>
          <td class="paramname"> <em>engine</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const <a class="el" href="structaxutil__env.html">axutil_env_t</a> *&nbsp;</td>
          <td class="paramname"> <em>env</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype"><a class="el" href="group__axutil__array__list.html#g1a6a89777db876cfa0cc86787b7be6a0">axutil_array_list_t</a> *&nbsp;</td>
          <td class="paramname"> <em>phases</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype"><a class="el" href="group__axis2__msg__ctx.html#g160acae289ac39cb49fa625ffd88e410">axis2_msg_ctx_t</a> *&nbsp;</td>
          <td class="paramname"> <em>msg_ctx</em></td><td>&nbsp;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td><td width="100%"></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
Invokes the phases in the given array list of phases. The list of phases could be representing one of the flows. The two possible flows are in flow and out flow. Both of those flows can also have fault related representations, in fault flow and out fault flow. Invoking a phase triggers the invocation of handlers the phase contain. <dl compact><dt><b>Parameters:</b></dt><dd>
  <table border="0" cellspacing="2" cellpadding="0">
    <tr><td valign="top"></td><td valign="top"><em>engine</em>&nbsp;</td><td>pointer to engine </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>env</em>&nbsp;</td><td>pointer to environment struct </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>phases</em>&nbsp;</td><td>pointer to phases </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>msg_ctx</em>&nbsp;</td><td>pointer to message context containing current state </td></tr>
  </table>
</dl>
<dl class="return" compact><dt><b>Returns:</b></dt><dd>AXIS2_SUCCESS on success, else AXIS2_FAILURE </dd></dl>

</div>
</div><p>
<a class="anchor" name="g1ed2e678409c629544ba0f11f7c5fe8f"></a><!-- doxytag: member="axis2_engine.h::axis2_engine_receive" ref="g1ed2e678409c629544ba0f11f7c5fe8f" args="(axis2_engine_t *engine, const axutil_env_t *env, axis2_msg_ctx_t *msg_ctx)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">AXIS2_EXTERN axis2_status_t axis2_engine_receive           </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="group__axis2__engine.html#g9e253706c74ca12c9674c3714861fe74">axis2_engine_t</a> *&nbsp;</td>
          <td class="paramname"> <em>engine</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const <a class="el" href="structaxutil__env.html">axutil_env_t</a> *&nbsp;</td>
          <td class="paramname"> <em>env</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype"><a class="el" href="group__axis2__msg__ctx.html#g160acae289ac39cb49fa625ffd88e410">axis2_msg_ctx_t</a> *&nbsp;</td>
          <td class="paramname"> <em>msg_ctx</em></td><td>&nbsp;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td><td width="100%"></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
This methods represents the in flow of the Axis engine, both at the server side as well as the client side. In this function, the execution chain is created using the phases of the in flow. All handlers at each in flow phase, which are ordered in the deployment time are invoked in sequence here. <dl compact><dt><b>Parameters:</b></dt><dd>
  <table border="0" cellspacing="2" cellpadding="0">
    <tr><td valign="top"></td><td valign="top"><em>engine</em>&nbsp;</td><td>pointer to engine </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>env</em>&nbsp;</td><td>pointer to environment struct </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>msg_ctx</em>&nbsp;</td><td>pointer to message context representing current state that is used in receiving message </td></tr>
  </table>
</dl>
<dl class="return" compact><dt><b>Returns:</b></dt><dd>AXIS2_SUCCESS on success, else AXIS2_FAILURE </dd></dl>

</div>
</div><p>
<a class="anchor" name="gc42896a93f7288df6e7a10ceb9e31e31"></a><!-- doxytag: member="axis2_engine.h::axis2_engine_receive_fault" ref="gc42896a93f7288df6e7a10ceb9e31e31" args="(axis2_engine_t *engine, const axutil_env_t *env, axis2_msg_ctx_t *msg_ctx)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">AXIS2_EXTERN axis2_status_t axis2_engine_receive_fault           </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="group__axis2__engine.html#g9e253706c74ca12c9674c3714861fe74">axis2_engine_t</a> *&nbsp;</td>
          <td class="paramname"> <em>engine</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const <a class="el" href="structaxutil__env.html">axutil_env_t</a> *&nbsp;</td>
          <td class="paramname"> <em>env</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype"><a class="el" href="group__axis2__msg__ctx.html#g160acae289ac39cb49fa625ffd88e410">axis2_msg_ctx_t</a> *&nbsp;</td>
          <td class="paramname"> <em>msg_ctx</em></td><td>&nbsp;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td><td width="100%"></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
This is invoked when a SOAP fault is received. <dl compact><dt><b>Parameters:</b></dt><dd>
  <table border="0" cellspacing="2" cellpadding="0">
    <tr><td valign="top"></td><td valign="top"><em>engine</em>&nbsp;</td><td>pointer to engine </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>env</em>&nbsp;</td><td>pointer to environment struct </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>msg_ctx</em>&nbsp;</td><td>pointer to message context representing that contains the details of receive state </td></tr>
  </table>
</dl>
<dl class="return" compact><dt><b>Returns:</b></dt><dd>AXIS2_SUCCESS on success, else AXIS2_FAILURE </dd></dl>

</div>
</div><p>
<a class="anchor" name="ga9d62410babeb061b9bf300d6a837ca2"></a><!-- doxytag: member="axis2_engine.h::axis2_engine_resume_invocation_phases" ref="ga9d62410babeb061b9bf300d6a837ca2" args="(axis2_engine_t *engine, const axutil_env_t *env, axutil_array_list_t *phases, axis2_msg_ctx_t *msg_ctx)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">AXIS2_EXTERN axis2_status_t axis2_engine_resume_invocation_phases           </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="group__axis2__engine.html#g9e253706c74ca12c9674c3714861fe74">axis2_engine_t</a> *&nbsp;</td>
          <td class="paramname"> <em>engine</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const <a class="el" href="structaxutil__env.html">axutil_env_t</a> *&nbsp;</td>
          <td class="paramname"> <em>env</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype"><a class="el" href="group__axutil__array__list.html#g1a6a89777db876cfa0cc86787b7be6a0">axutil_array_list_t</a> *&nbsp;</td>
          <td class="paramname"> <em>phases</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype"><a class="el" href="group__axis2__msg__ctx.html#g160acae289ac39cb49fa625ffd88e410">axis2_msg_ctx_t</a> *&nbsp;</td>
          <td class="paramname"> <em>msg_ctx</em></td><td>&nbsp;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td><td width="100%"></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
Resumes phase invocation. While invoking the phases, one of the handlers in any phase could determine to pause the invocation. Often pausing happens to wait till some state is reached or some task is complete. Once paused, the invocation has to be resumed using this function, which will resume the invocation from the paused handler in the paused phase and will continue till it is paused again or it completes invoking all the remaining handlers in the remaining phases. <dl compact><dt><b>Parameters:</b></dt><dd>
  <table border="0" cellspacing="2" cellpadding="0">
    <tr><td valign="top"></td><td valign="top"><em>engine</em>&nbsp;</td><td>pointer to engine </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>env</em>&nbsp;</td><td>pointer to environment struct </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>phases</em>&nbsp;</td><td>pointer to phases </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>msg_ctx</em>&nbsp;</td><td>pointer to message context containing current paused state </td></tr>
  </table>
</dl>
<dl class="return" compact><dt><b>Returns:</b></dt><dd>AXIS2_SUCCESS on success, else AXIS2_FAILURE </dd></dl>

</div>
</div><p>
<a class="anchor" name="g845f6ddb96bf1b9f02ed6ad24a1c3653"></a><!-- doxytag: member="axis2_engine.h::axis2_engine_resume_receive" ref="g845f6ddb96bf1b9f02ed6ad24a1c3653" args="(axis2_engine_t *engine, const axutil_env_t *env, axis2_msg_ctx_t *msg_ctx)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">AXIS2_EXTERN axis2_status_t axis2_engine_resume_receive           </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="group__axis2__engine.html#g9e253706c74ca12c9674c3714861fe74">axis2_engine_t</a> *&nbsp;</td>
          <td class="paramname"> <em>engine</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const <a class="el" href="structaxutil__env.html">axutil_env_t</a> *&nbsp;</td>
          <td class="paramname"> <em>env</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype"><a class="el" href="group__axis2__msg__ctx.html#g160acae289ac39cb49fa625ffd88e410">axis2_msg_ctx_t</a> *&nbsp;</td>
          <td class="paramname"> <em>msg_ctx</em></td><td>&nbsp;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td><td width="100%"></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
Resumes receive operation. It could be the case that receive was paused by one of the in flow handlers. In such a situation, this method could be used to resume the receive operation. <dl compact><dt><b>Parameters:</b></dt><dd>
  <table border="0" cellspacing="2" cellpadding="0">
    <tr><td valign="top"></td><td valign="top"><em>engine</em>&nbsp;</td><td>pointer to engine </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>env</em>&nbsp;</td><td>pointer to environment struct </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>msg_ctx</em>&nbsp;</td><td>pointer to message context </td></tr>
  </table>
</dl>
<dl class="return" compact><dt><b>Returns:</b></dt><dd>AXIS2_SUCCESS on success, else AXIS2_FAILURE </dd></dl>

</div>
</div><p>
<a class="anchor" name="gba1a56931bc5ad105c7059c2af3cd59b"></a><!-- doxytag: member="axis2_engine.h::axis2_engine_resume_send" ref="gba1a56931bc5ad105c7059c2af3cd59b" args="(axis2_engine_t *engine, const axutil_env_t *env, axis2_msg_ctx_t *msg_ctx)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">AXIS2_EXTERN axis2_status_t axis2_engine_resume_send           </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="group__axis2__engine.html#g9e253706c74ca12c9674c3714861fe74">axis2_engine_t</a> *&nbsp;</td>
          <td class="paramname"> <em>engine</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const <a class="el" href="structaxutil__env.html">axutil_env_t</a> *&nbsp;</td>
          <td class="paramname"> <em>env</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype"><a class="el" href="group__axis2__msg__ctx.html#g160acae289ac39cb49fa625ffd88e410">axis2_msg_ctx_t</a> *&nbsp;</td>
          <td class="paramname"> <em>msg_ctx</em></td><td>&nbsp;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td><td width="100%"></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
Resumes send operation. It could be the case that send was paused by one of the out flow handlers. In such a situation, this method could be used to resume the send operation. <dl compact><dt><b>Parameters:</b></dt><dd>
  <table border="0" cellspacing="2" cellpadding="0">
    <tr><td valign="top"></td><td valign="top"><em>engine</em>&nbsp;</td><td>pointer to engine </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>env</em>&nbsp;</td><td>pointer to environment struct </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>msg_ctx</em>&nbsp;</td><td>pointer to message context </td></tr>
  </table>
</dl>
<dl class="return" compact><dt><b>Returns:</b></dt><dd>AXIS2_SUCCESS on success, else AXIS2_FAILURE </dd></dl>

</div>
</div><p>
<a class="anchor" name="g7a9ad14546e8c132d3a5ea9b14206b51"></a><!-- doxytag: member="axis2_engine.h::axis2_engine_send" ref="g7a9ad14546e8c132d3a5ea9b14206b51" args="(axis2_engine_t *engine, const axutil_env_t *env, axis2_msg_ctx_t *msg_ctx)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">AXIS2_EXTERN axis2_status_t axis2_engine_send           </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="group__axis2__engine.html#g9e253706c74ca12c9674c3714861fe74">axis2_engine_t</a> *&nbsp;</td>
          <td class="paramname"> <em>engine</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const <a class="el" href="structaxutil__env.html">axutil_env_t</a> *&nbsp;</td>
          <td class="paramname"> <em>env</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype"><a class="el" href="group__axis2__msg__ctx.html#g160acae289ac39cb49fa625ffd88e410">axis2_msg_ctx_t</a> *&nbsp;</td>
          <td class="paramname"> <em>msg_ctx</em></td><td>&nbsp;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td><td width="100%"></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
This methods represents the out flow of the Axis engine both at the server side as well as the client side. In this function, the execution chain is created using the phases of the out flow. All handlers at each out flow phase, which are ordered in the deployment time are invoked in sequence here. <dl compact><dt><b>Parameters:</b></dt><dd>
  <table border="0" cellspacing="2" cellpadding="0">
    <tr><td valign="top"></td><td valign="top"><em>engine</em>&nbsp;</td><td>pointer to engine </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>env</em>&nbsp;</td><td>pointer to environment struct </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>msg_ctx</em>&nbsp;</td><td>pointer to message context representing current state that is used when sending message </td></tr>
  </table>
</dl>
<dl class="return" compact><dt><b>Returns:</b></dt><dd>AXIS2_SUCCESS on success, else AXIS2_FAILURE </dd></dl>

</div>
</div><p>
<a class="anchor" name="g6d77e1d59b04cb68e36581e946946a2d"></a><!-- doxytag: member="axis2_engine.h::axis2_engine_send_fault" ref="g6d77e1d59b04cb68e36581e946946a2d" args="(axis2_engine_t *engine, const axutil_env_t *env, axis2_msg_ctx_t *msg_ctx)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">AXIS2_EXTERN axis2_status_t axis2_engine_send_fault           </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="group__axis2__engine.html#g9e253706c74ca12c9674c3714861fe74">axis2_engine_t</a> *&nbsp;</td>
          <td class="paramname"> <em>engine</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const <a class="el" href="structaxutil__env.html">axutil_env_t</a> *&nbsp;</td>
          <td class="paramname"> <em>env</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype"><a class="el" href="group__axis2__msg__ctx.html#g160acae289ac39cb49fa625ffd88e410">axis2_msg_ctx_t</a> *&nbsp;</td>
          <td class="paramname"> <em>msg_ctx</em></td><td>&nbsp;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td><td width="100%"></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
Sends a SOAP fault. <dl compact><dt><b>Parameters:</b></dt><dd>
  <table border="0" cellspacing="2" cellpadding="0">
    <tr><td valign="top"></td><td valign="top"><em>engine</em>&nbsp;</td><td>pointer to engine </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>env</em>&nbsp;</td><td>pointer to environment struct </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>msg_ctx</em>&nbsp;</td><td>pointer to message context that contains details of fault state </td></tr>
  </table>
</dl>
<dl class="return" compact><dt><b>Returns:</b></dt><dd>AXIS2_SUCCESS on success, else AXIS2_FAILURE </dd></dl>

</div>
</div><p>
<hr size="1"><address style="text-align: right;"><small>Generated on Fri Apr 17 11:49:44 2009 for Axis2/C by&nbsp;
<a href="http://www.doxygen.org/index.html">
<img src="doxygen.png" alt="doxygen" align="middle" border="0"></a> 1.5.3 </small></address>
</body>
</html>


<|start_filename|>xdocs/api/html/group__axis2__description.html<|end_filename|>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html><head><meta http-equiv="Content-Type" content="text/html;charset=UTF-8">
<title>Axis2/C: description</title>
<link href="doxygen.css" rel="stylesheet" type="text/css">
<link href="tabs.css" rel="stylesheet" type="text/css">
</head><body>
<!-- Generated by Doxygen 1.5.3 -->
<div class="tabs">
  <ul>
    <li><a href="index.html"><span>Main&nbsp;Page</span></a></li>
    <li><a href="modules.html"><span>Modules</span></a></li>
    <li><a href="annotated.html"><span>Classes</span></a></li>
    <li><a href="files.html"><span>Files</span></a></li>
    <li><a href="dirs.html"><span>Directories</span></a></li>
    <li><a href="pages.html"><span>Related&nbsp;Pages</span></a></li>
    <li><a href="examples.html"><span>Examples</span></a></li>
    <li>
      <form action="search.php" method="get">
        <table cellspacing="0" cellpadding="0" border="0">
          <tr>
            <td><label>&nbsp;<u>S</u>earch&nbsp;for&nbsp;</label></td>
            <td><input type="text" name="query" value="" size="20" accesskey="s"/></td>
          </tr>
        </table>
      </form>
    </li>
  </ul>
</div>
<h1>description<br>
<small>
[<a class="el" href="group__axis2__desc.html">description</a>]</small>
</h1><table border="0" cellpadding="0" cellspacing="0">
<tr><td></td></tr>
<tr><td colspan="2"><br><h2>Files</h2></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top">file &nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="axis2__desc_8h.html">axis2_desc.h</a></td></tr>

<tr><td colspan="2"><br><h2>Typedefs</h2></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top">typedef struct axis2_desc&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__axis2__description.html#g9bbf771ae43a8364c5f453c7077f0f1e">axis2_desc_t</a></td></tr>

<tr><td colspan="2"><br><h2>Functions</h2></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top">AXIS2_EXTERN <br>
<a class="el" href="group__axis2__description.html#g9bbf771ae43a8364c5f453c7077f0f1e">axis2_desc_t</a> *&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__axis2__description.html#ge7a0b8d3cff8a247692c220fc7272117">axis2_desc_create</a> (const <a class="el" href="structaxutil__env.html">axutil_env_t</a> *env)</td></tr>

<tr><td class="memItemLeft" nowrap align="right" valign="top">AXIS2_EXTERN void&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__axis2__description.html#gd72218caf033deeecd16ebf8240dd286">axis2_desc_free</a> (<a class="el" href="group__axis2__description.html#g9bbf771ae43a8364c5f453c7077f0f1e">axis2_desc_t</a> *desc, const <a class="el" href="structaxutil__env.html">axutil_env_t</a> *env)</td></tr>

<tr><td class="memItemLeft" nowrap align="right" valign="top">AXIS2_EXTERN <br>
axis2_status_t&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__axis2__description.html#gd87c1a63197a588dc75066ea80bd2bae">axis2_desc_add_param</a> (<a class="el" href="group__axis2__description.html#g9bbf771ae43a8364c5f453c7077f0f1e">axis2_desc_t</a> *desc, const <a class="el" href="structaxutil__env.html">axutil_env_t</a> *env, axutil_param_t *param)</td></tr>

<tr><td class="memItemLeft" nowrap align="right" valign="top">AXIS2_EXTERN <br>
axutil_param_t *&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__axis2__description.html#g6d7eb35ea7f0dd0a82bc47324a92bc0b">axis2_desc_get_param</a> (const <a class="el" href="group__axis2__description.html#g9bbf771ae43a8364c5f453c7077f0f1e">axis2_desc_t</a> *desc, const <a class="el" href="structaxutil__env.html">axutil_env_t</a> *env, const axis2_char_t *param_name)</td></tr>

<tr><td class="memItemLeft" nowrap align="right" valign="top">AXIS2_EXTERN <br>
<a class="el" href="group__axutil__array__list.html#g1a6a89777db876cfa0cc86787b7be6a0">axutil_array_list_t</a> *&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__axis2__description.html#g512aaa44dd670d0ed3365033b1459e53">axis2_desc_get_all_params</a> (const <a class="el" href="group__axis2__description.html#g9bbf771ae43a8364c5f453c7077f0f1e">axis2_desc_t</a> *desc, const <a class="el" href="structaxutil__env.html">axutil_env_t</a> *env)</td></tr>

<tr><td class="memItemLeft" nowrap align="right" valign="top">AXIS2_EXTERN axis2_bool_t&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__axis2__description.html#gdbc1f8ca75485da47fb76f148e794336">axis2_desc_is_param_locked</a> (const <a class="el" href="group__axis2__description.html#g9bbf771ae43a8364c5f453c7077f0f1e">axis2_desc_t</a> *desc, const <a class="el" href="structaxutil__env.html">axutil_env_t</a> *env, const axis2_char_t *param_name)</td></tr>

<tr><td class="memItemLeft" nowrap align="right" valign="top">AXIS2_EXTERN <br>
axis2_status_t&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__axis2__description.html#g8cdc3537ca1820de45ba467eec1ce8c9">axis2_desc_add_child</a> (const <a class="el" href="group__axis2__description.html#g9bbf771ae43a8364c5f453c7077f0f1e">axis2_desc_t</a> *desc, const <a class="el" href="structaxutil__env.html">axutil_env_t</a> *env, const axis2_char_t *key, const struct axis2_msg *child)</td></tr>

<tr><td class="memItemLeft" nowrap align="right" valign="top">AXIS2_EXTERN <br>
<a class="el" href="group__axutil__hash.html#gb2d7d14db2de92a101573f44421ac12a">axutil_hash_t</a> *&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__axis2__description.html#g078b2cf3aba1fca7468666905d8c0a4f">axis2_desc_get_all_children</a> (const <a class="el" href="group__axis2__description.html#g9bbf771ae43a8364c5f453c7077f0f1e">axis2_desc_t</a> *desc, const <a class="el" href="structaxutil__env.html">axutil_env_t</a> *env)</td></tr>

<tr><td class="memItemLeft" nowrap align="right" valign="top">AXIS2_EXTERN void *&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__axis2__description.html#g55e705da0e6458ad6dd435087052b266">axis2_desc_get_child</a> (const <a class="el" href="group__axis2__description.html#g9bbf771ae43a8364c5f453c7077f0f1e">axis2_desc_t</a> *desc, const <a class="el" href="structaxutil__env.html">axutil_env_t</a> *env, const axis2_char_t *key)</td></tr>

<tr><td class="memItemLeft" nowrap align="right" valign="top">AXIS2_EXTERN <br>
axis2_status_t&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__axis2__description.html#g36c19818ab4b074242cc72c3f427e686">axis2_desc_remove_child</a> (const <a class="el" href="group__axis2__description.html#g9bbf771ae43a8364c5f453c7077f0f1e">axis2_desc_t</a> *desc, const <a class="el" href="structaxutil__env.html">axutil_env_t</a> *env, const axis2_char_t *key)</td></tr>

<tr><td class="memItemLeft" nowrap align="right" valign="top">AXIS2_EXTERN <br>
axis2_status_t&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__axis2__description.html#g3847e0acbaa726663410a42ddead9448">axis2_desc_set_parent</a> (<a class="el" href="group__axis2__description.html#g9bbf771ae43a8364c5f453c7077f0f1e">axis2_desc_t</a> *desc, const <a class="el" href="structaxutil__env.html">axutil_env_t</a> *env, <a class="el" href="group__axis2__description.html#g9bbf771ae43a8364c5f453c7077f0f1e">axis2_desc_t</a> *parent)</td></tr>

<tr><td class="memItemLeft" nowrap align="right" valign="top">AXIS2_EXTERN <br>
<a class="el" href="group__axis2__description.html#g9bbf771ae43a8364c5f453c7077f0f1e">axis2_desc_t</a> *&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__axis2__description.html#g99cb434d37bf69b9edb0396825694041">axis2_desc_get_parent</a> (const <a class="el" href="group__axis2__description.html#g9bbf771ae43a8364c5f453c7077f0f1e">axis2_desc_t</a> *desc, const <a class="el" href="structaxutil__env.html">axutil_env_t</a> *env)</td></tr>

<tr><td class="memItemLeft" nowrap align="right" valign="top">AXIS2_EXTERN <br>
axis2_status_t&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__axis2__description.html#gf57219b0bfcd05648d8d6ab574807951">axis2_desc_set_policy_include</a> (<a class="el" href="group__axis2__description.html#g9bbf771ae43a8364c5f453c7077f0f1e">axis2_desc_t</a> *desc, const <a class="el" href="structaxutil__env.html">axutil_env_t</a> *env, struct axis2_policy_include *policy_include)</td></tr>

<tr><td class="memItemLeft" nowrap align="right" valign="top">AXIS2_EXTERN struct <br>
axis2_policy_include *&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__axis2__description.html#gfb2c12d56fbfa672cf4f577c19aed3af">axis2_desc_get_policy_include</a> (<a class="el" href="group__axis2__description.html#g9bbf771ae43a8364c5f453c7077f0f1e">axis2_desc_t</a> *desc, const <a class="el" href="structaxutil__env.html">axutil_env_t</a> *env)</td></tr>

</table>
<hr><a name="_details"></a><h2>Detailed Description</h2>
Base struct of description hierarchy. Encapsulates common data and functions of the description hierarchy. <hr><h2>Typedef Documentation</h2>
<a class="anchor" name="g9bbf771ae43a8364c5f453c7077f0f1e"></a><!-- doxytag: member="axis2_desc.h::axis2_desc_t" ref="g9bbf771ae43a8364c5f453c7077f0f1e" args="" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">typedef struct axis2_desc <a class="el" href="group__axis2__description.html#g9bbf771ae43a8364c5f453c7077f0f1e">axis2_desc_t</a>          </td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
Type name of struct axis2_desc 
</div>
</div><p>
<hr><h2>Function Documentation</h2>
<a class="anchor" name="g8cdc3537ca1820de45ba467eec1ce8c9"></a><!-- doxytag: member="axis2_desc.h::axis2_desc_add_child" ref="g8cdc3537ca1820de45ba467eec1ce8c9" args="(const axis2_desc_t *desc, const axutil_env_t *env, const axis2_char_t *key, const struct axis2_msg *child)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">AXIS2_EXTERN axis2_status_t axis2_desc_add_child           </td>
          <td>(</td>
          <td class="paramtype">const <a class="el" href="group__axis2__description.html#g9bbf771ae43a8364c5f453c7077f0f1e">axis2_desc_t</a> *&nbsp;</td>
          <td class="paramname"> <em>desc</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const <a class="el" href="structaxutil__env.html">axutil_env_t</a> *&nbsp;</td>
          <td class="paramname"> <em>env</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const axis2_char_t *&nbsp;</td>
          <td class="paramname"> <em>key</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const struct axis2_msg *&nbsp;</td>
          <td class="paramname"> <em>child</em></td><td>&nbsp;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td><td width="100%"></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
Adds child to the description. The type of children is based on the level of the description hierarchy. As an example, service has children of type operation, service group has children of type service <dl compact><dt><b>Parameters:</b></dt><dd>
  <table border="0" cellspacing="2" cellpadding="0">
    <tr><td valign="top"></td><td valign="top"><em>desc</em>&nbsp;</td><td>pointer to description </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>env</em>&nbsp;</td><td>pointer to environment struct </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>key</em>&nbsp;</td><td>key with which the child is to be added </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>child</em>&nbsp;</td><td>child to be added </td></tr>
  </table>
</dl>
<dl class="return" compact><dt><b>Returns:</b></dt><dd>AXIS2_SUCCESS on success, else AXIS2_FAILURE </dd></dl>

</div>
</div><p>
<a class="anchor" name="gd87c1a63197a588dc75066ea80bd2bae"></a><!-- doxytag: member="axis2_desc.h::axis2_desc_add_param" ref="gd87c1a63197a588dc75066ea80bd2bae" args="(axis2_desc_t *desc, const axutil_env_t *env, axutil_param_t *param)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">AXIS2_EXTERN axis2_status_t axis2_desc_add_param           </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="group__axis2__description.html#g9bbf771ae43a8364c5f453c7077f0f1e">axis2_desc_t</a> *&nbsp;</td>
          <td class="paramname"> <em>desc</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const <a class="el" href="structaxutil__env.html">axutil_env_t</a> *&nbsp;</td>
          <td class="paramname"> <em>env</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">axutil_param_t *&nbsp;</td>
          <td class="paramname"> <em>param</em></td><td>&nbsp;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td><td width="100%"></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
Adds given parameter to the list of parameters. <dl compact><dt><b>Parameters:</b></dt><dd>
  <table border="0" cellspacing="2" cellpadding="0">
    <tr><td valign="top"></td><td valign="top"><em>desc</em>&nbsp;</td><td>pointer to description </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>env</em>&nbsp;</td><td>pointer to environment struct </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>param</em>&nbsp;</td><td>pointer to parameter </td></tr>
  </table>
</dl>
<dl class="return" compact><dt><b>Returns:</b></dt><dd>AXIS2_SUCCESS on success, else AXIS2_FAILURE </dd></dl>

</div>
</div><p>
<a class="anchor" name="ge7a0b8d3cff8a247692c220fc7272117"></a><!-- doxytag: member="axis2_desc.h::axis2_desc_create" ref="ge7a0b8d3cff8a247692c220fc7272117" args="(const axutil_env_t *env)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">AXIS2_EXTERN <a class="el" href="group__axis2__description.html#g9bbf771ae43a8364c5f453c7077f0f1e">axis2_desc_t</a>* axis2_desc_create           </td>
          <td>(</td>
          <td class="paramtype">const <a class="el" href="structaxutil__env.html">axutil_env_t</a> *&nbsp;</td>
          <td class="paramname"> <em>env</em>          </td>
          <td>&nbsp;)&nbsp;</td>
          <td width="100%"></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
Creates a description struct instance. <dl compact><dt><b>Parameters:</b></dt><dd>
  <table border="0" cellspacing="2" cellpadding="0">
    <tr><td valign="top"></td><td valign="top"><em>env</em>&nbsp;</td><td>pointer to environment struct </td></tr>
  </table>
</dl>
<dl class="return" compact><dt><b>Returns:</b></dt><dd>pointer to newly created description </dd></dl>

</div>
</div><p>
<a class="anchor" name="gd72218caf033deeecd16ebf8240dd286"></a><!-- doxytag: member="axis2_desc.h::axis2_desc_free" ref="gd72218caf033deeecd16ebf8240dd286" args="(axis2_desc_t *desc, const axutil_env_t *env)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">AXIS2_EXTERN void axis2_desc_free           </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="group__axis2__description.html#g9bbf771ae43a8364c5f453c7077f0f1e">axis2_desc_t</a> *&nbsp;</td>
          <td class="paramname"> <em>desc</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const <a class="el" href="structaxutil__env.html">axutil_env_t</a> *&nbsp;</td>
          <td class="paramname"> <em>env</em></td><td>&nbsp;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td><td width="100%"></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
Frees description struct. <dl compact><dt><b>Parameters:</b></dt><dd>
  <table border="0" cellspacing="2" cellpadding="0">
    <tr><td valign="top"></td><td valign="top"><em>desc</em>&nbsp;</td><td>pointer to description </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>env</em>&nbsp;</td><td>pointer to environment struct </td></tr>
  </table>
</dl>
<dl class="return" compact><dt><b>Returns:</b></dt><dd>void </dd></dl>

</div>
</div><p>
<a class="anchor" name="g078b2cf3aba1fca7468666905d8c0a4f"></a><!-- doxytag: member="axis2_desc.h::axis2_desc_get_all_children" ref="g078b2cf3aba1fca7468666905d8c0a4f" args="(const axis2_desc_t *desc, const axutil_env_t *env)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">AXIS2_EXTERN <a class="el" href="group__axutil__hash.html#gb2d7d14db2de92a101573f44421ac12a">axutil_hash_t</a>* axis2_desc_get_all_children           </td>
          <td>(</td>
          <td class="paramtype">const <a class="el" href="group__axis2__description.html#g9bbf771ae43a8364c5f453c7077f0f1e">axis2_desc_t</a> *&nbsp;</td>
          <td class="paramname"> <em>desc</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const <a class="el" href="structaxutil__env.html">axutil_env_t</a> *&nbsp;</td>
          <td class="paramname"> <em>env</em></td><td>&nbsp;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td><td width="100%"></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
Gets all children. <dl compact><dt><b>Parameters:</b></dt><dd>
  <table border="0" cellspacing="2" cellpadding="0">
    <tr><td valign="top"></td><td valign="top"><em>desc</em>&nbsp;</td><td>pointer to description </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>env</em>&nbsp;</td><td>pointer to environment struct </td></tr>
  </table>
</dl>
<dl class="return" compact><dt><b>Returns:</b></dt><dd>pointer to hash map containing children </dd></dl>

</div>
</div><p>
<a class="anchor" name="g512aaa44dd670d0ed3365033b1459e53"></a><!-- doxytag: member="axis2_desc.h::axis2_desc_get_all_params" ref="g512aaa44dd670d0ed3365033b1459e53" args="(const axis2_desc_t *desc, const axutil_env_t *env)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">AXIS2_EXTERN <a class="el" href="group__axutil__array__list.html#g1a6a89777db876cfa0cc86787b7be6a0">axutil_array_list_t</a>* axis2_desc_get_all_params           </td>
          <td>(</td>
          <td class="paramtype">const <a class="el" href="group__axis2__description.html#g9bbf771ae43a8364c5f453c7077f0f1e">axis2_desc_t</a> *&nbsp;</td>
          <td class="paramname"> <em>desc</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const <a class="el" href="structaxutil__env.html">axutil_env_t</a> *&nbsp;</td>
          <td class="paramname"> <em>env</em></td><td>&nbsp;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td><td width="100%"></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
Gets all parameters stored in description. <dl compact><dt><b>Parameters:</b></dt><dd>
  <table border="0" cellspacing="2" cellpadding="0">
    <tr><td valign="top"></td><td valign="top"><em>desc</em>&nbsp;</td><td>pointer to description </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>env</em>&nbsp;</td><td>pointer to environment struct </td></tr>
  </table>
</dl>
<dl class="return" compact><dt><b>Returns:</b></dt><dd>pointer to array list containing the list of parameters </dd></dl>

</div>
</div><p>
<a class="anchor" name="g55e705da0e6458ad6dd435087052b266"></a><!-- doxytag: member="axis2_desc.h::axis2_desc_get_child" ref="g55e705da0e6458ad6dd435087052b266" args="(const axis2_desc_t *desc, const axutil_env_t *env, const axis2_char_t *key)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">AXIS2_EXTERN void* axis2_desc_get_child           </td>
          <td>(</td>
          <td class="paramtype">const <a class="el" href="group__axis2__description.html#g9bbf771ae43a8364c5f453c7077f0f1e">axis2_desc_t</a> *&nbsp;</td>
          <td class="paramname"> <em>desc</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const <a class="el" href="structaxutil__env.html">axutil_env_t</a> *&nbsp;</td>
          <td class="paramname"> <em>env</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const axis2_char_t *&nbsp;</td>
          <td class="paramname"> <em>key</em></td><td>&nbsp;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td><td width="100%"></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
Gets child with given key. <dl compact><dt><b>Parameters:</b></dt><dd>
  <table border="0" cellspacing="2" cellpadding="0">
    <tr><td valign="top"></td><td valign="top"><em>desc</em>&nbsp;</td><td>pointer to description </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>env</em>&nbsp;</td><td>pointer to environment struct </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>key</em>&nbsp;</td><td>key with which the child is stored </td></tr>
  </table>
</dl>
<dl class="return" compact><dt><b>Returns:</b></dt><dd>pointer to child, returned as a void* value, need to cast to correct type </dd></dl>

</div>
</div><p>
<a class="anchor" name="g6d7eb35ea7f0dd0a82bc47324a92bc0b"></a><!-- doxytag: member="axis2_desc.h::axis2_desc_get_param" ref="g6d7eb35ea7f0dd0a82bc47324a92bc0b" args="(const axis2_desc_t *desc, const axutil_env_t *env, const axis2_char_t *param_name)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">AXIS2_EXTERN axutil_param_t* axis2_desc_get_param           </td>
          <td>(</td>
          <td class="paramtype">const <a class="el" href="group__axis2__description.html#g9bbf771ae43a8364c5f453c7077f0f1e">axis2_desc_t</a> *&nbsp;</td>
          <td class="paramname"> <em>desc</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const <a class="el" href="structaxutil__env.html">axutil_env_t</a> *&nbsp;</td>
          <td class="paramname"> <em>env</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const axis2_char_t *&nbsp;</td>
          <td class="paramname"> <em>param_name</em></td><td>&nbsp;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td><td width="100%"></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
Gets named parameter. <dl compact><dt><b>Parameters:</b></dt><dd>
  <table border="0" cellspacing="2" cellpadding="0">
    <tr><td valign="top"></td><td valign="top"><em>desc</em>&nbsp;</td><td>pointer to description </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>env</em>&nbsp;</td><td>pointer to environment struct </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>param_name</em>&nbsp;</td><td>parameter name string </td></tr>
  </table>
</dl>
<dl class="return" compact><dt><b>Returns:</b></dt><dd>pointer to named parameter, NULL if it does not exist </dd></dl>

</div>
</div><p>
<a class="anchor" name="g99cb434d37bf69b9edb0396825694041"></a><!-- doxytag: member="axis2_desc.h::axis2_desc_get_parent" ref="g99cb434d37bf69b9edb0396825694041" args="(const axis2_desc_t *desc, const axutil_env_t *env)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">AXIS2_EXTERN <a class="el" href="group__axis2__description.html#g9bbf771ae43a8364c5f453c7077f0f1e">axis2_desc_t</a>* axis2_desc_get_parent           </td>
          <td>(</td>
          <td class="paramtype">const <a class="el" href="group__axis2__description.html#g9bbf771ae43a8364c5f453c7077f0f1e">axis2_desc_t</a> *&nbsp;</td>
          <td class="paramname"> <em>desc</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const <a class="el" href="structaxutil__env.html">axutil_env_t</a> *&nbsp;</td>
          <td class="paramname"> <em>env</em></td><td>&nbsp;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td><td width="100%"></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
Gets parent description. <dl compact><dt><b>Parameters:</b></dt><dd>
  <table border="0" cellspacing="2" cellpadding="0">
    <tr><td valign="top"></td><td valign="top"><em>desc</em>&nbsp;</td><td>pointer to description </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>env</em>&nbsp;</td><td>pointer to environment struct </td></tr>
  </table>
</dl>
<dl class="return" compact><dt><b>Returns:</b></dt><dd>parent pointer to parent description </dd></dl>

</div>
</div><p>
<a class="anchor" name="gfb2c12d56fbfa672cf4f577c19aed3af"></a><!-- doxytag: member="axis2_desc.h::axis2_desc_get_policy_include" ref="gfb2c12d56fbfa672cf4f577c19aed3af" args="(axis2_desc_t *desc, const axutil_env_t *env)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">AXIS2_EXTERN struct axis2_policy_include* axis2_desc_get_policy_include           </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="group__axis2__description.html#g9bbf771ae43a8364c5f453c7077f0f1e">axis2_desc_t</a> *&nbsp;</td>
          <td class="paramname"> <em>desc</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const <a class="el" href="structaxutil__env.html">axutil_env_t</a> *&nbsp;</td>
          <td class="paramname"> <em>env</em></td><td>&nbsp;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td><td width="100%"><code> [read]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
Gets policy include <dl compact><dt><b>Parameters:</b></dt><dd>
  <table border="0" cellspacing="2" cellpadding="0">
    <tr><td valign="top"></td><td valign="top"><em>desc</em>&nbsp;</td><td>pointer to description </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>env</em>&nbsp;</td><td>pointer to environment struct </td></tr>
  </table>
</dl>
<dl class="return" compact><dt><b>Returns:</b></dt><dd>returns policy include that was added to description </dd></dl>
<dl class="see" compact><dt><b>See also:</b></dt><dd><a class="el" href="group__axis2__policy__include.html">policy include</a> </dd></dl>

</div>
</div><p>
<a class="anchor" name="gdbc1f8ca75485da47fb76f148e794336"></a><!-- doxytag: member="axis2_desc.h::axis2_desc_is_param_locked" ref="gdbc1f8ca75485da47fb76f148e794336" args="(const axis2_desc_t *desc, const axutil_env_t *env, const axis2_char_t *param_name)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">AXIS2_EXTERN axis2_bool_t axis2_desc_is_param_locked           </td>
          <td>(</td>
          <td class="paramtype">const <a class="el" href="group__axis2__description.html#g9bbf771ae43a8364c5f453c7077f0f1e">axis2_desc_t</a> *&nbsp;</td>
          <td class="paramname"> <em>desc</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const <a class="el" href="structaxutil__env.html">axutil_env_t</a> *&nbsp;</td>
          <td class="paramname"> <em>env</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const axis2_char_t *&nbsp;</td>
          <td class="paramname"> <em>param_name</em></td><td>&nbsp;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td><td width="100%"></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
Checks if a named parameter is locked. <dl compact><dt><b>Parameters:</b></dt><dd>
  <table border="0" cellspacing="2" cellpadding="0">
    <tr><td valign="top"></td><td valign="top"><em>desc</em>&nbsp;</td><td>pointer to description </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>env</em>&nbsp;</td><td>pointer to environment struct </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>param_name</em>&nbsp;</td><td>parameter name string </td></tr>
  </table>
</dl>
<dl class="return" compact><dt><b>Returns:</b></dt><dd>AXIS2_TRUE if parameter is locked, else AXIS2_FALSE </dd></dl>

</div>
</div><p>
<a class="anchor" name="g36c19818ab4b074242cc72c3f427e686"></a><!-- doxytag: member="axis2_desc.h::axis2_desc_remove_child" ref="g36c19818ab4b074242cc72c3f427e686" args="(const axis2_desc_t *desc, const axutil_env_t *env, const axis2_char_t *key)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">AXIS2_EXTERN axis2_status_t axis2_desc_remove_child           </td>
          <td>(</td>
          <td class="paramtype">const <a class="el" href="group__axis2__description.html#g9bbf771ae43a8364c5f453c7077f0f1e">axis2_desc_t</a> *&nbsp;</td>
          <td class="paramname"> <em>desc</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const <a class="el" href="structaxutil__env.html">axutil_env_t</a> *&nbsp;</td>
          <td class="paramname"> <em>env</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const axis2_char_t *&nbsp;</td>
          <td class="paramname"> <em>key</em></td><td>&nbsp;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td><td width="100%"></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
Removes the named child. <dl compact><dt><b>Parameters:</b></dt><dd>
  <table border="0" cellspacing="2" cellpadding="0">
    <tr><td valign="top"></td><td valign="top"><em>desc</em>&nbsp;</td><td>pointer to description </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>env</em>&nbsp;</td><td>pointer to environment struct </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>key</em>&nbsp;</td><td>key that represents the child to be removed </td></tr>
  </table>
</dl>
<dl class="return" compact><dt><b>Returns:</b></dt><dd>AXIS2_SUCCESS on success, else AXIS2_FAILURE </dd></dl>

</div>
</div><p>
<a class="anchor" name="g3847e0acbaa726663410a42ddead9448"></a><!-- doxytag: member="axis2_desc.h::axis2_desc_set_parent" ref="g3847e0acbaa726663410a42ddead9448" args="(axis2_desc_t *desc, const axutil_env_t *env, axis2_desc_t *parent)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">AXIS2_EXTERN axis2_status_t axis2_desc_set_parent           </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="group__axis2__description.html#g9bbf771ae43a8364c5f453c7077f0f1e">axis2_desc_t</a> *&nbsp;</td>
          <td class="paramname"> <em>desc</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const <a class="el" href="structaxutil__env.html">axutil_env_t</a> *&nbsp;</td>
          <td class="paramname"> <em>env</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype"><a class="el" href="group__axis2__description.html#g9bbf771ae43a8364c5f453c7077f0f1e">axis2_desc_t</a> *&nbsp;</td>
          <td class="paramname"> <em>parent</em></td><td>&nbsp;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td><td width="100%"></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
Sets parent description. <dl compact><dt><b>Parameters:</b></dt><dd>
  <table border="0" cellspacing="2" cellpadding="0">
    <tr><td valign="top"></td><td valign="top"><em>desc</em>&nbsp;</td><td>pointer to description </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>env</em>&nbsp;</td><td>pointer to environment struct </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>parent</em>&nbsp;</td><td>pointer to parent description </td></tr>
  </table>
</dl>
<dl class="return" compact><dt><b>Returns:</b></dt><dd>AXIS2_SUCCESS on success, else AXIS2_FAILURE </dd></dl>

</div>
</div><p>
<a class="anchor" name="gf57219b0bfcd05648d8d6ab574807951"></a><!-- doxytag: member="axis2_desc.h::axis2_desc_set_policy_include" ref="gf57219b0bfcd05648d8d6ab574807951" args="(axis2_desc_t *desc, const axutil_env_t *env, struct axis2_policy_include *policy_include)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">AXIS2_EXTERN axis2_status_t axis2_desc_set_policy_include           </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="group__axis2__description.html#g9bbf771ae43a8364c5f453c7077f0f1e">axis2_desc_t</a> *&nbsp;</td>
          <td class="paramname"> <em>desc</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const <a class="el" href="structaxutil__env.html">axutil_env_t</a> *&nbsp;</td>
          <td class="paramname"> <em>env</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">struct axis2_policy_include *&nbsp;</td>
          <td class="paramname"> <em>policy_include</em></td><td>&nbsp;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td><td width="100%"></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
Sets policy include <dl compact><dt><b>Parameters:</b></dt><dd>
  <table border="0" cellspacing="2" cellpadding="0">
    <tr><td valign="top"></td><td valign="top"><em>desc</em>&nbsp;</td><td>pointer to description </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>env</em>&nbsp;</td><td>pointer to environment struct </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>policy_include</em>&nbsp;</td><td>policy include to be added to description </td></tr>
  </table>
</dl>
<dl class="return" compact><dt><b>Returns:</b></dt><dd>AXIS2_SUCCESS on success, else AXIS2_FAILURE </dd></dl>

</div>
</div><p>
<hr size="1"><address style="text-align: right;"><small>Generated on Fri Apr 17 11:49:44 2009 for Axis2/C by&nbsp;
<a href="http://www.doxygen.org/index.html">
<img src="doxygen.png" alt="doxygen" align="middle" border="0"></a> 1.5.3 </small></address>
</body>
</html>


<|start_filename|>xdocs/api/html/group__axutil__linked__list.html<|end_filename|>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html><head><meta http-equiv="Content-Type" content="text/html;charset=UTF-8">
<title>Axis2/C: linked list</title>
<link href="doxygen.css" rel="stylesheet" type="text/css">
<link href="tabs.css" rel="stylesheet" type="text/css">
</head><body>
<!-- Generated by Doxygen 1.5.3 -->
<div class="tabs">
  <ul>
    <li><a href="index.html"><span>Main&nbsp;Page</span></a></li>
    <li><a href="modules.html"><span>Modules</span></a></li>
    <li><a href="annotated.html"><span>Classes</span></a></li>
    <li><a href="files.html"><span>Files</span></a></li>
    <li><a href="dirs.html"><span>Directories</span></a></li>
    <li><a href="pages.html"><span>Related&nbsp;Pages</span></a></li>
    <li><a href="examples.html"><span>Examples</span></a></li>
    <li>
      <form action="search.php" method="get">
        <table cellspacing="0" cellpadding="0" border="0">
          <tr>
            <td><label>&nbsp;<u>S</u>earch&nbsp;for&nbsp;</label></td>
            <td><input type="text" name="query" value="" size="20" accesskey="s"/></td>
          </tr>
        </table>
      </form>
    </li>
  </ul>
</div>
<h1>linked list<br>
<small>
[<a class="el" href="group__axis2__util.html">utilities</a>]</small>
</h1><table border="0" cellpadding="0" cellspacing="0">
<tr><td></td></tr>
<tr><td colspan="2"><br><h2>Classes</h2></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top">struct &nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="structentry__s.html">entry_s</a></td></tr>

<tr><td colspan="2"><br><h2>Typedefs</h2></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top">typedef struct <a class="el" href="structentry__s.html">entry_s</a>&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__axutil__linked__list.html#gc8fdf0a0a29c429a84e7beb8bcbd00ce">entry_t</a></td></tr>

<tr><td colspan="2"><br><h2>Functions</h2></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top">AXIS2_EXTERN <br>
axutil_linked_list_t *&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__axutil__linked__list.html#g243e4777c89d6e52552208c96f343323">axutil_linked_list_create</a> (const <a class="el" href="structaxutil__env.html">axutil_env_t</a> *env)</td></tr>

<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="gc4d4cf327ad7dbdef42f15736e99069e"></a><!-- doxytag: member="axutil_linked_list::axutil_linked_list_free" ref="gc4d4cf327ad7dbdef42f15736e99069e" args="(axutil_linked_list_t *linked_list, const axutil_env_t *env)" -->
AXIS2_EXTERN void&nbsp;</td><td class="memItemRight" valign="bottom"><b>axutil_linked_list_free</b> (axutil_linked_list_t *linked_list, const <a class="el" href="structaxutil__env.html">axutil_env_t</a> *env)</td></tr>

<tr><td class="memItemLeft" nowrap align="right" valign="top">AXIS2_EXTERN <a class="el" href="structentry__s.html">entry_t</a> *&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__axutil__linked__list.html#g2d5024ce7b59b66e82978f8ca0c74a06">axutil_linked_list_get_entry</a> (axutil_linked_list_t *linked_list, const <a class="el" href="structaxutil__env.html">axutil_env_t</a> *env, int n)</td></tr>

<tr><td class="memItemLeft" nowrap align="right" valign="top">AXIS2_EXTERN <br>
axis2_status_t&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__axutil__linked__list.html#ge16515ceea10d7cc07f34eb9e1a5d37a">axutil_linked_list_remove_entry</a> (axutil_linked_list_t *linked_list, const <a class="el" href="structaxutil__env.html">axutil_env_t</a> *env, <a class="el" href="structentry__s.html">entry_t</a> *e)</td></tr>

<tr><td class="memItemLeft" nowrap align="right" valign="top">AXIS2_EXTERN axis2_bool_t&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__axutil__linked__list.html#g44c386ea5a8baf8bc1574b6a6b42e454">axutil_linked_list_check_bounds_inclusive</a> (axutil_linked_list_t *linked_list, const <a class="el" href="structaxutil__env.html">axutil_env_t</a> *env, int index)</td></tr>

<tr><td class="memItemLeft" nowrap align="right" valign="top">AXIS2_EXTERN axis2_bool_t&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__axutil__linked__list.html#g7f24198b995b898be3265a181b3c8457">axutil_linked_list_check_bounds_exclusive</a> (axutil_linked_list_t *linked_list, const <a class="el" href="structaxutil__env.html">axutil_env_t</a> *env, int index)</td></tr>

<tr><td class="memItemLeft" nowrap align="right" valign="top">AXIS2_EXTERN void *&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__axutil__linked__list.html#g44896e7785095b36bed80d7c0b438a1a">axutil_linked_list_get_first</a> (axutil_linked_list_t *linked_list, const <a class="el" href="structaxutil__env.html">axutil_env_t</a> *env)</td></tr>

<tr><td class="memItemLeft" nowrap align="right" valign="top">AXIS2_EXTERN void *&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__axutil__linked__list.html#gacdf3f19dc61bf262c5e25e1dd3ed5fa">axutil_linked_list_get_last</a> (axutil_linked_list_t *linked_list, const <a class="el" href="structaxutil__env.html">axutil_env_t</a> *env)</td></tr>

<tr><td class="memItemLeft" nowrap align="right" valign="top">AXIS2_EXTERN void *&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__axutil__linked__list.html#gfc28d2d0a4f2f1adffde51c2d8182779">axutil_linked_list_remove_first</a> (axutil_linked_list_t *linked_list, const <a class="el" href="structaxutil__env.html">axutil_env_t</a> *env)</td></tr>

<tr><td class="memItemLeft" nowrap align="right" valign="top">AXIS2_EXTERN void *&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__axutil__linked__list.html#g275168372eb9ef197be1565946651a2c">axutil_linked_list_remove_last</a> (axutil_linked_list_t *linked_list, const <a class="el" href="structaxutil__env.html">axutil_env_t</a> *env)</td></tr>

<tr><td class="memItemLeft" nowrap align="right" valign="top">AXIS2_EXTERN <br>
axis2_status_t&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__axutil__linked__list.html#g8b4efcdc1364da7880fb40603f4925d8">axutil_linked_list_add_first</a> (axutil_linked_list_t *linked_list, const <a class="el" href="structaxutil__env.html">axutil_env_t</a> *env, void *o)</td></tr>

<tr><td class="memItemLeft" nowrap align="right" valign="top">AXIS2_EXTERN <br>
axis2_status_t&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__axutil__linked__list.html#g44b716389b3a40e79a4dae6700ae2b24">axutil_linked_list_add_last</a> (axutil_linked_list_t *linked_list, const <a class="el" href="structaxutil__env.html">axutil_env_t</a> *env, void *o)</td></tr>

<tr><td class="memItemLeft" nowrap align="right" valign="top">AXIS2_EXTERN axis2_bool_t&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__axutil__linked__list.html#g0382c1da7f8f02d41a6c8993800af85b">axutil_linked_list_contains</a> (axutil_linked_list_t *linked_list, const <a class="el" href="structaxutil__env.html">axutil_env_t</a> *env, void *o)</td></tr>

<tr><td class="memItemLeft" nowrap align="right" valign="top">AXIS2_EXTERN int&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__axutil__linked__list.html#g29f7df9bfa28df5111de92e7af0b8f7b">axutil_linked_list_size</a> (axutil_linked_list_t *linked_list, const <a class="el" href="structaxutil__env.html">axutil_env_t</a> *env)</td></tr>

<tr><td class="memItemLeft" nowrap align="right" valign="top">AXIS2_EXTERN axis2_bool_t&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__axutil__linked__list.html#g0084179ae23ffb3b65f0345933aaacf3">axutil_linked_list_add</a> (axutil_linked_list_t *linked_list, const <a class="el" href="structaxutil__env.html">axutil_env_t</a> *env, void *o)</td></tr>

<tr><td class="memItemLeft" nowrap align="right" valign="top">AXIS2_EXTERN axis2_bool_t&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__axutil__linked__list.html#ga595fa9b25737e98268cababb5a23ccd">axutil_linked_list_remove</a> (axutil_linked_list_t *linked_list, const <a class="el" href="structaxutil__env.html">axutil_env_t</a> *env, void *o)</td></tr>

<tr><td class="memItemLeft" nowrap align="right" valign="top">AXIS2_EXTERN <br>
axis2_status_t&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__axutil__linked__list.html#g02d3d806618b29e546e6b99b451bdc5f">axutil_linked_list_clear</a> (axutil_linked_list_t *linked_list, const <a class="el" href="structaxutil__env.html">axutil_env_t</a> *env)</td></tr>

<tr><td class="memItemLeft" nowrap align="right" valign="top">AXIS2_EXTERN void *&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__axutil__linked__list.html#g2070ee8b2583d38a8dfe619c02698e7a">axutil_linked_list_get</a> (axutil_linked_list_t *linked_list, const <a class="el" href="structaxutil__env.html">axutil_env_t</a> *env, int index)</td></tr>

<tr><td class="memItemLeft" nowrap align="right" valign="top">AXIS2_EXTERN void *&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__axutil__linked__list.html#g797df541c887e4e30c6523d37149bf88">axutil_linked_list_set</a> (axutil_linked_list_t *linked_list, const <a class="el" href="structaxutil__env.html">axutil_env_t</a> *env, int index, void *o)</td></tr>

<tr><td class="memItemLeft" nowrap align="right" valign="top">AXIS2_EXTERN <br>
axis2_status_t&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__axutil__linked__list.html#gde56abab810e3643547facceb1858c8b">axutil_linked_list_add_at_index</a> (axutil_linked_list_t *linked_list, const <a class="el" href="structaxutil__env.html">axutil_env_t</a> *env, int index, void *o)</td></tr>

<tr><td class="memItemLeft" nowrap align="right" valign="top">AXIS2_EXTERN void *&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__axutil__linked__list.html#g2c79f16cebb8e5cb1bdc55f5c83952da">axutil_linked_list_remove_at_index</a> (axutil_linked_list_t *linked_list, const <a class="el" href="structaxutil__env.html">axutil_env_t</a> *env, int index)</td></tr>

<tr><td class="memItemLeft" nowrap align="right" valign="top">AXIS2_EXTERN int&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__axutil__linked__list.html#gfeae08bd167aff16b4a56dfd7aa5d336">axutil_linked_list_index_of</a> (axutil_linked_list_t *linked_list, const <a class="el" href="structaxutil__env.html">axutil_env_t</a> *env, void *o)</td></tr>

<tr><td class="memItemLeft" nowrap align="right" valign="top">AXIS2_EXTERN int&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__axutil__linked__list.html#g9613b65e8b1f91c6a7ed5c3e2befa312">axutil_linked_list_last_index_of</a> (axutil_linked_list_t *linked_list, const <a class="el" href="structaxutil__env.html">axutil_env_t</a> *env, void *o)</td></tr>

<tr><td class="memItemLeft" nowrap align="right" valign="top">AXIS2_EXTERN void **&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__axutil__linked__list.html#g4072abee56f46a98d34b66d8b41bea85">axutil_linked_list_to_array</a> (axutil_linked_list_t *linked_list, const <a class="el" href="structaxutil__env.html">axutil_env_t</a> *env)</td></tr>

<tr><td colspan="2"><br><h2>Variables</h2></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top">struct <a class="el" href="structentry__s.html">entry_s</a> *&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__axutil__linked__list.html#g8663ba871d35c8166f3a61ce49c3d0f0">entry_s::next</a></td></tr>

<tr><td class="memItemLeft" nowrap align="right" valign="top">struct <a class="el" href="structentry__s.html">entry_s</a> *&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__axutil__linked__list.html#g13ae42624c368b144f54520dcca0e770">entry_s::previous</a></td></tr>

</table>
<hr><h2>Typedef Documentation</h2>
<a class="anchor" name="gc8fdf0a0a29c429a84e7beb8bcbd00ce"></a><!-- doxytag: member="axutil_linked_list.h::entry_t" ref="gc8fdf0a0a29c429a84e7beb8bcbd00ce" args="" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">typedef struct <a class="el" href="structentry__s.html">entry_s</a>
     <a class="el" href="structentry__s.html">entry_t</a>          </td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
Struct to represent an entry in the list. Holds a single element. 
</div>
</div><p>
<hr><h2>Function Documentation</h2>
<a class="anchor" name="g0084179ae23ffb3b65f0345933aaacf3"></a><!-- doxytag: member="axutil_linked_list.h::axutil_linked_list_add" ref="g0084179ae23ffb3b65f0345933aaacf3" args="(axutil_linked_list_t *linked_list, const axutil_env_t *env, void *o)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">AXIS2_EXTERN axis2_bool_t axutil_linked_list_add           </td>
          <td>(</td>
          <td class="paramtype">axutil_linked_list_t *&nbsp;</td>
          <td class="paramname"> <em>linked_list</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const <a class="el" href="structaxutil__env.html">axutil_env_t</a> *&nbsp;</td>
          <td class="paramname"> <em>env</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">void *&nbsp;</td>
          <td class="paramname"> <em>o</em></td><td>&nbsp;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td><td width="100%"></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
Adds an element to the end of the list.<p>
<dl compact><dt><b>Parameters:</b></dt><dd>
  <table border="0" cellspacing="2" cellpadding="0">
    <tr><td valign="top"></td><td valign="top"><em>e</em>&nbsp;</td><td>the entry to add </td></tr>
  </table>
</dl>
<dl class="return" compact><dt><b>Returns:</b></dt><dd>true, as it always succeeds </dd></dl>

</div>
</div><p>
<a class="anchor" name="gde56abab810e3643547facceb1858c8b"></a><!-- doxytag: member="axutil_linked_list.h::axutil_linked_list_add_at_index" ref="gde56abab810e3643547facceb1858c8b" args="(axutil_linked_list_t *linked_list, const axutil_env_t *env, int index, void *o)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">AXIS2_EXTERN axis2_status_t axutil_linked_list_add_at_index           </td>
          <td>(</td>
          <td class="paramtype">axutil_linked_list_t *&nbsp;</td>
          <td class="paramname"> <em>linked_list</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const <a class="el" href="structaxutil__env.html">axutil_env_t</a> *&nbsp;</td>
          <td class="paramname"> <em>env</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">int&nbsp;</td>
          <td class="paramname"> <em>index</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">void *&nbsp;</td>
          <td class="paramname"> <em>o</em></td><td>&nbsp;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td><td width="100%"></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
Inserts an element in the given position in the list.<p>
<dl compact><dt><b>Parameters:</b></dt><dd>
  <table border="0" cellspacing="2" cellpadding="0">
    <tr><td valign="top"></td><td valign="top"><em>index</em>&nbsp;</td><td>where to insert the element </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>o</em>&nbsp;</td><td>the element to insert </td></tr>
  </table>
</dl>

</div>
</div><p>
<a class="anchor" name="g8b4efcdc1364da7880fb40603f4925d8"></a><!-- doxytag: member="axutil_linked_list.h::axutil_linked_list_add_first" ref="g8b4efcdc1364da7880fb40603f4925d8" args="(axutil_linked_list_t *linked_list, const axutil_env_t *env, void *o)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">AXIS2_EXTERN axis2_status_t axutil_linked_list_add_first           </td>
          <td>(</td>
          <td class="paramtype">axutil_linked_list_t *&nbsp;</td>
          <td class="paramname"> <em>linked_list</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const <a class="el" href="structaxutil__env.html">axutil_env_t</a> *&nbsp;</td>
          <td class="paramname"> <em>env</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">void *&nbsp;</td>
          <td class="paramname"> <em>o</em></td><td>&nbsp;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td><td width="100%"></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
Insert an element at the first of the list.<p>
<dl compact><dt><b>Parameters:</b></dt><dd>
  <table border="0" cellspacing="2" cellpadding="0">
    <tr><td valign="top"></td><td valign="top"><em>o</em>&nbsp;</td><td>the element to insert </td></tr>
  </table>
</dl>

</div>
</div><p>
<a class="anchor" name="g44b716389b3a40e79a4dae6700ae2b24"></a><!-- doxytag: member="axutil_linked_list.h::axutil_linked_list_add_last" ref="g44b716389b3a40e79a4dae6700ae2b24" args="(axutil_linked_list_t *linked_list, const axutil_env_t *env, void *o)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">AXIS2_EXTERN axis2_status_t axutil_linked_list_add_last           </td>
          <td>(</td>
          <td class="paramtype">axutil_linked_list_t *&nbsp;</td>
          <td class="paramname"> <em>linked_list</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const <a class="el" href="structaxutil__env.html">axutil_env_t</a> *&nbsp;</td>
          <td class="paramname"> <em>env</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">void *&nbsp;</td>
          <td class="paramname"> <em>o</em></td><td>&nbsp;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td><td width="100%"></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
Insert an element at the last of the list.<p>
<dl compact><dt><b>Parameters:</b></dt><dd>
  <table border="0" cellspacing="2" cellpadding="0">
    <tr><td valign="top"></td><td valign="top"><em>o</em>&nbsp;</td><td>the element to insert </td></tr>
  </table>
</dl>

</div>
</div><p>
<a class="anchor" name="g7f24198b995b898be3265a181b3c8457"></a><!-- doxytag: member="axutil_linked_list.h::axutil_linked_list_check_bounds_exclusive" ref="g7f24198b995b898be3265a181b3c8457" args="(axutil_linked_list_t *linked_list, const axutil_env_t *env, int index)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">AXIS2_EXTERN axis2_bool_t axutil_linked_list_check_bounds_exclusive           </td>
          <td>(</td>
          <td class="paramtype">axutil_linked_list_t *&nbsp;</td>
          <td class="paramname"> <em>linked_list</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const <a class="el" href="structaxutil__env.html">axutil_env_t</a> *&nbsp;</td>
          <td class="paramname"> <em>env</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">int&nbsp;</td>
          <td class="paramname"> <em>index</em></td><td>&nbsp;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td><td width="100%"></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
Checks that the index is in the range of existing elements (exclusive).<p>
<dl compact><dt><b>Parameters:</b></dt><dd>
  <table border="0" cellspacing="2" cellpadding="0">
    <tr><td valign="top"></td><td valign="top"><em>index</em>&nbsp;</td><td>the index to check </td></tr>
  </table>
</dl>

</div>
</div><p>
<a class="anchor" name="g44c386ea5a8baf8bc1574b6a6b42e454"></a><!-- doxytag: member="axutil_linked_list.h::axutil_linked_list_check_bounds_inclusive" ref="g44c386ea5a8baf8bc1574b6a6b42e454" args="(axutil_linked_list_t *linked_list, const axutil_env_t *env, int index)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">AXIS2_EXTERN axis2_bool_t axutil_linked_list_check_bounds_inclusive           </td>
          <td>(</td>
          <td class="paramtype">axutil_linked_list_t *&nbsp;</td>
          <td class="paramname"> <em>linked_list</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const <a class="el" href="structaxutil__env.html">axutil_env_t</a> *&nbsp;</td>
          <td class="paramname"> <em>env</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">int&nbsp;</td>
          <td class="paramname"> <em>index</em></td><td>&nbsp;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td><td width="100%"></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
Checks that the index is in the range of possible elements (inclusive).<p>
<dl compact><dt><b>Parameters:</b></dt><dd>
  <table border="0" cellspacing="2" cellpadding="0">
    <tr><td valign="top"></td><td valign="top"><em>index</em>&nbsp;</td><td>the index to check </td></tr>
  </table>
</dl>

</div>
</div><p>
<a class="anchor" name="g02d3d806618b29e546e6b99b451bdc5f"></a><!-- doxytag: member="axutil_linked_list.h::axutil_linked_list_clear" ref="g02d3d806618b29e546e6b99b451bdc5f" args="(axutil_linked_list_t *linked_list, const axutil_env_t *env)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">AXIS2_EXTERN axis2_status_t axutil_linked_list_clear           </td>
          <td>(</td>
          <td class="paramtype">axutil_linked_list_t *&nbsp;</td>
          <td class="paramname"> <em>linked_list</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const <a class="el" href="structaxutil__env.html">axutil_env_t</a> *&nbsp;</td>
          <td class="paramname"> <em>env</em></td><td>&nbsp;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td><td width="100%"></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
Remove all elements from this list. 
</div>
</div><p>
<a class="anchor" name="g0382c1da7f8f02d41a6c8993800af85b"></a><!-- doxytag: member="axutil_linked_list.h::axutil_linked_list_contains" ref="g0382c1da7f8f02d41a6c8993800af85b" args="(axutil_linked_list_t *linked_list, const axutil_env_t *env, void *o)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">AXIS2_EXTERN axis2_bool_t axutil_linked_list_contains           </td>
          <td>(</td>
          <td class="paramtype">axutil_linked_list_t *&nbsp;</td>
          <td class="paramname"> <em>linked_list</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const <a class="el" href="structaxutil__env.html">axutil_env_t</a> *&nbsp;</td>
          <td class="paramname"> <em>env</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">void *&nbsp;</td>
          <td class="paramname"> <em>o</em></td><td>&nbsp;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td><td width="100%"></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
Returns true if the list contains the given object. Comparison is done by <code>o == null ? e = null : o.equals(e)</code>.<p>
<dl compact><dt><b>Parameters:</b></dt><dd>
  <table border="0" cellspacing="2" cellpadding="0">
    <tr><td valign="top"></td><td valign="top"><em>o</em>&nbsp;</td><td>the element to look for </td></tr>
  </table>
</dl>
<dl class="return" compact><dt><b>Returns:</b></dt><dd>true if it is found </dd></dl>

</div>
</div><p>
<a class="anchor" name="g243e4777c89d6e52552208c96f343323"></a><!-- doxytag: member="axutil_linked_list.h::axutil_linked_list_create" ref="g243e4777c89d6e52552208c96f343323" args="(const axutil_env_t *env)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">AXIS2_EXTERN axutil_linked_list_t* axutil_linked_list_create           </td>
          <td>(</td>
          <td class="paramtype">const <a class="el" href="structaxutil__env.html">axutil_env_t</a> *&nbsp;</td>
          <td class="paramname"> <em>env</em>          </td>
          <td>&nbsp;)&nbsp;</td>
          <td width="100%"></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
Create an empty linked list. 
</div>
</div><p>
<a class="anchor" name="g2070ee8b2583d38a8dfe619c02698e7a"></a><!-- doxytag: member="axutil_linked_list.h::axutil_linked_list_get" ref="g2070ee8b2583d38a8dfe619c02698e7a" args="(axutil_linked_list_t *linked_list, const axutil_env_t *env, int index)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">AXIS2_EXTERN void* axutil_linked_list_get           </td>
          <td>(</td>
          <td class="paramtype">axutil_linked_list_t *&nbsp;</td>
          <td class="paramname"> <em>linked_list</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const <a class="el" href="structaxutil__env.html">axutil_env_t</a> *&nbsp;</td>
          <td class="paramname"> <em>env</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">int&nbsp;</td>
          <td class="paramname"> <em>index</em></td><td>&nbsp;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td><td width="100%"></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
Return the element at index.<p>
<dl compact><dt><b>Parameters:</b></dt><dd>
  <table border="0" cellspacing="2" cellpadding="0">
    <tr><td valign="top"></td><td valign="top"><em>index</em>&nbsp;</td><td>the place to look </td></tr>
  </table>
</dl>
<dl class="return" compact><dt><b>Returns:</b></dt><dd>the element at index </dd></dl>

</div>
</div><p>
<a class="anchor" name="g2d5024ce7b59b66e82978f8ca0c74a06"></a><!-- doxytag: member="axutil_linked_list.h::axutil_linked_list_get_entry" ref="g2d5024ce7b59b66e82978f8ca0c74a06" args="(axutil_linked_list_t *linked_list, const axutil_env_t *env, int n)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">AXIS2_EXTERN <a class="el" href="structentry__s.html">entry_t</a>* axutil_linked_list_get_entry           </td>
          <td>(</td>
          <td class="paramtype">axutil_linked_list_t *&nbsp;</td>
          <td class="paramname"> <em>linked_list</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const <a class="el" href="structaxutil__env.html">axutil_env_t</a> *&nbsp;</td>
          <td class="paramname"> <em>env</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">int&nbsp;</td>
          <td class="paramname"> <em>n</em></td><td>&nbsp;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td><td width="100%"></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
Obtain the Entry at a given position in a list. This method of course takes linear time, but it is intelligent enough to take the shorter of the paths to get to the Entry required. This implies that the first or last entry in the list is obtained in constant time, which is a very desirable property. For speed and flexibility, range checking is not done in this method: Incorrect values will be returned if (n &lt; 0) or (n &gt;= size).<p>
<dl compact><dt><b>Parameters:</b></dt><dd>
  <table border="0" cellspacing="2" cellpadding="0">
    <tr><td valign="top"></td><td valign="top"><em>n</em>&nbsp;</td><td>the number of the entry to get </td></tr>
  </table>
</dl>
<dl class="return" compact><dt><b>Returns:</b></dt><dd>the entry at position n </dd></dl>

</div>
</div><p>
<a class="anchor" name="g44896e7785095b36bed80d7c0b438a1a"></a><!-- doxytag: member="axutil_linked_list.h::axutil_linked_list_get_first" ref="g44896e7785095b36bed80d7c0b438a1a" args="(axutil_linked_list_t *linked_list, const axutil_env_t *env)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">AXIS2_EXTERN void* axutil_linked_list_get_first           </td>
          <td>(</td>
          <td class="paramtype">axutil_linked_list_t *&nbsp;</td>
          <td class="paramname"> <em>linked_list</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const <a class="el" href="structaxutil__env.html">axutil_env_t</a> *&nbsp;</td>
          <td class="paramname"> <em>env</em></td><td>&nbsp;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td><td width="100%"></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
Returns the first element in the list.<p>
<dl class="return" compact><dt><b>Returns:</b></dt><dd>the first list element </dd></dl>

</div>
</div><p>
<a class="anchor" name="gacdf3f19dc61bf262c5e25e1dd3ed5fa"></a><!-- doxytag: member="axutil_linked_list.h::axutil_linked_list_get_last" ref="gacdf3f19dc61bf262c5e25e1dd3ed5fa" args="(axutil_linked_list_t *linked_list, const axutil_env_t *env)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">AXIS2_EXTERN void* axutil_linked_list_get_last           </td>
          <td>(</td>
          <td class="paramtype">axutil_linked_list_t *&nbsp;</td>
          <td class="paramname"> <em>linked_list</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const <a class="el" href="structaxutil__env.html">axutil_env_t</a> *&nbsp;</td>
          <td class="paramname"> <em>env</em></td><td>&nbsp;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td><td width="100%"></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
Returns the last element in the list.<p>
<dl class="return" compact><dt><b>Returns:</b></dt><dd>the last list element </dd></dl>

</div>
</div><p>
<a class="anchor" name="gfeae08bd167aff16b4a56dfd7aa5d336"></a><!-- doxytag: member="axutil_linked_list.h::axutil_linked_list_index_of" ref="gfeae08bd167aff16b4a56dfd7aa5d336" args="(axutil_linked_list_t *linked_list, const axutil_env_t *env, void *o)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">AXIS2_EXTERN int axutil_linked_list_index_of           </td>
          <td>(</td>
          <td class="paramtype">axutil_linked_list_t *&nbsp;</td>
          <td class="paramname"> <em>linked_list</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const <a class="el" href="structaxutil__env.html">axutil_env_t</a> *&nbsp;</td>
          <td class="paramname"> <em>env</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">void *&nbsp;</td>
          <td class="paramname"> <em>o</em></td><td>&nbsp;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td><td width="100%"></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
Returns the first index where the element is located in the list, or -1.<p>
<dl compact><dt><b>Parameters:</b></dt><dd>
  <table border="0" cellspacing="2" cellpadding="0">
    <tr><td valign="top"></td><td valign="top"><em>o</em>&nbsp;</td><td>the element to look for </td></tr>
  </table>
</dl>
<dl class="return" compact><dt><b>Returns:</b></dt><dd>its position, or -1 if not found </dd></dl>

</div>
</div><p>
<a class="anchor" name="g9613b65e8b1f91c6a7ed5c3e2befa312"></a><!-- doxytag: member="axutil_linked_list.h::axutil_linked_list_last_index_of" ref="g9613b65e8b1f91c6a7ed5c3e2befa312" args="(axutil_linked_list_t *linked_list, const axutil_env_t *env, void *o)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">AXIS2_EXTERN int axutil_linked_list_last_index_of           </td>
          <td>(</td>
          <td class="paramtype">axutil_linked_list_t *&nbsp;</td>
          <td class="paramname"> <em>linked_list</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const <a class="el" href="structaxutil__env.html">axutil_env_t</a> *&nbsp;</td>
          <td class="paramname"> <em>env</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">void *&nbsp;</td>
          <td class="paramname"> <em>o</em></td><td>&nbsp;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td><td width="100%"></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
Returns the last index where the element is located in the list, or -1.<p>
<dl compact><dt><b>Parameters:</b></dt><dd>
  <table border="0" cellspacing="2" cellpadding="0">
    <tr><td valign="top"></td><td valign="top"><em>o</em>&nbsp;</td><td>the element to look for </td></tr>
  </table>
</dl>
<dl class="return" compact><dt><b>Returns:</b></dt><dd>its position, or -1 if not found </dd></dl>

</div>
</div><p>
<a class="anchor" name="ga595fa9b25737e98268cababb5a23ccd"></a><!-- doxytag: member="axutil_linked_list.h::axutil_linked_list_remove" ref="ga595fa9b25737e98268cababb5a23ccd" args="(axutil_linked_list_t *linked_list, const axutil_env_t *env, void *o)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">AXIS2_EXTERN axis2_bool_t axutil_linked_list_remove           </td>
          <td>(</td>
          <td class="paramtype">axutil_linked_list_t *&nbsp;</td>
          <td class="paramname"> <em>linked_list</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const <a class="el" href="structaxutil__env.html">axutil_env_t</a> *&nbsp;</td>
          <td class="paramname"> <em>env</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">void *&nbsp;</td>
          <td class="paramname"> <em>o</em></td><td>&nbsp;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td><td width="100%"></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
Removes the entry at the lowest index in the list that matches the given object, comparing by <code>o == null ? e = null : o.equals(e)</code>.<p>
<dl compact><dt><b>Parameters:</b></dt><dd>
  <table border="0" cellspacing="2" cellpadding="0">
    <tr><td valign="top"></td><td valign="top"><em>o</em>&nbsp;</td><td>the object to remove </td></tr>
  </table>
</dl>
<dl class="return" compact><dt><b>Returns:</b></dt><dd>true if an instance of the object was removed </dd></dl>

</div>
</div><p>
<a class="anchor" name="g2c79f16cebb8e5cb1bdc55f5c83952da"></a><!-- doxytag: member="axutil_linked_list.h::axutil_linked_list_remove_at_index" ref="g2c79f16cebb8e5cb1bdc55f5c83952da" args="(axutil_linked_list_t *linked_list, const axutil_env_t *env, int index)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">AXIS2_EXTERN void* axutil_linked_list_remove_at_index           </td>
          <td>(</td>
          <td class="paramtype">axutil_linked_list_t *&nbsp;</td>
          <td class="paramname"> <em>linked_list</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const <a class="el" href="structaxutil__env.html">axutil_env_t</a> *&nbsp;</td>
          <td class="paramname"> <em>env</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">int&nbsp;</td>
          <td class="paramname"> <em>index</em></td><td>&nbsp;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td><td width="100%"></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
Removes the element at the given position from the list.<p>
<dl compact><dt><b>Parameters:</b></dt><dd>
  <table border="0" cellspacing="2" cellpadding="0">
    <tr><td valign="top"></td><td valign="top"><em>index</em>&nbsp;</td><td>the location of the element to remove </td></tr>
  </table>
</dl>
<dl class="return" compact><dt><b>Returns:</b></dt><dd>the removed element </dd></dl>

</div>
</div><p>
<a class="anchor" name="ge16515ceea10d7cc07f34eb9e1a5d37a"></a><!-- doxytag: member="axutil_linked_list.h::axutil_linked_list_remove_entry" ref="ge16515ceea10d7cc07f34eb9e1a5d37a" args="(axutil_linked_list_t *linked_list, const axutil_env_t *env, entry_t *e)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">AXIS2_EXTERN axis2_status_t axutil_linked_list_remove_entry           </td>
          <td>(</td>
          <td class="paramtype">axutil_linked_list_t *&nbsp;</td>
          <td class="paramname"> <em>linked_list</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const <a class="el" href="structaxutil__env.html">axutil_env_t</a> *&nbsp;</td>
          <td class="paramname"> <em>env</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype"><a class="el" href="structentry__s.html">entry_t</a> *&nbsp;</td>
          <td class="paramname"> <em>e</em></td><td>&nbsp;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td><td width="100%"></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
Remove an entry from the list. This will adjust size and deal with `first' and `last' appropriatly.<p>
<dl compact><dt><b>Parameters:</b></dt><dd>
  <table border="0" cellspacing="2" cellpadding="0">
    <tr><td valign="top"></td><td valign="top"><em>e</em>&nbsp;</td><td>the entry to remove </td></tr>
  </table>
</dl>

</div>
</div><p>
<a class="anchor" name="gfc28d2d0a4f2f1adffde51c2d8182779"></a><!-- doxytag: member="axutil_linked_list.h::axutil_linked_list_remove_first" ref="gfc28d2d0a4f2f1adffde51c2d8182779" args="(axutil_linked_list_t *linked_list, const axutil_env_t *env)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">AXIS2_EXTERN void* axutil_linked_list_remove_first           </td>
          <td>(</td>
          <td class="paramtype">axutil_linked_list_t *&nbsp;</td>
          <td class="paramname"> <em>linked_list</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const <a class="el" href="structaxutil__env.html">axutil_env_t</a> *&nbsp;</td>
          <td class="paramname"> <em>env</em></td><td>&nbsp;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td><td width="100%"></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
Remove and return the first element in the list.<p>
<dl class="return" compact><dt><b>Returns:</b></dt><dd>the former first element in the list </dd></dl>

</div>
</div><p>
<a class="anchor" name="g275168372eb9ef197be1565946651a2c"></a><!-- doxytag: member="axutil_linked_list.h::axutil_linked_list_remove_last" ref="g275168372eb9ef197be1565946651a2c" args="(axutil_linked_list_t *linked_list, const axutil_env_t *env)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">AXIS2_EXTERN void* axutil_linked_list_remove_last           </td>
          <td>(</td>
          <td class="paramtype">axutil_linked_list_t *&nbsp;</td>
          <td class="paramname"> <em>linked_list</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const <a class="el" href="structaxutil__env.html">axutil_env_t</a> *&nbsp;</td>
          <td class="paramname"> <em>env</em></td><td>&nbsp;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td><td width="100%"></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
Remove and return the last element in the list.<p>
<dl class="return" compact><dt><b>Returns:</b></dt><dd>the former last element in the list </dd></dl>

</div>
</div><p>
<a class="anchor" name="g797df541c887e4e30c6523d37149bf88"></a><!-- doxytag: member="axutil_linked_list.h::axutil_linked_list_set" ref="g797df541c887e4e30c6523d37149bf88" args="(axutil_linked_list_t *linked_list, const axutil_env_t *env, int index, void *o)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">AXIS2_EXTERN void* axutil_linked_list_set           </td>
          <td>(</td>
          <td class="paramtype">axutil_linked_list_t *&nbsp;</td>
          <td class="paramname"> <em>linked_list</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const <a class="el" href="structaxutil__env.html">axutil_env_t</a> *&nbsp;</td>
          <td class="paramname"> <em>env</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">int&nbsp;</td>
          <td class="paramname"> <em>index</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">void *&nbsp;</td>
          <td class="paramname"> <em>o</em></td><td>&nbsp;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td><td width="100%"></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
Replace the element at the given location in the list.<p>
<dl compact><dt><b>Parameters:</b></dt><dd>
  <table border="0" cellspacing="2" cellpadding="0">
    <tr><td valign="top"></td><td valign="top"><em>index</em>&nbsp;</td><td>which index to change </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>o</em>&nbsp;</td><td>the new element </td></tr>
  </table>
</dl>
<dl class="return" compact><dt><b>Returns:</b></dt><dd>the prior element </dd></dl>

</div>
</div><p>
<a class="anchor" name="g29f7df9bfa28df5111de92e7af0b8f7b"></a><!-- doxytag: member="axutil_linked_list.h::axutil_linked_list_size" ref="g29f7df9bfa28df5111de92e7af0b8f7b" args="(axutil_linked_list_t *linked_list, const axutil_env_t *env)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">AXIS2_EXTERN int axutil_linked_list_size           </td>
          <td>(</td>
          <td class="paramtype">axutil_linked_list_t *&nbsp;</td>
          <td class="paramname"> <em>linked_list</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const <a class="el" href="structaxutil__env.html">axutil_env_t</a> *&nbsp;</td>
          <td class="paramname"> <em>env</em></td><td>&nbsp;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td><td width="100%"></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
Returns the size of the list.<p>
<dl class="return" compact><dt><b>Returns:</b></dt><dd>the list size </dd></dl>

</div>
</div><p>
<a class="anchor" name="g4072abee56f46a98d34b66d8b41bea85"></a><!-- doxytag: member="axutil_linked_list.h::axutil_linked_list_to_array" ref="g4072abee56f46a98d34b66d8b41bea85" args="(axutil_linked_list_t *linked_list, const axutil_env_t *env)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">AXIS2_EXTERN void** axutil_linked_list_to_array           </td>
          <td>(</td>
          <td class="paramtype">axutil_linked_list_t *&nbsp;</td>
          <td class="paramname"> <em>linked_list</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const <a class="el" href="structaxutil__env.html">axutil_env_t</a> *&nbsp;</td>
          <td class="paramname"> <em>env</em></td><td>&nbsp;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td><td width="100%"></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
Returns an array which contains the elements of the list in order.<p>
<dl class="return" compact><dt><b>Returns:</b></dt><dd>an array containing the list elements </dd></dl>

</div>
</div><p>
<hr><h2>Variable Documentation</h2>
<a class="anchor" name="g8663ba871d35c8166f3a61ce49c3d0f0"></a><!-- doxytag: member="entry_s::next" ref="g8663ba871d35c8166f3a61ce49c3d0f0" args="" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">struct <a class="el" href="structentry__s.html">entry_s</a>* <a class="el" href="group__axutil__linked__list.html#g8663ba871d35c8166f3a61ce49c3d0f0">entry_s::next</a><code> [read, inherited]</code>          </td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
The next list entry, null if this is last. 
</div>
</div><p>
<a class="anchor" name="g13ae42624c368b144f54520dcca0e770"></a><!-- doxytag: member="entry_s::previous" ref="g13ae42624c368b144f54520dcca0e770" args="" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">struct <a class="el" href="structentry__s.html">entry_s</a>* <a class="el" href="group__axutil__linked__list.html#g13ae42624c368b144f54520dcca0e770">entry_s::previous</a><code> [read, inherited]</code>          </td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
The previous list entry, null if this is first. 
</div>
</div><p>
<hr size="1"><address style="text-align: right;"><small>Generated on Fri Apr 17 11:49:46 2009 for Axis2/C by&nbsp;
<a href="http://www.doxygen.org/index.html">
<img src="doxygen.png" alt="doxygen" align="middle" border="0"></a> 1.5.3 </small></address>
</body>
</html>


<|start_filename|>xdocs/api/html/axiom__util_8h-source.html<|end_filename|>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html><head><meta http-equiv="Content-Type" content="text/html;charset=UTF-8">
<title>Axis2/C: axiom_util.h Source File</title>
<link href="doxygen.css" rel="stylesheet" type="text/css">
<link href="tabs.css" rel="stylesheet" type="text/css">
</head><body>
<!-- Generated by Doxygen 1.5.3 -->
<div class="tabs">
  <ul>
    <li><a href="index.html"><span>Main&nbsp;Page</span></a></li>
    <li><a href="modules.html"><span>Modules</span></a></li>
    <li><a href="annotated.html"><span>Classes</span></a></li>
    <li class="current"><a href="files.html"><span>Files</span></a></li>
    <li><a href="dirs.html"><span>Directories</span></a></li>
    <li><a href="pages.html"><span>Related&nbsp;Pages</span></a></li>
    <li><a href="examples.html"><span>Examples</span></a></li>
    <li>
      <form action="search.php" method="get">
        <table cellspacing="0" cellpadding="0" border="0">
          <tr>
            <td><label>&nbsp;<u>S</u>earch&nbsp;for&nbsp;</label></td>
            <td><input type="text" name="query" value="" size="20" accesskey="s"/></td>
          </tr>
        </table>
      </form>
    </li>
  </ul>
</div>
<div class="nav">
<a class="el" href="dir_f60961de8e5edc3b2658ef023e959e45.html">deploy</a>&nbsp;&raquo&nbsp;<a class="el" href="dir_6b4e91e54b7316b376882a6402adbf44.html">include</a>&nbsp;&raquo&nbsp;<a class="el" href="dir_df3a7695d5a9e696f30b948b566829e7.html">axis2-1.6.0</a></div>
<h1>axiom_util.h</h1><div class="fragment"><pre class="fragment"><a name="l00001"></a>00001 
<a name="l00002"></a>00002 <span class="comment">/*</span>
<a name="l00003"></a>00003 <span class="comment"> * Licensed to the Apache Software Foundation (ASF) under one or more</span>
<a name="l00004"></a>00004 <span class="comment"> * contributor license agreements.  See the NOTICE file distributed with</span>
<a name="l00005"></a>00005 <span class="comment"> * this work for additional information regarding copyright ownership.</span>
<a name="l00006"></a>00006 <span class="comment"> * The ASF licenses this file to You under the Apache License, Version 2.0</span>
<a name="l00007"></a>00007 <span class="comment"> * (the "License"); you may not use this file except in compliance with</span>
<a name="l00008"></a>00008 <span class="comment"> * the License.  You may obtain a copy of the License at</span>
<a name="l00009"></a>00009 <span class="comment"> *</span>
<a name="l00010"></a>00010 <span class="comment"> *      http://www.apache.org/licenses/LICENSE-2.0</span>
<a name="l00011"></a>00011 <span class="comment"> *</span>
<a name="l00012"></a>00012 <span class="comment"> * Unless required by applicable law or agreed to in writing, software</span>
<a name="l00013"></a>00013 <span class="comment"> * distributed under the License is distributed on an "AS IS" BASIS,</span>
<a name="l00014"></a>00014 <span class="comment"> * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.</span>
<a name="l00015"></a>00015 <span class="comment"> * See the License for the specific language governing permissions and</span>
<a name="l00016"></a>00016 <span class="comment"> * limitations under the License.</span>
<a name="l00017"></a>00017 <span class="comment"> */</span>
<a name="l00018"></a>00018 
<a name="l00019"></a>00019 <span class="preprocessor">#ifndef AXIOM_UTIL_H</span>
<a name="l00020"></a>00020 <span class="preprocessor"></span><span class="preprocessor">#define AXIOM_UTIL_H</span>
<a name="l00021"></a>00021 <span class="preprocessor"></span>
<a name="l00022"></a>00022 <span class="preprocessor">#include &lt;<a class="code" href="axutil__array__list_8h.html" title="Axis2 array_list interface.">axutil_array_list.h</a>&gt;</span>
<a name="l00023"></a>00023 <span class="preprocessor">#include &lt;axutil_string.h&gt;</span>
<a name="l00024"></a>00024 <span class="preprocessor">#include &lt;<a class="code" href="axiom_8h.html" title="includes all headers in OM">axiom.h</a>&gt;</span>
<a name="l00025"></a>00025 <span class="preprocessor">#include &lt;<a class="code" href="axutil__uri_8h.html" title="AXIS2-UTIL URI Routines axutil_uri.h: External Interface of axutil_uri.c.">axutil_uri.h</a>&gt;</span>
<a name="l00026"></a>00026 
<a name="l00027"></a>00027 <span class="preprocessor">#ifdef __cplusplus</span>
<a name="l00028"></a>00028 <span class="preprocessor"></span><span class="keyword">extern</span> <span class="stringliteral">"C"</span>
<a name="l00029"></a>00029 {
<a name="l00030"></a>00030 <span class="preprocessor">#endif</span>
<a name="l00031"></a>00031 <span class="preprocessor"></span>
<a name="l00039"></a>00039     AXIS2_EXTERN axiom_element_t *AXIS2_CALL
<a name="l00040"></a>00040     axiom_util_get_first_child_element_with_uri(
<a name="l00041"></a>00041         axiom_node_t * ele_node,
<a name="l00042"></a>00042         <span class="keyword">const</span> <a class="code" href="structaxutil__env.html" title="Axis2 Environment struct.">axutil_env_t</a> * env,
<a name="l00043"></a>00043         axis2_char_t * uri,
<a name="l00044"></a>00044         axiom_node_t ** child);
<a name="l00056"></a>00056     AXIS2_EXTERN axiom_element_t *AXIS2_CALL
<a name="l00057"></a>00057     axiom_util_get_next_sibling_element_with_uri(
<a name="l00058"></a>00058         axiom_node_t * ele_node,
<a name="l00059"></a>00059         <span class="keyword">const</span> <a class="code" href="structaxutil__env.html" title="Axis2 Environment struct.">axutil_env_t</a> * env,
<a name="l00060"></a>00060         axis2_char_t * uri,
<a name="l00061"></a>00061         axiom_node_t ** next_node);
<a name="l00071"></a>00071     AXIS2_EXTERN axiom_element_t *AXIS2_CALL
<a name="l00072"></a>00072     axiom_util_get_first_child_element(
<a name="l00073"></a>00073         axiom_element_t * ele,
<a name="l00074"></a>00074         <span class="keyword">const</span> <a class="code" href="structaxutil__env.html" title="Axis2 Environment struct.">axutil_env_t</a> * env,
<a name="l00075"></a>00075         axiom_node_t * ele_node,
<a name="l00076"></a>00076         axiom_node_t ** child_node);
<a name="l00084"></a>00084     AXIS2_EXTERN axiom_element_t *AXIS2_CALL
<a name="l00085"></a>00085     axiom_util_get_last_child_element(
<a name="l00086"></a>00086         axiom_element_t * ele,
<a name="l00087"></a>00087         <span class="keyword">const</span> <a class="code" href="structaxutil__env.html" title="Axis2 Environment struct.">axutil_env_t</a> * env,
<a name="l00088"></a>00088         axiom_node_t * ele_node,
<a name="l00089"></a>00089         axiom_node_t ** child_node);
<a name="l00098"></a>00098     AXIS2_EXTERN axiom_element_t *AXIS2_CALL
<a name="l00099"></a>00099     axiom_util_get_next_sibling_element(
<a name="l00100"></a>00100         axiom_element_t * ele,
<a name="l00101"></a>00101         <span class="keyword">const</span> <a class="code" href="structaxutil__env.html" title="Axis2 Environment struct.">axutil_env_t</a> * env,
<a name="l00102"></a>00102         axiom_node_t * ele_node,
<a name="l00103"></a>00103         axiom_node_t ** next_node);
<a name="l00115"></a>00115     AXIS2_EXTERN axiom_element_t *AXIS2_CALL
<a name="l00116"></a>00116     axiom_util_get_first_child_element_with_localname(
<a name="l00117"></a>00117         axiom_element_t * ele,
<a name="l00118"></a>00118         <span class="keyword">const</span> <a class="code" href="structaxutil__env.html" title="Axis2 Environment struct.">axutil_env_t</a> * env,
<a name="l00119"></a>00119         axiom_node_t * ele_node,
<a name="l00120"></a>00120         axis2_char_t * localname,
<a name="l00121"></a>00121         axiom_node_t ** child_node);
<a name="l00131"></a>00131     AXIS2_EXTERN axiom_element_t *AXIS2_CALL
<a name="l00132"></a>00132     axiom_util_get_last_child_element_with_localname(
<a name="l00133"></a>00133         axiom_element_t * ele,
<a name="l00134"></a>00134         <span class="keyword">const</span> <a class="code" href="structaxutil__env.html" title="Axis2 Environment struct.">axutil_env_t</a> * env,
<a name="l00135"></a>00135         axiom_node_t * ele_node,
<a name="l00136"></a>00136         axis2_char_t * localname,
<a name="l00137"></a>00137         axiom_node_t ** child_node);
<a name="l00147"></a>00147     AXIS2_EXTERN axiom_element_t *AXIS2_CALL
<a name="l00148"></a>00148     axiom_util_get_next_siblng_element_with_localname(
<a name="l00149"></a>00149         axiom_element_t * ele,
<a name="l00150"></a>00150         <span class="keyword">const</span> <a class="code" href="structaxutil__env.html" title="Axis2 Environment struct.">axutil_env_t</a> * env,
<a name="l00151"></a>00151         axiom_node_t * ele_node,
<a name="l00152"></a>00152         axis2_char_t * localname,
<a name="l00153"></a>00153         axiom_node_t ** next_node);
<a name="l00165"></a>00165     AXIS2_EXTERN axiom_element_t *AXIS2_CALL
<a name="l00166"></a>00166     axiom_util_get_first_child_element_with_uri_localname(
<a name="l00167"></a>00167         axiom_element_t * ele,
<a name="l00168"></a>00168         <span class="keyword">const</span> <a class="code" href="structaxutil__env.html" title="Axis2 Environment struct.">axutil_env_t</a> * env,
<a name="l00169"></a>00169         axiom_node_t * ele_node,
<a name="l00170"></a>00170         axis2_char_t * localname,
<a name="l00171"></a>00171         axis2_char_t * uri,
<a name="l00172"></a>00172         axiom_node_t ** child_node);
<a name="l00184"></a>00184     AXIS2_EXTERN axiom_element_t *AXIS2_CALL
<a name="l00185"></a>00185     axiom_util_get_last_child_element_with_uri_localname(
<a name="l00186"></a>00186         axiom_element_t * ele,
<a name="l00187"></a>00187         <span class="keyword">const</span> <a class="code" href="structaxutil__env.html" title="Axis2 Environment struct.">axutil_env_t</a> * env,
<a name="l00188"></a>00188         axiom_node_t * ele_node,
<a name="l00189"></a>00189         axis2_char_t * localname,
<a name="l00190"></a>00190         axis2_char_t * uri,
<a name="l00191"></a>00191         axiom_node_t ** child_node);
<a name="l00203"></a>00203     AXIS2_EXTERN axiom_element_t *AXIS2_CALL
<a name="l00204"></a>00204     axiom_util_get_next_sibling_element_with_uri_localname(
<a name="l00205"></a>00205         axiom_element_t * ele,
<a name="l00206"></a>00206         <span class="keyword">const</span> <a class="code" href="structaxutil__env.html" title="Axis2 Environment struct.">axutil_env_t</a> * env,
<a name="l00207"></a>00207         axiom_node_t * ele_node,
<a name="l00208"></a>00208         axis2_char_t * localname,
<a name="l00209"></a>00209         axis2_char_t * uri,
<a name="l00210"></a>00210         axiom_node_t ** next_node);
<a name="l00220"></a>00220     AXIS2_EXTERN axiom_element_t *AXIS2_CALL
<a name="l00221"></a>00221     axiom_util_get_first_child_element_with_localnames(
<a name="l00222"></a>00222         axiom_element_t * ele,
<a name="l00223"></a>00223         <span class="keyword">const</span> <a class="code" href="structaxutil__env.html" title="Axis2 Environment struct.">axutil_env_t</a> * env,
<a name="l00224"></a>00224         axiom_node_t * ele_node,
<a name="l00225"></a>00225         <a class="code" href="group__axutil__array__list.html#g1a6a89777db876cfa0cc86787b7be6a0">axutil_array_list_t</a> * names,
<a name="l00226"></a>00226         axiom_node_t ** child_node);
<a name="l00236"></a>00236     AXIS2_EXTERN axiom_element_t *AXIS2_CALL
<a name="l00237"></a>00237     axiom_util_get_last_child_element_with_localnames(
<a name="l00238"></a>00238         axiom_element_t * ele,
<a name="l00239"></a>00239         <span class="keyword">const</span> <a class="code" href="structaxutil__env.html" title="Axis2 Environment struct.">axutil_env_t</a> * env,
<a name="l00240"></a>00240         axiom_node_t * ele_node,
<a name="l00241"></a>00241         <a class="code" href="group__axutil__array__list.html#g1a6a89777db876cfa0cc86787b7be6a0">axutil_array_list_t</a> * names,
<a name="l00242"></a>00242         axiom_node_t ** child_node);
<a name="l00252"></a>00252     AXIS2_EXTERN axiom_element_t *AXIS2_CALL
<a name="l00253"></a>00253     axiom_util_get_next_siblng_element_with_localnames(
<a name="l00254"></a>00254         axiom_element_t * ele,
<a name="l00255"></a>00255         <span class="keyword">const</span> <a class="code" href="structaxutil__env.html" title="Axis2 Environment struct.">axutil_env_t</a> * env,
<a name="l00256"></a>00256         axiom_node_t * ele_node,
<a name="l00257"></a>00257         <a class="code" href="group__axutil__array__list.html#g1a6a89777db876cfa0cc86787b7be6a0">axutil_array_list_t</a> * names,
<a name="l00258"></a>00258         axiom_node_t ** next_node);
<a name="l00270"></a>00270     AXIS2_EXTERN axiom_element_t *AXIS2_CALL
<a name="l00271"></a>00271     axiom_util_get_first_child_element_with_localname_attr(
<a name="l00272"></a>00272         axiom_element_t * ele,
<a name="l00273"></a>00273         <span class="keyword">const</span> <a class="code" href="structaxutil__env.html" title="Axis2 Environment struct.">axutil_env_t</a> * env,
<a name="l00274"></a>00274         axiom_node_t * ele_node,
<a name="l00275"></a>00275         axis2_char_t * localname,
<a name="l00276"></a>00276         axis2_char_t * attr_name,
<a name="l00277"></a>00277         axis2_char_t * attr_value,
<a name="l00278"></a>00278         axiom_node_t ** child_node);
<a name="l00292"></a>00292     AXIS2_EXTERN axiom_element_t *AXIS2_CALL
<a name="l00293"></a>00293     axiom_util_get_last_child_element_with_localname_attr(
<a name="l00294"></a>00294         axiom_element_t * ele,
<a name="l00295"></a>00295         <span class="keyword">const</span> <a class="code" href="structaxutil__env.html" title="Axis2 Environment struct.">axutil_env_t</a> * env,
<a name="l00296"></a>00296         axiom_node_t * ele_node,
<a name="l00297"></a>00297         axis2_char_t * localname,
<a name="l00298"></a>00298         axis2_char_t * attr_name,
<a name="l00299"></a>00299         axis2_char_t * attr_value,
<a name="l00300"></a>00300         axiom_node_t ** child_node);
<a name="l00313"></a>00313     AXIS2_EXTERN axiom_element_t *AXIS2_CALL
<a name="l00314"></a>00314     axiom_util_get_next_siblng_element_with_localname_attr(
<a name="l00315"></a>00315         axiom_element_t * ele,
<a name="l00316"></a>00316         <span class="keyword">const</span> <a class="code" href="structaxutil__env.html" title="Axis2 Environment struct.">axutil_env_t</a> * env, 
<a name="l00317"></a>00317         axiom_node_t * ele_node,
<a name="l00318"></a>00318         axis2_char_t * localname,
<a name="l00319"></a>00319         axis2_char_t * attr_name,
<a name="l00320"></a>00320         axis2_char_t * attr_value,
<a name="l00321"></a>00321         axiom_node_t ** next_node);
<a name="l00329"></a>00329     AXIS2_EXTERN axis2_char_t *AXIS2_CALL
<a name="l00330"></a>00330     axiom_util_get_child_text(
<a name="l00331"></a>00331         axiom_node_t * node,
<a name="l00332"></a>00332         <span class="keyword">const</span> <a class="code" href="structaxutil__env.html" title="Axis2 Environment struct.">axutil_env_t</a> * env);
<a name="l00340"></a>00340     AXIS2_EXTERN axis2_char_t *AXIS2_CALL
<a name="l00341"></a>00341     axiom_util_get_localname(
<a name="l00342"></a>00342         axiom_node_t * node,
<a name="l00343"></a>00343         <span class="keyword">const</span> <a class="code" href="structaxutil__env.html" title="Axis2 Environment struct.">axutil_env_t</a> * env);
<a name="l00353"></a>00353     AXIS2_EXTERN axis2_char_t *AXIS2_CALL
<a name="l00354"></a>00354     axiom_util_get_node_namespace_uri(
<a name="l00355"></a>00355         axiom_node_t * om_node,
<a name="l00356"></a>00356         <span class="keyword">const</span> <a class="code" href="structaxutil__env.html" title="Axis2 Environment struct.">axutil_env_t</a> * env);
<a name="l00365"></a>00365     AXIS2_EXTERN axiom_child_element_iterator_t *AXIS2_CALL
<a name="l00366"></a>00366     axiom_util_get_child_elements(
<a name="l00367"></a>00367         axiom_element_t * om_ele,
<a name="l00368"></a>00368         <span class="keyword">const</span> <a class="code" href="structaxutil__env.html" title="Axis2 Environment struct.">axutil_env_t</a> * env,
<a name="l00369"></a>00369         axiom_node_t * om_node);
<a name="l00370"></a>00370 
<a name="l00371"></a>00371     AXIS2_EXTERN axiom_document_t *AXIS2_CALL
<a name="l00372"></a>00372     axiom_util_new_document(
<a name="l00373"></a>00373         <span class="keyword">const</span> <a class="code" href="structaxutil__env.html" title="Axis2 Environment struct.">axutil_env_t</a> * env,
<a name="l00374"></a>00374         <span class="keyword">const</span> axutil_uri_t * uri);
<a name="l00375"></a>00375 
<a name="l00376"></a>00376     AXIS2_EXTERN axiom_node_t* AXIS2_CALL
<a name="l00377"></a>00377     axiom_util_get_node_by_local_name(
<a name="l00378"></a>00378         <span class="keyword">const</span> <a class="code" href="structaxutil__env.html" title="Axis2 Environment struct.">axutil_env_t</a> *env,
<a name="l00379"></a>00379         axiom_node_t *node,
<a name="l00380"></a>00380         axis2_char_t *local_name);
<a name="l00381"></a>00381 
<a name="l00382"></a>00382 
<a name="l00383"></a>00383 <span class="preprocessor">#ifdef __cplusplus</span>
<a name="l00384"></a>00384 <span class="preprocessor"></span> }
<a name="l00385"></a>00385 <span class="preprocessor">#endif</span>
<a name="l00386"></a>00386 <span class="preprocessor"></span><span class="preprocessor">#endif                          </span><span class="comment">/* AXIOM_UTIL_H */</span>
</pre></div><hr size="1"><address style="text-align: right;"><small>Generated on Fri Apr 17 11:49:42 2009 for Axis2/C by&nbsp;
<a href="http://www.doxygen.org/index.html">
<img src="doxygen.png" alt="doxygen" align="middle" border="0"></a> 1.5.3 </small></address>
</body>
</html>


<|start_filename|>xdocs/api/html/guththila_8h-source.html<|end_filename|>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html><head><meta http-equiv="Content-Type" content="text/html;charset=UTF-8">
<title>Axis2/C: guththila.h Source File</title>
<link href="doxygen.css" rel="stylesheet" type="text/css">
<link href="tabs.css" rel="stylesheet" type="text/css">
</head><body>
<!-- Generated by Doxygen 1.5.3 -->
<div class="tabs">
  <ul>
    <li><a href="index.html"><span>Main&nbsp;Page</span></a></li>
    <li><a href="modules.html"><span>Modules</span></a></li>
    <li><a href="annotated.html"><span>Classes</span></a></li>
    <li class="current"><a href="files.html"><span>Files</span></a></li>
    <li><a href="dirs.html"><span>Directories</span></a></li>
    <li><a href="pages.html"><span>Related&nbsp;Pages</span></a></li>
    <li><a href="examples.html"><span>Examples</span></a></li>
    <li>
      <form action="search.php" method="get">
        <table cellspacing="0" cellpadding="0" border="0">
          <tr>
            <td><label>&nbsp;<u>S</u>earch&nbsp;for&nbsp;</label></td>
            <td><input type="text" name="query" value="" size="20" accesskey="s"/></td>
          </tr>
        </table>
      </form>
    </li>
  </ul>
</div>
<div class="nav">
<a class="el" href="dir_f60961de8e5edc3b2658ef023e959e45.html">deploy</a>&nbsp;&raquo&nbsp;<a class="el" href="dir_6b4e91e54b7316b376882a6402adbf44.html">include</a>&nbsp;&raquo&nbsp;<a class="el" href="dir_df3a7695d5a9e696f30b948b566829e7.html">axis2-1.6.0</a></div>
<h1>guththila.h</h1><div class="fragment"><pre class="fragment"><a name="l00001"></a>00001  
<a name="l00002"></a>00002 <span class="comment">/*</span>
<a name="l00003"></a>00003 <span class="comment"> * Licensed to the Apache Software Foundation (ASF) under one or more</span>
<a name="l00004"></a>00004 <span class="comment"> * contributor license agreements.  See the NOTICE file distributed with</span>
<a name="l00005"></a>00005 <span class="comment"> * this work for additional information regarding copyright ownership.</span>
<a name="l00006"></a>00006 <span class="comment"> * The ASF licenses this file to You under the Apache License, Version 2.0</span>
<a name="l00007"></a>00007 <span class="comment"> * (the "License"); you may not use this file except in compliance with</span>
<a name="l00008"></a>00008 <span class="comment"> * the License.  You may obtain a copy of the License at</span>
<a name="l00009"></a>00009 <span class="comment"> *</span>
<a name="l00010"></a>00010 <span class="comment"> *      http://www.apache.org/licenses/LICENSE-2.0</span>
<a name="l00011"></a>00011 <span class="comment"> *</span>
<a name="l00012"></a>00012 <span class="comment"> * Unless required by applicable law or agreed to in writing, software</span>
<a name="l00013"></a>00013 <span class="comment"> * distributed under the License is distributed on an "AS IS" BASIS,</span>
<a name="l00014"></a>00014 <span class="comment"> * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.</span>
<a name="l00015"></a>00015 <span class="comment"> * See the License for the specific language governing permissions and</span>
<a name="l00016"></a>00016 <span class="comment"> * limitations under the License.</span>
<a name="l00017"></a>00017 <span class="comment"> */</span>
<a name="l00018"></a>00018 <span class="preprocessor">#ifndef GUTHTHILA_H</span>
<a name="l00019"></a>00019 <span class="preprocessor"></span><span class="preprocessor">#define GUTHTHILA_H</span>
<a name="l00020"></a>00020 <span class="preprocessor"></span>
<a name="l00021"></a>00021 <span class="preprocessor">#include &lt;guththila_defines.h&gt;</span>
<a name="l00022"></a>00022 <span class="preprocessor">#include &lt;guththila_token.h&gt;</span>
<a name="l00023"></a>00023 <span class="preprocessor">#include &lt;guththila_reader.h&gt;</span>
<a name="l00024"></a>00024 <span class="preprocessor">#include &lt;guththila_xml_writer.h&gt;</span>
<a name="l00025"></a>00025 <span class="preprocessor">#include &lt;guththila_attribute.h&gt;</span>
<a name="l00026"></a>00026 <span class="preprocessor">#include &lt;guththila_namespace.h&gt;</span>
<a name="l00027"></a>00027 <span class="preprocessor">#include &lt;guththila_buffer.h&gt;</span>
<a name="l00028"></a>00028 <span class="preprocessor">#include &lt;guththila_stack.h&gt;</span>
<a name="l00029"></a>00029 <span class="preprocessor">#include &lt;guththila_error.h&gt;</span>
<a name="l00030"></a>00030 
<a name="l00031"></a>00031 <span class="preprocessor">#include &lt;<a class="code" href="axutil__utils_8h.html">axutil_utils.h</a>&gt;</span>
<a name="l00032"></a>00032 
<a name="l00033"></a>00033 <span class="comment">/*</span>
<a name="l00034"></a>00034 <span class="comment">All the functions in this library does not check weather the given arguments are NULL.</span>
<a name="l00035"></a>00035 <span class="comment">It is the responsblity of the user to check weather the arguments contain NULL values.</span>
<a name="l00036"></a>00036 <span class="comment">*/</span>
<a name="l00037"></a>00037 EXTERN_C_START()  
<a name="l00038"></a>00038 
<a name="l00039"></a>00039 enum guththila_status
<a name="l00040"></a>00040 {
<a name="l00041"></a>00041     S_0 = 0, 
<a name="l00042"></a>00042         S_1, 
<a name="l00043"></a>00043         S_2, 
<a name="l00044"></a>00044         S_3
<a name="l00045"></a>00045 };
<a name="l00046"></a>00046 
<a name="l00047"></a>00047 <span class="keyword">enum</span> guththila_UTF16_endianess
<a name="l00048"></a>00048 {
<a name="l00049"></a>00049     None = 1, 
<a name="l00050"></a>00050         LE, 
<a name="l00051"></a>00051         BE 
<a name="l00052"></a>00052 };
<a name="l00053"></a>00053 
<a name="l00054"></a>00054 <span class="keyword">typedef</span> <span class="keyword">enum</span> guththila_type
<a name="l00055"></a>00055 {
<a name="l00056"></a>00056     type_file_name = 0, 
<a name="l00057"></a>00057         type_memory_buffer, 
<a name="l00058"></a>00058         type_reader, 
<a name="l00059"></a>00059         type_io
<a name="l00060"></a>00060 } guththila_type_t;
<a name="l00061"></a>00061 
<a name="l00062"></a>00062 <span class="keyword">enum</span> guththila_event_types
<a name="l00063"></a>00063 {
<a name="l00064"></a>00064     GUTHTHILA_START_DOCUMENT =0, 
<a name="l00065"></a>00065         GUTHTHILA_END_ELEMENT, 
<a name="l00066"></a>00066         GUTHTHILA_CHARACTER,
<a name="l00067"></a>00067     GUTHTHILA_ENTITY_REFERANCE, 
<a name="l00068"></a>00068         GUTHTHILA_COMMENT,
<a name="l00069"></a>00069     GUTHTHILA_SPACE, 
<a name="l00070"></a>00070         GUTHTHILA_START_ELEMENT,
<a name="l00071"></a>00071     GUTHTHILA_EMPTY_ELEMENT
<a name="l00072"></a>00072 };
<a name="l00073"></a>00073 
<a name="l00074"></a>00074 <span class="keyword">typedef</span> <span class="keyword">struct </span>guththila_s
<a name="l00075"></a>00075 {    
<a name="l00076"></a>00076     guththila_tok_list_t tokens; <span class="comment">/* Token cache */</span>
<a name="l00077"></a>00077 
<a name="l00078"></a>00078     guththila_buffer_t buffer;  <span class="comment">/* Holding incoming xml string */</span>  
<a name="l00079"></a>00079 
<a name="l00080"></a>00080     guththila_reader_t *reader; <span class="comment">/* Reading the data */</span>
<a name="l00081"></a>00081 
<a name="l00082"></a>00082     guththila_token_t *prefix; <span class="comment">/* Prefix of the xml element */</span>
<a name="l00083"></a>00083 
<a name="l00084"></a>00084     guththila_token_t *name; <span class="comment">/* xml element local name */</span>
<a name="l00085"></a>00085 
<a name="l00086"></a>00086     guththila_token_t *value; <span class="comment">/* text of a xml element */</span>    
<a name="l00087"></a>00087 
<a name="l00088"></a>00088     guththila_stack_t elem; <span class="comment">/* elements are put in a stack */</span>
<a name="l00089"></a>00089 
<a name="l00090"></a>00090     guththila_stack_t attrib; <span class="comment">/* Attributes are put in a stack */</span>
<a name="l00091"></a>00091 
<a name="l00092"></a>00092     guththila_stack_t namesp; <span class="comment">/* namespaces are put in a stack */</span>    
<a name="l00093"></a>00093 
<a name="l00094"></a>00094     <span class="keywordtype">int</span> status;
<a name="l00095"></a>00095 
<a name="l00096"></a>00096     <span class="keywordtype">int</span> guththila_event; <span class="comment">/* Current event */</span>
<a name="l00097"></a>00097 
<a name="l00098"></a>00098     <span class="keywordtype">size_t</span> next;    <span class="comment">/* Keep track of the position in the xml string */</span>
<a name="l00099"></a>00099 
<a name="l00100"></a>00100     <span class="keywordtype">int</span> last_start; <span class="comment">/* Keep track of the starting position of the last token */</span>
<a name="l00101"></a>00101 
<a name="l00102"></a>00102     guththila_token_t *temp_prefix; <span class="comment">/* Temporery location for prefixes */</span>
<a name="l00103"></a>00103 
<a name="l00104"></a>00104     guththila_token_t *temp_name;   <span class="comment">/* Temporery location for names */</span>
<a name="l00105"></a>00105     
<a name="l00106"></a>00106     guththila_token_t *temp_tok;   <span class="comment">/* We don't know this until we close it */</span>
<a name="l00107"></a>00107 } guththila_t;
<a name="l00108"></a>00108 
<a name="l00109"></a>00109 <span class="comment">/* </span>
<a name="l00110"></a>00110 <span class="comment"> * An element will contain one of these things if it has namespaces </span>
<a name="l00111"></a>00111 <span class="comment"> * */</span>
<a name="l00112"></a>00112 <span class="keyword">typedef</span> <span class="keyword">struct </span>guththila_elem_namesp_s
<a name="l00113"></a>00113 {
<a name="l00114"></a>00114     guththila_namespace_t *namesp; <span class="comment">/* Array of namespaces */</span>
<a name="l00115"></a>00115     <span class="keywordtype">int</span> no;                        <span class="comment">/*Number of namespace in the element */</span>
<a name="l00116"></a>00116     <span class="keywordtype">int</span> size;                      <span class="comment">/* Allocated size */</span>
<a name="l00117"></a>00117 } guththila_elem_namesp_t;
<a name="l00118"></a>00118 
<a name="l00119"></a>00119 <span class="comment">/*</span>
<a name="l00120"></a>00120 <span class="comment"> * Element.</span>
<a name="l00121"></a>00121 <span class="comment"> */</span>
<a name="l00122"></a>00122 <span class="keyword">typedef</span> <span class="keyword">struct </span>guththila_element_s
<a name="l00123"></a>00123 {
<a name="l00124"></a>00124     guththila_token_t *name;    <span class="comment">/* local name */</span>
<a name="l00125"></a>00125 
<a name="l00126"></a>00126     guththila_token_t *prefix;  <span class="comment">/* prefix */</span>
<a name="l00127"></a>00127     
<a name="l00128"></a>00128         <span class="keywordtype">int</span> is_namesp;              <span class="comment">/* Positive if a namespace is present */</span>
<a name="l00129"></a>00129 } guththila_element_t;
<a name="l00130"></a>00130 
<a name="l00131"></a>00131 <span class="comment">/* Initialize the parser */</span>
<a name="l00132"></a>00132 GUTHTHILA_EXPORT <span class="keywordtype">int</span> GUTHTHILA_CALL
<a name="l00133"></a>00133 guththila_init(guththila_t * m, <span class="keywordtype">void</span> *reader, 
<a name="l00134"></a>00134                            <span class="keyword">const</span> <a class="code" href="structaxutil__env.html" title="Axis2 Environment struct.">axutil_env_t</a> * env);
<a name="l00135"></a>00135 
<a name="l00136"></a>00136 <span class="comment">/* Uninitialize the parser */</span>
<a name="l00137"></a>00137 GUTHTHILA_EXPORT <span class="keywordtype">int</span> GUTHTHILA_CALL
<a name="l00138"></a>00138 guththila_un_init(guththila_t * m, <span class="keyword">const</span> <a class="code" href="structaxutil__env.html" title="Axis2 Environment struct.">axutil_env_t</a> * env);
<a name="l00139"></a>00139 
<a name="l00140"></a>00140 <span class="comment">/* Still not used */</span>
<a name="l00141"></a>00141 <span class="keyword">typedef</span> void(GUTHTHILA_CALL * guththila_error_func)(<span class="keywordtype">void</span> *arg, 
<a name="l00142"></a>00142                                                                                                         <span class="keyword">const</span> guththila_char_t *msg, 
<a name="l00143"></a>00143                                                                                                         guththila_error_level level, 
<a name="l00144"></a>00144                                                                                                         <span class="keywordtype">void</span> *locator);
<a name="l00145"></a>00145 
<a name="l00146"></a>00146 <span class="comment">/* </span>
<a name="l00147"></a>00147 <span class="comment"> * Parse the xml and return an event. If something went wrong it will return -1. </span>
<a name="l00148"></a>00148 <span class="comment"> * The events are of the type guththila_event_types. According to the event </span>
<a name="l00149"></a>00149 <span class="comment"> * user can get the required information using the appriate functions.</span>
<a name="l00150"></a>00150 <span class="comment"> * @param g pointer to a guththila_t structure</span>
<a name="l00151"></a>00151 <span class="comment"> * @param env the environment</span>
<a name="l00152"></a>00152 <span class="comment"> */</span>
<a name="l00153"></a>00153 GUTHTHILA_EXPORT <span class="keywordtype">int</span> GUTHTHILA_CALL
<a name="l00154"></a>00154 guththila_next(guththila_t * g, <span class="keyword">const</span> <a class="code" href="structaxutil__env.html" title="Axis2 Environment struct.">axutil_env_t</a> * env);
<a name="l00155"></a>00155 
<a name="l00156"></a>00156 <span class="comment">/*</span>
<a name="l00157"></a>00157 <span class="comment"> * Return the number of attributes in the current element. </span>
<a name="l00158"></a>00158 <span class="comment"> * @param g pointer to a guththila_t structure</span>
<a name="l00159"></a>00159 <span class="comment"> * @param env the environment</span>
<a name="l00160"></a>00160 <span class="comment"> */</span>
<a name="l00161"></a>00161 GUTHTHILA_EXPORT <span class="keywordtype">int</span> GUTHTHILA_CALL
<a name="l00162"></a>00162 guththila_get_attribute_count(guththila_t * g, <span class="keyword">const</span> <a class="code" href="structaxutil__env.html" title="Axis2 Environment struct.">axutil_env_t</a> * env);
<a name="l00163"></a>00163 
<a name="l00164"></a>00164 <span class="comment">/*</span>
<a name="l00165"></a>00165 <span class="comment"> * Return the attribute name.</span>
<a name="l00166"></a>00166 <span class="comment"> * @param g pointer to a guththila_t structure</span>
<a name="l00167"></a>00167 <span class="comment"> * @param att pointer to a attribute</span>
<a name="l00168"></a>00168 <span class="comment"> * @param env the environment</span>
<a name="l00169"></a>00169 <span class="comment"> */</span>
<a name="l00170"></a>00170 GUTHTHILA_EXPORT guththila_char_t * GUTHTHILA_CALL
<a name="l00171"></a>00171 guththila_get_attribute_name(guththila_t * g, guththila_attr_t * att, 
<a name="l00172"></a>00172                                                          <span class="keyword">const</span> <a class="code" href="structaxutil__env.html" title="Axis2 Environment struct.">axutil_env_t</a> * env);
<a name="l00173"></a>00173 
<a name="l00174"></a>00174 <span class="comment">/*</span>
<a name="l00175"></a>00175 <span class="comment"> * Return the attribute value.</span>
<a name="l00176"></a>00176 <span class="comment"> * @param g pointer to a guththila_t structure</span>
<a name="l00177"></a>00177 <span class="comment"> * @param att pointer to a attribute</span>
<a name="l00178"></a>00178 <span class="comment"> * @param env the environment</span>
<a name="l00179"></a>00179 <span class="comment"> */</span>
<a name="l00180"></a>00180 GUTHTHILA_EXPORT guththila_char_t * GUTHTHILA_CALL  
<a name="l00181"></a>00181 guththila_get_attribute_value(guththila_t * g, 
<a name="l00182"></a>00182                                                           guththila_attr_t * att, 
<a name="l00183"></a>00183                                                           <span class="keyword">const</span> <a class="code" href="structaxutil__env.html" title="Axis2 Environment struct.">axutil_env_t</a> * env);
<a name="l00184"></a>00184 
<a name="l00185"></a>00185 <span class="comment">/*</span>
<a name="l00186"></a>00186 <span class="comment"> * Return the attribute prefix.</span>
<a name="l00187"></a>00187 <span class="comment"> * @param g pointer to a guththila_t structure</span>
<a name="l00188"></a>00188 <span class="comment"> * @param att pointer to a attribute</span>
<a name="l00189"></a>00189 <span class="comment"> * @param env the environment</span>
<a name="l00190"></a>00190 <span class="comment"> */</span>
<a name="l00191"></a>00191 GUTHTHILA_EXPORT guththila_char_t *GUTHTHILA_CALL  
<a name="l00192"></a>00192 guththila_get_attribute_prefix(guththila_t * g, 
<a name="l00193"></a>00193                                                            guththila_attr_t * att, 
<a name="l00194"></a>00194                                                            <span class="keyword">const</span> <a class="code" href="structaxutil__env.html" title="Axis2 Environment struct.">axutil_env_t</a> * env);
<a name="l00195"></a>00195 
<a name="l00196"></a>00196 <span class="comment">/* </span>
<a name="l00197"></a>00197 <span class="comment"> * Return the attribute </span>
<a name="l00198"></a>00198 <span class="comment"> * @param g pointer to a guththila_t structure</span>
<a name="l00199"></a>00199 <span class="comment"> * @param env the environment</span>
<a name="l00200"></a>00200 <span class="comment"> */</span>
<a name="l00201"></a>00201 GUTHTHILA_EXPORT guththila_attr_t *GUTHTHILA_CALL  
<a name="l00202"></a>00202 guththila_get_attribute(guththila_t * g, <span class="keyword">const</span> <a class="code" href="structaxutil__env.html" title="Axis2 Environment struct.">axutil_env_t</a> * env);
<a name="l00203"></a>00203 
<a name="l00204"></a>00204 <span class="comment">/*</span>
<a name="l00205"></a>00205 <span class="comment"> * Return the name of the attribute by the attribute bumber. </span>
<a name="l00206"></a>00206 <span class="comment"> * First attribute will be 1.</span>
<a name="l00207"></a>00207 <span class="comment"> * @param g pointer to a guththila_t structure</span>
<a name="l00208"></a>00208 <span class="comment"> * @param index position of the attribute</span>
<a name="l00209"></a>00209 <span class="comment"> * @param env the environment</span>
<a name="l00210"></a>00210 <span class="comment"> */</span>
<a name="l00211"></a>00211 GUTHTHILA_EXPORT guththila_char_t *GUTHTHILA_CALL  
<a name="l00212"></a>00212 guththila_get_attribute_name_by_number(guththila_t * g, <span class="keywordtype">int</span> index, 
<a name="l00213"></a>00213                                                                            <span class="keyword">const</span> <a class="code" href="structaxutil__env.html" title="Axis2 Environment struct.">axutil_env_t</a> *env);
<a name="l00214"></a>00214 
<a name="l00215"></a>00215 <span class="comment">/*</span>
<a name="l00216"></a>00216 <span class="comment"> * Return the attribute value by number.</span>
<a name="l00217"></a>00217 <span class="comment"> * First attribute will be 1.</span>
<a name="l00218"></a>00218 <span class="comment"> * @param g pointer to a guththila_t structure</span>
<a name="l00219"></a>00219 <span class="comment"> * @param index position of the attribute</span>
<a name="l00220"></a>00220 <span class="comment"> * @param env the environment</span>
<a name="l00221"></a>00221 <span class="comment"> */</span>
<a name="l00222"></a>00222 GUTHTHILA_EXPORT guththila_char_t *GUTHTHILA_CALL  
<a name="l00223"></a>00223 guththila_get_attribute_value_by_number(guththila_t * g, <span class="keywordtype">int</span> index, 
<a name="l00224"></a>00224                                                                                 <span class="keyword">const</span> <a class="code" href="structaxutil__env.html" title="Axis2 Environment struct.">axutil_env_t</a> *env);
<a name="l00225"></a>00225 
<a name="l00226"></a>00226 <span class="comment">/* </span>
<a name="l00227"></a>00227 <span class="comment"> * Return the prefix of the attribute.</span>
<a name="l00228"></a>00228 <span class="comment"> * First attribute will be 1.</span>
<a name="l00229"></a>00229 <span class="comment"> * @param g pointer to a guththila_t structure</span>
<a name="l00230"></a>00230 <span class="comment"> * @param index position of the attribute</span>
<a name="l00231"></a>00231 <span class="comment"> * @param env the environment</span>
<a name="l00232"></a>00232 <span class="comment"> */</span>
<a name="l00233"></a>00233 GUTHTHILA_EXPORT guththila_char_t *GUTHTHILA_CALL  
<a name="l00234"></a>00234 guththila_get_attribute_prefix_by_number(guththila_t * g, <span class="keywordtype">int</span> index, 
<a name="l00235"></a>00235                                                                                  <span class="keyword">const</span> <a class="code" href="structaxutil__env.html" title="Axis2 Environment struct.">axutil_env_t</a> *env);
<a name="l00236"></a>00236 
<a name="l00237"></a>00237 <span class="comment">/*</span>
<a name="l00238"></a>00238 <span class="comment"> * Return the name of the element.</span>
<a name="l00239"></a>00239 <span class="comment"> * @param g pointer to a guththila_t structure</span>
<a name="l00240"></a>00240 <span class="comment"> * @param env the environment</span>
<a name="l00241"></a>00241 <span class="comment"> */</span>
<a name="l00242"></a>00242 GUTHTHILA_EXPORT guththila_char_t *GUTHTHILA_CALL  
<a name="l00243"></a>00243 guththila_get_name(guththila_t * g, <span class="keyword">const</span> <a class="code" href="structaxutil__env.html" title="Axis2 Environment struct.">axutil_env_t</a> * env);
<a name="l00244"></a>00244 
<a name="l00245"></a>00245 <span class="comment">/*</span>
<a name="l00246"></a>00246 <span class="comment"> * Return the prefix of the element.</span>
<a name="l00247"></a>00247 <span class="comment"> * @param g pointer to a guththila_t structure</span>
<a name="l00248"></a>00248 <span class="comment"> * @param env the environment</span>
<a name="l00249"></a>00249 <span class="comment"> */</span>
<a name="l00250"></a>00250 GUTHTHILA_EXPORT guththila_char_t *GUTHTHILA_CALL  
<a name="l00251"></a>00251 guththila_get_prefix(guththila_t * g, <span class="keyword">const</span> <a class="code" href="structaxutil__env.html" title="Axis2 Environment struct.">axutil_env_t</a> * env);
<a name="l00252"></a>00252 
<a name="l00253"></a>00253 <span class="comment">/*</span>
<a name="l00254"></a>00254 <span class="comment"> * Return the text of the element.</span>
<a name="l00255"></a>00255 <span class="comment"> * @param g pointer to a guththila_t structure</span>
<a name="l00256"></a>00256 <span class="comment"> * @param env the environment</span>
<a name="l00257"></a>00257 <span class="comment"> */</span>
<a name="l00258"></a>00258 GUTHTHILA_EXPORT guththila_char_t *GUTHTHILA_CALL  
<a name="l00259"></a>00259 guththila_get_value(guththila_t * g, <span class="keyword">const</span> <a class="code" href="structaxutil__env.html" title="Axis2 Environment struct.">axutil_env_t</a> * env);
<a name="l00260"></a>00260 
<a name="l00261"></a>00261 <span class="comment">/*</span>
<a name="l00262"></a>00262 <span class="comment"> * Return the namespace of the element.</span>
<a name="l00263"></a>00263 <span class="comment"> * @param g pointer to a guththila_t structure</span>
<a name="l00264"></a>00264 <span class="comment"> * @param env the environment</span>
<a name="l00265"></a>00265 <span class="comment"> */</span>
<a name="l00266"></a>00266 GUTHTHILA_EXPORT guththila_namespace_t *GUTHTHILA_CALL  
<a name="l00267"></a>00267 guththila_get_namespace(guththila_t * g, <span class="keyword">const</span> <a class="code" href="structaxutil__env.html" title="Axis2 Environment struct.">axutil_env_t</a> * env);
<a name="l00268"></a>00268 
<a name="l00269"></a>00269 <span class="comment">/*</span>
<a name="l00270"></a>00270 <span class="comment"> * Return the number of namespaces in the element.</span>
<a name="l00271"></a>00271 <span class="comment"> * @param g pointer to a guththila_t structure</span>
<a name="l00272"></a>00272 <span class="comment"> * @param env the environment</span>
<a name="l00273"></a>00273 <span class="comment"> */</span>
<a name="l00274"></a>00274 GUTHTHILA_EXPORT <span class="keywordtype">int</span> GUTHTHILA_CALL
<a name="l00275"></a>00275 guththila_get_namespace_count(guththila_t * g, <span class="keyword">const</span> <a class="code" href="structaxutil__env.html" title="Axis2 Environment struct.">axutil_env_t</a> * env);
<a name="l00276"></a>00276 
<a name="l00277"></a>00277 <span class="comment">/*</span>
<a name="l00278"></a>00278 <span class="comment"> * Return the namespace uri of the given namespace.</span>
<a name="l00279"></a>00279 <span class="comment"> * @param g pointer to a guththila_t structure</span>
<a name="l00280"></a>00280 <span class="comment"> * @param ns pointer to a namespace</span>
<a name="l00281"></a>00281 <span class="comment"> * @param env the environment</span>
<a name="l00282"></a>00282 <span class="comment"> */</span>
<a name="l00283"></a>00283 GUTHTHILA_EXPORT guththila_char_t * GUTHTHILA_CALL
<a name="l00284"></a>00284 guththila_get_namespace_uri(guththila_t * g, guththila_namespace_t * ns, 
<a name="l00285"></a>00285                                                         <span class="keyword">const</span> <a class="code" href="structaxutil__env.html" title="Axis2 Environment struct.">axutil_env_t</a> * env);
<a name="l00286"></a>00286 
<a name="l00287"></a>00287 <span class="comment">/* </span>
<a name="l00288"></a>00288 <span class="comment"> * Return the prefix of the namespace.</span>
<a name="l00289"></a>00289 <span class="comment"> * @param g pointer to a guththila_t structure</span>
<a name="l00290"></a>00290 <span class="comment"> * @param ns pointer to a namespace</span>
<a name="l00291"></a>00291 <span class="comment"> * @param env the environment</span>
<a name="l00292"></a>00292 <span class="comment"> */</span>
<a name="l00293"></a>00293 GUTHTHILA_EXPORT guththila_char_t *GUTHTHILA_CALL  
<a name="l00294"></a>00294 guththila_get_namespace_prefix(guththila_t * p, guththila_namespace_t * ns, 
<a name="l00295"></a>00295                                                            <span class="keyword">const</span> <a class="code" href="structaxutil__env.html" title="Axis2 Environment struct.">axutil_env_t</a> * env);
<a name="l00296"></a>00296 
<a name="l00297"></a>00297 <span class="comment">/*</span>
<a name="l00298"></a>00298 <span class="comment"> * Return the prefix of the namespace at the given position.</span>
<a name="l00299"></a>00299 <span class="comment"> * First namespace will have the value 1.</span>
<a name="l00300"></a>00300 <span class="comment"> * @param g pointer to a guththila_t structure</span>
<a name="l00301"></a>00301 <span class="comment"> * @param index position of the namespace</span>
<a name="l00302"></a>00302 <span class="comment"> * @param env the environment</span>
<a name="l00303"></a>00303 <span class="comment"> */</span>
<a name="l00304"></a>00304 GUTHTHILA_EXPORT guththila_char_t *GUTHTHILA_CALL  
<a name="l00305"></a>00305 guththila_get_namespace_prefix_by_number(guththila_t * g, <span class="keywordtype">int</span> index, 
<a name="l00306"></a>00306                                                                                  <span class="keyword">const</span> <a class="code" href="structaxutil__env.html" title="Axis2 Environment struct.">axutil_env_t</a> *env);
<a name="l00307"></a>00307 
<a name="l00308"></a>00308 <span class="comment">/*</span>
<a name="l00309"></a>00309 <span class="comment"> * Get the uri of the namespace at the given position.</span>
<a name="l00310"></a>00310 <span class="comment"> * First namespace will have the value 1.</span>
<a name="l00311"></a>00311 <span class="comment"> * @param g pointer to a guththila_t structure</span>
<a name="l00312"></a>00312 <span class="comment"> * @param index position of the namespace</span>
<a name="l00313"></a>00313 <span class="comment"> * @param env the environment</span>
<a name="l00314"></a>00314 <span class="comment"> */</span>
<a name="l00315"></a>00315 GUTHTHILA_EXPORT guththila_char_t *GUTHTHILA_CALL  
<a name="l00316"></a>00316 guththila_get_namespace_uri_by_number(guththila_t * g, <span class="keywordtype">int</span> index, 
<a name="l00317"></a>00317                                                                           <span class="keyword">const</span> <a class="code" href="structaxutil__env.html" title="Axis2 Environment struct.">axutil_env_t</a> *env);
<a name="l00318"></a>00318 
<a name="l00319"></a>00319 <span class="comment">/*</span>
<a name="l00320"></a>00320 <span class="comment"> * Get the attribute namespace of the attribute at the given position.</span>
<a name="l00321"></a>00321 <span class="comment"> * @param g pointer to a guththila_t structure</span>
<a name="l00322"></a>00322 <span class="comment"> * @param index position of the namespace</span>
<a name="l00323"></a>00323 <span class="comment"> * @param env the environment</span>
<a name="l00324"></a>00324 <span class="comment"> */</span>
<a name="l00325"></a>00325 GUTHTHILA_EXPORT guththila_char_t *GUTHTHILA_CALL  
<a name="l00326"></a>00326 guththila_get_attribute_namespace_by_number(guththila_t *g, <span class="keywordtype">int</span> index, 
<a name="l00327"></a>00327                                                                                         <span class="keyword">const</span> <a class="code" href="structaxutil__env.html" title="Axis2 Environment struct.">axutil_env_t</a> *env);
<a name="l00328"></a>00328 
<a name="l00329"></a>00329 <span class="comment">/*</span>
<a name="l00330"></a>00330 <span class="comment"> * Get the encoding. at the moment we don't support UNICODE</span>
<a name="l00331"></a>00331 <span class="comment"> * @param g pointer to a guththila_t structure</span>
<a name="l00332"></a>00332 <span class="comment"> * @param env the environment</span>
<a name="l00333"></a>00333 <span class="comment"> */</span>
<a name="l00334"></a>00334 GUTHTHILA_EXPORT guththila_char_t *GUTHTHILA_CALL  
<a name="l00335"></a>00335 guththila_get_encoding(guththila_t * p, <span class="keyword">const</span> <a class="code" href="structaxutil__env.html" title="Axis2 Environment struct.">axutil_env_t</a> * env);
<a name="l00336"></a>00336 
<a name="l00337"></a>00337 <span class="comment">/* </span>
<a name="l00338"></a>00338 <span class="comment"> * To do. Implement a proper error handling mechanism.</span>
<a name="l00339"></a>00339 <span class="comment"> * @param g pointer to a guththila_t structure</span>
<a name="l00340"></a>00340 <span class="comment"> * @param env the environment</span>
<a name="l00341"></a>00341 <span class="comment"> */</span>
<a name="l00342"></a>00342 GUTHTHILA_EXPORT <span class="keywordtype">void</span> GUTHTHILA_CALL
<a name="l00343"></a>00343 guththila_set_error_handler(guththila_t * m, guththila_error_func, 
<a name="l00344"></a>00344                                                         <span class="keyword">const</span> <a class="code" href="structaxutil__env.html" title="Axis2 Environment struct.">axutil_env_t</a> * env);
<a name="l00345"></a>00345 EXTERN_C_END() 
<a name="l00346"></a>00346 <span class="preprocessor">#endif  </span>
<a name="l00347"></a>00347 <span class="preprocessor"></span>
</pre></div><hr size="1"><address style="text-align: right;"><small>Generated on Fri Apr 17 11:49:43 2009 for Axis2/C by&nbsp;
<a href="http://www.doxygen.org/index.html">
<img src="doxygen.png" alt="doxygen" align="middle" border="0"></a> 1.5.3 </small></address>
</body>
</html>


<|start_filename|>neethi/src/secpolicy/builder/issued_token_builder.c<|end_filename|>
/*
 * 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.
 */

#include <rp_issued_token_builder.h>

AXIS2_EXTERN neethi_assertion_t * AXIS2_CALL
rp_issued_token_builder_build(const axutil_env_t *env,
		axiom_node_t *node, 
		axiom_element_t *element) 
{
	rp_issued_token_t *issued_token= NULL;
	neethi_policy_t *policy= NULL;
	neethi_policy_t *normalized_policy= NULL;
	neethi_all_t *all= NULL;
	axutil_array_list_t *alternatives= NULL;
	neethi_operator_t *component= NULL;
	axis2_char_t *inclusion_value= NULL;
	axutil_qname_t *qname= NULL;
	axiom_node_t *issuer_node= NULL;
	axiom_element_t *issuer_ele= NULL;
	axiom_element_t *issuer_first_child_ele= NULL;
	axiom_node_t *issuer_first_child_node= NULL;
	axiom_node_t *req_sec_tok_template_node= NULL;
	axiom_element_t *req_sec_tok_template_ele= NULL;
	axiom_node_t *policy_node= NULL;
	axiom_element_t *policy_ele= NULL;
	neethi_assertion_t *assertion= NULL;

	issued_token = rp_issued_token_create(env);
	qname = axutil_qname_create(env, RP_INCLUDE_TOKEN, RP_SP_NS_11, RP_SP_PREFIX);
	inclusion_value = axiom_element_get_attribute_value(element, env, qname);
	axutil_qname_free(qname, env);
	qname = NULL;

    if(!inclusion_value)
    {
        /* we can try whether WS-SP1.2 specific inclusion value */
        qname = axutil_qname_create(env, RP_INCLUDE_TOKEN, RP_SP_NS_12, RP_SP_PREFIX);
        inclusion_value = axiom_element_get_attribute_value(element, env, qname);
        axutil_qname_free(qname, env);
        qname = NULL;
    }

	if (inclusion_value) 
	{
		rp_issued_token_set_inclusion(issued_token, env, inclusion_value);
	}

	qname = axutil_qname_create(env, RP_ISSUER, RP_SP_NS_11, RP_SP_PREFIX);
	issuer_ele = axiom_element_get_first_child_with_qname(element, env, qname,
			node, &issuer_node);
	if (issuer_ele) 
	{
		issuer_first_child_ele = axiom_element_get_first_element(issuer_ele,
				env, issuer_node, &issuer_first_child_node);
		if (issuer_first_child_ele) 
		{
			rp_issued_token_set_issuer_epr(issued_token, env,
					issuer_first_child_node);
		}
	}
	axutil_qname_free(qname, env);
	qname = NULL;

	qname = axutil_qname_create(env, RP_REQUEST_SEC_TOKEN_TEMPLATE, RP_SP_NS_11,
			RP_SP_PREFIX);
	req_sec_tok_template_ele = axiom_element_get_first_child_with_qname(
			element, env, qname, node, &req_sec_tok_template_node);
	if (req_sec_tok_template_ele) 
	{
		rp_issued_token_set_requested_sec_token_template(issued_token, env,
				req_sec_tok_template_node);
	} 
	else 
	{
		return NULL;
	}

	axutil_qname_free(qname, env);
	qname = NULL;

	qname = axutil_qname_create(env, RP_POLICY, RP_POLICY_NS, RP_POLICY_PREFIX);
	policy_ele = axiom_element_get_first_child_with_qname(element, env, qname,
			node, &policy_node);
	if (policy_ele) 
	{
		policy = neethi_engine_get_policy(env, policy_node, policy_ele);
		if (!policy)
		{
			return NULL;
		}
		normalized_policy = neethi_engine_get_normalize(env, AXIS2_FALSE,
				policy);
		neethi_policy_free(policy, env);
		policy = NULL;
		alternatives = neethi_policy_get_alternatives(normalized_policy, env);
		component = (neethi_operator_t *) axutil_array_list_get(alternatives,
				env, 0);
		all = (neethi_all_t *) neethi_operator_get_value(component, env);
		if(AXIS2_FAILURE == rp_issued_token_builder_process_alternatives(env, all, issued_token))
			return NULL;
		assertion = neethi_assertion_create_with_args(env,
				(AXIS2_FREE_VOID_ARG)rp_issued_token_free, issued_token,
				ASSERTION_TYPE_ISSUED_TOKEN);

		neethi_policy_free(normalized_policy, env);
		normalized_policy = NULL;

		return assertion;
	} 

	assertion = neethi_assertion_create(env);
   	neethi_assertion_set_value(
				   	assertion,
				   	env, 
					issued_token, 
					ASSERTION_TYPE_ISSUED_TOKEN);


	return assertion;
}

AXIS2_EXTERN axis2_status_t AXIS2_CALL rp_issued_token_builder_process_alternatives(
		const axutil_env_t *env, neethi_all_t *all,
		rp_issued_token_t *issued_token) {
	neethi_operator_t *operator= NULL;
	axutil_array_list_t *arraylist= NULL;
	neethi_assertion_t *assertion= NULL;
	neethi_assertion_type_t type;

	int i = 0;

	arraylist = neethi_all_get_policy_components(all, env);

	for (i = 0; i < axutil_array_list_size(arraylist, env); i++) 
	{
		operator
				=(neethi_operator_t *) axutil_array_list_get(arraylist, env, i);
		assertion = (neethi_assertion_t *) neethi_operator_get_value(operator,
				env);
		type = neethi_assertion_get_type(assertion, env);

		if (type == ASSERTION_TYPE_REQUIRE_DERIVED_KEYS_SC10) 
		{
			rp_issued_token_set_derivedkeys(issued_token, env, AXIS2_TRUE);
		} 
		else if (type == ASSERTION_TYPE_REQUIRE_EXTERNAL_REFERENCE)
		{
			rp_issued_token_set_require_exernal_reference(issued_token, env, AXIS2_TRUE);
		}
		else if (type == ASSERTION_TYPE_REQUIRE_INTERNAL_REFERENCE)
		{
			rp_issued_token_set_require_internal_reference(issued_token, env, AXIS2_TRUE);			
		}
		else
			return AXIS2_FAILURE;
	}
	return AXIS2_SUCCESS;
}



<|start_filename|>xdocs/api/html/axis2__svc_8h-source.html<|end_filename|>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html><head><meta http-equiv="Content-Type" content="text/html;charset=UTF-8">
<title>Axis2/C: axis2_svc.h Source File</title>
<link href="doxygen.css" rel="stylesheet" type="text/css">
<link href="tabs.css" rel="stylesheet" type="text/css">
</head><body>
<!-- Generated by Doxygen 1.5.3 -->
<div class="tabs">
  <ul>
    <li><a href="index.html"><span>Main&nbsp;Page</span></a></li>
    <li><a href="modules.html"><span>Modules</span></a></li>
    <li><a href="annotated.html"><span>Classes</span></a></li>
    <li class="current"><a href="files.html"><span>Files</span></a></li>
    <li><a href="dirs.html"><span>Directories</span></a></li>
    <li><a href="pages.html"><span>Related&nbsp;Pages</span></a></li>
    <li><a href="examples.html"><span>Examples</span></a></li>
    <li>
      <form action="search.php" method="get">
        <table cellspacing="0" cellpadding="0" border="0">
          <tr>
            <td><label>&nbsp;<u>S</u>earch&nbsp;for&nbsp;</label></td>
            <td><input type="text" name="query" value="" size="20" accesskey="s"/></td>
          </tr>
        </table>
      </form>
    </li>
  </ul>
</div>
<div class="nav">
<a class="el" href="dir_f60961de8e5edc3b2658ef023e959e45.html">deploy</a>&nbsp;&raquo&nbsp;<a class="el" href="dir_6b4e91e54b7316b376882a6402adbf44.html">include</a>&nbsp;&raquo&nbsp;<a class="el" href="dir_df3a7695d5a9e696f30b948b566829e7.html">axis2-1.6.0</a></div>
<h1>axis2_svc.h</h1><a href="axis2__svc_8h.html">Go to the documentation of this file.</a><div class="fragment"><pre class="fragment"><a name="l00001"></a>00001 
<a name="l00002"></a>00002 <span class="comment">/*</span>
<a name="l00003"></a>00003 <span class="comment"> * Licensed to the Apache Software Foundation (ASF) under one or more</span>
<a name="l00004"></a>00004 <span class="comment"> * contributor license agreements.  See the NOTICE file distributed with</span>
<a name="l00005"></a>00005 <span class="comment"> * this work for additional information regarding copyright ownership.</span>
<a name="l00006"></a>00006 <span class="comment"> * The ASF licenses this file to You under the Apache License, Version 2.0</span>
<a name="l00007"></a>00007 <span class="comment"> * (the "License"); you may not use this file except in compliance with</span>
<a name="l00008"></a>00008 <span class="comment"> * the License.  You may obtain a copy of the License at</span>
<a name="l00009"></a>00009 <span class="comment"> *</span>
<a name="l00010"></a>00010 <span class="comment"> *      http://www.apache.org/licenses/LICENSE-2.0</span>
<a name="l00011"></a>00011 <span class="comment"> *</span>
<a name="l00012"></a>00012 <span class="comment"> * Unless required by applicable law or agreed to in writing, software</span>
<a name="l00013"></a>00013 <span class="comment"> * distributed under the License is distributed on an "AS IS" BASIS,</span>
<a name="l00014"></a>00014 <span class="comment"> * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.</span>
<a name="l00015"></a>00015 <span class="comment"> * See the License for the specific language governing permissions and</span>
<a name="l00016"></a>00016 <span class="comment"> * limitations under the License.</span>
<a name="l00017"></a>00017 <span class="comment"> */</span>
<a name="l00018"></a>00018 
<a name="l00019"></a>00019 <span class="preprocessor">#ifndef AXIS2_SVC_H</span>
<a name="l00020"></a>00020 <span class="preprocessor"></span><span class="preprocessor">#define AXIS2_SVC_H</span>
<a name="l00021"></a>00021 <span class="preprocessor"></span>
<a name="l00047"></a>00047 <span class="preprocessor">#include &lt;<a class="code" href="axutil__param__container_8h.html" title="Axis2 Param container interface.">axutil_param_container.h</a>&gt;</span>
<a name="l00048"></a>00048 <span class="preprocessor">#include &lt;<a class="code" href="axis2__flow__container_8h.html">axis2_flow_container.h</a>&gt;</span>
<a name="l00049"></a>00049 <span class="preprocessor">#include &lt;axis2_op.h&gt;</span>
<a name="l00050"></a>00050 <span class="preprocessor">#include &lt;<a class="code" href="axis2__svc__grp_8h.html">axis2_svc_grp.h</a>&gt;</span>
<a name="l00051"></a>00051 <span class="preprocessor">#include &lt;<a class="code" href="axutil__qname_8h.html" title="represents a qualified name">axutil_qname.h</a>&gt;</span>
<a name="l00052"></a>00052 <span class="preprocessor">#include &lt;axutil_error.h&gt;</span>
<a name="l00053"></a>00053 <span class="preprocessor">#include &lt;<a class="code" href="axutil__array__list_8h.html" title="Axis2 array_list interface.">axutil_array_list.h</a>&gt;</span>
<a name="l00054"></a>00054 <span class="preprocessor">#include &lt;axis2_const.h&gt;</span>
<a name="l00055"></a>00055 <span class="preprocessor">#include &lt;<a class="code" href="axis2__phase__resolver_8h.html">axis2_phase_resolver.h</a>&gt;</span>
<a name="l00056"></a>00056 <span class="preprocessor">#include &lt;<a class="code" href="axis2__module__desc_8h.html">axis2_module_desc.h</a>&gt;</span>
<a name="l00057"></a>00057 <span class="preprocessor">#include &lt;<a class="code" href="axis2__conf_8h.html" title="Axis2 configuration interface.">axis2_conf.h</a>&gt;</span>
<a name="l00058"></a>00058 <span class="preprocessor">#include &lt;axutil_string.h&gt;</span>
<a name="l00059"></a>00059 <span class="preprocessor">#include &lt;axutil_stream.h&gt;</span>
<a name="l00060"></a>00060 
<a name="l00061"></a>00061 <span class="preprocessor">#ifdef __cplusplus</span>
<a name="l00062"></a>00062 <span class="preprocessor"></span><span class="keyword">extern</span> <span class="stringliteral">"C"</span>
<a name="l00063"></a>00063 {
<a name="l00064"></a>00064 <span class="preprocessor">#endif</span>
<a name="l00065"></a>00065 <span class="preprocessor"></span>
<a name="l00067"></a><a class="code" href="group__axis2__svc.html#gc4a9229f924f3af161d02183a9dd6ca3">00067</a>     <span class="keyword">typedef</span> <span class="keyword">struct </span>axis2_svc <a class="code" href="group__axis2__svc.html#gc4a9229f924f3af161d02183a9dd6ca3">axis2_svc_t</a>;
<a name="l00068"></a>00068 
<a name="l00069"></a>00069     <span class="keyword">struct </span>axis2_svc_grp;
<a name="l00070"></a>00070     <span class="keyword">struct </span>axis2_flow_container;
<a name="l00071"></a>00071     <span class="keyword">struct </span>axutil_param_container;
<a name="l00072"></a>00072     <span class="keyword">struct </span>axis2_module_desc;
<a name="l00073"></a>00073     <span class="keyword">struct </span>axis2_conf;
<a name="l00074"></a>00074 
<a name="l00081"></a>00081     AXIS2_EXTERN <span class="keywordtype">void</span> AXIS2_CALL
<a name="l00082"></a>00082     <a class="code" href="group__axis2__svc.html#g6adc90fa30952058bb566df6727c75da">axis2_svc_free</a>(
<a name="l00083"></a>00083         <a class="code" href="group__axis2__svc.html#gc4a9229f924f3af161d02183a9dd6ca3">axis2_svc_t</a> * svc,
<a name="l00084"></a>00084         <span class="keyword">const</span> <a class="code" href="structaxutil__env.html" title="Axis2 Environment struct.">axutil_env_t</a> * env);
<a name="l00085"></a>00085 
<a name="l00094"></a>00094     AXIS2_EXTERN axis2_status_t AXIS2_CALL
<a name="l00095"></a>00095     <a class="code" href="group__axis2__svc.html#g5cbd6c2e47273db94632e6d5a407ffa9">axis2_svc_add_op</a>(
<a name="l00096"></a>00096         <a class="code" href="group__axis2__svc.html#gc4a9229f924f3af161d02183a9dd6ca3">axis2_svc_t</a> * svc,
<a name="l00097"></a>00097         <span class="keyword">const</span> <a class="code" href="structaxutil__env.html" title="Axis2 Environment struct.">axutil_env_t</a> * env,
<a name="l00098"></a>00098         <span class="keyword">struct</span> axis2_op *op);
<a name="l00099"></a>00099 
<a name="l00107"></a>00107     AXIS2_EXTERN <span class="keyword">struct </span>axis2_op *AXIS2_CALL
<a name="l00108"></a>00108     <a class="code" href="group__axis2__svc.html#g3c994b6da8e2a6adeb9e61771718366c">axis2_svc_get_op_with_qname</a>(
<a name="l00109"></a>00109         <span class="keyword">const</span> <a class="code" href="group__axis2__svc.html#gc4a9229f924f3af161d02183a9dd6ca3">axis2_svc_t</a> * svc,
<a name="l00110"></a>00110         <span class="keyword">const</span> <a class="code" href="structaxutil__env.html" title="Axis2 Environment struct.">axutil_env_t</a> * env,
<a name="l00111"></a>00111         <span class="keyword">const</span> axutil_qname_t * op_qname);
<a name="l00112"></a>00112 
<a name="l00123"></a>00123     AXIS2_EXTERN <a class="code" href="group__axutil__array__list.html#g1a6a89777db876cfa0cc86787b7be6a0">axutil_array_list_t</a> *AXIS2_CALL
<a name="l00124"></a>00124     <a class="code" href="group__axis2__svc.html#g084262a14dff6edf6e822e13a0c7bdfa">axis2_svc_get_rest_op_list_with_method_and_location</a>(
<a name="l00125"></a>00125         <span class="keyword">const</span> <a class="code" href="group__axis2__svc.html#gc4a9229f924f3af161d02183a9dd6ca3">axis2_svc_t</a> * svc,
<a name="l00126"></a>00126         <span class="keyword">const</span> <a class="code" href="structaxutil__env.html" title="Axis2 Environment struct.">axutil_env_t</a> * env,
<a name="l00127"></a>00127         <span class="keyword">const</span> axis2_char_t * http_method,
<a name="l00128"></a>00128         <span class="keyword">const</span> axis2_char_t * http_location);
<a name="l00129"></a>00129 
<a name="l00130"></a>00130 
<a name="l00138"></a>00138     AXIS2_EXTERN <a class="code" href="group__axutil__hash.html#gb2d7d14db2de92a101573f44421ac12a">axutil_hash_t</a> *AXIS2_CALL
<a name="l00139"></a>00139     <a class="code" href="group__axis2__svc.html#g380cf5374766b1bd86666f132121c3df">axis2_svc_get_rest_map</a>(
<a name="l00140"></a>00140         <span class="keyword">const</span> <a class="code" href="group__axis2__svc.html#gc4a9229f924f3af161d02183a9dd6ca3">axis2_svc_t</a> * svc,
<a name="l00141"></a>00141         <span class="keyword">const</span> <a class="code" href="structaxutil__env.html" title="Axis2 Environment struct.">axutil_env_t</a> * env);
<a name="l00142"></a>00142 
<a name="l00150"></a>00150     AXIS2_EXTERN <span class="keyword">struct </span>axis2_op *AXIS2_CALL
<a name="l00151"></a>00151                 <a class="code" href="group__axis2__svc.html#g49a1d2e36cf1c13d113ac5ed04ab2455">axis2_svc_get_op_with_name</a>(
<a name="l00152"></a>00152                     <span class="keyword">const</span> <a class="code" href="group__axis2__svc.html#gc4a9229f924f3af161d02183a9dd6ca3">axis2_svc_t</a> * svc,
<a name="l00153"></a>00153                     <span class="keyword">const</span> <a class="code" href="structaxutil__env.html" title="Axis2 Environment struct.">axutil_env_t</a> * env,
<a name="l00154"></a>00154                     <span class="keyword">const</span> axis2_char_t * op_name);
<a name="l00155"></a>00155 
<a name="l00162"></a>00162     AXIS2_EXTERN <a class="code" href="group__axutil__hash.html#gb2d7d14db2de92a101573f44421ac12a">axutil_hash_t</a> *AXIS2_CALL
<a name="l00163"></a>00163     <a class="code" href="group__axis2__svc.html#g1574ba3e87a679748c2395a521787d56">axis2_svc_get_all_ops</a>(
<a name="l00164"></a>00164         <span class="keyword">const</span> <a class="code" href="group__axis2__svc.html#gc4a9229f924f3af161d02183a9dd6ca3">axis2_svc_t</a> * svc,
<a name="l00165"></a>00165         <span class="keyword">const</span> <a class="code" href="structaxutil__env.html" title="Axis2 Environment struct.">axutil_env_t</a> * env);
<a name="l00166"></a>00166 
<a name="l00174"></a>00174     AXIS2_EXTERN axis2_status_t AXIS2_CALL
<a name="l00175"></a>00175     <a class="code" href="group__axis2__svc.html#g260a062049966a472bd05355015736af">axis2_svc_set_parent</a>(
<a name="l00176"></a>00176         <a class="code" href="group__axis2__svc.html#gc4a9229f924f3af161d02183a9dd6ca3">axis2_svc_t</a> * svc,
<a name="l00177"></a>00177         <span class="keyword">const</span> <a class="code" href="structaxutil__env.html" title="Axis2 Environment struct.">axutil_env_t</a> * env,
<a name="l00178"></a>00178         <span class="keyword">struct</span> axis2_svc_grp *svc_grp);
<a name="l00179"></a>00179 
<a name="l00186"></a>00186     AXIS2_EXTERN <span class="keyword">struct </span>axis2_svc_grp *AXIS2_CALL
<a name="l00187"></a>00187                 <a class="code" href="group__axis2__svc.html#g1469032ca1c58b9eb5b120e7fe9a9ad1">axis2_svc_get_parent</a>(
<a name="l00188"></a>00188                     <span class="keyword">const</span> <a class="code" href="group__axis2__svc.html#gc4a9229f924f3af161d02183a9dd6ca3">axis2_svc_t</a> * svc,
<a name="l00189"></a>00189                     <span class="keyword">const</span> <a class="code" href="structaxutil__env.html" title="Axis2 Environment struct.">axutil_env_t</a> * env);
<a name="l00190"></a>00190 
<a name="l00198"></a>00198     AXIS2_EXTERN axis2_status_t AXIS2_CALL
<a name="l00199"></a>00199     <a class="code" href="group__axis2__svc.html#g30653ba40ccaac99fad8efed0ca18805">axis2_svc_set_qname</a>(
<a name="l00200"></a>00200         <a class="code" href="group__axis2__svc.html#gc4a9229f924f3af161d02183a9dd6ca3">axis2_svc_t</a> * svc,
<a name="l00201"></a>00201         <span class="keyword">const</span> <a class="code" href="structaxutil__env.html" title="Axis2 Environment struct.">axutil_env_t</a> * env,
<a name="l00202"></a>00202         <span class="keyword">const</span> axutil_qname_t * qname);
<a name="l00203"></a>00203 
<a name="l00210"></a>00210     AXIS2_EXTERN <span class="keyword">const</span> axutil_qname_t *AXIS2_CALL
<a name="l00211"></a>00211     <a class="code" href="group__axis2__svc.html#gb08959beaff32b83172f690ca959f65f">axis2_svc_get_qname</a>(
<a name="l00212"></a>00212         <span class="keyword">const</span> <a class="code" href="group__axis2__svc.html#gc4a9229f924f3af161d02183a9dd6ca3">axis2_svc_t</a> * svc,
<a name="l00213"></a>00213         <span class="keyword">const</span> <a class="code" href="structaxutil__env.html" title="Axis2 Environment struct.">axutil_env_t</a> * env);
<a name="l00214"></a>00214 
<a name="l00223"></a>00223     AXIS2_EXTERN axis2_status_t AXIS2_CALL
<a name="l00224"></a>00224     <a class="code" href="group__axis2__svc.html#gc48a028c9452d77839752c8d9c3adbd1">axis2_svc_add_param</a>(
<a name="l00225"></a>00225         <a class="code" href="group__axis2__svc.html#gc4a9229f924f3af161d02183a9dd6ca3">axis2_svc_t</a> * svc,
<a name="l00226"></a>00226         <span class="keyword">const</span> <a class="code" href="structaxutil__env.html" title="Axis2 Environment struct.">axutil_env_t</a> * env,
<a name="l00227"></a>00227         axutil_param_t * param);
<a name="l00228"></a>00228 
<a name="l00237"></a>00237     AXIS2_EXTERN axutil_param_t *AXIS2_CALL
<a name="l00238"></a>00238     <a class="code" href="group__axis2__svc.html#g5e42b969b0b6de99d284da0db942e969">axis2_svc_get_param</a>(
<a name="l00239"></a>00239         <span class="keyword">const</span> <a class="code" href="group__axis2__svc.html#gc4a9229f924f3af161d02183a9dd6ca3">axis2_svc_t</a> * svc,
<a name="l00240"></a>00240         <span class="keyword">const</span> <a class="code" href="structaxutil__env.html" title="Axis2 Environment struct.">axutil_env_t</a> * env,
<a name="l00241"></a>00241         <span class="keyword">const</span> axis2_char_t * name);
<a name="l00242"></a>00242 
<a name="l00250"></a>00250     AXIS2_EXTERN <a class="code" href="group__axutil__array__list.html#g1a6a89777db876cfa0cc86787b7be6a0">axutil_array_list_t</a> *AXIS2_CALL
<a name="l00251"></a>00251     <a class="code" href="group__axis2__svc.html#g0db6ea3cba35603e3bea428005a1e681">axis2_svc_get_all_params</a>(
<a name="l00252"></a>00252         <span class="keyword">const</span> <a class="code" href="group__axis2__svc.html#gc4a9229f924f3af161d02183a9dd6ca3">axis2_svc_t</a> * svc,
<a name="l00253"></a>00253         <span class="keyword">const</span> <a class="code" href="structaxutil__env.html" title="Axis2 Environment struct.">axutil_env_t</a> * env);
<a name="l00254"></a>00254 
<a name="l00262"></a>00262     AXIS2_EXTERN axis2_bool_t AXIS2_CALL
<a name="l00263"></a>00263     <a class="code" href="group__axis2__svc.html#ge02611f21135d71edfffba0bdfc24388">axis2_svc_is_param_locked</a>(
<a name="l00264"></a>00264         <a class="code" href="group__axis2__svc.html#gc4a9229f924f3af161d02183a9dd6ca3">axis2_svc_t</a> * svc,
<a name="l00265"></a>00265         <span class="keyword">const</span> <a class="code" href="structaxutil__env.html" title="Axis2 Environment struct.">axutil_env_t</a> * env,
<a name="l00266"></a>00266         <span class="keyword">const</span> axis2_char_t * param_name);
<a name="l00267"></a>00267 
<a name="l00278"></a>00278     AXIS2_EXTERN axis2_status_t AXIS2_CALL
<a name="l00279"></a>00279     <a class="code" href="group__axis2__svc.html#gf2edbd32031290c35891d23080566790">axis2_svc_engage_module</a>(
<a name="l00280"></a>00280         <a class="code" href="group__axis2__svc.html#gc4a9229f924f3af161d02183a9dd6ca3">axis2_svc_t</a> * svc,
<a name="l00281"></a>00281         <span class="keyword">const</span> <a class="code" href="structaxutil__env.html" title="Axis2 Environment struct.">axutil_env_t</a> * env,
<a name="l00282"></a>00282         <span class="keyword">struct</span> axis2_module_desc *module_desc,
<a name="l00283"></a>00283         <span class="keyword">struct</span> axis2_conf *conf);
<a name="l00284"></a>00284 
<a name="l00295"></a>00295     AXIS2_EXTERN axis2_status_t AXIS2_CALL
<a name="l00296"></a>00296     <a class="code" href="group__axis2__svc.html#gbccd941c1f48817cb8aad67eb017f70a">axis2_svc_disengage_module</a>(
<a name="l00297"></a>00297         <a class="code" href="group__axis2__svc.html#gc4a9229f924f3af161d02183a9dd6ca3">axis2_svc_t</a> * svc,
<a name="l00298"></a>00298         <span class="keyword">const</span> <a class="code" href="structaxutil__env.html" title="Axis2 Environment struct.">axutil_env_t</a> * env,
<a name="l00299"></a>00299         <span class="keyword">struct</span> axis2_module_desc *module_desc,
<a name="l00300"></a>00300         <span class="keyword">struct</span> axis2_conf *conf);
<a name="l00301"></a>00301 
<a name="l00309"></a>00309     AXIS2_EXTERN axis2_bool_t AXIS2_CALL
<a name="l00310"></a>00310     <a class="code" href="group__axis2__svc.html#gd0f98db137449b246ef2b2b6ec6ba6a4">axis2_svc_is_module_engaged</a>(
<a name="l00311"></a>00311         <a class="code" href="group__axis2__svc.html#gc4a9229f924f3af161d02183a9dd6ca3">axis2_svc_t</a> * svc,
<a name="l00312"></a>00312         <span class="keyword">const</span> <a class="code" href="structaxutil__env.html" title="Axis2 Environment struct.">axutil_env_t</a> * env,
<a name="l00313"></a>00313         axutil_qname_t * module_qname);
<a name="l00314"></a>00314 
<a name="l00321"></a>00321     AXIS2_EXTERN <a class="code" href="group__axutil__array__list.html#g1a6a89777db876cfa0cc86787b7be6a0">axutil_array_list_t</a> *AXIS2_CALL
<a name="l00322"></a>00322     <a class="code" href="group__axis2__svc.html#g41a846eaf8687e08757fa82924441157">axis2_svc_get_engaged_module_list</a>(
<a name="l00323"></a>00323         <span class="keyword">const</span> <a class="code" href="group__axis2__svc.html#gc4a9229f924f3af161d02183a9dd6ca3">axis2_svc_t</a> * svc,
<a name="l00324"></a>00324         <span class="keyword">const</span> <a class="code" href="structaxutil__env.html" title="Axis2 Environment struct.">axutil_env_t</a> * env);
<a name="l00325"></a>00325 
<a name="l00341"></a>00341     AXIS2_EXTERN axis2_status_t AXIS2_CALL
<a name="l00342"></a>00342     <a class="code" href="group__axis2__svc.html#g0a974ad2f1876c560ebe6ef3ce9cea40">axis2_svc_add_module_ops</a>(
<a name="l00343"></a>00343         <a class="code" href="group__axis2__svc.html#gc4a9229f924f3af161d02183a9dd6ca3">axis2_svc_t</a> * svc,
<a name="l00344"></a>00344         <span class="keyword">const</span> <a class="code" href="structaxutil__env.html" title="Axis2 Environment struct.">axutil_env_t</a> * env,
<a name="l00345"></a>00345         <span class="keyword">struct</span> axis2_module_desc *module_desc,
<a name="l00346"></a>00346         <span class="keyword">struct</span> axis2_conf *axis2_config);
<a name="l00347"></a>00347 
<a name="l00356"></a>00356     <span class="comment">/*AXIS2_EXTERN axis2_status_t AXIS2_CALL</span>
<a name="l00357"></a>00357 <span class="comment"></span>
<a name="l00358"></a>00358 <span class="comment">       axis2_svc_add_to_engaged_module_list(axis2_svc_t *svc,</span>
<a name="l00359"></a>00359 <span class="comment">       const axutil_env_t *env,</span>
<a name="l00360"></a>00360 <span class="comment">       struct axis2_module_desc *module_desc); */</span>
<a name="l00361"></a>00361 
<a name="l00368"></a>00368     <span class="comment">/*AXIS2_EXTERN axutil_array_list_t *AXIS2_CALL</span>
<a name="l00369"></a>00369 <span class="comment"></span>
<a name="l00370"></a>00370 <span class="comment">       axis2_svc_get_all_engaged_modules(const axis2_svc_t *svc,</span>
<a name="l00371"></a>00371 <span class="comment">       const axutil_env_t *env); */</span>
<a name="l00372"></a>00372 
<a name="l00380"></a>00380     AXIS2_EXTERN axis2_status_t AXIS2_CALL
<a name="l00381"></a>00381     <a class="code" href="group__axis2__svc.html#gae80b545f3209e5b3a7afada2c8151e2">axis2_svc_set_style</a>(
<a name="l00382"></a>00382         <a class="code" href="group__axis2__svc.html#gc4a9229f924f3af161d02183a9dd6ca3">axis2_svc_t</a> * svc,
<a name="l00383"></a>00383         <span class="keyword">const</span> <a class="code" href="structaxutil__env.html" title="Axis2 Environment struct.">axutil_env_t</a> * env,
<a name="l00384"></a>00384         <span class="keyword">const</span> axis2_char_t * style);
<a name="l00385"></a>00385 
<a name="l00392"></a>00392     AXIS2_EXTERN <span class="keyword">const</span> axis2_char_t *AXIS2_CALL
<a name="l00393"></a>00393     <a class="code" href="group__axis2__svc.html#g4da58747b15717417ee7399fe0a36cc6">axis2_svc_get_style</a>(
<a name="l00394"></a>00394         <span class="keyword">const</span> <a class="code" href="group__axis2__svc.html#gc4a9229f924f3af161d02183a9dd6ca3">axis2_svc_t</a> * svc,
<a name="l00395"></a>00395         <span class="keyword">const</span> <a class="code" href="structaxutil__env.html" title="Axis2 Environment struct.">axutil_env_t</a> * env);
<a name="l00396"></a>00396 
<a name="l00404"></a>00404     <span class="comment">/*AXIS2_EXTERN struct axis2_flow *AXIS2_CALL</span>
<a name="l00405"></a>00405 <span class="comment"></span>
<a name="l00406"></a>00406 <span class="comment">       axis2_svc_get_in_flow(const axis2_svc_t *svc,</span>
<a name="l00407"></a>00407 <span class="comment">       const axutil_env_t *env); */</span>
<a name="l00408"></a>00408 
<a name="l00417"></a>00417     <span class="comment">/*AXIS2_EXTERN axis2_status_t AXIS2_CALL</span>
<a name="l00418"></a>00418 <span class="comment"></span>
<a name="l00419"></a>00419 <span class="comment">       axis2_svc_set_in_flow(axis2_svc_t *svc,</span>
<a name="l00420"></a>00420 <span class="comment">       const axutil_env_t *env,</span>
<a name="l00421"></a>00421 <span class="comment">       struct axis2_flow *in_flow); */</span>
<a name="l00422"></a>00422 
<a name="l00430"></a>00430     <span class="comment">/*AXIS2_EXTERN struct axis2_flow *AXIS2_CALL</span>
<a name="l00431"></a>00431 <span class="comment"></span>
<a name="l00432"></a>00432 <span class="comment">       axis2_svc_get_out_flow(</span>
<a name="l00433"></a>00433 <span class="comment">       const axis2_svc_t *svc,</span>
<a name="l00434"></a>00434 <span class="comment">       const axutil_env_t *env); */</span>
<a name="l00435"></a>00435 
<a name="l00444"></a>00444     <span class="comment">/*AXIS2_EXTERN axis2_status_t AXIS2_CALL</span>
<a name="l00445"></a>00445 <span class="comment"></span>
<a name="l00446"></a>00446 <span class="comment">       axis2_svc_set_out_flow(</span>
<a name="l00447"></a>00447 <span class="comment">       axis2_svc_t *svc,</span>
<a name="l00448"></a>00448 <span class="comment">       const axutil_env_t *env,</span>
<a name="l00449"></a>00449 <span class="comment">       struct axis2_flow *out_flow); */</span>
<a name="l00450"></a>00450 
<a name="l00458"></a>00458     <span class="comment">/*AXIS2_EXTERN struct axis2_flow *AXIS2_CALL</span>
<a name="l00459"></a>00459 <span class="comment"></span>
<a name="l00460"></a>00460 <span class="comment">       axis2_svc_get_fault_in_flow(</span>
<a name="l00461"></a>00461 <span class="comment">       const axis2_svc_t *svc,</span>
<a name="l00462"></a>00462 <span class="comment">       const axutil_env_t *env); */</span>
<a name="l00463"></a>00463 
<a name="l00472"></a>00472     <span class="comment">/*AXIS2_EXTERN axis2_status_t AXIS2_CALL</span>
<a name="l00473"></a>00473 <span class="comment"></span>
<a name="l00474"></a>00474 <span class="comment">       axis2_svc_set_fault_in_flow(</span>
<a name="l00475"></a>00475 <span class="comment">       axis2_svc_t *svc,</span>
<a name="l00476"></a>00476 <span class="comment">       const axutil_env_t *env,</span>
<a name="l00477"></a>00477 <span class="comment">       struct axis2_flow *fault_flow); */</span>
<a name="l00478"></a>00478 
<a name="l00486"></a>00486     <span class="comment">/*AXIS2_EXTERN struct axis2_flow *AXIS2_CALL</span>
<a name="l00487"></a>00487 <span class="comment"></span>
<a name="l00488"></a>00488 <span class="comment">       axis2_svc_get_fault_out_flow(</span>
<a name="l00489"></a>00489 <span class="comment">       const axis2_svc_t *svc,</span>
<a name="l00490"></a>00490 <span class="comment">       const axutil_env_t *env); */</span>
<a name="l00491"></a>00491 
<a name="l00500"></a>00500     <span class="comment">/*AXIS2_EXTERN axis2_status_t AXIS2_CALL</span>
<a name="l00501"></a>00501 <span class="comment"></span>
<a name="l00502"></a>00502 <span class="comment">       axis2_svc_set_fault_out_flow(</span>
<a name="l00503"></a>00503 <span class="comment">       axis2_svc_t *svc,</span>
<a name="l00504"></a>00504 <span class="comment">       const axutil_env_t *env,</span>
<a name="l00505"></a>00505 <span class="comment">       struct axis2_flow *fault_flow); */</span>
<a name="l00506"></a>00506 
<a name="l00515"></a>00515     AXIS2_EXTERN <span class="keyword">struct </span>axis2_op *AXIS2_CALL
<a name="l00516"></a>00516                 <a class="code" href="group__axis2__svc.html#g91fa5f06a989145dadd9d071ca1eb648">axis2_svc_get_op_by_soap_action</a>(
<a name="l00517"></a>00517                     <span class="keyword">const</span> <a class="code" href="group__axis2__svc.html#gc4a9229f924f3af161d02183a9dd6ca3">axis2_svc_t</a> * svc,
<a name="l00518"></a>00518                     <span class="keyword">const</span> <a class="code" href="structaxutil__env.html" title="Axis2 Environment struct.">axutil_env_t</a> * env,
<a name="l00519"></a>00519                     <span class="keyword">const</span> axis2_char_t * soap_action);
<a name="l00520"></a>00520 
<a name="l00530"></a>00530     <span class="comment">/*AXIS2_EXTERN struct axis2_op *AXIS2_CALL</span>
<a name="l00531"></a>00531 <span class="comment"></span>
<a name="l00532"></a>00532 <span class="comment">       axis2_svc_get_op_by_soap_action_and_endpoint(</span>
<a name="l00533"></a>00533 <span class="comment">       const axis2_svc_t *svc,</span>
<a name="l00534"></a>00534 <span class="comment">       const axutil_env_t *env,</span>
<a name="l00535"></a>00535 <span class="comment">       const axis2_char_t *soap_action,</span>
<a name="l00536"></a>00536 <span class="comment">       const axutil_qname_t *endpoint); */</span>
<a name="l00537"></a>00537 
<a name="l00544"></a>00544     AXIS2_EXTERN <span class="keyword">const</span> axis2_char_t *AXIS2_CALL
<a name="l00545"></a>00545     <a class="code" href="group__axis2__svc.html#ga2590adf8cb809185ccd1117e5c38767">axis2_svc_get_name</a>(
<a name="l00546"></a>00546         <span class="keyword">const</span> <a class="code" href="group__axis2__svc.html#gc4a9229f924f3af161d02183a9dd6ca3">axis2_svc_t</a> * svc,
<a name="l00547"></a>00547         <span class="keyword">const</span> <a class="code" href="structaxutil__env.html" title="Axis2 Environment struct.">axutil_env_t</a> * env);
<a name="l00548"></a>00548 
<a name="l00556"></a>00556     AXIS2_EXTERN axis2_status_t AXIS2_CALL
<a name="l00557"></a>00557     <a class="code" href="group__axis2__svc.html#gc04e374dc9571b5726b88bfd2e68e702">axis2_svc_set_name</a>(
<a name="l00558"></a>00558         <a class="code" href="group__axis2__svc.html#gc4a9229f924f3af161d02183a9dd6ca3">axis2_svc_t</a> * svc,
<a name="l00559"></a>00559         <span class="keyword">const</span> <a class="code" href="structaxutil__env.html" title="Axis2 Environment struct.">axutil_env_t</a> * env,
<a name="l00560"></a>00560         <span class="keyword">const</span> axis2_char_t * svc_name);
<a name="l00561"></a>00561 
<a name="l00568"></a>00568     AXIS2_EXTERN axis2_status_t AXIS2_CALL
<a name="l00569"></a>00569     <a class="code" href="group__axis2__svc.html#g8f763e28256c43eebf4e371ff61afb1e">axis2_svc_set_last_update</a>(
<a name="l00570"></a>00570         <a class="code" href="group__axis2__svc.html#gc4a9229f924f3af161d02183a9dd6ca3">axis2_svc_t</a> * svc,
<a name="l00571"></a>00571         <span class="keyword">const</span> <a class="code" href="structaxutil__env.html" title="Axis2 Environment struct.">axutil_env_t</a> * env);
<a name="l00572"></a>00572 
<a name="l00579"></a>00579     AXIS2_EXTERN <span class="keywordtype">long</span> AXIS2_CALL
<a name="l00580"></a>00580     <a class="code" href="group__axis2__svc.html#g788443be98d1d5ca71f1989f74cd96c9">axis2_svc_get_last_update</a>(
<a name="l00581"></a>00581         <span class="keyword">const</span> <a class="code" href="group__axis2__svc.html#gc4a9229f924f3af161d02183a9dd6ca3">axis2_svc_t</a> * svc,
<a name="l00582"></a>00582         <span class="keyword">const</span> <a class="code" href="structaxutil__env.html" title="Axis2 Environment struct.">axutil_env_t</a> * env);
<a name="l00583"></a>00583 
<a name="l00591"></a>00591     AXIS2_EXTERN <span class="keyword">const</span> axis2_char_t *AXIS2_CALL
<a name="l00592"></a>00592     <a class="code" href="group__axis2__svc.html#g52c960cead461a124b76b2fb4e3835b2">axis2_svc_get_svc_desc</a>(
<a name="l00593"></a>00593         <span class="keyword">const</span> <a class="code" href="group__axis2__svc.html#gc4a9229f924f3af161d02183a9dd6ca3">axis2_svc_t</a> * svc,
<a name="l00594"></a>00594         <span class="keyword">const</span> <a class="code" href="structaxutil__env.html" title="Axis2 Environment struct.">axutil_env_t</a> * env);
<a name="l00595"></a>00595 
<a name="l00602"></a>00602     AXIS2_EXTERN axis2_status_t AXIS2_CALL
<a name="l00603"></a>00603     <a class="code" href="group__axis2__svc.html#g4a5c7c02129b43cdb31b47d4d02ed1ae">axis2_svc_set_svc_desc</a>(
<a name="l00604"></a>00604         <a class="code" href="group__axis2__svc.html#gc4a9229f924f3af161d02183a9dd6ca3">axis2_svc_t</a> * svc,
<a name="l00605"></a>00605         <span class="keyword">const</span> <a class="code" href="structaxutil__env.html" title="Axis2 Environment struct.">axutil_env_t</a> * env,
<a name="l00606"></a>00606         <span class="keyword">const</span> axis2_char_t * svc_desc);
<a name="l00607"></a>00607 
<a name="l00615"></a>00615     AXIS2_EXTERN <span class="keyword">const</span> axis2_char_t *AXIS2_CALL
<a name="l00616"></a>00616     <a class="code" href="group__axis2__svc.html#g1287041d3b531780558da54386ed38a3">axis2_svc_get_svc_wsdl_path</a>(
<a name="l00617"></a>00617         <span class="keyword">const</span> <a class="code" href="group__axis2__svc.html#gc4a9229f924f3af161d02183a9dd6ca3">axis2_svc_t</a> * svc,
<a name="l00618"></a>00618         <span class="keyword">const</span> <a class="code" href="structaxutil__env.html" title="Axis2 Environment struct.">axutil_env_t</a> * env);
<a name="l00619"></a>00619 
<a name="l00626"></a>00626     AXIS2_EXTERN axis2_status_t AXIS2_CALL
<a name="l00627"></a>00627     <a class="code" href="group__axis2__svc.html#gf864bfde998f8c76bf3264821df8460f">axis2_svc_set_svc_wsdl_path</a>(
<a name="l00628"></a>00628         <a class="code" href="group__axis2__svc.html#gc4a9229f924f3af161d02183a9dd6ca3">axis2_svc_t</a> * svc,
<a name="l00629"></a>00629         <span class="keyword">const</span> <a class="code" href="structaxutil__env.html" title="Axis2 Environment struct.">axutil_env_t</a> * env,
<a name="l00630"></a>00630         <span class="keyword">const</span> axis2_char_t * wsdl_path);
<a name="l00631"></a>00631 
<a name="l00639"></a>00639     AXIS2_EXTERN <span class="keyword">const</span> axis2_char_t *AXIS2_CALL
<a name="l00640"></a>00640     <a class="code" href="group__axis2__svc.html#g3b8e9e9280ddc1bb96795b595a9bfbd2">axis2_svc_get_svc_folder_path</a>(
<a name="l00641"></a>00641         <span class="keyword">const</span> <a class="code" href="group__axis2__svc.html#gc4a9229f924f3af161d02183a9dd6ca3">axis2_svc_t</a> * svc,
<a name="l00642"></a>00642         <span class="keyword">const</span> <a class="code" href="structaxutil__env.html" title="Axis2 Environment struct.">axutil_env_t</a> * env);
<a name="l00643"></a>00643 
<a name="l00650"></a>00650     AXIS2_EXTERN axis2_status_t AXIS2_CALL
<a name="l00651"></a>00651     <a class="code" href="group__axis2__svc.html#g6101f397d6874038f5063d9c92c0aae4">axis2_svc_set_svc_folder_path</a>(
<a name="l00652"></a>00652         <a class="code" href="group__axis2__svc.html#gc4a9229f924f3af161d02183a9dd6ca3">axis2_svc_t</a> * svc,
<a name="l00653"></a>00653         <span class="keyword">const</span> <a class="code" href="structaxutil__env.html" title="Axis2 Environment struct.">axutil_env_t</a> * env,
<a name="l00654"></a>00654         <span class="keyword">const</span> axis2_char_t * folder_path);
<a name="l00655"></a>00655 
<a name="l00665"></a>00665     AXIS2_EXTERN <span class="keyword">const</span> axis2_char_t *AXIS2_CALL
<a name="l00666"></a>00666     <a class="code" href="group__axis2__svc.html#g2e55e1cb76fb887f300111c732915384">axis2_svc_get_file_name</a>(
<a name="l00667"></a>00667         <span class="keyword">const</span> <a class="code" href="group__axis2__svc.html#gc4a9229f924f3af161d02183a9dd6ca3">axis2_svc_t</a> * svc,
<a name="l00668"></a>00668         <span class="keyword">const</span> <a class="code" href="structaxutil__env.html" title="Axis2 Environment struct.">axutil_env_t</a> * env);
<a name="l00669"></a>00669 
<a name="l00680"></a>00680     AXIS2_EXTERN axis2_status_t AXIS2_CALL
<a name="l00681"></a>00681     <a class="code" href="group__axis2__svc.html#gd0ce8a174e0bb8ecca7b8666669a775f">axis2_svc_set_file_name</a>(
<a name="l00682"></a>00682         <a class="code" href="group__axis2__svc.html#gc4a9229f924f3af161d02183a9dd6ca3">axis2_svc_t</a> * svc,
<a name="l00683"></a>00683         <span class="keyword">const</span> <a class="code" href="structaxutil__env.html" title="Axis2 Environment struct.">axutil_env_t</a> * env,
<a name="l00684"></a>00684         <span class="keyword">const</span> axis2_char_t * file_name);
<a name="l00685"></a>00685 
<a name="l00692"></a>00692     <span class="comment">/*AXIS2_EXTERN axutil_hash_t *AXIS2_CALL</span>
<a name="l00693"></a>00693 <span class="comment"></span>
<a name="l00694"></a>00694 <span class="comment">       axis2_svc_get_all_endpoints(</span>
<a name="l00695"></a>00695 <span class="comment">       const axis2_svc_t *svc,</span>
<a name="l00696"></a>00696 <span class="comment">       const axutil_env_t *env); */</span>
<a name="l00697"></a>00697 
<a name="l00705"></a>00705     <span class="comment">/*AXIS2_EXTERN axis2_status_t AXIS2_CALL</span>
<a name="l00706"></a>00706 <span class="comment"></span>
<a name="l00707"></a>00707 <span class="comment">       axis2_svc_set_all_endpoints(</span>
<a name="l00708"></a>00708 <span class="comment">       axis2_svc_t *svc,</span>
<a name="l00709"></a>00709 <span class="comment">       const axutil_env_t *env,</span>
<a name="l00710"></a>00710 <span class="comment">       axutil_hash_t *endpoints); */</span>
<a name="l00711"></a>00711 
<a name="l00718"></a>00718     <span class="comment">/*AXIS2_EXTERN const axis2_char_t *AXIS2_CALL</span>
<a name="l00719"></a>00719 <span class="comment"></span>
<a name="l00720"></a>00720 <span class="comment">       axis2_svc_get_namespace(</span>
<a name="l00721"></a>00721 <span class="comment">       const axis2_svc_t *svc,</span>
<a name="l00722"></a>00722 <span class="comment">       const axutil_env_t *env);</span>
<a name="l00723"></a>00723 <span class="comment">     */</span>
<a name="l00724"></a>00724 
<a name="l00738"></a>00738     AXIS2_EXTERN axis2_status_t AXIS2_CALL
<a name="l00739"></a>00739     <a class="code" href="group__axis2__svc.html#ga99aa4caaa67315dee21b53283163999">axis2_svc_add_mapping</a>(
<a name="l00740"></a>00740         <a class="code" href="group__axis2__svc.html#gc4a9229f924f3af161d02183a9dd6ca3">axis2_svc_t</a> * svc,
<a name="l00741"></a>00741         <span class="keyword">const</span> <a class="code" href="structaxutil__env.html" title="Axis2 Environment struct.">axutil_env_t</a> * env,
<a name="l00742"></a>00742         <span class="keyword">const</span> axis2_char_t * wsa_action,
<a name="l00743"></a>00743         <span class="keyword">struct</span> axis2_op *axis2_op);
<a name="l00744"></a>00744 
<a name="l00758"></a>00758     AXIS2_EXTERN axis2_status_t AXIS2_CALL
<a name="l00759"></a>00759     <a class="code" href="group__axis2__svc.html#g4a9c6e0b84fff520b00f2bfd182e0e87">axis2_svc_add_rest_mapping</a>(
<a name="l00760"></a>00760         <a class="code" href="group__axis2__svc.html#gc4a9229f924f3af161d02183a9dd6ca3">axis2_svc_t</a> * svc,
<a name="l00761"></a>00761         <span class="keyword">const</span> <a class="code" href="structaxutil__env.html" title="Axis2 Environment struct.">axutil_env_t</a> * env,
<a name="l00762"></a>00762         <span class="keyword">const</span> axis2_char_t * method,
<a name="l00763"></a>00763         <span class="keyword">const</span> axis2_char_t * location,
<a name="l00764"></a>00764         <span class="keyword">struct</span> axis2_op *axis2_op);
<a name="l00765"></a>00765 
<a name="l00774"></a>00774     AXIS2_EXTERN axis2_status_t AXIS2_CALL
<a name="l00775"></a>00775     <a class="code" href="group__axis2__svc.html#ga45683c7b157225d4fd3d071337d7704">axis2_svc_add_module_qname</a>(
<a name="l00776"></a>00776         <a class="code" href="group__axis2__svc.html#gc4a9229f924f3af161d02183a9dd6ca3">axis2_svc_t</a> * svc,
<a name="l00777"></a>00777         <span class="keyword">const</span> <a class="code" href="structaxutil__env.html" title="Axis2 Environment struct.">axutil_env_t</a> * env,
<a name="l00778"></a>00778         <span class="keyword">const</span> axutil_qname_t * module_qname);
<a name="l00779"></a>00779 
<a name="l00786"></a>00786     AXIS2_EXTERN <a class="code" href="group__axutil__array__list.html#g1a6a89777db876cfa0cc86787b7be6a0">axutil_array_list_t</a> *AXIS2_CALL
<a name="l00787"></a>00787 
<a name="l00788"></a>00788     <a class="code" href="group__axis2__svc.html#g54e06db70cfd22b21deefde65ceacee2">axis2_svc_get_all_module_qnames</a>(
<a name="l00789"></a>00789         <span class="keyword">const</span> <a class="code" href="group__axis2__svc.html#gc4a9229f924f3af161d02183a9dd6ca3">axis2_svc_t</a> * svc,
<a name="l00790"></a>00790         <span class="keyword">const</span> <a class="code" href="structaxutil__env.html" title="Axis2 Environment struct.">axutil_env_t</a> * env);
<a name="l00791"></a>00791 
<a name="l00798"></a>00798     <span class="comment">/*AXIS2_EXTERN axis2_bool_t AXIS2_CALL</span>
<a name="l00799"></a>00799 <span class="comment"></span>
<a name="l00800"></a>00800 <span class="comment">       axis2_svc_is_schema_location_adjusted(</span>
<a name="l00801"></a>00801 <span class="comment">       axis2_svc_t *svc,</span>
<a name="l00802"></a>00802 <span class="comment">       const axutil_env_t *env);</span>
<a name="l00803"></a>00803 <span class="comment">     */</span>
<a name="l00804"></a>00804 
<a name="l00812"></a>00812     <span class="comment">/*</span>
<a name="l00813"></a>00813 <span class="comment">    AXIS2_EXTERN axis2_status_t AXIS2_CALL</span>
<a name="l00814"></a>00814 <span class="comment"></span>
<a name="l00815"></a>00815 <span class="comment">       axis2_svc_set_schema_location_adjusted(</span>
<a name="l00816"></a>00816 <span class="comment">       axis2_svc_t *svc,</span>
<a name="l00817"></a>00817 <span class="comment">       const axutil_env_t *env,</span>
<a name="l00818"></a>00818 <span class="comment">       const axis2_bool_t adjusted); */</span>
<a name="l00819"></a>00819 
<a name="l00827"></a>00827     <span class="comment">/*</span>
<a name="l00828"></a>00828 <span class="comment">    AXIS2_EXTERN axutil_hash_t *AXIS2_CALL</span>
<a name="l00829"></a>00829 <span class="comment"></span>
<a name="l00830"></a>00830 <span class="comment">       axis2_svc_axis2_svc_get_schema_mapping_table(</span>
<a name="l00831"></a>00831 <span class="comment">       const axis2_svc_t *svc,</span>
<a name="l00832"></a>00832 <span class="comment">       const axutil_env_t *env); */</span>
<a name="l00833"></a>00833 
<a name="l00842"></a>00842     <span class="comment">/*</span>
<a name="l00843"></a>00843 <span class="comment">       AXIS2_EXTERN axis2_status_t AXIS2_CALL</span>
<a name="l00844"></a>00844 <span class="comment"></span>
<a name="l00845"></a>00845 <span class="comment">           axis2_svc_set_schema_mapping_table(</span>
<a name="l00846"></a>00846 <span class="comment">           axis2_svc_t *svc,</span>
<a name="l00847"></a>00847 <span class="comment">           const axutil_env_t *env,</span>
<a name="l00848"></a>00848 <span class="comment">           axutil_hash_t *table); */</span>
<a name="l00849"></a>00849 
<a name="l00856"></a>00856     <span class="comment">/*</span>
<a name="l00857"></a>00857 <span class="comment">       AXIS2_EXTERN const axis2_char_t *AXIS2_CALL</span>
<a name="l00858"></a>00858 <span class="comment"></span>
<a name="l00859"></a>00859 <span class="comment">           axis2_svc_get_custom_schema_prefix(</span>
<a name="l00860"></a>00860 <span class="comment">           const axis2_svc_t *svc,</span>
<a name="l00861"></a>00861 <span class="comment">           const axutil_env_t *env); */</span>
<a name="l00862"></a>00862 
<a name="l00870"></a>00870     <span class="comment">/*</span>
<a name="l00871"></a>00871 <span class="comment">       AXIS2_EXTERN axis2_status_t AXIS2_CALL</span>
<a name="l00872"></a>00872 <span class="comment"></span>
<a name="l00873"></a>00873 <span class="comment">           axis2_svc_set_custom_schema_prefix(</span>
<a name="l00874"></a>00874 <span class="comment">           axis2_svc_t *svc,</span>
<a name="l00875"></a>00875 <span class="comment">           const axutil_env_t *env,</span>
<a name="l00876"></a>00876 <span class="comment">           const axis2_char_t *prefix); */</span>
<a name="l00877"></a>00877 
<a name="l00884"></a>00884     <span class="comment">/*</span>
<a name="l00885"></a>00885 <span class="comment">    AXIS2_EXTERN const axis2_char_t *AXIS2_CALL</span>
<a name="l00886"></a>00886 <span class="comment"></span>
<a name="l00887"></a>00887 <span class="comment">       axis2_svc_get_custom_schema_suffix(</span>
<a name="l00888"></a>00888 <span class="comment">       const axis2_svc_t *svc,</span>
<a name="l00889"></a>00889 <span class="comment">       const axutil_env_t *env); */</span>
<a name="l00890"></a>00890 
<a name="l00898"></a>00898     <span class="comment">/*</span>
<a name="l00899"></a>00899 <span class="comment">    AXIS2_EXTERN axis2_status_t AXIS2_CALL</span>
<a name="l00900"></a>00900 <span class="comment"></span>
<a name="l00901"></a>00901 <span class="comment">       axis2_svc_set_custom_schema_suffix(</span>
<a name="l00902"></a>00902 <span class="comment">       axis2_svc_t *svc,</span>
<a name="l00903"></a>00903 <span class="comment">       const axutil_env_t *env,</span>
<a name="l00904"></a>00904 <span class="comment">       const axis2_char_t *suffix); */</span>
<a name="l00905"></a>00905 
<a name="l00913"></a>00913     <span class="comment">/*</span>
<a name="l00914"></a>00914 <span class="comment">       AXIS2_EXTERN axis2_status_t AXIS2_CALL</span>
<a name="l00915"></a>00915 <span class="comment"></span>
<a name="l00916"></a>00916 <span class="comment">           axis2_svc_print_schema(</span>
<a name="l00917"></a>00917 <span class="comment">           axis2_svc_t *svc,</span>
<a name="l00918"></a>00918 <span class="comment">           const axutil_env_t *env,</span>
<a name="l00919"></a>00919 <span class="comment">           axutil_stream_t *out_stream); */</span>
<a name="l00920"></a>00920 
<a name="l00928"></a>00928     <span class="comment">/*AXIS2_EXTERN xml_schema_t *AXIS2_CALL</span>
<a name="l00929"></a>00929 <span class="comment"></span>
<a name="l00930"></a>00930 <span class="comment">       axis2_svc_get_schema(</span>
<a name="l00931"></a>00931 <span class="comment">       const axis2_svc_t *svc,</span>
<a name="l00932"></a>00932 <span class="comment">       const axutil_env_t *env,</span>
<a name="l00933"></a>00933 <span class="comment">       const int index); */</span>
<a name="l00934"></a>00934 
<a name="l00945"></a>00945     <span class="comment">/*    AXIS2_EXTERN xml_schema_t *AXIS2_CALL</span>
<a name="l00946"></a>00946 <span class="comment"></span>
<a name="l00947"></a>00947 <span class="comment">                axis2_svc_add_all_namespaces(</span>
<a name="l00948"></a>00948 <span class="comment">                    axis2_svc_t *svc,</span>
<a name="l00949"></a>00949 <span class="comment">                    const axutil_env_t *env,</span>
<a name="l00950"></a>00950 <span class="comment">                    int index);*/</span>
<a name="l00951"></a>00951 
<a name="l00959"></a>00959     <span class="comment">/*</span>
<a name="l00960"></a>00960 <span class="comment">    AXIS2_EXTERN axutil_array_list_t *AXIS2_CALL</span>
<a name="l00961"></a>00961 <span class="comment"></span>
<a name="l00962"></a>00962 <span class="comment">       axis2_svc_get_all_schemas(</span>
<a name="l00963"></a>00963 <span class="comment">       const axis2_svc_t *svc,</span>
<a name="l00964"></a>00964 <span class="comment">       const axutil_env_t *env); */</span>
<a name="l00965"></a>00965 
<a name="l00975"></a>00975     <span class="comment">/*</span>
<a name="l00976"></a>00976 <span class="comment">    AXIS2_EXTERN axis2_status_t AXIS2_CALL</span>
<a name="l00977"></a>00977 <span class="comment"></span>
<a name="l00978"></a>00978 <span class="comment">       axis2_svc_add_schema(</span>
<a name="l00979"></a>00979 <span class="comment">       axis2_svc_t *svc,</span>
<a name="l00980"></a>00980 <span class="comment">       const axutil_env_t *env,</span>
<a name="l00981"></a>00981 <span class="comment">       xml_schema_t *schema); */</span>
<a name="l00982"></a>00982 
<a name="l00990"></a>00990     <span class="comment">/*</span>
<a name="l00991"></a>00991 <span class="comment">       AXIS2_EXTERN axis2_status_t AXIS2_CALL</span>
<a name="l00992"></a>00992 <span class="comment"></span>
<a name="l00993"></a>00993 <span class="comment">           axis2_svc_add_all_schemas(</span>
<a name="l00994"></a>00994 <span class="comment">           axis2_svc_t *svc,</span>
<a name="l00995"></a>00995 <span class="comment">           const axutil_env_t *env,</span>
<a name="l00996"></a>00996 <span class="comment">           axutil_array_list_t *schemas); */</span>
<a name="l00997"></a>00997 
<a name="l01004"></a>01004     <span class="comment">/*</span>
<a name="l01005"></a>01005 <span class="comment">       AXIS2_EXTERN const axis2_char_t *AXIS2_CALL</span>
<a name="l01006"></a>01006 <span class="comment"></span>
<a name="l01007"></a>01007 <span class="comment">           axis2_svc_get_schema_target_ns(</span>
<a name="l01008"></a>01008 <span class="comment">           const axis2_svc_t *svc,</span>
<a name="l01009"></a>01009 <span class="comment">           const axutil_env_t *env); */</span>
<a name="l01010"></a>01010 
<a name="l01018"></a>01018     <span class="comment">/*</span>
<a name="l01019"></a>01019 <span class="comment">       AXIS2_EXTERN axis2_status_t AXIS2_CALL</span>
<a name="l01020"></a>01020 <span class="comment"></span>
<a name="l01021"></a>01021 <span class="comment">           axis2_svc_set_schema_target_ns(</span>
<a name="l01022"></a>01022 <span class="comment">           axis2_svc_t *svc,</span>
<a name="l01023"></a>01023 <span class="comment">           const axutil_env_t *env,</span>
<a name="l01024"></a>01024 <span class="comment">           const axis2_char_t *ns); */</span>
<a name="l01025"></a>01025 
<a name="l01032"></a>01032     <span class="comment">/*</span>
<a name="l01033"></a>01033 <span class="comment">       AXIS2_EXTERN const axis2_char_t *AXIS2_CALL</span>
<a name="l01034"></a>01034 <span class="comment"></span>
<a name="l01035"></a>01035 <span class="comment">           axis2_svc_get_schema_target_ns_prefix(</span>
<a name="l01036"></a>01036 <span class="comment">           const axis2_svc_t *svc,</span>
<a name="l01037"></a>01037 <span class="comment">           const axutil_env_t *env); */</span>
<a name="l01038"></a>01038 
<a name="l01046"></a>01046     <span class="comment">/*</span>
<a name="l01047"></a>01047 <span class="comment">       AXIS2_EXTERN axis2_status_t AXIS2_CALL</span>
<a name="l01048"></a>01048 <span class="comment"></span>
<a name="l01049"></a>01049 <span class="comment">           axis2_svc_set_schema_target_ns_prefix(</span>
<a name="l01050"></a>01050 <span class="comment">           axis2_svc_t *svc,</span>
<a name="l01051"></a>01051 <span class="comment">           const axutil_env_t *env,</span>
<a name="l01052"></a>01052 <span class="comment">           const axis2_char_t *prefix); */</span>
<a name="l01053"></a>01053 
<a name="l01060"></a>01060     AXIS2_EXTERN <span class="keyword">const</span> axis2_char_t *AXIS2_CALL
<a name="l01061"></a>01061     <a class="code" href="group__axis2__svc.html#g918040e3fdedb586e5d161ca4cc82925">axis2_svc_get_target_ns</a>(
<a name="l01062"></a>01062         <span class="keyword">const</span> <a class="code" href="group__axis2__svc.html#gc4a9229f924f3af161d02183a9dd6ca3">axis2_svc_t</a> * svc,
<a name="l01063"></a>01063         <span class="keyword">const</span> <a class="code" href="structaxutil__env.html" title="Axis2 Environment struct.">axutil_env_t</a> * env);
<a name="l01064"></a>01064 
<a name="l01072"></a>01072     AXIS2_EXTERN axis2_status_t AXIS2_CALL
<a name="l01073"></a>01073     <a class="code" href="group__axis2__svc.html#gb3d818fcf7a3a43f8358f7c3a1a23689">saxis2_svc_et_target_ns</a>(
<a name="l01074"></a>01074         <a class="code" href="group__axis2__svc.html#gc4a9229f924f3af161d02183a9dd6ca3">axis2_svc_t</a> * svc,
<a name="l01075"></a>01075         <span class="keyword">const</span> <a class="code" href="structaxutil__env.html" title="Axis2 Environment struct.">axutil_env_t</a> * env,
<a name="l01076"></a>01076         <span class="keyword">const</span> axis2_char_t * ns);
<a name="l01077"></a>01077 
<a name="l01084"></a>01084     AXIS2_EXTERN <span class="keyword">const</span> axis2_char_t *AXIS2_CALL
<a name="l01085"></a>01085 
<a name="l01086"></a>01086     <a class="code" href="group__axis2__svc.html#g704a51af7fc2485128d53a9dae23d184">axis2_svc_get_target_ns_prefix</a>(
<a name="l01087"></a>01087         <span class="keyword">const</span> <a class="code" href="group__axis2__svc.html#gc4a9229f924f3af161d02183a9dd6ca3">axis2_svc_t</a> * svc,
<a name="l01088"></a>01088         <span class="keyword">const</span> <a class="code" href="structaxutil__env.html" title="Axis2 Environment struct.">axutil_env_t</a> * env);
<a name="l01089"></a>01089 
<a name="l01097"></a>01097     AXIS2_EXTERN axis2_status_t AXIS2_CALL
<a name="l01098"></a>01098     <a class="code" href="group__axis2__svc.html#g860eb0e255e66356581304f9cfc772a9">axis2_svc_set_target_ns_prefix</a>(
<a name="l01099"></a>01099         <a class="code" href="group__axis2__svc.html#gc4a9229f924f3af161d02183a9dd6ca3">axis2_svc_t</a> * svc,
<a name="l01100"></a>01100         <span class="keyword">const</span> <a class="code" href="structaxutil__env.html" title="Axis2 Environment struct.">axutil_env_t</a> * env,
<a name="l01101"></a>01101         <span class="keyword">const</span> axis2_char_t * prefix);
<a name="l01102"></a>01102 
<a name="l01111"></a>01111     <span class="comment">/*AXIS2_EXTERN xml_schema_element_t *AXIS2_CALL</span>
<a name="l01112"></a>01112 <span class="comment"></span>
<a name="l01113"></a>01113 <span class="comment">       axis2_svc_get_schema_element(</span>
<a name="l01114"></a>01114 <span class="comment">       const axis2_svc_t *svc,</span>
<a name="l01115"></a>01115 <span class="comment">       const axutil_env_t *env,</span>
<a name="l01116"></a>01116 <span class="comment">       const axutil_qname_t *qname); */</span>
<a name="l01117"></a>01117 
<a name="l01125"></a>01125     AXIS2_EXTERN <a class="code" href="group__axutil__hash.html#gb2d7d14db2de92a101573f44421ac12a">axutil_hash_t</a> *AXIS2_CALL
<a name="l01126"></a>01126     <a class="code" href="group__axis2__svc.html#ga7e8bf2f3909dd8ae968f3677da9d980">gaxis2_svc_et_ns_map</a>(
<a name="l01127"></a>01127         <span class="keyword">const</span> <a class="code" href="group__axis2__svc.html#gc4a9229f924f3af161d02183a9dd6ca3">axis2_svc_t</a> * svc,
<a name="l01128"></a>01128         <span class="keyword">const</span> <a class="code" href="structaxutil__env.html" title="Axis2 Environment struct.">axutil_env_t</a> * env);
<a name="l01129"></a>01129 
<a name="l01137"></a>01137     AXIS2_EXTERN axis2_status_t AXIS2_CALL
<a name="l01138"></a>01138     <a class="code" href="group__axis2__svc.html#g7d09d2191060dc07c499d61790f29d7e">axis2_svc_set_ns_map</a>(
<a name="l01139"></a>01139         <a class="code" href="group__axis2__svc.html#gc4a9229f924f3af161d02183a9dd6ca3">axis2_svc_t</a> * svc,
<a name="l01140"></a>01140         <span class="keyword">const</span> <a class="code" href="structaxutil__env.html" title="Axis2 Environment struct.">axutil_env_t</a> * env,
<a name="l01141"></a>01141         <a class="code" href="group__axutil__hash.html#gb2d7d14db2de92a101573f44421ac12a">axutil_hash_t</a> * ns_map);
<a name="l01142"></a>01142 
<a name="l01151"></a>01151     <span class="comment">/*AXIS2_EXTERN axis2_status_t AXIS2_CALL</span>
<a name="l01152"></a>01152 <span class="comment"></span>
<a name="l01153"></a>01153 <span class="comment">       axis2_svc_populate_schema_mappings(</span>
<a name="l01154"></a>01154 <span class="comment">       axis2_svc_t *svc,</span>
<a name="l01155"></a>01155 <span class="comment">       const axutil_env_t *env); */</span>
<a name="l01156"></a>01156 
<a name="l01157"></a>01157     AXIS2_EXTERN axutil_param_container_t *AXIS2_CALL
<a name="l01158"></a>01158 
<a name="l01159"></a>01159     <a class="code" href="group__axis2__svc.html#gb0e91f0337ca9f35a18cd119df3821fe">axis2_svc_get_param_container</a>(
<a name="l01160"></a>01160         <span class="keyword">const</span> <a class="code" href="group__axis2__svc.html#gc4a9229f924f3af161d02183a9dd6ca3">axis2_svc_t</a> * svc,
<a name="l01161"></a>01161         <span class="keyword">const</span> <a class="code" href="structaxutil__env.html" title="Axis2 Environment struct.">axutil_env_t</a> * env);
<a name="l01162"></a>01162 
<a name="l01163"></a>01163     AXIS2_EXTERN <a class="code" href="group__axis2__flow__container.html#g645e6696dcbc315b06681604a150254f">axis2_flow_container_t</a> *AXIS2_CALL
<a name="l01164"></a>01164 
<a name="l01165"></a>01165     axis2_svc_get_flow_container(
<a name="l01166"></a>01166         <span class="keyword">const</span> <a class="code" href="group__axis2__svc.html#gc4a9229f924f3af161d02183a9dd6ca3">axis2_svc_t</a> * svc,
<a name="l01167"></a>01167         <span class="keyword">const</span> <a class="code" href="structaxutil__env.html" title="Axis2 Environment struct.">axutil_env_t</a> * env);
<a name="l01168"></a>01168 
<a name="l01174"></a>01174     AXIS2_EXTERN <a class="code" href="group__axis2__svc.html#gc4a9229f924f3af161d02183a9dd6ca3">axis2_svc_t</a> *AXIS2_CALL
<a name="l01175"></a>01175     <a class="code" href="group__axis2__svc.html#gc45855d3d550a76bcca692eaa51dfdcb">axis2_svc_create</a>(
<a name="l01176"></a>01176         <span class="keyword">const</span> <a class="code" href="structaxutil__env.html" title="Axis2 Environment struct.">axutil_env_t</a> * env);
<a name="l01177"></a>01177 
<a name="l01184"></a>01184     AXIS2_EXTERN <a class="code" href="group__axis2__svc.html#gc4a9229f924f3af161d02183a9dd6ca3">axis2_svc_t</a> *AXIS2_CALL
<a name="l01185"></a>01185     <a class="code" href="group__axis2__svc.html#gc10ba2c54702eb532945cf3fdce2178f">axis2_svc_create_with_qname</a>(
<a name="l01186"></a>01186         <span class="keyword">const</span> <a class="code" href="structaxutil__env.html" title="Axis2 Environment struct.">axutil_env_t</a> * env,
<a name="l01187"></a>01187         <span class="keyword">const</span> axutil_qname_t * qname);
<a name="l01188"></a>01188 
<a name="l01189"></a>01189     AXIS2_EXTERN <span class="keywordtype">void</span> *AXIS2_CALL
<a name="l01190"></a>01190     axis2_svc_get_impl_class(
<a name="l01191"></a>01191         <span class="keyword">const</span> <a class="code" href="group__axis2__svc.html#gc4a9229f924f3af161d02183a9dd6ca3">axis2_svc_t</a> * svc,
<a name="l01192"></a>01192         <span class="keyword">const</span> <a class="code" href="structaxutil__env.html" title="Axis2 Environment struct.">axutil_env_t</a> * env);
<a name="l01193"></a>01193 
<a name="l01194"></a>01194     AXIS2_EXTERN axis2_status_t AXIS2_CALL
<a name="l01195"></a>01195     axis2_svc_set_impl_class(
<a name="l01196"></a>01196         <a class="code" href="group__axis2__svc.html#gc4a9229f924f3af161d02183a9dd6ca3">axis2_svc_t</a> * svc,
<a name="l01197"></a>01197         <span class="keyword">const</span> <a class="code" href="structaxutil__env.html" title="Axis2 Environment struct.">axutil_env_t</a> * env,
<a name="l01198"></a>01198         <span class="keywordtype">void</span> *impl_class);
<a name="l01199"></a>01199 
<a name="l01206"></a>01206     AXIS2_EXTERN <a class="code" href="group__axis2__description.html#g9bbf771ae43a8364c5f453c7077f0f1e">axis2_desc_t</a> *AXIS2_CALL
<a name="l01207"></a>01207     <a class="code" href="group__axis2__svc.html#g6a9dc1faae21544f140b511419e6d886">axis2_svc_get_base</a>(
<a name="l01208"></a>01208         <span class="keyword">const</span> <a class="code" href="group__axis2__svc.html#gc4a9229f924f3af161d02183a9dd6ca3">axis2_svc_t</a> * svc,
<a name="l01209"></a>01209         <span class="keyword">const</span> <a class="code" href="structaxutil__env.html" title="Axis2 Environment struct.">axutil_env_t</a> * env);
<a name="l01210"></a>01210 
<a name="l01211"></a>01211         <span class="comment">/* Get the mutex associated with this service </span>
<a name="l01212"></a>01212 <span class="comment">         * @param svc pointer to message</span>
<a name="l01213"></a>01213 <span class="comment">     * @param env pointer to environment struct</span>
<a name="l01214"></a>01214 <span class="comment">     * @return pointer to a axutil_thread_mutext_t</span>
<a name="l01215"></a>01215 <span class="comment">     */</span>
<a name="l01216"></a>01216         AXIS2_EXTERN <a class="code" href="group__axis2__mutex.html#g3d6a99be71c7c750b4ac37efae2bdf87">axutil_thread_mutex_t</a> * AXIS2_CALL
<a name="l01217"></a>01217         axis2_svc_get_mutex(
<a name="l01218"></a>01218                 <span class="keyword">const</span> <a class="code" href="group__axis2__svc.html#gc4a9229f924f3af161d02183a9dd6ca3">axis2_svc_t</a> * svc,
<a name="l01219"></a>01219                 <span class="keyword">const</span> <a class="code" href="structaxutil__env.html" title="Axis2 Environment struct.">axutil_env_t</a> * env);
<a name="l01221"></a>01221 <span class="preprocessor">#ifdef __cplusplus</span>
<a name="l01222"></a>01222 <span class="preprocessor"></span>}
<a name="l01223"></a>01223 <span class="preprocessor">#endif</span>
<a name="l01224"></a>01224 <span class="preprocessor"></span><span class="preprocessor">#endif                          </span><span class="comment">/* AXIS2_SVC_H */</span>
</pre></div><hr size="1"><address style="text-align: right;"><small>Generated on Fri Apr 17 11:49:42 2009 for Axis2/C by&nbsp;
<a href="http://www.doxygen.org/index.html">
<img src="doxygen.png" alt="doxygen" align="middle" border="0"></a> 1.5.3 </small></address>
</body>
</html>


<|start_filename|>src/core/transport/amqp/sender/axis2_amqp_sender.h<|end_filename|>
/*
 * 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 AXIS2_AMQP_SENDER_H
#define AXIS2_AMQP_SENDER_H

#include <axutil_env.h>
#include <axis2_conf_ctx.h>
#include <axis2_transport_sender.h>
#include <axis2_qpid_sender_interface.h>

typedef struct axis2_amqp_sender_resource_pack
{
	axis2_transport_sender_t sender;
	axis2_conf_ctx_t* conf_ctx;
}
axis2_amqp_sender_resource_pack_t;

#define AXIS2_AMQP_SENDER_TO_RESOURCE_PACK(amqp_sender) \
	((axis2_amqp_sender_resource_pack_t*)(amqp_sender))

AXIS2_EXTERN axis2_transport_sender_t* AXIS2_CALL
axis2_amqp_sender_create(const axutil_env_t* env);

AXIS2_EXTERN axis2_status_t AXIS2_CALL 
axis2_amqp_sender_init(
	axis2_transport_sender_t* sender,
	const axutil_env_t* env,
	axis2_conf_ctx_t* conf_ctx,
	axis2_transport_out_desc_t* out_desc);

AXIS2_EXTERN axis2_status_t AXIS2_CALL 
axis2_amqp_sender_invoke(
	axis2_transport_sender_t* sender,
	const axutil_env_t* env,
	axis2_msg_ctx_t* msg_ctx);

AXIS2_EXTERN axis2_status_t AXIS2_CALL 
axis2_amqp_sender_clean_up(
	axis2_transport_sender_t* sender,
	const axutil_env_t* env,
	axis2_msg_ctx_t* msg_ctx);

AXIS2_EXTERN void AXIS2_CALL 
axis2_amqp_sender_free(
	axis2_transport_sender_t* sender,
	const axutil_env_t* env);

#endif


<|start_filename|>xdocs/api/html/axutil__utils_8h.html<|end_filename|>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html><head><meta http-equiv="Content-Type" content="text/html;charset=UTF-8">
<title>Axis2/C: axutil_utils.h File Reference</title>
<link href="doxygen.css" rel="stylesheet" type="text/css">
<link href="tabs.css" rel="stylesheet" type="text/css">
</head><body>
<!-- Generated by Doxygen 1.5.3 -->
<div class="tabs">
  <ul>
    <li><a href="index.html"><span>Main&nbsp;Page</span></a></li>
    <li><a href="modules.html"><span>Modules</span></a></li>
    <li><a href="annotated.html"><span>Classes</span></a></li>
    <li class="current"><a href="files.html"><span>Files</span></a></li>
    <li><a href="dirs.html"><span>Directories</span></a></li>
    <li><a href="pages.html"><span>Related&nbsp;Pages</span></a></li>
    <li><a href="examples.html"><span>Examples</span></a></li>
    <li>
      <form action="search.php" method="get">
        <table cellspacing="0" cellpadding="0" border="0">
          <tr>
            <td><label>&nbsp;<u>S</u>earch&nbsp;for&nbsp;</label></td>
            <td><input type="text" name="query" value="" size="20" accesskey="s"/></td>
          </tr>
        </table>
      </form>
    </li>
  </ul>
</div>
<div class="nav">
<a class="el" href="dir_f60961de8e5edc3b2658ef023e959e45.html">deploy</a>&nbsp;&raquo&nbsp;<a class="el" href="dir_6b4e91e54b7316b376882a6402adbf44.html">include</a>&nbsp;&raquo&nbsp;<a class="el" href="dir_df3a7695d5a9e696f30b948b566829e7.html">axis2-1.6.0</a></div>
<h1>axutil_utils.h File Reference</h1><code>#include &lt;axutil_utils_defines.h&gt;</code><br>
<code>#include &lt;axutil_error.h&gt;</code><br>
<code>#include &lt;<a class="el" href="axutil__env_8h-source.html">axutil_env.h</a>&gt;</code><br>
<code>#include &lt;<a class="el" href="axutil__date__time_8h-source.html">axutil_date_time.h</a>&gt;</code><br>
<code>#include &lt;<a class="el" href="axutil__base64__binary_8h-source.html">axutil_base64_binary.h</a>&gt;</code><br>

<p>
<a href="axutil__utils_8h-source.html">Go to the source code of this file.</a><table border="0" cellpadding="0" cellspacing="0">
<tr><td></td></tr>
<tr><td colspan="2"><br><h2>Defines</h2></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="g7542cb7bd76de099e14c5b1e966b9d78"></a><!-- doxytag: member="axutil_utils.h::AXUTIL_LOG_FILE_SIZE" ref="g7542cb7bd76de099e14c5b1e966b9d78" args="" -->
#define&nbsp;</td><td class="memItemRight" valign="bottom"><b>AXUTIL_LOG_FILE_SIZE</b>&nbsp;&nbsp;&nbsp;1024 * 1024 * 32</td></tr>

<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="g887f4f3bae78c60b9b92756e4e2507fe"></a><!-- doxytag: member="axutil_utils.h::AXUTIL_LOG_FILE_NAME_SIZE" ref="g887f4f3bae78c60b9b92756e4e2507fe" args="" -->
#define&nbsp;</td><td class="memItemRight" valign="bottom"><b>AXUTIL_LOG_FILE_NAME_SIZE</b>&nbsp;&nbsp;&nbsp;512</td></tr>

<tr><td class="memItemLeft" nowrap align="right" valign="top">#define&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__axutil__utils.html#gc166237d0def75b6826516f64acffbef">AXIS2_FUNC_PARAM_CHECK</a>(object, env, error_return)</td></tr>

<tr><td class="memItemLeft" nowrap align="right" valign="top">#define&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__axutil__utils.html#g991e733569102d01d912614940aca452">AXIS2_PARAM_CHECK</a>(error, object, error_return)</td></tr>

<tr><td class="memItemLeft" nowrap align="right" valign="top">#define&nbsp;</td><td class="memItemRight" valign="bottom"><b>AXIS2_PARAM_CHECK_VOID</b>(error, object)</td></tr>

<tr><td class="memItemLeft" nowrap align="right" valign="top">#define&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__axutil__utils.html#gacaecc9520a0470ee32e6100942c4088">AXIS2_ERROR_SET</a>(error, error_number, status_code)</td></tr>

<tr><td class="memItemLeft" nowrap align="right" valign="top">#define&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__axutil__utils.html#gd604b1a4dd6fa46d73119de36a43b23f">AXIS2_HANDLE_ERROR_WITH_FILE</a>(env, error_number,status_code, file_name_line_no)</td></tr>

<tr><td class="memItemLeft" nowrap align="right" valign="top">#define&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__axutil__utils.html#g90cce8a56477673e8a291103addcf6c7">AXIS2_HANDLE_ERROR</a>(env, error_number, status_code)</td></tr>

<tr><td class="memItemLeft" nowrap align="right" valign="top">#define&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__axutil__utils.html#gdf04006f325f60c4a2de4404b68a5b3c">AXIS2_CREATE_FUNCTION</a>&nbsp;&nbsp;&nbsp;&quot;axis2_get_instance&quot;</td></tr>

<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="ge86646a079a6a5dbee0e087b31470d81"></a><!-- doxytag: member="axutil_utils.h::AXIS2_DELETE_FUNCTION" ref="ge86646a079a6a5dbee0e087b31470d81" args="" -->
#define&nbsp;</td><td class="memItemRight" valign="bottom"><b>AXIS2_DELETE_FUNCTION</b>&nbsp;&nbsp;&nbsp;&quot;axis2_remove_instance&quot;</td></tr>

<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="g9ab4342f2827e4d72898290fb3a1d4b3"></a><!-- doxytag: member="axutil_utils.h::AXIS2_TARGET_EPR" ref="g9ab4342f2827e4d72898290fb3a1d4b3" args="" -->
#define&nbsp;</td><td class="memItemRight" valign="bottom"><b>AXIS2_TARGET_EPR</b>&nbsp;&nbsp;&nbsp;&quot;target_epr&quot;</td></tr>

<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="g9a2ecb69f3dc20cdeef5667bf029a455"></a><!-- doxytag: member="axutil_utils.h::AXIS2_DUMP_INPUT_MSG_TRUE" ref="g9a2ecb69f3dc20cdeef5667bf029a455" args="" -->
#define&nbsp;</td><td class="memItemRight" valign="bottom"><b>AXIS2_DUMP_INPUT_MSG_TRUE</b>&nbsp;&nbsp;&nbsp;&quot;dump&quot;</td></tr>

<tr><td colspan="2"><br><h2>Typedefs</h2></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="gc9ac1d802046d30769ab1074c935e292"></a><!-- doxytag: member="axutil_utils.h::AXIS2_FREE_VOID_ARG" ref="gc9ac1d802046d30769ab1074c935e292" args=")(void *obj_to_be_freed, const axutil_env_t *env)" -->
typedef void(*&nbsp;</td><td class="memItemRight" valign="bottom"><b>AXIS2_FREE_VOID_ARG</b> )(void *obj_to_be_freed, const <a class="el" href="structaxutil__env.html">axutil_env_t</a> *env)</td></tr>

<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="gc9c223058db1f5e3669bfafb73f13fc8"></a><!-- doxytag: member="axutil_utils.h::AXIS2_READ_INPUT_CALLBACK" ref="gc9c223058db1f5e3669bfafb73f13fc8" args=")(char *buffer, int size, void *ctx)" -->
typedef int(*&nbsp;</td><td class="memItemRight" valign="bottom"><b>AXIS2_READ_INPUT_CALLBACK</b> )(char *buffer, int size, void *ctx)</td></tr>

<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="g6c389ab017cb07436a020fb223214c5a"></a><!-- doxytag: member="axutil_utils.h::AXIS2_CLOSE_INPUT_CALLBACK" ref="g6c389ab017cb07436a020fb223214c5a" args=")(void *ctx)" -->
typedef int(*&nbsp;</td><td class="memItemRight" valign="bottom"><b>AXIS2_CLOSE_INPUT_CALLBACK</b> )(void *ctx)</td></tr>

<tr><td colspan="2"><br><h2>Enumerations</h2></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top">enum &nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__axutil__utils.html#g102944cbbb59586e2d48aa4a95a55f64">axis2_scopes</a> { <a class="el" href="group__axutil__utils.html#gg102944cbbb59586e2d48aa4a95a55f64cc1ec46379b5a425419e5c7865cb3a5e">AXIS2_SCOPE_REQUEST</a> =  0, 
<a class="el" href="group__axutil__utils.html#gg102944cbbb59586e2d48aa4a95a55f642d266cec752e517e50f5063d9680043e">AXIS2_SCOPE_SESSION</a>, 
<a class="el" href="group__axutil__utils.html#gg102944cbbb59586e2d48aa4a95a55f64211e1eee49971c621d7a894b4c6bdfda">AXIS2_SCOPE_APPLICATION</a>
 }</td></tr>

<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Axis2 scopes.  <a href="group__axutil__utils.html#g102944cbbb59586e2d48aa4a95a55f64">More...</a><br></td></tr>
<tr><td colspan="2"><br><h2>Functions</h2></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top">AXIS2_EXTERN <br>
axis2_status_t&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__axutil__utils.html#g45760bfc8d8cf44f072c3a3fff0656db">axutil_parse_rest_url_for_params</a> (const <a class="el" href="structaxutil__env.html">axutil_env_t</a> *env, const axis2_char_t *tmpl, const axis2_char_t *url, int *match_count, axis2_char_t ****matches)</td></tr>

<tr><td class="memItemLeft" nowrap align="right" valign="top">AXIS2_EXTERN <br>
axis2_char_t **&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__axutil__utils.html#ge45e1f5b083cce22b4a19f2376ae534a">axutil_parse_request_url_for_svc_and_op</a> (const <a class="el" href="structaxutil__env.html">axutil_env_t</a> *env, const axis2_char_t *request)</td></tr>

<tr><td class="memItemLeft" nowrap align="right" valign="top">AXIS2_EXTERN <br>
axis2_char_t *&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__axutil__utils.html#gdeee972b9ba0969828084e2000786873">axutil_xml_quote_string</a> (const <a class="el" href="structaxutil__env.html">axutil_env_t</a> *env, const axis2_char_t *s, axis2_bool_t quotes)</td></tr>

<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="g09e633d0cb2c4acb0affc75c870646dc"></a><!-- doxytag: member="axutil_utils.h::axutil_hexit" ref="g09e633d0cb2c4acb0affc75c870646dc" args="(axis2_char_t c)" -->
AXIS2_EXTERN int&nbsp;</td><td class="memItemRight" valign="bottom"><b>axutil_hexit</b> (axis2_char_t c)</td></tr>

<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="g3f4e6e5f6cbe22739225e5c3b758df65"></a><!-- doxytag: member="axutil_utils.h::axutil_url_decode" ref="g3f4e6e5f6cbe22739225e5c3b758df65" args="(const axutil_env_t *env, axis2_char_t *dest, axis2_char_t *src)" -->
AXIS2_EXTERN <br>
axis2_status_t&nbsp;</td><td class="memItemRight" valign="bottom"><b>axutil_url_decode</b> (const <a class="el" href="structaxutil__env.html">axutil_env_t</a> *env, axis2_char_t *dest, axis2_char_t *src)</td></tr>

<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="g00c2171b534e916a7c6222c6bbfcda79"></a><!-- doxytag: member="axutil_utils.h::axis2_char_2_byte" ref="g00c2171b534e916a7c6222c6bbfcda79" args="(const axutil_env_t *env, axis2_char_t *char_buffer, axis2_byte_t **byte_buffer, int *byte_buffer_size)" -->
AXIS2_EXTERN <br>
axis2_status_t&nbsp;</td><td class="memItemRight" valign="bottom"><b>axis2_char_2_byte</b> (const <a class="el" href="structaxutil__env.html">axutil_env_t</a> *env, axis2_char_t *char_buffer, axis2_byte_t **byte_buffer, int *byte_buffer_size)</td></tr>

</table>
<hr><a name="_details"></a><h2>Detailed Description</h2>
<hr size="1"><address style="text-align: right;"><small>Generated on Fri Apr 17 11:49:43 2009 for Axis2/C by&nbsp;
<a href="http://www.doxygen.org/index.html">
<img src="doxygen.png" alt="doxygen" align="middle" border="0"></a> 1.5.3 </small></address>
</body>
</html>


<|start_filename|>xdocs/api/html/group__axutil__array__list.html<|end_filename|>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html><head><meta http-equiv="Content-Type" content="text/html;charset=UTF-8">
<title>Axis2/C: array list</title>
<link href="doxygen.css" rel="stylesheet" type="text/css">
<link href="tabs.css" rel="stylesheet" type="text/css">
</head><body>
<!-- Generated by Doxygen 1.5.3 -->
<div class="tabs">
  <ul>
    <li><a href="index.html"><span>Main&nbsp;Page</span></a></li>
    <li><a href="modules.html"><span>Modules</span></a></li>
    <li><a href="annotated.html"><span>Classes</span></a></li>
    <li><a href="files.html"><span>Files</span></a></li>
    <li><a href="dirs.html"><span>Directories</span></a></li>
    <li><a href="pages.html"><span>Related&nbsp;Pages</span></a></li>
    <li><a href="examples.html"><span>Examples</span></a></li>
    <li>
      <form action="search.php" method="get">
        <table cellspacing="0" cellpadding="0" border="0">
          <tr>
            <td><label>&nbsp;<u>S</u>earch&nbsp;for&nbsp;</label></td>
            <td><input type="text" name="query" value="" size="20" accesskey="s"/></td>
          </tr>
        </table>
      </form>
    </li>
  </ul>
</div>
<h1>array list<br>
<small>
[<a class="el" href="group__axis2__util.html">utilities</a>]</small>
</h1><table border="0" cellpadding="0" cellspacing="0">
<tr><td></td></tr>
<tr><td colspan="2"><br><h2>Files</h2></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top">file &nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="axutil__array__list_8h.html">axutil_array_list.h</a></td></tr>

<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Axis2 array_list interface. <br></td></tr>

<p>
<tr><td colspan="2"><br><h2>Typedefs</h2></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top">typedef struct <br>
axutil_array_list&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__axutil__array__list.html#g1a6a89777db876cfa0cc86787b7be6a0">axutil_array_list_t</a></td></tr>

<tr><td colspan="2"><br><h2>Functions</h2></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top">AXIS2_EXTERN <br>
<a class="el" href="group__axutil__array__list.html#g1a6a89777db876cfa0cc86787b7be6a0">axutil_array_list_t</a> *&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__axutil__array__list.html#g97d190815f1d8ab2045c203ebd92919b">axutil_array_list_create</a> (const <a class="el" href="structaxutil__env.html">axutil_env_t</a> *env, int capacity)</td></tr>

<tr><td class="memItemLeft" nowrap align="right" valign="top">AXIS2_EXTERN void&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__axutil__array__list.html#gf649de5177ea73a4e2e39c38af79e62f">axutil_array_list_free_void_arg</a> (void *array_list, const <a class="el" href="structaxutil__env.html">axutil_env_t</a> *env)</td></tr>

<tr><td class="memItemLeft" nowrap align="right" valign="top">AXIS2_EXTERN <br>
axis2_status_t&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__axutil__array__list.html#g07cd8d75ecc51f53224af4b6793dcde7">axutil_array_list_ensure_capacity</a> (struct axutil_array_list *array_list, const <a class="el" href="structaxutil__env.html">axutil_env_t</a> *env, int min_capacity)</td></tr>

<tr><td class="memItemLeft" nowrap align="right" valign="top">AXIS2_EXTERN int&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__axutil__array__list.html#g89efc3fe773e2655f1884121a97273f3">axutil_array_list_size</a> (struct axutil_array_list *array_list, const <a class="el" href="structaxutil__env.html">axutil_env_t</a> *env)</td></tr>

<tr><td class="memItemLeft" nowrap align="right" valign="top">AXIS2_EXTERN axis2_bool_t&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__axutil__array__list.html#g3ed8b5b9d4a0a4e76e4c55d92a307a0d">axutil_array_list_is_empty</a> (struct axutil_array_list *array_list, const <a class="el" href="structaxutil__env.html">axutil_env_t</a> *env)</td></tr>

<tr><td class="memItemLeft" nowrap align="right" valign="top">AXIS2_EXTERN axis2_bool_t&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__axutil__array__list.html#g7a0aa68c089a2905ed506213aba40578">axutil_array_list_contains</a> (struct axutil_array_list *array_list, const <a class="el" href="structaxutil__env.html">axutil_env_t</a> *env, void *e)</td></tr>

<tr><td class="memItemLeft" nowrap align="right" valign="top">AXIS2_EXTERN int&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__axutil__array__list.html#gb539c683dea5713f8388e131e686ad28">axutil_array_list_index_of</a> (struct axutil_array_list *array_list, const <a class="el" href="structaxutil__env.html">axutil_env_t</a> *env, void *e)</td></tr>

<tr><td class="memItemLeft" nowrap align="right" valign="top">AXIS2_EXTERN void *&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__axutil__array__list.html#gb6e54fa2917ddc0128e98a3bb0adcfad">axutil_array_list_get</a> (struct axutil_array_list *array_list, const <a class="el" href="structaxutil__env.html">axutil_env_t</a> *env, int index)</td></tr>

<tr><td class="memItemLeft" nowrap align="right" valign="top">AXIS2_EXTERN void *&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__axutil__array__list.html#g77177f8cd9a95ec0bedeec6906352395">axutil_array_list_set</a> (struct axutil_array_list *array_list, const <a class="el" href="structaxutil__env.html">axutil_env_t</a> *env, int index, void *e)</td></tr>

<tr><td class="memItemLeft" nowrap align="right" valign="top">AXIS2_EXTERN <br>
axis2_status_t&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__axutil__array__list.html#g507c7dbb9fe09bbca571739e64ff9835">axutil_array_list_add</a> (struct axutil_array_list *array_list, const <a class="el" href="structaxutil__env.html">axutil_env_t</a> *env, const void *e)</td></tr>

<tr><td class="memItemLeft" nowrap align="right" valign="top">AXIS2_EXTERN <br>
axis2_status_t&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__axutil__array__list.html#g6c5f7a93a8d3e7e8ed2eebadd05a59f6">axutil_array_list_add_at</a> (struct axutil_array_list *array_list, const <a class="el" href="structaxutil__env.html">axutil_env_t</a> *env, const int index, const void *e)</td></tr>

<tr><td class="memItemLeft" nowrap align="right" valign="top">AXIS2_EXTERN void *&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__axutil__array__list.html#g2aefd638d987a77684c95d3d49250c9a">axutil_array_list_remove</a> (struct axutil_array_list *array_list, const <a class="el" href="structaxutil__env.html">axutil_env_t</a> *env, int index)</td></tr>

<tr><td class="memItemLeft" nowrap align="right" valign="top">AXIS2_EXTERN axis2_bool_t&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__axutil__array__list.html#g7e79d235403a8cc6cf5dcf93e8c79dc1">axutil_array_list_check_bound_inclusive</a> (struct axutil_array_list *array_list, const <a class="el" href="structaxutil__env.html">axutil_env_t</a> *env, int index)</td></tr>

<tr><td class="memItemLeft" nowrap align="right" valign="top">AXIS2_EXTERN axis2_bool_t&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__axutil__array__list.html#gdcfecde9d78409f5ff53607d756e3c45">axutil_array_list_check_bound_exclusive</a> (struct axutil_array_list *array_list, const <a class="el" href="structaxutil__env.html">axutil_env_t</a> *env, int index)</td></tr>

<tr><td class="memItemLeft" nowrap align="right" valign="top">AXIS2_EXTERN void&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__axutil__array__list.html#g549e9d4e6c502650ea76d0134551130e">axutil_array_list_free</a> (struct axutil_array_list *array_list, const <a class="el" href="structaxutil__env.html">axutil_env_t</a> *env)</td></tr>

</table>
<hr><a name="_details"></a><h2>Detailed Description</h2>
Description. <hr><h2>Typedef Documentation</h2>
<a class="anchor" name="g1a6a89777db876cfa0cc86787b7be6a0"></a><!-- doxytag: member="axutil_array_list.h::axutil_array_list_t" ref="g1a6a89777db876cfa0cc86787b7be6a0" args="" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">typedef struct axutil_array_list <a class="el" href="group__axutil__array__list.html#g1a6a89777db876cfa0cc86787b7be6a0">axutil_array_list_t</a>          </td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
Array List struct 
</div>
</div><p>
<hr><h2>Function Documentation</h2>
<a class="anchor" name="g507c7dbb9fe09bbca571739e64ff9835"></a><!-- doxytag: member="axutil_array_list.h::axutil_array_list_add" ref="g507c7dbb9fe09bbca571739e64ff9835" args="(struct axutil_array_list *array_list, const axutil_env_t *env, const void *e)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">AXIS2_EXTERN axis2_status_t axutil_array_list_add           </td>
          <td>(</td>
          <td class="paramtype">struct axutil_array_list *&nbsp;</td>
          <td class="paramname"> <em>array_list</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const <a class="el" href="structaxutil__env.html">axutil_env_t</a> *&nbsp;</td>
          <td class="paramname"> <em>env</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const void *&nbsp;</td>
          <td class="paramname"> <em>e</em></td><td>&nbsp;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td><td width="100%"></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
Appends the supplied element to the end of this list. The element, e, can be a pointer of any type or NULL. <dl compact><dt><b>Parameters:</b></dt><dd>
  <table border="0" cellspacing="2" cellpadding="0">
    <tr><td valign="top"></td><td valign="top"><em>array_list</em>&nbsp;</td><td>pointer to array list </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>env</em>&nbsp;</td><td>pointer to environment struct </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>e</em>&nbsp;</td><td>the element to be appended to this list </td></tr>
  </table>
</dl>
<dl class="return" compact><dt><b>Returns:</b></dt><dd>AXIS2_SUCCESS on success, else AXIS2_FAILURE </dd></dl>

</div>
</div><p>
<a class="anchor" name="g6c5f7a93a8d3e7e8ed2eebadd05a59f6"></a><!-- doxytag: member="axutil_array_list.h::axutil_array_list_add_at" ref="g6c5f7a93a8d3e7e8ed2eebadd05a59f6" args="(struct axutil_array_list *array_list, const axutil_env_t *env, const int index, const void *e)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">AXIS2_EXTERN axis2_status_t axutil_array_list_add_at           </td>
          <td>(</td>
          <td class="paramtype">struct axutil_array_list *&nbsp;</td>
          <td class="paramname"> <em>array_list</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const <a class="el" href="structaxutil__env.html">axutil_env_t</a> *&nbsp;</td>
          <td class="paramname"> <em>env</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const int&nbsp;</td>
          <td class="paramname"> <em>index</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const void *&nbsp;</td>
          <td class="paramname"> <em>e</em></td><td>&nbsp;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td><td width="100%"></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
Adds the supplied element at the specified index, shifting all elements currently at that index or higher one to the right. The element, e, can be a pointer of any type or NULL. <dl compact><dt><b>Parameters:</b></dt><dd>
  <table border="0" cellspacing="2" cellpadding="0">
    <tr><td valign="top"></td><td valign="top"><em>array_list</em>&nbsp;</td><td>pointer to array list </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>env</em>&nbsp;</td><td>pointer to environment struct </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>index</em>&nbsp;</td><td>the index at which the element is being added </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>e</em>&nbsp;</td><td>the item being added </td></tr>
  </table>
</dl>
<dl class="return" compact><dt><b>Returns:</b></dt><dd>AXIS2_SUCCESS on success, else AXIS2_FAILURE </dd></dl>

</div>
</div><p>
<a class="anchor" name="gdcfecde9d78409f5ff53607d756e3c45"></a><!-- doxytag: member="axutil_array_list.h::axutil_array_list_check_bound_exclusive" ref="gdcfecde9d78409f5ff53607d756e3c45" args="(struct axutil_array_list *array_list, const axutil_env_t *env, int index)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">AXIS2_EXTERN axis2_bool_t axutil_array_list_check_bound_exclusive           </td>
          <td>(</td>
          <td class="paramtype">struct axutil_array_list *&nbsp;</td>
          <td class="paramname"> <em>array_list</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const <a class="el" href="structaxutil__env.html">axutil_env_t</a> *&nbsp;</td>
          <td class="paramname"> <em>env</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">int&nbsp;</td>
          <td class="paramname"> <em>index</em></td><td>&nbsp;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td><td width="100%"></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
Checks that the index is in the range of existing elements (exclusive). <dl compact><dt><b>Parameters:</b></dt><dd>
  <table border="0" cellspacing="2" cellpadding="0">
    <tr><td valign="top"></td><td valign="top"><em>array_list</em>&nbsp;</td><td>pointer to array list </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>env</em>&nbsp;</td><td>pointer to environment struct </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>index</em>&nbsp;</td><td>the index to check </td></tr>
  </table>
</dl>
<dl class="return" compact><dt><b>Returns:</b></dt><dd>AXIS2_FALSE if index &gt;= size or index &lt; 0, else AXIS2_TRUE </dd></dl>

</div>
</div><p>
<a class="anchor" name="g7e79d235403a8cc6cf5dcf93e8c79dc1"></a><!-- doxytag: member="axutil_array_list.h::axutil_array_list_check_bound_inclusive" ref="g7e79d235403a8cc6cf5dcf93e8c79dc1" args="(struct axutil_array_list *array_list, const axutil_env_t *env, int index)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">AXIS2_EXTERN axis2_bool_t axutil_array_list_check_bound_inclusive           </td>
          <td>(</td>
          <td class="paramtype">struct axutil_array_list *&nbsp;</td>
          <td class="paramname"> <em>array_list</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const <a class="el" href="structaxutil__env.html">axutil_env_t</a> *&nbsp;</td>
          <td class="paramname"> <em>env</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">int&nbsp;</td>
          <td class="paramname"> <em>index</em></td><td>&nbsp;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td><td width="100%"></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
Checks that the index is in the range of possible elements (inclusive). <dl compact><dt><b>Parameters:</b></dt><dd>
  <table border="0" cellspacing="2" cellpadding="0">
    <tr><td valign="top"></td><td valign="top"><em>array_list</em>&nbsp;</td><td>pointer to array list </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>env</em>&nbsp;</td><td>pointer to environment struct </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>index</em>&nbsp;</td><td>the index to check </td></tr>
  </table>
</dl>
<dl class="return" compact><dt><b>Returns:</b></dt><dd>AXIS2_FALSE if index &gt; size or index &lt; 0, else AXIS2_TRUE </dd></dl>

</div>
</div><p>
<a class="anchor" name="g7a0aa68c089a2905ed506213aba40578"></a><!-- doxytag: member="axutil_array_list.h::axutil_array_list_contains" ref="g7a0aa68c089a2905ed506213aba40578" args="(struct axutil_array_list *array_list, const axutil_env_t *env, void *e)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">AXIS2_EXTERN axis2_bool_t axutil_array_list_contains           </td>
          <td>(</td>
          <td class="paramtype">struct axutil_array_list *&nbsp;</td>
          <td class="paramname"> <em>array_list</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const <a class="el" href="structaxutil__env.html">axutil_env_t</a> *&nbsp;</td>
          <td class="paramname"> <em>env</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">void *&nbsp;</td>
          <td class="paramname"> <em>e</em></td><td>&nbsp;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td><td width="100%"></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
Returns true iff element is in this array_list. <dl compact><dt><b>Parameters:</b></dt><dd>
  <table border="0" cellspacing="2" cellpadding="0">
    <tr><td valign="top"></td><td valign="top"><em>array_list</em>&nbsp;</td><td>pointer to array list </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>env</em>&nbsp;</td><td>pointer to environment struct </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>e</em>&nbsp;</td><td>the element whose inclusion in the List is being tested </td></tr>
  </table>
</dl>
<dl class="return" compact><dt><b>Returns:</b></dt><dd>true if the list contains e </dd></dl>

</div>
</div><p>
<a class="anchor" name="g97d190815f1d8ab2045c203ebd92919b"></a><!-- doxytag: member="axutil_array_list.h::axutil_array_list_create" ref="g97d190815f1d8ab2045c203ebd92919b" args="(const axutil_env_t *env, int capacity)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">AXIS2_EXTERN <a class="el" href="group__axutil__array__list.html#g1a6a89777db876cfa0cc86787b7be6a0">axutil_array_list_t</a>* axutil_array_list_create           </td>
          <td>(</td>
          <td class="paramtype">const <a class="el" href="structaxutil__env.html">axutil_env_t</a> *&nbsp;</td>
          <td class="paramname"> <em>env</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">int&nbsp;</td>
          <td class="paramname"> <em>capacity</em></td><td>&nbsp;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td><td width="100%"></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
Constructs a new array list with the supplied initial capacity. If capacity is invalid (&lt;= 0) then default capacity is used <dl compact><dt><b>Parameters:</b></dt><dd>
  <table border="0" cellspacing="2" cellpadding="0">
    <tr><td valign="top"></td><td valign="top"><em>env</em>&nbsp;</td><td>pointer to environment struct </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>capacity</em>&nbsp;</td><td>initial capacity of this array_list </td></tr>
  </table>
</dl>

</div>
</div><p>
<a class="anchor" name="g07cd8d75ecc51f53224af4b6793dcde7"></a><!-- doxytag: member="axutil_array_list.h::axutil_array_list_ensure_capacity" ref="g07cd8d75ecc51f53224af4b6793dcde7" args="(struct axutil_array_list *array_list, const axutil_env_t *env, int min_capacity)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">AXIS2_EXTERN axis2_status_t axutil_array_list_ensure_capacity           </td>
          <td>(</td>
          <td class="paramtype">struct axutil_array_list *&nbsp;</td>
          <td class="paramname"> <em>array_list</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const <a class="el" href="structaxutil__env.html">axutil_env_t</a> *&nbsp;</td>
          <td class="paramname"> <em>env</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">int&nbsp;</td>
          <td class="paramname"> <em>min_capacity</em></td><td>&nbsp;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td><td width="100%"></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
Guarantees that this list will have at least enough capacity to hold min_capacity elements. This implementation will grow the list to max(current * 2, min_capacity) <dl compact><dt><b>Parameters:</b></dt><dd>
  <table border="0" cellspacing="2" cellpadding="0">
    <tr><td valign="top"></td><td valign="top"><em>array_list</em>&nbsp;</td><td>pointer to array_list </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>env</em>&nbsp;</td><td>pointer to environment struct </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>min_capacity</em>&nbsp;</td><td>the minimum guaranteed capacity </td></tr>
  </table>
</dl>
<dl class="return" compact><dt><b>Returns:</b></dt><dd>AXIS2_SUCCESS on success, else AXIS2_FAILURE </dd></dl>

</div>
</div><p>
<a class="anchor" name="g549e9d4e6c502650ea76d0134551130e"></a><!-- doxytag: member="axutil_array_list.h::axutil_array_list_free" ref="g549e9d4e6c502650ea76d0134551130e" args="(struct axutil_array_list *array_list, const axutil_env_t *env)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">AXIS2_EXTERN void axutil_array_list_free           </td>
          <td>(</td>
          <td class="paramtype">struct axutil_array_list *&nbsp;</td>
          <td class="paramname"> <em>array_list</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const <a class="el" href="structaxutil__env.html">axutil_env_t</a> *&nbsp;</td>
          <td class="paramname"> <em>env</em></td><td>&nbsp;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td><td width="100%"></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
<dl compact><dt><b>Parameters:</b></dt><dd>
  <table border="0" cellspacing="2" cellpadding="0">
    <tr><td valign="top"></td><td valign="top"><em>array_list</em>&nbsp;</td><td>pointer to array list </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>env</em>&nbsp;</td><td>pointer to environment struct </td></tr>
  </table>
</dl>
<dl class="return" compact><dt><b>Returns:</b></dt><dd>AXIS2_SUCCESS on success, else AXIS2_FAILURE </dd></dl>

</div>
</div><p>
<a class="anchor" name="gf649de5177ea73a4e2e39c38af79e62f"></a><!-- doxytag: member="axutil_array_list.h::axutil_array_list_free_void_arg" ref="gf649de5177ea73a4e2e39c38af79e62f" args="(void *array_list, const axutil_env_t *env)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">AXIS2_EXTERN void axutil_array_list_free_void_arg           </td>
          <td>(</td>
          <td class="paramtype">void *&nbsp;</td>
          <td class="paramname"> <em>array_list</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const <a class="el" href="structaxutil__env.html">axutil_env_t</a> *&nbsp;</td>
          <td class="paramname"> <em>env</em></td><td>&nbsp;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td><td width="100%"></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
Free array passed as void pointer. <dl compact><dt><b>Parameters:</b></dt><dd>
  <table border="0" cellspacing="2" cellpadding="0">
    <tr><td valign="top"></td><td valign="top"><em>array_list</em>&nbsp;</td><td>pointer to array list </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>env</em>&nbsp;</td><td>pointer to environment struct </td></tr>
  </table>
</dl>

</div>
</div><p>
<a class="anchor" name="gb6e54fa2917ddc0128e98a3bb0adcfad"></a><!-- doxytag: member="axutil_array_list.h::axutil_array_list_get" ref="gb6e54fa2917ddc0128e98a3bb0adcfad" args="(struct axutil_array_list *array_list, const axutil_env_t *env, int index)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">AXIS2_EXTERN void* axutil_array_list_get           </td>
          <td>(</td>
          <td class="paramtype">struct axutil_array_list *&nbsp;</td>
          <td class="paramname"> <em>array_list</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const <a class="el" href="structaxutil__env.html">axutil_env_t</a> *&nbsp;</td>
          <td class="paramname"> <em>env</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">int&nbsp;</td>
          <td class="paramname"> <em>index</em></td><td>&nbsp;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td><td width="100%"></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
Retrieves the element at the user-supplied index. <dl compact><dt><b>Parameters:</b></dt><dd>
  <table border="0" cellspacing="2" cellpadding="0">
    <tr><td valign="top"></td><td valign="top"><em>array_list</em>&nbsp;</td><td>pointer to array list </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>env</em>&nbsp;</td><td>pointer to environment struct </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>index</em>&nbsp;</td><td>the index of the element we are fetching </td></tr>
  </table>
</dl>
<dl class="return" compact><dt><b>Returns:</b></dt><dd>element at the given index </dd></dl>

</div>
</div><p>
<a class="anchor" name="gb539c683dea5713f8388e131e686ad28"></a><!-- doxytag: member="axutil_array_list.h::axutil_array_list_index_of" ref="gb539c683dea5713f8388e131e686ad28" args="(struct axutil_array_list *array_list, const axutil_env_t *env, void *e)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">AXIS2_EXTERN int axutil_array_list_index_of           </td>
          <td>(</td>
          <td class="paramtype">struct axutil_array_list *&nbsp;</td>
          <td class="paramname"> <em>array_list</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const <a class="el" href="structaxutil__env.html">axutil_env_t</a> *&nbsp;</td>
          <td class="paramname"> <em>env</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">void *&nbsp;</td>
          <td class="paramname"> <em>e</em></td><td>&nbsp;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td><td width="100%"></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
Returns the lowest index at which element appears in this List, or -1 if it does not appear. This looks for the pointer value equality only, does not look into pointer content <dl compact><dt><b>Parameters:</b></dt><dd>
  <table border="0" cellspacing="2" cellpadding="0">
    <tr><td valign="top"></td><td valign="top"><em>array_list</em>&nbsp;</td><td>pointer to array list </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>env</em>&nbsp;</td><td>pointer to environment struct </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>e</em>&nbsp;</td><td>the element whose inclusion in the List is being tested </td></tr>
  </table>
</dl>
<dl class="return" compact><dt><b>Returns:</b></dt><dd>the index where e was found </dd></dl>

</div>
</div><p>
<a class="anchor" name="g3ed8b5b9d4a0a4e76e4c55d92a307a0d"></a><!-- doxytag: member="axutil_array_list.h::axutil_array_list_is_empty" ref="g3ed8b5b9d4a0a4e76e4c55d92a307a0d" args="(struct axutil_array_list *array_list, const axutil_env_t *env)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">AXIS2_EXTERN axis2_bool_t axutil_array_list_is_empty           </td>
          <td>(</td>
          <td class="paramtype">struct axutil_array_list *&nbsp;</td>
          <td class="paramname"> <em>array_list</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const <a class="el" href="structaxutil__env.html">axutil_env_t</a> *&nbsp;</td>
          <td class="paramname"> <em>env</em></td><td>&nbsp;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td><td width="100%"></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
Checks if the list is empty. <dl compact><dt><b>Parameters:</b></dt><dd>
  <table border="0" cellspacing="2" cellpadding="0">
    <tr><td valign="top"></td><td valign="top"><em>array_list</em>&nbsp;</td><td>pointer to array list </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>env</em>&nbsp;</td><td>pointer to environment struct </td></tr>
  </table>
</dl>
<dl class="return" compact><dt><b>Returns:</b></dt><dd>true if there are no elements, else false </dd></dl>

</div>
</div><p>
<a class="anchor" name="g2aefd638d987a77684c95d3d49250c9a"></a><!-- doxytag: member="axutil_array_list.h::axutil_array_list_remove" ref="g2aefd638d987a77684c95d3d49250c9a" args="(struct axutil_array_list *array_list, const axutil_env_t *env, int index)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">AXIS2_EXTERN void* axutil_array_list_remove           </td>
          <td>(</td>
          <td class="paramtype">struct axutil_array_list *&nbsp;</td>
          <td class="paramname"> <em>array_list</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const <a class="el" href="structaxutil__env.html">axutil_env_t</a> *&nbsp;</td>
          <td class="paramname"> <em>env</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">int&nbsp;</td>
          <td class="paramname"> <em>index</em></td><td>&nbsp;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td><td width="100%"></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
Removes the element at the user-supplied index. <dl compact><dt><b>Parameters:</b></dt><dd>
  <table border="0" cellspacing="2" cellpadding="0">
    <tr><td valign="top"></td><td valign="top"><em>array_list</em>&nbsp;</td><td>pointer to array list </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>env</em>&nbsp;</td><td>pointer to environment struct </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>index</em>&nbsp;</td><td>the index of the element to be removed </td></tr>
  </table>
</dl>
<dl class="return" compact><dt><b>Returns:</b></dt><dd>the removed void* pointer </dd></dl>

</div>
</div><p>
<a class="anchor" name="g77177f8cd9a95ec0bedeec6906352395"></a><!-- doxytag: member="axutil_array_list.h::axutil_array_list_set" ref="g77177f8cd9a95ec0bedeec6906352395" args="(struct axutil_array_list *array_list, const axutil_env_t *env, int index, void *e)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">AXIS2_EXTERN void* axutil_array_list_set           </td>
          <td>(</td>
          <td class="paramtype">struct axutil_array_list *&nbsp;</td>
          <td class="paramname"> <em>array_list</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const <a class="el" href="structaxutil__env.html">axutil_env_t</a> *&nbsp;</td>
          <td class="paramname"> <em>env</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">int&nbsp;</td>
          <td class="paramname"> <em>index</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">void *&nbsp;</td>
          <td class="paramname"> <em>e</em></td><td>&nbsp;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td><td width="100%"></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
Sets the element at the specified index. The new element, e, can be an object of any type or null. <dl compact><dt><b>Parameters:</b></dt><dd>
  <table border="0" cellspacing="2" cellpadding="0">
    <tr><td valign="top"></td><td valign="top"><em>array_list</em>&nbsp;</td><td>pointer to array list </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>env</em>&nbsp;</td><td>pointer to environment struct </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>index</em>&nbsp;</td><td>the index at which the element is being set </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>e</em>&nbsp;</td><td>the element to be set </td></tr>
  </table>
</dl>
<dl class="return" compact><dt><b>Returns:</b></dt><dd>the element previously at the specified index </dd></dl>

</div>
</div><p>
<a class="anchor" name="g89efc3fe773e2655f1884121a97273f3"></a><!-- doxytag: member="axutil_array_list.h::axutil_array_list_size" ref="g89efc3fe773e2655f1884121a97273f3" args="(struct axutil_array_list *array_list, const axutil_env_t *env)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">AXIS2_EXTERN int axutil_array_list_size           </td>
          <td>(</td>
          <td class="paramtype">struct axutil_array_list *&nbsp;</td>
          <td class="paramname"> <em>array_list</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const <a class="el" href="structaxutil__env.html">axutil_env_t</a> *&nbsp;</td>
          <td class="paramname"> <em>env</em></td><td>&nbsp;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td><td width="100%"></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
Returns the number of elements in this list. <dl compact><dt><b>Parameters:</b></dt><dd>
  <table border="0" cellspacing="2" cellpadding="0">
    <tr><td valign="top"></td><td valign="top"><em>array_list</em>&nbsp;</td><td>pointer to array list </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>env</em>&nbsp;</td><td>pointer to environment struct </td></tr>
  </table>
</dl>
<dl class="return" compact><dt><b>Returns:</b></dt><dd>the list size </dd></dl>

</div>
</div><p>
<hr size="1"><address style="text-align: right;"><small>Generated on Fri Apr 17 11:49:45 2009 for Axis2/C by&nbsp;
<a href="http://www.doxygen.org/index.html">
<img src="doxygen.png" alt="doxygen" align="middle" border="0"></a> 1.5.3 </small></address>
</body>
</html>


<|start_filename|>xdocs/api/html/group__rp__property.html<|end_filename|>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html><head><meta http-equiv="Content-Type" content="text/html;charset=UTF-8">
<title>Axis2/C: Rp_property</title>
<link href="doxygen.css" rel="stylesheet" type="text/css">
<link href="tabs.css" rel="stylesheet" type="text/css">
</head><body>
<!-- Generated by Doxygen 1.5.3 -->
<div class="tabs">
  <ul>
    <li><a href="index.html"><span>Main&nbsp;Page</span></a></li>
    <li><a href="modules.html"><span>Modules</span></a></li>
    <li><a href="annotated.html"><span>Classes</span></a></li>
    <li><a href="files.html"><span>Files</span></a></li>
    <li><a href="dirs.html"><span>Directories</span></a></li>
    <li><a href="pages.html"><span>Related&nbsp;Pages</span></a></li>
    <li><a href="examples.html"><span>Examples</span></a></li>
    <li>
      <form action="search.php" method="get">
        <table cellspacing="0" cellpadding="0" border="0">
          <tr>
            <td><label>&nbsp;<u>S</u>earch&nbsp;for&nbsp;</label></td>
            <td><input type="text" name="query" value="" size="20" accesskey="s"/></td>
          </tr>
        </table>
      </form>
    </li>
  </ul>
</div>
<h1>Rp_property</h1><table border="0" cellpadding="0" cellspacing="0">
<tr><td></td></tr>
<tr><td colspan="2"><br><h2>Typedefs</h2></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="g47fe466d954de1660f4b2abd8ec4f96a"></a><!-- doxytag: member="rp_property::rp_property_t" ref="g47fe466d954de1660f4b2abd8ec4f96a" args="" -->
typedef struct <br>
rp_property_t&nbsp;</td><td class="memItemRight" valign="bottom"><b>rp_property_t</b></td></tr>

<tr><td colspan="2"><br><h2>Enumerations</h2></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top">enum &nbsp;</td><td class="memItemRight" valign="bottom"><b>rp_property_type_t</b> { <br>
&nbsp;&nbsp;<b>RP_PROPERTY_USERNAME_TOKEN</b> =  0, 
<b>RP_PROPERTY_X509_TOKEN</b>, 
<b>RP_PROPERTY_ISSUED_TOKEN</b>, 
<b>RP_PROPERTY_SAML_TOKEN</b>, 
<br>
&nbsp;&nbsp;<b>RP_PROPERTY_SECURITY_CONTEXT_TOKEN</b>, 
<b>RP_PROPERTY_HTTPS_TOKEN</b>, 
<b>RP_PROPERTY_SYMMETRIC_BINDING</b>, 
<b>RP_PROPERTY_ASYMMETRIC_BINDING</b>, 
<br>
&nbsp;&nbsp;<b>RP_PROPERTY_TRANSPORT_BINDING</b>, 
<b>RP_PROPERTY_SIGNED_SUPPORTING_TOKEN</b>, 
<b>RP_PROPERTY_SIGNED_ENDORSING_SUPPORTING_TOKEN</b>, 
<b>RP_PROPERTY_SUPPORTING_SUPPORTING_TOKEN</b>, 
<br>
&nbsp;&nbsp;<b>RP_PROPERTY_ENDORSING_SUPPORTING_TOKEN</b>, 
<b>RP_PROPERTY_WSS10</b>, 
<b>RP_PROPERTY_WSS11</b>, 
<b>RP_PROPERTY_SUPPORTING_TOKEN</b>, 
<br>
&nbsp;&nbsp;<b>RP_PROPERTY_UNKNOWN</b>
<br>
 }</td></tr>

<tr><td colspan="2"><br><h2>Functions</h2></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="g2eceaff5e2027330e5fcf0ccd2a21086"></a><!-- doxytag: member="rp_property::rp_property_create" ref="g2eceaff5e2027330e5fcf0ccd2a21086" args="(const axutil_env_t *env)" -->
AXIS2_EXTERN <br>
rp_property_t *&nbsp;</td><td class="memItemRight" valign="bottom"><b>rp_property_create</b> (const <a class="el" href="structaxutil__env.html">axutil_env_t</a> *env)</td></tr>

<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="g1819fb02b5fadad659ff1fddc010d9e8"></a><!-- doxytag: member="rp_property::rp_property_free" ref="g1819fb02b5fadad659ff1fddc010d9e8" args="(rp_property_t *property, const axutil_env_t *env)" -->
AXIS2_EXTERN void&nbsp;</td><td class="memItemRight" valign="bottom"><b>rp_property_free</b> (rp_property_t *property, const <a class="el" href="structaxutil__env.html">axutil_env_t</a> *env)</td></tr>

<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="ga628d0045eaf1a9172a839390491f8e1"></a><!-- doxytag: member="rp_property::rp_property_set_value" ref="ga628d0045eaf1a9172a839390491f8e1" args="(rp_property_t *property, const axutil_env_t *env, void *value, rp_property_type_t type)" -->
AXIS2_EXTERN <br>
axis2_status_t&nbsp;</td><td class="memItemRight" valign="bottom"><b>rp_property_set_value</b> (rp_property_t *property, const <a class="el" href="structaxutil__env.html">axutil_env_t</a> *env, void *value, rp_property_type_t type)</td></tr>

<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="gee7d804294fc158860cc2b11cf79560b"></a><!-- doxytag: member="rp_property::rp_property_get_value" ref="gee7d804294fc158860cc2b11cf79560b" args="(rp_property_t *property, const axutil_env_t *env)" -->
AXIS2_EXTERN void *&nbsp;</td><td class="memItemRight" valign="bottom"><b>rp_property_get_value</b> (rp_property_t *property, const <a class="el" href="structaxutil__env.html">axutil_env_t</a> *env)</td></tr>

<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="g878d80887805562ce29160d902eb64d3"></a><!-- doxytag: member="rp_property::rp_property_get_type" ref="g878d80887805562ce29160d902eb64d3" args="(rp_property_t *property, const axutil_env_t *env)" -->
AXIS2_EXTERN <br>
rp_property_type_t&nbsp;</td><td class="memItemRight" valign="bottom"><b>rp_property_get_type</b> (rp_property_t *property, const <a class="el" href="structaxutil__env.html">axutil_env_t</a> *env)</td></tr>

<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="gf93de55d92c759625827a2b3e8679fc5"></a><!-- doxytag: member="rp_property::rp_property_increment_ref" ref="gf93de55d92c759625827a2b3e8679fc5" args="(rp_property_t *property, const axutil_env_t *env)" -->
AXIS2_EXTERN <br>
axis2_status_t&nbsp;</td><td class="memItemRight" valign="bottom"><b>rp_property_increment_ref</b> (rp_property_t *property, const <a class="el" href="structaxutil__env.html">axutil_env_t</a> *env)</td></tr>

</table>
<hr size="1"><address style="text-align: right;"><small>Generated on Fri Apr 17 11:49:47 2009 for Axis2/C by&nbsp;
<a href="http://www.doxygen.org/index.html">
<img src="doxygen.png" alt="doxygen" align="middle" border="0"></a> 1.5.3 </small></address>
</body>
</html>


<|start_filename|>xdocs/api/html/group__axutil__string__utils.html<|end_filename|>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html><head><meta http-equiv="Content-Type" content="text/html;charset=UTF-8">
<title>Axis2/C: string_utils</title>
<link href="doxygen.css" rel="stylesheet" type="text/css">
<link href="tabs.css" rel="stylesheet" type="text/css">
</head><body>
<!-- Generated by Doxygen 1.5.3 -->
<div class="tabs">
  <ul>
    <li><a href="index.html"><span>Main&nbsp;Page</span></a></li>
    <li><a href="modules.html"><span>Modules</span></a></li>
    <li><a href="annotated.html"><span>Classes</span></a></li>
    <li><a href="files.html"><span>Files</span></a></li>
    <li><a href="dirs.html"><span>Directories</span></a></li>
    <li><a href="pages.html"><span>Related&nbsp;Pages</span></a></li>
    <li><a href="examples.html"><span>Examples</span></a></li>
    <li>
      <form action="search.php" method="get">
        <table cellspacing="0" cellpadding="0" border="0">
          <tr>
            <td><label>&nbsp;<u>S</u>earch&nbsp;for&nbsp;</label></td>
            <td><input type="text" name="query" value="" size="20" accesskey="s"/></td>
          </tr>
        </table>
      </form>
    </li>
  </ul>
</div>
<h1>string_utils<br>
<small>
[<a class="el" href="group__axis2__util.html">utilities</a>]</small>
</h1><table border="0" cellpadding="0" cellspacing="0">
<tr><td></td></tr>
<tr><td colspan="2"><br><h2>Functions</h2></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="g700d0b66ff83204a597d2ec69dc71c19"></a><!-- doxytag: member="axutil_string_utils::axutil_strdup" ref="g700d0b66ff83204a597d2ec69dc71c19" args="(const axutil_env_t *env, const void *ptr)" -->
AXIS2_EXTERN void *&nbsp;</td><td class="memItemRight" valign="bottom"><b>axutil_strdup</b> (const <a class="el" href="structaxutil__env.html">axutil_env_t</a> *env, const void *ptr)</td></tr>

<tr><td class="memItemLeft" nowrap align="right" valign="top">AXIS2_EXTERN void *&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__axutil__string__utils.html#g8827b05fe58fbe74d0342f9e4ae19a72">axutil_strndup</a> (const <a class="el" href="structaxutil__env.html">axutil_env_t</a> *env, const void *ptr, int n)</td></tr>

<tr><td class="memItemLeft" nowrap align="right" valign="top">AXIS2_EXTERN void *&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__axutil__string__utils.html#gd2bde5b665c91059e573e276db3fe33e">axutil_strmemdup</a> (const void *ptr, size_t n, const <a class="el" href="structaxutil__env.html">axutil_env_t</a> *env)</td></tr>

<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="gac65467f846187109b70d00a875d39b1"></a><!-- doxytag: member="axutil_string_utils::axutil_memchr" ref="gac65467f846187109b70d00a875d39b1" args="(const void *ptr, int c, size_t n)" -->
AXIS2_EXTERN void *&nbsp;</td><td class="memItemRight" valign="bottom"><b>axutil_memchr</b> (const void *ptr, int c, size_t n)</td></tr>

<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="gbfcd898738c57cfc744070d942cf9b61"></a><!-- doxytag: member="axutil_string_utils::axutil_strcmp" ref="gbfcd898738c57cfc744070d942cf9b61" args="(const axis2_char_t *s1, const axis2_char_t *s2)" -->
AXIS2_EXTERN int&nbsp;</td><td class="memItemRight" valign="bottom"><b>axutil_strcmp</b> (const axis2_char_t *s1, const axis2_char_t *s2)</td></tr>

<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="gc212cb9a58d9801d05527395616668ec"></a><!-- doxytag: member="axutil_string_utils::axutil_strncmp" ref="gc212cb9a58d9801d05527395616668ec" args="(const axis2_char_t *s1, const axis2_char_t *s2, int n)" -->
AXIS2_EXTERN int&nbsp;</td><td class="memItemRight" valign="bottom"><b>axutil_strncmp</b> (const axis2_char_t *s1, const axis2_char_t *s2, int n)</td></tr>

<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="g9bdfa21d0c5b8bf21cb9edcaa03ccd33"></a><!-- doxytag: member="axutil_string_utils::axutil_strlen" ref="g9bdfa21d0c5b8bf21cb9edcaa03ccd33" args="(const axis2_char_t *s)" -->
AXIS2_EXTERN <br>
axis2_ssize_t&nbsp;</td><td class="memItemRight" valign="bottom"><b>axutil_strlen</b> (const axis2_char_t *s)</td></tr>

<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="g8a9c2f76adab0c61524c0b3a504af2c1"></a><!-- doxytag: member="axutil_string_utils::axutil_strcasecmp" ref="g8a9c2f76adab0c61524c0b3a504af2c1" args="(const axis2_char_t *s1, const axis2_char_t *s2)" -->
AXIS2_EXTERN int&nbsp;</td><td class="memItemRight" valign="bottom"><b>axutil_strcasecmp</b> (const axis2_char_t *s1, const axis2_char_t *s2)</td></tr>

<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="g60ac89bddd68b281ad974d316e9c187c"></a><!-- doxytag: member="axutil_string_utils::axutil_strncasecmp" ref="g60ac89bddd68b281ad974d316e9c187c" args="(const axis2_char_t *s1, const axis2_char_t *s2, const int n)" -->
AXIS2_EXTERN int&nbsp;</td><td class="memItemRight" valign="bottom"><b>axutil_strncasecmp</b> (const axis2_char_t *s1, const axis2_char_t *s2, const int n)</td></tr>

<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="g4fc84a016b0e586c15ff09eea315e00a"></a><!-- doxytag: member="axutil_string_utils::axutil_stracat" ref="g4fc84a016b0e586c15ff09eea315e00a" args="(const axutil_env_t *env, const axis2_char_t *s1, const axis2_char_t *s2)" -->
AXIS2_EXTERN <br>
axis2_char_t *&nbsp;</td><td class="memItemRight" valign="bottom"><b>axutil_stracat</b> (const <a class="el" href="structaxutil__env.html">axutil_env_t</a> *env, const axis2_char_t *s1, const axis2_char_t *s2)</td></tr>

<tr><td class="memItemLeft" nowrap align="right" valign="top">AXIS2_EXTERN <br>
axis2_char_t *&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__axutil__string__utils.html#g6f853777560c912e0dd6416eb95fe2ea">axutil_strcat</a> (const <a class="el" href="structaxutil__env.html">axutil_env_t</a> *env,...)</td></tr>

<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="gc1252ccce62852fe44fcde87451075c4"></a><!-- doxytag: member="axutil_string_utils::axutil_strstr" ref="gc1252ccce62852fe44fcde87451075c4" args="(const axis2_char_t *heystack, const axis2_char_t *needle)" -->
AXIS2_EXTERN <br>
axis2_char_t *&nbsp;</td><td class="memItemRight" valign="bottom"><b>axutil_strstr</b> (const axis2_char_t *heystack, const axis2_char_t *needle)</td></tr>

<tr><td class="memItemLeft" nowrap align="right" valign="top">AXIS2_EXTERN <br>
axis2_char_t *&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__axutil__string__utils.html#gb8e4a59c1f0dccadb35f30e47991291b">axutil_strchr</a> (const axis2_char_t *s, axis2_char_t ch)</td></tr>

<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="g14d81e52bceb20fa2df982c0e8f05de2"></a><!-- doxytag: member="axutil_string_utils::axutil_rindex" ref="g14d81e52bceb20fa2df982c0e8f05de2" args="(const axis2_char_t *s, axis2_char_t c)" -->
AXIS2_EXTERN <br>
axis2_char_t *&nbsp;</td><td class="memItemRight" valign="bottom"><b>axutil_rindex</b> (const axis2_char_t *s, axis2_char_t c)</td></tr>

<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="g2c11888e15e1a731f7adf6259aad0c1e"></a><!-- doxytag: member="axutil_string_utils::axutil_replace" ref="g2c11888e15e1a731f7adf6259aad0c1e" args="(const axutil_env_t *env, axis2_char_t *str, int s1, int s2)" -->
AXIS2_EXTERN <br>
axis2_char_t *&nbsp;</td><td class="memItemRight" valign="bottom"><b>axutil_replace</b> (const <a class="el" href="structaxutil__env.html">axutil_env_t</a> *env, axis2_char_t *str, int s1, int s2)</td></tr>

<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="g592e5c82f2b613f0776a19cb15793b97"></a><!-- doxytag: member="axutil_string_utils::axutil_strltrim" ref="g592e5c82f2b613f0776a19cb15793b97" args="(const axutil_env_t *env, const axis2_char_t *_s, const axis2_char_t *_trim)" -->
AXIS2_EXTERN <br>
axis2_char_t *&nbsp;</td><td class="memItemRight" valign="bottom"><b>axutil_strltrim</b> (const <a class="el" href="structaxutil__env.html">axutil_env_t</a> *env, const axis2_char_t *_s, const axis2_char_t *_trim)</td></tr>

<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="g534417d7b1135dca0f277683afbb0185"></a><!-- doxytag: member="axutil_string_utils::axutil_strrtrim" ref="g534417d7b1135dca0f277683afbb0185" args="(const axutil_env_t *env, const axis2_char_t *_s, const axis2_char_t *_trim)" -->
AXIS2_EXTERN <br>
axis2_char_t *&nbsp;</td><td class="memItemRight" valign="bottom"><b>axutil_strrtrim</b> (const <a class="el" href="structaxutil__env.html">axutil_env_t</a> *env, const axis2_char_t *_s, const axis2_char_t *_trim)</td></tr>

<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="g4b3fe5b371f96a3831bf77de352faba2"></a><!-- doxytag: member="axutil_string_utils::axutil_strtrim" ref="g4b3fe5b371f96a3831bf77de352faba2" args="(const axutil_env_t *env, const axis2_char_t *_s, const axis2_char_t *_trim)" -->
AXIS2_EXTERN <br>
axis2_char_t *&nbsp;</td><td class="memItemRight" valign="bottom"><b>axutil_strtrim</b> (const <a class="el" href="structaxutil__env.html">axutil_env_t</a> *env, const axis2_char_t *_s, const axis2_char_t *_trim)</td></tr>

<tr><td class="memItemLeft" nowrap align="right" valign="top">AXIS2_EXTERN <br>
axis2_char_t *&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__axutil__string__utils.html#gd262592f6f079b1dd4e5380ba0edcdbd">axutil_string_replace</a> (axis2_char_t *str, axis2_char_t old_char, axis2_char_t new_char)</td></tr>

<tr><td class="memItemLeft" nowrap align="right" valign="top">AXIS2_EXTERN <br>
axis2_char_t *&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__axutil__string__utils.html#g3fbd93acf1500a6eb20839e6035bdb46">axutil_string_substring_starting_at</a> (axis2_char_t *str, int s)</td></tr>

<tr><td class="memItemLeft" nowrap align="right" valign="top">AXIS2_EXTERN <br>
axis2_char_t *&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__axutil__string__utils.html#g5fa2c2b4d112595920df38373dd25415">axutil_string_substring_ending_at</a> (axis2_char_t *str, int e)</td></tr>

<tr><td class="memItemLeft" nowrap align="right" valign="top">AXIS2_EXTERN <br>
axis2_char_t *&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__axutil__string__utils.html#gf407c3ed17d58602e5ff165a9d8880d6">axutil_string_tolower</a> (axis2_char_t *str)</td></tr>

<tr><td class="memItemLeft" nowrap align="right" valign="top">AXIS2_EXTERN <br>
axis2_char_t *&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__axutil__string__utils.html#gf53501a68e7cb1ecc2ef8c0ef3a20585">axutil_string_toupper</a> (axis2_char_t *str)</td></tr>

<tr><td class="memItemLeft" nowrap align="right" valign="top">AXIS2_EXTERN <br>
axis2_char_t *&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__axutil__string__utils.html#g40d66df30dd87c5c2e39c851473414ad">axutil_strcasestr</a> (const axis2_char_t *heystack, const axis2_char_t *needle)</td></tr>

</table>
<hr><h2>Function Documentation</h2>
<a class="anchor" name="g40d66df30dd87c5c2e39c851473414ad"></a><!-- doxytag: member="axutil_string.h::axutil_strcasestr" ref="g40d66df30dd87c5c2e39c851473414ad" args="(const axis2_char_t *heystack, const axis2_char_t *needle)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">AXIS2_EXTERN axis2_char_t* axutil_strcasestr           </td>
          <td>(</td>
          <td class="paramtype">const axis2_char_t *&nbsp;</td>
          <td class="paramname"> <em>heystack</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const axis2_char_t *&nbsp;</td>
          <td class="paramname"> <em>needle</em></td><td>&nbsp;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td><td width="100%"></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
Finds the first occurrence of the substring needle in the string haystack, ignores the case of both arguments. <dl compact><dt><b>Parameters:</b></dt><dd>
  <table border="0" cellspacing="2" cellpadding="0">
    <tr><td valign="top"></td><td valign="top"><em>haystack</em>&nbsp;</td><td>string in which the given string is to be found </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>needle</em>&nbsp;</td><td>string to be found in haystack </td></tr>
  </table>
</dl>
<dl class="return" compact><dt><b>Returns:</b></dt><dd>pointer to the beginning of the substring, or NULL if the substring is not found </dd></dl>

</div>
</div><p>
<a class="anchor" name="g6f853777560c912e0dd6416eb95fe2ea"></a><!-- doxytag: member="axutil_string.h::axutil_strcat" ref="g6f853777560c912e0dd6416eb95fe2ea" args="(const axutil_env_t *env,...)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">AXIS2_EXTERN axis2_char_t* axutil_strcat           </td>
          <td>(</td>
          <td class="paramtype">const <a class="el" href="structaxutil__env.html">axutil_env_t</a> *&nbsp;</td>
          <td class="paramname"> <em>env</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">&nbsp;</td>
          <td class="paramname"> <em>...</em></td><td>&nbsp;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td><td width="100%"></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
Concatenate multiple strings, allocating memory <dl compact><dt><b>Parameters:</b></dt><dd>
  <table border="0" cellspacing="2" cellpadding="0">
    <tr><td valign="top"></td><td valign="top"><em>...</em>&nbsp;</td><td>The strings to concatenate. The final string must be NULL </td></tr>
  </table>
</dl>
<dl class="return" compact><dt><b>Returns:</b></dt><dd>The new string </dd></dl>

</div>
</div><p>
<a class="anchor" name="gb8e4a59c1f0dccadb35f30e47991291b"></a><!-- doxytag: member="axutil_string.h::axutil_strchr" ref="gb8e4a59c1f0dccadb35f30e47991291b" args="(const axis2_char_t *s, axis2_char_t ch)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">AXIS2_EXTERN axis2_char_t* axutil_strchr           </td>
          <td>(</td>
          <td class="paramtype">const axis2_char_t *&nbsp;</td>
          <td class="paramname"> <em>s</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">axis2_char_t&nbsp;</td>
          <td class="paramname"> <em>ch</em></td><td>&nbsp;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td><td width="100%"></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
Finds the first occurrence of a character in a string <dl compact><dt><b>Parameters:</b></dt><dd>
  <table border="0" cellspacing="2" cellpadding="0">
    <tr><td valign="top"></td><td valign="top"><em>s</em>&nbsp;</td><td>String in which the character is searched </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>ch</em>&nbsp;</td><td>Character to be searched </td></tr>
  </table>
</dl>
<dl class="return" compact><dt><b>Returns:</b></dt><dd>Pointer to to the first occurence of the charecter if it could be found in the string, NULL otherwise </dd></dl>

</div>
</div><p>
<a class="anchor" name="gd262592f6f079b1dd4e5380ba0edcdbd"></a><!-- doxytag: member="axutil_string.h::axutil_string_replace" ref="gd262592f6f079b1dd4e5380ba0edcdbd" args="(axis2_char_t *str, axis2_char_t old_char, axis2_char_t new_char)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">AXIS2_EXTERN axis2_char_t* axutil_string_replace           </td>
          <td>(</td>
          <td class="paramtype">axis2_char_t *&nbsp;</td>
          <td class="paramname"> <em>str</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">axis2_char_t&nbsp;</td>
          <td class="paramname"> <em>old_char</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">axis2_char_t&nbsp;</td>
          <td class="paramname"> <em>new_char</em></td><td>&nbsp;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td><td width="100%"></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
replace given axis2_character with a new one. <dl compact><dt><b>Parameters:</b></dt><dd>
  <table border="0" cellspacing="2" cellpadding="0">
    <tr><td valign="top"></td><td valign="top"><em>str</em>&nbsp;</td><td>string operation apply </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>old_char</em>&nbsp;</td><td>the old axis2_character which would be replaced </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>new_char</em>&nbsp;</td><td>new axis2_char_tacter </td></tr>
  </table>
</dl>
<dl class="return" compact><dt><b>Returns:</b></dt><dd>replaced string </dd></dl>

</div>
</div><p>
<a class="anchor" name="g5fa2c2b4d112595920df38373dd25415"></a><!-- doxytag: member="axutil_string.h::axutil_string_substring_ending_at" ref="g5fa2c2b4d112595920df38373dd25415" args="(axis2_char_t *str, int e)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">AXIS2_EXTERN axis2_char_t* axutil_string_substring_ending_at           </td>
          <td>(</td>
          <td class="paramtype">axis2_char_t *&nbsp;</td>
          <td class="paramname"> <em>str</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">int&nbsp;</td>
          <td class="paramname"> <em>e</em></td><td>&nbsp;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td><td width="100%"></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
gives a sub string ending with given index. <dl compact><dt><b>Parameters:</b></dt><dd>
  <table border="0" cellspacing="2" cellpadding="0">
    <tr><td valign="top"></td><td valign="top"><em>str</em>&nbsp;</td><td>string operation apply </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>c</em>&nbsp;</td><td>ending index </td></tr>
  </table>
</dl>
<dl class="return" compact><dt><b>Returns:</b></dt><dd>substring </dd></dl>

</div>
</div><p>
<a class="anchor" name="g3fbd93acf1500a6eb20839e6035bdb46"></a><!-- doxytag: member="axutil_string.h::axutil_string_substring_starting_at" ref="g3fbd93acf1500a6eb20839e6035bdb46" args="(axis2_char_t *str, int s)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">AXIS2_EXTERN axis2_char_t* axutil_string_substring_starting_at           </td>
          <td>(</td>
          <td class="paramtype">axis2_char_t *&nbsp;</td>
          <td class="paramname"> <em>str</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">int&nbsp;</td>
          <td class="paramname"> <em>s</em></td><td>&nbsp;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td><td width="100%"></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
gives a sub string starting with given index. <dl compact><dt><b>Parameters:</b></dt><dd>
  <table border="0" cellspacing="2" cellpadding="0">
    <tr><td valign="top"></td><td valign="top"><em>str</em>&nbsp;</td><td>string operation apply </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>c</em>&nbsp;</td><td>starting index </td></tr>
  </table>
</dl>
<dl class="return" compact><dt><b>Returns:</b></dt><dd>substring </dd></dl>

</div>
</div><p>
<a class="anchor" name="gf407c3ed17d58602e5ff165a9d8880d6"></a><!-- doxytag: member="axutil_string.h::axutil_string_tolower" ref="gf407c3ed17d58602e5ff165a9d8880d6" args="(axis2_char_t *str)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">AXIS2_EXTERN axis2_char_t* axutil_string_tolower           </td>
          <td>(</td>
          <td class="paramtype">axis2_char_t *&nbsp;</td>
          <td class="paramname"> <em>str</em>          </td>
          <td>&nbsp;)&nbsp;</td>
          <td width="100%"></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
set a string to lowercase. <dl compact><dt><b>Parameters:</b></dt><dd>
  <table border="0" cellspacing="2" cellpadding="0">
    <tr><td valign="top"></td><td valign="top"><em>str</em>&nbsp;</td><td>string </td></tr>
  </table>
</dl>
<dl class="return" compact><dt><b>Returns:</b></dt><dd>string with lowercase </dd></dl>

</div>
</div><p>
<a class="anchor" name="gf53501a68e7cb1ecc2ef8c0ef3a20585"></a><!-- doxytag: member="axutil_string.h::axutil_string_toupper" ref="gf53501a68e7cb1ecc2ef8c0ef3a20585" args="(axis2_char_t *str)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">AXIS2_EXTERN axis2_char_t* axutil_string_toupper           </td>
          <td>(</td>
          <td class="paramtype">axis2_char_t *&nbsp;</td>
          <td class="paramname"> <em>str</em>          </td>
          <td>&nbsp;)&nbsp;</td>
          <td width="100%"></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
set a string to uppercase. <dl compact><dt><b>Parameters:</b></dt><dd>
  <table border="0" cellspacing="2" cellpadding="0">
    <tr><td valign="top"></td><td valign="top"><em>str</em>&nbsp;</td><td>string </td></tr>
  </table>
</dl>
<dl class="return" compact><dt><b>Returns:</b></dt><dd>string with uppercase </dd></dl>

</div>
</div><p>
<a class="anchor" name="gd2bde5b665c91059e573e276db3fe33e"></a><!-- doxytag: member="axutil_string.h::axutil_strmemdup" ref="gd2bde5b665c91059e573e276db3fe33e" args="(const void *ptr, size_t n, const axutil_env_t *env)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">AXIS2_EXTERN void* axutil_strmemdup           </td>
          <td>(</td>
          <td class="paramtype">const void *&nbsp;</td>
          <td class="paramname"> <em>ptr</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">size_t&nbsp;</td>
          <td class="paramname"> <em>n</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const <a class="el" href="structaxutil__env.html">axutil_env_t</a> *&nbsp;</td>
          <td class="paramname"> <em>env</em></td><td>&nbsp;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td><td width="100%"></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
Create a null-terminated string by making a copy of a sequence of characters and appending a null byte <dl compact><dt><b>Parameters:</b></dt><dd>
  <table border="0" cellspacing="2" cellpadding="0">
    <tr><td valign="top"></td><td valign="top"><em>ptr</em>&nbsp;</td><td>The block of characters to duplicate </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>n</em>&nbsp;</td><td>The number of characters to duplicate </td></tr>
  </table>
</dl>
<dl class="return" compact><dt><b>Returns:</b></dt><dd>The new string </dd></dl>
<dl class="remark" compact><dt><b>Remarks:</b></dt><dd>This is a faster alternative to axis2_strndup, for use when you know that the string being duplicated really has 'n' or more characters. If the string might contain fewer characters, use axis2_strndup. </dd></dl>

</div>
</div><p>
<a class="anchor" name="g8827b05fe58fbe74d0342f9e4ae19a72"></a><!-- doxytag: member="axutil_string.h::axutil_strndup" ref="g8827b05fe58fbe74d0342f9e4ae19a72" args="(const axutil_env_t *env, const void *ptr, int n)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">AXIS2_EXTERN void* axutil_strndup           </td>
          <td>(</td>
          <td class="paramtype">const <a class="el" href="structaxutil__env.html">axutil_env_t</a> *&nbsp;</td>
          <td class="paramname"> <em>env</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const void *&nbsp;</td>
          <td class="paramname"> <em>ptr</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">int&nbsp;</td>
          <td class="paramname"> <em>n</em></td><td>&nbsp;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td><td width="100%"></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
duplicate the first n characters of a string into memory allocated the new string will be null-terminated <dl compact><dt><b>Parameters:</b></dt><dd>
  <table border="0" cellspacing="2" cellpadding="0">
    <tr><td valign="top"></td><td valign="top"><em>ptr</em>&nbsp;</td><td>The string to duplicate </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>n</em>&nbsp;</td><td>The number of characters to duplicate </td></tr>
  </table>
</dl>
<dl class="return" compact><dt><b>Returns:</b></dt><dd>The new string </dd></dl>

</div>
</div><p>
<hr size="1"><address style="text-align: right;"><small>Generated on Fri Apr 17 11:49:46 2009 for Axis2/C by&nbsp;
<a href="http://www.doxygen.org/index.html">
<img src="doxygen.png" alt="doxygen" align="middle" border="0"></a> 1.5.3 </small></address>
</body>
</html>


<|start_filename|>xdocs/api/html/group__axiom__xml__writer.html<|end_filename|>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html><head><meta http-equiv="Content-Type" content="text/html;charset=UTF-8">
<title>Axis2/C: XML writer</title>
<link href="doxygen.css" rel="stylesheet" type="text/css">
<link href="tabs.css" rel="stylesheet" type="text/css">
</head><body>
<!-- Generated by Doxygen 1.5.3 -->
<div class="tabs">
  <ul>
    <li><a href="index.html"><span>Main&nbsp;Page</span></a></li>
    <li><a href="modules.html"><span>Modules</span></a></li>
    <li><a href="annotated.html"><span>Classes</span></a></li>
    <li><a href="files.html"><span>Files</span></a></li>
    <li><a href="dirs.html"><span>Directories</span></a></li>
    <li><a href="pages.html"><span>Related&nbsp;Pages</span></a></li>
    <li><a href="examples.html"><span>Examples</span></a></li>
    <li>
      <form action="search.php" method="get">
        <table cellspacing="0" cellpadding="0" border="0">
          <tr>
            <td><label>&nbsp;<u>S</u>earch&nbsp;for&nbsp;</label></td>
            <td><input type="text" name="query" value="" size="20" accesskey="s"/></td>
          </tr>
        </table>
      </form>
    </li>
  </ul>
</div>
<h1>XML writer<br>
<small>
[<a class="el" href="group__axiom__parser.html">parser</a>]</small>
</h1><table border="0" cellpadding="0" cellspacing="0">
<tr><td></td></tr>
<tr><td colspan="2"><br><h2>Classes</h2></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top">struct &nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="structaxiom__xml__writer__ops.html">axiom_xml_writer_ops</a></td></tr>

<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight"><a class="el" href="structaxiom__xml__writer.html" title="axis2_pull_parser struct Axis2 OM pull_parser">axiom_xml_writer</a> ops Encapsulator struct for ops of <a class="el" href="structaxiom__xml__writer.html" title="axis2_pull_parser struct Axis2 OM pull_parser">axiom_xml_writer</a>  <a href="structaxiom__xml__writer__ops.html#_details">More...</a><br></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top">struct &nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="structaxiom__xml__writer.html">axiom_xml_writer</a></td></tr>

<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">axis2_pull_parser struct Axis2 OM pull_parser  <a href="structaxiom__xml__writer.html#_details">More...</a><br></td></tr>
<tr><td colspan="2"><br><h2>Functions</h2></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top">AXIS2_EXTERN <br>
<a class="el" href="structaxiom__xml__writer.html">axiom_xml_writer_t</a> *&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__axiom__xml__writer.html#g193830479789aa7b7c199a6abb390288">axiom_xml_writer_create</a> (const <a class="el" href="structaxutil__env.html">axutil_env_t</a> *env, axis2_char_t *filename, axis2_char_t *encoding, int is_prefix_default, int compression)</td></tr>

<tr><td class="memItemLeft" nowrap align="right" valign="top">AXIS2_EXTERN <br>
<a class="el" href="structaxiom__xml__writer.html">axiom_xml_writer_t</a> *&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__axiom__xml__writer.html#g79309882da5382c1ec3facc6e5abc862">axiom_xml_writer_create_for_memory</a> (const <a class="el" href="structaxutil__env.html">axutil_env_t</a> *env, axis2_char_t *encoding, int is_prefix_default, int compression, int type)</td></tr>

<tr><td class="memItemLeft" nowrap align="right" valign="top">AXIS2_EXTERN void&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__axiom__xml__writer.html#gf050a102040e761077a63b2254390d4a">axiom_xml_writer_free</a> (<a class="el" href="structaxiom__xml__writer.html">axiom_xml_writer_t</a> *writer, const <a class="el" href="structaxutil__env.html">axutil_env_t</a> *env)</td></tr>

<tr><td class="memItemLeft" nowrap align="right" valign="top">AXIS2_EXTERN <br>
axis2_status_t&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__axiom__xml__writer.html#g8fb66c4d3f5b6b4ddee7d62ad9ed70cc">axiom_xml_writer_write_start_element</a> (<a class="el" href="structaxiom__xml__writer.html">axiom_xml_writer_t</a> *writer, const <a class="el" href="structaxutil__env.html">axutil_env_t</a> *env, axis2_char_t *localname)</td></tr>

<tr><td class="memItemLeft" nowrap align="right" valign="top">AXIS2_EXTERN <br>
axis2_status_t&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__axiom__xml__writer.html#g84a78120dfae180cfc12998fa83907a9">axiom_xml_writer_end_start_element</a> (<a class="el" href="structaxiom__xml__writer.html">axiom_xml_writer_t</a> *writer, const <a class="el" href="structaxutil__env.html">axutil_env_t</a> *env)</td></tr>

<tr><td class="memItemLeft" nowrap align="right" valign="top">AXIS2_EXTERN <br>
axis2_status_t&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__axiom__xml__writer.html#gcbc6f4b9ed8f7825c3acd34ef323de63">axiom_xml_writer_write_start_element_with_namespace</a> (<a class="el" href="structaxiom__xml__writer.html">axiom_xml_writer_t</a> *writer, const <a class="el" href="structaxutil__env.html">axutil_env_t</a> *env, axis2_char_t *localname, axis2_char_t *namespace_uri)</td></tr>

<tr><td class="memItemLeft" nowrap align="right" valign="top">AXIS2_EXTERN <br>
axis2_status_t&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__axiom__xml__writer.html#gbbc4c3ec83abb98b8def106b6733382e">axiom_xml_writer_write_start_element_with_namespace_prefix</a> (<a class="el" href="structaxiom__xml__writer.html">axiom_xml_writer_t</a> *writer, const <a class="el" href="structaxutil__env.html">axutil_env_t</a> *env, axis2_char_t *localname, axis2_char_t *namespace_uri, axis2_char_t *prefix)</td></tr>

<tr><td class="memItemLeft" nowrap align="right" valign="top">AXIS2_EXTERN <br>
axis2_status_t&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__axiom__xml__writer.html#gf69e17121911506e5e1aff50f35d6e42">axiom_xml_writer_write_empty_element</a> (<a class="el" href="structaxiom__xml__writer.html">axiom_xml_writer_t</a> *writer, const <a class="el" href="structaxutil__env.html">axutil_env_t</a> *env, axis2_char_t *localname)</td></tr>

<tr><td class="memItemLeft" nowrap align="right" valign="top">AXIS2_EXTERN <br>
axis2_status_t&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__axiom__xml__writer.html#gf9edf4fa8cabfcad5c4df01f33ef5314">axiom_xml_writer_write_empty_element_with_namespace</a> (<a class="el" href="structaxiom__xml__writer.html">axiom_xml_writer_t</a> *writer, const <a class="el" href="structaxutil__env.html">axutil_env_t</a> *env, axis2_char_t *localname, axis2_char_t *namespace_uri)</td></tr>

<tr><td class="memItemLeft" nowrap align="right" valign="top">AXIS2_EXTERN <br>
axis2_status_t&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__axiom__xml__writer.html#g44f2a95436bfbb3225fa2792f2a747b3">axiom_xml_writer_write_empty_element_with_namespace_prefix</a> (<a class="el" href="structaxiom__xml__writer.html">axiom_xml_writer_t</a> *writer, const <a class="el" href="structaxutil__env.html">axutil_env_t</a> *env, axis2_char_t *localname, axis2_char_t *namespace_uri, axis2_char_t *prefix)</td></tr>

<tr><td class="memItemLeft" nowrap align="right" valign="top">AXIS2_EXTERN <br>
axis2_status_t&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__axiom__xml__writer.html#g0670764ce56a2674c9753995be9de071">axiom_xml_writer_write_end_element</a> (<a class="el" href="structaxiom__xml__writer.html">axiom_xml_writer_t</a> *writer, const <a class="el" href="structaxutil__env.html">axutil_env_t</a> *env)</td></tr>

<tr><td class="memItemLeft" nowrap align="right" valign="top">AXIS2_EXTERN <br>
axis2_status_t&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__axiom__xml__writer.html#g293c2a405e80ab47f2ca1e87d51dd670">axiom_xml_writer_write_end_document</a> (<a class="el" href="structaxiom__xml__writer.html">axiom_xml_writer_t</a> *writer, const <a class="el" href="structaxutil__env.html">axutil_env_t</a> *env)</td></tr>

<tr><td class="memItemLeft" nowrap align="right" valign="top">AXIS2_EXTERN <br>
axis2_status_t&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__axiom__xml__writer.html#gea0009f113fc69456db5fedf684e04f4">axiom_xml_writer_write_attribute</a> (<a class="el" href="structaxiom__xml__writer.html">axiom_xml_writer_t</a> *writer, const <a class="el" href="structaxutil__env.html">axutil_env_t</a> *env, axis2_char_t *localname, axis2_char_t *value)</td></tr>

<tr><td class="memItemLeft" nowrap align="right" valign="top">AXIS2_EXTERN <br>
axis2_status_t&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__axiom__xml__writer.html#gd75f18f14f1eb494c59e58532cd16060">axiom_xml_writer_write_attribute_with_namespace</a> (<a class="el" href="structaxiom__xml__writer.html">axiom_xml_writer_t</a> *writer, const <a class="el" href="structaxutil__env.html">axutil_env_t</a> *env, axis2_char_t *localname, axis2_char_t *value, axis2_char_t *namespace_uri)</td></tr>

<tr><td class="memItemLeft" nowrap align="right" valign="top">AXIS2_EXTERN <br>
axis2_status_t&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__axiom__xml__writer.html#g970cc4979b16407cc69a77384b096f3f">axiom_xml_writer_write_attribute_with_namespace_prefix</a> (<a class="el" href="structaxiom__xml__writer.html">axiom_xml_writer_t</a> *writer, const <a class="el" href="structaxutil__env.html">axutil_env_t</a> *env, axis2_char_t *localname, axis2_char_t *value, axis2_char_t *namespace_uri, axis2_char_t *prefix)</td></tr>

<tr><td class="memItemLeft" nowrap align="right" valign="top">AXIS2_EXTERN <br>
axis2_status_t&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__axiom__xml__writer.html#g3bb91e88f62e6620f1236dccbba5c0b6">axiom_xml_writer_write_namespace</a> (<a class="el" href="structaxiom__xml__writer.html">axiom_xml_writer_t</a> *writer, const <a class="el" href="structaxutil__env.html">axutil_env_t</a> *env, axis2_char_t *prefix, axis2_char_t *namespace_uri)</td></tr>

<tr><td class="memItemLeft" nowrap align="right" valign="top">AXIS2_EXTERN <br>
axis2_status_t&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__axiom__xml__writer.html#gf73ddc31e494b9a063fe84933e2c4f5f">axiom_xml_writer_write_default_namespace</a> (<a class="el" href="structaxiom__xml__writer.html">axiom_xml_writer_t</a> *writer, const <a class="el" href="structaxutil__env.html">axutil_env_t</a> *env, axis2_char_t *namespace_uri)</td></tr>

<tr><td class="memItemLeft" nowrap align="right" valign="top">AXIS2_EXTERN <br>
axis2_status_t&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__axiom__xml__writer.html#g62018bab93eafc410e4f4c2c0b2d5a93">axiom_xml_writer_write_comment</a> (<a class="el" href="structaxiom__xml__writer.html">axiom_xml_writer_t</a> *writer, const <a class="el" href="structaxutil__env.html">axutil_env_t</a> *env, axis2_char_t *value)</td></tr>

<tr><td class="memItemLeft" nowrap align="right" valign="top">AXIS2_EXTERN <br>
axis2_status_t&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__axiom__xml__writer.html#g50b745030f5b2b7b94de517d6843ae2d">axiom_xml_writer_write_processing_instruction</a> (<a class="el" href="structaxiom__xml__writer.html">axiom_xml_writer_t</a> *writer, const <a class="el" href="structaxutil__env.html">axutil_env_t</a> *env, axis2_char_t *target)</td></tr>

<tr><td class="memItemLeft" nowrap align="right" valign="top">AXIS2_EXTERN <br>
axis2_status_t&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__axiom__xml__writer.html#gf72fcff938ae170e1054a6291af7e785">axiom_xml_writer_write_processing_instruction_data</a> (<a class="el" href="structaxiom__xml__writer.html">axiom_xml_writer_t</a> *writer, const <a class="el" href="structaxutil__env.html">axutil_env_t</a> *env, axis2_char_t *target, axis2_char_t *data)</td></tr>

<tr><td class="memItemLeft" nowrap align="right" valign="top">AXIS2_EXTERN <br>
axis2_status_t&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__axiom__xml__writer.html#g576af9f5d4f98d90ec40d30844f49467">axiom_xml_writer_write_cdata</a> (<a class="el" href="structaxiom__xml__writer.html">axiom_xml_writer_t</a> *writer, const <a class="el" href="structaxutil__env.html">axutil_env_t</a> *env, axis2_char_t *data)</td></tr>

<tr><td class="memItemLeft" nowrap align="right" valign="top">AXIS2_EXTERN <br>
axis2_status_t&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__axiom__xml__writer.html#ged60c82c50443d672009d2e51e0e4033">axiom_xml_writer_write_dtd</a> (<a class="el" href="structaxiom__xml__writer.html">axiom_xml_writer_t</a> *writer, const <a class="el" href="structaxutil__env.html">axutil_env_t</a> *env, axis2_char_t *dtd)</td></tr>

<tr><td class="memItemLeft" nowrap align="right" valign="top">AXIS2_EXTERN <br>
axis2_status_t&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__axiom__xml__writer.html#g873890c13fa8b86f1b3c879fa13cc59d">axiom_xml_writer_write_entity_ref</a> (<a class="el" href="structaxiom__xml__writer.html">axiom_xml_writer_t</a> *writer, const <a class="el" href="structaxutil__env.html">axutil_env_t</a> *env, axis2_char_t *name)</td></tr>

<tr><td class="memItemLeft" nowrap align="right" valign="top">AXIS2_EXTERN <br>
axis2_status_t&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__axiom__xml__writer.html#g56cd0aed921b578b91c92c1dd78c989e">axiom_xml_writer_write_start_document</a> (<a class="el" href="structaxiom__xml__writer.html">axiom_xml_writer_t</a> *writer, const <a class="el" href="structaxutil__env.html">axutil_env_t</a> *env)</td></tr>

<tr><td class="memItemLeft" nowrap align="right" valign="top">AXIS2_EXTERN <br>
axis2_status_t&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__axiom__xml__writer.html#g41c370608ae8441c2601a5edc7addf2b">axiom_xml_writer_write_start_document_with_version</a> (<a class="el" href="structaxiom__xml__writer.html">axiom_xml_writer_t</a> *writer, const <a class="el" href="structaxutil__env.html">axutil_env_t</a> *env, axis2_char_t *version)</td></tr>

<tr><td class="memItemLeft" nowrap align="right" valign="top">AXIS2_EXTERN <br>
axis2_status_t&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__axiom__xml__writer.html#gc04ed21c2449d5ead09d7deca9fbfb18">axiom_xml_writer_write_start_document_with_version_encoding</a> (<a class="el" href="structaxiom__xml__writer.html">axiom_xml_writer_t</a> *writer, const <a class="el" href="structaxutil__env.html">axutil_env_t</a> *env, axis2_char_t *version, axis2_char_t *encoding)</td></tr>

<tr><td class="memItemLeft" nowrap align="right" valign="top">AXIS2_EXTERN <br>
axis2_status_t&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__axiom__xml__writer.html#geda418c524b47842e3df20b4fbba1a41">axiom_xml_writer_write_characters</a> (<a class="el" href="structaxiom__xml__writer.html">axiom_xml_writer_t</a> *writer, const <a class="el" href="structaxutil__env.html">axutil_env_t</a> *env, axis2_char_t *text)</td></tr>

<tr><td class="memItemLeft" nowrap align="right" valign="top">AXIS2_EXTERN <br>
axis2_char_t *&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__axiom__xml__writer.html#gecd8543be052df94f2d0767da3126240">axiom_xml_writer_get_prefix</a> (<a class="el" href="structaxiom__xml__writer.html">axiom_xml_writer_t</a> *writer, const <a class="el" href="structaxutil__env.html">axutil_env_t</a> *env, axis2_char_t *uri)</td></tr>

<tr><td class="memItemLeft" nowrap align="right" valign="top">AXIS2_EXTERN <br>
axis2_status_t&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__axiom__xml__writer.html#g3d7148110d6d45f2239ea90632057774">axiom_xml_writer_set_prefix</a> (<a class="el" href="structaxiom__xml__writer.html">axiom_xml_writer_t</a> *writer, const <a class="el" href="structaxutil__env.html">axutil_env_t</a> *env, axis2_char_t *prefix, axis2_char_t *uri)</td></tr>

<tr><td class="memItemLeft" nowrap align="right" valign="top">AXIS2_EXTERN <br>
axis2_status_t&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__axiom__xml__writer.html#gc8897fef6328a061e47a9a51bf7428b1">axiom_xml_writer_set_default_prefix</a> (<a class="el" href="structaxiom__xml__writer.html">axiom_xml_writer_t</a> *writer, const <a class="el" href="structaxutil__env.html">axutil_env_t</a> *env, axis2_char_t *uri)</td></tr>

<tr><td class="memItemLeft" nowrap align="right" valign="top">AXIS2_EXTERN <br>
axis2_status_t&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__axiom__xml__writer.html#g4af81c3bec86f454b46fe927341fd5c1">axiom_xml_writer_write_encoded</a> (<a class="el" href="structaxiom__xml__writer.html">axiom_xml_writer_t</a> *writer, const <a class="el" href="structaxutil__env.html">axutil_env_t</a> *env, axis2_char_t *text, int in_attr)</td></tr>

<tr><td class="memItemLeft" nowrap align="right" valign="top">AXIS2_EXTERN void *&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__axiom__xml__writer.html#g7355b7bf221c8dafece5d00b5ed8a9dd">axiom_xml_writer_get_xml</a> (<a class="el" href="structaxiom__xml__writer.html">axiom_xml_writer_t</a> *writer, const <a class="el" href="structaxutil__env.html">axutil_env_t</a> *env)</td></tr>

<tr><td class="memItemLeft" nowrap align="right" valign="top">AXIS2_EXTERN unsigned int&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__axiom__xml__writer.html#gaad2c11c45420ff072bed9c4b9a568f9">axiom_xml_writer_get_xml_size</a> (<a class="el" href="structaxiom__xml__writer.html">axiom_xml_writer_t</a> *writer, const <a class="el" href="structaxutil__env.html">axutil_env_t</a> *env)</td></tr>

<tr><td class="memItemLeft" nowrap align="right" valign="top">AXIS2_EXTERN int&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__axiom__xml__writer.html#gbc1a524cdc028b34aaab64a51f7dd0c8">axiom_xml_writer_get_type</a> (<a class="el" href="structaxiom__xml__writer.html">axiom_xml_writer_t</a> *writer, const <a class="el" href="structaxutil__env.html">axutil_env_t</a> *env)</td></tr>

<tr><td class="memItemLeft" nowrap align="right" valign="top">AXIS2_EXTERN <br>
axis2_status_t&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__axiom__xml__writer.html#g5229740973a7dc818a405bd209866071">axiom_xml_writer_write_raw</a> (<a class="el" href="structaxiom__xml__writer.html">axiom_xml_writer_t</a> *writer, const <a class="el" href="structaxutil__env.html">axutil_env_t</a> *env, axis2_char_t *content)</td></tr>

<tr><td class="memItemLeft" nowrap align="right" valign="top">AXIS2_EXTERN <br>
axis2_status_t&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__axiom__xml__writer.html#g04303cc47f0648f0176ef3c9cd622998">axiom_xml_writer_flush</a> (<a class="el" href="structaxiom__xml__writer.html">axiom_xml_writer_t</a> *writer, const <a class="el" href="structaxutil__env.html">axutil_env_t</a> *env)</td></tr>

</table>
<hr><h2>Function Documentation</h2>
<a class="anchor" name="g193830479789aa7b7c199a6abb390288"></a><!-- doxytag: member="axiom_xml_writer.h::axiom_xml_writer_create" ref="g193830479789aa7b7c199a6abb390288" args="(const axutil_env_t *env, axis2_char_t *filename, axis2_char_t *encoding, int is_prefix_default, int compression)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">AXIS2_EXTERN <a class="el" href="structaxiom__xml__writer.html">axiom_xml_writer_t</a>* axiom_xml_writer_create           </td>
          <td>(</td>
          <td class="paramtype">const <a class="el" href="structaxutil__env.html">axutil_env_t</a> *&nbsp;</td>
          <td class="paramname"> <em>env</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">axis2_char_t *&nbsp;</td>
          <td class="paramname"> <em>filename</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">axis2_char_t *&nbsp;</td>
          <td class="paramname"> <em>encoding</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">int&nbsp;</td>
          <td class="paramname"> <em>is_prefix_default</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">int&nbsp;</td>
          <td class="paramname"> <em>compression</em></td><td>&nbsp;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td><td width="100%"></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
create function for <a class="el" href="structaxiom__xml__writer.html" title="axis2_pull_parser struct Axis2 OM pull_parser">axiom_xml_writer</a> <dl compact><dt><b>Parameters:</b></dt><dd>
  <table border="0" cellspacing="2" cellpadding="0">
    <tr><td valign="top"></td><td valign="top"><em>env</em>&nbsp;</td><td>environment </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>filename</em>&nbsp;</td><td>filename </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>encoding</em>&nbsp;</td><td>encoding </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>is_prefix_default</em>&nbsp;</td><td></td></tr>
    <tr><td valign="top"></td><td valign="top"><em>compression</em>&nbsp;</td><td>return xml writer wrapper structure </td></tr>
  </table>
</dl>

</div>
</div><p>
<a class="anchor" name="g79309882da5382c1ec3facc6e5abc862"></a><!-- doxytag: member="axiom_xml_writer.h::axiom_xml_writer_create_for_memory" ref="g79309882da5382c1ec3facc6e5abc862" args="(const axutil_env_t *env, axis2_char_t *encoding, int is_prefix_default, int compression, int type)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">AXIS2_EXTERN <a class="el" href="structaxiom__xml__writer.html">axiom_xml_writer_t</a>* axiom_xml_writer_create_for_memory           </td>
          <td>(</td>
          <td class="paramtype">const <a class="el" href="structaxutil__env.html">axutil_env_t</a> *&nbsp;</td>
          <td class="paramname"> <em>env</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">axis2_char_t *&nbsp;</td>
          <td class="paramname"> <em>encoding</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">int&nbsp;</td>
          <td class="paramname"> <em>is_prefix_default</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">int&nbsp;</td>
          <td class="paramname"> <em>compression</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">int&nbsp;</td>
          <td class="paramname"> <em>type</em></td><td>&nbsp;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td><td width="100%"></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
create fuction for xml writer for memory buffer <dl compact><dt><b>Parameters:</b></dt><dd>
  <table border="0" cellspacing="2" cellpadding="0">
    <tr><td valign="top"></td><td valign="top"><em>env</em>&nbsp;</td><td>environment struct, must not be null </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>env</em>&nbsp;</td><td>environment </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>encoding</em>&nbsp;</td><td>encoding </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>is_prefix_default</em>&nbsp;</td><td></td></tr>
    <tr><td valign="top"></td><td valign="top"><em>compression</em>&nbsp;</td><td></td></tr>
  </table>
</dl>
<dl class="return" compact><dt><b>Returns:</b></dt><dd>xml writer wrapper structure. </dd></dl>

</div>
</div><p>
<a class="anchor" name="g84a78120dfae180cfc12998fa83907a9"></a><!-- doxytag: member="axiom_xml_writer.h::axiom_xml_writer_end_start_element" ref="g84a78120dfae180cfc12998fa83907a9" args="(axiom_xml_writer_t *writer, const axutil_env_t *env)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">AXIS2_EXTERN axis2_status_t axiom_xml_writer_end_start_element           </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="structaxiom__xml__writer.html">axiom_xml_writer_t</a> *&nbsp;</td>
          <td class="paramname"> <em>writer</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const <a class="el" href="structaxutil__env.html">axutil_env_t</a> *&nbsp;</td>
          <td class="paramname"> <em>env</em></td><td>&nbsp;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td><td width="100%"></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
<dl compact><dt><b>Parameters:</b></dt><dd>
  <table border="0" cellspacing="2" cellpadding="0">
    <tr><td valign="top"></td><td valign="top"><em>writer</em>&nbsp;</td><td>pointer to the OM XML Writer struct </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>env</em>&nbsp;</td><td>environment struct, must not be null</td></tr>
  </table>
</dl>
<dl class="return" compact><dt><b>Returns:</b></dt><dd>satus of the op. AXIS2_SUCCESS on success else AXIS2_FAILURE </dd></dl>

</div>
</div><p>
<a class="anchor" name="g04303cc47f0648f0176ef3c9cd622998"></a><!-- doxytag: member="axiom_xml_writer.h::axiom_xml_writer_flush" ref="g04303cc47f0648f0176ef3c9cd622998" args="(axiom_xml_writer_t *writer, const axutil_env_t *env)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">AXIS2_EXTERN axis2_status_t axiom_xml_writer_flush           </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="structaxiom__xml__writer.html">axiom_xml_writer_t</a> *&nbsp;</td>
          <td class="paramname"> <em>writer</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const <a class="el" href="structaxutil__env.html">axutil_env_t</a> *&nbsp;</td>
          <td class="paramname"> <em>env</em></td><td>&nbsp;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td><td width="100%"></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
<dl compact><dt><b>Parameters:</b></dt><dd>
  <table border="0" cellspacing="2" cellpadding="0">
    <tr><td valign="top"></td><td valign="top"><em>writer</em>&nbsp;</td><td>pointer to the OM XML Writer struct </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>env</em>&nbsp;</td><td>environment struct, must not be null</td></tr>
  </table>
</dl>
<dl class="return" compact><dt><b>Returns:</b></dt><dd>status of the op. AXIS2_SUCCESS on success else AXIS2_FAILURE </dd></dl>

</div>
</div><p>
<a class="anchor" name="gf050a102040e761077a63b2254390d4a"></a><!-- doxytag: member="axiom_xml_writer.h::axiom_xml_writer_free" ref="gf050a102040e761077a63b2254390d4a" args="(axiom_xml_writer_t *writer, const axutil_env_t *env)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">AXIS2_EXTERN void axiom_xml_writer_free           </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="structaxiom__xml__writer.html">axiom_xml_writer_t</a> *&nbsp;</td>
          <td class="paramname"> <em>writer</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const <a class="el" href="structaxutil__env.html">axutil_env_t</a> *&nbsp;</td>
          <td class="paramname"> <em>env</em></td><td>&nbsp;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td><td width="100%"></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
free method for axiom xml writer <dl compact><dt><b>Parameters:</b></dt><dd>
  <table border="0" cellspacing="2" cellpadding="0">
    <tr><td valign="top"></td><td valign="top"><em>writer</em>&nbsp;</td><td>pointer to the OM XML Writer struct </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>env</em>&nbsp;</td><td>environment struct, must not be null</td></tr>
  </table>
</dl>
<dl class="return" compact><dt><b>Returns:</b></dt><dd></dd></dl>

</div>
</div><p>
<a class="anchor" name="gecd8543be052df94f2d0767da3126240"></a><!-- doxytag: member="axiom_xml_writer.h::axiom_xml_writer_get_prefix" ref="gecd8543be052df94f2d0767da3126240" args="(axiom_xml_writer_t *writer, const axutil_env_t *env, axis2_char_t *uri)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">AXIS2_EXTERN axis2_char_t* axiom_xml_writer_get_prefix           </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="structaxiom__xml__writer.html">axiom_xml_writer_t</a> *&nbsp;</td>
          <td class="paramname"> <em>writer</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const <a class="el" href="structaxutil__env.html">axutil_env_t</a> *&nbsp;</td>
          <td class="paramname"> <em>env</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">axis2_char_t *&nbsp;</td>
          <td class="paramname"> <em>uri</em></td><td>&nbsp;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td><td width="100%"></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
<dl compact><dt><b>Parameters:</b></dt><dd>
  <table border="0" cellspacing="2" cellpadding="0">
    <tr><td valign="top"></td><td valign="top"><em>writer</em>&nbsp;</td><td>pointer to the OM XML Writer struct </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>env</em>&nbsp;</td><td>environment struct, must not be null</td></tr>
  </table>
</dl>
<dl class="return" compact><dt><b>Returns:</b></dt><dd></dd></dl>

</div>
</div><p>
<a class="anchor" name="gbc1a524cdc028b34aaab64a51f7dd0c8"></a><!-- doxytag: member="axiom_xml_writer.h::axiom_xml_writer_get_type" ref="gbc1a524cdc028b34aaab64a51f7dd0c8" args="(axiom_xml_writer_t *writer, const axutil_env_t *env)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">AXIS2_EXTERN int axiom_xml_writer_get_type           </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="structaxiom__xml__writer.html">axiom_xml_writer_t</a> *&nbsp;</td>
          <td class="paramname"> <em>writer</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const <a class="el" href="structaxutil__env.html">axutil_env_t</a> *&nbsp;</td>
          <td class="paramname"> <em>env</em></td><td>&nbsp;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td><td width="100%"></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
<dl compact><dt><b>Parameters:</b></dt><dd>
  <table border="0" cellspacing="2" cellpadding="0">
    <tr><td valign="top"></td><td valign="top"><em>writer</em>&nbsp;</td><td>pointer to the OM XML Writer struct </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>env</em>&nbsp;</td><td>environment struct, must not be null</td></tr>
  </table>
</dl>
<dl class="return" compact><dt><b>Returns:</b></dt><dd>size of the xml </dd></dl>

</div>
</div><p>
<a class="anchor" name="g7355b7bf221c8dafece5d00b5ed8a9dd"></a><!-- doxytag: member="axiom_xml_writer.h::axiom_xml_writer_get_xml" ref="g7355b7bf221c8dafece5d00b5ed8a9dd" args="(axiom_xml_writer_t *writer, const axutil_env_t *env)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">AXIS2_EXTERN void* axiom_xml_writer_get_xml           </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="structaxiom__xml__writer.html">axiom_xml_writer_t</a> *&nbsp;</td>
          <td class="paramname"> <em>writer</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const <a class="el" href="structaxutil__env.html">axutil_env_t</a> *&nbsp;</td>
          <td class="paramname"> <em>env</em></td><td>&nbsp;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td><td width="100%"></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
<dl compact><dt><b>Parameters:</b></dt><dd>
  <table border="0" cellspacing="2" cellpadding="0">
    <tr><td valign="top"></td><td valign="top"><em>writer</em>&nbsp;</td><td>pointer to the OM XML Writer struct </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>env</em>&nbsp;</td><td>environment struct, must not be null</td></tr>
  </table>
</dl>
<dl class="return" compact><dt><b>Returns:</b></dt><dd></dd></dl>

</div>
</div><p>
<a class="anchor" name="gaad2c11c45420ff072bed9c4b9a568f9"></a><!-- doxytag: member="axiom_xml_writer.h::axiom_xml_writer_get_xml_size" ref="gaad2c11c45420ff072bed9c4b9a568f9" args="(axiom_xml_writer_t *writer, const axutil_env_t *env)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">AXIS2_EXTERN unsigned int axiom_xml_writer_get_xml_size           </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="structaxiom__xml__writer.html">axiom_xml_writer_t</a> *&nbsp;</td>
          <td class="paramname"> <em>writer</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const <a class="el" href="structaxutil__env.html">axutil_env_t</a> *&nbsp;</td>
          <td class="paramname"> <em>env</em></td><td>&nbsp;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td><td width="100%"></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
<dl compact><dt><b>Parameters:</b></dt><dd>
  <table border="0" cellspacing="2" cellpadding="0">
    <tr><td valign="top"></td><td valign="top"><em>writer</em>&nbsp;</td><td>pointer to the OM XML Writer struct </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>env</em>&nbsp;</td><td>environment struct, must not be null</td></tr>
  </table>
</dl>
<dl class="return" compact><dt><b>Returns:</b></dt><dd></dd></dl>

</div>
</div><p>
<a class="anchor" name="gc8897fef6328a061e47a9a51bf7428b1"></a><!-- doxytag: member="axiom_xml_writer.h::axiom_xml_writer_set_default_prefix" ref="gc8897fef6328a061e47a9a51bf7428b1" args="(axiom_xml_writer_t *writer, const axutil_env_t *env, axis2_char_t *uri)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">AXIS2_EXTERN axis2_status_t axiom_xml_writer_set_default_prefix           </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="structaxiom__xml__writer.html">axiom_xml_writer_t</a> *&nbsp;</td>
          <td class="paramname"> <em>writer</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const <a class="el" href="structaxutil__env.html">axutil_env_t</a> *&nbsp;</td>
          <td class="paramname"> <em>env</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">axis2_char_t *&nbsp;</td>
          <td class="paramname"> <em>uri</em></td><td>&nbsp;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td><td width="100%"></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
<dl compact><dt><b>Parameters:</b></dt><dd>
  <table border="0" cellspacing="2" cellpadding="0">
    <tr><td valign="top"></td><td valign="top"><em>writer</em>&nbsp;</td><td>pointer to the OM XML Writer struct </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>env</em>&nbsp;</td><td>environment struct, must not be null</td></tr>
  </table>
</dl>
<dl class="return" compact><dt><b>Returns:</b></dt><dd>status of the op. AXIS2_SUCCESS on success else AXIS2_FAILURE </dd></dl>

</div>
</div><p>
<a class="anchor" name="g3d7148110d6d45f2239ea90632057774"></a><!-- doxytag: member="axiom_xml_writer.h::axiom_xml_writer_set_prefix" ref="g3d7148110d6d45f2239ea90632057774" args="(axiom_xml_writer_t *writer, const axutil_env_t *env, axis2_char_t *prefix, axis2_char_t *uri)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">AXIS2_EXTERN axis2_status_t axiom_xml_writer_set_prefix           </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="structaxiom__xml__writer.html">axiom_xml_writer_t</a> *&nbsp;</td>
          <td class="paramname"> <em>writer</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const <a class="el" href="structaxutil__env.html">axutil_env_t</a> *&nbsp;</td>
          <td class="paramname"> <em>env</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">axis2_char_t *&nbsp;</td>
          <td class="paramname"> <em>prefix</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">axis2_char_t *&nbsp;</td>
          <td class="paramname"> <em>uri</em></td><td>&nbsp;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td><td width="100%"></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
<dl compact><dt><b>Parameters:</b></dt><dd>
  <table border="0" cellspacing="2" cellpadding="0">
    <tr><td valign="top"></td><td valign="top"><em>writer</em>&nbsp;</td><td>pointer to the OM XML Writer struct </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>env</em>&nbsp;</td><td>environment struct, must not be null</td></tr>
  </table>
</dl>
<dl class="return" compact><dt><b>Returns:</b></dt><dd>prefix </dd></dl>

</div>
</div><p>
<a class="anchor" name="gea0009f113fc69456db5fedf684e04f4"></a><!-- doxytag: member="axiom_xml_writer.h::axiom_xml_writer_write_attribute" ref="gea0009f113fc69456db5fedf684e04f4" args="(axiom_xml_writer_t *writer, const axutil_env_t *env, axis2_char_t *localname, axis2_char_t *value)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">AXIS2_EXTERN axis2_status_t axiom_xml_writer_write_attribute           </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="structaxiom__xml__writer.html">axiom_xml_writer_t</a> *&nbsp;</td>
          <td class="paramname"> <em>writer</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const <a class="el" href="structaxutil__env.html">axutil_env_t</a> *&nbsp;</td>
          <td class="paramname"> <em>env</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">axis2_char_t *&nbsp;</td>
          <td class="paramname"> <em>localname</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">axis2_char_t *&nbsp;</td>
          <td class="paramname"> <em>value</em></td><td>&nbsp;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td><td width="100%"></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
<dl compact><dt><b>Parameters:</b></dt><dd>
  <table border="0" cellspacing="2" cellpadding="0">
    <tr><td valign="top"></td><td valign="top"><em>writer</em>&nbsp;</td><td>pointer to the OM XML Writer struct </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>env</em>&nbsp;</td><td>environment struct, must not be null </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>localname</em>&nbsp;</td><td>local name of the element </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>value</em>&nbsp;</td><td>value of the element </td></tr>
  </table>
</dl>
<dl class="return" compact><dt><b>Returns:</b></dt><dd>status of the op. AXIS2_SUCCESS on success else AXIS2_FAILURE </dd></dl>

</div>
</div><p>
<a class="anchor" name="gd75f18f14f1eb494c59e58532cd16060"></a><!-- doxytag: member="axiom_xml_writer.h::axiom_xml_writer_write_attribute_with_namespace" ref="gd75f18f14f1eb494c59e58532cd16060" args="(axiom_xml_writer_t *writer, const axutil_env_t *env, axis2_char_t *localname, axis2_char_t *value, axis2_char_t *namespace_uri)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">AXIS2_EXTERN axis2_status_t axiom_xml_writer_write_attribute_with_namespace           </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="structaxiom__xml__writer.html">axiom_xml_writer_t</a> *&nbsp;</td>
          <td class="paramname"> <em>writer</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const <a class="el" href="structaxutil__env.html">axutil_env_t</a> *&nbsp;</td>
          <td class="paramname"> <em>env</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">axis2_char_t *&nbsp;</td>
          <td class="paramname"> <em>localname</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">axis2_char_t *&nbsp;</td>
          <td class="paramname"> <em>value</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">axis2_char_t *&nbsp;</td>
          <td class="paramname"> <em>namespace_uri</em></td><td>&nbsp;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td><td width="100%"></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
<dl compact><dt><b>Parameters:</b></dt><dd>
  <table border="0" cellspacing="2" cellpadding="0">
    <tr><td valign="top"></td><td valign="top"><em>writer</em>&nbsp;</td><td>pointer to the OM XML Writer struct </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>env</em>&nbsp;</td><td>environment struct, must not be null </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>localname</em>&nbsp;</td><td>local name of the element </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>value</em>&nbsp;</td><td>value of the element </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>uri</em>&nbsp;</td><td>of the namespace </td></tr>
  </table>
</dl>
<dl class="return" compact><dt><b>Returns:</b></dt><dd>status of the op. AXIS2_SUCCESS on success else AXIS2_FAILURE </dd></dl>

</div>
</div><p>
<a class="anchor" name="g970cc4979b16407cc69a77384b096f3f"></a><!-- doxytag: member="axiom_xml_writer.h::axiom_xml_writer_write_attribute_with_namespace_prefix" ref="g970cc4979b16407cc69a77384b096f3f" args="(axiom_xml_writer_t *writer, const axutil_env_t *env, axis2_char_t *localname, axis2_char_t *value, axis2_char_t *namespace_uri, axis2_char_t *prefix)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">AXIS2_EXTERN axis2_status_t axiom_xml_writer_write_attribute_with_namespace_prefix           </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="structaxiom__xml__writer.html">axiom_xml_writer_t</a> *&nbsp;</td>
          <td class="paramname"> <em>writer</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const <a class="el" href="structaxutil__env.html">axutil_env_t</a> *&nbsp;</td>
          <td class="paramname"> <em>env</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">axis2_char_t *&nbsp;</td>
          <td class="paramname"> <em>localname</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">axis2_char_t *&nbsp;</td>
          <td class="paramname"> <em>value</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">axis2_char_t *&nbsp;</td>
          <td class="paramname"> <em>namespace_uri</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">axis2_char_t *&nbsp;</td>
          <td class="paramname"> <em>prefix</em></td><td>&nbsp;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td><td width="100%"></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
<dl compact><dt><b>Parameters:</b></dt><dd>
  <table border="0" cellspacing="2" cellpadding="0">
    <tr><td valign="top"></td><td valign="top"><em>writer</em>&nbsp;</td><td>pointer to the OM XML Writer struct </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>env</em>&nbsp;</td><td>environment struct, must not be null </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>localname</em>&nbsp;</td><td>local name of the element </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>value</em>&nbsp;</td><td>value of the element </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>uri</em>&nbsp;</td><td>of the namespace </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>prefix</em>&nbsp;</td><td>of the namespace </td></tr>
  </table>
</dl>
<dl class="return" compact><dt><b>Returns:</b></dt><dd>status of the op. AXIS2_SUCCESS on success else AXIS2_FAILURE </dd></dl>

</div>
</div><p>
<a class="anchor" name="g576af9f5d4f98d90ec40d30844f49467"></a><!-- doxytag: member="axiom_xml_writer.h::axiom_xml_writer_write_cdata" ref="g576af9f5d4f98d90ec40d30844f49467" args="(axiom_xml_writer_t *writer, const axutil_env_t *env, axis2_char_t *data)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">AXIS2_EXTERN axis2_status_t axiom_xml_writer_write_cdata           </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="structaxiom__xml__writer.html">axiom_xml_writer_t</a> *&nbsp;</td>
          <td class="paramname"> <em>writer</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const <a class="el" href="structaxutil__env.html">axutil_env_t</a> *&nbsp;</td>
          <td class="paramname"> <em>env</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">axis2_char_t *&nbsp;</td>
          <td class="paramname"> <em>data</em></td><td>&nbsp;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td><td width="100%"></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
<dl compact><dt><b>Parameters:</b></dt><dd>
  <table border="0" cellspacing="2" cellpadding="0">
    <tr><td valign="top"></td><td valign="top"><em>writer</em>&nbsp;</td><td>pointer to the OM XML Writer struct </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>env</em>&nbsp;</td><td>environment struct, must not be null</td></tr>
  </table>
</dl>
<dl class="return" compact><dt><b>Returns:</b></dt><dd>status of the op. AXIS2_SUCCESS on success else AXIS2_FAILURE </dd></dl>

</div>
</div><p>
<a class="anchor" name="geda418c524b47842e3df20b4fbba1a41"></a><!-- doxytag: member="axiom_xml_writer.h::axiom_xml_writer_write_characters" ref="geda418c524b47842e3df20b4fbba1a41" args="(axiom_xml_writer_t *writer, const axutil_env_t *env, axis2_char_t *text)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">AXIS2_EXTERN axis2_status_t axiom_xml_writer_write_characters           </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="structaxiom__xml__writer.html">axiom_xml_writer_t</a> *&nbsp;</td>
          <td class="paramname"> <em>writer</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const <a class="el" href="structaxutil__env.html">axutil_env_t</a> *&nbsp;</td>
          <td class="paramname"> <em>env</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">axis2_char_t *&nbsp;</td>
          <td class="paramname"> <em>text</em></td><td>&nbsp;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td><td width="100%"></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
<dl compact><dt><b>Parameters:</b></dt><dd>
  <table border="0" cellspacing="2" cellpadding="0">
    <tr><td valign="top"></td><td valign="top"><em>writer</em>&nbsp;</td><td>pointer to the OM XML Writer struct </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>env</em>&nbsp;</td><td>environment struct, must not be null</td></tr>
  </table>
</dl>
<dl class="return" compact><dt><b>Returns:</b></dt><dd>status of the op. AXIS2_SUCCESS on success else AXIS2_FAILURE </dd></dl>

</div>
</div><p>
<a class="anchor" name="g62018bab93eafc410e4f4c2c0b2d5a93"></a><!-- doxytag: member="axiom_xml_writer.h::axiom_xml_writer_write_comment" ref="g62018bab93eafc410e4f4c2c0b2d5a93" args="(axiom_xml_writer_t *writer, const axutil_env_t *env, axis2_char_t *value)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">AXIS2_EXTERN axis2_status_t axiom_xml_writer_write_comment           </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="structaxiom__xml__writer.html">axiom_xml_writer_t</a> *&nbsp;</td>
          <td class="paramname"> <em>writer</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const <a class="el" href="structaxutil__env.html">axutil_env_t</a> *&nbsp;</td>
          <td class="paramname"> <em>env</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">axis2_char_t *&nbsp;</td>
          <td class="paramname"> <em>value</em></td><td>&nbsp;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td><td width="100%"></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
<dl compact><dt><b>Parameters:</b></dt><dd>
  <table border="0" cellspacing="2" cellpadding="0">
    <tr><td valign="top"></td><td valign="top"><em>writer</em>&nbsp;</td><td>pointer to the OM XML Writer struct </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>env</em>&nbsp;</td><td>environment struct, must not be null</td></tr>
  </table>
</dl>
<dl class="return" compact><dt><b>Returns:</b></dt><dd>status of the op. AXIS2_SUCCESS on success else AXIS2_FAILURE </dd></dl>

</div>
</div><p>
<a class="anchor" name="gf73ddc31e494b9a063fe84933e2c4f5f"></a><!-- doxytag: member="axiom_xml_writer.h::axiom_xml_writer_write_default_namespace" ref="gf73ddc31e494b9a063fe84933e2c4f5f" args="(axiom_xml_writer_t *writer, const axutil_env_t *env, axis2_char_t *namespace_uri)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">AXIS2_EXTERN axis2_status_t axiom_xml_writer_write_default_namespace           </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="structaxiom__xml__writer.html">axiom_xml_writer_t</a> *&nbsp;</td>
          <td class="paramname"> <em>writer</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const <a class="el" href="structaxutil__env.html">axutil_env_t</a> *&nbsp;</td>
          <td class="paramname"> <em>env</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">axis2_char_t *&nbsp;</td>
          <td class="paramname"> <em>namespace_uri</em></td><td>&nbsp;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td><td width="100%"></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
<dl compact><dt><b>Parameters:</b></dt><dd>
  <table border="0" cellspacing="2" cellpadding="0">
    <tr><td valign="top"></td><td valign="top"><em>writer</em>&nbsp;</td><td>pointer to the OM XML Writer struct </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>env</em>&nbsp;</td><td>environment struct, must not be null</td></tr>
  </table>
</dl>
<dl class="return" compact><dt><b>Returns:</b></dt><dd>status of the op. AXIS2_SUCCESS on success else AXIS2_FAILURE </dd></dl>

</div>
</div><p>
<a class="anchor" name="ged60c82c50443d672009d2e51e0e4033"></a><!-- doxytag: member="axiom_xml_writer.h::axiom_xml_writer_write_dtd" ref="ged60c82c50443d672009d2e51e0e4033" args="(axiom_xml_writer_t *writer, const axutil_env_t *env, axis2_char_t *dtd)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">AXIS2_EXTERN axis2_status_t axiom_xml_writer_write_dtd           </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="structaxiom__xml__writer.html">axiom_xml_writer_t</a> *&nbsp;</td>
          <td class="paramname"> <em>writer</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const <a class="el" href="structaxutil__env.html">axutil_env_t</a> *&nbsp;</td>
          <td class="paramname"> <em>env</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">axis2_char_t *&nbsp;</td>
          <td class="paramname"> <em>dtd</em></td><td>&nbsp;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td><td width="100%"></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
<dl compact><dt><b>Parameters:</b></dt><dd>
  <table border="0" cellspacing="2" cellpadding="0">
    <tr><td valign="top"></td><td valign="top"><em>writer</em>&nbsp;</td><td>pointer to the OM XML Writer struct </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>env</em>&nbsp;</td><td>environment struct, must not be null</td></tr>
  </table>
</dl>
<dl class="return" compact><dt><b>Returns:</b></dt><dd>status of the op. AXIS2_SUCCESS on success else AXIS2_FAILURE </dd></dl>

</div>
</div><p>
<a class="anchor" name="gf69e17121911506e5e1aff50f35d6e42"></a><!-- doxytag: member="axiom_xml_writer.h::axiom_xml_writer_write_empty_element" ref="gf69e17121911506e5e1aff50f35d6e42" args="(axiom_xml_writer_t *writer, const axutil_env_t *env, axis2_char_t *localname)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">AXIS2_EXTERN axis2_status_t axiom_xml_writer_write_empty_element           </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="structaxiom__xml__writer.html">axiom_xml_writer_t</a> *&nbsp;</td>
          <td class="paramname"> <em>writer</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const <a class="el" href="structaxutil__env.html">axutil_env_t</a> *&nbsp;</td>
          <td class="paramname"> <em>env</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">axis2_char_t *&nbsp;</td>
          <td class="paramname"> <em>localname</em></td><td>&nbsp;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td><td width="100%"></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
<dl compact><dt><b>Parameters:</b></dt><dd>
  <table border="0" cellspacing="2" cellpadding="0">
    <tr><td valign="top"></td><td valign="top"><em>writer</em>&nbsp;</td><td>pointer to the OM XML Writer struct </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>env</em>&nbsp;</td><td>environment struct, must not be null </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>localname</em>&nbsp;</td><td>local name of the element </td></tr>
  </table>
</dl>
<dl class="return" compact><dt><b>Returns:</b></dt><dd>status of the op. AXIS2_SUCCESS on success else AXIS2_FAILURE </dd></dl>

</div>
</div><p>
<a class="anchor" name="gf9edf4fa8cabfcad5c4df01f33ef5314"></a><!-- doxytag: member="axiom_xml_writer.h::axiom_xml_writer_write_empty_element_with_namespace" ref="gf9edf4fa8cabfcad5c4df01f33ef5314" args="(axiom_xml_writer_t *writer, const axutil_env_t *env, axis2_char_t *localname, axis2_char_t *namespace_uri)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">AXIS2_EXTERN axis2_status_t axiom_xml_writer_write_empty_element_with_namespace           </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="structaxiom__xml__writer.html">axiom_xml_writer_t</a> *&nbsp;</td>
          <td class="paramname"> <em>writer</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const <a class="el" href="structaxutil__env.html">axutil_env_t</a> *&nbsp;</td>
          <td class="paramname"> <em>env</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">axis2_char_t *&nbsp;</td>
          <td class="paramname"> <em>localname</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">axis2_char_t *&nbsp;</td>
          <td class="paramname"> <em>namespace_uri</em></td><td>&nbsp;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td><td width="100%"></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
<dl compact><dt><b>Parameters:</b></dt><dd>
  <table border="0" cellspacing="2" cellpadding="0">
    <tr><td valign="top"></td><td valign="top"><em>writer</em>&nbsp;</td><td>pointer to the OM XML Writer struct </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>env</em>&nbsp;</td><td>environment struct, must not be null </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>localname</em>&nbsp;</td><td>local name of the element </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>namespace_uri</em>&nbsp;</td><td>uri of the namespace </td></tr>
  </table>
</dl>
<dl class="return" compact><dt><b>Returns:</b></dt><dd>status of the op. AXIS2_SUCCESS on success else AXIS2_FAILURE </dd></dl>

</div>
</div><p>
<a class="anchor" name="g44f2a95436bfbb3225fa2792f2a747b3"></a><!-- doxytag: member="axiom_xml_writer.h::axiom_xml_writer_write_empty_element_with_namespace_prefix" ref="g44f2a95436bfbb3225fa2792f2a747b3" args="(axiom_xml_writer_t *writer, const axutil_env_t *env, axis2_char_t *localname, axis2_char_t *namespace_uri, axis2_char_t *prefix)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">AXIS2_EXTERN axis2_status_t axiom_xml_writer_write_empty_element_with_namespace_prefix           </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="structaxiom__xml__writer.html">axiom_xml_writer_t</a> *&nbsp;</td>
          <td class="paramname"> <em>writer</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const <a class="el" href="structaxutil__env.html">axutil_env_t</a> *&nbsp;</td>
          <td class="paramname"> <em>env</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">axis2_char_t *&nbsp;</td>
          <td class="paramname"> <em>localname</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">axis2_char_t *&nbsp;</td>
          <td class="paramname"> <em>namespace_uri</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">axis2_char_t *&nbsp;</td>
          <td class="paramname"> <em>prefix</em></td><td>&nbsp;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td><td width="100%"></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
<dl compact><dt><b>Parameters:</b></dt><dd>
  <table border="0" cellspacing="2" cellpadding="0">
    <tr><td valign="top"></td><td valign="top"><em>writer</em>&nbsp;</td><td>pointer to the OM XML Writer struct </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>env</em>&nbsp;</td><td>environment struct, must not be null </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>localname</em>&nbsp;</td><td>local name of the element </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>namespace_uri</em>&nbsp;</td><td>uri of the namespace </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>prefix</em>&nbsp;</td><td>prefix of the namespace </td></tr>
  </table>
</dl>
<dl class="return" compact><dt><b>Returns:</b></dt><dd>status of the op. AXIS2_SUCCESS on success else AXIS2_FAILURE </dd></dl>

</div>
</div><p>
<a class="anchor" name="g4af81c3bec86f454b46fe927341fd5c1"></a><!-- doxytag: member="axiom_xml_writer.h::axiom_xml_writer_write_encoded" ref="g4af81c3bec86f454b46fe927341fd5c1" args="(axiom_xml_writer_t *writer, const axutil_env_t *env, axis2_char_t *text, int in_attr)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">AXIS2_EXTERN axis2_status_t axiom_xml_writer_write_encoded           </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="structaxiom__xml__writer.html">axiom_xml_writer_t</a> *&nbsp;</td>
          <td class="paramname"> <em>writer</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const <a class="el" href="structaxutil__env.html">axutil_env_t</a> *&nbsp;</td>
          <td class="paramname"> <em>env</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">axis2_char_t *&nbsp;</td>
          <td class="paramname"> <em>text</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">int&nbsp;</td>
          <td class="paramname"> <em>in_attr</em></td><td>&nbsp;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td><td width="100%"></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
sets the default prefix <dl compact><dt><b>Parameters:</b></dt><dd>
  <table border="0" cellspacing="2" cellpadding="0">
    <tr><td valign="top"></td><td valign="top"><em>writer</em>&nbsp;</td><td>pointer to the OM XML Writer struct </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>env</em>&nbsp;</td><td>environment struct, must not be null</td></tr>
  </table>
</dl>
<dl class="return" compact><dt><b>Returns:</b></dt><dd>status of the op. AXIS2_SUCCESS on success else AXIS2_FAILURE </dd></dl>

</div>
</div><p>
<a class="anchor" name="g293c2a405e80ab47f2ca1e87d51dd670"></a><!-- doxytag: member="axiom_xml_writer.h::axiom_xml_writer_write_end_document" ref="g293c2a405e80ab47f2ca1e87d51dd670" args="(axiom_xml_writer_t *writer, const axutil_env_t *env)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">AXIS2_EXTERN axis2_status_t axiom_xml_writer_write_end_document           </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="structaxiom__xml__writer.html">axiom_xml_writer_t</a> *&nbsp;</td>
          <td class="paramname"> <em>writer</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const <a class="el" href="structaxutil__env.html">axutil_env_t</a> *&nbsp;</td>
          <td class="paramname"> <em>env</em></td><td>&nbsp;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td><td width="100%"></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
<dl compact><dt><b>Parameters:</b></dt><dd>
  <table border="0" cellspacing="2" cellpadding="0">
    <tr><td valign="top"></td><td valign="top"><em>writer</em>&nbsp;</td><td>pointer to the OM XML Writer struct </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>env</em>&nbsp;</td><td>environment struct, must not be null</td></tr>
  </table>
</dl>
<dl class="return" compact><dt><b>Returns:</b></dt><dd>status of the op. AXIS2_SUCCESS on success else AXIS2_FAILURE </dd></dl>

</div>
</div><p>
<a class="anchor" name="g0670764ce56a2674c9753995be9de071"></a><!-- doxytag: member="axiom_xml_writer.h::axiom_xml_writer_write_end_element" ref="g0670764ce56a2674c9753995be9de071" args="(axiom_xml_writer_t *writer, const axutil_env_t *env)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">AXIS2_EXTERN axis2_status_t axiom_xml_writer_write_end_element           </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="structaxiom__xml__writer.html">axiom_xml_writer_t</a> *&nbsp;</td>
          <td class="paramname"> <em>writer</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const <a class="el" href="structaxutil__env.html">axutil_env_t</a> *&nbsp;</td>
          <td class="paramname"> <em>env</em></td><td>&nbsp;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td><td width="100%"></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
<dl compact><dt><b>Parameters:</b></dt><dd>
  <table border="0" cellspacing="2" cellpadding="0">
    <tr><td valign="top"></td><td valign="top"><em>writer</em>&nbsp;</td><td>pointer to the OM XML Writer struct </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>env</em>&nbsp;</td><td>environment struct, must not be null</td></tr>
  </table>
</dl>
<dl class="return" compact><dt><b>Returns:</b></dt><dd>status of the op. AXIS2_SUCCESS on success else AXIS2_FAILURE </dd></dl>

</div>
</div><p>
<a class="anchor" name="g873890c13fa8b86f1b3c879fa13cc59d"></a><!-- doxytag: member="axiom_xml_writer.h::axiom_xml_writer_write_entity_ref" ref="g873890c13fa8b86f1b3c879fa13cc59d" args="(axiom_xml_writer_t *writer, const axutil_env_t *env, axis2_char_t *name)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">AXIS2_EXTERN axis2_status_t axiom_xml_writer_write_entity_ref           </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="structaxiom__xml__writer.html">axiom_xml_writer_t</a> *&nbsp;</td>
          <td class="paramname"> <em>writer</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const <a class="el" href="structaxutil__env.html">axutil_env_t</a> *&nbsp;</td>
          <td class="paramname"> <em>env</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">axis2_char_t *&nbsp;</td>
          <td class="paramname"> <em>name</em></td><td>&nbsp;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td><td width="100%"></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
<dl compact><dt><b>Parameters:</b></dt><dd>
  <table border="0" cellspacing="2" cellpadding="0">
    <tr><td valign="top"></td><td valign="top"><em>writer</em>&nbsp;</td><td>pointer to the OM XML Writer struct </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>env</em>&nbsp;</td><td>environment struct, must not be null</td></tr>
  </table>
</dl>
<dl class="return" compact><dt><b>Returns:</b></dt><dd>status of the op. AXIS2_SUCCESS on success else AXIS2_FAILURE </dd></dl>

</div>
</div><p>
<a class="anchor" name="g3bb91e88f62e6620f1236dccbba5c0b6"></a><!-- doxytag: member="axiom_xml_writer.h::axiom_xml_writer_write_namespace" ref="g3bb91e88f62e6620f1236dccbba5c0b6" args="(axiom_xml_writer_t *writer, const axutil_env_t *env, axis2_char_t *prefix, axis2_char_t *namespace_uri)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">AXIS2_EXTERN axis2_status_t axiom_xml_writer_write_namespace           </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="structaxiom__xml__writer.html">axiom_xml_writer_t</a> *&nbsp;</td>
          <td class="paramname"> <em>writer</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const <a class="el" href="structaxutil__env.html">axutil_env_t</a> *&nbsp;</td>
          <td class="paramname"> <em>env</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">axis2_char_t *&nbsp;</td>
          <td class="paramname"> <em>prefix</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">axis2_char_t *&nbsp;</td>
          <td class="paramname"> <em>namespace_uri</em></td><td>&nbsp;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td><td width="100%"></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
<dl compact><dt><b>Parameters:</b></dt><dd>
  <table border="0" cellspacing="2" cellpadding="0">
    <tr><td valign="top"></td><td valign="top"><em>writer</em>&nbsp;</td><td>pointer to the OM XML Writer struct </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>env</em>&nbsp;</td><td>environment struct, must not be null </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>prefix</em>&nbsp;</td><td>prefix of the namespace </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>uri</em>&nbsp;</td><td>of the namespace </td></tr>
  </table>
</dl>
<dl class="return" compact><dt><b>Returns:</b></dt><dd>status of the op. AXIS2_SUCCESS on success else AXIS2_FAILURE </dd></dl>

</div>
</div><p>
<a class="anchor" name="g50b745030f5b2b7b94de517d6843ae2d"></a><!-- doxytag: member="axiom_xml_writer.h::axiom_xml_writer_write_processing_instruction" ref="g50b745030f5b2b7b94de517d6843ae2d" args="(axiom_xml_writer_t *writer, const axutil_env_t *env, axis2_char_t *target)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">AXIS2_EXTERN axis2_status_t axiom_xml_writer_write_processing_instruction           </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="structaxiom__xml__writer.html">axiom_xml_writer_t</a> *&nbsp;</td>
          <td class="paramname"> <em>writer</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const <a class="el" href="structaxutil__env.html">axutil_env_t</a> *&nbsp;</td>
          <td class="paramname"> <em>env</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">axis2_char_t *&nbsp;</td>
          <td class="paramname"> <em>target</em></td><td>&nbsp;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td><td width="100%"></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
<dl compact><dt><b>Parameters:</b></dt><dd>
  <table border="0" cellspacing="2" cellpadding="0">
    <tr><td valign="top"></td><td valign="top"><em>writer</em>&nbsp;</td><td>pointer to the OM XML Writer struct </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>env</em>&nbsp;</td><td>environment struct, must not be null</td></tr>
  </table>
</dl>
<dl class="return" compact><dt><b>Returns:</b></dt><dd>status of the op. AXIS2_SUCCESS on success else AXIS2_FAILURE </dd></dl>

</div>
</div><p>
<a class="anchor" name="gf72fcff938ae170e1054a6291af7e785"></a><!-- doxytag: member="axiom_xml_writer.h::axiom_xml_writer_write_processing_instruction_data" ref="gf72fcff938ae170e1054a6291af7e785" args="(axiom_xml_writer_t *writer, const axutil_env_t *env, axis2_char_t *target, axis2_char_t *data)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">AXIS2_EXTERN axis2_status_t axiom_xml_writer_write_processing_instruction_data           </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="structaxiom__xml__writer.html">axiom_xml_writer_t</a> *&nbsp;</td>
          <td class="paramname"> <em>writer</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const <a class="el" href="structaxutil__env.html">axutil_env_t</a> *&nbsp;</td>
          <td class="paramname"> <em>env</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">axis2_char_t *&nbsp;</td>
          <td class="paramname"> <em>target</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">axis2_char_t *&nbsp;</td>
          <td class="paramname"> <em>data</em></td><td>&nbsp;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td><td width="100%"></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
<dl compact><dt><b>Parameters:</b></dt><dd>
  <table border="0" cellspacing="2" cellpadding="0">
    <tr><td valign="top"></td><td valign="top"><em>writer</em>&nbsp;</td><td>pointer to the OM XML Writer struct </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>env</em>&nbsp;</td><td>environment struct, must not be null</td></tr>
  </table>
</dl>
<dl class="return" compact><dt><b>Returns:</b></dt><dd>status of the op. AXIS2_SUCCESS on success else AXIS2_FAILURE </dd></dl>

</div>
</div><p>
<a class="anchor" name="g5229740973a7dc818a405bd209866071"></a><!-- doxytag: member="axiom_xml_writer.h::axiom_xml_writer_write_raw" ref="g5229740973a7dc818a405bd209866071" args="(axiom_xml_writer_t *writer, const axutil_env_t *env, axis2_char_t *content)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">AXIS2_EXTERN axis2_status_t axiom_xml_writer_write_raw           </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="structaxiom__xml__writer.html">axiom_xml_writer_t</a> *&nbsp;</td>
          <td class="paramname"> <em>writer</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const <a class="el" href="structaxutil__env.html">axutil_env_t</a> *&nbsp;</td>
          <td class="paramname"> <em>env</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">axis2_char_t *&nbsp;</td>
          <td class="paramname"> <em>content</em></td><td>&nbsp;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td><td width="100%"></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
<dl compact><dt><b>Parameters:</b></dt><dd>
  <table border="0" cellspacing="2" cellpadding="0">
    <tr><td valign="top"></td><td valign="top"><em>writer</em>&nbsp;</td><td>pointer to the OM XML Writer struct </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>env</em>&nbsp;</td><td>environment struct, must not be null</td></tr>
  </table>
</dl>
<dl class="return" compact><dt><b>Returns:</b></dt><dd>type </dd></dl>

</div>
</div><p>
<a class="anchor" name="g56cd0aed921b578b91c92c1dd78c989e"></a><!-- doxytag: member="axiom_xml_writer.h::axiom_xml_writer_write_start_document" ref="g56cd0aed921b578b91c92c1dd78c989e" args="(axiom_xml_writer_t *writer, const axutil_env_t *env)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">AXIS2_EXTERN axis2_status_t axiom_xml_writer_write_start_document           </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="structaxiom__xml__writer.html">axiom_xml_writer_t</a> *&nbsp;</td>
          <td class="paramname"> <em>writer</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const <a class="el" href="structaxutil__env.html">axutil_env_t</a> *&nbsp;</td>
          <td class="paramname"> <em>env</em></td><td>&nbsp;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td><td width="100%"></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
<dl compact><dt><b>Parameters:</b></dt><dd>
  <table border="0" cellspacing="2" cellpadding="0">
    <tr><td valign="top"></td><td valign="top"><em>writer</em>&nbsp;</td><td>pointer to the OM XML Writer struct </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>env</em>&nbsp;</td><td>environment struct, must not be null</td></tr>
  </table>
</dl>
<dl class="return" compact><dt><b>Returns:</b></dt><dd>status of the op. AXIS2_SUCCESS on success else AXIS2_FAILURE </dd></dl>

</div>
</div><p>
<a class="anchor" name="g41c370608ae8441c2601a5edc7addf2b"></a><!-- doxytag: member="axiom_xml_writer.h::axiom_xml_writer_write_start_document_with_version" ref="g41c370608ae8441c2601a5edc7addf2b" args="(axiom_xml_writer_t *writer, const axutil_env_t *env, axis2_char_t *version)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">AXIS2_EXTERN axis2_status_t axiom_xml_writer_write_start_document_with_version           </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="structaxiom__xml__writer.html">axiom_xml_writer_t</a> *&nbsp;</td>
          <td class="paramname"> <em>writer</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const <a class="el" href="structaxutil__env.html">axutil_env_t</a> *&nbsp;</td>
          <td class="paramname"> <em>env</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">axis2_char_t *&nbsp;</td>
          <td class="paramname"> <em>version</em></td><td>&nbsp;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td><td width="100%"></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
<dl compact><dt><b>Parameters:</b></dt><dd>
  <table border="0" cellspacing="2" cellpadding="0">
    <tr><td valign="top"></td><td valign="top"><em>writer</em>&nbsp;</td><td>pointer to the OM XML Writer struct </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>env</em>&nbsp;</td><td>environment struct, must not be null</td></tr>
  </table>
</dl>
<dl class="return" compact><dt><b>Returns:</b></dt><dd>status of the op. AXIS2_SUCCESS on success else AXIS2_FAILURE </dd></dl>

</div>
</div><p>
<a class="anchor" name="gc04ed21c2449d5ead09d7deca9fbfb18"></a><!-- doxytag: member="axiom_xml_writer.h::axiom_xml_writer_write_start_document_with_version_encoding" ref="gc04ed21c2449d5ead09d7deca9fbfb18" args="(axiom_xml_writer_t *writer, const axutil_env_t *env, axis2_char_t *version, axis2_char_t *encoding)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">AXIS2_EXTERN axis2_status_t axiom_xml_writer_write_start_document_with_version_encoding           </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="structaxiom__xml__writer.html">axiom_xml_writer_t</a> *&nbsp;</td>
          <td class="paramname"> <em>writer</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const <a class="el" href="structaxutil__env.html">axutil_env_t</a> *&nbsp;</td>
          <td class="paramname"> <em>env</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">axis2_char_t *&nbsp;</td>
          <td class="paramname"> <em>version</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">axis2_char_t *&nbsp;</td>
          <td class="paramname"> <em>encoding</em></td><td>&nbsp;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td><td width="100%"></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
<dl compact><dt><b>Parameters:</b></dt><dd>
  <table border="0" cellspacing="2" cellpadding="0">
    <tr><td valign="top"></td><td valign="top"><em>writer</em>&nbsp;</td><td>pointer to the OM XML Writer struct </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>env</em>&nbsp;</td><td>environment struct, must not be null</td></tr>
  </table>
</dl>
<dl class="return" compact><dt><b>Returns:</b></dt><dd>status of the op. AXIS2_SUCCESS on success else AXIS2_FAILURE </dd></dl>

</div>
</div><p>
<a class="anchor" name="g8fb66c4d3f5b6b4ddee7d62ad9ed70cc"></a><!-- doxytag: member="axiom_xml_writer.h::axiom_xml_writer_write_start_element" ref="g8fb66c4d3f5b6b4ddee7d62ad9ed70cc" args="(axiom_xml_writer_t *writer, const axutil_env_t *env, axis2_char_t *localname)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">AXIS2_EXTERN axis2_status_t axiom_xml_writer_write_start_element           </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="structaxiom__xml__writer.html">axiom_xml_writer_t</a> *&nbsp;</td>
          <td class="paramname"> <em>writer</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const <a class="el" href="structaxutil__env.html">axutil_env_t</a> *&nbsp;</td>
          <td class="paramname"> <em>env</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">axis2_char_t *&nbsp;</td>
          <td class="paramname"> <em>localname</em></td><td>&nbsp;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td><td width="100%"></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
<dl compact><dt><b>Parameters:</b></dt><dd>
  <table border="0" cellspacing="2" cellpadding="0">
    <tr><td valign="top"></td><td valign="top"><em>writer</em>&nbsp;</td><td>pointer to the OM XML Writer struct </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>env</em>&nbsp;</td><td>environment struct, must not be null </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>localname</em>&nbsp;</td><td>local name of the start element </td></tr>
  </table>
</dl>
<dl class="return" compact><dt><b>Returns:</b></dt><dd>satus of the op. AXIS2_SUCCESS on success else AXIS2_FAILURE </dd></dl>

</div>
</div><p>
<a class="anchor" name="gcbc6f4b9ed8f7825c3acd34ef323de63"></a><!-- doxytag: member="axiom_xml_writer.h::axiom_xml_writer_write_start_element_with_namespace" ref="gcbc6f4b9ed8f7825c3acd34ef323de63" args="(axiom_xml_writer_t *writer, const axutil_env_t *env, axis2_char_t *localname, axis2_char_t *namespace_uri)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">AXIS2_EXTERN axis2_status_t axiom_xml_writer_write_start_element_with_namespace           </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="structaxiom__xml__writer.html">axiom_xml_writer_t</a> *&nbsp;</td>
          <td class="paramname"> <em>writer</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const <a class="el" href="structaxutil__env.html">axutil_env_t</a> *&nbsp;</td>
          <td class="paramname"> <em>env</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">axis2_char_t *&nbsp;</td>
          <td class="paramname"> <em>localname</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">axis2_char_t *&nbsp;</td>
          <td class="paramname"> <em>namespace_uri</em></td><td>&nbsp;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td><td width="100%"></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
<dl compact><dt><b>Parameters:</b></dt><dd>
  <table border="0" cellspacing="2" cellpadding="0">
    <tr><td valign="top"></td><td valign="top"><em>writer</em>&nbsp;</td><td>pointer to the OM XML Writer struct </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>env</em>&nbsp;</td><td>environment struct, must not be null</td></tr>
  </table>
</dl>
<dl class="return" compact><dt><b>Returns:</b></dt><dd>status of the op. AXIS2_SUCCESS on success else AXIS2_FAILURE </dd></dl>

</div>
</div><p>
<a class="anchor" name="gbbc4c3ec83abb98b8def106b6733382e"></a><!-- doxytag: member="axiom_xml_writer.h::axiom_xml_writer_write_start_element_with_namespace_prefix" ref="gbbc4c3ec83abb98b8def106b6733382e" args="(axiom_xml_writer_t *writer, const axutil_env_t *env, axis2_char_t *localname, axis2_char_t *namespace_uri, axis2_char_t *prefix)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">AXIS2_EXTERN axis2_status_t axiom_xml_writer_write_start_element_with_namespace_prefix           </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="structaxiom__xml__writer.html">axiom_xml_writer_t</a> *&nbsp;</td>
          <td class="paramname"> <em>writer</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const <a class="el" href="structaxutil__env.html">axutil_env_t</a> *&nbsp;</td>
          <td class="paramname"> <em>env</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">axis2_char_t *&nbsp;</td>
          <td class="paramname"> <em>localname</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">axis2_char_t *&nbsp;</td>
          <td class="paramname"> <em>namespace_uri</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">axis2_char_t *&nbsp;</td>
          <td class="paramname"> <em>prefix</em></td><td>&nbsp;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td><td width="100%"></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
<dl compact><dt><b>Parameters:</b></dt><dd>
  <table border="0" cellspacing="2" cellpadding="0">
    <tr><td valign="top"></td><td valign="top"><em>writer</em>&nbsp;</td><td>pointer to the OM XML Writer struct </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>env</em>&nbsp;</td><td>environment struct, must not be null </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>localname</em>&nbsp;</td><td>localname of the start element </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>namespace_uri</em>&nbsp;</td><td>namespace uri of that element </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>prefix</em>&nbsp;</td><td>prefix of that namespace </td></tr>
  </table>
</dl>
<dl class="return" compact><dt><b>Returns:</b></dt><dd>status of the op. AXIS2_SUCCESS on success else AXIS2_FAILURE </dd></dl>

</div>
</div><p>
<hr size="1"><address style="text-align: right;"><small>Generated on Fri Apr 17 11:49:44 2009 for Axis2/C by&nbsp;
<a href="http://www.doxygen.org/index.html">
<img src="doxygen.png" alt="doxygen" align="middle" border="0"></a> 1.5.3 </small></address>
</body>
</html>


<|start_filename|>guththila/tests/test_attribute.c<|end_filename|>
#include <guththila.h>
#include <check.h>
#include <string.h>
#include "test.h"

START_TEST(test_attribute)
{
    int count = 0;;
    int c = 0;
    guththila_attr_t *att;
    red = guththila_reader_create_for_file("resources/om/evaluate.xml", env);
    parser =
        (guththila_t *) AXIS2_MALLOC(env->allocator, sizeof(guththila_t));
    guththila_init(parser, red, env);
    //guththila_read(parser, env);
    c = guththila_next(parser, env);
    while (!count)
    {
        c = guththila_next(parser, env);
        count = guththila_get_attribute_count(parser, env);
        if (count)
            att = guththila_get_attribute(parser, env);
    }
    fail_if(count == 0, "guththila attribute count failed");
    fail_unless(!strcmp
                (guththila_get_attribute_name(parser, att, env), "color"),
                "guththila attribute name failed");
    fail_unless(!strcmp
                (guththila_get_attribute_value(parser, att, env), "brown"),
                "guththila attribute value failed");
}

END_TEST
START_TEST(
    test_attribute_prefix)
{
    int count = 0;;
    int c = 0;
    guththila_attr_t *att;
    red =
        guththila_reader_create_for_file("resources/soap/soapmessage.xml", env);
    parser =
        (guththila_t *) AXIS2_MALLOC(env->allocator, sizeof(guththila_t));
    guththila_init(parser, red, env);
    //guththila_read(parser, env);
    c = guththila_next(parser, env);
    while (!count)
    {
        c = guththila_next(parser, env);
        count = guththila_get_attribute_count(parser, env);
        if (count)
            att = guththila_get_attribute(parser, env);
    }
    fail_if(count == 0, "guththila attribute count failed");
    fail_unless(!strcmp
                (guththila_get_attribute_prefix(parser, att, env), "soapenv"),
                "guththila attribute count failed");
    fail_unless(!strcmp
                (guththila_get_attribute_name(parser, att, env),
                 "mustUnderstand"), "guththila attribute count failed");
    fail_unless(!strcmp(guththila_get_attribute_value(parser, att, env), "0"),
                "guththila attribute count failed");
    count = 0;
    while (!count)
    {
        c = guththila_next(parser, env);
        count = guththila_get_attribute_count(parser, env);
        if (count)
            att = guththila_get_attribute(parser, env);
    }
    fail_unless(!strcmp
                (guththila_get_attribute_prefix(parser, att, env), "soapenv"),
                "guththila attribute count failed");
    fail_unless(!strcmp
                (guththila_get_attribute_name(parser, att, env),
                 "mustUnderstand"), "guththila attribute count failed");
    fail_if(!strcmp(guththila_get_attribute_value(parser, att, env), "1"),
            "guththila attribute count failed");
}
END_TEST Suite * guththila_attribute_suite(void)
{
    Suite *s = suite_create("Guththila_attribute");

    /* Core test case */
    TCase *tc_core = tcase_create("attribute");
    tcase_add_checked_fixture(tc_core, setup, teardown);
    tcase_add_test(tc_core, test_attribute);
    tcase_add_test(tc_core, test_attribute_prefix);
    suite_add_tcase(s, tc_core);
    return s;
}


<|start_filename|>util/src/utils.c<|end_filename|>
/*
 * 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.
 */

#include <axutil_utils.h>
#include <stdlib.h>
#include <axutil_string.h>
#include <string.h>
#include <platforms/axutil_platform_auto_sense.h>

AXIS2_EXPORT axis2_char_t *axis2_request_url_prefix = "services";

AXIS2_EXTERN axis2_status_t AXIS2_CALL
axutil_parse_rest_url_for_params(
    const axutil_env_t *env,
    const axis2_char_t *tmpl,
    const axis2_char_t *url,
    int *match_count,
    axis2_char_t ****matches)
{
    axis2_char_t ***ret = NULL;
    axis2_char_t *tmp1 = NULL;
    axis2_char_t **tmp2 = NULL;
    axis2_char_t ***tmp3 = NULL;
    axis2_char_t *tmp4 = NULL;
    axis2_char_t *resource = NULL;
    axis2_char_t *query = NULL;
    axis2_char_t *url_tmp = NULL;
    axis2_char_t *url_resource = NULL;
    axis2_char_t *url_query = NULL;
    axis2_bool_t finished = AXIS2_FALSE;
    axis2_status_t status = AXIS2_FAILURE;
    int ret_count = 0;
    int i = 0;
    int j = 0;
    axis2_bool_t in_tok = AXIS2_FALSE;

    tmp2 = AXIS2_MALLOC(env->allocator, 2 * (sizeof(axis2_char_t *)));
    memset(tmp2, 0, 2 * sizeof(axis2_char_t *));

    if (tmpl[0] == '/')
    {
        tmp1 = (axis2_char_t *) tmpl;
        tmp1++;
        resource = axutil_strdup(env, tmp1);
    }
    else
    {
        resource = axutil_strdup(env, tmpl);
    }
    i = (int)strlen(resource);
    /* We are sure that the difference lies within the int range */
    if (resource[i] == '/')
    {
        resource[i] = '\0';
    }
    tmp1 = strchr(resource, '?');
    if (tmp1)
    {
        axis2_char_t *tmp4 = NULL;
        
        tmp4 = tmp1;
        tmp1++;
        resource[tmp4 - resource] = '\0';
        if (*tmp1 && ((tmp1 - resource) < (int)strlen(resource) - 1))
            /* We are sure that the difference lies within the int range */
        {
            query = tmp1;
            /* 
             * Query String based matching is not implemented. This is
             * reserved for future implementations.
             */
        }
    }

    /* Validation of Template */
    i = (int)strlen(resource);
    /* We are sure that the difference lies within the int range */

    if (!strchr(resource, '{') && !strchr(resource, '}'))
    {
        i = 0;
    }
    for (j = 0; j < i; j++)
    {
        if (!in_tok)
        {
            if (resource[j] == '}')
            {
                AXIS2_FREE(env->allocator, resource);
                return AXIS2_FAILURE;
            }
            else if (resource[j] == '{')
            {
                if (j + 1 == i || resource[j + 1] == '}')
                {
                    AXIS2_FREE(env->allocator, resource);
                    return AXIS2_FAILURE;
                }
                else if (resource[j + 1] == '{')
                {
                    j++;
                }
                else
                {
                    in_tok = AXIS2_TRUE;
                }
            }
        }
        else
        {
            if (resource[j] == '{')
            {
                AXIS2_FREE(env->allocator, resource);
                return AXIS2_FAILURE;
            }
            else if (resource[j] == '}')
            {
                if (j + 1 < i && resource[j + 1] == '}')
                {
                    j++;
                }
                else
                {
                    in_tok = AXIS2_FALSE;
                }
            }
        }
    }
    if (in_tok)
    {
        AXIS2_FREE(env->allocator, resource);
        return AXIS2_FAILURE;
    }

    /* Validity of template guaranteed if not returned */

    if (url[0] == '/')
    {
        tmp1 = (axis2_char_t *) url;
        tmp1++;
        url_resource = axutil_strdup(env, tmp1);
    }
    else
    {
        url_resource = axutil_strdup(env, url);
    }
    i = (int)strlen(url_resource);

    /* We are sure that the difference lies within the int range */

    if (url_resource[i] == '/')
    {
        url_resource[i] = '\0';
    }
    i = 0;
    url_tmp = url_resource;
    tmp1 = strchr(url_resource, '?');
    if (tmp1)
    {
        axis2_char_t *tmp4 = NULL;
        
        tmp4 = tmp1;
        tmp1++;
        url_resource[tmp4 - url_resource] = '\0';
        if (*tmp1 && ((tmp1 - url_resource) < (int)strlen(url_resource) - 1))
            /* We are sure that the difference lies within the int range */
        {
            url_query = tmp1;
        }
    }
    tmp1 = resource;

    /* Simplest case match */

    if (!strchr(resource, '{'))
    {
        if (strcmp(resource, url_resource) == 0)
        {
            finished = AXIS2_TRUE;
        }
    }

    while (!finished)
    {
        tmp4 = strchr(tmp1, '{');
        if (tmp4 && tmp4[1])
        {
            if (tmp4[1] != '{')
            {
                axis2_char_t *tmp5 = NULL;
                axis2_char_t *tmp6 = NULL;
                axis2_char_t *tmp7 = NULL;
                axis2_char_t *tmp8 = NULL;
                axis2_char_t *tmp9 = NULL;

                /* Logic for finding out constant portion to match */
                i = (int)(tmp4 - tmp1);
                tmp2[0] = AXIS2_MALLOC(env->allocator, (i + 1) * sizeof(char));
                strncpy(tmp2[0], tmp1, i);
                tmp2[0][i] = '\0';
                if (url_tmp && *url_tmp)
                {
                    tmp6 = url_tmp;
                    tmp5 = strstr(tmp6, tmp2[0]);
                    if (tmp5)
                    {
                        tmp5 += strlen(tmp2[0]);
                        tmp7 = tmp4;
                        tmp8 = tmp4;
                        tmp7++;
                        if (*tmp7)
                        {
                            axis2_bool_t finished_tmp = AXIS2_FALSE;
                            while (!finished_tmp)
                            {
                                tmp6 = strchr(tmp8, '}');
                                if (tmp6 && *tmp6)
                                {
                                    if (tmp6[1] != '}')
                                    {
                                        tmp8 = tmp6 + 1;
                                        break;
                                    }
                                }
                                else
                                {
                                    finished_tmp = AXIS2_TRUE;
                                }
                            }
                            if (!finished_tmp && !strchr(tmp8, '{'))
                            {
                                tmp7 = tmp8 + strlen(tmp8);
                            }
                            else
                            {
                                while (!finished_tmp)
                                {
                                    tmp6 = strchr(tmp8, '{');
                                    if (tmp6 && tmp6[1])
                                    {
                                        if (tmp6[1] != '{')
                                        {
                                            tmp7 = tmp6;
                                            break;
                                        }
                                    }
                                    else
                                    {
                                        finished_tmp = AXIS2_TRUE;
                                    }
                                }
                            }
                            if (!finished_tmp)
                            {
                                i = (int)(tmp7 - tmp8);
                                tmp9 = AXIS2_MALLOC(env->allocator, (i + 1) * sizeof(char));
                                strncpy(tmp9, tmp8, i);
                                tmp9[i] = '\0';
                            }
                        }
                        if (tmp9 && *tmp9)
                        {
                            tmp6 = strstr(tmp5, tmp9);
                            AXIS2_FREE (env->allocator, tmp9);
                            tmp9 = NULL;
                        }
                        else
                        {
                            tmp6 = strchr(tmp5, '/');
                        }
                        /* Logic for saving the match */
                        if (tmp6 && tmp6 != tmp5)
                        {
                            i = (int)(tmp6 - tmp5);
                            url_tmp = tmp6;
                            tmp2[1] = AXIS2_MALLOC(env->allocator, (i + 1) * sizeof(char));
                            strncpy(tmp2[1], tmp5, i);
                            tmp2[1][i] = '\0';
                        }
                        else
                        {
                            i = (int)strlen(tmp5);
                            /* We are sure that the difference lies within the int range */
                            tmp2[1] = AXIS2_MALLOC(env->allocator, (i + 1) * sizeof(char));
                            strncpy(tmp2[1], tmp5, i);
                            tmp2[1][i] = '\0';
                            url_tmp = NULL;
                        }
                    }
                }
                else
                {
                    break;
                }
                while (!finished)
                {
                    tmp1 = tmp4 + 1;
                    tmp4 = strchr(tmp1, '}');
                    if (tmp4 && *tmp4)
                    {
                        if (tmp4[1] != '}')
                        {
                            /* Logic for saving the key for the match */
                            i = (int)(tmp4 - tmp1);
                            if (tmp2[0])
                            {
                                AXIS2_FREE(env->allocator, tmp2[0]);
                            }
                            tmp2[0] = AXIS2_MALLOC(env->allocator, (i + 1) * sizeof(char));
                            strncpy(tmp2[0], tmp1, i);
                            tmp2[0][i] = '\0';
                            tmp3 = ret;
                            ret_count++;
                            ret = AXIS2_MALLOC(env->allocator, ret_count * 2 * (sizeof(axis2_char_t *)));
                            memset(ret, 0, ret_count * 2 * sizeof(axis2_char_t *));
                            for(i = 0; i < ret_count - 1; i++)
                            {
                                ret[i] = tmp3[i];
                            }
                            ret[i] = tmp2;
                            tmp2 = AXIS2_MALLOC(env->allocator, 2 * (sizeof(axis2_char_t *)));
                            memset(tmp2, 0, 2 * sizeof(axis2_char_t *));
                            tmp3 = NULL;
                            break;
                        }
                        else
                        {
                            tmp4++;
                        }
                    }
                    else
                    {
                        finished = AXIS2_TRUE;
                    }
                }
            }
            else
            {
                tmp4++;
            }
        }
        else
        {
            /* Result of mismatch at the simplest case */
            if (!strchr(resource, '{'))
            {
                finished = AXIS2_FALSE;
                break;
            }
            finished = AXIS2_TRUE;
        }
        tmp1 = tmp4 + 1;
    }
    if (resource)
    {
        AXIS2_FREE(env->allocator, resource);
    }
    if (url_resource)
    {
        AXIS2_FREE(env->allocator, url_resource);
    }
    if (tmp2)
    {
        if (tmp2[0])
        {
            AXIS2_FREE(env->allocator, tmp2[0]);
        }
        if (tmp2[1])
        {
            AXIS2_FREE(env->allocator, tmp2[1]);
        }
        AXIS2_FREE(env->allocator, tmp2);
    }
    if (finished)
    {
        status = AXIS2_SUCCESS;
    }
    *match_count = ret_count;
    *matches = ret;
    return status;
}

AXIS2_EXTERN axis2_char_t **AXIS2_CALL
axutil_parse_request_url_for_svc_and_op(
    const axutil_env_t *env,
    const axis2_char_t *request)
{
    axis2_char_t **ret = NULL;
    axis2_char_t *service_str = NULL;
    axis2_char_t *tmp = NULL;
    int i = 0;
    ret = AXIS2_MALLOC(env->allocator, 2 * (sizeof(axis2_char_t *)));
    memset(ret, 0, 2 * sizeof(axis2_char_t *));
    tmp = (axis2_char_t *) request;

    tmp = strstr(tmp, axis2_request_url_prefix);
    if (tmp)
    {
        service_str = tmp;
        tmp += axutil_strlen(axis2_request_url_prefix);
        /*break stop on first prefix as user may have prefix in service name */
    }
    if (service_str)
    {
        service_str += axutil_strlen(axis2_request_url_prefix);
        if ('\0' != *service_str)
        {
            if (*service_str == '/')
                service_str++;  /*to remove the leading '/' */
            tmp = strchr(service_str, '/');
            if (tmp)
            {
                i = (int)(tmp - service_str);
                ret[0] = AXIS2_MALLOC(env->allocator, i * sizeof(char) + 1);
                strncpy(ret[0], service_str, i);
                ret[0][i] = '\0';

                /* Now search for the op */
                service_str = tmp;
                if ('\0' != *service_str)
                {
                    service_str++;
                    tmp = strchr(service_str, '?');
                    if (tmp)
                    {
                        i = (int)(tmp - service_str);
                        ret[1] =
                            AXIS2_MALLOC(env->allocator, i * sizeof(char) + 1);
                        strncpy(ret[1], service_str, i);
                        ret[1][i] = '\0';
                    }
                    else
                    {
                        ret[1] = axutil_strdup(env, service_str);
                    }
                }
            }
            else
            {
                ret[0] = axutil_strdup(env, service_str);
            }
        }
    }
    return ret;
}

AXIS2_EXTERN axis2_char_t *AXIS2_CALL
axutil_xml_quote_string(
    const axutil_env_t *env,
    const axis2_char_t *s,
    axis2_bool_t quotes)
{
    const char *scan;
    size_t len = 0;
    size_t extra = 0;
    char *qstr;
    char *qscan;
    char c;

    for (scan = s; (c = *scan) != '\0'; ++scan, ++len)
    {
        if (c == '<' || c == '>')
            extra += 3;         /* &lt; or &gt; */
        else if (c == '&')
            extra += 4;         /* &amp; */
        else if (quotes && c == '"')
            extra += 5;         /* &quot; */
    }

    /* nothing to do */
    if (extra == 0)
        return NULL;

    qstr = AXIS2_MALLOC(env->allocator, len + extra + 1);
    for (scan = s, qscan = qstr; (c = *scan) != '\0'; ++scan)
    {
        if (c == '<')
        {
            *qscan++ = '&';
            *qscan++ = 'l';
            *qscan++ = 't';
            *qscan++ = ';';
        }
        else if (c == '>')
        {
            *qscan++ = '&';
            *qscan++ = 'g';
            *qscan++ = 't';
            *qscan++ = ';';
        }
        else if (c == '&')
        {
            *qscan++ = '&';
            *qscan++ = 'a';
            *qscan++ = 'm';
            *qscan++ = 'p';
            *qscan++ = ';';
        }
        else if (quotes && c == '"')
        {
            *qscan++ = '&';
            *qscan++ = 'q';
            *qscan++ = 'u';
            *qscan++ = 'o';
            *qscan++ = 't';
            *qscan++ = ';';
        }
        else
        {
            *qscan++ = c;
        }
    }

    *qscan = '\0';
    return qstr;
}


AXIS2_EXTERN axis2_status_t AXIS2_CALL
axutil_url_decode(
    const axutil_env_t *env,
    axis2_char_t *dest,
    axis2_char_t *src)
{
    AXIS2_PARAM_CHECK(env->error, dest, AXIS2_FAILURE);
    AXIS2_PARAM_CHECK(env->error, src, AXIS2_FAILURE);

    for (; *src != '\0'; ++dest, ++src)
    {
        if (src[0] == '%' && isxdigit(src[1]) && isxdigit(src[2]))
        {
            *dest = (axis2_char_t)(axutil_hexit(src[1]) * 16 + axutil_hexit(src[2]));
            /* We are sure that the conversion is safe */
            src += 2;
        }
        else
        {
            *dest = *src;
        }
    }
    *dest = '\0';

    return AXIS2_SUCCESS;
}

AXIS2_EXTERN int AXIS2_CALL
axutil_hexit(axis2_char_t c)
{
    if (c >= '0' && c <= '9')
    {
        return c - '0';
    }
    if (c >= 'a' && c <= 'f')
    {
        return c - 'a' + 10;
    }
    if (c >= 'A' && c <= 'F')
    {
        return c - 'A' + 10;
    }
    return 0;    
}

AXIS2_EXTERN axis2_status_t AXIS2_CALL
axis2_char_2_byte(
    const axutil_env_t *env,
    axis2_char_t *char_buffer,
    axis2_byte_t **byte_buffer,
    int *byte_buffer_size)
{
    int length = 0;
    int i = 0;
    axis2_byte_t *bytes = NULL;

    length = (int) axutil_strlen(char_buffer);
    bytes = (axis2_byte_t *)
        AXIS2_MALLOC(env->allocator, length * sizeof(axis2_byte_t));

    if (!bytes)
    {
        AXIS2_ERROR_SET(env->error, AXIS2_ERROR_NO_MEMORY, AXIS2_FAILURE);
        AXIS2_LOG_ERROR(env->log, AXIS2_LOG_SI,
            "No memory. Cannot create byte buffer");
        return AXIS2_FAILURE;
    }

    for (i = 0; i < length; i++)
    {
        bytes[i] = (axis2_byte_t) char_buffer[i];
    }
    *byte_buffer = bytes;
    *byte_buffer_size = length;
    return AXIS2_SUCCESS;
}



<|start_filename|>xdocs/api/html/globals_defs.html<|end_filename|>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html><head><meta http-equiv="Content-Type" content="text/html;charset=UTF-8">
<title>Axis2/C: Class Members</title>
<link href="doxygen.css" rel="stylesheet" type="text/css">
<link href="tabs.css" rel="stylesheet" type="text/css">
</head><body>
<!-- Generated by Doxygen 1.5.3 -->
<div class="tabs">
  <ul>
    <li><a href="index.html"><span>Main&nbsp;Page</span></a></li>
    <li><a href="modules.html"><span>Modules</span></a></li>
    <li><a href="annotated.html"><span>Classes</span></a></li>
    <li class="current"><a href="files.html"><span>Files</span></a></li>
    <li><a href="dirs.html"><span>Directories</span></a></li>
    <li><a href="pages.html"><span>Related&nbsp;Pages</span></a></li>
    <li><a href="examples.html"><span>Examples</span></a></li>
    <li>
      <form action="search.php" method="get">
        <table cellspacing="0" cellpadding="0" border="0">
          <tr>
            <td><label>&nbsp;<u>S</u>earch&nbsp;for&nbsp;</label></td>
            <td><input type="text" name="query" value="" size="20" accesskey="s"/></td>
          </tr>
        </table>
      </form>
    </li>
  </ul>
</div>
<div class="tabs">
  <ul>
    <li><a href="files.html"><span>File&nbsp;List</span></a></li>
    <li class="current"><a href="globals.html"><span>File&nbsp;Members</span></a></li>
  </ul>
</div>
<div class="tabs">
  <ul>
    <li><a href="globals.html"><span>All</span></a></li>
    <li><a href="globals_func.html"><span>Functions</span></a></li>
    <li><a href="globals_type.html"><span>Typedefs</span></a></li>
    <li><a href="globals_enum.html"><span>Enumerations</span></a></li>
    <li><a href="globals_eval.html"><span>Enumerator</span></a></li>
    <li class="current"><a href="globals_defs.html"><span>Defines</span></a></li>
  </ul>
</div>
<div class="tabs">
  <ul>
    <li><a href="#index_a"><span>a</span></a></li>
    <li><a href="#index_e"><span>e</span></a></li>
    <li><a href="#index_p"><span>p</span></a></li>
  </ul>
</div>

<p>
&nbsp;
<p>
<h3><a class="anchor" name="index_a">- a -</a></h3><ul>
<li>AXIOM_SOAP_11
: <a class="el" href="group__axis2__stub.html#g474df5196c2a46015268b108ce2dde5c">axis2_stub.h</a>
<li>AXIOM_SOAP_12
: <a class="el" href="group__axis2__stub.html#ga869c2c88438ec26ab81a36b8727ac80">axis2_stub.h</a>
<li>AXIS2_CHARACTER_SET_ENCODING
: <a class="el" href="group__axis2__msg__ctx.html#g7c5ab0e072df1c661f2e547ac7185d1f">axis2_msg_ctx.h</a>
<li>AXIS2_CLASSLOADER_KEY
: <a class="el" href="group__axis2__desc__constants.html#g60fdf1e9762c3a7806e25188fe2e1434">axis2_description.h</a>
<li>AXIS2_CONTEXTPATH_KEY
: <a class="el" href="group__axis2__desc__constants.html#gdafd2bf300a94a15b2e9e896d5ad081a">axis2_description.h</a>
<li>AXIS2_COPY_PROPERTIES
: <a class="el" href="group__axis2__options.html#g8e84174996e7ce97d2ec4c7b49956ad7">axis2_options.h</a>
<li>AXIS2_CREATE_FUNCTION
: <a class="el" href="group__axutil__utils.html#gdf04006f325f60c4a2de4404b68a5b3c">axutil_utils.h</a>
<li>AXIS2_DEFAULT_CHAR_SET_ENCODING
: <a class="el" href="group__axis2__msg__ctx.html#g6322d4be41907e2a6d3d63a4c5e57dcb">axis2_msg_ctx.h</a>
<li>AXIS2_DEFAULT_TIMEOUT_MILLISECONDS
: <a class="el" href="group__axis2__options.html#gfc55ac210f2f22e70ac1d905d8509fe4">axis2_options.h</a>
<li>AXIS2_DOM_PARAM
: <a class="el" href="group__axutil__param.html#g6cfc099e6a5c7446f60046fc7ee338c2">axutil_param.h</a>
<li>AXIS2_ERROR_SET
: <a class="el" href="group__axutil__utils.html#gacaecc9520a0470ee32e6100942c4088">axutil_utils.h</a>
<li>AXIS2_EXECUTION_CHAIN_KEY
: <a class="el" href="group__axis2__desc__constants.html#gadedea70ac9dab41e3006111329f0274">axis2_description.h</a>
<li>AXIS2_EXECUTION_FAULT_CHAIN_KEY
: <a class="el" href="group__axis2__desc__constants.html#g2df623b0c60be4c12c415251ba683eb9">axis2_description.h</a>
<li>AXIS2_EXECUTION_OUT_CHAIN_KEY
: <a class="el" href="group__axis2__desc__constants.html#ga994ccbb1a096606c1d53d3102dacb54">axis2_description.h</a>
<li>AXIS2_FAULT_IN_FLOW
: <a class="el" href="axis2__defines_8h.html#171143230a231ff07fcf8402b523a713">axis2_defines.h</a>
<li>AXIS2_FAULT_OUT_FLOW
: <a class="el" href="axis2__defines_8h.html#8043878d85527a6ae8688f1df13e70d7">axis2_defines.h</a>
<li>AXIS2_FUNC_PARAM_CHECK
: <a class="el" href="group__axutil__utils.html#gc166237d0def75b6826516f64acffbef">axutil_utils.h</a>
<li>AXIS2_HANDLE_ERROR
: <a class="el" href="group__axutil__utils.html#g90cce8a56477673e8a291103addcf6c7">axutil_utils.h</a>
<li>AXIS2_HANDLE_ERROR_WITH_FILE
: <a class="el" href="group__axutil__utils.html#gd604b1a4dd6fa46d73119de36a43b23f">axutil_utils.h</a>
<li>AXIS2_HASH_KEY_STRING
: <a class="el" href="group__axutil__hash.html#g9d76d1650779662f4e6727f4284e34d9">axutil_hash.h</a>
<li>AXIS2_HTTP_CLIENT
: <a class="el" href="group__axis2__msg__ctx.html#g54e451fddf8b69dd8a9cd357d81a2525">axis2_msg_ctx.h</a>
<li>AXIS2_HTTP_OUT_TRANSPORT_INFO_FREE
: <a class="el" href="group__axis2__http__out__transport__info.html#g3174b25bfefbe35ad05b2ecf2a24efb0">axis2_http_out_transport_info.h</a>
<li>AXIS2_HTTP_OUT_TRANSPORT_INFO_SET_CHAR_ENCODING
: <a class="el" href="group__axis2__http__out__transport__info.html#gc17624b984364754cbd36a32f62e1ba6">axis2_http_out_transport_info.h</a>
<li>AXIS2_HTTP_OUT_TRANSPORT_INFO_SET_CONTENT_TYPE
: <a class="el" href="group__axis2__http__out__transport__info.html#gc65a46f52b077ea5b9355094f93db1d2">axis2_http_out_transport_info.h</a>
<li>AXIS2_HTTP_SENDER_FREE
: <a class="el" href="axis2__http__sender_8h.html#2409df19c0a6580a757dd966dc089b4d">axis2_http_sender.h</a>
<li>AXIS2_HTTP_SENDER_SEND
: <a class="el" href="axis2__http__sender_8h.html#e502c287e52aae7ed166e6c60b1aee69">axis2_http_sender.h</a>
<li>AXIS2_HTTP_SENDER_SET_CHUNKED
: <a class="el" href="axis2__http__sender_8h.html#930a9ebf0bb35f1ae076ddd63c580d50">axis2_http_sender.h</a>
<li>AXIS2_HTTP_SENDER_SET_HTTP_VERSION
: <a class="el" href="axis2__http__sender_8h.html#270c3443efeed4c4400e446369834116">axis2_http_sender.h</a>
<li>AXIS2_HTTP_SENDER_SET_OM_OUTPUT
: <a class="el" href="axis2__http__sender_8h.html#b122bd22cd8254b7b1b1b370505c62d8">axis2_http_sender.h</a>
<li>AXIS2_IN_FAULTFLOW_KEY
: <a class="el" href="group__axis2__desc__constants.html#g77261af724a23bba3aef5a6ead323803">axis2_description.h</a>
<li>AXIS2_IN_FLOW
: <a class="el" href="axis2__defines_8h.html#9094b305bdfb0e4679f847f8809fc888">axis2_defines.h</a>
<li>AXIS2_IN_FLOW_KEY
: <a class="el" href="group__axis2__desc__constants.html#ga41f19199cb6d14fe08b749ce252581a">axis2_description.h</a>
<li>AXIS2_MD5_DIGESTSIZE
: <a class="el" href="group__axutil__md5.html#g46524d732e43163e7e19261f67e24246">axutil_md5.h</a>
<li>AXIS2_MESSAGE_RECEIVER_KEY
: <a class="el" href="group__axis2__desc__constants.html#g76dbd7e6c256011caeed55fb259b4123">axis2_description.h</a>
<li>axis2_module_fill_handler_create_func_map
: <a class="el" href="group__axis2__module.html#g1b38c2e3368e87c2309a12ea71e96177">axis2_module.h</a>
<li>axis2_module_init
: <a class="el" href="group__axis2__module.html#g9ca78c64c10ccef1c279b93faf24d2a8">axis2_module.h</a>
<li>axis2_module_shutdown
: <a class="el" href="group__axis2__module.html#g387fcdad65e41987b62d36fd4ac4bdf2">axis2_module.h</a>
<li>AXIS2_MODULEREF_KEY
: <a class="el" href="group__axis2__desc__constants.html#g1bfa79983f0142c83266a4fc9f710cd4">axis2_description.h</a>
<li>AXIS2_MSG_IN
: <a class="el" href="group__axis2__msg.html#g862a13ab2bca0822defd770d15a27fbf">axis2_msg.h</a>
<li>AXIS2_MSG_IN_FAULT
: <a class="el" href="group__axis2__msg.html#gc1a93d406ebcea483078bcd581674bef">axis2_msg.h</a>
<li>AXIS2_MSG_OUT
: <a class="el" href="group__axis2__msg.html#gf8324fc49bef947986c6333e608def13">axis2_msg.h</a>
<li>AXIS2_MSG_OUT_FAULT
: <a class="el" href="group__axis2__msg.html#g3786b0350a135a0e12915b6e77d6fedf">axis2_msg.h</a>
<li>AXIS2_OP_KEY
: <a class="el" href="group__axis2__desc__constants.html#g356b2b75d01d009037f0cb504118eb8d">axis2_description.h</a>
<li>AXIS2_OUT_FAULTFLOW_KEY
: <a class="el" href="group__axis2__desc__constants.html#g08546fcedc786f6313440206bbb13090">axis2_description.h</a>
<li>AXIS2_OUT_FLOW
: <a class="el" href="axis2__defines_8h.html#29322231941ef510a61878291a3d90be">axis2_defines.h</a>
<li>AXIS2_OUT_FLOW_KEY
: <a class="el" href="group__axis2__desc__constants.html#ge57a6cd0804eca94aa386d8859dfb184">axis2_description.h</a>
<li>AXIS2_OUT_TRANSPORT_INFO_FREE
: <a class="el" href="group__axis2__out__transport__info.html#g91d375733dd28c9de9060f632cdb69f8">axis2_out_transport_info.h</a>
<li>AXIS2_OUT_TRANSPORT_INFO_SET_CHAR_ENCODING
: <a class="el" href="group__axis2__out__transport__info.html#g61f3555a9a1061c23bcc37cd3158b16d">axis2_out_transport_info.h</a>
<li>AXIS2_OUT_TRANSPORT_INFO_SET_CONTENT_TYPE
: <a class="el" href="group__axis2__out__transport__info.html#g4c6d71c71837c7ec5109d73315421c5c">axis2_out_transport_info.h</a>
<li>AXIS2_PARAM_CHECK
: <a class="el" href="group__axutil__utils.html#g991e733569102d01d912614940aca452">axutil_utils.h</a>
<li>AXIS2_PARAMETER_KEY
: <a class="el" href="group__axis2__desc__constants.html#g42f0a3efb9d5e1aecd03f410ee08c1a6">axis2_description.h</a>
<li>AXIS2_PHASE_AFTER
: <a class="el" href="group__axis2__phase.html#g6c7946dfabebe6b1651c4e444f6981fd">axis2_phase.h</a>
<li>AXIS2_PHASE_ANYWHERE
: <a class="el" href="group__axis2__phase.html#g742763fcecad7c9cd3ff889591151a8d">axis2_phase.h</a>
<li>AXIS2_PHASE_BEFORE
: <a class="el" href="group__axis2__phase.html#gedaee8553f3bd49535a393920321b836">axis2_phase.h</a>
<li>AXIS2_PHASE_BOTH_BEFORE_AFTER
: <a class="el" href="group__axis2__phase.html#ge1f25ec22e7fe0eb476632ddd03df7e9">axis2_phase.h</a>
<li>AXIS2_PHASES_KEY
: <a class="el" href="group__axis2__desc__constants.html#g8e2aaf910542b2301b9b76fec0f892b5">axis2_description.h</a>
<li>AXIS2_SERVICE_CLASS
: <a class="el" href="group__axis2__desc__constants.html#g51520c8629c59965bb63041e7852d2b7">axis2_description.h</a>
<li>AXIS2_SERVICE_CLASS_NAME
: <a class="el" href="group__axis2__desc__constants.html#gdf28480aee109151d20c606df2da34ba">axis2_description.h</a>
<li>AXIS2_STYLE_KEY
: <a class="el" href="group__axis2__desc__constants.html#gefc06b1782ab35854a0b8f2ce51044db">axis2_description.h</a>
<li>AXIS2_SVC_SKELETON_FREE
: <a class="el" href="group__axis2__svc__skeleton.html#g2d7f27e2cbfaff2288c6ecfccb55ff26">axis2_svc_skeleton.h</a>
<li>AXIS2_SVC_SKELETON_INIT
: <a class="el" href="group__axis2__svc__skeleton.html#g65d05f1f29f563149acfba91f3a23a91">axis2_svc_skeleton.h</a>
<li>AXIS2_SVC_SKELETON_INIT_WITH_CONF
: <a class="el" href="group__axis2__svc__skeleton.html#g8badcde91b5f58a020eaaafde4a0e431">axis2_svc_skeleton.h</a>
<li>AXIS2_SVC_SKELETON_INVOKE
: <a class="el" href="group__axis2__svc__skeleton.html#ge181b2f813a771eea6d587f3f2652e7e">axis2_svc_skeleton.h</a>
<li>AXIS2_SVC_SKELETON_ON_FAULT
: <a class="el" href="group__axis2__svc__skeleton.html#gc1c9dfc996cb0f8603e042cef200db98">axis2_svc_skeleton.h</a>
<li>AXIS2_SVR_PEER_IP_ADDR
: <a class="el" href="group__axis2__msg__ctx.html#g7474c039348fcaae57ebc785661329ce">axis2_msg_ctx.h</a>
<li>AXIS2_TEXT_PARAM
: <a class="el" href="group__axutil__param.html#gd0cccbde323f2c7ddbe78ab5d1d96156">axutil_param.h</a>
<li>AXIS2_THREAD_MUTEX_DEFAULT
: <a class="el" href="group__axutil__thread.html#gd096680721aedfeb237647a9d59deedf">axutil_thread.h</a>
<li>AXIS2_THREAD_MUTEX_NESTED
: <a class="el" href="group__axutil__thread.html#g4c1de3e53fdd5e35bff45518bf01adb9">axutil_thread.h</a>
<li>AXIS2_THREAD_MUTEX_UNNESTED
: <a class="el" href="group__axutil__thread.html#g23f73f33dbd2bc3b73e45765daee0dfd">axutil_thread.h</a>
<li>AXIS2_TIMEOUT_IN_SECONDS
: <a class="el" href="group__axis2__options.html#g8d4099b7a4e7a79c33840aeb01b34a43">axis2_options.h</a>
<li>AXIS2_TRANSPORT_HEADERS
: <a class="el" href="group__axis2__msg__ctx.html#g44eafb1b488dbb8b1a5c96b1a20e0672">axis2_msg_ctx.h</a>
<li>AXIS2_TRANSPORT_IN
: <a class="el" href="group__axis2__msg__ctx.html#g565c1b1f3f6b81f999fd20765b652c18">axis2_msg_ctx.h</a>
<li>AXIS2_TRANSPORT_OUT
: <a class="el" href="group__axis2__msg__ctx.html#g54db92215436083e7d8202149773c193">axis2_msg_ctx.h</a>
<li>AXIS2_TRANSPORT_SENDER_CLEANUP
: <a class="el" href="group__axis2__transport__sender.html#gaa44d10358d3bfa8bf299fd33d1674ba">axis2_transport_sender.h</a>
<li>AXIS2_TRANSPORT_SENDER_FREE
: <a class="el" href="group__axis2__transport__sender.html#g29ff197d35f12f1185e0306078a901a9">axis2_transport_sender.h</a>
<li>AXIS2_TRANSPORT_SENDER_INIT
: <a class="el" href="group__axis2__transport__sender.html#g1e3ea665c5968395b11d116c869bb409">axis2_transport_sender.h</a>
<li>AXIS2_TRANSPORT_SENDER_INVOKE
: <a class="el" href="group__axis2__transport__sender.html#gbe928f1aa5166c508c6579e5289ee0e0">axis2_transport_sender.h</a>
<li>AXIS2_TRANSPORT_SUCCEED
: <a class="el" href="group__axis2__msg__ctx.html#g45fb20080ffa2a4f7d18a844193ada04">axis2_msg_ctx.h</a>
<li>AXIS2_TRANSPORT_URL
: <a class="el" href="group__axis2__msg__ctx.html#g698a681ef62502de45559859fe9e2cbd">axis2_msg_ctx.h</a>
<li>AXIS2_URI_ACAP_DEFAULT_PORT
: <a class="el" href="group__axutil__uri.html#g597c0ffd3d295c93b341d41934926b8a">axutil_uri.h</a>
<li>AXIS2_URI_FTP_DEFAULT_PORT
: <a class="el" href="group__axutil__uri.html#g890a29bb1a4b69ad44210eb56093ef9d">axutil_uri.h</a>
<li>AXIS2_URI_GOPHER_DEFAULT_PORT
: <a class="el" href="group__axutil__uri.html#g1324185e1936eefc96758ac7b3bd1d1e">axutil_uri.h</a>
<li>AXIS2_URI_HTTP_DEFAULT_PORT
: <a class="el" href="group__axutil__uri.html#g61a736bf61ac0e9773d506a2faf98298">axutil_uri.h</a>
<li>AXIS2_URI_HTTPS_DEFAULT_PORT
: <a class="el" href="group__axutil__uri.html#g3c34f69d375f38e461f09374ad90ee9c">axutil_uri.h</a>
<li>AXIS2_URI_IMAP_DEFAULT_PORT
: <a class="el" href="group__axutil__uri.html#g05f6dc24b60711f8c7ed562ceef3cd26">axutil_uri.h</a>
<li>AXIS2_URI_LDAP_DEFAULT_PORT
: <a class="el" href="group__axutil__uri.html#gf49acba5d4eb35310a62cb62385538ef">axutil_uri.h</a>
<li>AXIS2_URI_NFS_DEFAULT_PORT
: <a class="el" href="group__axutil__uri.html#g938eb255d804e1aff7e1d92ffb5f5b9d">axutil_uri.h</a>
<li>AXIS2_URI_NNTP_DEFAULT_PORT
: <a class="el" href="group__axutil__uri.html#g5cf52008ffc33b4308cdc6ab465d1271">axutil_uri.h</a>
<li>AXIS2_URI_POP_DEFAULT_PORT
: <a class="el" href="group__axutil__uri.html#g641f01da5297ffdc17302e3a35ec5df9">axutil_uri.h</a>
<li>AXIS2_URI_PROSPERO_DEFAULT_PORT
: <a class="el" href="group__axutil__uri.html#g501f92278c7825a20f532aaeae3b59ca">axutil_uri.h</a>
<li>AXIS2_URI_RTSP_DEFAULT_PORT
: <a class="el" href="group__axutil__uri.html#g0e844d7bf3c95b104e6a25b4680a3263">axutil_uri.h</a>
<li>AXIS2_URI_SIP_DEFAULT_PORT
: <a class="el" href="group__axutil__uri.html#g00c5165abdd8e1e3dc4e649dc91a7d14">axutil_uri.h</a>
<li>AXIS2_URI_SNEWS_DEFAULT_PORT
: <a class="el" href="group__axutil__uri.html#g453de6d294e03f6a1950b5ecd1c767a4">axutil_uri.h</a>
<li>AXIS2_URI_SSH_DEFAULT_PORT
: <a class="el" href="group__axutil__uri.html#g173cf9fac502ce166634f8cac97ad72b">axutil_uri.h</a>
<li>AXIS2_URI_TELNET_DEFAULT_PORT
: <a class="el" href="group__axutil__uri.html#g54be7d53a86f2b0d82bf00c7aa8f7c6f">axutil_uri.h</a>
<li>AXIS2_URI_TIP_DEFAULT_PORT
: <a class="el" href="group__axutil__uri.html#g2a5977799c7e472bc7f0ea1ee440a2c3">axutil_uri.h</a>
<li>AXIS2_URI_UNP_OMITFRAGMENT_ONLY
: <a class="el" href="group__axutil__uri.html#gfd1c52b377d713e8c562d138971e3da9">axutil_uri.h</a>
<li>AXIS2_URI_UNP_OMITPASSWORD
: <a class="el" href="group__axutil__uri.html#ga54bd62b2dcdf304deec6087328d9b40">axutil_uri.h</a>
<li>AXIS2_URI_UNP_OMITPATHINFO
: <a class="el" href="group__axutil__uri.html#gf9be5c22507d50e8852d6b346068bf85">axutil_uri.h</a>
<li>AXIS2_URI_UNP_OMITQUERY
: <a class="el" href="group__axutil__uri.html#g83806b77d30e0c012192145ee73c4eb4">axutil_uri.h</a>
<li>AXIS2_URI_UNP_OMITQUERY_ONLY
: <a class="el" href="group__axutil__uri.html#gba651e91d89d096e638945c1dc729b82">axutil_uri.h</a>
<li>AXIS2_URI_UNP_OMITSITEPART
: <a class="el" href="group__axutil__uri.html#g9fbeb5793112dac6d410949e2f9b8547">axutil_uri.h</a>
<li>AXIS2_URI_UNP_OMITUSER
: <a class="el" href="group__axutil__uri.html#g72c059826dc908e6e6960b6f9023b0ad">axutil_uri.h</a>
<li>AXIS2_URI_UNP_OMITUSERINFO
: <a class="el" href="group__axutil__uri.html#gdf97648c61c101a22ed8628355171496">axutil_uri.h</a>
<li>AXIS2_URI_UNP_REVEALPASSWORD
: <a class="el" href="group__axutil__uri.html#ge4deae533f770383007885c27f9eb977">axutil_uri.h</a>
<li>AXIS2_URI_WAIS_DEFAULT_PORT
: <a class="el" href="group__axutil__uri.html#gc73c5de55dd281e5db79bcd377bbf1ba">axutil_uri.h</a>
<li>AXIS2_UTF_16
: <a class="el" href="group__axis2__msg__ctx.html#g18012bb0c44b6992bbceef98b7b81608">axis2_msg_ctx.h</a>
<li>AXIS2_UTF_8
: <a class="el" href="group__axis2__msg__ctx.html#g7b3f76abded0b271e02ee3d8e3ace866">axis2_msg_ctx.h</a>
<li>AXIS2_WSA_ACTION
: <a class="el" href="group__axis2__addr__consts.html#g903617fc19d61deaaf5ab3dc024378d3">axis2_addr.h</a>
<li>AXIS2_WSA_ANONYMOUS_URL
: <a class="el" href="group__axis2__addr__consts.html#g20752682a087c66467fbf5f09c434c7e">axis2_addr.h</a>
<li>AXIS2_WSA_ANONYMOUS_URL_SUBMISSION
: <a class="el" href="group__axis2__addr__consts.html#g2fd3980a63df468bac1580dd249639db">axis2_addr.h</a>
<li>AXIS2_WSA_DEFAULT_PREFIX
: <a class="el" href="group__axis2__addr__consts.html#g0a39a1ed9bcd873cef011bef81d20d85">axis2_addr.h</a>
<li>AXIS2_WSA_FAULT_TO
: <a class="el" href="group__axis2__addr__consts.html#g9bf69cecc6d28fe398d610195617f1bd">axis2_addr.h</a>
<li>AXIS2_WSA_FROM
: <a class="el" href="group__axis2__addr__consts.html#g2e581c359ddbed08e8fc9aaf3adbc639">axis2_addr.h</a>
<li>AXIS2_WSA_INTERFACE_NAME
: <a class="el" href="group__axis2__addr__consts.html#gc35528fdb8d4a0da501462f1205e4ecc">axis2_addr.h</a>
<li>AXIS2_WSA_IS_REFERENCE_PARAMETER_ATTRIBUTE
: <a class="el" href="group__axis2__addr__consts.html#g4739c8ded874a3d7901bc6229a46dc24">axis2_addr.h</a>
<li>AXIS2_WSA_MAPPING
: <a class="el" href="group__axis2__addr__consts.html#g5b94c2283807555fadb4baf18d3b134b">axis2_addr.h</a>
<li>AXIS2_WSA_MESSAGE_ID
: <a class="el" href="group__axis2__addr__consts.html#g36bf0a69968793ca68ca864fb1537df6">axis2_addr.h</a>
<li>AXIS2_WSA_METADATA
: <a class="el" href="group__axis2__addr__consts.html#g24ec2266e6ace775fa784c8a79a1da7c">axis2_addr.h</a>
<li>AXIS2_WSA_NAMESPACE
: <a class="el" href="group__axis2__addr__consts.html#g9f2d22dc75524b21af3834175e0931e5">axis2_addr.h</a>
<li>AXIS2_WSA_NAMESPACE_SUBMISSION
: <a class="el" href="group__axis2__addr__consts.html#g4f4910d41b2474a1212c4af6c9c3d769">axis2_addr.h</a>
<li>AXIS2_WSA_NONE_URL
: <a class="el" href="group__axis2__addr__consts.html#g92e906914bd8ae5a8d3f6014f4bcb189">axis2_addr.h</a>
<li>AXIS2_WSA_NONE_URL_SUBMISSION
: <a class="el" href="group__axis2__addr__consts.html#g4436004b04180b21593a423576b60ef9">axis2_addr.h</a>
<li>AXIS2_WSA_POLICIES
: <a class="el" href="group__axis2__addr__consts.html#ge70b4a9e6cbf4bed35ea66db740dcd14">axis2_addr.h</a>
<li>AXIS2_WSA_PREFIX_ACTION
: <a class="el" href="group__axis2__addr__consts.html#g1feded3e9bbc7913c3a2abc895bf9844">axis2_addr.h</a>
<li>AXIS2_WSA_PREFIX_FAULT_TO
: <a class="el" href="group__axis2__addr__consts.html#g491048fb85ab2213d9df72cb1c1a6ca0">axis2_addr.h</a>
<li>AXIS2_WSA_PREFIX_MESSAGE_ID
: <a class="el" href="group__axis2__addr__consts.html#g02319f4c933bec23d60e64376ef6c926">axis2_addr.h</a>
<li>AXIS2_WSA_PREFIX_REPLY_TO
: <a class="el" href="group__axis2__addr__consts.html#g4ea0451331116aef7a25dfd57091ddeb">axis2_addr.h</a>
<li>AXIS2_WSA_PREFIX_TO
: <a class="el" href="group__axis2__addr__consts.html#gfc85ee803652f7b516adce75a32d195e">axis2_addr.h</a>
<li>AXIS2_WSA_RELATES_TO
: <a class="el" href="group__axis2__addr__consts.html#gd5e65fcd5241c76c23a50f846441266a">axis2_addr.h</a>
<li>AXIS2_WSA_RELATES_TO_RELATIONSHIP_TYPE
: <a class="el" href="group__axis2__addr__consts.html#ga475c2e10b1d601b02a2f8be25ed5ab9">axis2_addr.h</a>
<li>AXIS2_WSA_RELATES_TO_RELATIONSHIP_TYPE_DEFAULT_VALUE
: <a class="el" href="group__axis2__addr__consts.html#g540bf85e886e5f00dc4ba2c84673be19">axis2_addr.h</a>
<li>AXIS2_WSA_RELATES_TO_RELATIONSHIP_TYPE_DEFAULT_VALUE_SUBMISSION
: <a class="el" href="group__axis2__addr__consts.html#g96acda046fde6398ecd5c494b5feb1ab">axis2_addr.h</a>
<li>AXIS2_WSA_REPLY_TO
: <a class="el" href="group__axis2__addr__consts.html#g4c2fe672174cb7f77f5fc68e7c78249a">axis2_addr.h</a>
<li>AXIS2_WSA_SERVICE_NAME_ENDPOINT_NAME
: <a class="el" href="group__axis2__addr__consts.html#gc92b4d9b87dc12c105b8578dcf586c79">axis2_addr.h</a>
<li>AXIS2_WSA_TO
: <a class="el" href="group__axis2__addr__consts.html#ga03c11932fc77dffe74a333717adfab7">axis2_addr.h</a>
<li>AXIS2_WSA_TYPE_ATTRIBUTE_VALUE
: <a class="el" href="group__axis2__addr__consts.html#g170975fbb730fc9f4ef77012b6dd9db7">axis2_addr.h</a>
<li>AXIS2_WSA_VERSION
: <a class="el" href="group__axis2__addr__consts.html#g297643cc83960855fedf77da10dfee07">axis2_addr.h</a>
</ul>
<h3><a class="anchor" name="index_e">- e -</a></h3><ul>
<li>EPR_ADDRESS
: <a class="el" href="group__axis2__addr__consts.html#g50b15986d08ce1bb6cb8a3d3b9551449">axis2_addr.h</a>
<li>EPR_PORT_TYPE
: <a class="el" href="group__axis2__addr__consts.html#g08e974b9cc0517032404490c7e4a4c24">axis2_addr.h</a>
<li>EPR_REFERENCE_PARAMETERS
: <a class="el" href="group__axis2__addr__consts.html#g72037ab1241ed326161516f373649416">axis2_addr.h</a>
<li>EPR_REFERENCE_PROPERTIES
: <a class="el" href="group__axis2__addr__consts.html#g4e4e093ba53c71df53a2a3a641192577">axis2_addr.h</a>
<li>EPR_SERVICE_NAME
: <a class="el" href="group__axis2__addr__consts.html#ga8706ee876df13fee596dd3d3b90fb55">axis2_addr.h</a>
<li>EPR_SERVICE_NAME_PORT_NAME
: <a class="el" href="group__axis2__addr__consts.html#g58f5d3de5e39fc0722adca9514731fd7">axis2_addr.h</a>
</ul>
<h3><a class="anchor" name="index_p">- p -</a></h3><ul>
<li>PARAM_SERVICE_GROUP_CONTEXT_ID
: <a class="el" href="group__axis2__addr__consts.html#g1580e5c766744e70e754e9515b0b781f">axis2_addr.h</a>
</ul>
<hr size="1"><address style="text-align: right;"><small>Generated on Fri Apr 17 11:49:48 2009 for Axis2/C by&nbsp;
<a href="http://www.doxygen.org/index.html">
<img src="doxygen.png" alt="doxygen" align="middle" border="0"></a> 1.5.3 </small></address>
</body>
</html>


<|start_filename|>xdocs/api/html/axiom__soap_8h.html<|end_filename|>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html><head><meta http-equiv="Content-Type" content="text/html;charset=UTF-8">
<title>Axis2/C: axiom_soap.h File Reference</title>
<link href="doxygen.css" rel="stylesheet" type="text/css">
<link href="tabs.css" rel="stylesheet" type="text/css">
</head><body>
<!-- Generated by Doxygen 1.5.3 -->
<div class="tabs">
  <ul>
    <li><a href="index.html"><span>Main&nbsp;Page</span></a></li>
    <li><a href="modules.html"><span>Modules</span></a></li>
    <li><a href="annotated.html"><span>Classes</span></a></li>
    <li class="current"><a href="files.html"><span>Files</span></a></li>
    <li><a href="dirs.html"><span>Directories</span></a></li>
    <li><a href="pages.html"><span>Related&nbsp;Pages</span></a></li>
    <li><a href="examples.html"><span>Examples</span></a></li>
    <li>
      <form action="search.php" method="get">
        <table cellspacing="0" cellpadding="0" border="0">
          <tr>
            <td><label>&nbsp;<u>S</u>earch&nbsp;for&nbsp;</label></td>
            <td><input type="text" name="query" value="" size="20" accesskey="s"/></td>
          </tr>
        </table>
      </form>
    </li>
  </ul>
</div>
<div class="nav">
<a class="el" href="dir_f60961de8e5edc3b2658ef023e959e45.html">deploy</a>&nbsp;&raquo&nbsp;<a class="el" href="dir_6b4e91e54b7316b376882a6402adbf44.html">include</a>&nbsp;&raquo&nbsp;<a class="el" href="dir_df3a7695d5a9e696f30b948b566829e7.html">axis2-1.6.0</a></div>
<h1>axiom_soap.h File Reference</h1>includes all SOAP related headers <a href="#_details">More...</a>
<p>
<code>#include &lt;<a class="el" href="axiom__soap__body_8h-source.html">axiom_soap_body.h</a>&gt;</code><br>
<code>#include &lt;<a class="el" href="axiom__soap__builder_8h-source.html">axiom_soap_builder.h</a>&gt;</code><br>
<code>#include &lt;axiom_soap_const.h&gt;</code><br>
<code>#include &lt;<a class="el" href="axiom__soap__envelope_8h-source.html">axiom_soap_envelope.h</a>&gt;</code><br>
<code>#include &lt;<a class="el" href="axiom__soap__fault__code_8h-source.html">axiom_soap_fault_code.h</a>&gt;</code><br>
<code>#include &lt;<a class="el" href="axiom__soap__fault__detail_8h-source.html">axiom_soap_fault_detail.h</a>&gt;</code><br>
<code>#include &lt;<a class="el" href="axiom__soap__fault_8h-source.html">axiom_soap_fault.h</a>&gt;</code><br>
<code>#include &lt;<a class="el" href="axiom__soap__fault__node_8h-source.html">axiom_soap_fault_node.h</a>&gt;</code><br>
<code>#include &lt;<a class="el" href="axiom__soap__fault__reason_8h-source.html">axiom_soap_fault_reason.h</a>&gt;</code><br>
<code>#include &lt;<a class="el" href="axiom__soap__fault__role_8h-source.html">axiom_soap_fault_role.h</a>&gt;</code><br>
<code>#include &lt;<a class="el" href="axiom__soap__fault__sub__code_8h-source.html">axiom_soap_fault_sub_code.h</a>&gt;</code><br>
<code>#include &lt;<a class="el" href="axiom__soap__fault__text_8h-source.html">axiom_soap_fault_text.h</a>&gt;</code><br>
<code>#include &lt;<a class="el" href="axiom__soap__fault__value_8h-source.html">axiom_soap_fault_value.h</a>&gt;</code><br>
<code>#include &lt;<a class="el" href="axiom__soap__header__block_8h-source.html">axiom_soap_header_block.h</a>&gt;</code><br>
<code>#include &lt;<a class="el" href="axiom__soap__header_8h-source.html">axiom_soap_header.h</a>&gt;</code><br>

<p>
<a href="axiom__soap_8h-source.html">Go to the source code of this file.</a><table border="0" cellpadding="0" cellspacing="0">
<tr><td></td></tr>
</table>
<hr><a name="_details"></a><h2>Detailed Description</h2>
includes all SOAP related headers 
<p>
defines SOAP constants<hr size="1"><address style="text-align: right;"><small>Generated on Fri Apr 17 11:49:43 2009 for Axis2/C by&nbsp;
<a href="http://www.doxygen.org/index.html">
<img src="doxygen.png" alt="doxygen" align="middle" border="0"></a> 1.5.3 </small></address>
</body>
</html>


<|start_filename|>src/core/engine/conf.c<|end_filename|>

/*
 * 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.
 */

#include <string.h>
#include <axis2_disp.h>
#include "axis2_disp_checker.h"
#include <axis2_conf.h>
#include <axutil_dir_handler.h>
#include <axis2_dep_engine.h>
#include <axis2_arch_reader.h>
#include <axis2_core_utils.h>

struct axis2_conf
{
    axutil_hash_t *svc_grps;
    axis2_transport_in_desc_t *transports_in[AXIS2_TRANSPORT_ENUM_MAX];
    axis2_transport_out_desc_t *transports_out[AXIS2_TRANSPORT_ENUM_MAX];

    /**
     * All the modules already engaged can be found here.
     */
    axutil_array_list_t *engaged_module_list;

    /*To store all the available modules (including version) */
    axutil_hash_t *all_modules;

    /*To store mapping between default version to module name */
    axutil_hash_t *name_to_version_map;
    axutil_array_list_t *out_phases;
    axutil_array_list_t *in_fault_phases;
    axutil_array_list_t *out_fault_phases;

    /* All the system specific phases are stored here */
    axutil_array_list_t *in_phases_upto_and_including_post_dispatch;

    axis2_phases_info_t *phases_info;
    axutil_hash_t *all_svcs;
    axutil_hash_t *all_init_svcs;
    axutil_hash_t *msg_recvs;
    axutil_hash_t *faulty_svcs;
    axutil_hash_t *faulty_modules;
    axis2_char_t *axis2_repo;
	axis2_char_t *axis2_xml;
    axis2_dep_engine_t *dep_engine;
    axutil_array_list_t *handlers;
    axis2_bool_t enable_mtom;
    /*This is used in rampart */
    axis2_bool_t enable_security;

    /** Configuration parameter container */
    axutil_param_container_t *param_container;

    /** Base description struct */
    axis2_desc_t *base;
	
	/** Mark whether conf is built using axis2 xml*/
	axis2_bool_t axis2_flag;

    /* This is a hack to keep rampart_context at client side */
    void *security_context;
};

AXIS2_EXTERN axis2_conf_t *AXIS2_CALL
axis2_conf_create(
    const axutil_env_t * env)
{
    axis2_conf_t *conf = NULL;
    axis2_status_t status = AXIS2_FAILURE;
    axis2_phase_t *phase = NULL;
    int i = 0;

    AXIS2_ENV_CHECK(env, NULL);

    conf = (axis2_conf_t *) AXIS2_MALLOC(env->allocator, sizeof(axis2_conf_t));

    if (!conf)
    {
        AXIS2_ERROR_SET(env->error, AXIS2_ERROR_NO_MEMORY, AXIS2_FAILURE);
        AXIS2_LOG_ERROR(env->log, AXIS2_LOG_SI, "No memory");
        return NULL;
    }

	memset ((void *)conf, 0, sizeof (axis2_conf_t));

    conf->enable_mtom = AXIS2_FALSE;
    conf->enable_security = AXIS2_FALSE;
	conf->axis2_flag = AXIS2_FALSE;

    conf->param_container = (axutil_param_container_t *) axutil_param_container_create(env);
    if (!conf->param_container)
    {
        axis2_conf_free(conf, env);
        AXIS2_ERROR_SET(env->error, AXIS2_ERROR_NO_MEMORY, AXIS2_FAILURE);
        AXIS2_LOG_ERROR(env->log, AXIS2_LOG_SI, "Creating parameter container failed");
        return NULL;
    }

    conf->svc_grps = axutil_hash_make(env);
    if (!conf->svc_grps)
    {
        axis2_conf_free(conf, env);
        AXIS2_ERROR_SET(env->error, AXIS2_ERROR_NO_MEMORY, AXIS2_FAILURE);
        AXIS2_LOG_ERROR(env->log, AXIS2_LOG_SI, "Creating service group map failed");
        return NULL;
    }

    for (i = 0; i < AXIS2_TRANSPORT_ENUM_MAX; i++)
    {
        conf->transports_in[i] = NULL;
    }

    for (i = 0; i < AXIS2_TRANSPORT_ENUM_MAX; i++)
    {
        conf->transports_out[i] = NULL;
    }

    conf->engaged_module_list = axutil_array_list_create(env, 0);
    if (!conf->engaged_module_list)
    {
        axis2_conf_free(conf, env);
        AXIS2_ERROR_SET(env->error, AXIS2_ERROR_NO_MEMORY, AXIS2_FAILURE);
        AXIS2_LOG_ERROR(env->log, AXIS2_LOG_SI, "Creating engaged module list failed");
        return NULL;
    }

    conf->handlers = axutil_array_list_create(env, 0);
    if (!conf->handlers)
    {
        axis2_conf_free(conf, env);
        AXIS2_ERROR_SET(env->error, AXIS2_ERROR_NO_MEMORY, AXIS2_FAILURE);
        AXIS2_LOG_ERROR(env->log, AXIS2_LOG_SI, "Creating handler list failed");
        return NULL;
    }

    conf->in_phases_upto_and_including_post_dispatch = axutil_array_list_create(env, 0);
    if (!conf->in_phases_upto_and_including_post_dispatch)
    {
        axis2_conf_free(conf, env);
        AXIS2_ERROR_SET(env->error, AXIS2_ERROR_NO_MEMORY, AXIS2_FAILURE);

        AXIS2_LOG_ERROR(env->log, AXIS2_LOG_SI, 
                "Creating in phases list upto and including post dispatch failed");

        return NULL;
    }
    else
    {
        axis2_disp_t *uri_dispatch = NULL;
        axis2_disp_t *add_dispatch = NULL;

        phase = axis2_phase_create(env, AXIS2_PHASE_TRANSPORT_IN);
        if (!phase)
        {
            axis2_conf_free(conf, env);
            AXIS2_LOG_ERROR(env->log, AXIS2_LOG_SI, "Creating phase %s failed", 
                    AXIS2_PHASE_TRANSPORT_IN);

            return NULL;
        }

        /* In case of using security we need to find the service/operation parameters before the 
         * dispatch phase. This is required to give parameters to the security inflow.*/

        uri_dispatch = axis2_req_uri_disp_create(env);
        if (uri_dispatch)
        {
            axis2_handler_t *handler = NULL;
            handler = axis2_disp_get_base(uri_dispatch, env);
            axis2_disp_free(uri_dispatch, env);
            axis2_phase_add_handler_at(phase, env, 0, handler);
            axutil_array_list_add(conf->handlers, env,
                                  axis2_handler_get_handler_desc(handler, env));
        }

        add_dispatch = axis2_addr_disp_create(env);
        if (add_dispatch)
        {
            axis2_handler_t *handler = NULL;
            handler = axis2_disp_get_base(add_dispatch, env);
            axis2_disp_free(add_dispatch, env);
            axis2_phase_add_handler_at(phase, env, 1, handler);
            axutil_array_list_add(conf->handlers, env,
                                  axis2_handler_get_handler_desc(handler, env));
        }
        status = axutil_array_list_add(conf->
                                       in_phases_upto_and_including_post_dispatch,
                                       env, phase);
        if (AXIS2_FAILURE == status)
        {
            axis2_conf_free(conf, env);
            axis2_phase_free(phase, env);
            AXIS2_LOG_ERROR(env->log, AXIS2_LOG_SI, 
                "Adding phase %s into in phases upto and including post "\
                "dispatch list failed", AXIS2_PHASE_TRANSPORT_IN);
            return NULL;

        }

        phase = axis2_phase_create(env, AXIS2_PHASE_PRE_DISPATCH);
        if (!phase)
        {
            axis2_conf_free(conf, env);
            AXIS2_LOG_ERROR(env->log, AXIS2_LOG_SI, "Creating phase %s failed", 
                AXIS2_PHASE_PRE_DISPATCH);
            return NULL;
        }
        status = axutil_array_list_add(conf->
                                       in_phases_upto_and_including_post_dispatch,
                                       env, phase);
        if (AXIS2_FAILURE == status)
        {
            axis2_conf_free(conf, env);
            axis2_phase_free(phase, env);
            AXIS2_LOG_ERROR(env->log, AXIS2_LOG_SI, 
                "Adding phase %s into in phases upto and including post "\
                "dispatch list failed", AXIS2_PHASE_PRE_DISPATCH);
            return NULL;
        }
    }

    conf->all_svcs = axutil_hash_make(env);
    if (!conf->all_svcs)
    {
        axis2_conf_free(conf, env);
        AXIS2_ERROR_SET(env->error, AXIS2_ERROR_NO_MEMORY, AXIS2_FAILURE);
        AXIS2_LOG_ERROR(env->log, AXIS2_LOG_SI, 
            "Creating all services map failed");
        return NULL;
    }

    conf->all_init_svcs = axutil_hash_make(env);
    if (!conf->all_init_svcs)
    {
        axis2_conf_free(conf, env);
        AXIS2_ERROR_SET(env->error, AXIS2_ERROR_NO_MEMORY, AXIS2_FAILURE);
        AXIS2_LOG_ERROR(env->log, AXIS2_LOG_SI, 
            "Creating all init services map failed");
        return NULL;
    }

    conf->msg_recvs = axutil_hash_make(env);
    if (!conf->msg_recvs)
    {
        axis2_conf_free(conf, env);
        AXIS2_ERROR_SET(env->error, AXIS2_ERROR_NO_MEMORY, AXIS2_FAILURE);
        AXIS2_LOG_ERROR(env->log, AXIS2_LOG_SI, 
            "Creating message receivers map failed.");
        return NULL;
    }

    conf->faulty_svcs = axutil_hash_make(env);
    if (!conf->faulty_svcs)
    {
        axis2_conf_free(conf, env);
        AXIS2_ERROR_SET(env->error, AXIS2_ERROR_NO_MEMORY, AXIS2_FAILURE);
        AXIS2_LOG_ERROR(env->log, AXIS2_LOG_SI, 
            "Creating fault services map failed");
        return NULL;
    }

    conf->faulty_modules = axutil_hash_make(env);
    if (!conf->faulty_modules)
    {
        axis2_conf_free(conf, env);
        AXIS2_ERROR_SET(env->error, AXIS2_ERROR_NO_MEMORY, AXIS2_FAILURE);
        AXIS2_LOG_ERROR(env->log, AXIS2_LOG_SI, 
            "Creating fault modules map failed");
        return NULL;
    }

    conf->all_modules = axutil_hash_make(env);
    if (!conf->all_modules)
    {
        axis2_conf_free(conf, env);
        AXIS2_ERROR_SET(env->error, AXIS2_ERROR_NO_MEMORY, AXIS2_FAILURE);
        AXIS2_LOG_ERROR(env->log, AXIS2_LOG_SI, 
            "Creating all modules map failed");
        return NULL;
    }

    conf->name_to_version_map = axutil_hash_make(env);
    if (!conf->name_to_version_map)
    {
        axis2_conf_free(conf, env);
        AXIS2_ERROR_SET(env->error, AXIS2_ERROR_NO_MEMORY, AXIS2_FAILURE);
        AXIS2_LOG_ERROR(env->log, AXIS2_LOG_SI, 
            "Creating name to version map failed");
        return NULL;
    }

    conf->base = axis2_desc_create(env);
    if (!conf->base)
    {
        axis2_conf_free(conf, env);
        AXIS2_LOG_ERROR(env->log, AXIS2_LOG_SI, 
            "Creating Axis2 configuration base description failed");
        return NULL;
    }

    return conf;
}

AXIS2_EXTERN void AXIS2_CALL
axis2_conf_free(
    axis2_conf_t * conf,
    const axutil_env_t * env)
{
    int i = 0;

    if (conf->param_container)
    {
        axutil_param_container_free(conf->param_container, env);
    }

    if (conf->svc_grps)
    {
        axutil_hash_index_t *hi = NULL;
        void *val = NULL;
        for (hi = axutil_hash_first(conf->svc_grps, env); hi;
             hi = axutil_hash_next(env, hi))
        {
            axis2_svc_grp_t *svc_grp = NULL;
            axutil_hash_this(hi, NULL, NULL, &val);
            svc_grp = (axis2_svc_grp_t *) val;
            if (svc_grp)
                axis2_svc_grp_free(svc_grp, env);
        }
        axutil_hash_free(conf->svc_grps, env);
    }

    for (i = 0; i < AXIS2_TRANSPORT_ENUM_MAX; i++)
    {
        if (conf->transports_in[i])
        {
            axis2_transport_in_desc_free(conf->transports_in[i], env);
        }
    }

    for (i = 0; i < AXIS2_TRANSPORT_ENUM_MAX; i++)
    {
        if (conf->transports_out[i])
        {
            axis2_transport_out_desc_free(conf->transports_out[i], env);
        }
    }

    if (conf->dep_engine)
    {
        axis2_dep_engine_free(conf->dep_engine, env);
    }

    if (conf->all_modules)
    {
        axutil_hash_index_t *hi = NULL;
        void *val = NULL;
        for (hi = axutil_hash_first(conf->all_modules, env); hi;
             hi = axutil_hash_next(env, hi))
        {
            axis2_module_desc_t *module_desc = NULL;

            axutil_hash_this(hi, NULL, NULL, &val);
            module_desc = (axis2_module_desc_t *) val;
            if (module_desc)
            {
                axis2_module_desc_free(module_desc, env);
            }
        }
        axutil_hash_free(conf->all_modules, env);
    }

    if (conf->name_to_version_map)
    {
        axutil_hash_index_t *hi = NULL;
        void *val = NULL;
        for (hi = axutil_hash_first(conf->name_to_version_map, env); hi;
             hi = axutil_hash_next(env, hi))
        {
            axis2_char_t *module_ver = NULL;

            axutil_hash_this(hi, NULL, NULL, &val);
            module_ver = (axis2_char_t *) val;
            if (module_ver)
            {
                AXIS2_FREE(env->allocator, module_ver);
            }
        }
        axutil_hash_free(conf->name_to_version_map, env);
    }

    if (conf->engaged_module_list)
    {
        int i = 0;
        for (i = 0; i < axutil_array_list_size(conf->engaged_module_list, env); i++)
        {
            axutil_qname_t *module_desc_qname = NULL;
            module_desc_qname = (axutil_qname_t *)
                axutil_array_list_get(conf->engaged_module_list, env, i);
            if (module_desc_qname)
                axutil_qname_free(module_desc_qname, env);
        }
        axutil_array_list_free(conf->engaged_module_list, env);
    }

    if (conf->out_phases)
    {
        int i = 0;
        for (i = 0; i < axutil_array_list_size(conf->out_phases, env); i++)
        {
            axis2_phase_t *phase = NULL;
            phase = (axis2_phase_t *)
                axutil_array_list_get(conf->out_phases, env, i);
            if (phase)
                axis2_phase_free(phase, env);
        }
        axutil_array_list_free(conf->out_phases, env);
    }

    if (conf->in_fault_phases)
    {
        int i = 0;
        for (i = 0; i < axutil_array_list_size(conf->in_fault_phases, env); i++)
        {
            axis2_phase_t *phase = NULL;
            phase = (axis2_phase_t *)
                axutil_array_list_get(conf->in_fault_phases, env, i);
            if (phase)
                axis2_phase_free(phase, env);
        }
        axutil_array_list_free(conf->in_fault_phases, env);
    }

    if (conf->out_fault_phases)
    {
        /*This is added because in a recent change this is cloned. */

        int i = 0;
        for (i = 0; i < axutil_array_list_size(conf->out_fault_phases, env);
             i++)
        {
            axis2_phase_t *phase = NULL;
            phase = (axis2_phase_t *)
                axutil_array_list_get(conf->out_fault_phases, env, i);
            if (phase)
                axis2_phase_free(phase, env);
        }

        axutil_array_list_free(conf->out_fault_phases, env);
    }

    if (conf->in_phases_upto_and_including_post_dispatch)
    {
        int i = 0;
        for (i = 0; i < axutil_array_list_size(conf->
                                   in_phases_upto_and_including_post_dispatch,
                                   env); i++)
        {
            axis2_phase_t *phase = NULL;
            phase = (axis2_phase_t *) axutil_array_list_get(conf->
                                    in_phases_upto_and_including_post_dispatch,
                                    env, i);

            if (phase)
                axis2_phase_free(phase, env);
        }
        axutil_array_list_free(conf->
                               in_phases_upto_and_including_post_dispatch, env);
    }

    if (conf->all_svcs)
    {
        axutil_hash_free(conf->all_svcs, env);
    }

    if (conf->all_init_svcs)
    {
        axutil_hash_free(conf->all_init_svcs, env);
    }

    if (conf->msg_recvs)
    {
        axutil_hash_index_t *hi = NULL;
        void *val = NULL;
        for (hi = axutil_hash_first(conf->msg_recvs, env); hi;
             hi = axutil_hash_next(env, hi))
        {
            axis2_msg_recv_t *msg_recv = NULL;
            axutil_hash_this(hi, NULL, NULL, &val);
            msg_recv = (axis2_msg_recv_t *) val;
            if (msg_recv)
            {
                axis2_msg_recv_free(msg_recv, env);
                msg_recv = NULL;
            }
        }
        axutil_hash_free(conf->msg_recvs, env);
    }

    if (conf->faulty_svcs)
    {
        axutil_hash_free(conf->faulty_svcs, env);
    }

    if (conf->faulty_modules)
    {
        axutil_hash_index_t *hi = NULL;
        void *val = NULL;
        for (hi = axutil_hash_first(conf->faulty_modules, env); hi;
             hi = axutil_hash_next(env, hi))
        {
            axis2_module_desc_t *module_desc = NULL;
            axutil_hash_this(hi, NULL, NULL, &val);
            module_desc = (axis2_module_desc_t *) val;
            if (module_desc)
                axis2_module_desc_free(module_desc, env);
        }
        axutil_hash_free(conf->faulty_modules, env);
    }

    if (conf->handlers)
    {
        int i = 0;
        for (i = 0; i < axutil_array_list_size(conf->handlers, env); i++)
        {
            axis2_handler_desc_t *handler_desc = NULL;
            handler_desc = (axis2_handler_desc_t *)
                axutil_array_list_get(conf->handlers, env, i);

            if (handler_desc)
                axis2_handler_desc_free(handler_desc, env);
        }
        axutil_array_list_free(conf->handlers, env);
    }

    if (conf->axis2_repo)
    {
        AXIS2_FREE(env->allocator, conf->axis2_repo);
    }

    if (conf->base)
    {
        axis2_desc_free(conf->base, env);
    }

    if (conf->axis2_xml)
    {
        AXIS2_FREE (env->allocator, conf->axis2_xml);
    }

    if (conf)
    {
        AXIS2_FREE(env->allocator, conf);
    }

    return;
}

AXIS2_EXTERN axis2_status_t AXIS2_CALL
axis2_conf_add_svc_grp(
    axis2_conf_t * conf,
    const axutil_env_t * env,
    axis2_svc_grp_t * svc_grp)
{
    axutil_hash_t *svcs = NULL;
    axutil_hash_index_t *index_i = NULL;
    axis2_char_t *svc_name = NULL;
    const axis2_char_t *svc_grp_name = NULL;
    int k = 0;

    AXIS2_PARAM_CHECK(env->error, svc_grp, AXIS2_FAILURE);

    svcs = axis2_svc_grp_get_all_svcs(svc_grp, env);
    if (!conf->all_svcs)
    {
        conf->all_svcs = axutil_hash_make(env);
        if (!conf->all_svcs)
        {
            AXIS2_LOG_ERROR(env->log, AXIS2_LOG_SI, "Creating all services map failed");
            return AXIS2_FAILURE;
        }
    }

    k = axutil_hash_count(svcs);
    index_i = axutil_hash_first(svcs, env);
    while (index_i)
    {
        void *value = NULL;
        axis2_svc_t *desc = NULL;
        axis2_svc_t *temp_svc = NULL;
        const axutil_qname_t *svc_qname = NULL;

        axutil_hash_this(index_i, NULL, NULL, &value);
        desc = (axis2_svc_t *) value;
        svc_qname = axis2_svc_get_qname(desc, env);
        svc_name = axutil_qname_get_localpart(svc_qname, env);

        temp_svc = axutil_hash_get(conf->all_svcs, svc_name, AXIS2_HASH_KEY_STRING);

        /* No two service names deployed in the engine can be same */
        if (temp_svc)
        {
            AXIS2_ERROR_SET(env->error, AXIS2_ERROR_TWO_SVCS_CANNOT_HAVE_SAME_NAME, AXIS2_FAILURE);
            AXIS2_LOG_ERROR(env->log, AXIS2_LOG_SI, 
                "There is already a service called %s in the all services list of axis2 configuration.", 
                svc_name);

            return AXIS2_FAILURE;
        }

        index_i = axutil_hash_next(env, index_i);
    }

    svcs = axis2_svc_grp_get_all_svcs(svc_grp, env);
    index_i = axutil_hash_first(svcs, env);

    while (index_i)
    {
        void *value = NULL;
        axis2_svc_t *desc = NULL;

        axutil_hash_this(index_i, NULL, NULL, &value);
        desc = (axis2_svc_t *) value;
        svc_name = axutil_qname_get_localpart(axis2_svc_get_qname(desc, env), env);
        axutil_hash_set(conf->all_svcs, svc_name, AXIS2_HASH_KEY_STRING, desc);
        index_i = axutil_hash_next(env, index_i);
    }

    svc_grp_name = axis2_svc_grp_get_name(svc_grp, env);
    if (!conf->svc_grps)
    {
        conf->svc_grps = axutil_hash_make(env);
        if (!conf->svc_grps)
        {
            AXIS2_LOG_ERROR(env->log, AXIS2_LOG_SI, "Creating service group map failed");
            return AXIS2_FAILURE;
        }
    }

    axutil_hash_set(conf->svc_grps, svc_grp_name, AXIS2_HASH_KEY_STRING, svc_grp);

    return AXIS2_SUCCESS;
}

AXIS2_EXTERN axis2_svc_grp_t *AXIS2_CALL
axis2_conf_get_svc_grp(
    const axis2_conf_t * conf,
    const axutil_env_t * env,
    const axis2_char_t * svc_grp_name)
{
    AXIS2_PARAM_CHECK(env->error, svc_grp_name, NULL);

    if (!conf->svc_grps)
    {
        AXIS2_ERROR_SET(env->error, AXIS2_ERROR_INVALID_STATE_CONF,
                        AXIS2_FAILURE);
        AXIS2_LOG_ERROR(env->log, AXIS2_LOG_SI, 
            "Axis2 configuration does not contain a service group map");
        return NULL;
    }
    return (axis2_svc_grp_t *) (axutil_hash_get(conf->svc_grps,
                                                svc_grp_name,
                                                AXIS2_HASH_KEY_STRING));
}

AXIS2_EXTERN axutil_hash_t *AXIS2_CALL
axis2_conf_get_all_svc_grps(
    const axis2_conf_t * conf,
    const axutil_env_t * env)
{
    return conf->svc_grps;
}

AXIS2_EXTERN axis2_status_t AXIS2_CALL
axis2_conf_add_svc(
    axis2_conf_t * conf,
    const axutil_env_t * env,
    axis2_svc_t * svc)
{
    axis2_phase_resolver_t *phase_resolver = NULL;
    axis2_svc_grp_t *svc_grp = NULL;
    const axis2_char_t *svc_grp_name = NULL;
    axis2_status_t status = AXIS2_FAILURE;

    AXIS2_PARAM_CHECK(env->error, svc, AXIS2_FAILURE);

    /* We need to first create a service group with the same name as the 
     * service and make it the parent of service */
    svc_grp_name = axis2_svc_get_name(svc, env);
    if (!svc_grp_name)
    {
        AXIS2_LOG_ERROR(env->log, AXIS2_LOG_SI, "Service has no name set");

        return AXIS2_FAILURE;
    }

    svc_grp = axis2_svc_grp_create(env);
    if (!svc_grp)
    {
        AXIS2_ERROR_SET(env->error, AXIS2_ERROR_NO_MEMORY, AXIS2_FAILURE);
        AXIS2_LOG_ERROR(env->log, AXIS2_LOG_SI, 
            "Creating service group as parent of service %s failed", svc_grp_name);

            return AXIS2_FAILURE;
    }

    status = axis2_svc_grp_set_name(svc_grp, env, svc_grp_name);
    if (AXIS2_SUCCESS != status)
    {
        AXIS2_LOG_ERROR(env->log, AXIS2_LOG_SI, 
            "Setting name to service group failed");
        return status;
    }

    status = axis2_svc_grp_set_parent(svc_grp, env, conf);
    if (AXIS2_SUCCESS != status)
    {
        AXIS2_LOG_ERROR(env->log, AXIS2_LOG_SI, 
            "Setting parent to service group %s failed", svc_grp_name);

        return status;
    }

    phase_resolver = axis2_phase_resolver_create_with_config_and_svc(env, conf, svc);

    if (!phase_resolver)
    {
        AXIS2_LOG_ERROR(env->log, AXIS2_LOG_SI, "Creating phase resolver failed for service %s", 
                axis2_svc_get_name(svc, env));

        return AXIS2_FAILURE;
    }

    status = axis2_phase_resolver_build_execution_chains_for_svc(phase_resolver, env);
    axis2_phase_resolver_free(phase_resolver, env);
    if (AXIS2_SUCCESS != status)
    {
        AXIS2_LOG_ERROR(env->log, AXIS2_LOG_SI, 
            "Building chains failed within phase resolver for service %s", axis2_svc_get_name(svc, env));

        return status;
    }

    status = axis2_svc_grp_add_svc(svc_grp, env, svc);

    if (AXIS2_SUCCESS != status)
    {
        AXIS2_LOG_ERROR(env->log, AXIS2_LOG_SI, 
            "Adding service %s to service group %s failed", svc_grp_name, svc_grp_name);

        return status;
    }

    status = axis2_conf_add_svc_grp(conf, env, svc_grp);

    return status;
}

AXIS2_EXTERN axis2_svc_t *AXIS2_CALL
axis2_conf_get_svc(
    const axis2_conf_t * conf,
    const axutil_env_t * env,
    const axis2_char_t * svc_name)
{
    AXIS2_PARAM_CHECK(env->error, svc_name, NULL);

    return axutil_hash_get(conf->all_svcs, svc_name, AXIS2_HASH_KEY_STRING);
}

AXIS2_EXTERN axis2_status_t AXIS2_CALL
axis2_conf_remove_svc(
    axis2_conf_t * conf,
    const axutil_env_t * env,
    const axis2_char_t * svc_name)
{
    AXIS2_PARAM_CHECK(env->error, svc_name, AXIS2_FAILURE);

    axutil_hash_set(conf->all_svcs, svc_name, AXIS2_HASH_KEY_STRING, NULL);
    return AXIS2_SUCCESS;
}

AXIS2_EXTERN axis2_status_t AXIS2_CALL
axis2_conf_add_param(
    axis2_conf_t * conf,
    const axutil_env_t * env,
    axutil_param_t * param)
{
    axis2_status_t status = AXIS2_FAILURE;
    axis2_char_t *param_name = axutil_param_get_name(param, env);

    AXIS2_PARAM_CHECK(env->error, param, AXIS2_FAILURE);

    if (axis2_conf_is_param_locked(conf, env, param_name))
    {
        AXIS2_ERROR_SET(env->error,
                        AXIS2_ERROR_PARAMETER_LOCKED_CANNOT_OVERRIDE,
                        AXIS2_FAILURE);
        AXIS2_LOG_ERROR(env->log, AXIS2_LOG_SI, 
            "Parameter %s is locked for Axis2 configuration", param_name);
        return AXIS2_FAILURE;
    }
    else
    {
        status = axutil_param_container_add_param(conf->param_container, env,
                                                  param);
    }
    return status;
}

AXIS2_EXTERN axutil_param_t *AXIS2_CALL
axis2_conf_get_param(
    const axis2_conf_t * conf,
    const axutil_env_t * env,
    const axis2_char_t * name)
{
    AXIS2_PARAM_CHECK(env->error, name, NULL);

    if (!conf->param_container)
    {
        AXIS2_ERROR_SET(env->error,
                        AXIS2_ERROR_INVALID_STATE_PARAM_CONTAINER,
                        AXIS2_FAILURE);
        AXIS2_LOG_ERROR(env->log, AXIS2_LOG_SI, 
            "Param container is not set in axis2 configuraion");
        return NULL;
    }

    return axutil_param_container_get_param(conf->param_container, env, name);

}

AXIS2_EXTERN axutil_array_list_t *AXIS2_CALL
axis2_conf_get_all_params(
    const axis2_conf_t * conf,
    const axutil_env_t * env)
{
    return axutil_param_container_get_params(conf->param_container, env);

}

AXIS2_EXTERN axis2_bool_t AXIS2_CALL
axis2_conf_is_param_locked(
    const axis2_conf_t * conf,
    const axutil_env_t * env,
    const axis2_char_t * param_name)
{
    axutil_param_t *param = NULL;

    AXIS2_PARAM_CHECK(env->error, param_name, AXIS2_FALSE);

    param = axis2_conf_get_param(conf, env, param_name);
    return (param && axutil_param_is_locked(param, env));
}

AXIS2_EXTERN axis2_transport_in_desc_t *AXIS2_CALL
axis2_conf_get_transport_in(
    const axis2_conf_t * conf,
    const axutil_env_t * env,
    const AXIS2_TRANSPORT_ENUMS trans_enum)
{
    return (axis2_transport_in_desc_t *) conf->transports_in[trans_enum];
}

AXIS2_EXTERN axis2_status_t AXIS2_CALL
axis2_conf_add_transport_in(
    axis2_conf_t * conf,
    const axutil_env_t * env,
    axis2_transport_in_desc_t * transport,
    const AXIS2_TRANSPORT_ENUMS trans_enum)
{
    AXIS2_PARAM_CHECK(env->error, transport, AXIS2_FAILURE);

    conf->transports_in[trans_enum] = transport;

    return AXIS2_SUCCESS;

}

AXIS2_EXTERN axis2_transport_out_desc_t *AXIS2_CALL
axis2_conf_get_transport_out(
    const axis2_conf_t * conf,
    const axutil_env_t * env,
    const AXIS2_TRANSPORT_ENUMS trans_enum)
{
    return conf->transports_out[trans_enum];
}

AXIS2_EXTERN axis2_status_t AXIS2_CALL
axis2_conf_add_transport_out(
    axis2_conf_t * conf,
    const axutil_env_t * env,
    axis2_transport_out_desc_t * transport,
    const AXIS2_TRANSPORT_ENUMS trans_enum)
{
    AXIS2_PARAM_CHECK(env->error, transport, AXIS2_FAILURE);

    conf->transports_out[trans_enum] = transport;

    return AXIS2_SUCCESS;
}

AXIS2_EXTERN axis2_transport_in_desc_t **AXIS2_CALL
axis2_conf_get_all_in_transports(
    const axis2_conf_t * conf,
    const axutil_env_t * env)
{
    return (axis2_transport_in_desc_t **) conf->transports_in;
}

AXIS2_EXTERN axis2_module_desc_t *AXIS2_CALL
axis2_conf_get_module(
    const axis2_conf_t * conf,
    const axutil_env_t * env,
    const axutil_qname_t * qname)
{
    axis2_char_t *name = NULL;
    axis2_module_desc_t *ret = NULL;
    axis2_char_t *module_name = NULL;
    axutil_qname_t *mod_qname = NULL;
    const axis2_char_t *def_mod_ver = NULL;

    AXIS2_PARAM_CHECK(env->error, qname, NULL);

    name = axutil_qname_to_string((axutil_qname_t *) qname, env);
    ret = (axis2_module_desc_t *) axutil_hash_get(conf->all_modules,
                                                  name, AXIS2_HASH_KEY_STRING);
    if (ret)
    {
        return ret;
    }
    module_name = axutil_qname_get_localpart(qname, env);
    if (!module_name)
    {
        return NULL;
    }
    def_mod_ver = axis2_conf_get_default_module_version(conf, env, module_name);
    mod_qname = axis2_core_utils_get_module_qname(env, name, def_mod_ver);
    if (!mod_qname)
    {
        return NULL;
    }
    name = axutil_qname_to_string(mod_qname, env);
    ret = (axis2_module_desc_t *) axutil_hash_get(conf->all_modules,
                                                  name, AXIS2_HASH_KEY_STRING);
    axutil_qname_free(mod_qname, env);
    mod_qname = NULL;
    return ret;
}

AXIS2_EXTERN axutil_array_list_t *AXIS2_CALL
axis2_conf_get_all_engaged_modules(
    const axis2_conf_t * conf,
    const axutil_env_t * env)
{
    return conf->engaged_module_list;
}

AXIS2_EXTERN axutil_array_list_t *AXIS2_CALL
axis2_conf_get_in_phases_upto_and_including_post_dispatch(
    const axis2_conf_t * conf,
    const axutil_env_t * env)
{
    return conf->in_phases_upto_and_including_post_dispatch;
}

AXIS2_EXTERN axutil_array_list_t *AXIS2_CALL
axis2_conf_get_out_flow(
    const axis2_conf_t * conf,
    const axutil_env_t * env)
{
    return conf->out_phases;
}

AXIS2_EXTERN axutil_array_list_t *AXIS2_CALL
axis2_conf_get_in_fault_flow(
    const axis2_conf_t * conf,
    const axutil_env_t * env)
{
    return conf->in_fault_phases;
}

AXIS2_EXTERN axutil_array_list_t *AXIS2_CALL
axis2_conf_get_out_fault_flow(
    const axis2_conf_t * conf,
    const axutil_env_t * env)
{
    return conf->out_fault_phases;
}

AXIS2_EXTERN axis2_transport_out_desc_t **AXIS2_CALL
axis2_conf_get_all_out_transports(
    const axis2_conf_t * conf,
    const axutil_env_t * env)
{
    return (axis2_transport_out_desc_t **) conf->transports_out;
}

AXIS2_EXTERN axutil_hash_t *AXIS2_CALL
axis2_conf_get_all_faulty_svcs(
    const axis2_conf_t * conf,
    const axutil_env_t * env)
{
    return conf->faulty_svcs;
}

AXIS2_EXTERN axutil_hash_t *AXIS2_CALL
axis2_conf_get_all_faulty_modules(
    const axis2_conf_t * conf,
    const axutil_env_t * env)
{
    return conf->faulty_modules;
}

AXIS2_EXTERN axutil_hash_t *AXIS2_CALL
axis2_conf_get_all_svcs(
    const axis2_conf_t * conf,
    const axutil_env_t * env)
{
    axutil_hash_t *sgs = NULL;
    axutil_hash_index_t *index_i = NULL;
    axutil_hash_index_t *index_j = NULL;
    void *value = NULL;
    void *value2 = NULL;
    axis2_svc_grp_t *axis_svc_grp = NULL;
    axutil_hash_t *svcs = NULL;
    axis2_svc_t *svc = NULL;
    axis2_char_t *svc_name = NULL;

    /* Do we need to do all the following of retrieving all service groups and
     * then add all services from each group to conf->all_svcs and then finally 
     * return conf->all_svcs?. We have already done this when
     * adding each service group to the conf, so just returning conf->all_svcs
     * here would be enough - Damitha */
    sgs = axis2_conf_get_all_svc_grps(conf, env);
    index_i = axutil_hash_first(sgs, env);
    while (index_i)
    {
        axutil_hash_this(index_i, NULL, NULL, &value);
        axis_svc_grp = (axis2_svc_grp_t *) value;
        svcs = axis2_svc_grp_get_all_svcs(axis_svc_grp, env);
        index_j = axutil_hash_first(svcs, env);
        while (index_j)
        {
            axutil_hash_this(index_j, NULL, NULL, &value2);
            svc = (axis2_svc_t *) value2;
            svc_name =
                axutil_qname_get_localpart(axis2_svc_get_qname(svc, env), env);
            axutil_hash_set(conf->all_svcs, svc_name,
                            AXIS2_HASH_KEY_STRING, svc);

            index_j = axutil_hash_next(env, index_j);
        }

        index_i = axutil_hash_next(env, index_i);
    }
    return conf->all_svcs;
}

AXIS2_EXTERN axutil_hash_t *AXIS2_CALL
axis2_conf_get_all_svcs_to_load(
    const axis2_conf_t * conf,
    const axutil_env_t * env)
{
    axutil_hash_t *sgs = NULL;
    axutil_hash_index_t *index_i = NULL;
    axutil_hash_index_t *index_j = NULL;
    void *value = NULL;
    void *value2 = NULL;
    axis2_svc_grp_t *axis_svc_grp = NULL;
    axutil_hash_t *svcs = NULL;
    axis2_svc_t *svc = NULL;
    axis2_char_t *svc_name = NULL;

    sgs = axis2_conf_get_all_svc_grps(conf, env);
    index_i = axutil_hash_first(sgs, env);
    while (index_i)
    {
        axutil_hash_this(index_i, NULL, NULL, &value);
        axis_svc_grp = (axis2_svc_grp_t *) value;
        svcs = axis2_svc_grp_get_all_svcs(axis_svc_grp, env);
        index_j = axutil_hash_first(svcs, env);
        while (index_j)
        {
            axutil_param_t *param = NULL;
            axutil_hash_this(index_j, NULL, NULL, &value2);
            svc = (axis2_svc_t *) value2;
            svc_name =
                axutil_qname_get_localpart(axis2_svc_get_qname(svc, env), env);
            param = axis2_svc_get_param(svc, env, AXIS2_LOAD_SVC_STARTUP);
            if (param)
                axutil_hash_set(conf->all_init_svcs, svc_name,
                                AXIS2_HASH_KEY_STRING, svc);

            index_j = axutil_hash_next(env, index_j);
        }

        index_i = axutil_hash_next(env, index_i);
    }
    return conf->all_init_svcs;
}

AXIS2_EXTERN axis2_bool_t AXIS2_CALL
axis2_conf_is_engaged(
    axis2_conf_t * conf,
    const axutil_env_t * env,
    const axutil_qname_t * module_name)
{
    const axutil_qname_t *def_mod_qname = NULL;
    axis2_module_desc_t *def_mod = NULL;
    int i = 0;
    int size = 0;

    AXIS2_PARAM_CHECK(env->error, module_name, AXIS2_FALSE);

    def_mod = axis2_conf_get_default_module(conf, env, axutil_qname_get_localpart(module_name, env));
    if (def_mod)
    {
        def_mod_qname = axis2_module_desc_get_qname(def_mod, env);
    }

    size = axutil_array_list_size(conf->engaged_module_list, env);

    for (i = 0; i < size; i++)
    {
        axutil_qname_t *qname = NULL;

        qname = (axutil_qname_t *) axutil_array_list_get(conf->engaged_module_list, env, i);

        if (axutil_qname_equals(module_name, env, qname) ||
            (def_mod_qname &&
             axutil_qname_equals(def_mod_qname, env, qname)))
        {
            return AXIS2_TRUE;
        }
    }

    return AXIS2_FALSE;
}

AXIS2_EXTERN axis2_phases_info_t *AXIS2_CALL
axis2_conf_get_phases_info(
    const axis2_conf_t * conf,
    const axutil_env_t * env)
{
    return conf->phases_info;
}

AXIS2_EXTERN axis2_status_t AXIS2_CALL
axis2_conf_set_phases_info(
    axis2_conf_t * conf,
    const axutil_env_t * env,
    axis2_phases_info_t * phases_info)
{
    AXIS2_PARAM_CHECK(env->error, phases_info, AXIS2_FAILURE);

    if (conf->phases_info)
    {
        axis2_phases_info_free(phases_info, env);
        conf->phases_info = NULL;
    }
    conf->phases_info = phases_info;
    return AXIS2_SUCCESS;
}

AXIS2_EXTERN axis2_status_t AXIS2_CALL
axis2_conf_add_msg_recv(
    axis2_conf_t * conf,
    const axutil_env_t * env,
    const axis2_char_t * key,
    axis2_msg_recv_t * msg_recv)
{
    AXIS2_PARAM_CHECK(env->error, key, AXIS2_FAILURE);
    AXIS2_PARAM_CHECK(env->error, msg_recv, AXIS2_FAILURE);
    if (!conf->msg_recvs)
    {
        conf->msg_recvs = axutil_hash_make(env);
        if (!conf->msg_recvs)
        {
            AXIS2_LOG_ERROR(env->log, AXIS2_LOG_SI, 
                "Creating message receiver map failed");
            return AXIS2_FAILURE;
        }
    }
    axutil_hash_set(conf->msg_recvs, key, AXIS2_HASH_KEY_STRING, msg_recv);
    return AXIS2_SUCCESS;
}

AXIS2_EXTERN axis2_msg_recv_t *AXIS2_CALL
axis2_conf_get_msg_recv(
    const axis2_conf_t * conf,
    const axutil_env_t * env,
    axis2_char_t * key)
{
    return (axis2_msg_recv_t *) axutil_hash_get(conf->msg_recvs, key,
                                                AXIS2_HASH_KEY_STRING);
}

AXIS2_EXTERN axis2_status_t AXIS2_CALL
axis2_conf_set_out_phases(
    axis2_conf_t * conf,
    const axutil_env_t * env,
    axutil_array_list_t * out_phases)
{
    AXIS2_PARAM_CHECK(env->error, out_phases, AXIS2_FAILURE);

    if (conf->out_phases)
    {
        axutil_array_list_free(conf->out_phases, env);
        conf->out_phases = NULL;
    }
    conf->out_phases = out_phases;
    return AXIS2_SUCCESS;
}

AXIS2_EXTERN axutil_array_list_t *AXIS2_CALL
axis2_conf_get_out_phases(
    const axis2_conf_t * conf,
    const axutil_env_t * env)
{
    return conf->out_phases;
}

AXIS2_EXTERN axis2_status_t AXIS2_CALL
axis2_conf_set_in_fault_phases(
    axis2_conf_t * conf,
    const axutil_env_t * env,
    axutil_array_list_t * list)
{
    AXIS2_PARAM_CHECK(env->error, list, AXIS2_FAILURE);

    if (conf->in_fault_phases)
    {
        axutil_array_list_free(conf->in_fault_phases, env);
        conf->in_fault_phases = NULL;
    }
    conf->in_fault_phases = list;
    return AXIS2_SUCCESS;
}

AXIS2_EXTERN axis2_status_t AXIS2_CALL
axis2_conf_set_out_fault_phases(
    axis2_conf_t * conf,
    const axutil_env_t * env,
    axutil_array_list_t * list)
{
    AXIS2_PARAM_CHECK(env->error, list, AXIS2_FAILURE);

    if (conf->out_fault_phases)
    {
        axutil_array_list_free(conf->out_fault_phases, env);
        conf->out_fault_phases = NULL;
    }
    conf->out_fault_phases = list;
    return AXIS2_SUCCESS;
}

AXIS2_EXTERN axutil_hash_t *AXIS2_CALL
axis2_conf_get_all_modules(
    const axis2_conf_t * conf,
    const axutil_env_t * env)
{
    return conf->all_modules;
}

AXIS2_EXTERN axis2_status_t AXIS2_CALL
axis2_conf_add_module(
    axis2_conf_t * conf,
    const axutil_env_t * env,
    axis2_module_desc_t * module)
{
    const axutil_qname_t *module_qname = NULL;

    AXIS2_PARAM_CHECK(env->error, module, AXIS2_FAILURE);

    axis2_module_desc_set_parent(module, env, conf);

    module_qname = axis2_module_desc_get_qname(module, env);
    if (module_qname)
    {
        axis2_char_t *module_name = NULL;
        module_name =
            axutil_qname_to_string((axutil_qname_t *) module_qname, env);
        axutil_hash_set(conf->all_modules, module_name, AXIS2_HASH_KEY_STRING,
                        module);
    }

    return AXIS2_SUCCESS;
}

AXIS2_EXTERN axis2_status_t AXIS2_CALL
axis2_conf_set_default_dispatchers(
    axis2_conf_t * conf,
    const axutil_env_t * env)
{
    axis2_phase_t *dispatch = NULL;
    axis2_status_t status = AXIS2_FAILURE;
    axis2_disp_t *rest_dispatch = NULL;
    axis2_disp_t *soap_action_based_dispatch = NULL;
    axis2_disp_t *soap_msg_body_based_dispatch = NULL;
    axis2_handler_t *handler = NULL;
    axis2_phase_t *post_dispatch = NULL;
    axis2_disp_checker_t *disp_checker = NULL;

    dispatch = axis2_phase_create(env, AXIS2_PHASE_DISPATCH);
    if (!dispatch)
    {
        AXIS2_LOG_ERROR(env->log, AXIS2_LOG_SI, "Creating phase %s failed", 
            AXIS2_PHASE_DISPATCH);
        return AXIS2_FAILURE;
    }

    rest_dispatch = axis2_rest_disp_create(env);
    if (!rest_dispatch)
    {
        AXIS2_LOG_ERROR(env->log, AXIS2_LOG_SI, 
            "Creating rest dispatcher failed");
        return AXIS2_FAILURE;
    }

    handler = axis2_disp_get_base(rest_dispatch, env);
    axis2_disp_free(rest_dispatch, env);
    axis2_phase_add_handler_at(dispatch, env, 0, handler);
    axutil_array_list_add(conf->handlers, env,
                          axis2_handler_get_handler_desc(handler, env));

    soap_msg_body_based_dispatch = axis2_soap_body_disp_create(env);
    if (!soap_msg_body_based_dispatch)
    {
        AXIS2_LOG_ERROR(env->log, AXIS2_LOG_SI, 
            "Creating soap body based dispatcher failed");
        return AXIS2_FAILURE;
    }

    handler = axis2_disp_get_base(soap_msg_body_based_dispatch, env);
    axis2_disp_free(soap_msg_body_based_dispatch, env);
    axis2_phase_add_handler_at(dispatch, env, 1, handler);
    axutil_array_list_add(conf->handlers, env,
                          axis2_handler_get_handler_desc(handler, env));

    soap_action_based_dispatch = axis2_soap_action_disp_create(env);
    if (!soap_action_based_dispatch)
    {
        AXIS2_LOG_ERROR(env->log, AXIS2_LOG_SI, 
            "Creating soap action based dispatcher failed");
        return AXIS2_FAILURE;
    }

    handler = axis2_disp_get_base(soap_action_based_dispatch, env);
    axis2_disp_free(soap_action_based_dispatch, env);
    axis2_phase_add_handler_at(dispatch, env, 2, handler);
    axutil_array_list_add(conf->handlers, env,
                          axis2_handler_get_handler_desc(handler, env));	

    status = axutil_array_list_add(conf->
                                   in_phases_upto_and_including_post_dispatch,
                                   env, dispatch);
    if (AXIS2_SUCCESS != status)
    {
        axis2_phase_free(dispatch, env);
        AXIS2_LOG_ERROR(env->log, AXIS2_LOG_SI, 
            "Adding dispatcher into in phases upto and including post "\
            "dispatch list failed");
        return status;
    }

    post_dispatch = axis2_phase_create(env, AXIS2_PHASE_POST_DISPATCH);
    if (!post_dispatch)
    {
        axis2_phase_free(dispatch, env);
        AXIS2_LOG_ERROR(env->log, AXIS2_LOG_SI, "Creating phase %s failed", 
            AXIS2_PHASE_POST_DISPATCH);
        return AXIS2_FAILURE;
    }

    disp_checker = axis2_disp_checker_create(env);
    handler = axis2_disp_checker_get_base(disp_checker, env);
    axis2_disp_checker_free(disp_checker, env);
    axis2_phase_add_handler_at(post_dispatch, env, 0, handler);
    axutil_array_list_add(conf->handlers, env,
                          axis2_handler_get_handler_desc(handler, env));

    handler = axis2_ctx_handler_create(env, NULL);
    axis2_phase_add_handler_at(post_dispatch, env, 1, handler);
    axutil_array_list_add(conf->handlers, env,
                          axis2_handler_get_handler_desc(handler, env));

    status = axutil_array_list_add(conf->
                                   in_phases_upto_and_including_post_dispatch,
                                   env, post_dispatch);
    if (AXIS2_SUCCESS != status)
    {
        axis2_phase_free(dispatch, env);
        axis2_phase_free(post_dispatch, env);
        AXIS2_LOG_ERROR(env->log, AXIS2_LOG_SI, 
            "Adding post dispatcher into in phases upto and including post "\
            "dispatch list failed");
        return status;
    }
    return AXIS2_SUCCESS;
}

AXIS2_EXTERN axis2_status_t AXIS2_CALL
axis2_conf_set_dispatch_phase(
    axis2_conf_t * conf,
    const axutil_env_t * env,
    axis2_phase_t * dispatch)
{
    axis2_status_t status = AXIS2_FAILURE;
    axis2_handler_t *handler = NULL;
    axis2_phase_t *post_dispatch = NULL;
    axis2_disp_checker_t *disp_checker = NULL;

    AXIS2_PARAM_CHECK(env->error, dispatch, AXIS2_FAILURE);

    status = axutil_array_list_add(conf->
                                   in_phases_upto_and_including_post_dispatch,
                                   env, dispatch);
    if (AXIS2_FAILURE == status)
    {
        AXIS2_LOG_ERROR(env->log, AXIS2_LOG_SI, 
            "Adding dispatcher into in phases upto and including post "\
            "dispatch list failed");
        return AXIS2_FAILURE;
    }

    post_dispatch = axis2_phase_create(env, AXIS2_PHASE_POST_DISPATCH);
    if (!post_dispatch)
    {
        AXIS2_LOG_ERROR(env->log, AXIS2_LOG_SI, 
            "Creating phase %s failed", AXIS2_PHASE_POST_DISPATCH);
        axis2_phase_free(dispatch, env);
        return AXIS2_FAILURE;
    }

    disp_checker = axis2_disp_checker_create(env);

    handler = axis2_disp_checker_get_base(disp_checker, env);
    axis2_phase_add_handler_at(post_dispatch, env, 0, handler);

    status = axutil_array_list_add(conf->
                                   in_phases_upto_and_including_post_dispatch,
                                   env, post_dispatch);
    if (AXIS2_FAILURE == status)
    {
        axis2_phase_free(dispatch, env);
        axis2_phase_free(post_dispatch, env);
        axis2_disp_checker_free(disp_checker, env);
        AXIS2_LOG_ERROR(env->log, AXIS2_LOG_SI, 
            "Adding post dispatcher into in phases upto and including post "\
            "dispatch list failed");
        return AXIS2_FAILURE;
    }
    return AXIS2_SUCCESS;
}

/**
 * For each module reference qname stored in dep_engine this function is called.
 * All module_desc instances are stored in axis2_conf. So each module_desc
 * is retrieved from there by giving module_qname and engaged globally by
 * calling phase_resolvers engage_module_globally function. Modules are added
 * to axis2_conf's engaged module list.
 */
AXIS2_EXTERN axis2_status_t AXIS2_CALL
axis2_conf_engage_module(
    axis2_conf_t * conf,
    const axutil_env_t * env,
    const axutil_qname_t * module_ref)
{
    axis2_module_desc_t *module_desc = NULL;
    axis2_bool_t is_new_module = AXIS2_FALSE;
    axis2_bool_t to_be_engaged = AXIS2_TRUE;
    axis2_dep_engine_t *dep_engine = NULL;
    axis2_status_t status = AXIS2_FAILURE;
    axis2_char_t *file_name = NULL;

    AXIS2_PARAM_CHECK(env->error, module_ref, AXIS2_FAILURE);
	AXIS2_PARAM_CHECK (env->error, conf, AXIS2_FAILURE);

    module_desc = axis2_conf_get_module(conf, env, module_ref);
    if (!module_desc)
    {
        axutil_file_t *file = NULL;
        const axis2_char_t *repos_path = NULL;
        axis2_arch_file_data_t *file_data = NULL;
        axis2_char_t *temp_path1 = NULL;
        axis2_char_t *temp_path2 = NULL;
        axis2_char_t *temp_path3 = NULL;
        axis2_char_t *path = NULL;
        axutil_param_t *module_dir_param = NULL;
        axis2_char_t *module_dir = NULL;
        axis2_bool_t flag;
        axis2_char_t *axis2_xml = NULL;

        file_name = axutil_qname_get_localpart(module_ref, env);
        file = (axutil_file_t *) axis2_arch_reader_create_module_arch(env, file_name);
        /* This flag is to check whether conf is built using axis2
         * xml configuration file instead of a repository. */
		flag = axis2_conf_get_axis2_flag (conf, env);

		if (!flag)
		{
        	repos_path = axis2_conf_get_repo(conf, env);
        	temp_path1 = axutil_stracat(env, repos_path, AXIS2_PATH_SEP_STR);
        	temp_path2 = axutil_stracat(env, temp_path1, AXIS2_MODULE_FOLDER);
        	temp_path3 = axutil_stracat(env, temp_path2, AXIS2_PATH_SEP_STR);
        	path = axutil_stracat(env, temp_path3, file_name);
        	AXIS2_FREE(env->allocator, temp_path1);
        	AXIS2_FREE(env->allocator, temp_path2);
        	AXIS2_FREE(env->allocator, temp_path3);
		}
		else
		{
			/**
			 * This case is to obtain module path from the axis2.xml
			 */
			axis2_xml = (axis2_char_t *)axis2_conf_get_axis2_xml (conf, env);
			module_dir_param = axis2_conf_get_param (conf, env, AXIS2_MODULE_DIR);

            if (module_dir_param)
            {
                module_dir = (axis2_char_t *) axutil_param_get_value (module_dir_param, env);
            }
            else
            {
                AXIS2_LOG_ERROR (env->log, AXIS2_LOG_SI, 
                        "moduleDir parameter not available in axis2.xml.");

                return AXIS2_FAILURE;
            }

			temp_path1 = axutil_strcat (env, module_dir, AXIS2_PATH_SEP_STR, NULL);
			path = axutil_strcat (env, temp_path1, file_name, NULL);
		}
		
        axutil_file_set_path(file, env, path);
        file_data = axis2_arch_file_data_create_with_type_and_file(env, AXIS2_MODULE, file);
		if (!flag)
        {
        	dep_engine = axis2_dep_engine_create_with_repos_name(env, repos_path);
        }
		else
        {
			dep_engine = axis2_dep_engine_create_with_axis2_xml (env, axis2_xml);
        }
		
        axis2_dep_engine_set_current_file_item(dep_engine, env, file_data);

        /* this module_dir set the path of the module directory
         * petaining to this module. This value will use inside the
         * axis2_dep_engine_build_module function
         */

		axis2_dep_engine_set_module_dir (dep_engine, env, path);

        if (path)
        {
            AXIS2_FREE (env->allocator, path);
        }

        if (file_data)
        {
            axis2_arch_file_data_free(file_data, env);
        }

        module_desc = axis2_dep_engine_build_module(dep_engine, env, file, conf);
        axutil_file_free (file, env);
        is_new_module = AXIS2_TRUE;
    }
	
    if (module_desc)
    {
        int size = 0;
        int i = 0;
        const axutil_qname_t *module_qname = NULL;

        size = axutil_array_list_size(conf->engaged_module_list, env);
        module_qname = axis2_module_desc_get_qname(module_desc, env);
        for (i = 0; i < size; i++)
        {
            axutil_qname_t *qname = NULL;

            qname = (axutil_qname_t *) axutil_array_list_get(conf->engaged_module_list, env, i);
            if (axutil_qname_equals(module_qname, env, qname))
            {
                to_be_engaged = AXIS2_FALSE;
            }
        }
    }
    else
    {
        AXIS2_ERROR_SET(env->error, AXIS2_ERROR_INVALID_MODULE, AXIS2_FAILURE);
        AXIS2_LOG_ERROR(env->log, AXIS2_LOG_SI, "Either module description not set or building"\
                "module description failed for module %s", file_name);

        return AXIS2_FAILURE;
    }

    if (to_be_engaged)
    {
        axis2_phase_resolver_t *phase_resolver = NULL;
        axutil_qname_t *module_qref_l = NULL;
        const axutil_qname_t *module_qname = NULL;
        axis2_char_t *module_name = NULL;

        module_qname = axis2_module_desc_get_qname(module_desc, env);
        module_name = axutil_qname_get_localpart(module_qname, env);
        phase_resolver = axis2_phase_resolver_create_with_config(env, conf);
        if (!phase_resolver)
        {
            return AXIS2_FAILURE;
        }

        status = axis2_phase_resolver_engage_module_globally(phase_resolver, env, module_desc);
        axis2_phase_resolver_free(phase_resolver, env);
        if (!status)
        {
            AXIS2_LOG_ERROR(env->log, AXIS2_LOG_SI, "Engaging module %s globally failed", module_name);
            return status;
        }
        module_qref_l = axutil_qname_clone((axutil_qname_t *) module_qname, env);
        status = axutil_array_list_add(conf->engaged_module_list, env, module_qref_l);
    }

    if (is_new_module)
    {
        status = axis2_conf_add_module(conf, env, module_desc);
    }

    return status;
}

AXIS2_EXTERN const axis2_char_t *AXIS2_CALL
axis2_conf_get_repo(
    const axis2_conf_t * conf,
    const axutil_env_t * env)
{
    return conf->axis2_repo;
}

AXIS2_EXTERN axis2_status_t AXIS2_CALL
axis2_conf_set_repo(
    axis2_conf_t * conf,
    const axutil_env_t * env,
    axis2_char_t * repos_path)
{
    if (conf->axis2_repo)
    {
        AXIS2_FREE(env->allocator, conf->axis2_repo);
        conf->axis2_repo = NULL;
    }
    conf->axis2_repo = axutil_strdup(env, repos_path);
    return AXIS2_SUCCESS;
}


AXIS2_EXTERN const axis2_char_t *AXIS2_CALL
axis2_conf_get_axis2_xml(
    const axis2_conf_t * conf,
    const axutil_env_t * env)
{
    return axutil_strdup (env, conf->axis2_xml);
}

AXIS2_EXTERN axis2_status_t AXIS2_CALL
axis2_conf_set_axis2_xml(
    axis2_conf_t * conf,
    const axutil_env_t * env,
    axis2_char_t * axis2_xml)
{
    AXIS2_PARAM_CHECK (env->error, axis2_xml, AXIS2_FAILURE);
    conf->axis2_xml = axutil_strdup(env, axis2_xml);
    return AXIS2_SUCCESS;
}


AXIS2_EXTERN axis2_status_t AXIS2_CALL
axis2_conf_set_dep_engine(
    axis2_conf_t * conf,
    const axutil_env_t * env,
    axis2_dep_engine_t * dep_engine)
{
    conf->dep_engine = dep_engine;
    return AXIS2_SUCCESS;
}

AXIS2_EXTERN const axis2_char_t *AXIS2_CALL
axis2_conf_get_default_module_version(
    const axis2_conf_t * conf,
    const axutil_env_t * env,
    const axis2_char_t * module_name)
{
    axutil_hash_t *def_ver_map = NULL;
    AXIS2_PARAM_CHECK(env->error, module_name, NULL);

    def_ver_map = conf->name_to_version_map;
    if (!def_ver_map)
    {
        return NULL;
    }
    return axutil_hash_get(def_ver_map, module_name, AXIS2_HASH_KEY_STRING);
}

AXIS2_EXTERN axis2_module_desc_t *AXIS2_CALL
axis2_conf_get_default_module(
    const axis2_conf_t * conf,
    const axutil_env_t * env,
    const axis2_char_t * module_name)
{
    axis2_module_desc_t *ret_mod = NULL;
    axis2_char_t *mod_name = NULL;
    const axis2_char_t *mod_ver = NULL;
    axutil_hash_t *all_modules = NULL;
    axutil_qname_t *mod_qname = NULL;

    AXIS2_PARAM_CHECK(env->error, module_name, NULL);

    all_modules = conf->all_modules;
    mod_ver = axis2_conf_get_default_module_version(conf, env, module_name);

    if (!mod_ver)
    {
        mod_name = axutil_strdup(env, module_name);
    }
    else
    {
        axis2_char_t *tmp_name = NULL;
        tmp_name = axutil_stracat(env, module_name, "-");
        mod_name = axutil_stracat(env, tmp_name, mod_ver);
        AXIS2_FREE(env->allocator, tmp_name);
    }
    mod_qname = axutil_qname_create(env, mod_name, NULL, NULL);
    AXIS2_FREE(env->allocator, mod_name);
    mod_name = NULL;

    if (!mod_qname)
    {
        return NULL;
    }
    ret_mod = (axis2_module_desc_t *) axutil_hash_get(all_modules,
                                                      axutil_qname_to_string
                                                      (mod_qname, env),
                                                      AXIS2_HASH_KEY_STRING);

    return ret_mod;
}

AXIS2_EXTERN axis2_status_t AXIS2_CALL
axis2_conf_add_default_module_version(
    axis2_conf_t * conf,
    const axutil_env_t * env,
    const axis2_char_t * module_name,
    const axis2_char_t * module_version)
{
    axutil_hash_t *name_to_ver_map = NULL;

    AXIS2_PARAM_CHECK(env->error, module_name, AXIS2_FAILURE);
    AXIS2_PARAM_CHECK(env->error, module_version, AXIS2_FAILURE);
    /*
     * If we already have a default module version we don't put
     * it again
     */
    name_to_ver_map = conf->name_to_version_map;

    if (!axutil_hash_get(name_to_ver_map, module_name, AXIS2_HASH_KEY_STRING))
    {
        axis2_char_t *new_entry = axutil_strdup(env, module_version);
        if (!new_entry)
        {
            return AXIS2_FAILURE;
        }
        axutil_hash_set(name_to_ver_map, module_name, AXIS2_HASH_KEY_STRING,
                        new_entry);
        return AXIS2_SUCCESS;
    }
    return AXIS2_FAILURE;
}

AXIS2_EXTERN axis2_status_t AXIS2_CALL
axis2_conf_engage_module_with_version(
    axis2_conf_t * conf,
    const axutil_env_t * env,
    const axis2_char_t * module_name,
    const axis2_char_t * version_id)
{
    axutil_qname_t *module_qname = NULL;
    axis2_status_t status = AXIS2_FAILURE;

    AXIS2_PARAM_CHECK(env->error, module_name, AXIS2_FAILURE);

    module_qname = axis2_core_utils_get_module_qname(env, module_name,
                                                     version_id);
    if (!module_qname)
    {
        return AXIS2_FAILURE;
    }
    status = axis2_conf_engage_module(conf, env, module_qname);
    axutil_qname_free(module_qname, env);
    return status;
}

AXIS2_EXTERN axis2_bool_t AXIS2_CALL
axis2_conf_get_enable_mtom(
    axis2_conf_t * conf,
    const axutil_env_t * env)
{
    return conf->enable_mtom;
}

AXIS2_EXTERN axis2_status_t AXIS2_CALL
axis2_conf_set_enable_mtom(
    axis2_conf_t * conf,
    const axutil_env_t * env,
    axis2_bool_t enable_mtom)
{
    conf->enable_mtom = enable_mtom;
    return AXIS2_SUCCESS;
}


AXIS2_EXTERN axis2_bool_t AXIS2_CALL
axis2_conf_get_axis2_flag(
    axis2_conf_t * conf,
    const axutil_env_t * env)
{
    return conf->axis2_flag;
}

AXIS2_EXTERN axis2_status_t AXIS2_CALL
axis2_conf_set_axis2_flag(
    axis2_conf_t * conf,
    const axutil_env_t * env,
    axis2_bool_t axis2_flag)
{
    conf->axis2_flag = axis2_flag;
    return AXIS2_SUCCESS;
}

AXIS2_EXTERN axis2_bool_t AXIS2_CALL
axis2_conf_get_enable_security(
    axis2_conf_t * conf,
    const axutil_env_t * env)
{
    return conf->enable_security;
}

AXIS2_EXTERN axis2_status_t AXIS2_CALL
axis2_conf_set_enable_security(
    axis2_conf_t * conf,
    const axutil_env_t * env,
    axis2_bool_t enable_security)
{
    AXIS2_PARAM_CHECK(env->error, conf, AXIS2_FAILURE);

    conf->enable_security = enable_security;
    return AXIS2_SUCCESS;
}

AXIS2_EXTERN void *AXIS2_CALL
axis2_conf_get_security_context(
    axis2_conf_t * conf,
    const axutil_env_t * env)
{
    return conf->security_context;
}

AXIS2_EXTERN axis2_status_t AXIS2_CALL
axis2_conf_set_security_context(
    axis2_conf_t * conf,
    const axutil_env_t * env,
    void *security_context)
{
    AXIS2_PARAM_CHECK(env->error, conf, AXIS2_FAILURE);

    conf->security_context = (void *) security_context;
    return AXIS2_SUCCESS;
}

AXIS2_EXTERN axutil_param_container_t *AXIS2_CALL
axis2_conf_get_param_container(
    const axis2_conf_t * conf,
    const axutil_env_t * env)
{
    return conf->param_container;
}

AXIS2_EXTERN axis2_desc_t *AXIS2_CALL
axis2_conf_get_base(
    const axis2_conf_t * conf,
    const axutil_env_t * env)
{
    return conf->base;
}

AXIS2_EXTERN axutil_array_list_t * AXIS2_CALL
axis2_conf_get_handlers(const axis2_conf_t * conf,
    const axutil_env_t * env)
{
	return conf->handlers;
}



<|start_filename|>samples/client/notify/notify.mk<|end_filename|>
echo:
	@cl.exe /nologo /D "WIN32" /D "_WINDOWS" /D "AXIS2_DECLARE_EXPORT" /D "_MBCS" *.C /I.\..\..\..\include /c
	@link.exe /nologo *.obj /LIBPATH:.\..\..\..\lib axiom.lib axutil.lib axis2_engine.lib axis2_parser.lib /OUT:notify.exe

	





<|start_filename|>util/src/network_handler.c<|end_filename|>
/*
 * 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.
 */

#include <string.h>
#include <stdlib.h>
#include <stdio.h>
#include <axutil_network_handler.h>
#include <fcntl.h>




#if defined(WIN32)
/* fix for an older version of winsock2.h */
#if !defined(SO_EXCLUSIVEADDRUSE)
#define SO_EXCLUSIVEADDRUSE ((int)(~SO_REUSEADDR))
#endif
#endif

#if defined(WIN32)
static int is_init_socket = 0;
axis2_bool_t axis2_init_socket(
    );
#endif

AXIS2_EXTERN axis2_socket_t AXIS2_CALL
axutil_network_handler_open_socket(
    const axutil_env_t *env,
    char *server,
    int port)
{
    axis2_socket_t sock = AXIS2_INVALID_SOCKET;
    struct sockaddr_in sock_addr;
    struct linger ll;
    int nodelay = 1;

#if defined(WIN32)
    if (is_init_socket == 0)
    {
        axis2_init_socket();
        is_init_socket = 1;
    }
#endif

    AXIS2_ENV_CHECK(env, AXIS2_CRITICAL_FAILURE);
    AXIS2_PARAM_CHECK(env->error, server, AXIS2_INVALID_SOCKET);

#ifndef WIN32
    if ((sock = socket(AF_INET, SOCK_STREAM, 0)) < 0)
        /*AF_INET is not defined in sys/socket.h but PF_INET */
    {
        AXIS2_ERROR_SET(env->error, AXIS2_ERROR_SOCKET_ERROR, AXIS2_FAILURE);
        return AXIS2_INVALID_SOCKET;
    }
#else
	if ((sock = socket(AF_INET, SOCK_STREAM, 0)) == INVALID_SOCKET)
        /* In Win 32 if the socket creation failed it return 0 not a negative value */
    {
		char buf[AXUTIL_WIN32_ERROR_BUFSIZE]; 
		/* Get the detailed error message */
		axutil_win32_get_last_wsa_error(buf, AXUTIL_WIN32_ERROR_BUFSIZE);	
		AXIS2_LOG_ERROR(env->log, AXIS2_LOG_SI, buf); 
        AXIS2_ERROR_SET(env->error, AXIS2_ERROR_SOCKET_ERROR, AXIS2_FAILURE);
        return AXIS2_INVALID_SOCKET;
    }
#endif 

    memset(&sock_addr, 0, sizeof(sock_addr));
    sock_addr.sin_family = AF_INET;
    sock_addr.sin_addr.s_addr = inet_addr(server);  /*arpa/inet.d */

    if (sock_addr.sin_addr.s_addr == AXIS2_INADDR_NONE) /*netinet/in.h */
    {
        /*
         * server may be a host name
         */
        struct hostent *lphost = NULL;
        lphost = gethostbyname(server);

        if (lphost)
        {
            sock_addr.sin_addr.s_addr =
                ((struct in_addr *) lphost->h_addr)->s_addr;
        }
        else
        {
            AXIS2_ERROR_SET(env->error, AXIS2_ERROR_INVALID_ADDRESS,
                            AXIS2_FAILURE);
            return AXIS2_INVALID_SOCKET;
        }
    }

    sock_addr.sin_port = htons((axis2_unsigned_short_t) port);

    /* Connect to server */
    if (connect(sock, (struct sockaddr *) &sock_addr, sizeof(sock_addr)) < 0)
    {
        AXIS2_CLOSE_SOCKET(sock);
        AXIS2_ERROR_SET(env->error, AXIS2_ERROR_SOCKET_ERROR, AXIS2_FAILURE);
        return AXIS2_INVALID_SOCKET;
    }
    setsockopt(sock, IPPROTO_TCP, TCP_NODELAY, (const char *) &nodelay,
               sizeof(nodelay));
    ll.l_onoff = 1;
    ll.l_linger = 5;
    setsockopt(sock, SOL_SOCKET, SO_LINGER, (const char *) &ll,
               sizeof(struct linger));
    return sock;
}

AXIS2_EXTERN axis2_socket_t AXIS2_CALL
axutil_network_handler_create_server_socket(
    const axutil_env_t *env,
    int port)
{
    axis2_socket_t sock = AXIS2_INVALID_SOCKET;
    axis2_socket_t i = 0;
    struct sockaddr_in sock_addr;

    AXIS2_ENV_CHECK(env, AXIS2_CRITICAL_FAILURE);
#if defined(WIN32)
    if (is_init_socket == 0)
    {
        axis2_init_socket();
        is_init_socket = 1;
    }
#endif
    sock = socket(AF_INET, SOCK_STREAM, 0);

#ifndef WIN32
    if (sock < 0)
    {
        AXIS2_ERROR_SET(env->error, AXIS2_ERROR_SOCKET_ERROR, AXIS2_FAILURE);
        return AXIS2_INVALID_SOCKET;
    }
#else
	if (sock == INVALID_SOCKET)
	{
		axis2_char_t buf[AXUTIL_WIN32_ERROR_BUFSIZE];
		axutil_win32_get_last_wsa_error(buf, AXUTIL_WIN32_ERROR_BUFSIZE);
		AXIS2_ERROR_SET(env->error, AXIS2_ERROR_SOCKET_ERROR, AXIS2_FAILURE);
		AXIS2_LOG_ERROR(env->log, AXIS2_LOG_SI, buf); 
        return AXIS2_INVALID_SOCKET;
	}
#endif
    /* Address re-use */
    i = 1;
#if defined(WIN32)
    setsockopt(sock, SOL_SOCKET, SO_EXCLUSIVEADDRUSE, (char *) &i, sizeof(axis2_socket_t));    /*casted 4th param to char* */
#else
    setsockopt(sock, SOL_SOCKET, SO_REUSEADDR, (char *) &i, sizeof(axis2_socket_t));    /*casted 4th param to char* */
#endif

    /* Exec behaviour */
    AXIS2_CLOSE_SOCKET_ON_EXIT(sock) memset(&sock_addr, 0, sizeof(sock_addr));

    sock_addr.sin_family = AF_INET;
    sock_addr.sin_addr.s_addr = htonl(INADDR_ANY);
    sock_addr.sin_port = htons((axis2_unsigned_short_t) port);

    /* Bind the socket to our port number */
    if (bind(sock, (struct sockaddr *) &sock_addr, sizeof(sock_addr)) < 0)
    {
        AXIS2_ERROR_SET(env->error, AXIS2_ERROR_SOCKET_BIND_FAILED,
                        AXIS2_FAILURE);
        return AXIS2_INVALID_SOCKET;
    }
    if (listen(sock, 50) < 0)
    {
        AXIS2_ERROR_SET(env->error, AXIS2_ERROR_SOCKET_LISTEN_FAILED,
                        AXIS2_FAILURE);
        return AXIS2_INVALID_SOCKET;
    }
    return sock;
}

AXIS2_EXTERN axis2_status_t AXIS2_CALL
axutil_network_handler_close_socket(
    const axutil_env_t *env,
    axis2_socket_t socket)
{
    int i = 0;
    char buf[32];
    AXIS2_ENV_CHECK(env, AXIS2_CRITICAL_FAILURE);
    if (socket < 0)
    {
        AXIS2_ERROR_SET(env->error, AXIS2_ERROR_INVALID_SOCKET, AXIS2_FAILURE);
        return AXIS2_FAILURE;
    }
    shutdown(socket, AXIS2_SHUT_WR);
    axutil_network_handler_set_sock_option(env, socket, SO_RCVTIMEO, 1);
    i = recv(socket, buf, 32, 0);
    AXIS2_CLOSE_SOCKET(socket);
    return AXIS2_SUCCESS;
}

AXIS2_EXTERN axis2_status_t AXIS2_CALL
axutil_network_handler_set_sock_option(
    const axutil_env_t *env,
    axis2_socket_t socket,
    int option,
    int value)
{
    if (option == SO_RCVTIMEO || option == SO_SNDTIMEO)
    {
#if defined(WIN32)
        DWORD tv = value;       /* windows expects milliseconds in a DWORD */
#else
        struct timeval tv;
        /* we deal with milliseconds */
        tv.tv_sec = value / 1000;
        tv.tv_usec = (value % 1000) * 1000;
#endif
        setsockopt(socket, SOL_SOCKET, option, (char *) &tv, sizeof(tv));
        return AXIS2_SUCCESS;
    }
	else if (option == SO_REUSEADDR)
	{
		if ((setsockopt(socket, SOL_SOCKET, SO_REUSEADDR, (char *)&value, sizeof(value))) < 0) 
		{
			return AXIS2_FAILURE;
		}
		return AXIS2_SUCCESS;
	}
    return AXIS2_FAILURE;
}

AXIS2_EXTERN axis2_socket_t AXIS2_CALL
axutil_network_handler_svr_socket_accept(
    const axutil_env_t *env,
    axis2_socket_t svr_socket)
{
    struct sockaddr cli_addr;
    struct linger ll;
    int nodelay = 1;
    axis2_socket_len_t cli_len = 0;
    axis2_socket_t cli_socket = AXIS2_INVALID_SOCKET;
    AXIS2_ENV_CHECK(env, AXIS2_CRITICAL_FAILURE);

    cli_len = sizeof(cli_addr);
    cli_socket = accept(svr_socket, (struct sockaddr *) &cli_addr, &cli_len);
#ifndef WIN32
    if (cli_socket < 0)
	{
        AXIS2_LOG_ERROR(env->log, AXIS2_LOG_SI,
                        "[Axis2][network_handler] Socket accept \
                failed");
	}
#else
	if (cli_socket == INVALID_SOCKET)
	{
		axis2_char_t buf[AXUTIL_WIN32_ERROR_BUFSIZE];
		axutil_win32_get_last_wsa_error(buf, AXUTIL_WIN32_ERROR_BUFSIZE);
		AXIS2_LOG_ERROR(env->log, AXIS2_LOG_SI, buf); 
	}
#endif 

    setsockopt(svr_socket, IPPROTO_TCP, TCP_NODELAY, (const char *)&nodelay, (int)sizeof(nodelay));
    /* We are sure that the difference lies within the int range */
    ll.l_onoff = 1;
    ll.l_linger = 5;
    setsockopt(cli_socket, SOL_SOCKET, SO_LINGER, (const char *)&ll, (int)sizeof(struct linger));
    /* We are sure that the difference lies within the int range */
    return cli_socket;
}

#if defined (WIN32)
axis2_bool_t
axis2_init_socket(
    )
{
    WORD wVersionRequested;
    WSADATA wsaData;
    int err;
    wVersionRequested = MAKEWORD(2, 2);

    err = WSAStartup(wVersionRequested, &wsaData);

    if (err != 0)
        return 0;               /* WinSock 2.2 not found */

    /* Confirm that the WinSock DLL supports 2.2. 
     * Note that if the DLL supports versions greater 
     * than 2.2 in addition to 2.2, it will still return 
     * 2.2 in wVersion since that is the version we 
     * requested.
     */

    if (LOBYTE(wsaData.wVersion) != 2 || HIBYTE(wsaData.wVersion) != 2)
    {
        WSACleanup();
        return 0;               /* WinSock 2.2 not supported */
    }
    return 1;
}
#endif

AXIS2_EXTERN axis2_char_t *AXIS2_CALL
axutil_network_handler_get_svr_ip(
    const axutil_env_t *env,
    axis2_socket_t socket)
{
    struct sockaddr_in addr;
    axis2_socket_len_t len = sizeof(addr);
    char *ret = NULL;
    memset(&addr, 0, sizeof(addr));
    if (getsockname(socket, (struct sockaddr *) &addr, &len) < 0)
    {
        return NULL;
    }
    ret = inet_ntoa(addr.sin_addr);
    return ret;
}

AXIS2_EXTERN axis2_char_t *AXIS2_CALL
axutil_network_handler_get_peer_ip(
    const axutil_env_t *env,
    axis2_socket_t socket)
{
    struct sockaddr_in addr;
    axis2_socket_len_t len = sizeof(addr);
    char *ret = NULL;
    memset(&addr, 0, sizeof(addr));
    if (getpeername(socket, (struct sockaddr *) &addr, &len) < 0)
    {
        return NULL;
    }
    ret = inet_ntoa(addr.sin_addr);
    return ret;
}

AXIS2_EXTERN axis2_socket_t AXIS2_CALL
axutil_network_handler_create_dgram_svr_socket(
								const axutil_env_t *env, 
								int port)
{
	axis2_socket_t sock = AXIS2_INVALID_SOCKET;
    struct sockaddr_in sock_addr;

    AXIS2_ENV_CHECK(env, AXIS2_CRITICAL_FAILURE);
#if defined(WIN32)
    if (is_init_socket == 0)
    {
        axis2_init_socket();
        is_init_socket = 1;
    }
#endif
    sock = socket(AF_INET, SOCK_DGRAM, IPPROTO_UDP);

#ifndef WIN32
    if (sock < 0)
    {
        AXIS2_ERROR_SET(env->error, AXIS2_ERROR_SOCKET_ERROR, AXIS2_FAILURE);
        return AXIS2_INVALID_SOCKET;
    }
#else
	if (sock == INVALID_SOCKET)
	{
		axis2_char_t buf[AXUTIL_WIN32_ERROR_BUFSIZE];
		axutil_win32_get_last_wsa_error(buf, AXUTIL_WIN32_ERROR_BUFSIZE);
		AXIS2_ERROR_SET(env->error, AXIS2_ERROR_SOCKET_ERROR, AXIS2_FAILURE);
		AXIS2_LOG_ERROR(env->log, AXIS2_LOG_SI, buf); 
        return AXIS2_INVALID_SOCKET;
	}
#endif
    /* Exec behaviour */
    AXIS2_CLOSE_SOCKET_ON_EXIT(sock) memset(&sock_addr, 0, sizeof(sock_addr));

    sock_addr.sin_family = AF_INET;
    sock_addr.sin_addr.s_addr = htonl(INADDR_ANY);
    sock_addr.sin_port = htons((axis2_unsigned_short_t) port);

    /* Bind the socket to our port number */
    if (bind(sock, (struct sockaddr *) &sock_addr, sizeof(sock_addr)) < 0)
    {
        AXIS2_ERROR_SET(env->error, AXIS2_ERROR_SOCKET_BIND_FAILED,
                        AXIS2_FAILURE);
        return AXIS2_INVALID_SOCKET;
    }
    return sock;
}

AXIS2_EXTERN axis2_socket_t AXIS2_CALL
axutil_network_handler_open_dgram_socket(const axutil_env_t *env)
{
    axis2_socket_t sock = AXIS2_INVALID_SOCKET;
#if defined(WIN32)
    if (is_init_socket == 0)
    {
        axis2_init_socket();
        is_init_socket = 1;
    }
#endif    

#ifndef WIN32
    if ((sock = socket(AF_INET, SOCK_DGRAM, 0)) < 0)
        /*AF_INET is not defined in sys/socket.h but PF_INET */
    {
        AXIS2_ERROR_SET(env->error, AXIS2_ERROR_SOCKET_ERROR, AXIS2_FAILURE);
        return AXIS2_INVALID_SOCKET;
    }
#else
	if ((sock = socket(AF_INET, SOCK_DGRAM, IPPROTO_UDP)) == INVALID_SOCKET)
        /* In Win 32 if the socket creation failed it return 0 not a negative value */
    {
		char buf[AXUTIL_WIN32_ERROR_BUFSIZE]; 
		/* Get the detailed error message */
		axutil_win32_get_last_wsa_error(buf, AXUTIL_WIN32_ERROR_BUFSIZE);	
		AXIS2_LOG_ERROR(env->log, AXIS2_LOG_SI, buf); 
        AXIS2_ERROR_SET(env->error, AXIS2_ERROR_SOCKET_ERROR, AXIS2_FAILURE);
        return AXIS2_INVALID_SOCKET;
    }
#endif 	
    return sock;
}

/* 
 * This function blocks until data is available to read from the socket 
 * and read all the data in the socket. If the buffer size specified is 
 * lesser than the actual data a failure will be returned.
 */
AXIS2_EXTERN axis2_status_t AXIS2_CALL
axutil_network_handler_read_dgram(const axutil_env_t *env, axis2_socket_t sock, 
								 axis2_char_t *buffer, int *buf_len,
								 axis2_char_t **addr, int *port)
{
	struct sockaddr_in sender_address;
	int received = 0; 
	unsigned int sender_address_size = sizeof(sender_address);

	received = recvfrom(sock,  
						buffer, 
						*buf_len, 
						0, 
						(struct sockaddr *)&sender_address, 
						&sender_address_size);

#ifdef WIN32
	if (SOCKET_ERROR == received)
	{
	    axis2_char_t buf[AXUTIL_WIN32_ERROR_BUFSIZE];
		axutil_win32_get_last_wsa_error(buf, AXUTIL_WIN32_ERROR_BUFSIZE);
		AXIS2_ERROR_SET(env->error, AXIS2_ERROR_SOCKET_ERROR, AXIS2_FAILURE);
		AXIS2_LOG_ERROR(env->log, AXIS2_LOG_SI, buf); 
        return AXIS2_FAILURE;
	} 
#else
	if (received < 0)
	{
        AXIS2_ERROR_SET(env->error, AXIS2_ERROR_SOCKET_ERROR, AXIS2_FAILURE);
        return AXIS2_INVALID_SOCKET;
	}
#endif
	if (port && addr)
	{
		*port = ntohs(sender_address.sin_port);
		*addr = inet_ntoa(sender_address.sin_addr);
	}
	*buf_len = received;
	return AXIS2_SUCCESS;
}

/* 
 * Sends a datagram to the specified location.
 */
AXIS2_EXTERN axis2_status_t AXIS2_CALL 
axutil_network_handler_send_dgram(const axutil_env_t *env, axis2_socket_t sock, 
								 axis2_char_t *buff, int *buf_len, 
								 axis2_char_t *addr, int dest_port, int *source_port)
{
    struct sockaddr_in recv_addr, source_addr;
	int send_bytes = 0;		
    unsigned int recv_addr_size = 0;
	unsigned int source_addr_size = sizeof(source_addr);
	recv_addr_size = sizeof(recv_addr);	

	memset(&recv_addr, 0, sizeof(recv_addr));
	memset(&recv_addr, 0, sizeof(source_addr));

	recv_addr.sin_addr.s_addr = inet_addr(addr);
	if (recv_addr.sin_addr.s_addr == AXIS2_INADDR_NONE) /*netinet/in.h */
    {
        /*
         * server may be a host name
         */
        struct hostent *lphost = NULL;
        lphost = gethostbyname(addr);

        if (lphost)
        {
            recv_addr.sin_addr.s_addr =
                ((struct in_addr *) lphost->h_addr)->s_addr;
        }
        else
        {
            AXIS2_ERROR_SET(env->error, AXIS2_ERROR_INVALID_ADDRESS,
                            AXIS2_FAILURE);
            return AXIS2_FAILURE;
        }
    }

	recv_addr.sin_family = AF_INET;
	recv_addr.sin_port = htons((axis2_unsigned_short_t)dest_port);

	send_bytes =  sendto(sock, 
					buff, 
					*buf_len, 
					0, 
					(struct sockaddr *) &recv_addr, 
					recv_addr_size);	

	getsockname(sock, (struct sockaddr *)&source_addr, &source_addr_size);

#ifdef WIN32
	if (send_bytes == SOCKET_ERROR)
	{
		axis2_char_t buf[AXUTIL_WIN32_ERROR_BUFSIZE];
		axutil_win32_get_last_wsa_error(buf, AXUTIL_WIN32_ERROR_BUFSIZE);
		AXIS2_ERROR_SET(env->error, AXIS2_ERROR_SOCKET_ERROR, AXIS2_FAILURE);
		AXIS2_LOG_ERROR(env->log, AXIS2_LOG_SI, buf); 
        return AXIS2_FAILURE;
	} 
#else
	if (send_bytes < 0)
	{
        AXIS2_ERROR_SET(env->error, AXIS2_ERROR_SOCKET_ERROR, AXIS2_FAILURE);
        return AXIS2_FAILURE;
	}
#endif
	if (source_port)
	{
		*source_port = ntohs(source_addr.sin_port);
	}
	*buf_len = send_bytes;
	return AXIS2_SUCCESS;
}


AXIS2_EXTERN axis2_status_t AXIS2_CALL
axutil_network_handler_bind_socket(const axutil_env_t *env, axis2_socket_t sock, int port)
{
	struct sockaddr_in source_addr;

	memset(&source_addr, 0, sizeof(source_addr));
	source_addr.sin_family = AF_INET;
	source_addr.sin_addr.s_addr = htonl(INADDR_ANY);
	source_addr.sin_port = htons((axis2_unsigned_short_t)port);
#ifdef WIN32
	if (bind(sock, (struct sockaddr *)&source_addr, sizeof(source_addr)) == SOCKET_ERROR)
	{	
		axis2_char_t buf[AXUTIL_WIN32_ERROR_BUFSIZE];
		axutil_win32_get_last_wsa_error(buf, AXUTIL_WIN32_ERROR_BUFSIZE);
		AXIS2_ERROR_SET(env->error, AXIS2_ERROR_SOCKET_ERROR, AXIS2_FAILURE);
		AXIS2_LOG_ERROR(env->log, AXIS2_LOG_SI, buf); 
        return AXIS2_FAILURE;
	}
#else
	if (bind(sock, (struct sockaddr *)&source_addr, sizeof(source_addr)) < 0)
	{
        AXIS2_ERROR_SET(env->error, AXIS2_ERROR_SOCKET_ERROR, AXIS2_FAILURE);
        return AXIS2_INVALID_SOCKET;
	}
#endif
	return AXIS2_SUCCESS;
}

AXIS2_EXTERN axis2_socket_t AXIS2_CALL
axutil_network_hadler_create_multicast_svr_socket(const axutil_env_t *env, int port, 
												  axis2_char_t *mul_addr)
{
	axis2_socket_t sock = AXIS2_INVALID_SOCKET;
    struct sockaddr_in sock_addr;
	struct ip_mreq mc_req;

    AXIS2_ENV_CHECK(env, AXIS2_CRITICAL_FAILURE);
#if defined(WIN32)
    if (is_init_socket == 0)
    {
        axis2_init_socket();
        is_init_socket = 1;
    }
#endif
    sock = socket(AF_INET, SOCK_DGRAM, IPPROTO_UDP);

#ifndef WIN32
    if (sock < 0)
    {
        AXIS2_ERROR_SET(env->error, AXIS2_ERROR_SOCKET_ERROR, AXIS2_FAILURE);
        return AXIS2_FAILURE;
    }
#else
	if (sock == INVALID_SOCKET)
	{		
	    axis2_char_t buf[AXUTIL_WIN32_ERROR_BUFSIZE];
		axutil_win32_get_last_wsa_error(buf, AXUTIL_WIN32_ERROR_BUFSIZE);
		AXIS2_ERROR_SET(env->error, AXIS2_ERROR_SOCKET_ERROR, AXIS2_FAILURE);
		AXIS2_LOG_ERROR(env->log, AXIS2_LOG_SI, buf); 
        return AXIS2_FAILURE;
	}
#endif

    /* Exec behaviour */
    AXIS2_CLOSE_SOCKET_ON_EXIT(sock) memset(&sock_addr, 0, sizeof(sock_addr));

    sock_addr.sin_family = AF_INET;
    sock_addr.sin_addr.s_addr = htonl(INADDR_ANY);
    sock_addr.sin_port = htons((axis2_unsigned_short_t) port);

    /* Bind the socket to our port number */
    if (bind(sock, (struct sockaddr *) &sock_addr, sizeof(sock_addr)) < 0)
    {
        AXIS2_ERROR_SET(env->error, AXIS2_ERROR_SOCKET_BIND_FAILED,
                        AXIS2_FAILURE);
        return AXIS2_INVALID_SOCKET;
    }
	
	/* Send an IGMP request to join the multicast group */
	mc_req.imr_multiaddr.s_addr = inet_addr(mul_addr);
	mc_req.imr_interface.s_addr = htonl(INADDR_ANY) ;
#ifdef WIN32	
	if ((setsockopt(sock, IPPROTO_IP, IP_ADD_MEMBERSHIP, (char *) &mc_req, sizeof(mc_req))) == SOCKET_ERROR) {
	    axis2_char_t buf[AXUTIL_WIN32_ERROR_BUFSIZE];
		axutil_win32_get_last_wsa_error(buf, AXUTIL_WIN32_ERROR_BUFSIZE);
		AXIS2_ERROR_SET(env->error, AXIS2_ERROR_SOCKET_ERROR, AXIS2_FAILURE);
		AXIS2_LOG_ERROR(env->log, AXIS2_LOG_SI, buf); 
        return AXIS2_FAILURE;
	}
#else
	if ((setsockopt(sock, IPPROTO_IP, IP_ADD_MEMBERSHIP, (char *) &mc_req, sizeof(mc_req))) < 0) {
	    AXIS2_ERROR_SET(env->error, AXIS2_ERROR_SOCKET_ERROR, AXIS2_FAILURE);
        return AXIS2_FAILURE;
	}
#endif	
    return sock;
}







<|start_filename|>xdocs/api/html/axutil__stream_8h-source.html<|end_filename|>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html><head><meta http-equiv="Content-Type" content="text/html;charset=UTF-8">
<title>Axis2/C: axutil_stream.h Source File</title>
<link href="doxygen.css" rel="stylesheet" type="text/css">
<link href="tabs.css" rel="stylesheet" type="text/css">
</head><body>
<!-- Generated by Doxygen 1.5.3 -->
<div class="tabs">
  <ul>
    <li><a href="index.html"><span>Main&nbsp;Page</span></a></li>
    <li><a href="modules.html"><span>Modules</span></a></li>
    <li><a href="annotated.html"><span>Classes</span></a></li>
    <li class="current"><a href="files.html"><span>Files</span></a></li>
    <li><a href="dirs.html"><span>Directories</span></a></li>
    <li><a href="pages.html"><span>Related&nbsp;Pages</span></a></li>
    <li><a href="examples.html"><span>Examples</span></a></li>
    <li>
      <form action="search.php" method="get">
        <table cellspacing="0" cellpadding="0" border="0">
          <tr>
            <td><label>&nbsp;<u>S</u>earch&nbsp;for&nbsp;</label></td>
            <td><input type="text" name="query" value="" size="20" accesskey="s"/></td>
          </tr>
        </table>
      </form>
    </li>
  </ul>
</div>
<div class="nav">
<a class="el" href="dir_f60961de8e5edc3b2658ef023e959e45.html">deploy</a>&nbsp;&raquo&nbsp;<a class="el" href="dir_6b4e91e54b7316b376882a6402adbf44.html">include</a>&nbsp;&raquo&nbsp;<a class="el" href="dir_df3a7695d5a9e696f30b948b566829e7.html">axis2-1.6.0</a></div>
<h1>axutil_stream.h</h1><div class="fragment"><pre class="fragment"><a name="l00001"></a>00001 
<a name="l00002"></a>00002 <span class="comment">/*</span>
<a name="l00003"></a>00003 <span class="comment"> * Copyright 2004,2005 The Apache Software Foundation.</span>
<a name="l00004"></a>00004 <span class="comment"> *</span>
<a name="l00005"></a>00005 <span class="comment"> * Licensed under the Apache License, Version 2.0 (the "License");</span>
<a name="l00006"></a>00006 <span class="comment"> * you may not use this file except in compliance with the License.</span>
<a name="l00007"></a>00007 <span class="comment"> * You may obtain count copy of the License at</span>
<a name="l00008"></a>00008 <span class="comment"> *</span>
<a name="l00009"></a>00009 <span class="comment"> *      http://www.apache.org/licenses/LICENSE-2.0</span>
<a name="l00010"></a>00010 <span class="comment"> *</span>
<a name="l00011"></a>00011 <span class="comment"> * Unless required by applicable law or agreed to in writing, software</span>
<a name="l00012"></a>00012 <span class="comment"> * distributed under the License is distributed on an "AS IS" BASIS,</span>
<a name="l00013"></a>00013 <span class="comment"> * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.</span>
<a name="l00014"></a>00014 <span class="comment"> * See the License for the specific language governing permissions and</span>
<a name="l00015"></a>00015 <span class="comment"> * limitations under the License.</span>
<a name="l00016"></a>00016 <span class="comment"> */</span>
<a name="l00017"></a>00017 
<a name="l00018"></a>00018 <span class="preprocessor">#ifndef AXUTIL_STREAM_H</span>
<a name="l00019"></a>00019 <span class="preprocessor"></span><span class="preprocessor">#define AXUTIL_STREAM_H</span>
<a name="l00020"></a>00020 <span class="preprocessor"></span>
<a name="l00021"></a>00021 <span class="preprocessor">#include &lt;<a class="code" href="axutil__utils_8h.html">axutil_utils.h</a>&gt;</span>
<a name="l00022"></a>00022 <span class="preprocessor">#include &lt;axutil_utils_defines.h&gt;</span>
<a name="l00023"></a>00023 <span class="preprocessor">#include &lt;<a class="code" href="axutil__env_8h.html" title="Axis2 environment that acts as a container for error, log and memory allocator routines...">axutil_env.h</a>&gt;</span>
<a name="l00024"></a>00024 <span class="preprocessor">#include &lt;stdio.h&gt;</span>
<a name="l00025"></a>00025 
<a name="l00026"></a>00026 <span class="preprocessor">#ifdef __cplusplus</span>
<a name="l00027"></a>00027 <span class="preprocessor"></span><span class="keyword">extern</span> <span class="stringliteral">"C"</span>
<a name="l00028"></a>00028 {
<a name="l00029"></a>00029 <span class="preprocessor">#endif</span>
<a name="l00030"></a>00030 <span class="preprocessor"></span>
<a name="l00031"></a>00031 <span class="preprocessor">#define AXIS2_STREAM_DEFAULT_BUF_SIZE 2048</span>
<a name="l00032"></a>00032 <span class="preprocessor"></span>
<a name="l00045"></a><a class="code" href="group__axutil__stream.html#g8646e3e161857a70ec20d7e85bfb6cf4">00045</a>     <span class="keyword">enum</span> <a class="code" href="group__axutil__stream.html#g8646e3e161857a70ec20d7e85bfb6cf4" title="Axis2 stream types.">axutil_stream_type</a>
<a name="l00046"></a>00046     {
<a name="l00047"></a>00047         AXIS2_STREAM_BASIC = 0,
<a name="l00048"></a>00048         AXIS2_STREAM_FILE,
<a name="l00049"></a>00049         AXIS2_STREAM_SOCKET,
<a name="l00050"></a>00050         AXIS2_STREAM_MANAGED    <span class="comment">/* Example Wrapper stream for Apache2 read mechanism */</span>
<a name="l00051"></a>00051     };
<a name="l00052"></a>00052 
<a name="l00053"></a>00053     <span class="keyword">typedef</span> <span class="keyword">enum</span> <a class="code" href="group__axutil__stream.html#g8646e3e161857a70ec20d7e85bfb6cf4" title="Axis2 stream types.">axutil_stream_type</a> axutil_stream_type_t;
<a name="l00054"></a>00054     <span class="keyword">typedef</span> <span class="keyword">struct </span>axutil_stream axutil_stream_t;
<a name="l00055"></a>00055 
<a name="l00056"></a>00056     <span class="keyword">typedef</span> int(
<a name="l00057"></a>00057         AXIS2_CALL
<a name="l00058"></a>00058         * AXUTIL_STREAM_READ)(
<a name="l00059"></a>00059             axutil_stream_t * stream,
<a name="l00060"></a>00060             <span class="keyword">const</span> <a class="code" href="structaxutil__env.html" title="Axis2 Environment struct.">axutil_env_t</a> * env,
<a name="l00061"></a>00061             <span class="keywordtype">void</span> *buffer,
<a name="l00062"></a>00062             <span class="keywordtype">size_t</span> count);
<a name="l00063"></a>00063 
<a name="l00064"></a>00064     <span class="keyword">typedef</span> int(
<a name="l00065"></a>00065         AXIS2_CALL
<a name="l00066"></a>00066         * AXUTIL_STREAM_WRITE)(
<a name="l00067"></a>00067             axutil_stream_t * stream,
<a name="l00068"></a>00068             <span class="keyword">const</span> <a class="code" href="structaxutil__env.html" title="Axis2 Environment struct.">axutil_env_t</a> * env,
<a name="l00069"></a>00069             <span class="keyword">const</span> <span class="keywordtype">void</span> *buffer,
<a name="l00070"></a>00070             <span class="keywordtype">size_t</span> count);
<a name="l00071"></a>00071 
<a name="l00072"></a>00072     <span class="keyword">typedef</span> int(
<a name="l00073"></a>00073         AXIS2_CALL
<a name="l00074"></a>00074         * AXUTIL_STREAM_SKIP)(
<a name="l00075"></a>00075             axutil_stream_t * stream,
<a name="l00076"></a>00076             <span class="keyword">const</span> <a class="code" href="structaxutil__env.html" title="Axis2 Environment struct.">axutil_env_t</a> * env,
<a name="l00077"></a>00077             <span class="keywordtype">int</span> count);
<a name="l00078"></a>00078 
<a name="l00079"></a>00079     <span class="keyword">struct </span>axutil_stream
<a name="l00080"></a>00080     {
<a name="l00081"></a>00081         axutil_stream_type_t stream_type;
<a name="l00082"></a>00082         <span class="keywordtype">int</span> len;
<a name="l00083"></a>00083         <span class="keywordtype">int</span> max_len;
<a name="l00084"></a>00084         <span class="comment">/* Only one of these is used for a perticlar</span>
<a name="l00085"></a>00085 <span class="comment">         * instance depending on the type</span>
<a name="l00086"></a>00086 <span class="comment">         */</span>
<a name="l00087"></a>00087         axis2_char_t *buffer;
<a name="l00088"></a>00088         axis2_char_t *buffer_head;
<a name="l00089"></a>00089         FILE *fp;
<a name="l00090"></a>00090         <span class="keywordtype">int</span> socket;
<a name="l00091"></a>00091 
<a name="l00092"></a>00092         <span class="keywordtype">int</span> axis2_eof;
<a name="l00093"></a>00093 
<a name="l00100"></a>00100         int(
<a name="l00101"></a>00101             AXIS2_CALL
<a name="l00102"></a>00102             * read)(
<a name="l00103"></a>00103                 axutil_stream_t * stream,
<a name="l00104"></a>00104                 <span class="keyword">const</span> <a class="code" href="structaxutil__env.html" title="Axis2 Environment struct.">axutil_env_t</a> * env,
<a name="l00105"></a>00105                 <span class="keywordtype">void</span> *buffer,
<a name="l00106"></a>00106                 <span class="keywordtype">size_t</span> count);
<a name="l00107"></a>00107 
<a name="l00114"></a>00114         int(
<a name="l00115"></a>00115             AXIS2_CALL
<a name="l00116"></a>00116             * write)(
<a name="l00117"></a>00117                 axutil_stream_t * stream,
<a name="l00118"></a>00118                 <span class="keyword">const</span> <a class="code" href="structaxutil__env.html" title="Axis2 Environment struct.">axutil_env_t</a> * env,
<a name="l00119"></a>00119                 <span class="keyword">const</span> <span class="keywordtype">void</span> *buffer,
<a name="l00120"></a>00120                 <span class="keywordtype">size_t</span> count);
<a name="l00121"></a>00121 
<a name="l00127"></a>00127         int(
<a name="l00128"></a>00128             AXIS2_CALL
<a name="l00129"></a>00129             * skip)(
<a name="l00130"></a>00130                 axutil_stream_t * stream,
<a name="l00131"></a>00131                 <span class="keyword">const</span> <a class="code" href="structaxutil__env.html" title="Axis2 Environment struct.">axutil_env_t</a> * env,
<a name="l00132"></a>00132                 <span class="keywordtype">int</span> count);
<a name="l00133"></a>00133     };
<a name="l00134"></a>00134 
<a name="l00139"></a>00139     AXIS2_EXTERN <span class="keywordtype">void</span> AXIS2_CALL
<a name="l00140"></a>00140     <a class="code" href="group__axutil__stream.html#gd327ed3142060fe3ccaae3bdc74af6b5">axutil_stream_free</a>(
<a name="l00141"></a>00141         axutil_stream_t * stream,
<a name="l00142"></a>00142         <span class="keyword">const</span> <a class="code" href="structaxutil__env.html" title="Axis2 Environment struct.">axutil_env_t</a> * env);
<a name="l00143"></a>00143 
<a name="l00144"></a>00144     AXIS2_EXTERN <span class="keywordtype">void</span> AXIS2_CALL
<a name="l00145"></a>00145     <a class="code" href="group__axutil__stream.html#g35645c14df7fdd3c4d61b381a543f9ed">axutil_stream_free_void_arg</a>(
<a name="l00146"></a>00146         <span class="keywordtype">void</span> *stream,
<a name="l00147"></a>00147         <span class="keyword">const</span> <a class="code" href="structaxutil__env.html" title="Axis2 Environment struct.">axutil_env_t</a> * env);
<a name="l00148"></a>00148 
<a name="l00155"></a>00155     AXIS2_EXTERN <span class="keywordtype">int</span> AXIS2_CALL
<a name="l00156"></a>00156     <a class="code" href="group__axutil__stream.html#g50c7a90bb8fd3b6d3655c50e82120a0b">axutil_stream_read</a>(
<a name="l00157"></a>00157         axutil_stream_t * stream,
<a name="l00158"></a>00158         <span class="keyword">const</span> <a class="code" href="structaxutil__env.html" title="Axis2 Environment struct.">axutil_env_t</a> * env,
<a name="l00159"></a>00159         <span class="keywordtype">void</span> *buffer,
<a name="l00160"></a>00160         <span class="keywordtype">size_t</span> count);
<a name="l00161"></a>00161 
<a name="l00168"></a>00168     AXIS2_EXTERN <span class="keywordtype">int</span> AXIS2_CALL
<a name="l00169"></a>00169     <a class="code" href="group__axutil__stream.html#g535e43c801c4c0531429c580e96846b6">axutil_stream_write</a>(
<a name="l00170"></a>00170         axutil_stream_t * stream,
<a name="l00171"></a>00171         <span class="keyword">const</span> <a class="code" href="structaxutil__env.html" title="Axis2 Environment struct.">axutil_env_t</a> * env,
<a name="l00172"></a>00172         <span class="keyword">const</span> <span class="keywordtype">void</span> *buffer,
<a name="l00173"></a>00173         <span class="keywordtype">size_t</span> count);
<a name="l00174"></a>00174 
<a name="l00180"></a>00180     AXIS2_EXTERN <span class="keywordtype">int</span> AXIS2_CALL
<a name="l00181"></a>00181     <a class="code" href="group__axutil__stream.html#g0fbee1c75bbcf404dc9a58366ab1d1b7">axutil_stream_skip</a>(
<a name="l00182"></a>00182         axutil_stream_t * stream,
<a name="l00183"></a>00183         <span class="keyword">const</span> <a class="code" href="structaxutil__env.html" title="Axis2 Environment struct.">axutil_env_t</a> * env,
<a name="l00184"></a>00184         <span class="keywordtype">int</span> count);
<a name="l00185"></a>00185 
<a name="l00191"></a>00191     AXIS2_EXTERN <span class="keywordtype">int</span> AXIS2_CALL
<a name="l00192"></a>00192     <a class="code" href="group__axutil__stream.html#g614ce1d0378d9e899d65e738dfe05e09">axutil_stream_get_len</a>(
<a name="l00193"></a>00193         axutil_stream_t * stream,
<a name="l00194"></a>00194         <span class="keyword">const</span> <a class="code" href="structaxutil__env.html" title="Axis2 Environment struct.">axutil_env_t</a> * env);
<a name="l00195"></a>00195 
<a name="l00199"></a>00199     AXIS2_EXTERN axutil_stream_t *AXIS2_CALL
<a name="l00200"></a>00200     <a class="code" href="group__axutil__stream.html#g0eaf7a2ca366ab5e01ce5d71072f8702" title="Constructor for creating an in memory stream.">axutil_stream_create_basic</a>(
<a name="l00201"></a>00201         <span class="keyword">const</span> <a class="code" href="structaxutil__env.html" title="Axis2 Environment struct.">axutil_env_t</a> * env);
<a name="l00202"></a>00202 
<a name="l00207"></a>00207     AXIS2_EXTERN axutil_stream_t *AXIS2_CALL
<a name="l00208"></a>00208     <a class="code" href="group__axutil__stream.html#g1c531cc65e9cf1a2f652795d5846ff1f" title="Constructor for creating a file stream.">axutil_stream_create_file</a>(
<a name="l00209"></a>00209         <span class="keyword">const</span> <a class="code" href="structaxutil__env.html" title="Axis2 Environment struct.">axutil_env_t</a> * env,
<a name="l00210"></a>00210         FILE * fp);
<a name="l00211"></a>00211 
<a name="l00216"></a>00216     AXIS2_EXTERN axutil_stream_t *AXIS2_CALL
<a name="l00217"></a>00217     <a class="code" href="group__axutil__stream.html#g86be0e77c1793480716cd0de34e8fe6b" title="Constructor for creating a file stream.">axutil_stream_create_socket</a>(
<a name="l00218"></a>00218         <span class="keyword">const</span> <a class="code" href="structaxutil__env.html" title="Axis2 Environment struct.">axutil_env_t</a> * env,
<a name="l00219"></a>00219         <span class="keywordtype">int</span> socket);
<a name="l00220"></a>00220 
<a name="l00224"></a>00224     AXIS2_EXTERN <span class="keywordtype">void</span> AXIS2_CALL
<a name="l00225"></a>00225     <a class="code" href="group__axutil__stream.html#gd327ed3142060fe3ccaae3bdc74af6b5">axutil_stream_free</a>(
<a name="l00226"></a>00226         axutil_stream_t * stream,
<a name="l00227"></a>00227         <span class="keyword">const</span> <a class="code" href="structaxutil__env.html" title="Axis2 Environment struct.">axutil_env_t</a> * env);
<a name="l00228"></a>00228 
<a name="l00235"></a>00235     AXIS2_EXTERN <span class="keywordtype">void</span> AXIS2_CALL
<a name="l00236"></a>00236     <a class="code" href="group__axutil__stream.html#g35645c14df7fdd3c4d61b381a543f9ed">axutil_stream_free_void_arg</a>(
<a name="l00237"></a>00237         <span class="keywordtype">void</span> *stream,
<a name="l00238"></a>00238         <span class="keyword">const</span> <a class="code" href="structaxutil__env.html" title="Axis2 Environment struct.">axutil_env_t</a> * env);
<a name="l00239"></a>00239 
<a name="l00243"></a>00243     AXIS2_EXTERN axis2_char_t *AXIS2_CALL
<a name="l00244"></a>00244     <a class="code" href="group__axutil__stream.html#gb95c687ddd6d6b1a4d3dd37ca3e00a34">axutil_stream_get_buffer</a>(
<a name="l00245"></a>00245         <span class="keyword">const</span> axutil_stream_t * stream,
<a name="l00246"></a>00246         <span class="keyword">const</span> <a class="code" href="structaxutil__env.html" title="Axis2 Environment struct.">axutil_env_t</a> * env);
<a name="l00247"></a>00247 
<a name="l00248"></a>00248     AXIS2_EXTERN axis2_status_t AXIS2_CALL
<a name="l00249"></a>00249     axutil_stream_flush_buffer(
<a name="l00250"></a>00250         axutil_stream_t * stream,
<a name="l00251"></a>00251         <span class="keyword">const</span> <a class="code" href="structaxutil__env.html" title="Axis2 Environment struct.">axutil_env_t</a> * env);
<a name="l00252"></a>00252 
<a name="l00253"></a>00253     AXIS2_EXTERN <span class="keywordtype">int</span> AXIS2_CALL
<a name="l00254"></a>00254     axutil_stream_peek_socket(
<a name="l00255"></a>00255         axutil_stream_t * stream,
<a name="l00256"></a>00256         <span class="keyword">const</span> <a class="code" href="structaxutil__env.html" title="Axis2 Environment struct.">axutil_env_t</a> * env,
<a name="l00257"></a>00257         <span class="keywordtype">void</span> *buffer,
<a name="l00258"></a>00258         <span class="keywordtype">size_t</span> count);
<a name="l00259"></a>00259 
<a name="l00260"></a>00260     AXIS2_EXTERN axis2_status_t AXIS2_CALL
<a name="l00261"></a>00261     axutil_stream_flush(
<a name="l00262"></a>00262         axutil_stream_t * stream,
<a name="l00263"></a>00263         <span class="keyword">const</span> <a class="code" href="structaxutil__env.html" title="Axis2 Environment struct.">axutil_env_t</a> * env);
<a name="l00264"></a>00264 
<a name="l00265"></a>00265     AXIS2_EXTERN axis2_status_t AXIS2_CALL
<a name="l00266"></a>00266     axutil_stream_close(
<a name="l00267"></a>00267         axutil_stream_t * stream,
<a name="l00268"></a>00268         <span class="keyword">const</span> <a class="code" href="structaxutil__env.html" title="Axis2 Environment struct.">axutil_env_t</a> * env);
<a name="l00269"></a>00269 
<a name="l00270"></a>00270     AXIS2_EXTERN axis2_status_t AXIS2_CALL
<a name="l00271"></a>00271     axutil_stream_set_read(
<a name="l00272"></a>00272         axutil_stream_t * stream,
<a name="l00273"></a>00273         <span class="keyword">const</span> <a class="code" href="structaxutil__env.html" title="Axis2 Environment struct.">axutil_env_t</a> * env,
<a name="l00274"></a>00274         AXUTIL_STREAM_READ func);
<a name="l00275"></a>00275 
<a name="l00276"></a>00276     AXIS2_EXTERN axis2_status_t AXIS2_CALL
<a name="l00277"></a>00277     axutil_stream_set_write(
<a name="l00278"></a>00278         axutil_stream_t * stream,
<a name="l00279"></a>00279         <span class="keyword">const</span> <a class="code" href="structaxutil__env.html" title="Axis2 Environment struct.">axutil_env_t</a> * env,
<a name="l00280"></a>00280         AXUTIL_STREAM_WRITE func);
<a name="l00281"></a>00281 
<a name="l00282"></a>00282     AXIS2_EXTERN axis2_status_t AXIS2_CALL
<a name="l00283"></a>00283     axutil_stream_set_skip(
<a name="l00284"></a>00284         axutil_stream_t * stream,
<a name="l00285"></a>00285         <span class="keyword">const</span> <a class="code" href="structaxutil__env.html" title="Axis2 Environment struct.">axutil_env_t</a> * env,
<a name="l00286"></a>00286         AXUTIL_STREAM_SKIP func);
<a name="l00287"></a>00287 
<a name="l00290"></a>00290 <span class="preprocessor">#ifdef __cplusplus</span>
<a name="l00291"></a>00291 <span class="preprocessor"></span>}
<a name="l00292"></a>00292 <span class="preprocessor">#endif</span>
<a name="l00293"></a>00293 <span class="preprocessor"></span>
<a name="l00294"></a>00294 <span class="preprocessor">#endif                          </span><span class="comment">/* AXIS2_STREAM_H */</span>
</pre></div><hr size="1"><address style="text-align: right;"><small>Generated on Fri Apr 17 11:49:43 2009 for Axis2/C by&nbsp;
<a href="http://www.doxygen.org/index.html">
<img src="doxygen.png" alt="doxygen" align="middle" border="0"></a> 1.5.3 </small></address>
</body>
</html>


<|start_filename|>xdocs/api/html/axutil__linked__list_8h-source.html<|end_filename|>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html><head><meta http-equiv="Content-Type" content="text/html;charset=UTF-8">
<title>Axis2/C: axutil_linked_list.h Source File</title>
<link href="doxygen.css" rel="stylesheet" type="text/css">
<link href="tabs.css" rel="stylesheet" type="text/css">
</head><body>
<!-- Generated by Doxygen 1.5.3 -->
<div class="tabs">
  <ul>
    <li><a href="index.html"><span>Main&nbsp;Page</span></a></li>
    <li><a href="modules.html"><span>Modules</span></a></li>
    <li><a href="annotated.html"><span>Classes</span></a></li>
    <li class="current"><a href="files.html"><span>Files</span></a></li>
    <li><a href="dirs.html"><span>Directories</span></a></li>
    <li><a href="pages.html"><span>Related&nbsp;Pages</span></a></li>
    <li><a href="examples.html"><span>Examples</span></a></li>
    <li>
      <form action="search.php" method="get">
        <table cellspacing="0" cellpadding="0" border="0">
          <tr>
            <td><label>&nbsp;<u>S</u>earch&nbsp;for&nbsp;</label></td>
            <td><input type="text" name="query" value="" size="20" accesskey="s"/></td>
          </tr>
        </table>
      </form>
    </li>
  </ul>
</div>
<div class="nav">
<a class="el" href="dir_f60961de8e5edc3b2658ef023e959e45.html">deploy</a>&nbsp;&raquo&nbsp;<a class="el" href="dir_6b4e91e54b7316b376882a6402adbf44.html">include</a>&nbsp;&raquo&nbsp;<a class="el" href="dir_df3a7695d5a9e696f30b948b566829e7.html">axis2-1.6.0</a></div>
<h1>axutil_linked_list.h</h1><a href="axutil__linked__list_8h.html">Go to the documentation of this file.</a><div class="fragment"><pre class="fragment"><a name="l00001"></a>00001 
<a name="l00002"></a>00002 <span class="comment">/*</span>
<a name="l00003"></a>00003 <span class="comment"> * Licensed to the Apache Software Foundation (ASF) under one or more</span>
<a name="l00004"></a>00004 <span class="comment"> * contributor license agreements.  See the NOTICE file distributed with</span>
<a name="l00005"></a>00005 <span class="comment"> * this work for additional information regarding copyright ownership.</span>
<a name="l00006"></a>00006 <span class="comment"> * The ASF licenses this file to You under the Apache License, Version 2.0</span>
<a name="l00007"></a>00007 <span class="comment"> * (the "License"); you may not use this file except in compliance with</span>
<a name="l00008"></a>00008 <span class="comment"> * the License.  You may obtain a copy of the License at</span>
<a name="l00009"></a>00009 <span class="comment"> *</span>
<a name="l00010"></a>00010 <span class="comment"> *      http://www.apache.org/licenses/LICENSE-2.0</span>
<a name="l00011"></a>00011 <span class="comment"> *</span>
<a name="l00012"></a>00012 <span class="comment"> * Unless required by applicable law or agreed to in writing, software</span>
<a name="l00013"></a>00013 <span class="comment"> * distributed under the License is distributed on an "AS IS" BASIS,</span>
<a name="l00014"></a>00014 <span class="comment"> * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.</span>
<a name="l00015"></a>00015 <span class="comment"> * See the License for the specific language governing permissions and</span>
<a name="l00016"></a>00016 <span class="comment"> * limitations under the License.</span>
<a name="l00017"></a>00017 <span class="comment"> */</span>
<a name="l00018"></a>00018 
<a name="l00019"></a>00019 <span class="preprocessor">#ifndef AXUTIL_LINKED_LIST_H</span>
<a name="l00020"></a>00020 <span class="preprocessor"></span><span class="preprocessor">#define AXUTIL_LINKED_LIST_H</span>
<a name="l00021"></a>00021 <span class="preprocessor"></span>
<a name="l00027"></a>00027 <span class="preprocessor">#include &lt;axutil_utils_defines.h&gt;</span>
<a name="l00028"></a>00028 <span class="preprocessor">#include &lt;<a class="code" href="axutil__env_8h.html" title="Axis2 environment that acts as a container for error, log and memory allocator routines...">axutil_env.h</a>&gt;</span>
<a name="l00029"></a>00029 
<a name="l00030"></a>00030 <span class="preprocessor">#ifdef __cplusplus</span>
<a name="l00031"></a>00031 <span class="preprocessor"></span><span class="keyword">extern</span> <span class="stringliteral">"C"</span>
<a name="l00032"></a>00032 {
<a name="l00033"></a>00033 <span class="preprocessor">#endif</span>
<a name="l00034"></a>00034 <span class="preprocessor"></span>
<a name="l00035"></a>00035     <span class="keyword">typedef</span> <span class="keyword">struct </span>axutil_linked_list axutil_linked_list_t;
<a name="l00036"></a>00036 
<a name="l00046"></a><a class="code" href="structentry__s.html">00046</a>     <span class="keyword">typedef</span> <span class="keyword">struct </span><a class="code" href="structentry__s.html">entry_s</a>
<a name="l00047"></a>00047     {
<a name="l00048"></a>00048 
<a name="l00050"></a><a class="code" href="structentry__s.html#b1fbd52ad6c6a83972b0dadd3c875fae">00050</a>         <span class="keywordtype">void</span> *<a class="code" href="structentry__s.html#b1fbd52ad6c6a83972b0dadd3c875fae">data</a>;
<a name="l00051"></a>00051 
<a name="l00053"></a><a class="code" href="group__axutil__linked__list.html#g8663ba871d35c8166f3a61ce49c3d0f0">00053</a>         <span class="keyword">struct </span><a class="code" href="structentry__s.html">entry_s</a> *<a class="code" href="group__axutil__linked__list.html#g8663ba871d35c8166f3a61ce49c3d0f0">next</a>;
<a name="l00054"></a>00054 
<a name="l00056"></a><a class="code" href="group__axutil__linked__list.html#g13ae42624c368b144f54520dcca0e770">00056</a>         <span class="keyword">struct </span><a class="code" href="structentry__s.html">entry_s</a> *<a class="code" href="group__axutil__linked__list.html#g13ae42624c368b144f54520dcca0e770">previous</a>;
<a name="l00057"></a>00057 
<a name="l00058"></a>00058     }
<a name="l00059"></a>00059     <a class="code" href="structentry__s.html">entry_t</a>;                <span class="comment">/* struct entry */</span>
<a name="l00060"></a>00060 
<a name="l00064"></a>00064     AXIS2_EXTERN axutil_linked_list_t *AXIS2_CALL
<a name="l00065"></a>00065     <a class="code" href="group__axutil__linked__list.html#g243e4777c89d6e52552208c96f343323">axutil_linked_list_create</a>(
<a name="l00066"></a>00066         <span class="keyword">const</span> <a class="code" href="structaxutil__env.html" title="Axis2 Environment struct.">axutil_env_t</a> * env);
<a name="l00067"></a>00067 
<a name="l00068"></a>00068     AXIS2_EXTERN <span class="keywordtype">void</span> AXIS2_CALL
<a name="l00069"></a>00069     axutil_linked_list_free(
<a name="l00070"></a>00070         axutil_linked_list_t * linked_list,
<a name="l00071"></a>00071         <span class="keyword">const</span> <a class="code" href="structaxutil__env.html" title="Axis2 Environment struct.">axutil_env_t</a> * env);
<a name="l00072"></a>00072 
<a name="l00085"></a>00085     AXIS2_EXTERN <a class="code" href="structentry__s.html">entry_t</a> *AXIS2_CALL
<a name="l00086"></a>00086     <a class="code" href="group__axutil__linked__list.html#g2d5024ce7b59b66e82978f8ca0c74a06">axutil_linked_list_get_entry</a>(
<a name="l00087"></a>00087         axutil_linked_list_t * linked_list,
<a name="l00088"></a>00088         <span class="keyword">const</span> <a class="code" href="structaxutil__env.html" title="Axis2 Environment struct.">axutil_env_t</a> * env,
<a name="l00089"></a>00089         <span class="keywordtype">int</span> n);
<a name="l00090"></a>00090 
<a name="l00097"></a>00097     AXIS2_EXTERN axis2_status_t AXIS2_CALL
<a name="l00098"></a>00098     <a class="code" href="group__axutil__linked__list.html#ge16515ceea10d7cc07f34eb9e1a5d37a">axutil_linked_list_remove_entry</a>(
<a name="l00099"></a>00099         axutil_linked_list_t * linked_list,
<a name="l00100"></a>00100         <span class="keyword">const</span> <a class="code" href="structaxutil__env.html" title="Axis2 Environment struct.">axutil_env_t</a> * env,
<a name="l00101"></a>00101         <a class="code" href="structentry__s.html">entry_t</a> * e);
<a name="l00102"></a>00102 
<a name="l00108"></a>00108     AXIS2_EXTERN axis2_bool_t AXIS2_CALL
<a name="l00109"></a>00109 
<a name="l00110"></a>00110     <a class="code" href="group__axutil__linked__list.html#g44c386ea5a8baf8bc1574b6a6b42e454">axutil_linked_list_check_bounds_inclusive</a>(
<a name="l00111"></a>00111         axutil_linked_list_t * linked_list,
<a name="l00112"></a>00112         <span class="keyword">const</span> <a class="code" href="structaxutil__env.html" title="Axis2 Environment struct.">axutil_env_t</a> * env,
<a name="l00113"></a>00113         <span class="keywordtype">int</span> index);
<a name="l00114"></a>00114 
<a name="l00120"></a>00120     AXIS2_EXTERN axis2_bool_t AXIS2_CALL
<a name="l00121"></a>00121 
<a name="l00122"></a>00122     <a class="code" href="group__axutil__linked__list.html#g7f24198b995b898be3265a181b3c8457">axutil_linked_list_check_bounds_exclusive</a>(
<a name="l00123"></a>00123         axutil_linked_list_t * linked_list,
<a name="l00124"></a>00124         <span class="keyword">const</span> <a class="code" href="structaxutil__env.html" title="Axis2 Environment struct.">axutil_env_t</a> * env,
<a name="l00125"></a>00125         <span class="keywordtype">int</span> index);
<a name="l00126"></a>00126 
<a name="l00132"></a>00132     AXIS2_EXTERN <span class="keywordtype">void</span> *AXIS2_CALL
<a name="l00133"></a>00133     <a class="code" href="group__axutil__linked__list.html#g44896e7785095b36bed80d7c0b438a1a">axutil_linked_list_get_first</a>(
<a name="l00134"></a>00134         axutil_linked_list_t * linked_list,
<a name="l00135"></a>00135         <span class="keyword">const</span> <a class="code" href="structaxutil__env.html" title="Axis2 Environment struct.">axutil_env_t</a> * env);
<a name="l00136"></a>00136 
<a name="l00142"></a>00142     AXIS2_EXTERN <span class="keywordtype">void</span> *AXIS2_CALL
<a name="l00143"></a>00143     <a class="code" href="group__axutil__linked__list.html#gacdf3f19dc61bf262c5e25e1dd3ed5fa">axutil_linked_list_get_last</a>(
<a name="l00144"></a>00144         axutil_linked_list_t * linked_list,
<a name="l00145"></a>00145         <span class="keyword">const</span> <a class="code" href="structaxutil__env.html" title="Axis2 Environment struct.">axutil_env_t</a> * env);
<a name="l00146"></a>00146 
<a name="l00152"></a>00152     AXIS2_EXTERN <span class="keywordtype">void</span> *AXIS2_CALL
<a name="l00153"></a>00153     <a class="code" href="group__axutil__linked__list.html#gfc28d2d0a4f2f1adffde51c2d8182779">axutil_linked_list_remove_first</a>(
<a name="l00154"></a>00154         axutil_linked_list_t * linked_list,
<a name="l00155"></a>00155         <span class="keyword">const</span> <a class="code" href="structaxutil__env.html" title="Axis2 Environment struct.">axutil_env_t</a> * env);
<a name="l00156"></a>00156 
<a name="l00162"></a>00162     AXIS2_EXTERN <span class="keywordtype">void</span> *AXIS2_CALL
<a name="l00163"></a>00163     <a class="code" href="group__axutil__linked__list.html#g275168372eb9ef197be1565946651a2c">axutil_linked_list_remove_last</a>(
<a name="l00164"></a>00164         axutil_linked_list_t * linked_list,
<a name="l00165"></a>00165         <span class="keyword">const</span> <a class="code" href="structaxutil__env.html" title="Axis2 Environment struct.">axutil_env_t</a> * env);
<a name="l00166"></a>00166 
<a name="l00172"></a>00172     AXIS2_EXTERN axis2_status_t AXIS2_CALL
<a name="l00173"></a>00173     <a class="code" href="group__axutil__linked__list.html#g8b4efcdc1364da7880fb40603f4925d8">axutil_linked_list_add_first</a>(
<a name="l00174"></a>00174         axutil_linked_list_t * linked_list,
<a name="l00175"></a>00175         <span class="keyword">const</span> <a class="code" href="structaxutil__env.html" title="Axis2 Environment struct.">axutil_env_t</a> * env,
<a name="l00176"></a>00176         <span class="keywordtype">void</span> *o);
<a name="l00177"></a>00177 
<a name="l00183"></a>00183     AXIS2_EXTERN axis2_status_t AXIS2_CALL
<a name="l00184"></a>00184     <a class="code" href="group__axutil__linked__list.html#g44b716389b3a40e79a4dae6700ae2b24">axutil_linked_list_add_last</a>(
<a name="l00185"></a>00185         axutil_linked_list_t * linked_list,
<a name="l00186"></a>00186         <span class="keyword">const</span> <a class="code" href="structaxutil__env.html" title="Axis2 Environment struct.">axutil_env_t</a> * env,
<a name="l00187"></a>00187         <span class="keywordtype">void</span> *o);
<a name="l00188"></a>00188 
<a name="l00196"></a>00196     AXIS2_EXTERN axis2_bool_t AXIS2_CALL
<a name="l00197"></a>00197     <a class="code" href="group__axutil__linked__list.html#g0382c1da7f8f02d41a6c8993800af85b">axutil_linked_list_contains</a>(
<a name="l00198"></a>00198         axutil_linked_list_t * linked_list,
<a name="l00199"></a>00199         <span class="keyword">const</span> <a class="code" href="structaxutil__env.html" title="Axis2 Environment struct.">axutil_env_t</a> * env,
<a name="l00200"></a>00200         <span class="keywordtype">void</span> *o);
<a name="l00201"></a>00201 
<a name="l00207"></a>00207     AXIS2_EXTERN <span class="keywordtype">int</span> AXIS2_CALL
<a name="l00208"></a>00208     <a class="code" href="group__axutil__linked__list.html#g29f7df9bfa28df5111de92e7af0b8f7b">axutil_linked_list_size</a>(
<a name="l00209"></a>00209         axutil_linked_list_t * linked_list,
<a name="l00210"></a>00210         <span class="keyword">const</span> <a class="code" href="structaxutil__env.html" title="Axis2 Environment struct.">axutil_env_t</a> * env);
<a name="l00211"></a>00211 
<a name="l00218"></a>00218     AXIS2_EXTERN axis2_bool_t AXIS2_CALL
<a name="l00219"></a>00219     <a class="code" href="group__axutil__linked__list.html#g0084179ae23ffb3b65f0345933aaacf3">axutil_linked_list_add</a>(
<a name="l00220"></a>00220         axutil_linked_list_t * linked_list,
<a name="l00221"></a>00221         <span class="keyword">const</span> <a class="code" href="structaxutil__env.html" title="Axis2 Environment struct.">axutil_env_t</a> * env,
<a name="l00222"></a>00222         <span class="keywordtype">void</span> *o);
<a name="l00223"></a>00223 
<a name="l00231"></a>00231     AXIS2_EXTERN axis2_bool_t AXIS2_CALL
<a name="l00232"></a>00232     <a class="code" href="group__axutil__linked__list.html#ga595fa9b25737e98268cababb5a23ccd">axutil_linked_list_remove</a>(
<a name="l00233"></a>00233         axutil_linked_list_t * linked_list,
<a name="l00234"></a>00234         <span class="keyword">const</span> <a class="code" href="structaxutil__env.html" title="Axis2 Environment struct.">axutil_env_t</a> * env,
<a name="l00235"></a>00235         <span class="keywordtype">void</span> *o);
<a name="l00236"></a>00236 
<a name="l00240"></a>00240     AXIS2_EXTERN axis2_status_t AXIS2_CALL
<a name="l00241"></a>00241     <a class="code" href="group__axutil__linked__list.html#g02d3d806618b29e546e6b99b451bdc5f">axutil_linked_list_clear</a>(
<a name="l00242"></a>00242         axutil_linked_list_t * linked_list,
<a name="l00243"></a>00243         <span class="keyword">const</span> <a class="code" href="structaxutil__env.html" title="Axis2 Environment struct.">axutil_env_t</a> * env);
<a name="l00244"></a>00244 
<a name="l00251"></a>00251     AXIS2_EXTERN <span class="keywordtype">void</span> *AXIS2_CALL
<a name="l00252"></a>00252     <a class="code" href="group__axutil__linked__list.html#g2070ee8b2583d38a8dfe619c02698e7a">axutil_linked_list_get</a>(
<a name="l00253"></a>00253         axutil_linked_list_t * linked_list,
<a name="l00254"></a>00254         <span class="keyword">const</span> <a class="code" href="structaxutil__env.html" title="Axis2 Environment struct.">axutil_env_t</a> * env,
<a name="l00255"></a>00255         <span class="keywordtype">int</span> index);
<a name="l00256"></a>00256 
<a name="l00264"></a>00264     AXIS2_EXTERN <span class="keywordtype">void</span> *AXIS2_CALL
<a name="l00265"></a>00265     <a class="code" href="group__axutil__linked__list.html#g797df541c887e4e30c6523d37149bf88">axutil_linked_list_set</a>(
<a name="l00266"></a>00266         axutil_linked_list_t * linked_list,
<a name="l00267"></a>00267         <span class="keyword">const</span> <a class="code" href="structaxutil__env.html" title="Axis2 Environment struct.">axutil_env_t</a> * env,
<a name="l00268"></a>00268         <span class="keywordtype">int</span> index,
<a name="l00269"></a>00269         <span class="keywordtype">void</span> *o);
<a name="l00270"></a>00270 
<a name="l00277"></a>00277     AXIS2_EXTERN axis2_status_t AXIS2_CALL
<a name="l00278"></a>00278     <a class="code" href="group__axutil__linked__list.html#gde56abab810e3643547facceb1858c8b">axutil_linked_list_add_at_index</a>(
<a name="l00279"></a>00279         axutil_linked_list_t * linked_list,
<a name="l00280"></a>00280         <span class="keyword">const</span> <a class="code" href="structaxutil__env.html" title="Axis2 Environment struct.">axutil_env_t</a> * env,
<a name="l00281"></a>00281         <span class="keywordtype">int</span> index,
<a name="l00282"></a>00282         <span class="keywordtype">void</span> *o);
<a name="l00283"></a>00283 
<a name="l00290"></a>00290     AXIS2_EXTERN <span class="keywordtype">void</span> *AXIS2_CALL
<a name="l00291"></a>00291     <a class="code" href="group__axutil__linked__list.html#g2c79f16cebb8e5cb1bdc55f5c83952da">axutil_linked_list_remove_at_index</a>(
<a name="l00292"></a>00292         axutil_linked_list_t * linked_list,
<a name="l00293"></a>00293         <span class="keyword">const</span> <a class="code" href="structaxutil__env.html" title="Axis2 Environment struct.">axutil_env_t</a> * env,
<a name="l00294"></a>00294         <span class="keywordtype">int</span> index);
<a name="l00295"></a>00295 
<a name="l00302"></a>00302     AXIS2_EXTERN <span class="keywordtype">int</span> AXIS2_CALL
<a name="l00303"></a>00303     <a class="code" href="group__axutil__linked__list.html#gfeae08bd167aff16b4a56dfd7aa5d336">axutil_linked_list_index_of</a>(
<a name="l00304"></a>00304         axutil_linked_list_t * linked_list,
<a name="l00305"></a>00305         <span class="keyword">const</span> <a class="code" href="structaxutil__env.html" title="Axis2 Environment struct.">axutil_env_t</a> * env,
<a name="l00306"></a>00306         <span class="keywordtype">void</span> *o);
<a name="l00307"></a>00307 
<a name="l00314"></a>00314     AXIS2_EXTERN <span class="keywordtype">int</span> AXIS2_CALL
<a name="l00315"></a>00315     <a class="code" href="group__axutil__linked__list.html#g9613b65e8b1f91c6a7ed5c3e2befa312">axutil_linked_list_last_index_of</a>(
<a name="l00316"></a>00316         axutil_linked_list_t * linked_list,
<a name="l00317"></a>00317         <span class="keyword">const</span> <a class="code" href="structaxutil__env.html" title="Axis2 Environment struct.">axutil_env_t</a> * env,
<a name="l00318"></a>00318         <span class="keywordtype">void</span> *o);
<a name="l00319"></a>00319 
<a name="l00325"></a>00325     AXIS2_EXTERN <span class="keywordtype">void</span> **AXIS2_CALL
<a name="l00326"></a>00326     <a class="code" href="group__axutil__linked__list.html#g4072abee56f46a98d34b66d8b41bea85">axutil_linked_list_to_array</a>(
<a name="l00327"></a>00327         axutil_linked_list_t * linked_list,
<a name="l00328"></a>00328         <span class="keyword">const</span> <a class="code" href="structaxutil__env.html" title="Axis2 Environment struct.">axutil_env_t</a> * env);
<a name="l00329"></a>00329 
<a name="l00330"></a>00330 <span class="preprocessor">#ifdef __cplusplus</span>
<a name="l00331"></a>00331 <span class="preprocessor"></span>}
<a name="l00332"></a>00332 <span class="preprocessor">#endif</span>
<a name="l00333"></a>00333 <span class="preprocessor"></span>
<a name="l00334"></a>00334 <span class="preprocessor">#endif                          </span><span class="comment">/* AXIS2_LINKED_LIST_H */</span>
</pre></div><hr size="1"><address style="text-align: right;"><small>Generated on Fri Apr 17 11:49:42 2009 for Axis2/C by&nbsp;
<a href="http://www.doxygen.org/index.html">
<img src="doxygen.png" alt="doxygen" align="middle" border="0"></a> 1.5.3 </small></address>
</body>
</html>


<|start_filename|>util/include/axutil_thread.h<|end_filename|>

/*
 * 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_THREAD_H
#define AXUTIL_THREAD_H

/**
  * @file axutil_thread.h
  * @brief axis2 thread api
  */

#include <axutil_allocator.h>
#include <axutil_utils_defines.h>
#include <axutil_error.h>

#ifdef __cplusplus
extern "C"
{
#endif

    /**
     * @defgroup axutil_thread thread
     * @ingroup axis2_util
     * @{
     */

    /**
     * Thread callbacks from axis2 functions must be declared with AXIS2_THREAD_FUNC
     * so that they follow the platform's calling convention.
     */
    /*#define AXIS2_THREAD_FUNC */

    /** Thread structure. */
    typedef struct axutil_thread_t axutil_thread_t;

    /** Thread attributes structure. */
    typedef struct axutil_threadattr_t axutil_threadattr_t;

    /** Control variable for one-time atomic variables.  */
    typedef struct axutil_thread_once_t axutil_thread_once_t;

    /**
     * The prototype for any AXIS2 thread worker functions.
     */
    typedef void *(
        AXIS2_THREAD_FUNC * axutil_thread_start_t)(
            axutil_thread_t *,
            void *);

    /** Thread private address space. */
    typedef struct axutil_threadkey_t axutil_threadkey_t;

    /* Thread Function definitions */

    /**
     * Create and initialize a new threadattr variable
     * @param cont The pool to use
     * @return Newly created thread attribute
     */
    AXIS2_EXTERN axutil_threadattr_t *AXIS2_CALL
    axutil_threadattr_create(
        axutil_allocator_t * allocator);

    /**
     * Set if newly created threads should be created in detached state.
     * @param attr The threadattr to affect
     * @param on Non-zero if detached threads should be created.
     * @return The status of the operation
     */
    AXIS2_EXTERN axis2_status_t AXIS2_CALL
    axutil_threadattr_detach_set(
        axutil_threadattr_t * attr,
        axis2_bool_t detached);

    /**
     * Get the detach state for this threadattr.
     * @param attr The threadattr to reference
     * @return AXIS2_TRUE if threads are to be detached, or AXIS2_FALSE
     * if threads are to be joinable.
     */
    AXIS2_EXTERN axis2_bool_t AXIS2_CALL
    axutil_threadattr_is_detach(
        axutil_threadattr_t * attr,
        axutil_allocator_t * allocator);

    /**
     * Create a new thread of execution
     * @param attr The threadattr to use to determine how to create the thread
     * @param func The function to start the new thread in
     * @param data Any data to be passed to the starting function
     * @param cont The pool to use
     * @return The newly created thread handle.
     */
    AXIS2_EXTERN axutil_thread_t *AXIS2_CALL
    axutil_thread_create(
        axutil_allocator_t * allocator,
        axutil_threadattr_t * attr,
        axutil_thread_start_t func,
        void *data);

    /**
     * Stop the current thread
     * @param thd The thread to stop
     * @return The status of the operation
     */
    AXIS2_EXTERN axis2_status_t AXIS2_CALL
    axutil_thread_exit(
        axutil_thread_t * thd,
        axutil_allocator_t * allocator);

    /**
     * Block until the desired thread stops executing.
     * @param thd The thread to join
     * @return The status of the operation
     */
    AXIS2_EXTERN axis2_status_t AXIS2_CALL
    axutil_thread_join(
        axutil_thread_t * thd);

    /**
     * force the current thread to yield the processor
     */
    AXIS2_EXTERN void AXIS2_CALL
    axutil_thread_yield(void
    );

    /**
     * Initialize the control variable for axutil_thread_once.
     * @param control The control variable to initialize
     * @return The status of the operation
     */
    AXIS2_EXTERN axutil_thread_once_t *AXIS2_CALL
    axutil_thread_once_init(
        axutil_allocator_t * allocator);

    /**
     * Run the specified function one time, regardless of how many threads
     * call it.
     * @param control The control variable.  The same variable should
     *                be passed in each time the function is tried to be
     *                called.  This is how the underlying functions determine
     *                if the function has ever been called before.
     * @param func The function to call.
     * @return The status of the operation
     */
    AXIS2_EXTERN axis2_status_t AXIS2_CALL
    axutil_thread_once(
        axutil_thread_once_t * control,
        void(*func)(void));

    /**
     * detach a thread
     * @param thd The thread to detach
     * @return The status of the operation
     */
    AXIS2_EXTERN axis2_status_t AXIS2_CALL
    axutil_thread_detach(
        axutil_thread_t * thd);


    /*************************Thread locking functions*****************************/

    /** Opaque thread-local mutex structure */
    typedef struct axutil_thread_mutex_t axutil_thread_mutex_t;

#define AXIS2_THREAD_MUTEX_DEFAULT  0x0   /**< platform-optimal lock behavior */

#define AXIS2_THREAD_MUTEX_NESTED   0x1   /**< enable nested (recursive) locks */

#define AXIS2_THREAD_MUTEX_UNNESTED 0x2   /**< disable nested locks */

    /**
     * Create and initialize a mutex that can be used to synchronize threads.
     * @param allocator Memory allocator to allocate memory for the mutex
     * @warning Be cautious in using AXIS2_THREAD_MUTEX_DEFAULT.  While this is the
     * most optimal mutex based on a given platform's performance characteristics,
     * it will behave as either a nested or an unnested lock.
     */
    AXIS2_EXTERN axutil_thread_mutex_t *AXIS2_CALL

    axutil_thread_mutex_create(
        axutil_allocator_t * allocator,
        unsigned int flags);

    /**
     * Acquire the lock for the given mutex. If the mutex is already locked,
     * the current thread will be put to sleep until the lock becomes available.
     * @param mutex the mutex on which to acquire the lock.
     */
    AXIS2_EXTERN axis2_status_t AXIS2_CALL
    axutil_thread_mutex_lock(
        axutil_thread_mutex_t * mutex);

    /**
     * Attempt to acquire the lock for the given mutex. If the mutex has already
     * been acquired, the call returns immediately
     * @param mutex the mutex on which to attempt the lock acquiring.
     */
    AXIS2_EXTERN axis2_status_t AXIS2_CALL
    axutil_thread_mutex_trylock(
        axutil_thread_mutex_t * mutex);

    /**
     * Release the lock for the given mutex.
     * @param mutex the mutex from which to release the lock.
     */
    AXIS2_EXTERN axis2_status_t AXIS2_CALL
    axutil_thread_mutex_unlock(
        axutil_thread_mutex_t * mutex);

    /**
     * Destroy the mutex and free the memory associated with the lock.
     * @param mutex the mutex to destroy.
     */
    AXIS2_EXTERN axis2_status_t AXIS2_CALL
    axutil_thread_mutex_destroy(
        axutil_thread_mutex_t * mutex);

    /** @} */
#ifdef __cplusplus
}
#endif

#endif                          /* AXIS2_THREAD_H */


<|start_filename|>util/src/base64_binary.c<|end_filename|>
/*
 * 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.
 */

#include <axutil_base64_binary.h>
#include <string.h>
#include <axutil_utils.h>

struct axutil_base64_binary
{
    unsigned char *plain_binary;
    int plain_binary_len;
};


AXIS2_EXTERN axutil_base64_binary_t *AXIS2_CALL
axutil_base64_binary_create(
    const axutil_env_t * env)
{
    axutil_base64_binary_t *base64_binary = NULL;
    AXIS2_ENV_CHECK(env, NULL);

    base64_binary = (axutil_base64_binary_t *) AXIS2_MALLOC(env->allocator,
        sizeof(axutil_base64_binary_t));

    if (!base64_binary)
    {
        AXIS2_ERROR_SET(env->error, AXIS2_ERROR_NO_MEMORY, AXIS2_FAILURE);
        AXIS2_LOG_ERROR(env->log, AXIS2_LOG_SI, "Out of memory");
        return NULL;
    }
    base64_binary->plain_binary = NULL;
    base64_binary->plain_binary_len = 0;
    return base64_binary;
}

AXIS2_EXTERN axutil_base64_binary_t *AXIS2_CALL
axutil_base64_binary_create_with_plain_binary(
    const axutil_env_t * env,
    const unsigned char *plain_binary,
    int plain_binary_len)
{
    axutil_base64_binary_t *base64_binary = NULL;

    AXIS2_ENV_CHECK(env, NULL);
    AXIS2_PARAM_CHECK(env->error, plain_binary, NULL);

    base64_binary = (axutil_base64_binary_t *) axutil_base64_binary_create(env);
    if (!base64_binary)
    {
        AXIS2_ERROR_SET(env->error, AXIS2_ERROR_NO_MEMORY, AXIS2_FAILURE);
        AXIS2_LOG_ERROR(env->log, AXIS2_LOG_SI, "Out of memory");
        return NULL;
    }

    base64_binary->plain_binary =
        AXIS2_MALLOC(env->allocator, sizeof(unsigned char) * plain_binary_len);

    if (!base64_binary->plain_binary)
    {
        axutil_base64_binary_free(base64_binary, env);
        AXIS2_ERROR_SET(env->error, AXIS2_ERROR_NO_MEMORY, AXIS2_FAILURE);
        AXIS2_LOG_ERROR(env->log, AXIS2_LOG_SI, "Out of memory");
        return NULL;
    }
    memcpy(base64_binary->plain_binary, plain_binary, plain_binary_len);
    base64_binary->plain_binary_len = plain_binary_len;

    return base64_binary;
}

AXIS2_EXTERN axutil_base64_binary_t *AXIS2_CALL
axutil_base64_binary_create_with_encoded_binary(
    const axutil_env_t * env,
    const char *encoded_binary)
{
    axutil_base64_binary_t *base64_binary = NULL;
    int plain_binary_len = 0;

    AXIS2_ENV_CHECK(env, NULL);
    AXIS2_PARAM_CHECK(env->error, encoded_binary, NULL);

    base64_binary = (axutil_base64_binary_t *) axutil_base64_binary_create(env);
    if (!base64_binary)
    {
        AXIS2_ERROR_SET(env->error, AXIS2_ERROR_NO_MEMORY, AXIS2_FAILURE);
        AXIS2_LOG_ERROR(env->log, AXIS2_LOG_SI, "Out of memory");
        return NULL;
    }

    plain_binary_len = axutil_base64_decode_len(encoded_binary);
    base64_binary->plain_binary =
        AXIS2_MALLOC(env->allocator, sizeof(unsigned char) * plain_binary_len);

    if (!base64_binary->plain_binary)
    {
        axutil_base64_binary_free(base64_binary, env);
        AXIS2_ERROR_SET(env->error, AXIS2_ERROR_NO_MEMORY, AXIS2_FAILURE);
        AXIS2_LOG_ERROR(env->log, AXIS2_LOG_SI, "Out of memory");
        return NULL;
    }
    axutil_base64_decode_binary(base64_binary->plain_binary, encoded_binary);
    base64_binary->plain_binary_len = plain_binary_len;

    return base64_binary;
}

AXIS2_EXTERN void AXIS2_CALL
axutil_base64_binary_free(
    axutil_base64_binary_t *base64_binary,
    const axutil_env_t *env)
{
    AXIS2_ENV_CHECK(env, AXIS2_FAILURE);

    if (!base64_binary)
    {
        return;
    }

    if (base64_binary->plain_binary)
    {
        AXIS2_FREE(env->allocator, base64_binary->plain_binary);
    }

    if (base64_binary)
    {
        AXIS2_FREE(env->allocator, base64_binary);
    }

    return;
}

AXIS2_EXTERN axis2_status_t AXIS2_CALL
axutil_base64_binary_set_plain_binary(
    axutil_base64_binary_t *base64_binary,
    const axutil_env_t *env,
    const unsigned char *plain_binary,
    int plain_binary_len)
{

    AXIS2_PARAM_CHECK(env->error, plain_binary, AXIS2_FAILURE);

    base64_binary->plain_binary =
        AXIS2_MALLOC(env->allocator, sizeof(unsigned char) * plain_binary_len);
    if (!base64_binary->plain_binary)
    {
        axutil_base64_binary_free(base64_binary, env);
        AXIS2_ERROR_SET(env->error, AXIS2_ERROR_NO_MEMORY, AXIS2_FAILURE);
        AXIS2_LOG_ERROR(env->log, AXIS2_LOG_SI, "Out of memory");
        return AXIS2_FAILURE;
    }
    memcpy(base64_binary->plain_binary, plain_binary,
           plain_binary_len);
    base64_binary->plain_binary_len = plain_binary_len;

    return AXIS2_SUCCESS;
}

AXIS2_EXTERN unsigned char *AXIS2_CALL
axutil_base64_binary_get_plain_binary(
    axutil_base64_binary_t *base64_binary,
    const axutil_env_t *env,
    int *plain_binary_len)
{
    AXIS2_PARAM_CHECK(env->error, base64_binary, NULL);
    *plain_binary_len = base64_binary->plain_binary_len;
    return base64_binary->plain_binary;
}

AXIS2_EXTERN axis2_status_t AXIS2_CALL
axutil_base64_binary_set_encoded_binary(
    axutil_base64_binary_t *base64_binary,
    const axutil_env_t *env,
    const char *encoded_binary)
{
    int plain_binary_len = 0;

    AXIS2_PARAM_CHECK(env->error, base64_binary, AXIS2_FAILURE);
    AXIS2_PARAM_CHECK(env->error, encoded_binary, AXIS2_FAILURE);

    plain_binary_len = axutil_base64_decode_len(encoded_binary);
    base64_binary->plain_binary =
        AXIS2_MALLOC(env->allocator, sizeof(unsigned char) * plain_binary_len);

    if (!base64_binary->plain_binary)
    {
        axutil_base64_binary_free(base64_binary, env);
        AXIS2_ERROR_SET(env->error, AXIS2_ERROR_NO_MEMORY, AXIS2_FAILURE);
        AXIS2_LOG_ERROR(env->log, AXIS2_LOG_SI, "Out of memory");
        return AXIS2_FAILURE;
    }
    axutil_base64_decode_binary(base64_binary->plain_binary, encoded_binary);
    base64_binary->plain_binary_len = plain_binary_len;

    return AXIS2_SUCCESS;
}

AXIS2_EXTERN char *AXIS2_CALL
axutil_base64_binary_get_encoded_binary(
    axutil_base64_binary_t *base64_binary,
    const axutil_env_t *env)
{
    char *encoded_binary = NULL;
    int encoded_binary_len = 0;
    AXIS2_PARAM_CHECK(env->error, base64_binary, NULL);

    encoded_binary_len =
        axutil_base64_encode_len(base64_binary->plain_binary_len);
    encoded_binary =
        AXIS2_MALLOC(env->allocator, sizeof(char) * encoded_binary_len);

    if (!encoded_binary)
    {
        axutil_base64_binary_free(base64_binary, env);
        AXIS2_ERROR_SET(env->error, AXIS2_ERROR_NO_MEMORY, AXIS2_FAILURE);
        AXIS2_LOG_ERROR(env->log, AXIS2_LOG_SI, "Out of memory");
        return NULL;
    }
    axutil_base64_encode_binary(encoded_binary, base64_binary->plain_binary,
                                base64_binary->plain_binary_len);
    return encoded_binary;
}

AXIS2_EXTERN int AXIS2_CALL
axutil_base64_binary_get_encoded_binary_len(
    axutil_base64_binary_t *base64_binary,
    const axutil_env_t *env)
{
    int encoded_binary_len = 0;
    if (!base64_binary)
    {
        return 0;
    }

    encoded_binary_len =
        axutil_base64_encode_len(base64_binary->plain_binary_len);
    return encoded_binary_len;
}

AXIS2_EXTERN int AXIS2_CALL
axutil_base64_binary_get_decoded_binary_len(
    axutil_base64_binary_t *base64_binary,
    const axutil_env_t *env)
{
    if (!base64_binary)
    {
        return 0;
    }
    return base64_binary->plain_binary_len;
}


<|start_filename|>xdocs/api/html/group__axis2__disp.html<|end_filename|>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html><head><meta http-equiv="Content-Type" content="text/html;charset=UTF-8">
<title>Axis2/C: dispatcher</title>
<link href="doxygen.css" rel="stylesheet" type="text/css">
<link href="tabs.css" rel="stylesheet" type="text/css">
</head><body>
<!-- Generated by Doxygen 1.5.3 -->
<div class="tabs">
  <ul>
    <li><a href="index.html"><span>Main&nbsp;Page</span></a></li>
    <li><a href="modules.html"><span>Modules</span></a></li>
    <li><a href="annotated.html"><span>Classes</span></a></li>
    <li><a href="files.html"><span>Files</span></a></li>
    <li><a href="dirs.html"><span>Directories</span></a></li>
    <li><a href="pages.html"><span>Related&nbsp;Pages</span></a></li>
    <li><a href="examples.html"><span>Examples</span></a></li>
    <li>
      <form action="search.php" method="get">
        <table cellspacing="0" cellpadding="0" border="0">
          <tr>
            <td><label>&nbsp;<u>S</u>earch&nbsp;for&nbsp;</label></td>
            <td><input type="text" name="query" value="" size="20" accesskey="s"/></td>
          </tr>
        </table>
      </form>
    </li>
  </ul>
</div>
<h1>dispatcher<br>
<small>
[<a class="el" href="group__axis2__engine.html">engine</a>]</small>
</h1><table border="0" cellpadding="0" cellspacing="0">
<tr><td></td></tr>
<tr><td colspan="2"><br><h2>Files</h2></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top">file &nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="axis2__disp_8h.html">axis2_disp.h</a></td></tr>

<tr><td colspan="2"><br><h2>Defines</h2></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="g42ef8731adead6a2e762ebd8388118c5"></a><!-- doxytag: member="axis2_disp::AXIS2_DISP_NAMESPACE" ref="g42ef8731adead6a2e762ebd8388118c5" args="" -->
#define&nbsp;</td><td class="memItemRight" valign="bottom"><b>AXIS2_DISP_NAMESPACE</b>&nbsp;&nbsp;&nbsp;&quot;http://axis.ws.apache.org&quot;</td></tr>

<tr><td colspan="2"><br><h2>Typedefs</h2></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top">typedef struct axis2_disp&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__axis2__disp.html#g8f0bac449c79895127179ee88604be65">axis2_disp_t</a></td></tr>

<tr><td colspan="2"><br><h2>Functions</h2></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top">AXIS2_EXTERN <br>
<a class="el" href="group__axis2__handler.html#g62e76f39f224fb84e98b6b77fdf4655c">axis2_handler_t</a> *&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__axis2__disp.html#g493cb717b675286752bed9e62b314f38">axis2_disp_get_base</a> (const <a class="el" href="group__axis2__disp.html#g8f0bac449c79895127179ee88604be65">axis2_disp_t</a> *disp, const <a class="el" href="structaxutil__env.html">axutil_env_t</a> *env)</td></tr>

<tr><td class="memItemLeft" nowrap align="right" valign="top">AXIS2_EXTERN <br>
axutil_string_t *&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__axis2__disp.html#g4b87234842d634edc406ccbf9aaa4f14">axis2_disp_get_name</a> (const <a class="el" href="group__axis2__disp.html#g8f0bac449c79895127179ee88604be65">axis2_disp_t</a> *disp, const <a class="el" href="structaxutil__env.html">axutil_env_t</a> *env)</td></tr>

<tr><td class="memItemLeft" nowrap align="right" valign="top">AXIS2_EXTERN <br>
axis2_status_t&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__axis2__disp.html#g8282e341346127933098f7f170c6fd5e">axis2_disp_set_name</a> (<a class="el" href="group__axis2__disp.html#g8f0bac449c79895127179ee88604be65">axis2_disp_t</a> *disp, const <a class="el" href="structaxutil__env.html">axutil_env_t</a> *env, axutil_string_t *name)</td></tr>

<tr><td class="memItemLeft" nowrap align="right" valign="top">AXIS2_EXTERN void&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__axis2__disp.html#g4ba871cc3cb7913ca8850de9cf6ce8e1">axis2_disp_free</a> (<a class="el" href="group__axis2__disp.html#g8f0bac449c79895127179ee88604be65">axis2_disp_t</a> *disp, const <a class="el" href="structaxutil__env.html">axutil_env_t</a> *env)</td></tr>

<tr><td class="memItemLeft" nowrap align="right" valign="top">AXIS2_EXTERN <br>
<a class="el" href="group__axis2__disp.html#g8f0bac449c79895127179ee88604be65">axis2_disp_t</a> *&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__axis2__disp.html#g65066d9785fb1f3dbeeef3e4b478fccd">axis2_disp_create</a> (const <a class="el" href="structaxutil__env.html">axutil_env_t</a> *env, const axutil_string_t *name)</td></tr>

<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="g9d2a959239d55f45641c0759b79243b2"></a><!-- doxytag: member="axis2_disp::axis2_disp_find_svc_and_op" ref="g9d2a959239d55f45641c0759b79243b2" args="(struct axis2_handler *handler, const axutil_env_t *env, struct axis2_msg_ctx *msg_ctx)" -->
axis2_status_t&nbsp;</td><td class="memItemRight" valign="bottom"><b>axis2_disp_find_svc_and_op</b> (struct axis2_handler *handler, const <a class="el" href="structaxutil__env.html">axutil_env_t</a> *env, struct axis2_msg_ctx *msg_ctx)</td></tr>

<tr><td class="memItemLeft" nowrap align="right" valign="top">AXIS2_EXTERN <br>
<a class="el" href="group__axis2__disp.html#g8f0bac449c79895127179ee88604be65">axis2_disp_t</a> *&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__axis2__disp.html#gf18d7e04a666303b7e2833c3234e770e">axis2_addr_disp_create</a> (const <a class="el" href="structaxutil__env.html">axutil_env_t</a> *env)</td></tr>

<tr><td class="memItemLeft" nowrap align="right" valign="top">AXIS2_EXTERN <br>
<a class="el" href="group__axis2__disp.html#g8f0bac449c79895127179ee88604be65">axis2_disp_t</a> *&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__axis2__disp.html#g44abce5a9beda1c85ad8263af5971789">axis2_req_uri_disp_create</a> (const <a class="el" href="structaxutil__env.html">axutil_env_t</a> *env)</td></tr>

<tr><td class="memItemLeft" nowrap align="right" valign="top">AXIS2_EXTERN <br>
<a class="el" href="group__axis2__disp.html#g8f0bac449c79895127179ee88604be65">axis2_disp_t</a> *&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__axis2__disp.html#g71f97a999b7c67d329477b2a0dc1b2ce">axis2_rest_disp_create</a> (const <a class="el" href="structaxutil__env.html">axutil_env_t</a> *env)</td></tr>

<tr><td class="memItemLeft" nowrap align="right" valign="top">AXIS2_EXTERN <br>
<a class="el" href="group__axis2__disp.html#g8f0bac449c79895127179ee88604be65">axis2_disp_t</a> *&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__axis2__disp.html#g417c2e8127f982ad198e4804a331016c">axis2_soap_body_disp_create</a> (const <a class="el" href="structaxutil__env.html">axutil_env_t</a> *env)</td></tr>

<tr><td class="memItemLeft" nowrap align="right" valign="top">AXIS2_EXTERN <br>
<a class="el" href="group__axis2__disp.html#g8f0bac449c79895127179ee88604be65">axis2_disp_t</a> *&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__axis2__disp.html#g7ce7cd65ca6b36076181dad1f6560bce">axis2_soap_action_disp_create</a> (const <a class="el" href="structaxutil__env.html">axutil_env_t</a> *env)</td></tr>

</table>
<hr><a name="_details"></a><h2>Detailed Description</h2>
dispatcher is responsible for finding the service and operation for a given invocation. A Web service request would contain information that help locate the service and the operation serving the request. This information could be in various formats, and hence the mechanism to find the requested service and operation based on the available information could too vary. Hence there can be various types on dispatches involved in a dispatching phase of the engine, that implements the API given in this header. <hr><h2>Typedef Documentation</h2>
<a class="anchor" name="g8f0bac449c79895127179ee88604be65"></a><!-- doxytag: member="axis2_disp.h::axis2_disp_t" ref="g8f0bac449c79895127179ee88604be65" args="" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">typedef struct axis2_disp <a class="el" href="group__axis2__disp.html#g8f0bac449c79895127179ee88604be65">axis2_disp_t</a>          </td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
Type name for struct axis2_disp 
</div>
</div><p>
<hr><h2>Function Documentation</h2>
<a class="anchor" name="gf18d7e04a666303b7e2833c3234e770e"></a><!-- doxytag: member="axis2_disp.h::axis2_addr_disp_create" ref="gf18d7e04a666303b7e2833c3234e770e" args="(const axutil_env_t *env)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">AXIS2_EXTERN <a class="el" href="group__axis2__disp.html#g8f0bac449c79895127179ee88604be65">axis2_disp_t</a>* axis2_addr_disp_create           </td>
          <td>(</td>
          <td class="paramtype">const <a class="el" href="structaxutil__env.html">axutil_env_t</a> *&nbsp;</td>
          <td class="paramname"> <em>env</em>          </td>
          <td>&nbsp;)&nbsp;</td>
          <td width="100%"></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
Creates a WS-Addressing based dispatcher. <dl compact><dt><b>Parameters:</b></dt><dd>
  <table border="0" cellspacing="2" cellpadding="0">
    <tr><td valign="top"></td><td valign="top"><em>env</em>&nbsp;</td><td>pointer to environment struct </td></tr>
  </table>
</dl>
<dl class="return" compact><dt><b>Returns:</b></dt><dd>pointer to the newly created dispatcher with find_svc and find_op methods implemented based on WS-Addressing </dd></dl>

</div>
</div><p>
<a class="anchor" name="g65066d9785fb1f3dbeeef3e4b478fccd"></a><!-- doxytag: member="axis2_disp.h::axis2_disp_create" ref="g65066d9785fb1f3dbeeef3e4b478fccd" args="(const axutil_env_t *env, const axutil_string_t *name)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">AXIS2_EXTERN <a class="el" href="group__axis2__disp.html#g8f0bac449c79895127179ee88604be65">axis2_disp_t</a>* axis2_disp_create           </td>
          <td>(</td>
          <td class="paramtype">const <a class="el" href="structaxutil__env.html">axutil_env_t</a> *&nbsp;</td>
          <td class="paramname"> <em>env</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const axutil_string_t *&nbsp;</td>
          <td class="paramname"> <em>name</em></td><td>&nbsp;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td><td width="100%"></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
Creates a dispatcher struct instance. <dl compact><dt><b>Parameters:</b></dt><dd>
  <table border="0" cellspacing="2" cellpadding="0">
    <tr><td valign="top"></td><td valign="top"><em>env</em>&nbsp;</td><td>pointer to environment struct </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>name</em>&nbsp;</td><td>pointer to QName. QName is cloned by create method. </td></tr>
  </table>
</dl>
<dl class="return" compact><dt><b>Returns:</b></dt><dd>pointer to newly created dispatcher </dd></dl>

</div>
</div><p>
<a class="anchor" name="g4ba871cc3cb7913ca8850de9cf6ce8e1"></a><!-- doxytag: member="axis2_disp.h::axis2_disp_free" ref="g4ba871cc3cb7913ca8850de9cf6ce8e1" args="(axis2_disp_t *disp, const axutil_env_t *env)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">AXIS2_EXTERN void axis2_disp_free           </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="group__axis2__disp.html#g8f0bac449c79895127179ee88604be65">axis2_disp_t</a> *&nbsp;</td>
          <td class="paramname"> <em>disp</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const <a class="el" href="structaxutil__env.html">axutil_env_t</a> *&nbsp;</td>
          <td class="paramname"> <em>env</em></td><td>&nbsp;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td><td width="100%"></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
Frees dispatcher struct. <dl compact><dt><b>Parameters:</b></dt><dd>
  <table border="0" cellspacing="2" cellpadding="0">
    <tr><td valign="top"></td><td valign="top"><em>disp</em>&nbsp;</td><td>pointer to dispatcher </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>env</em>&nbsp;</td><td>pointer to environment struct </td></tr>
  </table>
</dl>
<dl class="return" compact><dt><b>Returns:</b></dt><dd>void </dd></dl>

</div>
</div><p>
<a class="anchor" name="g493cb717b675286752bed9e62b314f38"></a><!-- doxytag: member="axis2_disp.h::axis2_disp_get_base" ref="g493cb717b675286752bed9e62b314f38" args="(const axis2_disp_t *disp, const axutil_env_t *env)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">AXIS2_EXTERN <a class="el" href="group__axis2__handler.html#g62e76f39f224fb84e98b6b77fdf4655c">axis2_handler_t</a>* axis2_disp_get_base           </td>
          <td>(</td>
          <td class="paramtype">const <a class="el" href="group__axis2__disp.html#g8f0bac449c79895127179ee88604be65">axis2_disp_t</a> *&nbsp;</td>
          <td class="paramname"> <em>disp</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const <a class="el" href="structaxutil__env.html">axutil_env_t</a> *&nbsp;</td>
          <td class="paramname"> <em>env</em></td><td>&nbsp;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td><td width="100%"></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
Gets the base struct which is of type handler. <dl compact><dt><b>Parameters:</b></dt><dd>
  <table border="0" cellspacing="2" cellpadding="0">
    <tr><td valign="top"></td><td valign="top"><em>disp</em>&nbsp;</td><td>pointer to dispatcher </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>env</em>&nbsp;</td><td>pointer to environment struct </td></tr>
  </table>
</dl>
<dl class="return" compact><dt><b>Returns:</b></dt><dd>pointer to base handler struct. Returns a reference, not a cloned copy </dd></dl>

</div>
</div><p>
<a class="anchor" name="g4b87234842d634edc406ccbf9aaa4f14"></a><!-- doxytag: member="axis2_disp.h::axis2_disp_get_name" ref="g4b87234842d634edc406ccbf9aaa4f14" args="(const axis2_disp_t *disp, const axutil_env_t *env)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">AXIS2_EXTERN axutil_string_t* axis2_disp_get_name           </td>
          <td>(</td>
          <td class="paramtype">const <a class="el" href="group__axis2__disp.html#g8f0bac449c79895127179ee88604be65">axis2_disp_t</a> *&nbsp;</td>
          <td class="paramname"> <em>disp</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const <a class="el" href="structaxutil__env.html">axutil_env_t</a> *&nbsp;</td>
          <td class="paramname"> <em>env</em></td><td>&nbsp;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td><td width="100%"></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
Gets the name of the dispatcher. <dl compact><dt><b>Parameters:</b></dt><dd>
  <table border="0" cellspacing="2" cellpadding="0">
    <tr><td valign="top"></td><td valign="top"><em>disp</em>&nbsp;</td><td>pointer to dispatcher </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>env</em>&nbsp;</td><td>pointer to environment struct </td></tr>
  </table>
</dl>
<dl class="return" compact><dt><b>Returns:</b></dt><dd>pointer to name. Returns a reference, not a cloned copy </dd></dl>

</div>
</div><p>
<a class="anchor" name="g8282e341346127933098f7f170c6fd5e"></a><!-- doxytag: member="axis2_disp.h::axis2_disp_set_name" ref="g8282e341346127933098f7f170c6fd5e" args="(axis2_disp_t *disp, const axutil_env_t *env, axutil_string_t *name)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">AXIS2_EXTERN axis2_status_t axis2_disp_set_name           </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="group__axis2__disp.html#g8f0bac449c79895127179ee88604be65">axis2_disp_t</a> *&nbsp;</td>
          <td class="paramname"> <em>disp</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const <a class="el" href="structaxutil__env.html">axutil_env_t</a> *&nbsp;</td>
          <td class="paramname"> <em>env</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">axutil_string_t *&nbsp;</td>
          <td class="paramname"> <em>name</em></td><td>&nbsp;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td><td width="100%"></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
Sets the name of the dispatcher. <dl compact><dt><b>Parameters:</b></dt><dd>
  <table border="0" cellspacing="2" cellpadding="0">
    <tr><td valign="top"></td><td valign="top"><em>disp</em>&nbsp;</td><td>pointer to dispatcher </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>env</em>&nbsp;</td><td>pointer to environment struct </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>name</em>&nbsp;</td><td>pointer to name, dispatcher assumes ownership of the name struct </td></tr>
  </table>
</dl>
<dl class="return" compact><dt><b>Returns:</b></dt><dd>AXIS2_SUCCESS on success, else AXIS2_FAILURE </dd></dl>

</div>
</div><p>
<a class="anchor" name="g44abce5a9beda1c85ad8263af5971789"></a><!-- doxytag: member="axis2_disp.h::axis2_req_uri_disp_create" ref="g44abce5a9beda1c85ad8263af5971789" args="(const axutil_env_t *env)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">AXIS2_EXTERN <a class="el" href="group__axis2__disp.html#g8f0bac449c79895127179ee88604be65">axis2_disp_t</a>* axis2_req_uri_disp_create           </td>
          <td>(</td>
          <td class="paramtype">const <a class="el" href="structaxutil__env.html">axutil_env_t</a> *&nbsp;</td>
          <td class="paramname"> <em>env</em>          </td>
          <td>&nbsp;)&nbsp;</td>
          <td width="100%"></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
Creates a request URI based dispatcher. <dl compact><dt><b>Parameters:</b></dt><dd>
  <table border="0" cellspacing="2" cellpadding="0">
    <tr><td valign="top"></td><td valign="top"><em>env</em>&nbsp;</td><td>pointer to environment struct </td></tr>
  </table>
</dl>
<dl class="return" compact><dt><b>Returns:</b></dt><dd>pointer to the newly created dispatcher with find_svc and find_op methods implemented based on request URI processing. </dd></dl>

</div>
</div><p>
<a class="anchor" name="g71f97a999b7c67d329477b2a0dc1b2ce"></a><!-- doxytag: member="axis2_disp.h::axis2_rest_disp_create" ref="g71f97a999b7c67d329477b2a0dc1b2ce" args="(const axutil_env_t *env)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">AXIS2_EXTERN <a class="el" href="group__axis2__disp.html#g8f0bac449c79895127179ee88604be65">axis2_disp_t</a>* axis2_rest_disp_create           </td>
          <td>(</td>
          <td class="paramtype">const <a class="el" href="structaxutil__env.html">axutil_env_t</a> *&nbsp;</td>
          <td class="paramname"> <em>env</em>          </td>
          <td>&nbsp;)&nbsp;</td>
          <td width="100%"></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
Creates a REST based dispatcher. <dl compact><dt><b>Parameters:</b></dt><dd>
  <table border="0" cellspacing="2" cellpadding="0">
    <tr><td valign="top"></td><td valign="top"><em>env</em>&nbsp;</td><td>pointer to environment struct </td></tr>
  </table>
</dl>
<dl class="return" compact><dt><b>Returns:</b></dt><dd>pointer to the newly created dispatcher with find_svc and find_op methods implemented based on REST processing. </dd></dl>

</div>
</div><p>
<a class="anchor" name="g7ce7cd65ca6b36076181dad1f6560bce"></a><!-- doxytag: member="axis2_disp.h::axis2_soap_action_disp_create" ref="g7ce7cd65ca6b36076181dad1f6560bce" args="(const axutil_env_t *env)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">AXIS2_EXTERN <a class="el" href="group__axis2__disp.html#g8f0bac449c79895127179ee88604be65">axis2_disp_t</a>* axis2_soap_action_disp_create           </td>
          <td>(</td>
          <td class="paramtype">const <a class="el" href="structaxutil__env.html">axutil_env_t</a> *&nbsp;</td>
          <td class="paramname"> <em>env</em>          </td>
          <td>&nbsp;)&nbsp;</td>
          <td width="100%"></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
Creates a SOAP action based dispatcher. <dl compact><dt><b>Parameters:</b></dt><dd>
  <table border="0" cellspacing="2" cellpadding="0">
    <tr><td valign="top"></td><td valign="top"><em>env</em>&nbsp;</td><td>pointer to environment struct </td></tr>
  </table>
</dl>
<dl class="return" compact><dt><b>Returns:</b></dt><dd>pointer to the newly created dispatcher with find_svc and find_op methods implemented based on SOAP action processing </dd></dl>

</div>
</div><p>
<a class="anchor" name="g417c2e8127f982ad198e4804a331016c"></a><!-- doxytag: member="axis2_disp.h::axis2_soap_body_disp_create" ref="g417c2e8127f982ad198e4804a331016c" args="(const axutil_env_t *env)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">AXIS2_EXTERN <a class="el" href="group__axis2__disp.html#g8f0bac449c79895127179ee88604be65">axis2_disp_t</a>* axis2_soap_body_disp_create           </td>
          <td>(</td>
          <td class="paramtype">const <a class="el" href="structaxutil__env.html">axutil_env_t</a> *&nbsp;</td>
          <td class="paramname"> <em>env</em>          </td>
          <td>&nbsp;)&nbsp;</td>
          <td width="100%"></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
Creates a SOAP body based dispatcher. <dl compact><dt><b>Parameters:</b></dt><dd>
  <table border="0" cellspacing="2" cellpadding="0">
    <tr><td valign="top"></td><td valign="top"><em>env</em>&nbsp;</td><td>pointer to environment struct </td></tr>
  </table>
</dl>
<dl class="return" compact><dt><b>Returns:</b></dt><dd>pointer to the newly created dispatcher with find_svc and find_op methods implemented based on SOAP body processing. </dd></dl>

</div>
</div><p>
<hr size="1"><address style="text-align: right;"><small>Generated on Fri Apr 17 11:49:44 2009 for Axis2/C by&nbsp;
<a href="http://www.doxygen.org/index.html">
<img src="doxygen.png" alt="doxygen" align="middle" border="0"></a> 1.5.3 </small></address>
</body>
</html>


<|start_filename|>neethi/src/all.c<|end_filename|>
/*
 * 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.
 */

#include <neethi_all.h>

struct neethi_all_t
{
    axutil_array_list_t *policy_components;
};

AXIS2_EXTERN neethi_all_t *AXIS2_CALL
neethi_all_create(
    const axutil_env_t *env)
{
    neethi_all_t *neethi_all = NULL;

    AXIS2_ENV_CHECK(env, NULL);

    neethi_all = (neethi_all_t *) AXIS2_MALLOC(env->allocator,
                                               sizeof(neethi_all_t));

    if (neethi_all == NULL)
    {
        AXIS2_ERROR_SET(env->error, AXIS2_ERROR_NO_MEMORY, AXIS2_FAILURE);
        AXIS2_LOG_ERROR(env->log, AXIS2_LOG_SI, "Out of memory");
        return NULL;
    }
    neethi_all->policy_components = NULL;

    neethi_all->policy_components = axutil_array_list_create(env, 0);
    if (!(neethi_all->policy_components))
    {
        neethi_all_free(neethi_all, env);
        AXIS2_ERROR_SET(env->error, AXIS2_ERROR_NO_MEMORY, AXIS2_FAILURE);
        AXIS2_LOG_ERROR(env->log, AXIS2_LOG_SI, "Out of memory");
        return NULL;
    }
    return neethi_all;
}

AXIS2_EXTERN void AXIS2_CALL
neethi_all_free(
    neethi_all_t *neethi_all,
    const axutil_env_t *env)
{
    if (neethi_all)
    {
        if (neethi_all->policy_components)
        {
            int i = 0;
            int size = 0;

            size = axutil_array_list_size(neethi_all->policy_components, env);

            for (i = 0; i < size; i++)
            {
                neethi_operator_t *operator = NULL;
                operator =(neethi_operator_t *)
                    axutil_array_list_get(neethi_all->policy_components, env,
                                          i);
                if (operator)
                {
                    neethi_operator_free(operator, env);
                    operator = NULL;    
                }
                operator = NULL;
            }
            axutil_array_list_free(neethi_all->policy_components, env);
            neethi_all->policy_components = NULL;
        }
        AXIS2_FREE(env->allocator, neethi_all);
        neethi_all = NULL;
    }
    return;
}

/* Implementations */

AXIS2_EXTERN axutil_array_list_t *AXIS2_CALL
neethi_all_get_policy_components(
    neethi_all_t *neethi_all,
    const axutil_env_t *env)
{
    return neethi_all->policy_components;
}

AXIS2_EXTERN axis2_status_t AXIS2_CALL
neethi_all_add_policy_components(
    neethi_all_t *all,
    axutil_array_list_t *arraylist,
    const axutil_env_t *env)
{

    int size = axutil_array_list_size(arraylist, env);
    int i = 0;

    if (axutil_array_list_ensure_capacity(all->policy_components, env, size + 1)
        != AXIS2_SUCCESS)
        return AXIS2_FAILURE;

    for (i = 0; i < size; i++)
    {
        void *value = NULL;
        value = axutil_array_list_get(arraylist, env, i);
        neethi_operator_increment_ref((neethi_operator_t *) value, env);
        axutil_array_list_add(all->policy_components, env, value);
    }
    return AXIS2_SUCCESS;
}

AXIS2_EXTERN axis2_status_t AXIS2_CALL
neethi_all_add_operator(
    neethi_all_t *neethi_all,
    const axutil_env_t *env,
    neethi_operator_t *operator)
{
    neethi_operator_increment_ref(operator, env);
    axutil_array_list_add(neethi_all->policy_components, env, operator);
    return AXIS2_SUCCESS;
}

AXIS2_EXTERN axis2_bool_t AXIS2_CALL
neethi_all_is_empty(
    neethi_all_t *all,
    const axutil_env_t *env)
{
    return axutil_array_list_is_empty(all->policy_components, env);
}

AXIS2_EXTERN axis2_status_t AXIS2_CALL
neethi_all_serialize(
    neethi_all_t *neethi_all,
    axiom_node_t *parent,
    const axutil_env_t *env)
{

    axiom_node_t *all_node = NULL;
    axiom_element_t *all_ele = NULL;
    axiom_namespace_t *policy_ns = NULL;
    axutil_array_list_t *components = NULL;
    axis2_status_t status = AXIS2_FAILURE;

    policy_ns = axiom_namespace_create(env, NEETHI_NAMESPACE, NEETHI_PREFIX);

    all_ele =
        axiom_element_create(env, parent, NEETHI_ALL, policy_ns, &all_node);
    if (!all_node)
    {
        return AXIS2_FAILURE;
    }
    components = neethi_all_get_policy_components(neethi_all, env);

    if (components)
    {
        int i = 0;
        for (i = 0; i < axutil_array_list_size(components, env); i++)
        {
            neethi_operator_t *operator = NULL;
            operator =(neethi_operator_t *) axutil_array_list_get(components,
                                                                  env, i);
            if (operator)
            {
                status = neethi_operator_serialize(operator, env, all_node);
                if (status != AXIS2_SUCCESS)
                {
                    return status;
                }
            }
        }
    }
    return status;
}


<|start_filename|>util/test/util/test_thread.c<|end_filename|>

/*
 * 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.
 */

#include <stdio.h>
#include <string.h>
#include <axutil_error_default.h>
#include <axutil_log.h>
#include <axutil_log_default.h>
#include <axutil_allocator.h>
#include <axutil_utils.h>
#include "test_thread.h"
#include <unistd.h>
#include "../test_common/axis2c_test_macros.h"

#define THREAD_AMMOUNT 100

const axutil_env_t *env = NULL;
static axutil_thread_mutex_t *thread_lock = NULL;
static axutil_thread_once_t *control = NULL;
static int x = 0;
static int value = 0;

static axutil_thread_t *t1 = NULL;
static axutil_thread_t *t2 = NULL;

/*for detach tests*/
static axutil_thread_t *t3 = NULL;
static axutil_thread_t *t4 = NULL;

void
init_func(
    void)
{
    value++;
}

void
thread_init(
    const axutil_env_t * env)
{
    START_TEST_CASE("thread_init");
    axutil_allocator_t *allocator = NULL;

    allocator = env->allocator;

    control = axutil_thread_once_init(allocator);

    EXPECT_NOT_NULL(control);

    thread_lock =
        axutil_thread_mutex_create(allocator, AXIS2_THREAD_MUTEX_DEFAULT);

    EXPECT_NOT_NULL(thread_lock);

    END_TEST_CASE();
}

void *AXIS2_CALL
test_env(
    axutil_thread_t * td,
    void *param)
{
    axutil_env_t *env;
    env = ((axutil_env_t *) param);

    axutil_env_t *thread_env = NULL;

    thread_env = axutil_init_thread_env(env);

    axutil_free_thread_env(thread_env);

    axutil_thread_exit(td, env->allocator);

    return (void *) 1;
}

void *AXIS2_CALL
test_function1(
    axutil_thread_t * td,
    void *param)
{
    int i;
    i = *((int *) param);
    /*printf("thread data = %d \n", i);*/

    axutil_thread_once(control, init_func);

    axutil_thread_mutex_lock(thread_lock);
    /*printf("x = %d \n", ++x);*/
    ++x;
    axutil_thread_mutex_unlock(thread_lock);

    /*axutil_thread_exit(td, env->allocator); */

    return (void *) 1;
}


void
test_axutil_thread_create(
    const axutil_env_t * env)
{
    START_TEST_CASE("test_axutil_thread_create");
    axis2_status_t rv = AXIS2_FAILURE;
    axutil_allocator_t *allocator = NULL;
    int *i = NULL,
        *j = NULL;

    allocator = env->allocator;
    i = AXIS2_MALLOC(allocator, sizeof(int));
    *i = 5;
    t1 = axutil_thread_create(allocator, NULL, test_function1, (void *) i);

    EXPECT_NOT_NULL(t1);

    j = AXIS2_MALLOC(allocator, sizeof(int));
    *j = 25;

    t2 = axutil_thread_create(allocator, NULL, test_function1, (void *) j);

    EXPECT_NOT_NULL(t2);

    rv = axutil_thread_join(t1);

    EXPECT_EQ(rv, AXIS2_SUCCESS);

    rv = axutil_thread_join(t2);

    EXPECT_EQ(rv, AXIS2_SUCCESS);

    /*Locks*/
    EXPECT_EQ(1,value);

    /*Thread once*/
    EXPECT_EQ(2,x);

    END_TEST_CASE();
}

void *AXIS2_CALL
test_function2(
    axutil_thread_t * td,
    void *param)
{
    /*printf("thread \n");*/
    /*axutil_thread_exit(td, env->allocator); */

    return (void *) 1;
}

void
test_axutil_thread_env(
    const axutil_env_t * env)
{
    START_TEST_CASE("test_axutil_thread_env");
    axutil_allocator_t *allocator = NULL;
    int i;

    axutil_thread_t *t1[THREAD_AMMOUNT];

    allocator = env->allocator;

    for(i=0;i < THREAD_AMMOUNT; i++)
    {
        t1[i] = axutil_thread_create(allocator, NULL, test_env, (void *) env);
        EXPECT_NOT_NULL(t1[i]);
        axutil_thread_detach(t1[i]);
    }

    END_TEST_CASE();
}

void
test_axutil_thread_detach(
    const axutil_env_t * env)
{
    START_TEST_CASE("test_axutil_thread_detach");
    axutil_threadattr_t *attr = NULL;
    axutil_allocator_t *allocator = NULL;
    axis2_status_t rv = AXIS2_FAILURE;

    allocator = env->allocator;
    attr = axutil_threadattr_create(allocator);

    EXPECT_NOT_NULL(attr);

    rv = axutil_threadattr_detach_set(attr, 1);

    EXPECT_EQ(rv, AXIS2_SUCCESS);

    t3 = axutil_thread_create(allocator, attr, test_function2, NULL);

    EXPECT_NOT_NULL(t3);

    /*
     * thread is already detached - should return AXIS2_FAILURE
     */
    rv = axutil_thread_detach(t3);

    EXPECT_EQ(rv, AXIS2_FAILURE);
    /*
     * thread is already detached - should return AXIS2_FAILURE
     * cannot join detached threads
     */
    rv = axutil_thread_join(t3);

    EXPECT_EQ(rv, AXIS2_FAILURE);

    AXIS2_FREE(env->allocator, attr);

    END_TEST_CASE();
}

void
test_axutil_thread_detach2(
    const axutil_env_t * env)
{
    START_TEST_CASE("test_axutil_thread_detach2");

    axutil_threadattr_t *attr = NULL;
    axutil_allocator_t *allocator = NULL;
    axis2_status_t rv = AXIS2_FAILURE;

    allocator = env->allocator;
    attr = axutil_threadattr_create(allocator);

    EXPECT_NOT_NULL(attr);

    t4 = axutil_thread_create(allocator, attr, test_function2, NULL);

    EXPECT_NOT_NULL(t4);

    /*
     * thread is not detached yet - should return AXIS2_SUCCESS
     */
    rv = axutil_thread_detach(t4);

    EXPECT_EQ(rv, AXIS2_SUCCESS);

    /*
     * thread is already detached - should return AXIS2_FAILURE
     * cannot join detached threads
     */
    rv = axutil_thread_join(t4);

    EXPECT_EQ(rv, AXIS2_FAILURE);

    AXIS2_FREE(env->allocator, attr);

    END_TEST_CASE();
}

void
run_test_thread(
    const axutil_env_t * env)
{
    thread_init(env);
    test_axutil_thread_create(env);
    test_axutil_thread_detach(env);
    test_axutil_thread_detach2(env);
    test_axutil_thread_env(env);

#if defined (WIN32)
    Sleep(1000);                /*to give time for detached threads to execute */
#else
    sleep(2);
#endif

    axutil_thread_mutex_destroy(thread_lock);
}

const axutil_env_t *
create_env_with_error_log(
    )
{
    axutil_error_t *error = NULL;
    axutil_log_t *log22 = NULL;
    const axutil_env_t *env = NULL;
    axutil_allocator_t *allocator = axutil_allocator_init(NULL);
    if (!allocator)
    {
        printf("allocator is NULL\n");
        return NULL;
    }
    error = axutil_error_create(allocator);
    if (!error)
    {
        printf("cannot create error\n");
        return NULL;
    }

    log22 = axutil_log_create(allocator, NULL, "test123.log");
    if (!log22)
    {
        printf("cannot create log\n");
        return NULL;
    }
    /*
     * allow all types of logs
     */
    log22->level = AXIS2_LOG_LEVEL_DEBUG;
    /*   log22->enabled = 0; */
    env = axutil_env_create_with_error_log(allocator, error, log22);
    if (!env)
    {
        printf("cannot create env with error and log\n");
        return NULL;
    }
    return env;
}

int
main(
    void)
{
    START_TEST();
    env = create_env_with_error_log();

    if (!env)
        return -1;
    run_test_thread(env);

    END_TEST();
    return 0;
}


<|start_filename|>xdocs/api/html/group__axis2__msg.html<|end_filename|>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html><head><meta http-equiv="Content-Type" content="text/html;charset=UTF-8">
<title>Axis2/C: message</title>
<link href="doxygen.css" rel="stylesheet" type="text/css">
<link href="tabs.css" rel="stylesheet" type="text/css">
</head><body>
<!-- Generated by Doxygen 1.5.3 -->
<div class="tabs">
  <ul>
    <li><a href="index.html"><span>Main&nbsp;Page</span></a></li>
    <li><a href="modules.html"><span>Modules</span></a></li>
    <li><a href="annotated.html"><span>Classes</span></a></li>
    <li><a href="files.html"><span>Files</span></a></li>
    <li><a href="dirs.html"><span>Directories</span></a></li>
    <li><a href="pages.html"><span>Related&nbsp;Pages</span></a></li>
    <li><a href="examples.html"><span>Examples</span></a></li>
    <li>
      <form action="search.php" method="get">
        <table cellspacing="0" cellpadding="0" border="0">
          <tr>
            <td><label>&nbsp;<u>S</u>earch&nbsp;for&nbsp;</label></td>
            <td><input type="text" name="query" value="" size="20" accesskey="s"/></td>
          </tr>
        </table>
      </form>
    </li>
  </ul>
</div>
<h1>message<br>
<small>
[<a class="el" href="group__axis2__desc.html">description</a>]</small>
</h1><table border="0" cellpadding="0" cellspacing="0">
<tr><td></td></tr>
<tr><td colspan="2"><br><h2>Files</h2></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top">file &nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="axis2__msg_8h.html">axis2_msg.h</a></td></tr>

<tr><td colspan="2"><br><h2>Defines</h2></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top">#define&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__axis2__msg.html#g862a13ab2bca0822defd770d15a27fbf">AXIS2_MSG_IN</a>&nbsp;&nbsp;&nbsp;&quot;in&quot;</td></tr>

<tr><td class="memItemLeft" nowrap align="right" valign="top">#define&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__axis2__msg.html#gf8324fc49bef947986c6333e608def13">AXIS2_MSG_OUT</a>&nbsp;&nbsp;&nbsp;&quot;out&quot;</td></tr>

<tr><td class="memItemLeft" nowrap align="right" valign="top">#define&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__axis2__msg.html#gc1a93d406ebcea483078bcd581674bef">AXIS2_MSG_IN_FAULT</a>&nbsp;&nbsp;&nbsp;&quot;InFaultMessage&quot;</td></tr>

<tr><td class="memItemLeft" nowrap align="right" valign="top">#define&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__axis2__msg.html#g3786b0350a135a0e12915b6e77d6fedf">AXIS2_MSG_OUT_FAULT</a>&nbsp;&nbsp;&nbsp;&quot;OutFaultMessage&quot;</td></tr>

<tr><td colspan="2"><br><h2>Typedefs</h2></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top">typedef struct axis2_msg&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__axis2__msg.html#g20e480486e264ed4fb5df0517ce76b09">axis2_msg_t</a></td></tr>

<tr><td colspan="2"><br><h2>Functions</h2></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top">AXIS2_EXTERN <br>
<a class="el" href="group__axis2__msg.html#g20e480486e264ed4fb5df0517ce76b09">axis2_msg_t</a> *&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__axis2__msg.html#ge674ded0d7b93ff698a55334d6221286">axis2_msg_create</a> (const <a class="el" href="structaxutil__env.html">axutil_env_t</a> *env)</td></tr>

<tr><td class="memItemLeft" nowrap align="right" valign="top">AXIS2_EXTERN void&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__axis2__msg.html#g168f956533c439c704e34253f1bf77b3">axis2_msg_free</a> (<a class="el" href="group__axis2__msg.html#g20e480486e264ed4fb5df0517ce76b09">axis2_msg_t</a> *msg, const <a class="el" href="structaxutil__env.html">axutil_env_t</a> *env)</td></tr>

<tr><td class="memItemLeft" nowrap align="right" valign="top">AXIS2_EXTERN <br>
axis2_status_t&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__axis2__msg.html#g4a04523e93cd4066b038f14d31f3d60e">axis2_msg_add_param</a> (<a class="el" href="group__axis2__msg.html#g20e480486e264ed4fb5df0517ce76b09">axis2_msg_t</a> *msg, const <a class="el" href="structaxutil__env.html">axutil_env_t</a> *env, axutil_param_t *param)</td></tr>

<tr><td class="memItemLeft" nowrap align="right" valign="top">AXIS2_EXTERN <br>
axutil_param_t *&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__axis2__msg.html#gf286bada1249b588b79d9b90520b5a09">axis2_msg_get_param</a> (const <a class="el" href="group__axis2__msg.html#g20e480486e264ed4fb5df0517ce76b09">axis2_msg_t</a> *msg, const <a class="el" href="structaxutil__env.html">axutil_env_t</a> *env, const axis2_char_t *name)</td></tr>

<tr><td class="memItemLeft" nowrap align="right" valign="top">AXIS2_EXTERN <br>
<a class="el" href="group__axutil__array__list.html#g1a6a89777db876cfa0cc86787b7be6a0">axutil_array_list_t</a> *&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__axis2__msg.html#g6e0c544674fad801039013b66e5f548a">axis2_msg_get_all_params</a> (const <a class="el" href="group__axis2__msg.html#g20e480486e264ed4fb5df0517ce76b09">axis2_msg_t</a> *msg, const <a class="el" href="structaxutil__env.html">axutil_env_t</a> *env)</td></tr>

<tr><td class="memItemLeft" nowrap align="right" valign="top">AXIS2_EXTERN axis2_bool_t&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__axis2__msg.html#g51ae7e6eb9afee5f7e82bd7f8c21bf96">axis2_msg_is_param_locked</a> (<a class="el" href="group__axis2__msg.html#g20e480486e264ed4fb5df0517ce76b09">axis2_msg_t</a> *msg, const <a class="el" href="structaxutil__env.html">axutil_env_t</a> *env, const axis2_char_t *param_name)</td></tr>

<tr><td class="memItemLeft" nowrap align="right" valign="top">AXIS2_EXTERN <br>
axis2_status_t&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__axis2__msg.html#g7701b38d18f59fb09f37e9e974bfc3d0">axis2_msg_set_parent</a> (<a class="el" href="group__axis2__msg.html#g20e480486e264ed4fb5df0517ce76b09">axis2_msg_t</a> *msg, const <a class="el" href="structaxutil__env.html">axutil_env_t</a> *env, <a class="el" href="group__axis2__op.html#g13ff0e97eb92c0681768b60a93bf1bc9">axis2_op_t</a> *op)</td></tr>

<tr><td class="memItemLeft" nowrap align="right" valign="top">AXIS2_EXTERN <a class="el" href="group__axis2__op.html#g13ff0e97eb92c0681768b60a93bf1bc9">axis2_op_t</a> *&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__axis2__msg.html#g8191091ac7e17ed45c6d0ed3c9bc3d59">axis2_msg_get_parent</a> (const <a class="el" href="group__axis2__msg.html#g20e480486e264ed4fb5df0517ce76b09">axis2_msg_t</a> *msg, const <a class="el" href="structaxutil__env.html">axutil_env_t</a> *env)</td></tr>

<tr><td class="memItemLeft" nowrap align="right" valign="top">AXIS2_EXTERN <br>
<a class="el" href="group__axutil__array__list.html#g1a6a89777db876cfa0cc86787b7be6a0">axutil_array_list_t</a> *&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__axis2__msg.html#ga008e28053a1c980b867502b0619a6a2">axis2_msg_get_flow</a> (const <a class="el" href="group__axis2__msg.html#g20e480486e264ed4fb5df0517ce76b09">axis2_msg_t</a> *msg, const <a class="el" href="structaxutil__env.html">axutil_env_t</a> *env)</td></tr>

<tr><td class="memItemLeft" nowrap align="right" valign="top">AXIS2_EXTERN <br>
axis2_status_t&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__axis2__msg.html#ge2d0cca919d701cc03f6a99d7fff3164">axis2_msg_set_flow</a> (<a class="el" href="group__axis2__msg.html#g20e480486e264ed4fb5df0517ce76b09">axis2_msg_t</a> *msg, const <a class="el" href="structaxutil__env.html">axutil_env_t</a> *env, <a class="el" href="group__axutil__array__list.html#g1a6a89777db876cfa0cc86787b7be6a0">axutil_array_list_t</a> *flow)</td></tr>

<tr><td class="memItemLeft" nowrap align="right" valign="top">AXIS2_EXTERN const <br>
axis2_char_t *&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__axis2__msg.html#gcbb409dc87613a84ac8bde394869f6ad">axis2_msg_get_direction</a> (const <a class="el" href="group__axis2__msg.html#g20e480486e264ed4fb5df0517ce76b09">axis2_msg_t</a> *msg, const <a class="el" href="structaxutil__env.html">axutil_env_t</a> *env)</td></tr>

<tr><td class="memItemLeft" nowrap align="right" valign="top">AXIS2_EXTERN <br>
axis2_status_t&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__axis2__msg.html#g4d684f4bc237a32fcf2d2462d4c3166a">axis2_msg_set_direction</a> (<a class="el" href="group__axis2__msg.html#g20e480486e264ed4fb5df0517ce76b09">axis2_msg_t</a> *msg, const <a class="el" href="structaxutil__env.html">axutil_env_t</a> *env, const axis2_char_t *direction)</td></tr>

<tr><td class="memItemLeft" nowrap align="right" valign="top">AXIS2_EXTERN const <br>
axutil_qname_t *&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__axis2__msg.html#g3c21abaa1b0447d184b8a408cf2f75c1">axis2_msg_get_element_qname</a> (const <a class="el" href="group__axis2__msg.html#g20e480486e264ed4fb5df0517ce76b09">axis2_msg_t</a> *msg, const <a class="el" href="structaxutil__env.html">axutil_env_t</a> *env)</td></tr>

<tr><td class="memItemLeft" nowrap align="right" valign="top">AXIS2_EXTERN <br>
axis2_status_t&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__axis2__msg.html#g7fd20aa2eb6b5f479e7ca67e05b13bfd">axis2_msg_set_element_qname</a> (<a class="el" href="group__axis2__msg.html#g20e480486e264ed4fb5df0517ce76b09">axis2_msg_t</a> *msg, const <a class="el" href="structaxutil__env.html">axutil_env_t</a> *env, const axutil_qname_t *element_qname)</td></tr>

<tr><td class="memItemLeft" nowrap align="right" valign="top">AXIS2_EXTERN const <br>
axis2_char_t *&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__axis2__msg.html#g4d0a9953fea4185365e869b71b6dec42">axis2_msg_get_name</a> (const <a class="el" href="group__axis2__msg.html#g20e480486e264ed4fb5df0517ce76b09">axis2_msg_t</a> *msg, const <a class="el" href="structaxutil__env.html">axutil_env_t</a> *env)</td></tr>

<tr><td class="memItemLeft" nowrap align="right" valign="top">AXIS2_EXTERN <br>
axis2_status_t&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__axis2__msg.html#gc15cc16ed5f275763b938f3ae63d6566">axis2_msg_set_name</a> (<a class="el" href="group__axis2__msg.html#g20e480486e264ed4fb5df0517ce76b09">axis2_msg_t</a> *msg, const <a class="el" href="structaxutil__env.html">axutil_env_t</a> *env, const axis2_char_t *name)</td></tr>

<tr><td class="memItemLeft" nowrap align="right" valign="top">AXIS2_EXTERN <br>
<a class="el" href="group__axis2__description.html#g9bbf771ae43a8364c5f453c7077f0f1e">axis2_desc_t</a> *&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__axis2__msg.html#ge6b0879687a82eec5c5cf621bd803623">axis2_msg_get_base</a> (const <a class="el" href="group__axis2__msg.html#g20e480486e264ed4fb5df0517ce76b09">axis2_msg_t</a> *msg, const <a class="el" href="structaxutil__env.html">axutil_env_t</a> *env)</td></tr>

<tr><td class="memItemLeft" nowrap align="right" valign="top">AXIS2_EXTERN <br>
axutil_param_container_t *&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__axis2__msg.html#gcf3f23e957699279a048452b64a671f0">axis2_msg_get_param_container</a> (const <a class="el" href="group__axis2__msg.html#g20e480486e264ed4fb5df0517ce76b09">axis2_msg_t</a> *msg, const <a class="el" href="structaxutil__env.html">axutil_env_t</a> *env)</td></tr>

<tr><td class="memItemLeft" nowrap align="right" valign="top">AXIS2_EXTERN <br>
axis2_status_t&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__axis2__msg.html#g88c91bcaf0e249122383433ebc308c88">axis2_msg_increment_ref</a> (<a class="el" href="group__axis2__msg.html#g20e480486e264ed4fb5df0517ce76b09">axis2_msg_t</a> *msg, const <a class="el" href="structaxutil__env.html">axutil_env_t</a> *env)</td></tr>

</table>
<hr><a name="_details"></a><h2>Detailed Description</h2>
message represents a message in a WSDL. It captures SOAP headers related to a given message, the direction as well as the phases to be invoked along the flow. Based on the message direction, there could be only one flow associated with a message. <hr><h2>Define Documentation</h2>
<a class="anchor" name="g862a13ab2bca0822defd770d15a27fbf"></a><!-- doxytag: member="axis2_msg.h::AXIS2_MSG_IN" ref="g862a13ab2bca0822defd770d15a27fbf" args="" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">#define AXIS2_MSG_IN&nbsp;&nbsp;&nbsp;&quot;in&quot;          </td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
Message of IN flow 
</div>
</div><p>
<a class="anchor" name="gc1a93d406ebcea483078bcd581674bef"></a><!-- doxytag: member="axis2_msg.h::AXIS2_MSG_IN_FAULT" ref="gc1a93d406ebcea483078bcd581674bef" args="" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">#define AXIS2_MSG_IN_FAULT&nbsp;&nbsp;&nbsp;&quot;InFaultMessage&quot;          </td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
Message of IN FAULT flow 
</div>
</div><p>
<a class="anchor" name="gf8324fc49bef947986c6333e608def13"></a><!-- doxytag: member="axis2_msg.h::AXIS2_MSG_OUT" ref="gf8324fc49bef947986c6333e608def13" args="" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">#define AXIS2_MSG_OUT&nbsp;&nbsp;&nbsp;&quot;out&quot;          </td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
Message of OUT flow 
</div>
</div><p>
<a class="anchor" name="g3786b0350a135a0e12915b6e77d6fedf"></a><!-- doxytag: member="axis2_msg.h::AXIS2_MSG_OUT_FAULT" ref="g3786b0350a135a0e12915b6e77d6fedf" args="" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">#define AXIS2_MSG_OUT_FAULT&nbsp;&nbsp;&nbsp;&quot;OutFaultMessage&quot;          </td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
Message of OUT FAULT flow 
</div>
</div><p>
<hr><h2>Typedef Documentation</h2>
<a class="anchor" name="g20e480486e264ed4fb5df0517ce76b09"></a><!-- doxytag: member="axis2_msg.h::axis2_msg_t" ref="g20e480486e264ed4fb5df0517ce76b09" args="" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">typedef struct axis2_msg <a class="el" href="group__axis2__msg.html#g20e480486e264ed4fb5df0517ce76b09">axis2_msg_t</a>          </td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
Type name for struct axis2_msg 
</div>
</div><p>
<hr><h2>Function Documentation</h2>
<a class="anchor" name="g4a04523e93cd4066b038f14d31f3d60e"></a><!-- doxytag: member="axis2_msg.h::axis2_msg_add_param" ref="g4a04523e93cd4066b038f14d31f3d60e" args="(axis2_msg_t *msg, const axutil_env_t *env, axutil_param_t *param)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">AXIS2_EXTERN axis2_status_t axis2_msg_add_param           </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="group__axis2__msg.html#g20e480486e264ed4fb5df0517ce76b09">axis2_msg_t</a> *&nbsp;</td>
          <td class="paramname"> <em>msg</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const <a class="el" href="structaxutil__env.html">axutil_env_t</a> *&nbsp;</td>
          <td class="paramname"> <em>env</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">axutil_param_t *&nbsp;</td>
          <td class="paramname"> <em>param</em></td><td>&nbsp;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td><td width="100%"></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
Adds a parameter. <dl compact><dt><b>Parameters:</b></dt><dd>
  <table border="0" cellspacing="2" cellpadding="0">
    <tr><td valign="top"></td><td valign="top"><em>msg</em>&nbsp;</td><td>pointer to message </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>env</em>&nbsp;</td><td>pointer to environment struct </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>param</em>&nbsp;</td><td>pointer to parameter, message assumes ownership of parameter </td></tr>
  </table>
</dl>
<dl class="return" compact><dt><b>Returns:</b></dt><dd>AXIS2_SUCCESS on success, else AXIS2_FAILURE </dd></dl>

</div>
</div><p>
<a class="anchor" name="ge674ded0d7b93ff698a55334d6221286"></a><!-- doxytag: member="axis2_msg.h::axis2_msg_create" ref="ge674ded0d7b93ff698a55334d6221286" args="(const axutil_env_t *env)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">AXIS2_EXTERN <a class="el" href="group__axis2__msg.html#g20e480486e264ed4fb5df0517ce76b09">axis2_msg_t</a>* axis2_msg_create           </td>
          <td>(</td>
          <td class="paramtype">const <a class="el" href="structaxutil__env.html">axutil_env_t</a> *&nbsp;</td>
          <td class="paramname"> <em>env</em>          </td>
          <td>&nbsp;)&nbsp;</td>
          <td width="100%"></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
Creates message struct instance. <dl compact><dt><b>Parameters:</b></dt><dd>
  <table border="0" cellspacing="2" cellpadding="0">
    <tr><td valign="top"></td><td valign="top"><em>env</em>&nbsp;</td><td>pointer to environment struct </td></tr>
  </table>
</dl>
<dl class="return" compact><dt><b>Returns:</b></dt><dd>pointer to newly created message </dd></dl>

</div>
</div><p>
<a class="anchor" name="g168f956533c439c704e34253f1bf77b3"></a><!-- doxytag: member="axis2_msg.h::axis2_msg_free" ref="g168f956533c439c704e34253f1bf77b3" args="(axis2_msg_t *msg, const axutil_env_t *env)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">AXIS2_EXTERN void axis2_msg_free           </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="group__axis2__msg.html#g20e480486e264ed4fb5df0517ce76b09">axis2_msg_t</a> *&nbsp;</td>
          <td class="paramname"> <em>msg</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const <a class="el" href="structaxutil__env.html">axutil_env_t</a> *&nbsp;</td>
          <td class="paramname"> <em>env</em></td><td>&nbsp;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td><td width="100%"></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
Frees message. <dl compact><dt><b>Parameters:</b></dt><dd>
  <table border="0" cellspacing="2" cellpadding="0">
    <tr><td valign="top"></td><td valign="top"><em>msg</em>&nbsp;</td><td>pointer to message </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>env</em>&nbsp;</td><td>pointer to environment struct </td></tr>
  </table>
</dl>
<dl class="return" compact><dt><b>Returns:</b></dt><dd>void </dd></dl>

</div>
</div><p>
<a class="anchor" name="g6e0c544674fad801039013b66e5f548a"></a><!-- doxytag: member="axis2_msg.h::axis2_msg_get_all_params" ref="g6e0c544674fad801039013b66e5f548a" args="(const axis2_msg_t *msg, const axutil_env_t *env)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">AXIS2_EXTERN <a class="el" href="group__axutil__array__list.html#g1a6a89777db876cfa0cc86787b7be6a0">axutil_array_list_t</a>* axis2_msg_get_all_params           </td>
          <td>(</td>
          <td class="paramtype">const <a class="el" href="group__axis2__msg.html#g20e480486e264ed4fb5df0517ce76b09">axis2_msg_t</a> *&nbsp;</td>
          <td class="paramname"> <em>msg</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const <a class="el" href="structaxutil__env.html">axutil_env_t</a> *&nbsp;</td>
          <td class="paramname"> <em>env</em></td><td>&nbsp;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td><td width="100%"></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
Gets all parameters stored in message. <dl compact><dt><b>Parameters:</b></dt><dd>
  <table border="0" cellspacing="2" cellpadding="0">
    <tr><td valign="top"></td><td valign="top"><em>msg</em>&nbsp;</td><td>pointer to message </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>env</em>&nbsp;</td><td>pointer to environment struct </td></tr>
  </table>
</dl>
<dl class="return" compact><dt><b>Returns:</b></dt><dd>pointer to list of parameters, returns a reference, not a cloned copy </dd></dl>

</div>
</div><p>
<a class="anchor" name="ge6b0879687a82eec5c5cf621bd803623"></a><!-- doxytag: member="axis2_msg.h::axis2_msg_get_base" ref="ge6b0879687a82eec5c5cf621bd803623" args="(const axis2_msg_t *msg, const axutil_env_t *env)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">AXIS2_EXTERN <a class="el" href="group__axis2__description.html#g9bbf771ae43a8364c5f453c7077f0f1e">axis2_desc_t</a>* axis2_msg_get_base           </td>
          <td>(</td>
          <td class="paramtype">const <a class="el" href="group__axis2__msg.html#g20e480486e264ed4fb5df0517ce76b09">axis2_msg_t</a> *&nbsp;</td>
          <td class="paramname"> <em>msg</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const <a class="el" href="structaxutil__env.html">axutil_env_t</a> *&nbsp;</td>
          <td class="paramname"> <em>env</em></td><td>&nbsp;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td><td width="100%"></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
Gets base description. <dl compact><dt><b>Parameters:</b></dt><dd>
  <table border="0" cellspacing="2" cellpadding="0">
    <tr><td valign="top"></td><td valign="top"><em>msg</em>&nbsp;</td><td>pointer to message </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>env</em>&nbsp;</td><td>pointer to environment struct </td></tr>
  </table>
</dl>
<dl class="return" compact><dt><b>Returns:</b></dt><dd>pointer to base description struct </dd></dl>

</div>
</div><p>
<a class="anchor" name="gcbb409dc87613a84ac8bde394869f6ad"></a><!-- doxytag: member="axis2_msg.h::axis2_msg_get_direction" ref="gcbb409dc87613a84ac8bde394869f6ad" args="(const axis2_msg_t *msg, const axutil_env_t *env)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">AXIS2_EXTERN const axis2_char_t* axis2_msg_get_direction           </td>
          <td>(</td>
          <td class="paramtype">const <a class="el" href="group__axis2__msg.html#g20e480486e264ed4fb5df0517ce76b09">axis2_msg_t</a> *&nbsp;</td>
          <td class="paramname"> <em>msg</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const <a class="el" href="structaxutil__env.html">axutil_env_t</a> *&nbsp;</td>
          <td class="paramname"> <em>env</em></td><td>&nbsp;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td><td width="100%"></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
Gets direction of message. <dl compact><dt><b>Parameters:</b></dt><dd>
  <table border="0" cellspacing="2" cellpadding="0">
    <tr><td valign="top"></td><td valign="top"><em>msg</em>&nbsp;</td><td>pointer to message </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>env</em>&nbsp;</td><td>pointer to environment struct </td></tr>
  </table>
</dl>
<dl class="return" compact><dt><b>Returns:</b></dt><dd>direction string </dd></dl>

</div>
</div><p>
<a class="anchor" name="g3c21abaa1b0447d184b8a408cf2f75c1"></a><!-- doxytag: member="axis2_msg.h::axis2_msg_get_element_qname" ref="g3c21abaa1b0447d184b8a408cf2f75c1" args="(const axis2_msg_t *msg, const axutil_env_t *env)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">AXIS2_EXTERN const axutil_qname_t* axis2_msg_get_element_qname           </td>
          <td>(</td>
          <td class="paramtype">const <a class="el" href="group__axis2__msg.html#g20e480486e264ed4fb5df0517ce76b09">axis2_msg_t</a> *&nbsp;</td>
          <td class="paramname"> <em>msg</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const <a class="el" href="structaxutil__env.html">axutil_env_t</a> *&nbsp;</td>
          <td class="paramname"> <em>env</em></td><td>&nbsp;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td><td width="100%"></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
Gets QName representing message. <dl compact><dt><b>Parameters:</b></dt><dd>
  <table border="0" cellspacing="2" cellpadding="0">
    <tr><td valign="top"></td><td valign="top"><em>msg</em>&nbsp;</td><td>pointer to message </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>env</em>&nbsp;</td><td>pointer to environment struct </td></tr>
  </table>
</dl>
<dl class="return" compact><dt><b>Returns:</b></dt><dd>pointer to QName, returns a reference, not a cloned copy </dd></dl>

</div>
</div><p>
<a class="anchor" name="ga008e28053a1c980b867502b0619a6a2"></a><!-- doxytag: member="axis2_msg.h::axis2_msg_get_flow" ref="ga008e28053a1c980b867502b0619a6a2" args="(const axis2_msg_t *msg, const axutil_env_t *env)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">AXIS2_EXTERN <a class="el" href="group__axutil__array__list.html#g1a6a89777db876cfa0cc86787b7be6a0">axutil_array_list_t</a>* axis2_msg_get_flow           </td>
          <td>(</td>
          <td class="paramtype">const <a class="el" href="group__axis2__msg.html#g20e480486e264ed4fb5df0517ce76b09">axis2_msg_t</a> *&nbsp;</td>
          <td class="paramname"> <em>msg</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const <a class="el" href="structaxutil__env.html">axutil_env_t</a> *&nbsp;</td>
          <td class="paramname"> <em>env</em></td><td>&nbsp;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td><td width="100%"></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
Gets flow of execution associated with the message. <dl compact><dt><b>Parameters:</b></dt><dd>
  <table border="0" cellspacing="2" cellpadding="0">
    <tr><td valign="top"></td><td valign="top"><em>msg</em>&nbsp;</td><td>pointer to message </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>env</em>&nbsp;</td><td>pointer to environment struct </td></tr>
  </table>
</dl>
<dl class="return" compact><dt><b>Returns:</b></dt><dd>pointer to array list containing the list of phases representing the flow </dd></dl>

</div>
</div><p>
<a class="anchor" name="g4d0a9953fea4185365e869b71b6dec42"></a><!-- doxytag: member="axis2_msg.h::axis2_msg_get_name" ref="g4d0a9953fea4185365e869b71b6dec42" args="(const axis2_msg_t *msg, const axutil_env_t *env)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">AXIS2_EXTERN const axis2_char_t* axis2_msg_get_name           </td>
          <td>(</td>
          <td class="paramtype">const <a class="el" href="group__axis2__msg.html#g20e480486e264ed4fb5df0517ce76b09">axis2_msg_t</a> *&nbsp;</td>
          <td class="paramname"> <em>msg</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const <a class="el" href="structaxutil__env.html">axutil_env_t</a> *&nbsp;</td>
          <td class="paramname"> <em>env</em></td><td>&nbsp;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td><td width="100%"></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
Gets message name. <dl compact><dt><b>Parameters:</b></dt><dd>
  <table border="0" cellspacing="2" cellpadding="0">
    <tr><td valign="top"></td><td valign="top"><em>msg</em>&nbsp;</td><td>pointer to message </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>env</em>&nbsp;</td><td>pointer to environment struct </td></tr>
  </table>
</dl>
<dl class="return" compact><dt><b>Returns:</b></dt><dd>message name string. </dd></dl>

</div>
</div><p>
<a class="anchor" name="gf286bada1249b588b79d9b90520b5a09"></a><!-- doxytag: member="axis2_msg.h::axis2_msg_get_param" ref="gf286bada1249b588b79d9b90520b5a09" args="(const axis2_msg_t *msg, const axutil_env_t *env, const axis2_char_t *name)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">AXIS2_EXTERN axutil_param_t* axis2_msg_get_param           </td>
          <td>(</td>
          <td class="paramtype">const <a class="el" href="group__axis2__msg.html#g20e480486e264ed4fb5df0517ce76b09">axis2_msg_t</a> *&nbsp;</td>
          <td class="paramname"> <em>msg</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const <a class="el" href="structaxutil__env.html">axutil_env_t</a> *&nbsp;</td>
          <td class="paramname"> <em>env</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const axis2_char_t *&nbsp;</td>
          <td class="paramname"> <em>name</em></td><td>&nbsp;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td><td width="100%"></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
Gets the named parameter. <dl compact><dt><b>Parameters:</b></dt><dd>
  <table border="0" cellspacing="2" cellpadding="0">
    <tr><td valign="top"></td><td valign="top"><em>msg</em>&nbsp;</td><td>pointer to message </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>env</em>&nbsp;</td><td>pointer to environment struct </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>name</em>&nbsp;</td><td>parameter name string </td></tr>
  </table>
</dl>
<dl class="return" compact><dt><b>Returns:</b></dt><dd>pointer to parameter corresponding to the same name, returns a reference, not a cloned copy </dd></dl>

</div>
</div><p>
<a class="anchor" name="gcf3f23e957699279a048452b64a671f0"></a><!-- doxytag: member="axis2_msg.h::axis2_msg_get_param_container" ref="gcf3f23e957699279a048452b64a671f0" args="(const axis2_msg_t *msg, const axutil_env_t *env)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">AXIS2_EXTERN axutil_param_container_t* axis2_msg_get_param_container           </td>
          <td>(</td>
          <td class="paramtype">const <a class="el" href="group__axis2__msg.html#g20e480486e264ed4fb5df0517ce76b09">axis2_msg_t</a> *&nbsp;</td>
          <td class="paramname"> <em>msg</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const <a class="el" href="structaxutil__env.html">axutil_env_t</a> *&nbsp;</td>
          <td class="paramname"> <em>env</em></td><td>&nbsp;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td><td width="100%"></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
Gets container of parameters belonging to message. <dl compact><dt><b>Parameters:</b></dt><dd>
  <table border="0" cellspacing="2" cellpadding="0">
    <tr><td valign="top"></td><td valign="top"><em>msg</em>&nbsp;</td><td>pointer to message </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>env</em>&nbsp;</td><td>pointer to environment struct </td></tr>
  </table>
</dl>
<dl class="return" compact><dt><b>Returns:</b></dt><dd>returns container of parameters </dd></dl>
<dl class="see" compact><dt><b>See also:</b></dt><dd><a class="el" href="group__axutil__param__container.html">Parameter Container</a> </dd></dl>

</div>
</div><p>
<a class="anchor" name="g8191091ac7e17ed45c6d0ed3c9bc3d59"></a><!-- doxytag: member="axis2_msg.h::axis2_msg_get_parent" ref="g8191091ac7e17ed45c6d0ed3c9bc3d59" args="(const axis2_msg_t *msg, const axutil_env_t *env)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">AXIS2_EXTERN <a class="el" href="group__axis2__op.html#g13ff0e97eb92c0681768b60a93bf1bc9">axis2_op_t</a>* axis2_msg_get_parent           </td>
          <td>(</td>
          <td class="paramtype">const <a class="el" href="group__axis2__msg.html#g20e480486e264ed4fb5df0517ce76b09">axis2_msg_t</a> *&nbsp;</td>
          <td class="paramname"> <em>msg</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const <a class="el" href="structaxutil__env.html">axutil_env_t</a> *&nbsp;</td>
          <td class="paramname"> <em>env</em></td><td>&nbsp;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td><td width="100%"></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
Gets parent. Parent of a message is of type operation. <dl compact><dt><b>Parameters:</b></dt><dd>
  <table border="0" cellspacing="2" cellpadding="0">
    <tr><td valign="top"></td><td valign="top"><em>msg</em>&nbsp;</td><td>pointer to message </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>env</em>&nbsp;</td><td>pointer to environment struct </td></tr>
  </table>
</dl>
<dl class="return" compact><dt><b>Returns:</b></dt><dd>pointer to parent operation, returns a reference, not a cloned copy </dd></dl>

</div>
</div><p>
<a class="anchor" name="g88c91bcaf0e249122383433ebc308c88"></a><!-- doxytag: member="axis2_msg.h::axis2_msg_increment_ref" ref="g88c91bcaf0e249122383433ebc308c88" args="(axis2_msg_t *msg, const axutil_env_t *env)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">AXIS2_EXTERN axis2_status_t axis2_msg_increment_ref           </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="group__axis2__msg.html#g20e480486e264ed4fb5df0517ce76b09">axis2_msg_t</a> *&nbsp;</td>
          <td class="paramname"> <em>msg</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const <a class="el" href="structaxutil__env.html">axutil_env_t</a> *&nbsp;</td>
          <td class="paramname"> <em>env</em></td><td>&nbsp;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td><td width="100%"></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
Increments the reference count to this oject <dl compact><dt><b>Parameters:</b></dt><dd>
  <table border="0" cellspacing="2" cellpadding="0">
    <tr><td valign="top"></td><td valign="top"><em>msg</em>&nbsp;</td><td>pointer to message </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>env</em>&nbsp;</td><td>pointer to environment struct </td></tr>
  </table>
</dl>
<dl class="return" compact><dt><b>Returns:</b></dt><dd>AXIS2_SUCCESS on success, else AXIS2_FAILURE </dd></dl>

</div>
</div><p>
<a class="anchor" name="g51ae7e6eb9afee5f7e82bd7f8c21bf96"></a><!-- doxytag: member="axis2_msg.h::axis2_msg_is_param_locked" ref="g51ae7e6eb9afee5f7e82bd7f8c21bf96" args="(axis2_msg_t *msg, const axutil_env_t *env, const axis2_char_t *param_name)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">AXIS2_EXTERN axis2_bool_t axis2_msg_is_param_locked           </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="group__axis2__msg.html#g20e480486e264ed4fb5df0517ce76b09">axis2_msg_t</a> *&nbsp;</td>
          <td class="paramname"> <em>msg</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const <a class="el" href="structaxutil__env.html">axutil_env_t</a> *&nbsp;</td>
          <td class="paramname"> <em>env</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const axis2_char_t *&nbsp;</td>
          <td class="paramname"> <em>param_name</em></td><td>&nbsp;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td><td width="100%"></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
Checks if the named parameter is locked. <dl compact><dt><b>Parameters:</b></dt><dd>
  <table border="0" cellspacing="2" cellpadding="0">
    <tr><td valign="top"></td><td valign="top"><em>msg</em>&nbsp;</td><td>pointer to message </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>env</em>&nbsp;</td><td>pointer to environment struct </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>param_name</em>&nbsp;</td><td>parameter name string </td></tr>
  </table>
</dl>
<dl class="return" compact><dt><b>Returns:</b></dt><dd>AXIS2_TRUE if the parameter is locked, else AXIS2_FALSE </dd></dl>

</div>
</div><p>
<a class="anchor" name="g4d684f4bc237a32fcf2d2462d4c3166a"></a><!-- doxytag: member="axis2_msg.h::axis2_msg_set_direction" ref="g4d684f4bc237a32fcf2d2462d4c3166a" args="(axis2_msg_t *msg, const axutil_env_t *env, const axis2_char_t *direction)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">AXIS2_EXTERN axis2_status_t axis2_msg_set_direction           </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="group__axis2__msg.html#g20e480486e264ed4fb5df0517ce76b09">axis2_msg_t</a> *&nbsp;</td>
          <td class="paramname"> <em>msg</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const <a class="el" href="structaxutil__env.html">axutil_env_t</a> *&nbsp;</td>
          <td class="paramname"> <em>env</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const axis2_char_t *&nbsp;</td>
          <td class="paramname"> <em>direction</em></td><td>&nbsp;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td><td width="100%"></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
Sets direction of message. <dl compact><dt><b>Parameters:</b></dt><dd>
  <table border="0" cellspacing="2" cellpadding="0">
    <tr><td valign="top"></td><td valign="top"><em>msg</em>&nbsp;</td><td>pointer to message </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>env</em>&nbsp;</td><td>pointer to environment struct </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>direction</em>&nbsp;</td><td>pointer to direction </td></tr>
  </table>
</dl>
<dl class="return" compact><dt><b>Returns:</b></dt><dd>AXIS2_SUCCESS on success, else AXIS2_FAILURE </dd></dl>

</div>
</div><p>
<a class="anchor" name="g7fd20aa2eb6b5f479e7ca67e05b13bfd"></a><!-- doxytag: member="axis2_msg.h::axis2_msg_set_element_qname" ref="g7fd20aa2eb6b5f479e7ca67e05b13bfd" args="(axis2_msg_t *msg, const axutil_env_t *env, const axutil_qname_t *element_qname)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">AXIS2_EXTERN axis2_status_t axis2_msg_set_element_qname           </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="group__axis2__msg.html#g20e480486e264ed4fb5df0517ce76b09">axis2_msg_t</a> *&nbsp;</td>
          <td class="paramname"> <em>msg</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const <a class="el" href="structaxutil__env.html">axutil_env_t</a> *&nbsp;</td>
          <td class="paramname"> <em>env</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const axutil_qname_t *&nbsp;</td>
          <td class="paramname"> <em>element_qname</em></td><td>&nbsp;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td><td width="100%"></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
Sets QName representing message. <dl compact><dt><b>Parameters:</b></dt><dd>
  <table border="0" cellspacing="2" cellpadding="0">
    <tr><td valign="top"></td><td valign="top"><em>msg</em>&nbsp;</td><td>pointer to message </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>env</em>&nbsp;</td><td>pointer to environment struct </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>element_qname</em>&nbsp;</td><td>pointer to QName representing message, this function creates a clone of QName </td></tr>
  </table>
</dl>
<dl class="return" compact><dt><b>Returns:</b></dt><dd>AXIS2_SUCCESS on success, else AXIS2_FAILURE </dd></dl>

</div>
</div><p>
<a class="anchor" name="ge2d0cca919d701cc03f6a99d7fff3164"></a><!-- doxytag: member="axis2_msg.h::axis2_msg_set_flow" ref="ge2d0cca919d701cc03f6a99d7fff3164" args="(axis2_msg_t *msg, const axutil_env_t *env, axutil_array_list_t *flow)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">AXIS2_EXTERN axis2_status_t axis2_msg_set_flow           </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="group__axis2__msg.html#g20e480486e264ed4fb5df0517ce76b09">axis2_msg_t</a> *&nbsp;</td>
          <td class="paramname"> <em>msg</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const <a class="el" href="structaxutil__env.html">axutil_env_t</a> *&nbsp;</td>
          <td class="paramname"> <em>env</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype"><a class="el" href="group__axutil__array__list.html#g1a6a89777db876cfa0cc86787b7be6a0">axutil_array_list_t</a> *&nbsp;</td>
          <td class="paramname"> <em>flow</em></td><td>&nbsp;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td><td width="100%"></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
Sets flow of execution associated with the message. <dl compact><dt><b>Parameters:</b></dt><dd>
  <table border="0" cellspacing="2" cellpadding="0">
    <tr><td valign="top"></td><td valign="top"><em>msg</em>&nbsp;</td><td>pointer to message </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>env</em>&nbsp;</td><td>pointer to environment struct </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>flow</em>&nbsp;</td><td>pointer to array list of phases representing the flow, message assumes ownership of flow </td></tr>
  </table>
</dl>
<dl class="return" compact><dt><b>Returns:</b></dt><dd>AXIS2_SUCCESS on success, else AXIS2_FAILURE </dd></dl>

</div>
</div><p>
<a class="anchor" name="gc15cc16ed5f275763b938f3ae63d6566"></a><!-- doxytag: member="axis2_msg.h::axis2_msg_set_name" ref="gc15cc16ed5f275763b938f3ae63d6566" args="(axis2_msg_t *msg, const axutil_env_t *env, const axis2_char_t *name)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">AXIS2_EXTERN axis2_status_t axis2_msg_set_name           </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="group__axis2__msg.html#g20e480486e264ed4fb5df0517ce76b09">axis2_msg_t</a> *&nbsp;</td>
          <td class="paramname"> <em>msg</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const <a class="el" href="structaxutil__env.html">axutil_env_t</a> *&nbsp;</td>
          <td class="paramname"> <em>env</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const axis2_char_t *&nbsp;</td>
          <td class="paramname"> <em>name</em></td><td>&nbsp;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td><td width="100%"></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
Sets message name. <dl compact><dt><b>Parameters:</b></dt><dd>
  <table border="0" cellspacing="2" cellpadding="0">
    <tr><td valign="top"></td><td valign="top"><em>msg</em>&nbsp;</td><td>pointer to message </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>env</em>&nbsp;</td><td>pointer to environment struct </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>name</em>&nbsp;</td><td>message name string </td></tr>
  </table>
</dl>
<dl class="return" compact><dt><b>Returns:</b></dt><dd>AXIS2_SUCCESS on success, else AXIS2_FAILURE </dd></dl>

</div>
</div><p>
<a class="anchor" name="g7701b38d18f59fb09f37e9e974bfc3d0"></a><!-- doxytag: member="axis2_msg.h::axis2_msg_set_parent" ref="g7701b38d18f59fb09f37e9e974bfc3d0" args="(axis2_msg_t *msg, const axutil_env_t *env, axis2_op_t *op)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">AXIS2_EXTERN axis2_status_t axis2_msg_set_parent           </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="group__axis2__msg.html#g20e480486e264ed4fb5df0517ce76b09">axis2_msg_t</a> *&nbsp;</td>
          <td class="paramname"> <em>msg</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const <a class="el" href="structaxutil__env.html">axutil_env_t</a> *&nbsp;</td>
          <td class="paramname"> <em>env</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype"><a class="el" href="group__axis2__op.html#g13ff0e97eb92c0681768b60a93bf1bc9">axis2_op_t</a> *&nbsp;</td>
          <td class="paramname"> <em>op</em></td><td>&nbsp;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td><td width="100%"></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
Sets parent. Parent of a message is of type operation. <dl compact><dt><b>Parameters:</b></dt><dd>
  <table border="0" cellspacing="2" cellpadding="0">
    <tr><td valign="top"></td><td valign="top"><em>msg</em>&nbsp;</td><td>pointer to message </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>env</em>&nbsp;</td><td>pointer to environment struct </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>op</em>&nbsp;</td><td>pointer to parent operation, message does not assume ownership of parent </td></tr>
  </table>
</dl>
<dl class="return" compact><dt><b>Returns:</b></dt><dd>AXIS2_SUCCESS on success, else AXIS2_FAILURE </dd></dl>

</div>
</div><p>
<hr size="1"><address style="text-align: right;"><small>Generated on Fri Apr 17 11:49:45 2009 for Axis2/C by&nbsp;
<a href="http://www.doxygen.org/index.html">
<img src="doxygen.png" alt="doxygen" align="middle" border="0"></a> 1.5.3 </small></address>
</body>
</html>


<|start_filename|>xdocs/api/html/group__axis2__svc__skeleton.html<|end_filename|>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html><head><meta http-equiv="Content-Type" content="text/html;charset=UTF-8">
<title>Axis2/C: service skeleton</title>
<link href="doxygen.css" rel="stylesheet" type="text/css">
<link href="tabs.css" rel="stylesheet" type="text/css">
</head><body>
<!-- Generated by Doxygen 1.5.3 -->
<div class="tabs">
  <ul>
    <li><a href="index.html"><span>Main&nbsp;Page</span></a></li>
    <li><a href="modules.html"><span>Modules</span></a></li>
    <li><a href="annotated.html"><span>Classes</span></a></li>
    <li><a href="files.html"><span>Files</span></a></li>
    <li><a href="dirs.html"><span>Directories</span></a></li>
    <li><a href="pages.html"><span>Related&nbsp;Pages</span></a></li>
    <li><a href="examples.html"><span>Examples</span></a></li>
    <li>
      <form action="search.php" method="get">
        <table cellspacing="0" cellpadding="0" border="0">
          <tr>
            <td><label>&nbsp;<u>S</u>earch&nbsp;for&nbsp;</label></td>
            <td><input type="text" name="query" value="" size="20" accesskey="s"/></td>
          </tr>
        </table>
      </form>
    </li>
  </ul>
</div>
<h1>service skeleton</h1><table border="0" cellpadding="0" cellspacing="0">
<tr><td></td></tr>
<tr><td colspan="2"><br><h2>Files</h2></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top">file &nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="axis2__svc__skeleton_8h.html">axis2_svc_skeleton.h</a></td></tr>

<tr><td colspan="2"><br><h2>Classes</h2></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top">struct &nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="structaxis2__svc__skeleton__ops.html">axis2_svc_skeleton_ops</a></td></tr>

<tr><td class="memItemLeft" nowrap align="right" valign="top">struct &nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="structaxis2__svc__skeleton.html">axis2_svc_skeleton</a></td></tr>

<tr><td colspan="2"><br><h2>Defines</h2></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top">#define&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__axis2__svc__skeleton.html#g65d05f1f29f563149acfba91f3a23a91">AXIS2_SVC_SKELETON_INIT</a>(svc_skeleton, env)&nbsp;&nbsp;&nbsp;((svc_skeleton)-&gt;ops-&gt;init (svc_skeleton, env))</td></tr>

<tr><td class="memItemLeft" nowrap align="right" valign="top">#define&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__axis2__svc__skeleton.html#g8badcde91b5f58a020eaaafde4a0e431">AXIS2_SVC_SKELETON_INIT_WITH_CONF</a>(svc_skeleton, env, conf)&nbsp;&nbsp;&nbsp;((svc_skeleton)-&gt;ops-&gt;init_with_conf (svc_skeleton, env, conf))</td></tr>

<tr><td class="memItemLeft" nowrap align="right" valign="top">#define&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__axis2__svc__skeleton.html#g2d7f27e2cbfaff2288c6ecfccb55ff26">AXIS2_SVC_SKELETON_FREE</a>(svc_skeleton, env)&nbsp;&nbsp;&nbsp;((svc_skeleton)-&gt;ops-&gt;free (svc_skeleton, env))</td></tr>

<tr><td class="memItemLeft" nowrap align="right" valign="top">#define&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__axis2__svc__skeleton.html#ge181b2f813a771eea6d587f3f2652e7e">AXIS2_SVC_SKELETON_INVOKE</a>(svc_skeleton, env, node, msg_ctx)&nbsp;&nbsp;&nbsp;((svc_skeleton)-&gt;ops-&gt;invoke (svc_skeleton, env, node, msg_ctx))</td></tr>

<tr><td class="memItemLeft" nowrap align="right" valign="top">#define&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__axis2__svc__skeleton.html#gc1c9dfc996cb0f8603e042cef200db98">AXIS2_SVC_SKELETON_ON_FAULT</a>(svc_skeleton, env, node)&nbsp;&nbsp;&nbsp;((svc_skeleton)-&gt;ops-&gt;on_fault (svc_skeleton, env, node))</td></tr>

<tr><td colspan="2"><br><h2>Typedefs</h2></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top">typedef struct <br>
<a class="el" href="structaxis2__svc__skeleton__ops.html">axis2_svc_skeleton_ops</a>&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__axis2__svc__skeleton.html#gcaa7c83955b9bfe9476b6afc73833b28">axis2_svc_skeleton_ops_t</a></td></tr>

<tr><td class="memItemLeft" nowrap align="right" valign="top">typedef struct <br>
<a class="el" href="structaxis2__svc__skeleton.html">axis2_svc_skeleton</a>&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__axis2__svc__skeleton.html#gc1e79d5cf892025c1f663b2122c5ea50">axis2_svc_skeleton_t</a></td></tr>

</table>
<hr><a name="_details"></a><h2>Detailed Description</h2>
service skeleton API should be implemented by all services that are to be deployed with Axis2/C engine. <hr><h2>Define Documentation</h2>
<a class="anchor" name="g2d7f27e2cbfaff2288c6ecfccb55ff26"></a><!-- doxytag: member="axis2_svc_skeleton.h::AXIS2_SVC_SKELETON_FREE" ref="g2d7f27e2cbfaff2288c6ecfccb55ff26" args="(svc_skeleton, env)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">#define AXIS2_SVC_SKELETON_FREE          </td>
          <td>(</td>
          <td class="paramtype">svc_skeleton,         <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">env&nbsp;</td>
          <td class="paramname">          </td>
          <td>&nbsp;)&nbsp;</td>
          <td width="100%">&nbsp;&nbsp;&nbsp;((svc_skeleton)-&gt;ops-&gt;free (svc_skeleton, env))</td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
Frees the svc skeleton. <dl class="see" compact><dt><b>See also:</b></dt><dd><a class="el" href="structaxis2__svc__skeleton__ops.html#9b16e26ef87c9c4d460ee903adf70da3">axis2_svc_skeleton_ops::free</a> </dd></dl>

</div>
</div><p>
<a class="anchor" name="g65d05f1f29f563149acfba91f3a23a91"></a><!-- doxytag: member="axis2_svc_skeleton.h::AXIS2_SVC_SKELETON_INIT" ref="g65d05f1f29f563149acfba91f3a23a91" args="(svc_skeleton, env)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">#define AXIS2_SVC_SKELETON_INIT          </td>
          <td>(</td>
          <td class="paramtype">svc_skeleton,         <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">env&nbsp;</td>
          <td class="paramname">          </td>
          <td>&nbsp;)&nbsp;</td>
          <td width="100%">&nbsp;&nbsp;&nbsp;((svc_skeleton)-&gt;ops-&gt;init (svc_skeleton, env))</td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
Initialize the svc skeleton. <dl class="see" compact><dt><b>See also:</b></dt><dd><a class="el" href="structaxis2__svc__skeleton__ops.html#6c3313db00614c0ae6a0e3596496e5fd">axis2_svc_skeleton_ops::init</a> </dd></dl>

</div>
</div><p>
<a class="anchor" name="g8badcde91b5f58a020eaaafde4a0e431"></a><!-- doxytag: member="axis2_svc_skeleton.h::AXIS2_SVC_SKELETON_INIT_WITH_CONF" ref="g8badcde91b5f58a020eaaafde4a0e431" args="(svc_skeleton, env, conf)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">#define AXIS2_SVC_SKELETON_INIT_WITH_CONF          </td>
          <td>(</td>
          <td class="paramtype">svc_skeleton,         <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">env,         <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">conf&nbsp;</td>
          <td class="paramname">          </td>
          <td>&nbsp;)&nbsp;</td>
          <td width="100%">&nbsp;&nbsp;&nbsp;((svc_skeleton)-&gt;ops-&gt;init_with_conf (svc_skeleton, env, conf))</td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
Initialize the svc skeleton with axis2c configuration struct. <dl class="see" compact><dt><b>See also:</b></dt><dd><a class="el" href="structaxis2__svc__skeleton__ops.html#0931f8e4636f97f582421d5babe407b7">axis2_svc_skeleton_ops::init_with_conf</a> </dd></dl>

</div>
</div><p>
<a class="anchor" name="ge181b2f813a771eea6d587f3f2652e7e"></a><!-- doxytag: member="axis2_svc_skeleton.h::AXIS2_SVC_SKELETON_INVOKE" ref="ge181b2f813a771eea6d587f3f2652e7e" args="(svc_skeleton, env, node, msg_ctx)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">#define AXIS2_SVC_SKELETON_INVOKE          </td>
          <td>(</td>
          <td class="paramtype">svc_skeleton,         <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">env,         <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">node,         <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">msg_ctx&nbsp;</td>
          <td class="paramname">          </td>
          <td>&nbsp;)&nbsp;</td>
          <td width="100%">&nbsp;&nbsp;&nbsp;((svc_skeleton)-&gt;ops-&gt;invoke (svc_skeleton, env, node, msg_ctx))</td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
Invokes axis2 service skeleton. <dl class="see" compact><dt><b>See also:</b></dt><dd><a class="el" href="structaxis2__svc__skeleton__ops.html#f7e231e87bb2db245c626f5037c7d263">axis2_svc_skeleton_ops::invoke</a> </dd></dl>

</div>
</div><p>
<a class="anchor" name="gc1c9dfc996cb0f8603e042cef200db98"></a><!-- doxytag: member="axis2_svc_skeleton.h::AXIS2_SVC_SKELETON_ON_FAULT" ref="gc1c9dfc996cb0f8603e042cef200db98" args="(svc_skeleton, env, node)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">#define AXIS2_SVC_SKELETON_ON_FAULT          </td>
          <td>(</td>
          <td class="paramtype">svc_skeleton,         <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">env,         <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">node&nbsp;</td>
          <td class="paramname">          </td>
          <td>&nbsp;)&nbsp;</td>
          <td width="100%">&nbsp;&nbsp;&nbsp;((svc_skeleton)-&gt;ops-&gt;on_fault (svc_skeleton, env, node))</td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
Called on fault. <dl class="see" compact><dt><b>See also:</b></dt><dd><a class="el" href="structaxis2__svc__skeleton__ops.html#84abaf5bdda303774fe1abe6d4808577">axis2_svc_skeleton_ops::on_fault</a> </dd></dl>

</div>
</div><p>
<hr><h2>Typedef Documentation</h2>
<a class="anchor" name="gcaa7c83955b9bfe9476b6afc73833b28"></a><!-- doxytag: member="axis2_svc_skeleton.h::axis2_svc_skeleton_ops_t" ref="gcaa7c83955b9bfe9476b6afc73833b28" args="" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">typedef struct <a class="el" href="structaxis2__svc__skeleton__ops.html">axis2_svc_skeleton_ops</a> <a class="el" href="structaxis2__svc__skeleton__ops.html">axis2_svc_skeleton_ops_t</a>          </td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
Type name for struct <a class="el" href="structaxis2__svc__skeleton__ops.html">axis2_svc_skeleton_ops</a> 
</div>
</div><p>
<a class="anchor" name="gc1e79d5cf892025c1f663b2122c5ea50"></a><!-- doxytag: member="axis2_svc_skeleton.h::axis2_svc_skeleton_t" ref="gc1e79d5cf892025c1f663b2122c5ea50" args="" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">typedef struct <a class="el" href="structaxis2__svc__skeleton.html">axis2_svc_skeleton</a> <a class="el" href="structaxis2__svc__skeleton.html">axis2_svc_skeleton_t</a>          </td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
Type name for struct <a class="el" href="structaxis2__svc__skeleton.html">axis2_svc_skeleton</a> 
</div>
</div><p>
<hr size="1"><address style="text-align: right;"><small>Generated on Fri Apr 17 11:49:45 2009 for Axis2/C by&nbsp;
<a href="http://www.doxygen.org/index.html">
<img src="doxygen.png" alt="doxygen" align="middle" border="0"></a> 1.5.3 </small></address>
</body>
</html>


<|start_filename|>xdocs/api/html/group__axutil__property.html<|end_filename|>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html><head><meta http-equiv="Content-Type" content="text/html;charset=UTF-8">
<title>Axis2/C: property</title>
<link href="doxygen.css" rel="stylesheet" type="text/css">
<link href="tabs.css" rel="stylesheet" type="text/css">
</head><body>
<!-- Generated by Doxygen 1.5.3 -->
<div class="tabs">
  <ul>
    <li><a href="index.html"><span>Main&nbsp;Page</span></a></li>
    <li><a href="modules.html"><span>Modules</span></a></li>
    <li><a href="annotated.html"><span>Classes</span></a></li>
    <li><a href="files.html"><span>Files</span></a></li>
    <li><a href="dirs.html"><span>Directories</span></a></li>
    <li><a href="pages.html"><span>Related&nbsp;Pages</span></a></li>
    <li><a href="examples.html"><span>Examples</span></a></li>
    <li>
      <form action="search.php" method="get">
        <table cellspacing="0" cellpadding="0" border="0">
          <tr>
            <td><label>&nbsp;<u>S</u>earch&nbsp;for&nbsp;</label></td>
            <td><input type="text" name="query" value="" size="20" accesskey="s"/></td>
          </tr>
        </table>
      </form>
    </li>
  </ul>
</div>
<h1>property<br>
<small>
[<a class="el" href="group__axis2__util.html">utilities</a>]</small>
</h1><table border="0" cellpadding="0" cellspacing="0">
<tr><td></td></tr>
<tr><td colspan="2"><br><h2>Typedefs</h2></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="g87df976c022838ccd5427d92d69508c1"></a><!-- doxytag: member="axutil_property::axutil_property_t" ref="g87df976c022838ccd5427d92d69508c1" args="" -->
typedef struct <br>
axutil_property&nbsp;</td><td class="memItemRight" valign="bottom"><b>axutil_property_t</b></td></tr>

<tr><td colspan="2"><br><h2>Functions</h2></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top">AXIS2_EXTERN <br>
axutil_property_t *&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__axutil__property.html#g0c788c91efff2e54567af74055b85a52">axutil_property_create</a> (const <a class="el" href="structaxutil__env.html">axutil_env_t</a> *env)</td></tr>

<tr><td class="memItemLeft" nowrap align="right" valign="top">AXIS2_EXTERN <br>
axutil_property_t *&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__axutil__property.html#ged645c265ef719bd0b9513fc1e04d699">axutil_property_create_with_args</a> (const <a class="el" href="structaxutil__env.html">axutil_env_t</a> *env, axis2_scope_t scope, axis2_bool_t own_value, AXIS2_FREE_VOID_ARG free_func, void *value)</td></tr>

<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="g07acf9184d88011867fa249652029c60"></a><!-- doxytag: member="axutil_property::axutil_property_free" ref="g07acf9184d88011867fa249652029c60" args="(axutil_property_t *property, const axutil_env_t *env)" -->
AXIS2_EXTERN void&nbsp;</td><td class="memItemRight" valign="bottom"><b>axutil_property_free</b> (axutil_property_t *property, const <a class="el" href="structaxutil__env.html">axutil_env_t</a> *env)</td></tr>

<tr><td class="memItemLeft" nowrap align="right" valign="top">AXIS2_EXTERN <br>
axis2_status_t&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__axutil__property.html#g4779e4b68dcfb3d96eb6fea0d35fe245">axutil_property_set_scope</a> (axutil_property_t *property, const <a class="el" href="structaxutil__env.html">axutil_env_t</a> *env, axis2_scope_t scope)</td></tr>

<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="gccacdec563fbe50dd5ec0b14735e5062"></a><!-- doxytag: member="axutil_property::axutil_property_set_free_func" ref="gccacdec563fbe50dd5ec0b14735e5062" args="(axutil_property_t *property, const axutil_env_t *env, AXIS2_FREE_VOID_ARG free_func)" -->
AXIS2_EXTERN <br>
axis2_status_t&nbsp;</td><td class="memItemRight" valign="bottom"><b>axutil_property_set_free_func</b> (axutil_property_t *property, const <a class="el" href="structaxutil__env.html">axutil_env_t</a> *env, AXIS2_FREE_VOID_ARG free_func)</td></tr>

<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="g95fa27c49026062b1f090cff493eefbf"></a><!-- doxytag: member="axutil_property::axutil_property_set_value" ref="g95fa27c49026062b1f090cff493eefbf" args="(axutil_property_t *property, const axutil_env_t *env, void *value)" -->
AXIS2_EXTERN <br>
axis2_status_t&nbsp;</td><td class="memItemRight" valign="bottom"><b>axutil_property_set_value</b> (axutil_property_t *property, const <a class="el" href="structaxutil__env.html">axutil_env_t</a> *env, void *value)</td></tr>

<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="g00682540a3f8276cbb25eee7e3cf2873"></a><!-- doxytag: member="axutil_property::axutil_property_get_value" ref="g00682540a3f8276cbb25eee7e3cf2873" args="(axutil_property_t *property, const axutil_env_t *env)" -->
AXIS2_EXTERN void *&nbsp;</td><td class="memItemRight" valign="bottom"><b>axutil_property_get_value</b> (axutil_property_t *property, const <a class="el" href="structaxutil__env.html">axutil_env_t</a> *env)</td></tr>

<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="g6b875290eadc9fd632814c70706fbc1e"></a><!-- doxytag: member="axutil_property::axutil_property_set_own_value" ref="g6b875290eadc9fd632814c70706fbc1e" args="(axutil_property_t *property, const axutil_env_t *env, axis2_bool_t own_value)" -->
AXIS2_EXTERN <br>
axis2_status_t&nbsp;</td><td class="memItemRight" valign="bottom"><b>axutil_property_set_own_value</b> (axutil_property_t *property, const <a class="el" href="structaxutil__env.html">axutil_env_t</a> *env, axis2_bool_t own_value)</td></tr>

<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="ga7b77628cd8b33c8e61ce58d187d13d9"></a><!-- doxytag: member="axutil_property::axutil_property_clone" ref="ga7b77628cd8b33c8e61ce58d187d13d9" args="(axutil_property_t *property, const axutil_env_t *env)" -->
AXIS2_EXTERN <br>
axutil_property_t *&nbsp;</td><td class="memItemRight" valign="bottom"><b>axutil_property_clone</b> (axutil_property_t *property, const <a class="el" href="structaxutil__env.html">axutil_env_t</a> *env)</td></tr>

</table>
<hr><h2>Function Documentation</h2>
<a class="anchor" name="g0c788c91efff2e54567af74055b85a52"></a><!-- doxytag: member="axutil_property.h::axutil_property_create" ref="g0c788c91efff2e54567af74055b85a52" args="(const axutil_env_t *env)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">AXIS2_EXTERN axutil_property_t* axutil_property_create           </td>
          <td>(</td>
          <td class="paramtype">const <a class="el" href="structaxutil__env.html">axutil_env_t</a> *&nbsp;</td>
          <td class="paramname"> <em>env</em>          </td>
          <td>&nbsp;)&nbsp;</td>
          <td width="100%"></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
create new property <dl class="return" compact><dt><b>Returns:</b></dt><dd>property newly created property </dd></dl>

</div>
</div><p>
<a class="anchor" name="ged645c265ef719bd0b9513fc1e04d699"></a><!-- doxytag: member="axutil_property.h::axutil_property_create_with_args" ref="ged645c265ef719bd0b9513fc1e04d699" args="(const axutil_env_t *env, axis2_scope_t scope, axis2_bool_t own_value, AXIS2_FREE_VOID_ARG free_func, void *value)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">AXIS2_EXTERN axutil_property_t* axutil_property_create_with_args           </td>
          <td>(</td>
          <td class="paramtype">const <a class="el" href="structaxutil__env.html">axutil_env_t</a> *&nbsp;</td>
          <td class="paramname"> <em>env</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">axis2_scope_t&nbsp;</td>
          <td class="paramname"> <em>scope</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">axis2_bool_t&nbsp;</td>
          <td class="paramname"> <em>own_value</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">AXIS2_FREE_VOID_ARG&nbsp;</td>
          <td class="paramname"> <em>free_func</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">void *&nbsp;</td>
          <td class="paramname"> <em>value</em></td><td>&nbsp;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td><td width="100%"></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
create new property <dl compact><dt><b>Parameters:</b></dt><dd>
  <table border="0" cellspacing="2" cellpadding="0">
    <tr><td valign="top"></td><td valign="top"><em>env</em>&nbsp;</td><td>axis2 environment </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>scope</em>&nbsp;</td><td>scope can be one of following AXIS2_SCOPE_REQUEST AXIS2_SCOPE_SESSION AXIS2_SCOPE_APPLICATION pass 0 to use default scope of AXIS2_SCOPE_REQUEST </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>own_value</em>&nbsp;</td><td>whether value is owned by the property or not. if the value is owned by the property it should be freed by the proeprty. </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>free_func</em>&nbsp;</td><td>free function for the value freeing. Pass 0 if param value is a string </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>value</em>&nbsp;</td><td>value of the property </td></tr>
  </table>
</dl>
<dl class="return" compact><dt><b>Returns:</b></dt><dd>property newly created property </dd></dl>

</div>
</div><p>
<a class="anchor" name="g4779e4b68dcfb3d96eb6fea0d35fe245"></a><!-- doxytag: member="axutil_property.h::axutil_property_set_scope" ref="g4779e4b68dcfb3d96eb6fea0d35fe245" args="(axutil_property_t *property, const axutil_env_t *env, axis2_scope_t scope)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">AXIS2_EXTERN axis2_status_t axutil_property_set_scope           </td>
          <td>(</td>
          <td class="paramtype">axutil_property_t *&nbsp;</td>
          <td class="paramname"> <em>property</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const <a class="el" href="structaxutil__env.html">axutil_env_t</a> *&nbsp;</td>
          <td class="paramname"> <em>env</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">axis2_scope_t&nbsp;</td>
          <td class="paramname"> <em>scope</em></td><td>&nbsp;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td><td width="100%"></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
Default scope is AXIS2_SCOPE_REQUEST 
</div>
</div><p>
<hr size="1"><address style="text-align: right;"><small>Generated on Fri Apr 17 11:49:46 2009 for Axis2/C by&nbsp;
<a href="http://www.doxygen.org/index.html">
<img src="doxygen.png" alt="doxygen" align="middle" border="0"></a> 1.5.3 </small></address>
</body>
</html>


<|start_filename|>xdocs/api/html/group__axis2__listener__manager.html<|end_filename|>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html><head><meta http-equiv="Content-Type" content="text/html;charset=UTF-8">
<title>Axis2/C: listener manager</title>
<link href="doxygen.css" rel="stylesheet" type="text/css">
<link href="tabs.css" rel="stylesheet" type="text/css">
</head><body>
<!-- Generated by Doxygen 1.5.3 -->
<div class="tabs">
  <ul>
    <li><a href="index.html"><span>Main&nbsp;Page</span></a></li>
    <li><a href="modules.html"><span>Modules</span></a></li>
    <li><a href="annotated.html"><span>Classes</span></a></li>
    <li><a href="files.html"><span>Files</span></a></li>
    <li><a href="dirs.html"><span>Directories</span></a></li>
    <li><a href="pages.html"><span>Related&nbsp;Pages</span></a></li>
    <li><a href="examples.html"><span>Examples</span></a></li>
    <li>
      <form action="search.php" method="get">
        <table cellspacing="0" cellpadding="0" border="0">
          <tr>
            <td><label>&nbsp;<u>S</u>earch&nbsp;for&nbsp;</label></td>
            <td><input type="text" name="query" value="" size="20" accesskey="s"/></td>
          </tr>
        </table>
      </form>
    </li>
  </ul>
</div>
<h1>listener manager</h1><table border="0" cellpadding="0" cellspacing="0">
<tr><td></td></tr>
<tr><td colspan="2"><br><h2>Files</h2></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top">file &nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="axis2__listener__manager_8h.html">axis2_listener_manager.h</a></td></tr>

<tr><td colspan="2"><br><h2>Typedefs</h2></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top">typedef struct <br>
axis2_listener_manager&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__axis2__listener__manager.html#g1b9eeb7e6361aff1035273fbaa47cf47">axis2_listener_manager_t</a></td></tr>

<tr><td colspan="2"><br><h2>Functions</h2></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top">AXIS2_EXTERN <br>
axis2_status_t&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__axis2__listener__manager.html#g1e7458c7473be15ce253a9a0a5ff133f">axis2_listener_manager_make_sure_started</a> (<a class="el" href="group__axis2__listener__manager.html#g1b9eeb7e6361aff1035273fbaa47cf47">axis2_listener_manager_t</a> *listener_manager, const <a class="el" href="structaxutil__env.html">axutil_env_t</a> *env, const AXIS2_TRANSPORT_ENUMS transport, <a class="el" href="group__axis2__conf__ctx.html#gab2f89df328e63d4f9fa3a4d035d18f0">axis2_conf_ctx_t</a> *conf_ctx)</td></tr>

<tr><td class="memItemLeft" nowrap align="right" valign="top">AXIS2_EXTERN <br>
axis2_status_t&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__axis2__listener__manager.html#g6c4f3cd813f06a94d27a9780328ac8bd">axis2_listener_manager_stop</a> (<a class="el" href="group__axis2__listener__manager.html#g1b9eeb7e6361aff1035273fbaa47cf47">axis2_listener_manager_t</a> *listener_manager, const <a class="el" href="structaxutil__env.html">axutil_env_t</a> *env, const AXIS2_TRANSPORT_ENUMS transport)</td></tr>

<tr><td class="memItemLeft" nowrap align="right" valign="top">AXIS2_EXTERN <br>
<a class="el" href="group__axis2__endpoint__ref.html#gf6e89c83a6b553e7e3f11e787b3fecd4">axis2_endpoint_ref_t</a> *&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__axis2__listener__manager.html#g98741fbe3a3e68a7a631960c2387b0ea">axis2_listener_manager_get_reply_to_epr</a> (const <a class="el" href="group__axis2__listener__manager.html#g1b9eeb7e6361aff1035273fbaa47cf47">axis2_listener_manager_t</a> *listener_manager, const <a class="el" href="structaxutil__env.html">axutil_env_t</a> *env, const axis2_char_t *svc_name, const AXIS2_TRANSPORT_ENUMS transport)</td></tr>

<tr><td class="memItemLeft" nowrap align="right" valign="top">AXIS2_EXTERN <br>
<a class="el" href="group__axis2__conf__ctx.html#gab2f89df328e63d4f9fa3a4d035d18f0">axis2_conf_ctx_t</a> *&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__axis2__listener__manager.html#g7bbcb6361e6cd875b2a95198645573c6">axis2_listener_manager_get_conf_ctx</a> (const <a class="el" href="group__axis2__listener__manager.html#g1b9eeb7e6361aff1035273fbaa47cf47">axis2_listener_manager_t</a> *listener_manager, const <a class="el" href="structaxutil__env.html">axutil_env_t</a> *env)</td></tr>

<tr><td class="memItemLeft" nowrap align="right" valign="top">AXIS2_EXTERN void&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__axis2__listener__manager.html#g4fa9a09dcf7fb5491806eb62ca43db25">axis2_listener_manager_free</a> (<a class="el" href="group__axis2__listener__manager.html#g1b9eeb7e6361aff1035273fbaa47cf47">axis2_listener_manager_t</a> *listener_manager, const <a class="el" href="structaxutil__env.html">axutil_env_t</a> *env)</td></tr>

<tr><td class="memItemLeft" nowrap align="right" valign="top">AXIS2_EXTERN <br>
<a class="el" href="group__axis2__listener__manager.html#g1b9eeb7e6361aff1035273fbaa47cf47">axis2_listener_manager_t</a> *&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__axis2__listener__manager.html#g5ec86a93f88b4b786b0e121b545147ee">axis2_listener_manager_create</a> (const <a class="el" href="structaxutil__env.html">axutil_env_t</a> *env)</td></tr>

</table>
<hr><a name="_details"></a><h2>Detailed Description</h2>
listener manager manages the listeners in case of dual channel invocations. In case of a dual channel invocation, request is sent along one channel and the response is received on another channel. When the response is expected to be received along another transport channel, it has to be made sure that the listener socket is up in anticipation of the response and also that listener must be closed once the response is received. listener manager is responsible for dealing with these tasks. <hr><h2>Typedef Documentation</h2>
<a class="anchor" name="g1b9eeb7e6361aff1035273fbaa47cf47"></a><!-- doxytag: member="axis2_listener_manager.h::axis2_listener_manager_t" ref="g1b9eeb7e6361aff1035273fbaa47cf47" args="" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">typedef struct axis2_listener_manager <a class="el" href="group__axis2__listener__manager.html#g1b9eeb7e6361aff1035273fbaa47cf47">axis2_listener_manager_t</a>          </td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
Type name for struct axis2_listener_manager 
</div>
</div><p>
<hr><h2>Function Documentation</h2>
<a class="anchor" name="g5ec86a93f88b4b786b0e121b545147ee"></a><!-- doxytag: member="axis2_listener_manager.h::axis2_listener_manager_create" ref="g5ec86a93f88b4b786b0e121b545147ee" args="(const axutil_env_t *env)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">AXIS2_EXTERN <a class="el" href="group__axis2__listener__manager.html#g1b9eeb7e6361aff1035273fbaa47cf47">axis2_listener_manager_t</a>* axis2_listener_manager_create           </td>
          <td>(</td>
          <td class="paramtype">const <a class="el" href="structaxutil__env.html">axutil_env_t</a> *&nbsp;</td>
          <td class="paramname"> <em>env</em>          </td>
          <td>&nbsp;)&nbsp;</td>
          <td width="100%"></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
Creates a listener manager struct instance. <dl compact><dt><b>Parameters:</b></dt><dd>
  <table border="0" cellspacing="2" cellpadding="0">
    <tr><td valign="top"></td><td valign="top"><em>env</em>&nbsp;</td><td>pointer to environment struct </td></tr>
  </table>
</dl>
<dl class="return" compact><dt><b>Returns:</b></dt><dd>a pointer to newly created listener manager struct, or NULL on error with error code set in environment's error </dd></dl>

</div>
</div><p>
<a class="anchor" name="g4fa9a09dcf7fb5491806eb62ca43db25"></a><!-- doxytag: member="axis2_listener_manager.h::axis2_listener_manager_free" ref="g4fa9a09dcf7fb5491806eb62ca43db25" args="(axis2_listener_manager_t *listener_manager, const axutil_env_t *env)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">AXIS2_EXTERN void axis2_listener_manager_free           </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="group__axis2__listener__manager.html#g1b9eeb7e6361aff1035273fbaa47cf47">axis2_listener_manager_t</a> *&nbsp;</td>
          <td class="paramname"> <em>listener_manager</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const <a class="el" href="structaxutil__env.html">axutil_env_t</a> *&nbsp;</td>
          <td class="paramname"> <em>env</em></td><td>&nbsp;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td><td width="100%"></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
Frees listener manager struct. <dl compact><dt><b>Parameters:</b></dt><dd>
  <table border="0" cellspacing="2" cellpadding="0">
    <tr><td valign="top"></td><td valign="top"><em>listener_manager</em>&nbsp;</td><td>pointer to listener manager struct </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>env</em>&nbsp;</td><td>pointer to environment struct </td></tr>
  </table>
</dl>
<dl class="return" compact><dt><b>Returns:</b></dt><dd>void </dd></dl>

</div>
</div><p>
<a class="anchor" name="g7bbcb6361e6cd875b2a95198645573c6"></a><!-- doxytag: member="axis2_listener_manager.h::axis2_listener_manager_get_conf_ctx" ref="g7bbcb6361e6cd875b2a95198645573c6" args="(const axis2_listener_manager_t *listener_manager, const axutil_env_t *env)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">AXIS2_EXTERN <a class="el" href="group__axis2__conf__ctx.html#gab2f89df328e63d4f9fa3a4d035d18f0">axis2_conf_ctx_t</a>* axis2_listener_manager_get_conf_ctx           </td>
          <td>(</td>
          <td class="paramtype">const <a class="el" href="group__axis2__listener__manager.html#g1b9eeb7e6361aff1035273fbaa47cf47">axis2_listener_manager_t</a> *&nbsp;</td>
          <td class="paramname"> <em>listener_manager</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const <a class="el" href="structaxutil__env.html">axutil_env_t</a> *&nbsp;</td>
          <td class="paramname"> <em>env</em></td><td>&nbsp;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td><td width="100%"></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
Gets the configuration context that holds information on the transports managed by the listener manager. <dl compact><dt><b>Parameters:</b></dt><dd>
  <table border="0" cellspacing="2" cellpadding="0">
    <tr><td valign="top"></td><td valign="top"><em>listener_manager</em>&nbsp;</td><td>pointer to listener manager struct </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>env</em>&nbsp;</td><td>pointer to environment struct </td></tr>
  </table>
</dl>

</div>
</div><p>
<a class="anchor" name="g98741fbe3a3e68a7a631960c2387b0ea"></a><!-- doxytag: member="axis2_listener_manager.h::axis2_listener_manager_get_reply_to_epr" ref="g98741fbe3a3e68a7a631960c2387b0ea" args="(const axis2_listener_manager_t *listener_manager, const axutil_env_t *env, const axis2_char_t *svc_name, const AXIS2_TRANSPORT_ENUMS transport)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">AXIS2_EXTERN <a class="el" href="group__axis2__endpoint__ref.html#gf6e89c83a6b553e7e3f11e787b3fecd4">axis2_endpoint_ref_t</a>* axis2_listener_manager_get_reply_to_epr           </td>
          <td>(</td>
          <td class="paramtype">const <a class="el" href="group__axis2__listener__manager.html#g1b9eeb7e6361aff1035273fbaa47cf47">axis2_listener_manager_t</a> *&nbsp;</td>
          <td class="paramname"> <em>listener_manager</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const <a class="el" href="structaxutil__env.html">axutil_env_t</a> *&nbsp;</td>
          <td class="paramname"> <em>env</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const axis2_char_t *&nbsp;</td>
          <td class="paramname"> <em>svc_name</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const AXIS2_TRANSPORT_ENUMS&nbsp;</td>
          <td class="paramname"> <em>transport</em></td><td>&nbsp;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td><td width="100%"></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
Gets reply to end point reference. The engine will direct the response for the message to this reply to address. <dl compact><dt><b>Parameters:</b></dt><dd>
  <table border="0" cellspacing="2" cellpadding="0">
    <tr><td valign="top"></td><td valign="top"><em>listener_manager</em>&nbsp;</td><td>pointer to listener manager struct </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>env</em>&nbsp;</td><td>pointer to environment struct </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>svc_name</em>&nbsp;</td><td>name of the service for which the epr is to be returned </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>transport</em>&nbsp;</td><td>name of the transport corresponding to the endpoint </td></tr>
  </table>
</dl>
<dl class="return" compact><dt><b>Returns:</b></dt><dd>a pointer to endpoint reference struct representing the reply endpoint </dd></dl>

</div>
</div><p>
<a class="anchor" name="g1e7458c7473be15ce253a9a0a5ff133f"></a><!-- doxytag: member="axis2_listener_manager.h::axis2_listener_manager_make_sure_started" ref="g1e7458c7473be15ce253a9a0a5ff133f" args="(axis2_listener_manager_t *listener_manager, const axutil_env_t *env, const AXIS2_TRANSPORT_ENUMS transport, axis2_conf_ctx_t *conf_ctx)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">AXIS2_EXTERN axis2_status_t axis2_listener_manager_make_sure_started           </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="group__axis2__listener__manager.html#g1b9eeb7e6361aff1035273fbaa47cf47">axis2_listener_manager_t</a> *&nbsp;</td>
          <td class="paramname"> <em>listener_manager</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const <a class="el" href="structaxutil__env.html">axutil_env_t</a> *&nbsp;</td>
          <td class="paramname"> <em>env</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const AXIS2_TRANSPORT_ENUMS&nbsp;</td>
          <td class="paramname"> <em>transport</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype"><a class="el" href="group__axis2__conf__ctx.html#gab2f89df328e63d4f9fa3a4d035d18f0">axis2_conf_ctx_t</a> *&nbsp;</td>
          <td class="paramname"> <em>conf_ctx</em></td><td>&nbsp;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td><td width="100%"></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
Ensures that the named transport's listener is started. Starts a listener if it is not already started. Only one listener would be started for a given transport. <dl compact><dt><b>Parameters:</b></dt><dd>
  <table border="0" cellspacing="2" cellpadding="0">
    <tr><td valign="top"></td><td valign="top"><em>listener_manager</em>&nbsp;</td><td>pointer to listener manager struct </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>env</em>&nbsp;</td><td>pointer to environment struct </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>transport</em>&nbsp;</td><td>name of the transport </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>conf_ctx</em>&nbsp;</td><td>configuration context to pick transport info for the named transport </td></tr>
  </table>
</dl>
<dl class="return" compact><dt><b>Returns:</b></dt><dd>AXIS2_SUCCESS on success, else AXIS2_FAILURE </dd></dl>

</div>
</div><p>
<a class="anchor" name="g6c4f3cd813f06a94d27a9780328ac8bd"></a><!-- doxytag: member="axis2_listener_manager.h::axis2_listener_manager_stop" ref="g6c4f3cd813f06a94d27a9780328ac8bd" args="(axis2_listener_manager_t *listener_manager, const axutil_env_t *env, const AXIS2_TRANSPORT_ENUMS transport)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">AXIS2_EXTERN axis2_status_t axis2_listener_manager_stop           </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="group__axis2__listener__manager.html#g1b9eeb7e6361aff1035273fbaa47cf47">axis2_listener_manager_t</a> *&nbsp;</td>
          <td class="paramname"> <em>listener_manager</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const <a class="el" href="structaxutil__env.html">axutil_env_t</a> *&nbsp;</td>
          <td class="paramname"> <em>env</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const AXIS2_TRANSPORT_ENUMS&nbsp;</td>
          <td class="paramname"> <em>transport</em></td><td>&nbsp;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td><td width="100%"></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
Stops the named listener transport. <dl compact><dt><b>Parameters:</b></dt><dd>
  <table border="0" cellspacing="2" cellpadding="0">
    <tr><td valign="top"></td><td valign="top"><em>listener_manager</em>&nbsp;</td><td>pointer to listener manager struct </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>env</em>&nbsp;</td><td>pointer to environment struct </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>transport</em>&nbsp;</td><td>name of the transport whose listener is to be stopped </td></tr>
  </table>
</dl>
<dl class="return" compact><dt><b>Returns:</b></dt><dd>AXIS2_SUCCESS on success, else AXIS2_FAILURE </dd></dl>

</div>
</div><p>
<hr size="1"><address style="text-align: right;"><small>Generated on Fri Apr 17 11:49:45 2009 for Axis2/C by&nbsp;
<a href="http://www.doxygen.org/index.html">
<img src="doxygen.png" alt="doxygen" align="middle" border="0"></a> 1.5.3 </small></address>
</body>
</html>


<|start_filename|>xdocs/api/html/neethi__engine_8h-source.html<|end_filename|>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html><head><meta http-equiv="Content-Type" content="text/html;charset=UTF-8">
<title>Axis2/C: neethi_engine.h Source File</title>
<link href="doxygen.css" rel="stylesheet" type="text/css">
<link href="tabs.css" rel="stylesheet" type="text/css">
</head><body>
<!-- Generated by Doxygen 1.5.3 -->
<div class="tabs">
  <ul>
    <li><a href="index.html"><span>Main&nbsp;Page</span></a></li>
    <li><a href="modules.html"><span>Modules</span></a></li>
    <li><a href="annotated.html"><span>Classes</span></a></li>
    <li class="current"><a href="files.html"><span>Files</span></a></li>
    <li><a href="dirs.html"><span>Directories</span></a></li>
    <li><a href="pages.html"><span>Related&nbsp;Pages</span></a></li>
    <li><a href="examples.html"><span>Examples</span></a></li>
    <li>
      <form action="search.php" method="get">
        <table cellspacing="0" cellpadding="0" border="0">
          <tr>
            <td><label>&nbsp;<u>S</u>earch&nbsp;for&nbsp;</label></td>
            <td><input type="text" name="query" value="" size="20" accesskey="s"/></td>
          </tr>
        </table>
      </form>
    </li>
  </ul>
</div>
<div class="nav">
<a class="el" href="dir_f60961de8e5edc3b2658ef023e959e45.html">deploy</a>&nbsp;&raquo&nbsp;<a class="el" href="dir_6b4e91e54b7316b376882a6402adbf44.html">include</a>&nbsp;&raquo&nbsp;<a class="el" href="dir_df3a7695d5a9e696f30b948b566829e7.html">axis2-1.6.0</a></div>
<h1>neethi_engine.h</h1><a href="neethi__engine_8h.html">Go to the documentation of this file.</a><div class="fragment"><pre class="fragment"><a name="l00001"></a>00001 
<a name="l00002"></a>00002 <span class="comment">/*</span>
<a name="l00003"></a>00003 <span class="comment"> * Licensed to the Apache Software Foundation (ASF) under one or more</span>
<a name="l00004"></a>00004 <span class="comment"> * contributor license agreements.  See the NOTICE file distributed with</span>
<a name="l00005"></a>00005 <span class="comment"> * this work for additional information regarding copyright ownership.</span>
<a name="l00006"></a>00006 <span class="comment"> * The ASF licenses this file to You under the Apache License, Version 2.0</span>
<a name="l00007"></a>00007 <span class="comment"> * (the "License"); you may not use this file except in compliance with</span>
<a name="l00008"></a>00008 <span class="comment"> * the License.  You may obtain a copy of the License at</span>
<a name="l00009"></a>00009 <span class="comment"> *</span>
<a name="l00010"></a>00010 <span class="comment"> *      http://www.apache.org/licenses/LICENSE-2.0</span>
<a name="l00011"></a>00011 <span class="comment"> *</span>
<a name="l00012"></a>00012 <span class="comment"> * Unless required by applicable law or agreed to in writing, software</span>
<a name="l00013"></a>00013 <span class="comment"> * distributed under the License is distributed on an "AS IS" BASIS,</span>
<a name="l00014"></a>00014 <span class="comment"> * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.</span>
<a name="l00015"></a>00015 <span class="comment"> * See the License for the specific language governing permissions and</span>
<a name="l00016"></a>00016 <span class="comment"> * limitations under the License.</span>
<a name="l00017"></a>00017 <span class="comment"> */</span>
<a name="l00018"></a>00018 
<a name="l00019"></a>00019 <span class="preprocessor">#ifndef NEETHI_ENGINE_H</span>
<a name="l00020"></a>00020 <span class="preprocessor"></span><span class="preprocessor">#define NEETHI_ENGINE_H</span>
<a name="l00021"></a>00021 <span class="preprocessor"></span>
<a name="l00022"></a>00022 <span class="comment">/*neethis_engine.c contains all the useful functions</span>
<a name="l00023"></a>00023 <span class="comment"> * for dealing with a neethi_policy object</span>
<a name="l00024"></a>00024 <span class="comment"> */</span>
<a name="l00025"></a>00025 
<a name="l00026"></a>00026 
<a name="l00027"></a>00027 
<a name="l00033"></a>00033 <span class="preprocessor">#include &lt;<a class="code" href="axis2__defines_8h.html" title="Useful definitions, which may have platform concerns.">axis2_defines.h</a>&gt;</span>
<a name="l00034"></a>00034 <span class="preprocessor">#include &lt;<a class="code" href="axutil__env_8h.html" title="Axis2 environment that acts as a container for error, log and memory allocator routines...">axutil_env.h</a>&gt;</span>
<a name="l00035"></a>00035 <span class="preprocessor">#include &lt;<a class="code" href="neethi__includes_8h.html" title="includes most useful headers for policy">neethi_includes.h</a>&gt;</span>
<a name="l00036"></a>00036 <span class="preprocessor">#include &lt;<a class="code" href="neethi__operator_8h.html">neethi_operator.h</a>&gt;</span>
<a name="l00037"></a>00037 <span class="preprocessor">#include &lt;<a class="code" href="neethi__policy_8h.html">neethi_policy.h</a>&gt;</span>
<a name="l00038"></a>00038 <span class="preprocessor">#include &lt;<a class="code" href="neethi__all_8h.html">neethi_all.h</a>&gt;</span>
<a name="l00039"></a>00039 <span class="preprocessor">#include &lt;<a class="code" href="neethi__exactlyone_8h.html">neethi_exactlyone.h</a>&gt;</span>
<a name="l00040"></a>00040 <span class="preprocessor">#include &lt;<a class="code" href="neethi__reference_8h.html">neethi_reference.h</a>&gt;</span>
<a name="l00041"></a>00041 <span class="preprocessor">#include &lt;<a class="code" href="neethi__registry_8h.html">neethi_registry.h</a>&gt;</span>
<a name="l00042"></a>00042 <span class="preprocessor">#include &lt;<a class="code" href="neethi__assertion_8h.html">neethi_assertion.h</a>&gt;</span>
<a name="l00043"></a>00043 
<a name="l00044"></a>00044 <span class="preprocessor">#ifdef __cplusplus</span>
<a name="l00045"></a>00045 <span class="preprocessor"></span><span class="keyword">extern</span> <span class="stringliteral">"C"</span>
<a name="l00046"></a>00046 {
<a name="l00047"></a>00047 <span class="preprocessor">#endif</span>
<a name="l00048"></a>00048 <span class="preprocessor"></span>
<a name="l00058"></a>00058     AXIS2_EXTERN neethi_policy_t *AXIS2_CALL
<a name="l00059"></a>00059     <a class="code" href="neethi__engine_8h.html#4b9e5806331f8f5c77c5f4c04990d32d">neethi_engine_get_policy</a>(
<a name="l00060"></a>00060         <span class="keyword">const</span> <a class="code" href="structaxutil__env.html" title="Axis2 Environment struct.">axutil_env_t</a> * env,
<a name="l00061"></a>00061         axiom_node_t * node,
<a name="l00062"></a>00062         axiom_element_t * element);
<a name="l00063"></a>00063 
<a name="l00075"></a>00075     <span class="comment">/*This function will return a new neethi_policy struct.</span>
<a name="l00076"></a>00076 <span class="comment">      So it is callers responsibility to free the neethi_policy</span>
<a name="l00077"></a>00077 <span class="comment">      which is passed as an argument. */</span>
<a name="l00078"></a>00078 
<a name="l00079"></a>00079     AXIS2_EXTERN neethi_policy_t *AXIS2_CALL
<a name="l00080"></a>00080     <a class="code" href="neethi__engine_8h.html#5a5d99983dd578517d0c735c8c678a0a">neethi_engine_get_normalize</a>(
<a name="l00081"></a>00081         <span class="keyword">const</span> <a class="code" href="structaxutil__env.html" title="Axis2 Environment struct.">axutil_env_t</a> * env,
<a name="l00082"></a>00082         axis2_bool_t deep,
<a name="l00083"></a>00083         neethi_policy_t * neethi_policy);
<a name="l00084"></a>00084 
<a name="l00098"></a>00098     <span class="comment">/*This function will return a new neethi_policy struct.</span>
<a name="l00099"></a>00099 <span class="comment">      So it is callers responsibility to free the neethi_policy</span>
<a name="l00100"></a>00100 <span class="comment">      which is passed as an argument. */</span>
<a name="l00101"></a>00101 
<a name="l00102"></a>00102 
<a name="l00103"></a>00103     AXIS2_EXTERN neethi_policy_t *AXIS2_CALL
<a name="l00104"></a>00104     <a class="code" href="neethi__engine_8h.html#25af73071e5b0d2659b69c29f956d0be">neethi_engine_normalize</a>(
<a name="l00105"></a>00105         <span class="keyword">const</span> <a class="code" href="structaxutil__env.html" title="Axis2 Environment struct.">axutil_env_t</a> * env,
<a name="l00106"></a>00106         neethi_policy_t * neethi_policy,
<a name="l00107"></a>00107         neethi_registry_t * registry,
<a name="l00108"></a>00108         axis2_bool_t deep);
<a name="l00109"></a>00109 
<a name="l00110"></a>00110     <span class="comment">/*Givnen to normalized policy objects this function will</span>
<a name="l00111"></a>00111 <span class="comment">      retun the merged policy object.</span>
<a name="l00112"></a>00112 <span class="comment">    * @param env pointer to environment struct</span>
<a name="l00113"></a>00113 <span class="comment">    * @param neethi_policy1 pointer neethi_policy_t struct as an</span>
<a name="l00114"></a>00114 <span class="comment">    * input for merge.</span>
<a name="l00115"></a>00115 <span class="comment">    * @param neethi_policy2 pointer neethi_policy_t struct as an</span>
<a name="l00116"></a>00116 <span class="comment">    * input for merge.</span>
<a name="l00117"></a>00117 <span class="comment">    * @return pointer to a merged policy of both inputs.*/</span>
<a name="l00118"></a>00118 
<a name="l00119"></a>00119     <span class="comment">/*The input for this function should be two normalized policies</span>
<a name="l00120"></a>00120 <span class="comment">      otherwise the output may be wrong.*/</span>
<a name="l00121"></a>00121 
<a name="l00122"></a>00122     AXIS2_EXTERN neethi_policy_t *AXIS2_CALL
<a name="l00123"></a>00123     neethi_engine_merge(
<a name="l00124"></a>00124         <span class="keyword">const</span> <a class="code" href="structaxutil__env.html" title="Axis2 Environment struct.">axutil_env_t</a> * env,
<a name="l00125"></a>00125         neethi_policy_t * neethi_policy1,
<a name="l00126"></a>00126         neethi_policy_t * neethi_policy2);
<a name="l00127"></a>00127 
<a name="l00128"></a>00128     <span class="comment">/*Given a policy object this function will give the </span>
<a name="l00129"></a>00129 <span class="comment">     * corresponding axiom model for that policy object.</span>
<a name="l00130"></a>00130 <span class="comment">     * @param policy pointer to the neethi_policy_t struct.</span>
<a name="l00131"></a>00131 <span class="comment">     * @param env pointer to environment struct</span>
<a name="l00132"></a>00132 <span class="comment">     */</span>
<a name="l00133"></a>00133 
<a name="l00134"></a>00134     AXIS2_EXTERN axiom_node_t *AXIS2_CALL
<a name="l00135"></a>00135     neethi_engine_serialize(
<a name="l00136"></a>00136         neethi_policy_t * policy,
<a name="l00137"></a>00137         <span class="keyword">const</span> <a class="code" href="structaxutil__env.html" title="Axis2 Environment struct.">axutil_env_t</a> * env);
<a name="l00138"></a>00138 
<a name="l00140"></a>00140 <span class="preprocessor">#ifdef __cplusplus</span>
<a name="l00141"></a>00141 <span class="preprocessor"></span>}
<a name="l00142"></a>00142 <span class="preprocessor">#endif</span>
<a name="l00143"></a>00143 <span class="preprocessor"></span>
<a name="l00144"></a>00144 <span class="preprocessor">#endif                          </span><span class="comment">/* NEETHI_ENGINE_H */</span>
</pre></div><hr size="1"><address style="text-align: right;"><small>Generated on Fri Apr 17 11:49:43 2009 for Axis2/C by&nbsp;
<a href="http://www.doxygen.org/index.html">
<img src="doxygen.png" alt="doxygen" align="middle" border="0"></a> 1.5.3 </small></address>
</body>
</html>


<|start_filename|>xdocs/api/html/axis2__description_8h-source.html<|end_filename|>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html><head><meta http-equiv="Content-Type" content="text/html;charset=UTF-8">
<title>Axis2/C: axis2_description.h Source File</title>
<link href="doxygen.css" rel="stylesheet" type="text/css">
<link href="tabs.css" rel="stylesheet" type="text/css">
</head><body>
<!-- Generated by Doxygen 1.5.3 -->
<div class="tabs">
  <ul>
    <li><a href="index.html"><span>Main&nbsp;Page</span></a></li>
    <li><a href="modules.html"><span>Modules</span></a></li>
    <li><a href="annotated.html"><span>Classes</span></a></li>
    <li class="current"><a href="files.html"><span>Files</span></a></li>
    <li><a href="dirs.html"><span>Directories</span></a></li>
    <li><a href="pages.html"><span>Related&nbsp;Pages</span></a></li>
    <li><a href="examples.html"><span>Examples</span></a></li>
    <li>
      <form action="search.php" method="get">
        <table cellspacing="0" cellpadding="0" border="0">
          <tr>
            <td><label>&nbsp;<u>S</u>earch&nbsp;for&nbsp;</label></td>
            <td><input type="text" name="query" value="" size="20" accesskey="s"/></td>
          </tr>
        </table>
      </form>
    </li>
  </ul>
</div>
<div class="nav">
<a class="el" href="dir_f60961de8e5edc3b2658ef023e959e45.html">deploy</a>&nbsp;&raquo&nbsp;<a class="el" href="dir_6b4e91e54b7316b376882a6402adbf44.html">include</a>&nbsp;&raquo&nbsp;<a class="el" href="dir_df3a7695d5a9e696f30b948b566829e7.html">axis2-1.6.0</a></div>
<h1>axis2_description.h</h1><a href="axis2__description_8h.html">Go to the documentation of this file.</a><div class="fragment"><pre class="fragment"><a name="l00001"></a>00001 
<a name="l00002"></a>00002 <span class="comment">/*</span>
<a name="l00003"></a>00003 <span class="comment">* Licensed to the Apache Software Foundation (ASF) under one or more</span>
<a name="l00004"></a>00004 <span class="comment">* contributor license agreements.  See the NOTICE file distributed with</span>
<a name="l00005"></a>00005 <span class="comment">* this work for additional information regarding copyright ownership.</span>
<a name="l00006"></a>00006 <span class="comment">* The ASF licenses this file to You under the Apache License, Version 2.0</span>
<a name="l00007"></a>00007 <span class="comment">* (the "License"); you may not use this file except in compliance with</span>
<a name="l00008"></a>00008 <span class="comment">* the License.  You may obtain a copy of the License at</span>
<a name="l00009"></a>00009 <span class="comment">*</span>
<a name="l00010"></a>00010 <span class="comment">*      http://www.apache.org/licenses/LICENSE-2.0</span>
<a name="l00011"></a>00011 <span class="comment">*</span>
<a name="l00012"></a>00012 <span class="comment">* Unless required by applicable law or agreed to in writing, software</span>
<a name="l00013"></a>00013 <span class="comment">* distributed under the License is distributed on an "AS IS" BASIS,</span>
<a name="l00014"></a>00014 <span class="comment">* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.</span>
<a name="l00015"></a>00015 <span class="comment">* See the License for the specific language governing permissions and</span>
<a name="l00016"></a>00016 <span class="comment">* limitations under the License.</span>
<a name="l00017"></a>00017 <span class="comment">*/</span>
<a name="l00018"></a>00018 
<a name="l00019"></a>00019 <span class="preprocessor">#ifndef AXIS2_DESCRIPTION_H</span>
<a name="l00020"></a>00020 <span class="preprocessor"></span><span class="preprocessor">#define AXIS2_DESCRIPTION_H</span>
<a name="l00021"></a>00021 <span class="preprocessor"></span>
<a name="l00022"></a>00022 <span class="preprocessor">#include &lt;axis2_const.h&gt;</span>
<a name="l00023"></a>00023 <span class="preprocessor">#include &lt;axutil_error.h&gt;</span>
<a name="l00024"></a>00024 <span class="preprocessor">#include &lt;<a class="code" href="axis2__defines_8h.html" title="Useful definitions, which may have platform concerns.">axis2_defines.h</a>&gt;</span>
<a name="l00025"></a>00025 <span class="preprocessor">#include &lt;<a class="code" href="axutil__env_8h.html" title="Axis2 environment that acts as a container for error, log and memory allocator routines...">axutil_env.h</a>&gt;</span>
<a name="l00026"></a>00026 <span class="preprocessor">#include &lt;<a class="code" href="axutil__allocator_8h.html" title="Axis2 memory allocator interface.">axutil_allocator.h</a>&gt;</span>
<a name="l00027"></a>00027 <span class="preprocessor">#include &lt;axutil_string.h&gt;</span>
<a name="l00028"></a>00028 <span class="preprocessor">#include &lt;<a class="code" href="axutil__hash_8h.html" title="Axis2 Hash Tables.">axutil_hash.h</a>&gt;</span>
<a name="l00029"></a>00029 
<a name="l00030"></a>00030 <span class="preprocessor">#ifdef __cplusplus</span>
<a name="l00031"></a>00031 <span class="preprocessor"></span><span class="keyword">extern</span> <span class="stringliteral">"C"</span>
<a name="l00032"></a>00032 {
<a name="l00033"></a>00033 <span class="preprocessor">#endif</span>
<a name="l00034"></a>00034 <span class="preprocessor"></span>
<a name="l00053"></a>00053     <span class="comment">/*********************************** Constansts *******************************/</span>
<a name="l00054"></a>00054 
<a name="l00058"></a><a class="code" href="group__axis2__desc__constants.html#gadedea70ac9dab41e3006111329f0274">00058</a> <span class="preprocessor">#define AXIS2_EXECUTION_CHAIN_KEY  "EXECUTION_CHAIN_KEY"</span>
<a name="l00059"></a>00059 <span class="preprocessor"></span>
<a name="l00063"></a><a class="code" href="group__axis2__desc__constants.html#ga994ccbb1a096606c1d53d3102dacb54">00063</a> <span class="preprocessor">#define AXIS2_EXECUTION_OUT_CHAIN_KEY "EXECUTION_OUT_CHAIN_KEY"</span>
<a name="l00064"></a>00064 <span class="preprocessor"></span>
<a name="l00068"></a><a class="code" href="group__axis2__desc__constants.html#g2df623b0c60be4c12c415251ba683eb9">00068</a> <span class="preprocessor">#define AXIS2_EXECUTION_FAULT_CHAIN_KEY "EXECUTION_FAULT_CHAIN_KEY"</span>
<a name="l00069"></a>00069 <span class="preprocessor"></span>
<a name="l00073"></a><a class="code" href="group__axis2__desc__constants.html#g1bfa79983f0142c83266a4fc9f710cd4">00073</a> <span class="preprocessor">#define AXIS2_MODULEREF_KEY  "MODULEREF_KEY"</span>
<a name="l00074"></a>00074 <span class="preprocessor"></span>
<a name="l00078"></a><a class="code" href="group__axis2__desc__constants.html#g356b2b75d01d009037f0cb504118eb8d">00078</a> <span class="preprocessor">#define AXIS2_OP_KEY  "OP_KEY"</span>
<a name="l00079"></a>00079 <span class="preprocessor"></span>
<a name="l00083"></a><a class="code" href="group__axis2__desc__constants.html#g60fdf1e9762c3a7806e25188fe2e1434">00083</a> <span class="preprocessor">#define AXIS2_CLASSLOADER_KEY  "CLASSLOADER_KEY"</span>
<a name="l00084"></a>00084 <span class="preprocessor"></span>
<a name="l00088"></a><a class="code" href="group__axis2__desc__constants.html#gdafd2bf300a94a15b2e9e896d5ad081a">00088</a> <span class="preprocessor">#define AXIS2_CONTEXTPATH_KEY  "CONTEXTPATH_KEY"</span>
<a name="l00089"></a>00089 <span class="preprocessor"></span>
<a name="l00093"></a><a class="code" href="group__axis2__desc__constants.html#g76dbd7e6c256011caeed55fb259b4123">00093</a> <span class="preprocessor">#define AXIS2_MESSAGE_RECEIVER_KEY  "PROVIDER_KEY"</span>
<a name="l00094"></a>00094 <span class="preprocessor"></span>
<a name="l00098"></a><a class="code" href="group__axis2__desc__constants.html#gefc06b1782ab35854a0b8f2ce51044db">00098</a> <span class="preprocessor">#define AXIS2_STYLE_KEY  "STYLE_KEY"</span>
<a name="l00099"></a>00099 <span class="preprocessor"></span>
<a name="l00103"></a><a class="code" href="group__axis2__desc__constants.html#g42f0a3efb9d5e1aecd03f410ee08c1a6">00103</a> <span class="preprocessor">#define AXIS2_PARAMETER_KEY  "PARAMETER_KEY"</span>
<a name="l00104"></a>00104 <span class="preprocessor"></span>
<a name="l00108"></a><a class="code" href="group__axis2__desc__constants.html#ga41f19199cb6d14fe08b749ce252581a">00108</a> <span class="preprocessor">#define AXIS2_IN_FLOW_KEY  "IN_FLOW_KEY"</span>
<a name="l00109"></a>00109 <span class="preprocessor"></span>
<a name="l00113"></a><a class="code" href="group__axis2__desc__constants.html#ge57a6cd0804eca94aa386d8859dfb184">00113</a> <span class="preprocessor">#define AXIS2_OUT_FLOW_KEY  "OUT_FLOW_KEY"</span>
<a name="l00114"></a>00114 <span class="preprocessor"></span>
<a name="l00118"></a><a class="code" href="group__axis2__desc__constants.html#g77261af724a23bba3aef5a6ead323803">00118</a> <span class="preprocessor">#define AXIS2_IN_FAULTFLOW_KEY  "IN_FAULTFLOW_KEY"</span>
<a name="l00119"></a>00119 <span class="preprocessor"></span>
<a name="l00123"></a><a class="code" href="group__axis2__desc__constants.html#g08546fcedc786f6313440206bbb13090">00123</a> <span class="preprocessor">#define AXIS2_OUT_FAULTFLOW_KEY  "OUT_FAULTFLOW_KEY"</span>
<a name="l00124"></a>00124 <span class="preprocessor"></span>
<a name="l00128"></a><a class="code" href="group__axis2__desc__constants.html#g8e2aaf910542b2301b9b76fec0f892b5">00128</a> <span class="preprocessor">#define AXIS2_PHASES_KEY  "PHASES_KEY"</span>
<a name="l00129"></a>00129 <span class="preprocessor"></span>
<a name="l00133"></a><a class="code" href="group__axis2__desc__constants.html#g51520c8629c59965bb63041e7852d2b7">00133</a> <span class="preprocessor">#define AXIS2_SERVICE_CLASS  "ServiceClass"</span>
<a name="l00134"></a>00134 <span class="preprocessor"></span>
<a name="l00138"></a><a class="code" href="group__axis2__desc__constants.html#gdf28480aee109151d20c606df2da34ba">00138</a> <span class="preprocessor">#define AXIS2_SERVICE_CLASS_NAME "SERVICE_CLASS_NAME"</span>
<a name="l00139"></a>00139 <span class="preprocessor"></span>
<a name="l00140"></a>00140     <span class="comment">/******************************************************************************/</span>
<a name="l00141"></a>00141 
<a name="l00144"></a>00144 <span class="preprocessor">#ifdef __cplusplus</span>
<a name="l00145"></a>00145 <span class="preprocessor"></span>}
<a name="l00146"></a>00146 <span class="preprocessor">#endif</span>
<a name="l00147"></a>00147 <span class="preprocessor"></span>
<a name="l00148"></a>00148 <span class="preprocessor">#endif                          </span><span class="comment">/* AXIS2_DESCRIPTION_H */</span>
</pre></div><hr size="1"><address style="text-align: right;"><small>Generated on Fri Apr 17 11:49:42 2009 for Axis2/C by&nbsp;
<a href="http://www.doxygen.org/index.html">
<img src="doxygen.png" alt="doxygen" align="middle" border="0"></a> 1.5.3 </small></address>
</body>
</html>


<|start_filename|>xdocs/api/html/group__axis2__transport__receiver.html<|end_filename|>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html><head><meta http-equiv="Content-Type" content="text/html;charset=UTF-8">
<title>Axis2/C: transport receiver</title>
<link href="doxygen.css" rel="stylesheet" type="text/css">
<link href="tabs.css" rel="stylesheet" type="text/css">
</head><body>
<!-- Generated by Doxygen 1.5.3 -->
<div class="tabs">
  <ul>
    <li><a href="index.html"><span>Main&nbsp;Page</span></a></li>
    <li><a href="modules.html"><span>Modules</span></a></li>
    <li><a href="annotated.html"><span>Classes</span></a></li>
    <li><a href="files.html"><span>Files</span></a></li>
    <li><a href="dirs.html"><span>Directories</span></a></li>
    <li><a href="pages.html"><span>Related&nbsp;Pages</span></a></li>
    <li><a href="examples.html"><span>Examples</span></a></li>
    <li>
      <form action="search.php" method="get">
        <table cellspacing="0" cellpadding="0" border="0">
          <tr>
            <td><label>&nbsp;<u>S</u>earch&nbsp;for&nbsp;</label></td>
            <td><input type="text" name="query" value="" size="20" accesskey="s"/></td>
          </tr>
        </table>
      </form>
    </li>
  </ul>
</div>
<h1>transport receiver<br>
<small>
[<a class="el" href="group__axis2__transport.html">transport</a>]</small>
</h1><table border="0" cellpadding="0" cellspacing="0">
<tr><td></td></tr>
<tr><td colspan="2"><br><h2>Files</h2></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top">file &nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="axis2__transport__receiver_8h.html">axis2_transport_receiver.h</a></td></tr>

<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Axis2 description transport receiver interface. <br></td></tr>

<p>
<tr><td colspan="2"><br><h2>Classes</h2></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top">struct &nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="structaxis2__transport__receiver__ops.html">axis2_transport_receiver_ops</a></td></tr>

<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Description Transport Receiver ops struct Encapsulator struct for ops of <a class="el" href="structaxis2__transport__receiver.html" title="Transport Reciever struct.">axis2_transport_receiver</a>.  <a href="structaxis2__transport__receiver__ops.html#_details">More...</a><br></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top">struct &nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="structaxis2__transport__receiver.html">axis2_transport_receiver</a></td></tr>

<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Transport Reciever struct.  <a href="structaxis2__transport__receiver.html#_details">More...</a><br></td></tr>
<tr><td colspan="2"><br><h2>Typedefs</h2></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top">typedef struct <br>
<a class="el" href="structaxis2__transport__receiver.html">axis2_transport_receiver</a>&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__axis2__transport__receiver.html#gc3080d6ec44ab99a8d64ba4b5196daeb">axis2_transport_receiver_t</a></td></tr>

<tr><td class="memItemLeft" nowrap align="right" valign="top">typedef struct <br>
<a class="el" href="structaxis2__transport__receiver__ops.html">axis2_transport_receiver_ops</a>&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__axis2__transport__receiver.html#gf65f9d0fa8f0c218a317c0c53c692a2b">axis2_transport_receiver_ops_t</a></td></tr>

<tr><td colspan="2"><br><h2>Functions</h2></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top">AXIS2_EXTERN void&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__axis2__transport__receiver.html#g18cd0a700f4e7cb37e1c409a3ecfac11">axis2_transport_receiver_free</a> (<a class="el" href="structaxis2__transport__receiver.html">axis2_transport_receiver_t</a> *transport_receiver, const <a class="el" href="structaxutil__env.html">axutil_env_t</a> *env)</td></tr>

<tr><td class="memItemLeft" nowrap align="right" valign="top">AXIS2_EXTERN <br>
axis2_status_t&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__axis2__transport__receiver.html#g3d4ef4feffc51de764f709a33946b159">axis2_transport_receiver_init</a> (<a class="el" href="structaxis2__transport__receiver.html">axis2_transport_receiver_t</a> *transport_receiver, const <a class="el" href="structaxutil__env.html">axutil_env_t</a> *env, struct axis2_conf_ctx *conf_ctx, struct axis2_transport_in_desc *transport_in)</td></tr>

<tr><td class="memItemLeft" nowrap align="right" valign="top">AXIS2_EXTERN <br>
axis2_status_t&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__axis2__transport__receiver.html#g1d554a5c0ed340fba59530e01d078325">axis2_transport_receiver_start</a> (<a class="el" href="structaxis2__transport__receiver.html">axis2_transport_receiver_t</a> *transport_receiver, const <a class="el" href="structaxutil__env.html">axutil_env_t</a> *env)</td></tr>

<tr><td class="memItemLeft" nowrap align="right" valign="top">AXIS2_EXTERN <br>
axis2_status_t&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__axis2__transport__receiver.html#g473f9011903bfe42bacb4800979f47a9">axis2_transport_receiver_stop</a> (<a class="el" href="structaxis2__transport__receiver.html">axis2_transport_receiver_t</a> *transport_receiver, const <a class="el" href="structaxutil__env.html">axutil_env_t</a> *env)</td></tr>

<tr><td class="memItemLeft" nowrap align="right" valign="top">AXIS2_EXTERN <br>
<a class="el" href="group__axis2__endpoint__ref.html#gf6e89c83a6b553e7e3f11e787b3fecd4">axis2_endpoint_ref_t</a> *&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__axis2__transport__receiver.html#g716be8f00a030e32139abdde3c2ca56c">axis2_transport_receiver_get_reply_to_epr</a> (<a class="el" href="structaxis2__transport__receiver.html">axis2_transport_receiver_t</a> *transport_receiver, const <a class="el" href="structaxutil__env.html">axutil_env_t</a> *env, const axis2_char_t *svc_name)</td></tr>

<tr><td class="memItemLeft" nowrap align="right" valign="top">AXIS2_EXTERN struct <br>
axis2_conf_ctx *&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__axis2__transport__receiver.html#gf81f5bfd42d9cc2367268cf0ab197e6c">axis2_transport_receiver_get_conf_ctx</a> (<a class="el" href="structaxis2__transport__receiver.html">axis2_transport_receiver_t</a> *transport_receiver, const <a class="el" href="structaxutil__env.html">axutil_env_t</a> *env)</td></tr>

<tr><td class="memItemLeft" nowrap align="right" valign="top">AXIS2_EXTERN axis2_bool_t&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__axis2__transport__receiver.html#g22a8d2cdd593d7966ec853042b6542be">axis2_transport_receiver_is_running</a> (<a class="el" href="structaxis2__transport__receiver.html">axis2_transport_receiver_t</a> *transport_receiver, const <a class="el" href="structaxutil__env.html">axutil_env_t</a> *env)</td></tr>

</table>
<hr><a name="_details"></a><h2>Detailed Description</h2>
Description. <hr><h2>Typedef Documentation</h2>
<a class="anchor" name="gf65f9d0fa8f0c218a317c0c53c692a2b"></a><!-- doxytag: member="axis2_transport_receiver.h::axis2_transport_receiver_ops_t" ref="gf65f9d0fa8f0c218a317c0c53c692a2b" args="" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">typedef struct <a class="el" href="structaxis2__transport__receiver__ops.html">axis2_transport_receiver_ops</a> <a class="el" href="structaxis2__transport__receiver__ops.html">axis2_transport_receiver_ops_t</a>          </td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
Type name for <a class="el" href="structaxis2__transport__receiver__ops.html" title="Description Transport Receiver ops struct Encapsulator struct for ops of axis2_transport_receiver...">axis2_transport_receiver_ops</a> 
</div>
</div><p>
<a class="anchor" name="gc3080d6ec44ab99a8d64ba4b5196daeb"></a><!-- doxytag: member="axis2_transport_receiver.h::axis2_transport_receiver_t" ref="gc3080d6ec44ab99a8d64ba4b5196daeb" args="" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">typedef struct <a class="el" href="structaxis2__transport__receiver.html">axis2_transport_receiver</a> <a class="el" href="structaxis2__transport__receiver.html">axis2_transport_receiver_t</a>          </td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
Type name for <a class="el" href="structaxis2__transport__receiver.html" title="Transport Reciever struct.">axis2_transport_receiver</a> 
</div>
</div><p>
<hr><h2>Function Documentation</h2>
<a class="anchor" name="g18cd0a700f4e7cb37e1c409a3ecfac11"></a><!-- doxytag: member="axis2_transport_receiver.h::axis2_transport_receiver_free" ref="g18cd0a700f4e7cb37e1c409a3ecfac11" args="(axis2_transport_receiver_t *transport_receiver, const axutil_env_t *env)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">AXIS2_EXTERN void axis2_transport_receiver_free           </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="structaxis2__transport__receiver.html">axis2_transport_receiver_t</a> *&nbsp;</td>
          <td class="paramname"> <em>transport_receiver</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const <a class="el" href="structaxutil__env.html">axutil_env_t</a> *&nbsp;</td>
          <td class="paramname"> <em>env</em></td><td>&nbsp;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td><td width="100%"></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
Frees the transport receiver. <dl class="see" compact><dt><b>See also:</b></dt><dd>axis2_transport_receiver::free </dd></dl>

</div>
</div><p>
<a class="anchor" name="gf81f5bfd42d9cc2367268cf0ab197e6c"></a><!-- doxytag: member="axis2_transport_receiver.h::axis2_transport_receiver_get_conf_ctx" ref="gf81f5bfd42d9cc2367268cf0ab197e6c" args="(axis2_transport_receiver_t *transport_receiver, const axutil_env_t *env)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">AXIS2_EXTERN struct axis2_conf_ctx* axis2_transport_receiver_get_conf_ctx           </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="structaxis2__transport__receiver.html">axis2_transport_receiver_t</a> *&nbsp;</td>
          <td class="paramname"> <em>transport_receiver</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const <a class="el" href="structaxutil__env.html">axutil_env_t</a> *&nbsp;</td>
          <td class="paramname"> <em>env</em></td><td>&nbsp;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td><td width="100%"><code> [read]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
Get conf ctx. <dl class="see" compact><dt><b>See also:</b></dt><dd>axis2_transport_receiver::get_conf_ctx </dd></dl>

</div>
</div><p>
<a class="anchor" name="g716be8f00a030e32139abdde3c2ca56c"></a><!-- doxytag: member="axis2_transport_receiver.h::axis2_transport_receiver_get_reply_to_epr" ref="g716be8f00a030e32139abdde3c2ca56c" args="(axis2_transport_receiver_t *transport_receiver, const axutil_env_t *env, const axis2_char_t *svc_name)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">AXIS2_EXTERN <a class="el" href="group__axis2__endpoint__ref.html#gf6e89c83a6b553e7e3f11e787b3fecd4">axis2_endpoint_ref_t</a>* axis2_transport_receiver_get_reply_to_epr           </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="structaxis2__transport__receiver.html">axis2_transport_receiver_t</a> *&nbsp;</td>
          <td class="paramname"> <em>transport_receiver</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const <a class="el" href="structaxutil__env.html">axutil_env_t</a> *&nbsp;</td>
          <td class="paramname"> <em>env</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const axis2_char_t *&nbsp;</td>
          <td class="paramname"> <em>svc_name</em></td><td>&nbsp;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td><td width="100%"></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
Get reply to epr. <dl class="see" compact><dt><b>See also:</b></dt><dd>axis2_transport_receiver::get_reply_to_epr </dd></dl>

</div>
</div><p>
<a class="anchor" name="g3d4ef4feffc51de764f709a33946b159"></a><!-- doxytag: member="axis2_transport_receiver.h::axis2_transport_receiver_init" ref="g3d4ef4feffc51de764f709a33946b159" args="(axis2_transport_receiver_t *transport_receiver, const axutil_env_t *env, struct axis2_conf_ctx *conf_ctx, struct axis2_transport_in_desc *transport_in)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">AXIS2_EXTERN axis2_status_t axis2_transport_receiver_init           </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="structaxis2__transport__receiver.html">axis2_transport_receiver_t</a> *&nbsp;</td>
          <td class="paramname"> <em>transport_receiver</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const <a class="el" href="structaxutil__env.html">axutil_env_t</a> *&nbsp;</td>
          <td class="paramname"> <em>env</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">struct axis2_conf_ctx *&nbsp;</td>
          <td class="paramname"> <em>conf_ctx</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">struct axis2_transport_in_desc *&nbsp;</td>
          <td class="paramname"> <em>transport_in</em></td><td>&nbsp;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td><td width="100%"></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
Initialize the transport receiver. <dl class="see" compact><dt><b>See also:</b></dt><dd>axis2_transport_receiver::init </dd></dl>

</div>
</div><p>
<a class="anchor" name="g22a8d2cdd593d7966ec853042b6542be"></a><!-- doxytag: member="axis2_transport_receiver.h::axis2_transport_receiver_is_running" ref="g22a8d2cdd593d7966ec853042b6542be" args="(axis2_transport_receiver_t *transport_receiver, const axutil_env_t *env)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">AXIS2_EXTERN axis2_bool_t axis2_transport_receiver_is_running           </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="structaxis2__transport__receiver.html">axis2_transport_receiver_t</a> *&nbsp;</td>
          <td class="paramname"> <em>transport_receiver</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const <a class="el" href="structaxutil__env.html">axutil_env_t</a> *&nbsp;</td>
          <td class="paramname"> <em>env</em></td><td>&nbsp;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td><td width="100%"></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
Is running. <dl class="see" compact><dt><b>See also:</b></dt><dd>axis2_transport_receiver::is_running </dd></dl>

</div>
</div><p>
<a class="anchor" name="g1d554a5c0ed340fba59530e01d078325"></a><!-- doxytag: member="axis2_transport_receiver.h::axis2_transport_receiver_start" ref="g1d554a5c0ed340fba59530e01d078325" args="(axis2_transport_receiver_t *transport_receiver, const axutil_env_t *env)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">AXIS2_EXTERN axis2_status_t axis2_transport_receiver_start           </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="structaxis2__transport__receiver.html">axis2_transport_receiver_t</a> *&nbsp;</td>
          <td class="paramname"> <em>transport_receiver</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const <a class="el" href="structaxutil__env.html">axutil_env_t</a> *&nbsp;</td>
          <td class="paramname"> <em>env</em></td><td>&nbsp;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td><td width="100%"></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
Start <dl class="see" compact><dt><b>See also:</b></dt><dd>axis2_transport_receiver::start </dd></dl>

</div>
</div><p>
<a class="anchor" name="g473f9011903bfe42bacb4800979f47a9"></a><!-- doxytag: member="axis2_transport_receiver.h::axis2_transport_receiver_stop" ref="g473f9011903bfe42bacb4800979f47a9" args="(axis2_transport_receiver_t *transport_receiver, const axutil_env_t *env)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">AXIS2_EXTERN axis2_status_t axis2_transport_receiver_stop           </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="structaxis2__transport__receiver.html">axis2_transport_receiver_t</a> *&nbsp;</td>
          <td class="paramname"> <em>transport_receiver</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const <a class="el" href="structaxutil__env.html">axutil_env_t</a> *&nbsp;</td>
          <td class="paramname"> <em>env</em></td><td>&nbsp;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td><td width="100%"></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
Stop. <dl class="see" compact><dt><b>See also:</b></dt><dd>axis2_transport_receiver::stop </dd></dl>

</div>
</div><p>
<hr size="1"><address style="text-align: right;"><small>Generated on Fri Apr 17 11:49:45 2009 for Axis2/C by&nbsp;
<a href="http://www.doxygen.org/index.html">
<img src="doxygen.png" alt="doxygen" align="middle" border="0"></a> 1.5.3 </small></address>
</body>
</html>


<|start_filename|>include/axis2_callback.h<|end_filename|>

/*
* 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 AXIS2_CALLBACK_H
#define AXIS2_CALLBACK_H

/**
 * @defgroup axis2_callback callback
 * @ingroup axis2_client_api
 * callback represents the callback mechanisms to be used in case of asynchronous
 * invocations. It holds the complete status of the invocation, the resulting
 * SOAP envelope and also callback specific data. One can define a function
 * to be called on complete of the callback as well as a function to be called
 * on error.
 * @{
 */

/**
 * @file axis2_callback.h
 */

#include <axis2_defines.h>
#include <axutil_env.h>
#include <axis2_async_result.h>
#include <axiom_soap_envelope.h>

#ifdef __cplusplus
extern "C"
{
#endif

    /** Type name for axis2_callback */
    typedef struct axis2_callback axis2_callback_t;

    /** Type name for function pointer to be called on complete of callback  */
    typedef axis2_status_t AXIS2_CALL
    axis2_on_complete_func_ptr(
        axis2_callback_t *,
        const axutil_env_t *);

    /** Type name for function pointer to be called on error of callback  */
    typedef axis2_status_t AXIS2_CALL
    axis2_on_error_func_ptr(
        axis2_callback_t *,
        const axutil_env_t *,
        int);

    /**
     * This function is called once the asynchronous operation is successfully 
     * completed and the result is available.
     * @param callback pointer to callback struct
     * @param env pointer to environment struct
     * @param result pointer to async result
     * @return AXIS2_SUCCESS on success, else AXIS2_FAILURE 
     */
    AXIS2_EXTERN axis2_status_t AXIS2_CALL
    axis2_callback_invoke_on_complete(
        axis2_callback_t * callback,
        const axutil_env_t * env,
        axis2_async_result_t * result);

    /**
     * This function is called once the asynchronous operation fails and 
     * the failure code returns. 
     * @param callback pointer to callback struct
     * @param env pointer to environment struct
     * @param exception error code representing the error
     * @return AXIS2_SUCCESS on success, else AXIS2_FAILURE
     */
    AXIS2_EXTERN axis2_status_t AXIS2_CALL
    axis2_callback_report_error(
        axis2_callback_t * callback,
        const axutil_env_t * env,
        const int exception);

    /**
     * Gets the complete status for the callback. This method is useful 
     * for polling (busy waiting).
     * e.g.
     * <code>
     *      <pre>
     *          while(!AXIS2_CALL
     * BACK_GET_COMPLETE(callback, env)
     *          {
     *             sleep(10);
     *          }
     * do whatever you need here 
     *      </pre>
     * </code>
     * @param callback pointer to callback struct
     * @param env pointer to environment struct
     * @return AXIS2_TRUE if callback is complete, else AXIS2_FALSE
     */
    AXIS2_EXTERN axis2_bool_t AXIS2_CALL
    axis2_callback_get_complete(
        const axis2_callback_t * callback,
        const axutil_env_t * env);

    /**
     * Sets the complete status.
     * @param callback pointer to callback struct
     * @param env pointer to environment struct
     * @param complete bool value representing the status
     * @return AXIS2_SUCCESS on success, else AXIS2_FAILURE
     */
    AXIS2_EXTERN axis2_status_t AXIS2_CALL
    axis2_callback_set_complete(
        axis2_callback_t * callback,
        const axutil_env_t * env,
        const axis2_bool_t complete);

    /**
     * Gets the resulting SOAP envelope.
     * @param callback pointer to callback struct
     * @param env pointer to environment struct
     * @return result SOAP envelope if present, else NULL
     */
    AXIS2_EXTERN axiom_soap_envelope_t *AXIS2_CALL
    axis2_callback_get_envelope(
        const axis2_callback_t * callback,
        const axutil_env_t * env);

    /**
     * Sets the SOAP envelope.
     * @param callback pointer to callback struct
     * @param env pointer to environment struct
     * @param envelope pointer to SOAP envelope
     * @return AXIS2_SUCCESS on success, else AXIS2_FAILURE
     */
    AXIS2_EXTERN axis2_status_t AXIS2_CALL
    axis2_callback_set_envelope(
        axis2_callback_t * callback,
        const axutil_env_t * env,
        axiom_soap_envelope_t * envelope);

    /**
     * Gets error code representing the error.
     * @param callback pointer to callback struct
     * @param env pointer to environment struct
     * @return error code representing the error
     */
    AXIS2_EXTERN int AXIS2_CALL
    axis2_callback_get_error(
        const axis2_callback_t * callback,
        const axutil_env_t * env);

    /**
     * Sets the error code.
     * @param callback pointer to callback struct
     * @param env pointer to environment struct
     * @param error error code representing the error
     * @return AXIS2_SUCCESS on success, else AXIS2_FAILURE
     */
    AXIS2_EXTERN axis2_status_t AXIS2_CALL
    axis2_callback_set_error(
        axis2_callback_t * callback,
        const axutil_env_t * env,
        const int error);

    /**
     * Sets the callback data.
     * @param callback pointer to callback struct
     * @param data pointer to data
     * @return AXIS2_SUCCESS on success, else AXIS2_FAILURE
     */
    AXIS2_EXTERN axis2_status_t AXIS2_CALL
    axis2_callback_set_data(
        axis2_callback_t * callback,
        void *data);

    /**
     * Gets the callback data.
     * @param callback pointer to callback struct
     * @return pointer to callback data
     */
    AXIS2_EXTERN void *AXIS2_CALL
    axis2_callback_get_data(
        const axis2_callback_t * callback);

    /**
     * Sets the on complete callback function.
     * @param callback pointer to callback struct
     * @param f on complete callback function pointer
     */
    AXIS2_EXTERN void AXIS2_CALL
    axis2_callback_set_on_complete(
        axis2_callback_t * callback,
        axis2_on_complete_func_ptr f);

    /**
     * Sets the on error callback function.
     * @param callback pointer to callback struct
     * @param f on error callback function pointer
     */
    AXIS2_EXTERN void AXIS2_CALL
    axis2_callback_set_on_error(
        axis2_callback_t * callback,
        axis2_on_error_func_ptr f);

    /**
     * Frees callback struct.
     * @param callback pointer to callback struct
     * @param env pointer to environment struct
     * @return AXIS2_SUCCESS on success, else AXIS2_FAILURE
     */
    AXIS2_EXTERN void AXIS2_CALL
    axis2_callback_free(
        axis2_callback_t * callback,
        const axutil_env_t * env);

    /**
     * Creates a callback struct.
     * @param env pointer to environment struct
     * @return pointer to newly created callback struct
     */
    AXIS2_EXTERN axis2_callback_t *AXIS2_CALL
    axis2_callback_create(
        const axutil_env_t * env);

    /** @} */
#ifdef __cplusplus
}
#endif

#endif                          /* AXIS2_CALL_BACK_H */


<|start_filename|>axiom/src/parser/guththila/guththila_xml_writer_wrapper.c<|end_filename|>

/*
 * 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.
 */

#include <guththila_xml_writer.h>
#include <axutil_utils.h>
#include <axutil_env.h>
#include <axiom_xml_writer.h>
#include <string.h>

/************************ function prototypes ************************************/
void AXIS2_CALL guththila_xml_writer_wrapper_free(
    axiom_xml_writer_t * writer,
    const axutil_env_t * env);

axis2_status_t AXIS2_CALL guththila_xml_writer_wrapper_write_start_element(
    axiom_xml_writer_t * writer,
    const axutil_env_t * env,
    axis2_char_t * localname);

axis2_status_t AXIS2_CALL guththila_xml_writer_wrapper_end_start_element(
    axiom_xml_writer_t * writer,
    const axutil_env_t * env);

axis2_status_t AXIS2_CALL
guththila_xml_writer_wrapper_write_start_element_with_namespace(
    axiom_xml_writer_t * writer,
    const axutil_env_t * env,
    axis2_char_t * localname,
    axis2_char_t * namespace_uri);

axis2_status_t AXIS2_CALL
guththila_xml_writer_wrapper_write_start_element_with_namespace_prefix(
    axiom_xml_writer_t * writer,
    const axutil_env_t * env,
    axis2_char_t * localname,
    axis2_char_t * namespace_uri,
    axis2_char_t * prefix);

axis2_status_t AXIS2_CALL guththila_xml_writer_wrapper_write_empty_element(
    axiom_xml_writer_t * writer,
    const axutil_env_t * env,
    axis2_char_t * localname);

axis2_status_t AXIS2_CALL
guththila_xml_writer_wrapper_write_empty_element_with_namespace(
    axiom_xml_writer_t * writer,
    const axutil_env_t * env,
    axis2_char_t * localname,
    axis2_char_t * namespace_uri);

axis2_status_t AXIS2_CALL
guththila_xml_writer_wrapper_write_empty_element_with_namespace_prefix(
    axiom_xml_writer_t * writer,
    const axutil_env_t * env,
    axis2_char_t * localname,
    axis2_char_t * namespace_uri,
    axis2_char_t * prefix);

axis2_status_t AXIS2_CALL guththila_xml_writer_wrapper_write_end_element(
    axiom_xml_writer_t * writer,
    const axutil_env_t * env);

axis2_status_t AXIS2_CALL guththila_xml_writer_wrapper_write_end_document(
    axiom_xml_writer_t * writer,
    const axutil_env_t * env);

axis2_status_t AXIS2_CALL guththila_xml_writer_wrapper_write_attribute(
    axiom_xml_writer_t * writer,
    const axutil_env_t * env,
    axis2_char_t * localname,
    axis2_char_t * value);

axis2_status_t AXIS2_CALL
guththila_xml_writer_wrapper_write_attribute_with_namespace(
    axiom_xml_writer_t * writer,
    const axutil_env_t * env,
    axis2_char_t * localname,
    axis2_char_t * value,
    axis2_char_t * namespace_uri);

axis2_status_t AXIS2_CALL
guththila_xml_writer_wrapper_write_attribute_with_namespace_prefix(
    axiom_xml_writer_t * writer,
    const axutil_env_t * env,
    axis2_char_t * localname,
    axis2_char_t * value,
    axis2_char_t * namespace_uri,
    axis2_char_t * prefix);

axis2_status_t AXIS2_CALL guththila_xml_writer_wrapper_write_namespace(
    axiom_xml_writer_t * writer,
    const axutil_env_t * env,
    axis2_char_t * prefix,
    axis2_char_t * namespace_uri);

axis2_status_t AXIS2_CALL guththila_xml_writer_wrapper_write_default_namespace(
    axiom_xml_writer_t * writer,
    const axutil_env_t * env,
    axis2_char_t * namespace_uri);

axis2_status_t AXIS2_CALL guththila_xml_writer_wrapper_write_comment(
    axiom_xml_writer_t * writer,
    const axutil_env_t * env,
    axis2_char_t * value);

axis2_status_t AXIS2_CALL
guththila_xml_writer_wrapper_write_processing_instruction(
    axiom_xml_writer_t * writer,
    const axutil_env_t * env,
    axis2_char_t * target);

axis2_status_t AXIS2_CALL
guththila_xml_writer_wrapper_write_processing_instruction_data(
    axiom_xml_writer_t * writer,
    const axutil_env_t * env,
    axis2_char_t * target,
    axis2_char_t * data);

axis2_status_t AXIS2_CALL guththila_xml_writer_wrapper_write_cdata(
    axiom_xml_writer_t * writer,
    const axutil_env_t * env,
    axis2_char_t * data);

axis2_status_t AXIS2_CALL guththila_xml_writer_wrapper_write_dtd(
    axiom_xml_writer_t * writer,
    const axutil_env_t * env,
    axis2_char_t * dtd);

axis2_status_t AXIS2_CALL guththila_xml_writer_wrapper_write_entity_ref(
    axiom_xml_writer_t * writer,
    const axutil_env_t * env,
    axis2_char_t * name);

axis2_status_t AXIS2_CALL guththila_xml_writer_wrapper_write_start_document(
    axiom_xml_writer_t * writer,
    const axutil_env_t * env);

axis2_status_t AXIS2_CALL
guththila_xml_writer_wrapper_write_start_document_with_version(
    axiom_xml_writer_t * writer,
    const axutil_env_t * env,
    axis2_char_t * version);

axis2_status_t AXIS2_CALL
guththila_xml_writer_wrapper_write_start_document_with_version_encoding(
    axiom_xml_writer_t * writer,
    const axutil_env_t * env,
    axis2_char_t * encoding,
    axis2_char_t * version);

axis2_status_t AXIS2_CALL guththila_xml_writer_wrapper_write_characters(
    axiom_xml_writer_t * writer,
    const axutil_env_t * env,
    axis2_char_t * text);

axis2_char_t *AXIS2_CALL guththila_xml_writer_wrapper_get_prefix(
    axiom_xml_writer_t * writer,
    const axutil_env_t * env,
    axis2_char_t * uri);

axis2_status_t AXIS2_CALL guththila_xml_writer_wrapper_set_prefix(
    axiom_xml_writer_t * writer,
    const axutil_env_t * env,
    axis2_char_t * prefix,
    axis2_char_t * uri);

axis2_status_t AXIS2_CALL guththila_xml_writer_wrapper_set_default_prefix(
    axiom_xml_writer_t * writer,
    const axutil_env_t * env,
    axis2_char_t * uri);

axis2_status_t AXIS2_CALL guththila_xml_writer_wrapper_write_encoded(
    axiom_xml_writer_t * writer,
    const axutil_env_t * env,
    axis2_char_t * text,
    int in_attr);

void *AXIS2_CALL guththila_xml_writer_wrapper_get_xml(
    axiom_xml_writer_t * writer,
    const axutil_env_t * env);

unsigned int AXIS2_CALL guththila_xml_writer_wrapper_get_xml_size(
    axiom_xml_writer_t * writer,
    const axutil_env_t * env);

int AXIS2_CALL guththila_xml_writer_wrapper_get_type(
    axiom_xml_writer_t * writer,
    const axutil_env_t * env);

axis2_status_t AXIS2_CALL guththila_xml_writer_wrapper_write_raw(
    axiom_xml_writer_t * writer,
    const axutil_env_t * env,
    axis2_char_t * content);

axis2_status_t AXIS2_CALL guththila_xml_writer_wrapper_flush(
    axiom_xml_writer_t * writer,
    const axutil_env_t * env);

/***************************** end function pointers *****************************/

typedef struct guththila_xml_writer_wrapper_impl
{
    axiom_xml_writer_t writer;
    guththila_xml_writer_t *wr;
}
guththila_xml_writer_wrapper_impl_t;

static const axiom_xml_writer_ops_t axiom_xml_writer_ops_var = {
    guththila_xml_writer_wrapper_free,
    guththila_xml_writer_wrapper_write_start_element,
    guththila_xml_writer_wrapper_end_start_element,
    guththila_xml_writer_wrapper_write_start_element_with_namespace,
    guththila_xml_writer_wrapper_write_start_element_with_namespace_prefix,
    guththila_xml_writer_wrapper_write_empty_element,
    guththila_xml_writer_wrapper_write_empty_element_with_namespace,
    guththila_xml_writer_wrapper_write_empty_element_with_namespace_prefix,
    guththila_xml_writer_wrapper_write_end_element,
    guththila_xml_writer_wrapper_write_end_document,
    guththila_xml_writer_wrapper_write_attribute,
    guththila_xml_writer_wrapper_write_attribute_with_namespace,
    guththila_xml_writer_wrapper_write_attribute_with_namespace_prefix,
    guththila_xml_writer_wrapper_write_namespace,
    guththila_xml_writer_wrapper_write_default_namespace,
    guththila_xml_writer_wrapper_write_comment,
    guththila_xml_writer_wrapper_write_processing_instruction,
    guththila_xml_writer_wrapper_write_processing_instruction_data,
    guththila_xml_writer_wrapper_write_cdata,
    guththila_xml_writer_wrapper_write_dtd,
    guththila_xml_writer_wrapper_write_entity_ref,
    guththila_xml_writer_wrapper_write_start_document,
    guththila_xml_writer_wrapper_write_start_document_with_version,
    guththila_xml_writer_wrapper_write_start_document_with_version_encoding,
    guththila_xml_writer_wrapper_write_characters,
    guththila_xml_writer_wrapper_get_prefix,
    guththila_xml_writer_wrapper_set_prefix,
    guththila_xml_writer_wrapper_set_default_prefix,
    guththila_xml_writer_wrapper_write_encoded,
    guththila_xml_writer_wrapper_get_xml,
    guththila_xml_writer_wrapper_get_xml_size,
    guththila_xml_writer_wrapper_get_type,
    guththila_xml_writer_wrapper_write_raw,
    guththila_xml_writer_wrapper_flush
};

/****************************** Macros *******************************************/

#define AXIS2_INTF_TO_IMPL(p) ((guththila_xml_writer_wrapper_impl_t*)p)

/******************************* End macro ***************************************/

AXIS2_EXTERN axiom_xml_writer_t *AXIS2_CALL
axiom_xml_writer_create(
    const axutil_env_t * env,
    axis2_char_t * filename,
    axis2_char_t * encoding,
    int is_prefix_default,
    int compression)
{
    guththila_xml_writer_wrapper_impl_t *writer_impl;

    AXIS2_ENV_CHECK(env, NULL);

    writer_impl =
        (guththila_xml_writer_wrapper_impl_t *) AXIS2_MALLOC(env->allocator,
                                                             sizeof
                                                             (guththila_xml_writer_wrapper_impl_t));
    return &(writer_impl->writer);
}

AXIS2_EXTERN axiom_xml_writer_t *AXIS2_CALL
axiom_xml_writer_create_for_memory(
    const axutil_env_t * env,
    axis2_char_t * encoding,
    int is_prefix_default,
    int compression,
    int type)
{
    guththila_xml_writer_wrapper_impl_t *writer_impl = NULL;

    AXIS2_ENV_CHECK(env, NULL);

    writer_impl =
        (guththila_xml_writer_wrapper_impl_t *) AXIS2_MALLOC(env->allocator,
                                                             sizeof
                                                             (guththila_xml_writer_wrapper_impl_t));

    if (!writer_impl)
    {
        AXIS2_ERROR_SET(env->error, AXIS2_ERROR_NO_MEMORY, AXIS2_FAILURE);
        return NULL;
    }

    /* creating guththila parser */
    /* guththila xml stream writer for memory */

    writer_impl->wr = guththila_create_xml_stream_writer_for_memory(env);

    if (!(writer_impl->wr))
    {
        AXIS2_FREE(env->allocator, writer_impl->wr);
        AXIS2_FREE(env->allocator, writer_impl);
        AXIS2_ERROR_SET(env->error, AXIS2_ERROR_NO_MEMORY, AXIS2_FAILURE);
        return NULL;
    }

    writer_impl->writer.ops = NULL;
    /* ops */
    writer_impl->writer.ops = &axiom_xml_writer_ops_var;
    return &(writer_impl->writer);

}

void AXIS2_CALL
guththila_xml_writer_wrapper_free(
    axiom_xml_writer_t * writer,
    const axutil_env_t * env)
{
    AXIS2_ENV_CHECK(env, AXIS2_FAILURE);
    if (AXIS2_INTF_TO_IMPL(writer)->wr)
    {
        guththila_xml_writer_free(AXIS2_INTF_TO_IMPL(writer)->wr, env);
    }

    if (writer)
    {
        AXIS2_FREE(env->allocator, AXIS2_INTF_TO_IMPL(writer));
    }

}

axis2_status_t AXIS2_CALL
guththila_xml_writer_wrapper_write_start_element(
    axiom_xml_writer_t * writer,
    const axutil_env_t * env,
    axis2_char_t * localname)
{
    int status = AXIS2_SUCCESS;
    AXIS2_ENV_CHECK(env, AXIS2_FAILURE);
    AXIS2_PARAM_CHECK(env->error, localname, AXIS2_FAILURE);
    guththila_write_start_element(AXIS2_INTF_TO_IMPL(writer)->wr, localname,
                                  env);
    return status;
}

axis2_status_t AXIS2_CALL
guththila_xml_writer_wrapper_write_start_element_with_namespace(
    axiom_xml_writer_t * writer,
    const axutil_env_t * env,
    axis2_char_t * localname,
    axis2_char_t * namespace_uri)
{
    int status = AXIS2_SUCCESS;
    AXIS2_ENV_CHECK(env, AXIS2_FAILURE);
    AXIS2_PARAM_CHECK(env->error, localname, AXIS2_FAILURE);
    AXIS2_PARAM_CHECK(env->error, namespace_uri, AXIS2_FAILURE);
    guththila_write_start_element_with_namespace(AXIS2_INTF_TO_IMPL(writer)->wr,
                                                 namespace_uri, localname, env);
    return status;
}

axis2_status_t AXIS2_CALL
guththila_xml_writer_wrapper_write_start_element_with_namespace_prefix(
    axiom_xml_writer_t * writer,
    const axutil_env_t * env,
    axis2_char_t * localname,
    axis2_char_t * namespace_uri,
    axis2_char_t * prefix)
{
    AXIS2_ENV_CHECK(env, AXIS2_FAILURE);
    AXIS2_PARAM_CHECK(env->error, localname, AXIS2_FAILURE);
    AXIS2_PARAM_CHECK(env->error, namespace_uri, AXIS2_FAILURE);
    AXIS2_PARAM_CHECK(env->error, prefix, AXIS2_FAILURE);
    guththila_write_start_element_with_prefix_and_namespace(AXIS2_INTF_TO_IMPL
                                                            (writer)->wr,
                                                            prefix,
                                                            namespace_uri,
                                                            localname, env);
    return AXIS2_SUCCESS;

}

axis2_status_t AXIS2_CALL
guththila_xml_writer_wrapper_write_empty_element(
    axiom_xml_writer_t * writer,
    const axutil_env_t * env,
    axis2_char_t * localname)
{
    AXIS2_ENV_CHECK(env, AXIS2_FAILURE);
    AXIS2_PARAM_CHECK(env->error, localname, AXIS2_FAILURE);
    guththila_write_empty_element(AXIS2_INTF_TO_IMPL(writer)->wr, localname,
                                  env);
    return AXIS2_SUCCESS;
}

axis2_status_t AXIS2_CALL
guththila_xml_writer_wrapper_write_empty_element_with_namespace(
    axiom_xml_writer_t * writer,
    const axutil_env_t * env,
    axis2_char_t * localname,
    axis2_char_t * namespace_uri)
{
    AXIS2_ENV_CHECK(env, AXIS2_FAILURE);
    AXIS2_PARAM_CHECK(env->error, localname, AXIS2_FAILURE);
    AXIS2_PARAM_CHECK(env->error, namespace_uri, AXIS2_FAILURE);
    guththila_write_empty_element_with_namespace(AXIS2_INTF_TO_IMPL(writer)->wr,
                                                 namespace_uri, localname, env);
    return AXIS2_SUCCESS;
}

axis2_status_t AXIS2_CALL
guththila_xml_writer_wrapper_write_empty_element_with_namespace_prefix(
    axiom_xml_writer_t * writer,
    const axutil_env_t * env,
    axis2_char_t * localname,
    axis2_char_t * namespace_uri,
    axis2_char_t * prefix)
{
    AXIS2_ENV_CHECK(env, AXIS2_FAILURE);
    AXIS2_PARAM_CHECK(env->error, localname, AXIS2_FAILURE);
    AXIS2_PARAM_CHECK(env->error, namespace_uri, AXIS2_FAILURE);
    AXIS2_PARAM_CHECK(env->error, prefix, AXIS2_FAILURE);

    guththila_write_empty_element_with_prefix_and_namespace(AXIS2_INTF_TO_IMPL
                                                            (writer)->wr,
                                                            prefix,
                                                            namespace_uri,
                                                            localname, env);
    return AXIS2_SUCCESS;
}

axis2_status_t AXIS2_CALL
guththila_xml_writer_wrapper_write_end_element(
    axiom_xml_writer_t * writer,
    const axutil_env_t * env)
{
    AXIS2_ENV_CHECK(env, AXIS2_FAILURE);
    guththila_write_end_element(AXIS2_INTF_TO_IMPL(writer)->wr, env);
    return AXIS2_SUCCESS;
}

axis2_status_t AXIS2_CALL
guththila_xml_writer_wrapper_write_end_document(
    axiom_xml_writer_t * writer,
    const axutil_env_t * env)
{
    AXIS2_ENV_CHECK(env, AXIS2_FAILURE);
    guththila_write_end_document(AXIS2_INTF_TO_IMPL(writer)->wr, env);
    return AXIS2_SUCCESS;

}

axis2_status_t AXIS2_CALL
guththila_xml_writer_wrapper_write_attribute(
    axiom_xml_writer_t * writer,
    const axutil_env_t * env,
    axis2_char_t * localname,
    axis2_char_t * value)
{
    if(!value)
        value = "";

    AXIS2_ENV_CHECK(env, AXIS2_FAILURE);
    AXIS2_PARAM_CHECK(env->error, localname, AXIS2_FAILURE);
    AXIS2_PARAM_CHECK(env->error, value, AXIS2_FAILURE);
    guththila_write_attribute(AXIS2_INTF_TO_IMPL(writer)->wr,
                              localname, value, env);
    return AXIS2_SUCCESS;
}

axis2_status_t AXIS2_CALL
guththila_xml_writer_wrapper_write_attribute_with_namespace(
    axiom_xml_writer_t * writer,
    const axutil_env_t * env,
    axis2_char_t * localname,
    axis2_char_t * value,
    axis2_char_t * namespace_uri)
{
    if(!value)
        value = "";
    AXIS2_ENV_CHECK(env, AXIS2_FAILURE);
    AXIS2_PARAM_CHECK(env->error, localname, AXIS2_FAILURE);
    AXIS2_PARAM_CHECK(env->error, value, AXIS2_FAILURE);
    AXIS2_PARAM_CHECK(env->error, namespace_uri, AXIS2_FAILURE);

    guththila_write_attribute_with_namespace(AXIS2_INTF_TO_IMPL(writer)->wr,
                                             namespace_uri, localname, value,
                                             env);
    return AXIS2_SUCCESS;
}

axis2_status_t AXIS2_CALL
guththila_xml_writer_wrapper_write_attribute_with_namespace_prefix(
    axiom_xml_writer_t * writer,
    const axutil_env_t * env,
    axis2_char_t * localname,
    axis2_char_t * value,
    axis2_char_t * namespace_uri,
    axis2_char_t * prefix)
{
    AXIS2_ENV_CHECK(env, AXIS2_FAILURE);
    AXIS2_PARAM_CHECK(env->error, localname, AXIS2_FAILURE);
    AXIS2_PARAM_CHECK(env->error, value, AXIS2_FAILURE);
    AXIS2_PARAM_CHECK(env->error, namespace_uri, AXIS2_FAILURE);
    AXIS2_PARAM_CHECK(env->error, prefix, AXIS2_FAILURE);
    guththila_write_attribute_with_prefix_and_namespace(AXIS2_INTF_TO_IMPL
                                                        (writer)->wr, prefix,
                                                        namespace_uri,
                                                        localname, value, env);
    return AXIS2_SUCCESS;
}

axis2_status_t AXIS2_CALL
guththila_xml_writer_wrapper_write_namespace(
    axiom_xml_writer_t * writer,
    const axutil_env_t * env,
    axis2_char_t * prefix,
    axis2_char_t * namespace_uri)
{
    AXIS2_ENV_CHECK(env, AXIS2_FAILURE);
    AXIS2_PARAM_CHECK(env->error, namespace_uri, AXIS2_FAILURE);
    /* when default namespace comes is passed, prefix is null */
    if (prefix)
        guththila_write_namespace(AXIS2_INTF_TO_IMPL(writer)->wr,
                                  prefix, namespace_uri, env);
    else
        guththila_write_default_namespace(AXIS2_INTF_TO_IMPL(writer)->wr,
                                  namespace_uri, env);
    return AXIS2_SUCCESS;
}

axis2_status_t AXIS2_CALL
guththila_xml_writer_wrapper_write_default_namespace(
    axiom_xml_writer_t * writer,
    const axutil_env_t * env,
    axis2_char_t * namespace_uri)
{
    AXIS2_ENV_CHECK(env, AXIS2_FAILURE);
    AXIS2_PARAM_CHECK(env->error, namespace_uri, AXIS2_FAILURE);
    guththila_write_default_namespace(AXIS2_INTF_TO_IMPL(writer)->wr,
                                      namespace_uri, env);
    return AXIS2_SUCCESS;
}

axis2_status_t AXIS2_CALL
guththila_xml_writer_wrapper_write_comment(
    axiom_xml_writer_t * writer,
    const axutil_env_t * env,
    axis2_char_t * value)
{
    AXIS2_ENV_CHECK(env, AXIS2_FAILURE);
    AXIS2_PARAM_CHECK(env->error, value, AXIS2_FAILURE);
    guththila_write_comment(AXIS2_INTF_TO_IMPL(writer)->wr, value, env);
    return AXIS2_SUCCESS;
}

axis2_status_t AXIS2_CALL
guththila_xml_writer_wrapper_write_processing_instruction(
    axiom_xml_writer_t * writer,
    const axutil_env_t * env,
    axis2_char_t * target)
{
    AXIS2_ENV_CHECK(env, AXIS2_FAILURE);
    AXIS2_PARAM_CHECK(env->error, target, AXIS2_FAILURE);
    return AXIS2_SUCCESS;
}

axis2_status_t AXIS2_CALL
guththila_xml_writer_wrapper_write_processing_instruction_data(
    axiom_xml_writer_t * writer,
    const axutil_env_t * env,
    axis2_char_t * target,
    axis2_char_t * data)
{
    AXIS2_ENV_CHECK(env, AXIS2_FAILURE);
    AXIS2_PARAM_CHECK(env->error, target, AXIS2_FAILURE);
    AXIS2_PARAM_CHECK(env->error, data, AXIS2_FAILURE);
    return AXIS2_SUCCESS;
}

axis2_status_t AXIS2_CALL
guththila_xml_writer_wrapper_write_cdata(
    axiom_xml_writer_t * writer,
    const axutil_env_t * env,
    axis2_char_t * data)
{
    AXIS2_ENV_CHECK(env, AXIS2_FAILURE);
    AXIS2_PARAM_CHECK(env->error, data, AXIS2_FAILURE);
    return AXIS2_SUCCESS;
}

axis2_status_t AXIS2_CALL
guththila_xml_writer_wrapper_write_dtd(
    axiom_xml_writer_t * writer,
    const axutil_env_t * env,
    axis2_char_t * dtd)
{
    /* AXIS2_ENV_CHECK( env, AXIS2_FAILURE); */
    /*     AXIS2_PARAM_CHECK(env->error, dtd, AXIS2_FAILURE); */
    /*     return guththila_write_dtd( */
    /*                     (axutil_env_t *)env, */
    /*                     AXIS2_INTF_TO_IMPL(writer)->parser, */
    /*                     dtd); */
    return 0;
}

axis2_status_t AXIS2_CALL
guththila_xml_writer_wrapper_write_entity_ref(
    axiom_xml_writer_t * writer,
    const axutil_env_t * env,
    axis2_char_t * name)
{
    /* AXIS2_ENV_CHECK( env, AXIS2_FAILURE); */
    /*     AXIS2_PARAM_CHECK(env->error, name, AXIS2_FAILURE); */
    /*     return guththila_write_entity_ref( */
    /*                     (axutil_env_t *)env, */
    /*                     AXIS2_INTF_TO_IMPL(writer)->parser, */
    /*                     name); */
    return 0;

}

axis2_status_t AXIS2_CALL
guththila_xml_writer_wrapper_write_start_document(
    axiom_xml_writer_t * writer,
    const axutil_env_t * env)
{
    AXIS2_ENV_CHECK(env, AXIS2_FAILURE);
    guththila_write_start_document(AXIS2_INTF_TO_IMPL(writer)->wr, env,
                                   NULL, NULL);
    return AXIS2_SUCCESS;
}

axis2_status_t AXIS2_CALL
guththila_xml_writer_wrapper_write_start_document_with_version(
    axiom_xml_writer_t * writer,
    const axutil_env_t * env,
    axis2_char_t * version)
{
    AXIS2_ENV_CHECK(env, AXIS2_FAILURE);
    AXIS2_PARAM_CHECK(env->error, version, AXIS2_FAILURE);
    guththila_write_start_document(AXIS2_INTF_TO_IMPL(writer)->wr, env,
                                   NULL, version);
    return AXIS2_SUCCESS;
}

axis2_status_t AXIS2_CALL
guththila_xml_writer_wrapper_write_start_document_with_version_encoding(
    axiom_xml_writer_t * writer,
    const axutil_env_t * env,
    axis2_char_t * encoding,
    axis2_char_t * version)
{
    AXIS2_ENV_CHECK(env, AXIS2_FAILURE);
    AXIS2_PARAM_CHECK(env->error, encoding, AXIS2_FAILURE);
    AXIS2_PARAM_CHECK(env->error, version, AXIS2_FAILURE);
    guththila_write_start_document(AXIS2_INTF_TO_IMPL(writer)->wr, env,
                                   encoding, version);
    return AXIS2_SUCCESS;
}

axis2_status_t AXIS2_CALL
guththila_xml_writer_wrapper_write_characters(
    axiom_xml_writer_t * writer,
    const axutil_env_t * env,
    axis2_char_t * text)
{
    AXIS2_ENV_CHECK(env, AXIS2_FAILURE);
    AXIS2_PARAM_CHECK(env->error, text, AXIS2_FAILURE);
    guththila_write_characters(AXIS2_INTF_TO_IMPL(writer)->wr, text, env);
    return AXIS2_SUCCESS;
}

axis2_char_t *AXIS2_CALL
guththila_xml_writer_wrapper_get_prefix(
    axiom_xml_writer_t * writer,
    const axutil_env_t * env,
    axis2_char_t * uri)
{
    AXIS2_ENV_CHECK(env, NULL);
    AXIS2_PARAM_CHECK(env->error, uri, NULL);
    return guththila_get_prefix_for_namespace(AXIS2_INTF_TO_IMPL(writer)->wr,
                                              uri, env);
}

axis2_status_t AXIS2_CALL
guththila_xml_writer_wrapper_set_prefix(
    axiom_xml_writer_t * writer,
    const axutil_env_t * env,
    axis2_char_t * prefix,
    axis2_char_t * uri)
{
    AXIS2_ENV_CHECK(env, AXIS2_FAILURE);
    AXIS2_PARAM_CHECK(env->error, prefix, AXIS2_FAILURE);
    AXIS2_PARAM_CHECK(env->error, uri, AXIS2_FAILURE);
    guththila_write_namespace(AXIS2_INTF_TO_IMPL(writer)->wr, prefix, uri, env);
    return AXIS2_SUCCESS;

}

axis2_status_t AXIS2_CALL
guththila_xml_writer_wrapper_set_default_prefix(
    axiom_xml_writer_t * writer,
    const axutil_env_t * env,
    axis2_char_t * uri)
{
    AXIS2_ENV_CHECK(env, AXIS2_FAILURE);
    AXIS2_PARAM_CHECK(env->error, uri, AXIS2_FAILURE);
    guththila_write_default_namespace(AXIS2_INTF_TO_IMPL(writer)->wr, uri, env);
    return AXIS2_SUCCESS;
}

axis2_status_t AXIS2_CALL
guththila_xml_writer_wrapper_write_encoded(
    axiom_xml_writer_t * writer,
    const axutil_env_t * env,
    axis2_char_t * text,
    int in_attr)
{
    AXIS2_ENV_CHECK(env, AXIS2_FAILURE);
    AXIS2_PARAM_CHECK(env->error, text, AXIS2_FAILURE);
    return AXIS2_SUCCESS;
}

void *AXIS2_CALL
guththila_xml_writer_wrapper_get_xml(
    axiom_xml_writer_t * writer,
    const axutil_env_t * env)
{
    char *buffer = NULL;
    AXIS2_ENV_CHECK(env, AXIS2_FAILURE);
    buffer = guththila_get_memory_buffer(AXIS2_INTF_TO_IMPL(writer)->wr, env);
    return (void *) buffer;
}

axis2_status_t AXIS2_CALL
guththila_xml_writer_wrapper_write_raw(
    axiom_xml_writer_t * writer,
    const axutil_env_t * env,
    axis2_char_t * content)
{
    if (!content)
    {
        return AXIS2_FAILURE;
    }
    else
    {
        guththila_write_to_buffer(AXIS2_INTF_TO_IMPL(writer)->wr,
                                  (char *) content, (int) strlen(content), env);
        return AXIS2_SUCCESS;
    }
}

unsigned int AXIS2_CALL
guththila_xml_writer_wrapper_get_xml_size(
    axiom_xml_writer_t * writer,
    const axutil_env_t * env)
{
    AXIS2_ENV_CHECK(env, AXIS2_FAILURE);
    return guththila_get_memory_buffer_size(AXIS2_INTF_TO_IMPL(writer)->wr,
                                            env);
}

int AXIS2_CALL
guththila_xml_writer_wrapper_get_type(
    axiom_xml_writer_t * writer,
    const axutil_env_t * env)
{
    return 0;
}

axis2_status_t AXIS2_CALL
guththila_xml_writer_wrapper_flush(
    axiom_xml_writer_t * writer,
    const axutil_env_t * env)
{
    return AXIS2_SUCCESS;
}

axis2_status_t AXIS2_CALL
guththila_xml_writer_wrapper_end_start_element(
    axiom_xml_writer_t * writer,
    const axutil_env_t * env)
{
    AXIS2_ENV_CHECK(env, AXIS2_FAILURE);
    /* nothing to do ,
       it is automatically taken care by the libxml2 writer */
    return AXIS2_SUCCESS;
}


<|start_filename|>util/src/base64.c<|end_filename|>

/*
 * 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.
 */

/* base64 encoder/decoder. Originally part of main/util.c
 * but moved here so that support/ab and axis2_sha1.c could
 * use it. This meant removing the axis2_palloc()s and adding
 * ugly 'len' functions, which is quite a nasty cost.
 */

#include <axutil_base64.h>

static const unsigned char pr2six[256] = {
#ifndef __OS400__
    /* ASCII table */
    64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64,
    64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64,
    64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 62, 64, 64, 64, 63,
    52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 64, 64, 64, 64, 64, 64,
    64, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14,
    15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 64, 64, 64, 64, 64,
    64, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40,
    41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 64, 64, 64, 64, 64,
    64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64,
    64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64,
    64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64,
    64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64,
    64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64,
    64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64,
    64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64,
    64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64
#else                           /* __OS400__ */
    /* EBCDIC table */
    64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64,
    64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64,
    64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64,
    64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64,
    64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 62, 64,
    64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64,
    64, 63, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64,
    64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64,
    64, 26, 27, 28, 29, 30, 31, 32, 33, 34, 64, 64, 64, 64, 64, 64,
    64, 35, 36, 37, 38, 39, 40, 41, 42, 43, 64, 64, 64, 64, 64, 64,
    64, 64, 44, 45, 46, 47, 48, 49, 50, 51, 64, 64, 64, 64, 64, 64,
    64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64,
    64, 0, 1, 2, 3, 4, 5, 6, 7, 8, 64, 64, 64, 64, 64, 64,
    64, 9, 10, 11, 12, 13, 14, 15, 16, 17, 64, 64, 64, 64, 64, 64,
    64, 64, 18, 19, 20, 21, 22, 23, 24, 25, 64, 64, 64, 64, 64, 64,
    52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 64, 64, 64, 64, 64, 64
#endif                          /* AXIS2_CHARSET_EBCDIC */
};

#ifdef __OS400__

static unsigned char os_toascii[256] = {
    /* 0    1    2    3    4    5    6    7    8    9    A    B    C    D    E    F */
    0, 1, 2, 3, 156, 9, 134, 127, 151, 141, 142, 11, 12, 13, 14, 15,
    16, 17, 18, 19, 157, 133, 8, 135, 24, 25, 146, 143, 28, 29, 30, 31,
    128, 129, 130, 131, 132, 10, 23, 27, 136, 137, 138, 139, 140, 5, 6, 7,
    144, 145, 22, 147, 148, 149, 150, 4, 152, 153, 154, 155, 20, 21, 158, 26,
    32, 160, 226, 228, 224, 225, 227, 229, 231, 241, 162, 46, 60, 40, 43, 124,
    38, 233, 234, 235, 232, 237, 238, 239, 236, 223, 33, 36, 42, 41, 59, 172,
    45, 47, 194, 196, 192, 193, 195, 197, 199, 209, 166, 44, 37, 95, 62, 63,
    248, 201, 202, 203, 200, 205, 206, 207, 204, 96, 58, 35, 64, 39, 61, 34,
    216, 97, 98, 99, 100, 101, 102, 103, 104, 105, 171, 187, 240, 253, 254, 177,
    176, 106, 107, 108, 109, 110, 111, 112, 113, 114, 170, 186, 230, 184, 198,
    164,
    181, 126, 115, 116, 117, 118, 119, 120, 121, 122, 161, 191, 208, 221, 222,
    174,
    94, 163, 165, 183, 169, 167, 182, 188, 189, 190, 91, 93, 175, 168, 180, 215,
    123, 65, 66, 67, 68, 69, 70, 71, 72, 73, 173, 244, 246, 242, 243, 245,
    125, 74, 75, 76, 77, 78, 79, 80, 81, 82, 185, 251, 252, 249, 250, 255,
    92, 247, 83, 84, 85, 86, 87, 88, 89, 90, 178, 212, 214, 210, 211, 213,
    48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 179, 219, 220, 217, 218, 159
};

#endif                          /* __OS400__ */

AXIS2_EXTERN int AXIS2_CALL
axutil_base64_decode_len(
    const char *bufcoded)
{
    int nbytesdecoded;
    register const unsigned char *bufin;
    register int nprbytes;

    if (!bufcoded)
    {
        return -1;
    }

    bufin = (const unsigned char *) bufcoded;
    while (pr2six[*(bufin++)] <= 63);

    nprbytes = (int)(bufin - (const unsigned char *) bufcoded) - 1;
    /* We are sure that the difference lies within the int range */

    nbytesdecoded = ((nprbytes >> 2) * 3);

    if (nprbytes & 0x03) nbytesdecoded += (nprbytes & 0x03) - 1;

    return nbytesdecoded;

}

AXIS2_EXTERN int AXIS2_CALL
axutil_base64_decode(
    char *bufplain,
    const char *bufcoded)
{
    int len;
    len = axutil_base64_decode_binary((unsigned char *) bufplain, bufcoded);
    bufplain[len] = '\0';
    return len;
}

/* This is the same as axutil_base64_decode() except on EBCDIC machines, where
 * the conversion of the output to ebcdic is left out.
 */

AXIS2_EXTERN int AXIS2_CALL
axutil_base64_decode_binary(
    unsigned char *bufplain,
    const char *bufcoded)
{
    int nbytesdecoded;
    register const unsigned char *bufin;
    register unsigned char *bufout;
    register int nprbytes;

    if (!bufcoded)
    {
        return -1;
    }

    bufin = (const unsigned char *) bufcoded;
    while (pr2six[*(bufin++)] <= 63);
    nprbytes = (int)(bufin - (const unsigned char *) bufcoded) - 1;
    /* We are sure that the difference lies within the int range */
    nbytesdecoded = ((nprbytes + 3) / 4) * 3;

    bufout = (unsigned char *) bufplain;
    bufin = (const unsigned char *) bufcoded;

    while (nprbytes > 4)
    {
        *(bufout++) =
            (unsigned char) (pr2six[*bufin] << 2 | pr2six[bufin[1]] >> 4);
        *(bufout++) =
            (unsigned char) (pr2six[bufin[1]] << 4 | pr2six[bufin[2]] >> 2);
        *(bufout++) =
            (unsigned char) (pr2six[bufin[2]] << 6 | pr2six[bufin[3]]);
        bufin += 4;
        nprbytes -= 4;
    }

    /* Note: (nprbytes == 1) would be an error, so just ingore that case */
    if (nprbytes > 1)
    {
        *(bufout++) =
            (unsigned char) (pr2six[*bufin] << 2 | pr2six[bufin[1]] >> 4);
    }
    if (nprbytes > 2)
    {
        *(bufout++) =
            (unsigned char) (pr2six[bufin[1]] << 4 | pr2six[bufin[2]] >> 2);
    }
    if (nprbytes > 3)
    {
        *(bufout++) =
            (unsigned char) (pr2six[bufin[2]] << 6 | pr2six[bufin[3]]);
    }

    nbytesdecoded -= (4 - nprbytes) & 3;
    return nbytesdecoded;
}

static const char basis_64[] =
    "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/";

AXIS2_EXTERN int AXIS2_CALL
axutil_base64_encode_len(
    int len)
{
    return ((len + 2) / 3 * 4) + 1;
}

AXIS2_EXTERN int AXIS2_CALL
axutil_base64_encode(
    char *encoded,
    const char *string,
    int len)
{
#ifndef __OS400__
    return axutil_base64_encode_binary(encoded, (const unsigned char *) string,
                                       len);
#else                           /* __OS400__ */
    int i;
    char *p;

    p = encoded;
    for (i = 0; i < len - 2; i += 3)
    {
        *p++ = basis_64[(os_toascii[string[i]] >> 2) & 0x3F];
        *p++ =
            basis_64[((os_toascii[string[i]] & 0x3) << 4) |
                     ((int) (os_toascii[string[i + 1]] & 0xF0) >> 4)];
        *p++ =
            basis_64[((os_toascii[string[i + 1]] & 0xF) << 2) |
                     ((int) (os_toascii[string[i + 2]] & 0xC0) >> 6)];
        *p++ = basis_64[os_toascii[string[i + 2]] & 0x3F];
    }
    if (i < len)
    {
        *p++ = basis_64[(os_toascii[string[i]] >> 2) & 0x3F];
        if (i == (len - 1))
        {
            *p++ = basis_64[((os_toascii[string[i]] & 0x3) << 4)];
            *p++ = '=';
        }
        else
        {
            *p++ =
                basis_64[((os_toascii[string[i]] & 0x3) << 4) |
                    ((int) (os_toascii[string[i + 1]] & 0xF0) >> 4)];
            *p++ = basis_64[((os_toascii[string[i + 1]] & 0xF) << 2)];
        }
        *p++ = '=';
    }

    *p++ = '\0';
    return p - encoded;
#endif                          /* __OS400__ */
}

/* This is the same as axutil_base64_encode() except on EBCDIC machines, where
 * the conversion of the input to ascii is left out.
 */
AXIS2_EXTERN int AXIS2_CALL
axutil_base64_encode_binary(
    char *encoded,
    const unsigned char *string,
    int len)
{
    int i;
    char *p;

    p = encoded;
    for (i = 0; i < len - 2; i += 3)
    {
        *p++ = basis_64[(string[i] >> 2) & 0x3F];
        *p++ =
            basis_64[((string[i] & 0x3) << 4) |
                ((int) (string[i + 1] & 0xF0) >> 4)];
        *p++ =
            basis_64[((string[i + 1] & 0xF) << 2) |
                ((int) (string[i + 2] & 0xC0) >> 6)];
        *p++ = basis_64[string[i + 2] & 0x3F];
    }
    if (i < len)
    {
        *p++ = basis_64[(string[i] >> 2) & 0x3F];
        if (i == (len - 1))
        {
            *p++ = basis_64[((string[i] & 0x3) << 4)];
            *p++ = '=';
        }
        else
        {
            *p++ =
                basis_64[((string[i] & 0x3) << 4) |
                    ((int) (string[i + 1] & 0xF0) >> 4)];
            *p++ = basis_64[((string[i + 1] & 0xF) << 2)];
        }
        *p++ = '=';
    }

    *p++ = '\0';
    return (int)(p - encoded);
    /* We are sure that the difference lies within the int range */
}


<|start_filename|>src/core/engine/disp.c<|end_filename|>

/*
 * 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.
 */

#include <axis2_disp.h>
#include <axis2_handler_desc.h>
#include <axutil_string.h>
#include <axis2_relates_to.h>
#include <axis2_svc.h>
#include <axis2_const.h>
#include <axis2_msg_ctx.h>

const axis2_char_t *AXIS2_DISP_NAME = "abstract_dispatcher";

struct axis2_disp
{

    /** base class, inherits from handler */
    axis2_handler_t *base;

    /** phase name */
    axutil_string_t *name;

    /** derived struct */
    void *derived;              /* deep copy */
    int derived_type;
};

axis2_disp_t *AXIS2_CALL
axis2_disp_create(
    const axutil_env_t * env,
    const axutil_string_t * name)
{
    axis2_disp_t *disp = NULL;
    axis2_handler_desc_t *handler_desc = NULL;

    disp = AXIS2_MALLOC(env->allocator, sizeof(axis2_disp_t));
    if (!disp)
    {
        AXIS2_ERROR_SET(env->error, AXIS2_ERROR_NO_MEMORY, AXIS2_FAILURE);
        return NULL;
    }

    disp->name = NULL;
    disp->base = NULL;

    if (name)
    {
        disp->name = axutil_string_clone((axutil_string_t *) name, env);
        if (!(disp->name))
        {
            AXIS2_ERROR_SET(env->error, AXIS2_ERROR_NO_MEMORY, AXIS2_FAILURE);
            axis2_disp_free(disp, env);
            return NULL;
        }
    }
    else
    {
        /* create default name */
        disp->name =
            axutil_string_create_const(env,
                                       (axis2_char_t **) & AXIS2_DISP_NAME);
        if (!(disp->name))
        {
            axis2_disp_free(disp, env);
            return NULL;
        }
    }

    disp->base = axis2_handler_create(env);
    if (!disp->base)
    {
        axis2_disp_free(disp, env);
        return NULL;
    }

    /* handler desc of base handler */
    handler_desc = axis2_handler_desc_create(env, disp->name);
    if (!handler_desc)
    {
        axis2_disp_free(disp, env);
        return NULL;
    }

    axis2_handler_init(disp->base, env, handler_desc);

    return disp;
}

axis2_handler_t *AXIS2_CALL
axis2_disp_get_base(
    const axis2_disp_t * disp,
    const axutil_env_t * env)
{
    return disp->base;
}

axutil_string_t *AXIS2_CALL
axis2_disp_get_name(
    const axis2_disp_t * disp,
    const axutil_env_t * env)
{
    return disp->name;
}

axis2_status_t AXIS2_CALL
axis2_disp_set_name(
    struct axis2_disp * disp,
    const axutil_env_t * env,
    axutil_string_t * name)
{
    if (disp->name)
    {
        axutil_string_free(disp->name, env);
    }

    if (name)
    {
        disp->name = axutil_string_clone(name, env);
        if (!(disp->name))
            return AXIS2_FAILURE;
    }

    return AXIS2_SUCCESS;
}

axis2_status_t AXIS2_CALL
axis2_disp_find_svc_and_op(
    struct axis2_handler * handler,
    const axutil_env_t * env,
    struct axis2_msg_ctx * msg_ctx)
{
    axis2_svc_t *axis_service = NULL;
    axis2_op_t *op = NULL;

    AXIS2_PARAM_CHECK(env->error, msg_ctx, AXIS2_FAILURE);

    axis_service = axis2_msg_ctx_get_svc(msg_ctx, env);

    if (!axis_service)
    {
        axis_service = axis2_msg_ctx_find_svc(msg_ctx, env);
        if (axis_service)
        {
            axis2_msg_ctx_set_svc(msg_ctx, env, axis_service);
        }
    }
    op = axis2_msg_ctx_get_op(msg_ctx, env);
    if (!op)
    {
        op = axis2_msg_ctx_find_op(msg_ctx, env, axis_service);

        if (op)
        {
            axis2_msg_ctx_set_op(msg_ctx, env, op);
        }
    }

    return AXIS2_SUCCESS;
}

void AXIS2_CALL
axis2_disp_free(
    struct axis2_disp *disp,
    const axutil_env_t * env)
{
    if (disp->name)
    {
        axutil_string_free(disp->name, env);
    }
    AXIS2_FREE(env->allocator, disp);
    return;
}



<|start_filename|>src/core/description/policy_include.c<|end_filename|>

/*
 * 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.
 */

#include <axis2_policy_include.h>
#include <neethi_policy.h>
#include <neethi_engine.h>

struct axis2_policy_include
{
    neethi_policy_t *policy;

    neethi_policy_t *effective_policy;

    neethi_registry_t *registry;

    axis2_desc_t *desc;

    axutil_hash_t *wrapper_elements;
};

typedef struct axis2_policy_wrapper
{
    int type;
    void *value;
} axis2_policy_wrapper_t;

AXIS2_EXTERN axis2_policy_include_t *AXIS2_CALL
axis2_policy_include_create(
    const axutil_env_t * env)
{
    axis2_policy_include_t *policy_include = NULL;

    AXIS2_ENV_CHECK(env, NULL);

    policy_include = (axis2_policy_include_t *) AXIS2_MALLOC(env->allocator,
                                                             sizeof
                                                             (axis2_policy_include_t));

    if (!policy_include)
    {
        AXIS2_ERROR_SET(env->error, AXIS2_ERROR_NO_MEMORY, AXIS2_FAILURE);
        return NULL;
    }

    policy_include->policy = NULL;
    policy_include->effective_policy = NULL;
    policy_include->registry = NULL;
    policy_include->desc = NULL;
    policy_include->wrapper_elements = NULL;

    policy_include->registry = neethi_registry_create(env);
    if (!policy_include->registry)
    {
        axis2_policy_include_free(policy_include, env);
        AXIS2_ERROR_SET(env->error, AXIS2_ERROR_NO_MEMORY, AXIS2_FAILURE);
        return NULL;
    }

    policy_include->wrapper_elements = axutil_hash_make(env);
    if (!policy_include->wrapper_elements)
    {
        axis2_policy_include_free(policy_include, env);
        AXIS2_ERROR_SET(env->error, AXIS2_ERROR_NO_MEMORY, AXIS2_FAILURE);
        return NULL;
    }

    return policy_include;
}

AXIS2_EXTERN axis2_policy_include_t *AXIS2_CALL
axis2_policy_include_create_with_desc(
    const axutil_env_t * env,
    axis2_desc_t * desc)
{
    axis2_policy_include_t *policy_include = NULL;
    axis2_desc_t *parent_desc = NULL;

    AXIS2_ENV_CHECK(env, NULL);

    policy_include =
        (axis2_policy_include_t *) axis2_policy_include_create(env);

    parent_desc = axis2_desc_get_parent(desc, env);

    if (policy_include->registry)
    {
        neethi_registry_free(policy_include->registry, env);
        policy_include->registry = NULL;
    }

    if (parent_desc)
    {
        axis2_policy_include_t *preant_policy_include =
            axis2_desc_get_policy_include(parent_desc, env);
        if (preant_policy_include)
        {
            policy_include->registry = neethi_registry_create_with_parent(env,
                                                                          axis2_policy_include_get_registry
                                                                          (preant_policy_include,
                                                                           env));
        }
        else
        {
            policy_include->registry = neethi_registry_create(env);
        }
    }
    else
    {
        policy_include->registry = neethi_registry_create(env);
    }

    policy_include->desc = desc;

    return policy_include;
}

AXIS2_EXTERN void AXIS2_CALL
axis2_policy_include_free(
    axis2_policy_include_t * policy_include,
    const axutil_env_t * env)
{
    AXIS2_ENV_CHECK(env, void);

    if (policy_include->registry)
    {
        neethi_registry_free(policy_include->registry, env);
    }

    if (policy_include->wrapper_elements)
    {
        axutil_hash_index_t *hi = NULL;
        void *val = NULL;
        for (hi = axutil_hash_first(policy_include->wrapper_elements, env); hi;
             hi = axutil_hash_next(env, hi))
        {
            axis2_policy_wrapper_t *wrapper = NULL;
            axutil_hash_this(hi, NULL, NULL, &val);
            wrapper = (axis2_policy_wrapper_t *) val;
            if (wrapper)
                AXIS2_FREE(env->allocator, wrapper);
            val = NULL;
            wrapper = NULL;
        }
        axutil_hash_free(policy_include->wrapper_elements, env);
    }

    if (policy_include)
    {
        AXIS2_FREE(env->allocator, policy_include);
    }

    return;
}

AXIS2_EXTERN axis2_status_t AXIS2_CALL
axis2_policy_include_set_registry(
    axis2_policy_include_t * policy_include,
    const axutil_env_t * env,
    neethi_registry_t * registry)
{
    AXIS2_ENV_CHECK(env, AXIS2_FAILURE);

    if (policy_include->registry)
    {
        neethi_registry_free(policy_include->registry, env);
    }

    policy_include->registry = registry;

    return AXIS2_SUCCESS;
}

AXIS2_EXTERN neethi_registry_t *AXIS2_CALL
axis2_policy_include_get_registry(
    axis2_policy_include_t * policy_include,
    const axutil_env_t * env)
{
    return policy_include->registry;
}

AXIS2_EXTERN axis2_status_t AXIS2_CALL
axis2_policy_include_set_policy(
    axis2_policy_include_t * policy_include,
    const axutil_env_t * env,
    neethi_policy_t * policy)
{
    AXIS2_ENV_CHECK(env, AXIS2_FAILURE);

    if (policy_include->wrapper_elements)
    {
        axutil_hash_free(policy_include->wrapper_elements, env);
        policy_include->wrapper_elements = NULL;
    }

    policy_include->wrapper_elements = axutil_hash_make(env);

    if (!neethi_policy_get_name(policy, env) &&
        !neethi_policy_get_id(policy, env))
    {
        neethi_policy_set_id(policy, env, axutil_uuid_gen(env));
    }

    if (policy_include->wrapper_elements)
    {
        axis2_policy_wrapper_t *wrapper = NULL;

        wrapper = (axis2_policy_wrapper_t *) AXIS2_MALLOC(env->allocator,
                                                          sizeof
                                                          (axis2_policy_wrapper_t));
        if (wrapper)
        {
            axis2_char_t *policy_name = NULL;
            wrapper->type = AXIS2_ANON_POLICY;
            wrapper->value = policy;

            policy_name = neethi_policy_get_name(policy, env);

            if (policy_name)
            {
                axutil_hash_set(policy_include->wrapper_elements, policy_name,
                                AXIS2_HASH_KEY_STRING, wrapper);
            }
            else
            {
                axutil_hash_set(policy_include->wrapper_elements,
                                neethi_policy_get_id(policy, env),
                                AXIS2_HASH_KEY_STRING, wrapper);
            }
        }
    }
    return AXIS2_SUCCESS;
}

AXIS2_EXTERN axis2_status_t AXIS2_CALL
axis2_policy_include_update_policy(
    axis2_policy_include_t * policy_include,
    const axutil_env_t * env,
    neethi_policy_t * policy)
{
    axis2_char_t *key;
    axis2_policy_wrapper_t *wrapper = NULL;

    key = neethi_policy_get_name(policy, env);
    if (!key)
        key = neethi_policy_get_id(policy, env);

    if (!key)
    {
        return AXIS2_FAILURE;
    }

    wrapper = axutil_hash_get(policy_include->wrapper_elements, key,
                              AXIS2_HASH_KEY_STRING);
    if (wrapper)
    {
        wrapper->value = policy;
        return AXIS2_SUCCESS;
    }

    return AXIS2_FAILURE;
}

AXIS2_EXTERN axis2_status_t AXIS2_CALL
axis2_policy_include_set_effective_policy(
    axis2_policy_include_t * policy_include,
    const axutil_env_t * env,
    neethi_policy_t * effective_policy)
{
    policy_include->effective_policy = effective_policy;
    return AXIS2_SUCCESS;
}

AXIS2_EXTERN axis2_status_t AXIS2_CALL
axis2_policy_include_set_desc(
    axis2_policy_include_t * policy_include,
    const axutil_env_t * env,
    axis2_desc_t * desc)
{
    policy_include->desc = desc;
    return AXIS2_SUCCESS;
}

AXIS2_EXTERN axis2_desc_t *AXIS2_CALL
axis2_policy_include_get_desc(
    axis2_policy_include_t * policy_include,
    const axutil_env_t * env)
{
    return policy_include->desc;
}

AXIS2_EXTERN axis2_policy_include_t *AXIS2_CALL
axis2_policy_include_get_parent(
    axis2_policy_include_t * policy_include,
    const axutil_env_t * env)
{
    if (policy_include->desc)
    {
        axis2_desc_t *parent = NULL;
        parent = axis2_desc_get_parent(policy_include->desc, env);
        if (parent)
        {
            return axis2_desc_get_policy_include(parent, env);
        }
    }

    return NULL;
}

static axis2_status_t
axis2_policy_include_calculate_policy(
    axis2_policy_include_t * policy_include,
    const axutil_env_t * env)
{
    neethi_policy_t *result = NULL;
    axutil_hash_index_t *hi = NULL;
    void *val = NULL;

    for (hi = axutil_hash_first(policy_include->wrapper_elements, env); hi;
         hi = axutil_hash_next(env, hi))
    {
        axis2_policy_wrapper_t *wrapper = NULL;

        axutil_hash_this(hi, NULL, NULL, &val);
        wrapper = (axis2_policy_wrapper_t *) val;

        if (wrapper)
        {
            neethi_policy_t *policy = NULL;
            if (wrapper->type == AXIS2_POLICY_REF)
            {
                neethi_reference_t *reference =
                    (neethi_reference_t *) wrapper->value;
                if (reference)
                {
                    /* TOOD add neethi_reference_normalize
                       policy = (neethi_policy_t*) neethi_reference_normalize(
                       reference, env, policy_include->registry, AXIS2_FALSE);
                     */
                }
            }
            else
            {
                policy = (neethi_policy_t *) wrapper->value;
            }

            result = (result == NULL) ? (neethi_policy_t *) policy :
                (neethi_policy_t *) neethi_engine_merge(env, result, policy);
        }
    }

    policy_include->policy = result;
    return AXIS2_SUCCESS;
}

static neethi_policy_t *
axis2_policy_include_calculate_effective_policy(
    axis2_policy_include_t * policy_include,
    const axutil_env_t * env)
{
    neethi_policy_t *result;
    axis2_policy_include_t *parent = NULL;

    parent = axis2_policy_include_get_parent(policy_include, env);

    if (parent)
    {
        neethi_policy_t *parent_policy =
            axis2_policy_include_get_effective_policy(parent,
                                                      env);

        if (!parent_policy)
        {
            result = axis2_policy_include_get_policy(policy_include, env);

        }
        else
        {
            if (axis2_policy_include_get_policy(policy_include, env))
            {
                neethi_policy_t *temp_policy = NULL;
                parent_policy =
                    (neethi_policy_t *) neethi_engine_get_normalize(env,
                                                                    AXIS2_FALSE,
                                                                    parent_policy);
                temp_policy =
                    axis2_policy_include_get_policy(policy_include, env);
                temp_policy =
                    (neethi_policy_t *) neethi_engine_get_normalize(env,
                                                                    AXIS2_FALSE,
                                                                    temp_policy);
                /* result = (neethi_policy_t*) neethi_engine_merge(env, parent_policy,
                   axis2_policy_include_get_policy(policy_include, env)); */
                result =
                    (neethi_policy_t *) neethi_engine_merge(env, parent_policy,
                                                            temp_policy);

            }
            else
            {
                result = parent_policy;
            }
        }
    }
    else
    {
        result = axis2_policy_include_get_policy(policy_include, env);
    }

    return result;
    /*policy_include->effective_policy = result;
       return AXIS2_SUCCESS; */
}

AXIS2_EXTERN neethi_policy_t *AXIS2_CALL
axis2_policy_include_get_policy(
    axis2_policy_include_t * policy_include,
    const axutil_env_t * env)
{
    axis2_policy_include_calculate_policy(policy_include, env);
    return policy_include->policy;
}

AXIS2_EXTERN neethi_policy_t *AXIS2_CALL
axis2_policy_include_get_effective_policy(
    axis2_policy_include_t * policy_include,
    const axutil_env_t * env)
{
    /*if (policy_include->effective_policy)
       return policy_include->effective_policy;
     */
    return axis2_policy_include_calculate_effective_policy(policy_include, env);
    /*return policy_include->effective_policy; */
}

AXIS2_EXTERN axutil_array_list_t *AXIS2_CALL
axis2_policy_include_get_policy_elements(
    axis2_policy_include_t * policy_include,
    const axutil_env_t * env)
{
    axutil_array_list_t *policy_elements_list = NULL;
    axutil_hash_index_t *hi = NULL;
    void *val = NULL;

    policy_elements_list = axutil_array_list_create(env, 10);

    for (hi = axutil_hash_first(policy_include->wrapper_elements, env); hi;
         hi = axutil_hash_next(env, hi))
    {
        axis2_policy_wrapper_t *wrapper = NULL;

        axutil_hash_this(hi, NULL, NULL, &val);
        wrapper = (axis2_policy_wrapper_t *) val;

        if (wrapper)
        {
            axutil_array_list_add(policy_elements_list, env, wrapper->value);
        }
    }
    return policy_elements_list;
}

AXIS2_EXTERN axutil_array_list_t *AXIS2_CALL
axis2_policy_include_get_policy_elements_with_type(
    axis2_policy_include_t * policy_include,
    const axutil_env_t * env,
    int type)
{
    axutil_array_list_t *policy_elements_list = NULL;
    axutil_hash_index_t *hi = NULL;
    void *val = NULL;

    policy_elements_list = axutil_array_list_create(env, 10);

    for (hi = axutil_hash_first(policy_include->wrapper_elements, env); hi;
         hi = axutil_hash_next(env, hi))
    {
        axis2_policy_wrapper_t *wrapper = NULL;

        axutil_hash_this(hi, NULL, NULL, &val);
        wrapper = (axis2_policy_wrapper_t *) val;

        if (wrapper && wrapper->type == type)
        {
            axutil_array_list_add(policy_elements_list, env, wrapper->value);
        }
    }
    return policy_elements_list;
}

AXIS2_EXTERN axis2_status_t AXIS2_CALL
axis2_policy_include_register_policy(
    axis2_policy_include_t * policy_include,
    const axutil_env_t * env,
    axis2_char_t * key,
    neethi_policy_t * policy)
{
    if (policy_include->registry)
    {
        return neethi_registry_register(policy_include->registry, env, key,
                                        policy);
    }
    return AXIS2_FAILURE;
}

AXIS2_EXTERN neethi_policy_t *AXIS2_CALL
axis2_policy_include_get_policy_with_key(
    axis2_policy_include_t * policy_include,
    const axutil_env_t * env,
    axis2_char_t * key)
{
    if (policy_include->registry)
    {
        return neethi_registry_lookup(policy_include->registry, env, key);
    }
    return NULL;
}

AXIS2_EXTERN axis2_status_t AXIS2_CALL
axis2_policy_include_add_policy_element(
    axis2_policy_include_t * policy_include,
    const axutil_env_t * env,
    int type,
    neethi_policy_t * policy)
{
    AXIS2_ENV_CHECK(env, AXIS2_FAILURE);

    if (!neethi_policy_get_name(policy, env) &&
        !neethi_policy_get_id(policy, env))
    {
        axis2_char_t *uuid = axutil_uuid_gen(env);
        neethi_policy_set_id(policy, env, uuid);
        if (uuid)
        {
            AXIS2_FREE(env->allocator, uuid);
            uuid = NULL;
        }
    }

    if (policy_include->wrapper_elements)
    {
        axis2_policy_wrapper_t *wrapper = NULL;

        wrapper = (axis2_policy_wrapper_t *) AXIS2_MALLOC(env->allocator,
                                                          sizeof
                                                          (axis2_policy_wrapper_t));
        if (wrapper)
        {
            axis2_char_t *policy_name = NULL;
            wrapper->type = type;
            wrapper->value = policy;

            policy_name = neethi_policy_get_name(policy, env);
            if (!policy_name)
                policy_name = neethi_policy_get_id(policy, env);

            if (policy_name)
            {
                axutil_hash_set(policy_include->wrapper_elements, policy_name,
                                AXIS2_HASH_KEY_STRING, wrapper);
                if (policy_include->registry)
                {
                    neethi_registry_register(policy_include->registry,
                                             env, policy_name, policy);
                }
                return AXIS2_SUCCESS;
            }
        }
    }
    return AXIS2_FAILURE;
}

AXIS2_EXTERN axis2_status_t AXIS2_CALL
axis2_policy_include_add_policy_reference_element(
    axis2_policy_include_t * policy_include,
    const axutil_env_t * env,
    int type,
    neethi_reference_t * reference)
{
    axis2_policy_wrapper_t *wrapper = NULL;

    wrapper = (axis2_policy_wrapper_t *) AXIS2_MALLOC(env->allocator,
                                                      sizeof
                                                      (axis2_policy_wrapper_t));
    if (wrapper)
    {
        wrapper->type = type;
        wrapper->value = reference;
        axutil_hash_set(policy_include->wrapper_elements,
                        neethi_reference_get_uri(reference, env),
                        AXIS2_HASH_KEY_STRING, wrapper);
    }
    return AXIS2_SUCCESS;
}

AXIS2_EXTERN axis2_status_t AXIS2_CALL
axis2_policy_include_remove_policy_element(
    axis2_policy_include_t * policy_include,
    const axutil_env_t * env,
    axis2_char_t * policy_uri)
{
    if (policy_include->wrapper_elements)
    {
        axutil_hash_set(policy_include->wrapper_elements,
                        policy_uri, AXIS2_HASH_KEY_STRING, NULL);
    }
    if (policy_include->registry)
    {
        neethi_registry_register(policy_include->registry,
                                 env, policy_uri, NULL);
    }
    return AXIS2_SUCCESS;
}

AXIS2_EXTERN axis2_status_t AXIS2_CALL
axis2_policy_include_remove_all_policy_element(
    axis2_policy_include_t * policy_include,
    const axutil_env_t * env)
{
    if (policy_include->wrapper_elements)
    {
        axutil_hash_free(policy_include->wrapper_elements, env);
    }
    return AXIS2_SUCCESS;
}


<|start_filename|>src/core/clientapi/callback_recv.c<|end_filename|>

/*
 * 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.
 */

#include "axis2_callback_recv.h"
#include <axis2_const.h>
#include <axutil_hash.h>

struct axis2_callback_recv
{
    /** base context struct */
    axis2_msg_recv_t *base;
    axis2_bool_t base_deep_copy;

    /** callback map */
    axutil_hash_t *callback_map;
    axutil_thread_mutex_t *mutex;
};

static axis2_status_t AXIS2_CALL axis2_callback_recv_receive(
    axis2_msg_recv_t * msg_recv,
    const axutil_env_t * env,
    axis2_msg_ctx_t * msg_ctx,
    void *callback_recv_param);

AXIS2_EXTERN axis2_callback_recv_t *AXIS2_CALL
axis2_callback_recv_create(
    const axutil_env_t * env)
{
    axis2_callback_recv_t *callback_recv = NULL;

    AXIS2_ENV_CHECK(env, NULL);

    callback_recv = AXIS2_MALLOC(env->allocator, sizeof(axis2_callback_recv_t));

    if (!callback_recv)
    {
        AXIS2_ERROR_SET(env->error, AXIS2_ERROR_NO_MEMORY, AXIS2_FAILURE);
        AXIS2_LOG_ERROR(env->log, AXIS2_LOG_SI, "No memory. Cannot create callback receive.");
        return NULL;
    }

    callback_recv->base = NULL;
    callback_recv->base_deep_copy = AXIS2_TRUE;
    callback_recv->callback_map = NULL;
    callback_recv->mutex = NULL;

    callback_recv->base = axis2_msg_recv_create(env);
    if (!callback_recv->base)
    {
        axis2_callback_recv_free(callback_recv, env);
        return NULL;
    }
    axis2_msg_recv_set_derived(callback_recv->base, env, callback_recv);
    axis2_msg_recv_set_receive(callback_recv->base, env,
                               axis2_callback_recv_receive);

    callback_recv->callback_map = axutil_hash_make(env);
    if (!callback_recv->callback_map)
    {
        axis2_callback_recv_free(callback_recv, env);
        return NULL;
    }

    callback_recv->mutex = axutil_thread_mutex_create(env->allocator,
                                                      AXIS2_THREAD_MUTEX_DEFAULT);
    return callback_recv;
}

AXIS2_EXTERN axis2_msg_recv_t *AXIS2_CALL
axis2_callback_recv_get_base(
    axis2_callback_recv_t * callback_recv,
    const axutil_env_t * env)
{
    callback_recv->base_deep_copy = AXIS2_FALSE;
    return callback_recv->base;
}

AXIS2_EXTERN void AXIS2_CALL
axis2_callback_recv_free(
    axis2_callback_recv_t * callback_recv,
    const axutil_env_t * env)
{
    if (callback_recv->mutex)
    {
        axutil_thread_mutex_destroy(callback_recv->mutex);
    }

    if (callback_recv->callback_map)
    {
        axutil_hash_index_t *hi = NULL;
        const void *key = NULL;
        void *val = NULL;
        for (hi = axutil_hash_first(callback_recv->callback_map, env); hi;
             hi = axutil_hash_next(env, hi))
        {
            axutil_hash_this(hi, &key, NULL, &val);
            if (key)
                AXIS2_FREE(env->allocator, (char *) key);

        }

        axutil_hash_free(callback_recv->callback_map, env);
    }

    if (callback_recv->base && callback_recv->base_deep_copy)
    {
        axis2_msg_recv_free(callback_recv->base, env);
    }

    if (callback_recv)
    {
        AXIS2_FREE(env->allocator, callback_recv);
    }
}

AXIS2_EXTERN axis2_status_t AXIS2_CALL
axis2_callback_recv_add_callback(
    axis2_callback_recv_t * callback_recv,
    const axutil_env_t * env,
    const axis2_char_t * msg_id,
    axis2_callback_t * callback)
{
    if (msg_id)
    {
        axis2_char_t *mid = axutil_strdup(env, msg_id);
        axutil_hash_set(callback_recv->callback_map,
                        mid, AXIS2_HASH_KEY_STRING, callback);
    }
    return AXIS2_SUCCESS;
}

/* In the dual channel invocations client set a callback function to be invoked when a resonse
 * is received from the server. When the response is received by the listening port of the
 * listener manager, in the engine receive call the message is finally hit by callback receiver
 * which is an implementation of the axis2 message receiver. This is the function that is called
 * at that stage. The client set callback function is called from within here.
 */
static axis2_status_t AXIS2_CALL
axis2_callback_recv_receive(
    axis2_msg_recv_t * msg_recv,
    const axutil_env_t * env,
    axis2_msg_ctx_t * msg_ctx,
    void *callback_recv_param)
{
    axis2_callback_recv_t *callback_recv = NULL;
    axis2_relates_to_t *relates_to = NULL;
    axis2_msg_info_headers_t *msg_info_headers = NULL;

    callback_recv = axis2_msg_recv_get_derived(msg_recv, env);

    msg_info_headers = axis2_msg_ctx_get_msg_info_headers(msg_ctx, env);
    if (msg_info_headers)
    {
        relates_to =
            axis2_msg_info_headers_get_relates_to(msg_info_headers, env);
        if (relates_to)
        {
            const axis2_char_t *msg_id =
                axis2_relates_to_get_value(relates_to, env);
            if (msg_id)
            {
                axis2_async_result_t *result = NULL;
                axis2_callback_t *callback = (axis2_callback_t *)
                    axutil_hash_get(callback_recv->callback_map, msg_id,
                                    AXIS2_HASH_KEY_STRING);

                result = axis2_async_result_create(env, msg_ctx);
                if (callback && result)
                {
                    axis2_callback_invoke_on_complete(callback, env, result);
                    axis2_callback_set_complete(callback, env, AXIS2_TRUE);
                    axis2_msg_ctx_set_soap_envelope(msg_ctx, env, NULL);
                }

                axis2_async_result_free(result, env);
                if (callback && result)
                    return AXIS2_SUCCESS;
            }
        }
    }

    return AXIS2_FAILURE;
}



<|start_filename|>axiom/src/om/om_child_element_iterator.c<|end_filename|>

/*
 * 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.
 */

#include <axiom_child_element_iterator.h>

struct axiom_child_element_iterator
{
    axiom_node_t *current_child;
    axiom_node_t *last_child;
    axis2_bool_t next_called;
    axis2_bool_t remove_called;
};

AXIS2_EXTERN axiom_child_element_iterator_t *AXIS2_CALL
axiom_child_element_iterator_create(
    const axutil_env_t * env,
    axiom_node_t * current_child)
{
    axiom_child_element_iterator_t *iterator = NULL;
    AXIS2_ENV_CHECK(env, NULL);

    iterator = (axiom_child_element_iterator_t *) AXIS2_MALLOC(env->allocator,
                                                               sizeof
                                                               (axiom_child_element_iterator_t));

    if (!iterator)
    {
        AXIS2_ERROR_SET(env->error, AXIS2_ERROR_NO_MEMORY, AXIS2_FAILURE);
        return NULL;
    }

    iterator->current_child = current_child;
    iterator->last_child = NULL;

    iterator->next_called = AXIS2_FALSE;
    iterator->remove_called = AXIS2_FALSE;

    return iterator;
}

AXIS2_EXTERN void AXIS2_CALL axiom_child_element_iterator_free(
    void *iterator,
    const axutil_env_t * env)
{
    AXIS2_ENV_CHECK(env, AXIS2_FAILURE);
    AXIS2_FREE(env->allocator, iterator);
    return;
}

AXIS2_EXTERN axis2_status_t AXIS2_CALL axiom_child_element_iterator_remove(
    axiom_child_element_iterator_t * iterator,
    const axutil_env_t * env)
{
    AXIS2_ENV_CHECK(env, AXIS2_FAILURE);
    AXIS2_PARAM_CHECK(env->error, iterator, AXIS2_FAILURE);

    if (!(iterator->next_called))
        return AXIS2_FAILURE;
    if (iterator->remove_called)
        return AXIS2_FAILURE;

    iterator->remove_called = AXIS2_TRUE;

    if (!(iterator->last_child))
        return AXIS2_FAILURE;
    axiom_node_free_tree(iterator->last_child, env);
    iterator->last_child = NULL;
    return AXIS2_SUCCESS;
}

AXIS2_EXTERN axis2_bool_t AXIS2_CALL axiom_child_element_iterator_has_next(
    axiom_child_element_iterator_t * iterator,
    const axutil_env_t * env)
{
    AXIS2_ENV_CHECK(env, AXIS2_FAILURE);

    return (iterator->current_child) ? AXIS2_TRUE : AXIS2_FALSE;
}

AXIS2_EXTERN axiom_node_t *AXIS2_CALL axiom_child_element_iterator_next(
    axiom_child_element_iterator_t * iterator,
    const axutil_env_t * env)
{
    AXIS2_ENV_CHECK(env, NULL);

    iterator->next_called = AXIS2_TRUE;
    iterator->remove_called = AXIS2_FALSE;
    if (iterator->current_child)
    {
        iterator->last_child = iterator->current_child;
        do
        {
            iterator->current_child =
                axiom_node_get_next_sibling(iterator->current_child, env);

        }
        while (iterator->current_child &&
               (axiom_node_get_node_type(iterator->current_child, env)
                != AXIOM_ELEMENT));

        return iterator->last_child;
    }
    return NULL;
}


<|start_filename|>xdocs/api/html/group__axis2__flow__container.html<|end_filename|>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html><head><meta http-equiv="Content-Type" content="text/html;charset=UTF-8">
<title>Axis2/C: flow container</title>
<link href="doxygen.css" rel="stylesheet" type="text/css">
<link href="tabs.css" rel="stylesheet" type="text/css">
</head><body>
<!-- Generated by Doxygen 1.5.3 -->
<div class="tabs">
  <ul>
    <li><a href="index.html"><span>Main&nbsp;Page</span></a></li>
    <li><a href="modules.html"><span>Modules</span></a></li>
    <li><a href="annotated.html"><span>Classes</span></a></li>
    <li><a href="files.html"><span>Files</span></a></li>
    <li><a href="dirs.html"><span>Directories</span></a></li>
    <li><a href="pages.html"><span>Related&nbsp;Pages</span></a></li>
    <li><a href="examples.html"><span>Examples</span></a></li>
    <li>
      <form action="search.php" method="get">
        <table cellspacing="0" cellpadding="0" border="0">
          <tr>
            <td><label>&nbsp;<u>S</u>earch&nbsp;for&nbsp;</label></td>
            <td><input type="text" name="query" value="" size="20" accesskey="s"/></td>
          </tr>
        </table>
      </form>
    </li>
  </ul>
</div>
<h1>flow container<br>
<small>
[<a class="el" href="group__axis2__desc.html">description</a>]</small>
</h1><table border="0" cellpadding="0" cellspacing="0">
<tr><td></td></tr>
<tr><td colspan="2"><br><h2>Files</h2></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top">file &nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="axis2__flow__container_8h.html">axis2_flow_container.h</a></td></tr>

<tr><td colspan="2"><br><h2>Typedefs</h2></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top">typedef struct <br>
axis2_flow_container&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__axis2__flow__container.html#g645e6696dcbc315b06681604a150254f">axis2_flow_container_t</a></td></tr>

<tr><td colspan="2"><br><h2>Functions</h2></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top">AXIS2_EXTERN void&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__axis2__flow__container.html#ge766ce97e139207a8fe5b7a92b6003b2">axis2_flow_container_free</a> (<a class="el" href="group__axis2__flow__container.html#g645e6696dcbc315b06681604a150254f">axis2_flow_container_t</a> *flow_container, const <a class="el" href="structaxutil__env.html">axutil_env_t</a> *env)</td></tr>

<tr><td class="memItemLeft" nowrap align="right" valign="top">AXIS2_EXTERN <br>
<a class="el" href="group__axis2__flow.html#gd6d04c1c62cbffd6140a8df8fcbe5a09">axis2_flow_t</a> *&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__axis2__flow__container.html#g977c13c226bc8108499ef62d21ac903c">axis2_flow_container_get_in_flow</a> (const <a class="el" href="group__axis2__flow__container.html#g645e6696dcbc315b06681604a150254f">axis2_flow_container_t</a> *flow_container, const <a class="el" href="structaxutil__env.html">axutil_env_t</a> *env)</td></tr>

<tr><td class="memItemLeft" nowrap align="right" valign="top">AXIS2_EXTERN <br>
axis2_status_t&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__axis2__flow__container.html#g4b57cb3cef283e2f8243e2a85ed33553">axis2_flow_container_set_in_flow</a> (<a class="el" href="group__axis2__flow__container.html#g645e6696dcbc315b06681604a150254f">axis2_flow_container_t</a> *flow_container, const <a class="el" href="structaxutil__env.html">axutil_env_t</a> *env, <a class="el" href="group__axis2__flow.html#gd6d04c1c62cbffd6140a8df8fcbe5a09">axis2_flow_t</a> *in_flow)</td></tr>

<tr><td class="memItemLeft" nowrap align="right" valign="top">AXIS2_EXTERN <br>
<a class="el" href="group__axis2__flow.html#gd6d04c1c62cbffd6140a8df8fcbe5a09">axis2_flow_t</a> *&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__axis2__flow__container.html#gc469d08060b162390a2aca7c2bcc5d9e">axis2_flow_container_get_out_flow</a> (const <a class="el" href="group__axis2__flow__container.html#g645e6696dcbc315b06681604a150254f">axis2_flow_container_t</a> *flow_container, const <a class="el" href="structaxutil__env.html">axutil_env_t</a> *env)</td></tr>

<tr><td class="memItemLeft" nowrap align="right" valign="top">AXIS2_EXTERN <br>
axis2_status_t&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__axis2__flow__container.html#g2f295bb41ea59569db8fd3585f9c4ff5">axis2_flow_container_set_out_flow</a> (<a class="el" href="group__axis2__flow__container.html#g645e6696dcbc315b06681604a150254f">axis2_flow_container_t</a> *flow_container, const <a class="el" href="structaxutil__env.html">axutil_env_t</a> *env, <a class="el" href="group__axis2__flow.html#gd6d04c1c62cbffd6140a8df8fcbe5a09">axis2_flow_t</a> *out_flow)</td></tr>

<tr><td class="memItemLeft" nowrap align="right" valign="top">AXIS2_EXTERN <br>
<a class="el" href="group__axis2__flow.html#gd6d04c1c62cbffd6140a8df8fcbe5a09">axis2_flow_t</a> *&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__axis2__flow__container.html#g60301ffa364f8eb0a003bf87d2ac47a9">axis2_flow_container_get_fault_in_flow</a> (const <a class="el" href="group__axis2__flow__container.html#g645e6696dcbc315b06681604a150254f">axis2_flow_container_t</a> *flow_container, const <a class="el" href="structaxutil__env.html">axutil_env_t</a> *env)</td></tr>

<tr><td class="memItemLeft" nowrap align="right" valign="top">AXIS2_EXTERN <br>
axis2_status_t&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__axis2__flow__container.html#g361c90729eeb72306ef10b06ba41931d">axis2_flow_container_set_fault_in_flow</a> (<a class="el" href="group__axis2__flow__container.html#g645e6696dcbc315b06681604a150254f">axis2_flow_container_t</a> *flow_container, const <a class="el" href="structaxutil__env.html">axutil_env_t</a> *env, <a class="el" href="group__axis2__flow.html#gd6d04c1c62cbffd6140a8df8fcbe5a09">axis2_flow_t</a> *falut_in_flow)</td></tr>

<tr><td class="memItemLeft" nowrap align="right" valign="top">AXIS2_EXTERN <br>
<a class="el" href="group__axis2__flow.html#gd6d04c1c62cbffd6140a8df8fcbe5a09">axis2_flow_t</a> *&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__axis2__flow__container.html#g1f58a7584d692df17ec20c9f5d5cbf67">axis2_flow_container_get_fault_out_flow</a> (const <a class="el" href="group__axis2__flow__container.html#g645e6696dcbc315b06681604a150254f">axis2_flow_container_t</a> *flow_container, const <a class="el" href="structaxutil__env.html">axutil_env_t</a> *env)</td></tr>

<tr><td class="memItemLeft" nowrap align="right" valign="top">AXIS2_EXTERN <br>
axis2_status_t&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__axis2__flow__container.html#g872dda5815ce3274d01182479cfbec54">axis2_flow_container_set_fault_out_flow</a> (<a class="el" href="group__axis2__flow__container.html#g645e6696dcbc315b06681604a150254f">axis2_flow_container_t</a> *flow_container, const <a class="el" href="structaxutil__env.html">axutil_env_t</a> *env, <a class="el" href="group__axis2__flow.html#gd6d04c1c62cbffd6140a8df8fcbe5a09">axis2_flow_t</a> *fault_out_flow)</td></tr>

<tr><td class="memItemLeft" nowrap align="right" valign="top">AXIS2_EXTERN <br>
<a class="el" href="group__axis2__flow__container.html#g645e6696dcbc315b06681604a150254f">axis2_flow_container_t</a> *&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__axis2__flow__container.html#g7eae0c6ff23192492a0b046b3714eabd">axis2_flow_container_create</a> (const <a class="el" href="structaxutil__env.html">axutil_env_t</a> *env)</td></tr>

</table>
<hr><a name="_details"></a><h2>Detailed Description</h2>
Flow container is the encapsulating struct for all the four flows. The four flows possible are in flow, out flow, in fault flow and out fault flow. <hr><h2>Typedef Documentation</h2>
<a class="anchor" name="g645e6696dcbc315b06681604a150254f"></a><!-- doxytag: member="axis2_flow_container.h::axis2_flow_container_t" ref="g645e6696dcbc315b06681604a150254f" args="" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">typedef struct axis2_flow_container <a class="el" href="group__axis2__flow__container.html#g645e6696dcbc315b06681604a150254f">axis2_flow_container_t</a>          </td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
Type name for struct axis2_flow_container 
</div>
</div><p>
<hr><h2>Function Documentation</h2>
<a class="anchor" name="g7eae0c6ff23192492a0b046b3714eabd"></a><!-- doxytag: member="axis2_flow_container.h::axis2_flow_container_create" ref="g7eae0c6ff23192492a0b046b3714eabd" args="(const axutil_env_t *env)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">AXIS2_EXTERN <a class="el" href="group__axis2__flow__container.html#g645e6696dcbc315b06681604a150254f">axis2_flow_container_t</a>* axis2_flow_container_create           </td>
          <td>(</td>
          <td class="paramtype">const <a class="el" href="structaxutil__env.html">axutil_env_t</a> *&nbsp;</td>
          <td class="paramname"> <em>env</em>          </td>
          <td>&nbsp;)&nbsp;</td>
          <td width="100%"></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
Creates flow container struct. <dl compact><dt><b>Parameters:</b></dt><dd>
  <table border="0" cellspacing="2" cellpadding="0">
    <tr><td valign="top"></td><td valign="top"><em>env</em>&nbsp;</td><td>pointer to environment struct </td></tr>
  </table>
</dl>
<dl class="return" compact><dt><b>Returns:</b></dt><dd>pointer to newly created flow container </dd></dl>

</div>
</div><p>
<a class="anchor" name="ge766ce97e139207a8fe5b7a92b6003b2"></a><!-- doxytag: member="axis2_flow_container.h::axis2_flow_container_free" ref="ge766ce97e139207a8fe5b7a92b6003b2" args="(axis2_flow_container_t *flow_container, const axutil_env_t *env)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">AXIS2_EXTERN void axis2_flow_container_free           </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="group__axis2__flow__container.html#g645e6696dcbc315b06681604a150254f">axis2_flow_container_t</a> *&nbsp;</td>
          <td class="paramname"> <em>flow_container</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const <a class="el" href="structaxutil__env.html">axutil_env_t</a> *&nbsp;</td>
          <td class="paramname"> <em>env</em></td><td>&nbsp;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td><td width="100%"></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
Frees flow container. <dl compact><dt><b>Parameters:</b></dt><dd>
  <table border="0" cellspacing="2" cellpadding="0">
    <tr><td valign="top"></td><td valign="top"><em>flow_container</em>&nbsp;</td><td>pointer to flow container </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>env</em>&nbsp;</td><td>pointer to environment struct </td></tr>
  </table>
</dl>
<dl class="return" compact><dt><b>Returns:</b></dt><dd>void </dd></dl>

</div>
</div><p>
<a class="anchor" name="g60301ffa364f8eb0a003bf87d2ac47a9"></a><!-- doxytag: member="axis2_flow_container.h::axis2_flow_container_get_fault_in_flow" ref="g60301ffa364f8eb0a003bf87d2ac47a9" args="(const axis2_flow_container_t *flow_container, const axutil_env_t *env)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">AXIS2_EXTERN <a class="el" href="group__axis2__flow.html#gd6d04c1c62cbffd6140a8df8fcbe5a09">axis2_flow_t</a>* axis2_flow_container_get_fault_in_flow           </td>
          <td>(</td>
          <td class="paramtype">const <a class="el" href="group__axis2__flow__container.html#g645e6696dcbc315b06681604a150254f">axis2_flow_container_t</a> *&nbsp;</td>
          <td class="paramname"> <em>flow_container</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const <a class="el" href="structaxutil__env.html">axutil_env_t</a> *&nbsp;</td>
          <td class="paramname"> <em>env</em></td><td>&nbsp;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td><td width="100%"></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
Gets fault in flow. <dl compact><dt><b>Parameters:</b></dt><dd>
  <table border="0" cellspacing="2" cellpadding="0">
    <tr><td valign="top"></td><td valign="top"><em>flow_container</em>&nbsp;</td><td>pointer to flow container </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>env</em>&nbsp;</td><td>pointer to environment struct </td></tr>
  </table>
</dl>
<dl class="return" compact><dt><b>Returns:</b></dt><dd>fault in flow, returns a reference, not a cloned copy </dd></dl>

</div>
</div><p>
<a class="anchor" name="g1f58a7584d692df17ec20c9f5d5cbf67"></a><!-- doxytag: member="axis2_flow_container.h::axis2_flow_container_get_fault_out_flow" ref="g1f58a7584d692df17ec20c9f5d5cbf67" args="(const axis2_flow_container_t *flow_container, const axutil_env_t *env)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">AXIS2_EXTERN <a class="el" href="group__axis2__flow.html#gd6d04c1c62cbffd6140a8df8fcbe5a09">axis2_flow_t</a>* axis2_flow_container_get_fault_out_flow           </td>
          <td>(</td>
          <td class="paramtype">const <a class="el" href="group__axis2__flow__container.html#g645e6696dcbc315b06681604a150254f">axis2_flow_container_t</a> *&nbsp;</td>
          <td class="paramname"> <em>flow_container</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const <a class="el" href="structaxutil__env.html">axutil_env_t</a> *&nbsp;</td>
          <td class="paramname"> <em>env</em></td><td>&nbsp;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td><td width="100%"></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
Gets fault out flow. <dl compact><dt><b>Parameters:</b></dt><dd>
  <table border="0" cellspacing="2" cellpadding="0">
    <tr><td valign="top"></td><td valign="top"><em>flow_container</em>&nbsp;</td><td>pointer to flow container </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>env</em>&nbsp;</td><td>pointer to environment struct </td></tr>
  </table>
</dl>
<dl class="return" compact><dt><b>Returns:</b></dt><dd>fault out flow, returns a reference, not a cloned copy </dd></dl>

</div>
</div><p>
<a class="anchor" name="g977c13c226bc8108499ef62d21ac903c"></a><!-- doxytag: member="axis2_flow_container.h::axis2_flow_container_get_in_flow" ref="g977c13c226bc8108499ef62d21ac903c" args="(const axis2_flow_container_t *flow_container, const axutil_env_t *env)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">AXIS2_EXTERN <a class="el" href="group__axis2__flow.html#gd6d04c1c62cbffd6140a8df8fcbe5a09">axis2_flow_t</a>* axis2_flow_container_get_in_flow           </td>
          <td>(</td>
          <td class="paramtype">const <a class="el" href="group__axis2__flow__container.html#g645e6696dcbc315b06681604a150254f">axis2_flow_container_t</a> *&nbsp;</td>
          <td class="paramname"> <em>flow_container</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const <a class="el" href="structaxutil__env.html">axutil_env_t</a> *&nbsp;</td>
          <td class="paramname"> <em>env</em></td><td>&nbsp;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td><td width="100%"></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
Gets in flow. <dl compact><dt><b>Parameters:</b></dt><dd>
  <table border="0" cellspacing="2" cellpadding="0">
    <tr><td valign="top"></td><td valign="top"><em>flow_container</em>&nbsp;</td><td>pointer to flow container </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>env</em>&nbsp;</td><td>pointer to environment struct </td></tr>
  </table>
</dl>
<dl class="return" compact><dt><b>Returns:</b></dt><dd>pointer to in flow, returns a reference, not a cloned copy </dd></dl>

</div>
</div><p>
<a class="anchor" name="gc469d08060b162390a2aca7c2bcc5d9e"></a><!-- doxytag: member="axis2_flow_container.h::axis2_flow_container_get_out_flow" ref="gc469d08060b162390a2aca7c2bcc5d9e" args="(const axis2_flow_container_t *flow_container, const axutil_env_t *env)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">AXIS2_EXTERN <a class="el" href="group__axis2__flow.html#gd6d04c1c62cbffd6140a8df8fcbe5a09">axis2_flow_t</a>* axis2_flow_container_get_out_flow           </td>
          <td>(</td>
          <td class="paramtype">const <a class="el" href="group__axis2__flow__container.html#g645e6696dcbc315b06681604a150254f">axis2_flow_container_t</a> *&nbsp;</td>
          <td class="paramname"> <em>flow_container</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const <a class="el" href="structaxutil__env.html">axutil_env_t</a> *&nbsp;</td>
          <td class="paramname"> <em>env</em></td><td>&nbsp;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td><td width="100%"></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
Gets out flow. <dl compact><dt><b>Parameters:</b></dt><dd>
  <table border="0" cellspacing="2" cellpadding="0">
    <tr><td valign="top"></td><td valign="top"><em>flow_container</em>&nbsp;</td><td>pointer to flow container </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>env</em>&nbsp;</td><td>pointer to environment struct </td></tr>
  </table>
</dl>
<dl class="return" compact><dt><b>Returns:</b></dt><dd>out flow, returns a reference, not a cloned copy </dd></dl>

</div>
</div><p>
<a class="anchor" name="g361c90729eeb72306ef10b06ba41931d"></a><!-- doxytag: member="axis2_flow_container.h::axis2_flow_container_set_fault_in_flow" ref="g361c90729eeb72306ef10b06ba41931d" args="(axis2_flow_container_t *flow_container, const axutil_env_t *env, axis2_flow_t *falut_in_flow)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">AXIS2_EXTERN axis2_status_t axis2_flow_container_set_fault_in_flow           </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="group__axis2__flow__container.html#g645e6696dcbc315b06681604a150254f">axis2_flow_container_t</a> *&nbsp;</td>
          <td class="paramname"> <em>flow_container</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const <a class="el" href="structaxutil__env.html">axutil_env_t</a> *&nbsp;</td>
          <td class="paramname"> <em>env</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype"><a class="el" href="group__axis2__flow.html#gd6d04c1c62cbffd6140a8df8fcbe5a09">axis2_flow_t</a> *&nbsp;</td>
          <td class="paramname"> <em>falut_in_flow</em></td><td>&nbsp;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td><td width="100%"></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
Sets fault in flow. <dl compact><dt><b>Parameters:</b></dt><dd>
  <table border="0" cellspacing="2" cellpadding="0">
    <tr><td valign="top"></td><td valign="top"><em>flow_container</em>&nbsp;</td><td>pointer to flow container </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>env</em>&nbsp;</td><td>pointer to environment struct </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>falut_in_flow</em>&nbsp;</td><td>pointer to falut in flow, flow container assumes ownership of struct </td></tr>
  </table>
</dl>
<dl class="return" compact><dt><b>Returns:</b></dt><dd>AXIS2_SUCCESS on success, else AXIS2_FAILURE </dd></dl>

</div>
</div><p>
<a class="anchor" name="g872dda5815ce3274d01182479cfbec54"></a><!-- doxytag: member="axis2_flow_container.h::axis2_flow_container_set_fault_out_flow" ref="g872dda5815ce3274d01182479cfbec54" args="(axis2_flow_container_t *flow_container, const axutil_env_t *env, axis2_flow_t *fault_out_flow)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">AXIS2_EXTERN axis2_status_t axis2_flow_container_set_fault_out_flow           </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="group__axis2__flow__container.html#g645e6696dcbc315b06681604a150254f">axis2_flow_container_t</a> *&nbsp;</td>
          <td class="paramname"> <em>flow_container</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const <a class="el" href="structaxutil__env.html">axutil_env_t</a> *&nbsp;</td>
          <td class="paramname"> <em>env</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype"><a class="el" href="group__axis2__flow.html#gd6d04c1c62cbffd6140a8df8fcbe5a09">axis2_flow_t</a> *&nbsp;</td>
          <td class="paramname"> <em>fault_out_flow</em></td><td>&nbsp;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td><td width="100%"></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
Sets fault out flow. <dl compact><dt><b>Parameters:</b></dt><dd>
  <table border="0" cellspacing="2" cellpadding="0">
    <tr><td valign="top"></td><td valign="top"><em>flow_container</em>&nbsp;</td><td>pointer to flow container </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>env</em>&nbsp;</td><td>pointer to environment struct </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>fault_out_flow</em>&nbsp;</td><td>pointer to fault out flow, flow container assumes ownership of struct </td></tr>
  </table>
</dl>
<dl class="return" compact><dt><b>Returns:</b></dt><dd>AXIS2_SUCCESS on success, else AXIS2_FAILURE </dd></dl>

</div>
</div><p>
<a class="anchor" name="g4b57cb3cef283e2f8243e2a85ed33553"></a><!-- doxytag: member="axis2_flow_container.h::axis2_flow_container_set_in_flow" ref="g4b57cb3cef283e2f8243e2a85ed33553" args="(axis2_flow_container_t *flow_container, const axutil_env_t *env, axis2_flow_t *in_flow)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">AXIS2_EXTERN axis2_status_t axis2_flow_container_set_in_flow           </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="group__axis2__flow__container.html#g645e6696dcbc315b06681604a150254f">axis2_flow_container_t</a> *&nbsp;</td>
          <td class="paramname"> <em>flow_container</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const <a class="el" href="structaxutil__env.html">axutil_env_t</a> *&nbsp;</td>
          <td class="paramname"> <em>env</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype"><a class="el" href="group__axis2__flow.html#gd6d04c1c62cbffd6140a8df8fcbe5a09">axis2_flow_t</a> *&nbsp;</td>
          <td class="paramname"> <em>in_flow</em></td><td>&nbsp;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td><td width="100%"></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
Sets in flow. <dl compact><dt><b>Parameters:</b></dt><dd>
  <table border="0" cellspacing="2" cellpadding="0">
    <tr><td valign="top"></td><td valign="top"><em>flow_container</em>&nbsp;</td><td>pointer to flow container </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>env</em>&nbsp;</td><td>pointer to environment struct </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>in_flow</em>&nbsp;</td><td>pointer to in flow struct, flow container assumes ownership of struct </td></tr>
  </table>
</dl>
<dl class="return" compact><dt><b>Returns:</b></dt><dd>AXIS2_SUCCESS on success, else AXIS2_FAILURE </dd></dl>

</div>
</div><p>
<a class="anchor" name="g2f295bb41ea59569db8fd3585f9c4ff5"></a><!-- doxytag: member="axis2_flow_container.h::axis2_flow_container_set_out_flow" ref="g2f295bb41ea59569db8fd3585f9c4ff5" args="(axis2_flow_container_t *flow_container, const axutil_env_t *env, axis2_flow_t *out_flow)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">AXIS2_EXTERN axis2_status_t axis2_flow_container_set_out_flow           </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="group__axis2__flow__container.html#g645e6696dcbc315b06681604a150254f">axis2_flow_container_t</a> *&nbsp;</td>
          <td class="paramname"> <em>flow_container</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const <a class="el" href="structaxutil__env.html">axutil_env_t</a> *&nbsp;</td>
          <td class="paramname"> <em>env</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype"><a class="el" href="group__axis2__flow.html#gd6d04c1c62cbffd6140a8df8fcbe5a09">axis2_flow_t</a> *&nbsp;</td>
          <td class="paramname"> <em>out_flow</em></td><td>&nbsp;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td><td width="100%"></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
Sets out flow. <dl compact><dt><b>Parameters:</b></dt><dd>
  <table border="0" cellspacing="2" cellpadding="0">
    <tr><td valign="top"></td><td valign="top"><em>flow_container</em>&nbsp;</td><td>pointer to flow container </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>env</em>&nbsp;</td><td>pointer to environment struct </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>out_flow</em>&nbsp;</td><td>pointer to out flow, flow container assumes ownership of struct </td></tr>
  </table>
</dl>
<dl class="return" compact><dt><b>Returns:</b></dt><dd>AXIS2_SUCCESS on success, else AXIS2_FAILURE </dd></dl>

</div>
</div><p>
<hr size="1"><address style="text-align: right;"><small>Generated on Fri Apr 17 11:49:44 2009 for Axis2/C by&nbsp;
<a href="http://www.doxygen.org/index.html">
<img src="doxygen.png" alt="doxygen" align="middle" border="0"></a> 1.5.3 </small></address>
</body>
</html>


<|start_filename|>axiom/include/axiom_soap_envelope.h<|end_filename|>

/*
 * 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 AXIOM_SOAP_ENVELOPE_H
#define AXIOM_SOAP_ENVELOPE_H

/**
 * @file axiom_soap_envelope.h
 * @brief axiom_soap_envelope struct
 *        corresponds to root element of soap message
 */
#include <axutil_env.h>
#include <axiom_node.h>
#include <axiom_element.h>
#include <axiom_namespace.h>
#include <axutil_array_list.h>

#ifdef __cplusplus
extern "C"
{
#endif

    typedef struct axiom_soap_envelope axiom_soap_envelope_t;

    struct axiom_soap_body;
    struct axiom_soap_header;
    struct axiom_soap_header_block;
    struct axiom_soap_builder;

    /**
     * @defgroup axiom_soap_envelope soap envelope
     * @ingroup axiom_soap
     * @{
     */

    /**
     * create a soap_envelope with the given namespace prefix and uri
     * as the prefix and uri, The uri of ns should be valid soap uri
     * @param env Environment. MUST NOT be NULL
     * @param ns The OM namespace
     *
     * @return Created SOAP envelope
     */
    AXIS2_EXTERN axiom_soap_envelope_t *AXIS2_CALL
    axiom_soap_envelope_create(
        const axutil_env_t * env,
        axiom_namespace_t * ns);

    /**
     * create a soap_envelope with the given namespace prefix and uri is selected 
     * according to soap_version, soap version should be one of AXIOM_SOAP11
     * or AXIOM_SOAP12
     * @param env Environment. MUST NOT be NULL
     * @param prefix soap envelope prefix
     * if prefix is NULL default prefix is used
     *
     * @return a pointer to soap envelope struct
     */
    AXIS2_EXTERN axiom_soap_envelope_t *AXIS2_CALL
    axiom_soap_envelope_create_with_soap_version_prefix(
        const axutil_env_t * env,
        int soap_version,
        const axis2_char_t * prefix);

    /**
     * Create the default SOAP envelope
     * @param envelope OM SOAP Envelope
     * @param env Environment. MUST NOT be NULL
     *
     * @return Created SOAP envelope
     */
    AXIS2_EXTERN axiom_soap_envelope_t *AXIS2_CALL
    axiom_soap_envelope_create_default_soap_envelope(
        const axutil_env_t * env,
        int soap_version);

    /**
     * Create the default SOAP fault envelope
     * @param envelope OM SOAP Envelope
     * @param env Environment. MUST NOT be NULL
     *
     * @return Created SOAP fault envelope
     */
    AXIS2_EXTERN axiom_soap_envelope_t *AXIS2_CALL
    axiom_soap_envelope_create_default_soap_fault_envelope(
        const axutil_env_t * env,
        const axis2_char_t * code_value,
        const axis2_char_t * reason_text,
        const int soap_version,
        axutil_array_list_t * sub_codes,
        axiom_node_t * detail_node);

    /**
     * gets the soap header of this soap envelope
     * @param envelope soap envelope
     * @param env environment must not be null
     * @return soap header null it no header is present
     */
    AXIS2_EXTERN struct axiom_soap_header *AXIS2_CALL
    axiom_soap_envelope_get_header(
         axiom_soap_envelope_t * envelope,
         const axutil_env_t * env);

    /**
     * Returns the soap body associated with this soap envelope
     * @param envelope soap_envelope
     * @param env environment
     * @return soap_body
     */
    AXIS2_EXTERN struct axiom_soap_body *AXIS2_CALL
    axiom_soap_envelope_get_body(
         axiom_soap_envelope_t * envelope,
         const axutil_env_t * env);

    /**
     * serialize function , serialize the soap envelope 
     * IF the soap version it set to soap11 the soap fault part is converted 
     * to soap11 fault even is the underlying soap fault is of soap12 type
     * @param envelope soap envelope
     * @param env environment must not be null
     * @param om_output 
     * @param cache whether caching is enabled or not
     * @return status code , AXIS2_SUCCESS if success ,
     *                 AXIS2_FAILURE otherwise
     */
    AXIS2_EXTERN axis2_status_t AXIS2_CALL
    axiom_soap_envelope_serialize(
        axiom_soap_envelope_t * envelope,
        const axutil_env_t * env,
        axiom_output_t * om_output,
        axis2_bool_t cache);

    /**
     * Free function, This function deallocate all the resources associated 
     * with the soap_envelope
     * IT frees it's soap body and soap headers as well as the underlying
     * om node tree by calling axiom_node_free_tree function
     * @param envelope soap_envelope
     * @param env environment
     * @return VOID
     */
    AXIS2_EXTERN void AXIS2_CALL
    axiom_soap_envelope_free(
        axiom_soap_envelope_t * envelope,
        const axutil_env_t * env);

    /**
     * returns the om_node associated with this soap envelope
     * @param envelope soap_envelope
     * @param env environment
     * @return axiom_node_t pointer
     */
    AXIS2_EXTERN axiom_node_t *AXIS2_CALL
    axiom_soap_envelope_get_base_node(
        axiom_soap_envelope_t * envelope,
        const axutil_env_t * env);

    /** returns the soap version of this soap envelope
     * @param envelope soap_envelope
     * @param env environment must not be null
     * @return soap_version AXIOM_SOAP12 or AXIOM_SOAP11
     */
    AXIS2_EXTERN int AXIS2_CALL
    axiom_soap_envelope_get_soap_version(
        axiom_soap_envelope_t * envelope,
        const axutil_env_t * env);

    /** 
     * Return the soap envelope namespace
     * @param envelope 
     * @param env 
     * @return axiom_namespace_t 
     */
    AXIS2_EXTERN axiom_namespace_t *AXIS2_CALL
    axiom_soap_envelope_get_namespace(
        axiom_soap_envelope_t * envelope,
        const axutil_env_t * env);

    /**
     * Set the SOAP version 
     * @param envelope OM SOAP Envelope
     * @param env Environment. MUST NOT be NULL
     * @param soap_version, the SOAP version number. 
     *      Must be either AXIOM_SOAP11 or AXIOM_SOAP12
     *
     * @return AXIS2_SUCCESS on success else AXIS2_FAILURE
     */
    AXIS2_EXTERN axis2_status_t AXIS2_CALL
    axiom_soap_envelope_set_soap_version(
        axiom_soap_envelope_t * envelope,
        const axutil_env_t * env,
        int soap_version);

    /**
     * Increment the reference number for the created instance 
     * @param envelope OM SOAP Envelope
     * @param env Environment. MUST NOT be NULL
     *
     * @return AXIS2_SUCCESS on success else AXIS2_FAILURE
     */
    AXIS2_EXTERN axis2_status_t AXIS2_CALL
    axiom_soap_envelope_increment_ref(
        axiom_soap_envelope_t * envelope,
        const axutil_env_t * env);

    /**
     * get the soap builder of the envelope 
     * @param envelope OM SOAP Envelope
     * @param env Environment. MUST NOT be NULL
     *
     * @return soap_builder struct related to the envelope
     */
    AXIS2_EXTERN struct axiom_soap_builder *AXIS2_CALL
    axiom_soap_envelope_get_soap_builder(
        axiom_soap_envelope_t * envelope,
        const axutil_env_t * env);

    /** @} */

#ifdef __cplusplus
}
#endif

#endif                          /* AXIOM_SOAP_ENVELOPE_H */


<|start_filename|>xdocs/api/html/axis2__op__ctx_8h-source.html<|end_filename|>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html><head><meta http-equiv="Content-Type" content="text/html;charset=UTF-8">
<title>Axis2/C: axis2_op_ctx.h Source File</title>
<link href="doxygen.css" rel="stylesheet" type="text/css">
<link href="tabs.css" rel="stylesheet" type="text/css">
</head><body>
<!-- Generated by Doxygen 1.5.3 -->
<div class="tabs">
  <ul>
    <li><a href="index.html"><span>Main&nbsp;Page</span></a></li>
    <li><a href="modules.html"><span>Modules</span></a></li>
    <li><a href="annotated.html"><span>Classes</span></a></li>
    <li class="current"><a href="files.html"><span>Files</span></a></li>
    <li><a href="dirs.html"><span>Directories</span></a></li>
    <li><a href="pages.html"><span>Related&nbsp;Pages</span></a></li>
    <li><a href="examples.html"><span>Examples</span></a></li>
    <li>
      <form action="search.php" method="get">
        <table cellspacing="0" cellpadding="0" border="0">
          <tr>
            <td><label>&nbsp;<u>S</u>earch&nbsp;for&nbsp;</label></td>
            <td><input type="text" name="query" value="" size="20" accesskey="s"/></td>
          </tr>
        </table>
      </form>
    </li>
  </ul>
</div>
<div class="nav">
<a class="el" href="dir_f60961de8e5edc3b2658ef023e959e45.html">deploy</a>&nbsp;&raquo&nbsp;<a class="el" href="dir_6b4e91e54b7316b376882a6402adbf44.html">include</a>&nbsp;&raquo&nbsp;<a class="el" href="dir_df3a7695d5a9e696f30b948b566829e7.html">axis2-1.6.0</a></div>
<h1>axis2_op_ctx.h</h1><a href="axis2__op__ctx_8h.html">Go to the documentation of this file.</a><div class="fragment"><pre class="fragment"><a name="l00001"></a>00001 
<a name="l00002"></a>00002 <span class="comment">/*</span>
<a name="l00003"></a>00003 <span class="comment">* Licensed to the Apache Software Foundation (ASF) under one or more</span>
<a name="l00004"></a>00004 <span class="comment">* contributor license agreements.  See the NOTICE file distributed with</span>
<a name="l00005"></a>00005 <span class="comment">* this work for additional information regarding copyright ownership.</span>
<a name="l00006"></a>00006 <span class="comment">* The ASF licenses this file to You under the Apache License, Version 2.0</span>
<a name="l00007"></a>00007 <span class="comment">* (the "License"); you may not use this file except in compliance with</span>
<a name="l00008"></a>00008 <span class="comment">* the License.  You may obtain a copy of the License at</span>
<a name="l00009"></a>00009 <span class="comment">*</span>
<a name="l00010"></a>00010 <span class="comment">*      http://www.apache.org/licenses/LICENSE-2.0</span>
<a name="l00011"></a>00011 <span class="comment">*</span>
<a name="l00012"></a>00012 <span class="comment">* Unless required by applicable law or agreed to in writing, software</span>
<a name="l00013"></a>00013 <span class="comment">* distributed under the License is distributed on an "AS IS" BASIS,</span>
<a name="l00014"></a>00014 <span class="comment">* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.</span>
<a name="l00015"></a>00015 <span class="comment">* See the License for the specific language governing permissions and</span>
<a name="l00016"></a>00016 <span class="comment">* limitations under the License.</span>
<a name="l00017"></a>00017 <span class="comment">*/</span>
<a name="l00018"></a>00018 
<a name="l00019"></a>00019 <span class="preprocessor">#ifndef AXIS2_OP_CTX_H</span>
<a name="l00020"></a>00020 <span class="preprocessor"></span><span class="preprocessor">#define AXIS2_OP_CTX_H</span>
<a name="l00021"></a>00021 <span class="preprocessor"></span>
<a name="l00040"></a>00040 <span class="preprocessor">#include &lt;<a class="code" href="axis2__defines_8h.html" title="Useful definitions, which may have platform concerns.">axis2_defines.h</a>&gt;</span>
<a name="l00041"></a>00041 <span class="preprocessor">#include &lt;<a class="code" href="axutil__hash_8h.html" title="Axis2 Hash Tables.">axutil_hash.h</a>&gt;</span>
<a name="l00042"></a>00042 <span class="preprocessor">#include &lt;<a class="code" href="axutil__env_8h.html" title="Axis2 environment that acts as a container for error, log and memory allocator routines...">axutil_env.h</a>&gt;</span>
<a name="l00043"></a>00043 <span class="preprocessor">#include &lt;<a class="code" href="axis2__msg__ctx_8h.html">axis2_msg_ctx.h</a>&gt;</span>
<a name="l00044"></a>00044 <span class="preprocessor">#include &lt;axis2_op.h&gt;</span>
<a name="l00045"></a>00045 
<a name="l00046"></a>00046 <span class="preprocessor">#ifdef __cplusplus</span>
<a name="l00047"></a>00047 <span class="preprocessor"></span><span class="keyword">extern</span> <span class="stringliteral">"C"</span>
<a name="l00048"></a>00048 {
<a name="l00049"></a>00049 <span class="preprocessor">#endif</span>
<a name="l00050"></a>00050 <span class="preprocessor"></span>
<a name="l00052"></a><a class="code" href="group__axis2__op__ctx.html#ga1a3bbd22f2313e8da5bd031ea8190c9">00052</a>     <span class="keyword">typedef</span> <span class="keyword">struct </span>axis2_op_ctx <a class="code" href="group__axis2__op__ctx.html#ga1a3bbd22f2313e8da5bd031ea8190c9">axis2_op_ctx_t</a>;
<a name="l00053"></a>00053 
<a name="l00054"></a>00054     <span class="keyword">struct </span>axis2_svc_ctx;
<a name="l00055"></a>00055 
<a name="l00064"></a>00064     AXIS2_EXTERN <a class="code" href="group__axis2__op__ctx.html#ga1a3bbd22f2313e8da5bd031ea8190c9">axis2_op_ctx_t</a> *AXIS2_CALL
<a name="l00065"></a>00065     <a class="code" href="group__axis2__op__ctx.html#gddc4d7ced709336945c3f951561cc5fd">axis2_op_ctx_create</a>(
<a name="l00066"></a>00066         <span class="keyword">const</span> <a class="code" href="structaxutil__env.html" title="Axis2 Environment struct.">axutil_env_t</a> * env,
<a name="l00067"></a>00067         <span class="keyword">struct</span> axis2_op *op,
<a name="l00068"></a>00068         <span class="keyword">struct</span> axis2_svc_ctx *svc_ctx);
<a name="l00069"></a>00069 
<a name="l00076"></a>00076     AXIS2_EXTERN <a class="code" href="group__axis2__ctx.html#ga705ff779281577f08fef5330c23402c">axis2_ctx_t</a> *AXIS2_CALL
<a name="l00077"></a>00077     <a class="code" href="group__axis2__op__ctx.html#ge3983155246957addf3cf44128797b11">axis2_op_ctx_get_base</a>(
<a name="l00078"></a>00078         <span class="keyword">const</span> <a class="code" href="group__axis2__op__ctx.html#ga1a3bbd22f2313e8da5bd031ea8190c9">axis2_op_ctx_t</a> * op_ctx,
<a name="l00079"></a>00079         <span class="keyword">const</span> <a class="code" href="structaxutil__env.html" title="Axis2 Environment struct.">axutil_env_t</a> * env);
<a name="l00080"></a>00080 
<a name="l00087"></a>00087     AXIS2_EXTERN <span class="keywordtype">void</span> AXIS2_CALL
<a name="l00088"></a>00088     <a class="code" href="group__axis2__op__ctx.html#gc2a1dddeaf5f17bae65a8f26baef933b">axis2_op_ctx_free</a>(
<a name="l00089"></a>00089         <span class="keyword">struct</span> axis2_op_ctx *op_ctx,
<a name="l00090"></a>00090         <span class="keyword">const</span> <a class="code" href="structaxutil__env.html" title="Axis2 Environment struct.">axutil_env_t</a> * env);
<a name="l00091"></a>00091 
<a name="l00100"></a>00100     AXIS2_EXTERN axis2_status_t AXIS2_CALL
<a name="l00101"></a>00101     <a class="code" href="group__axis2__op__ctx.html#g53622e5d4c37263fc6261e2b08f9116e">axis2_op_ctx_init</a>(
<a name="l00102"></a>00102         <span class="keyword">struct</span> axis2_op_ctx *op_ctx,
<a name="l00103"></a>00103         <span class="keyword">const</span> <a class="code" href="structaxutil__env.html" title="Axis2 Environment struct.">axutil_env_t</a> * env,
<a name="l00104"></a>00104         <span class="keyword">struct</span> axis2_conf *conf);
<a name="l00105"></a>00105 
<a name="l00112"></a>00112     AXIS2_EXTERN <span class="keyword">struct </span>axis2_op *AXIS2_CALL
<a name="l00113"></a>00113     <a class="code" href="group__axis2__op__ctx.html#g41e85fb871ff0b60c48f8794d85c3270">axis2_op_ctx_get_op</a>(
<a name="l00114"></a>00114         <span class="keyword">const</span> <a class="code" href="group__axis2__op__ctx.html#ga1a3bbd22f2313e8da5bd031ea8190c9">axis2_op_ctx_t</a> * op_ctx,
<a name="l00115"></a>00115         <span class="keyword">const</span> <a class="code" href="structaxutil__env.html" title="Axis2 Environment struct.">axutil_env_t</a> * env);
<a name="l00116"></a>00116 
<a name="l00124"></a>00124     AXIS2_EXTERN <span class="keyword">struct </span>axis2_svc_ctx *AXIS2_CALL
<a name="l00125"></a>00125     <a class="code" href="group__axis2__op__ctx.html#g2c28e9321f282f79b6aa7b5575171fd5">axis2_op_ctx_get_parent</a>(
<a name="l00126"></a>00126         <span class="keyword">const</span> <a class="code" href="group__axis2__op__ctx.html#ga1a3bbd22f2313e8da5bd031ea8190c9">axis2_op_ctx_t</a> * op_ctx,
<a name="l00127"></a>00127         <span class="keyword">const</span> <a class="code" href="structaxutil__env.html" title="Axis2 Environment struct.">axutil_env_t</a> * env);
<a name="l00128"></a>00128 
<a name="l00137"></a>00137     AXIS2_EXTERN axis2_status_t AXIS2_CALL
<a name="l00138"></a>00138     <a class="code" href="group__axis2__op__ctx.html#gd9f9beba0ac1e3e0cfafe4ee0fd9ffb8">axis2_op_ctx_add_msg_ctx</a>(
<a name="l00139"></a>00139         <span class="keyword">struct</span> axis2_op_ctx *op_ctx,
<a name="l00140"></a>00140         <span class="keyword">const</span> <a class="code" href="structaxutil__env.html" title="Axis2 Environment struct.">axutil_env_t</a> * env,
<a name="l00141"></a>00141         <a class="code" href="group__axis2__msg__ctx.html#g160acae289ac39cb49fa625ffd88e410">axis2_msg_ctx_t</a> * msg_ctx);
<a name="l00142"></a>00142 
<a name="l00152"></a>00152     AXIS2_EXTERN <a class="code" href="group__axis2__msg__ctx.html#g160acae289ac39cb49fa625ffd88e410">axis2_msg_ctx_t</a> *AXIS2_CALL
<a name="l00153"></a>00153     <a class="code" href="group__axis2__op__ctx.html#g0f79838f18e6689ea44620975092280f">axis2_op_ctx_get_msg_ctx</a>(
<a name="l00154"></a>00154         <span class="keyword">const</span> <a class="code" href="group__axis2__op__ctx.html#ga1a3bbd22f2313e8da5bd031ea8190c9">axis2_op_ctx_t</a> * op_ctx,
<a name="l00155"></a>00155         <span class="keyword">const</span> <a class="code" href="structaxutil__env.html" title="Axis2 Environment struct.">axutil_env_t</a> * env,
<a name="l00156"></a>00156         <span class="keyword">const</span> axis2_wsdl_msg_labels_t message_id);
<a name="l00157"></a>00157 
<a name="l00166"></a>00166     AXIS2_EXTERN axis2_bool_t AXIS2_CALL
<a name="l00167"></a>00167     <a class="code" href="group__axis2__op__ctx.html#gb22ed4938df18e52dacc388e89a140d0">axis2_op_ctx_get_is_complete</a>(
<a name="l00168"></a>00168         <span class="keyword">const</span> <a class="code" href="group__axis2__op__ctx.html#ga1a3bbd22f2313e8da5bd031ea8190c9">axis2_op_ctx_t</a> * op_ctx,
<a name="l00169"></a>00169         <span class="keyword">const</span> <a class="code" href="structaxutil__env.html" title="Axis2 Environment struct.">axutil_env_t</a> * env);
<a name="l00170"></a>00170 
<a name="l00181"></a>00181     AXIS2_EXTERN axis2_status_t AXIS2_CALL
<a name="l00182"></a>00182     <a class="code" href="group__axis2__op__ctx.html#g36163f4ddb00ed3a319f42a1bd1700fc">axis2_op_ctx_set_complete</a>(
<a name="l00183"></a>00183         <span class="keyword">struct</span> axis2_op_ctx *op_ctx,
<a name="l00184"></a>00184         <span class="keyword">const</span> <a class="code" href="structaxutil__env.html" title="Axis2 Environment struct.">axutil_env_t</a> * env,
<a name="l00185"></a>00185         axis2_bool_t is_complete);
<a name="l00186"></a>00186 
<a name="l00194"></a>00194     AXIS2_EXTERN axis2_status_t AXIS2_CALL
<a name="l00195"></a>00195     <a class="code" href="group__axis2__op__ctx.html#g7ae8623d063eed0d7120d49f025bc60b">axis2_op_ctx_cleanup</a>(
<a name="l00196"></a>00196         <span class="keyword">struct</span> axis2_op_ctx *op_ctx,
<a name="l00197"></a>00197         <span class="keyword">const</span> <a class="code" href="structaxutil__env.html" title="Axis2 Environment struct.">axutil_env_t</a> * env);
<a name="l00198"></a>00198 
<a name="l00207"></a>00207     AXIS2_EXTERN axis2_status_t AXIS2_CALL
<a name="l00208"></a>00208     <a class="code" href="group__axis2__op__ctx.html#g89c08b1de5351278b0fa7f429e8c5c4d">axis2_op_ctx_set_parent</a>(
<a name="l00209"></a>00209         <span class="keyword">struct</span> axis2_op_ctx *op_ctx,
<a name="l00210"></a>00210         <span class="keyword">const</span> <a class="code" href="structaxutil__env.html" title="Axis2 Environment struct.">axutil_env_t</a> * env,
<a name="l00211"></a>00211         <span class="keyword">struct</span> axis2_svc_ctx *svc_ctx);
<a name="l00212"></a>00212 
<a name="l00219"></a>00219     AXIS2_EXTERN <a class="code" href="group__axis2__msg__ctx.html#g160acae289ac39cb49fa625ffd88e410">axis2_msg_ctx_t</a> **AXIS2_CALL
<a name="l00220"></a>00220     <a class="code" href="group__axis2__op__ctx.html#g58997985678d28231a97a605967467bc">axis2_op_ctx_get_msg_ctx_map</a>(
<a name="l00221"></a>00221         <span class="keyword">const</span> <a class="code" href="group__axis2__op__ctx.html#ga1a3bbd22f2313e8da5bd031ea8190c9">axis2_op_ctx_t</a> * op_ctx,
<a name="l00222"></a>00222         <span class="keyword">const</span> <a class="code" href="structaxutil__env.html" title="Axis2 Environment struct.">axutil_env_t</a> * env);
<a name="l00223"></a>00223 
<a name="l00232"></a>00232     AXIS2_EXTERN axis2_status_t AXIS2_CALL
<a name="l00233"></a>00233     <a class="code" href="group__axis2__op__ctx.html#ge742cc55efddb40eddffae46ba11125b">axis2_op_ctx_set_response_written</a>(
<a name="l00234"></a>00234         <a class="code" href="group__axis2__op__ctx.html#ga1a3bbd22f2313e8da5bd031ea8190c9">axis2_op_ctx_t</a> * op_ctx,
<a name="l00235"></a>00235         <span class="keyword">const</span> <a class="code" href="structaxutil__env.html" title="Axis2 Environment struct.">axutil_env_t</a> * env,
<a name="l00236"></a>00236         <span class="keyword">const</span> axis2_bool_t response_written);
<a name="l00237"></a>00237 
<a name="l00244"></a>00244     AXIS2_EXTERN axis2_bool_t AXIS2_CALL
<a name="l00245"></a>00245     <a class="code" href="group__axis2__op__ctx.html#g875d36b0b70b77d84f99969da22e462f">axis2_op_ctx_get_response_written</a>(
<a name="l00246"></a>00246         <span class="keyword">const</span> <a class="code" href="group__axis2__op__ctx.html#ga1a3bbd22f2313e8da5bd031ea8190c9">axis2_op_ctx_t</a> * op_ctx,
<a name="l00247"></a>00247         <span class="keyword">const</span> <a class="code" href="structaxutil__env.html" title="Axis2 Environment struct.">axutil_env_t</a> * env);
<a name="l00248"></a>00248 
<a name="l00255"></a>00255     AXIS2_EXTERN <span class="keywordtype">void</span> AXIS2_CALL
<a name="l00256"></a>00256     <a class="code" href="group__axis2__op__ctx.html#ga465e10f016efca08e1beecbcb0c98ce">axis2_op_ctx_destroy_mutex</a>(
<a name="l00257"></a>00257         <span class="keyword">struct</span> axis2_op_ctx *op_ctx,
<a name="l00258"></a>00258         <span class="keyword">const</span> <a class="code" href="structaxutil__env.html" title="Axis2 Environment struct.">axutil_env_t</a> * env);
<a name="l00259"></a>00259 
<a name="l00268"></a>00268     AXIS2_EXTERN axis2_bool_t AXIS2_CALL
<a name="l00269"></a>00269     <a class="code" href="group__axis2__op__ctx.html#g016e131eb3c18c134e81f48f0639eae5">axis2_op_ctx_is_in_use</a>(
<a name="l00270"></a>00270         <span class="keyword">const</span> <a class="code" href="group__axis2__op__ctx.html#ga1a3bbd22f2313e8da5bd031ea8190c9">axis2_op_ctx_t</a> * op_ctx,
<a name="l00271"></a>00271         <span class="keyword">const</span> <a class="code" href="structaxutil__env.html" title="Axis2 Environment struct.">axutil_env_t</a> * env);
<a name="l00272"></a>00272 
<a name="l00282"></a>00282     AXIS2_EXTERN axis2_status_t AXIS2_CALL
<a name="l00283"></a>00283     <a class="code" href="group__axis2__op__ctx.html#g6b8ae393777089b614b4a771720ce8dd">axis2_op_ctx_set_in_use</a>(
<a name="l00284"></a>00284         <span class="keyword">struct</span> axis2_op_ctx *op_ctx,
<a name="l00285"></a>00285         <span class="keyword">const</span> <a class="code" href="structaxutil__env.html" title="Axis2 Environment struct.">axutil_env_t</a> * env,
<a name="l00286"></a>00286         axis2_bool_t is_in_use);
<a name="l00287"></a>00287 
<a name="l00296"></a>00296     AXIS2_EXTERN axis2_status_t AXIS2_CALL
<a name="l00297"></a>00297     <a class="code" href="group__axis2__op__ctx.html#g20a35685dc844e4c81aac603a8121dcb">axis2_op_ctx_increment_ref</a>(
<a name="l00298"></a>00298         <a class="code" href="group__axis2__op__ctx.html#ga1a3bbd22f2313e8da5bd031ea8190c9">axis2_op_ctx_t</a> * op_ctx,
<a name="l00299"></a>00299         <span class="keyword">const</span> <a class="code" href="structaxutil__env.html" title="Axis2 Environment struct.">axutil_env_t</a> * env);
<a name="l00300"></a>00300 
<a name="l00303"></a>00303 <span class="preprocessor">#ifdef __cplusplus</span>
<a name="l00304"></a>00304 <span class="preprocessor"></span>}
<a name="l00305"></a>00305 <span class="preprocessor">#endif</span>
<a name="l00306"></a>00306 <span class="preprocessor"></span>
<a name="l00307"></a>00307 <span class="preprocessor">#endif                          </span><span class="comment">/* AXIS2_OP_CTX_H */</span>
</pre></div><hr size="1"><address style="text-align: right;"><small>Generated on Fri Apr 17 11:49:42 2009 for Axis2/C by&nbsp;
<a href="http://www.doxygen.org/index.html">
<img src="doxygen.png" alt="doxygen" align="middle" border="0"></a> 1.5.3 </small></address>
</body>
</html>


<|start_filename|>xdocs/api/html/group__axiom__mime__parser.html<|end_filename|>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html><head><meta http-equiv="Content-Type" content="text/html;charset=UTF-8">
<title>Axis2/C: Flow</title>
<link href="doxygen.css" rel="stylesheet" type="text/css">
<link href="tabs.css" rel="stylesheet" type="text/css">
</head><body>
<!-- Generated by Doxygen 1.5.3 -->
<div class="tabs">
  <ul>
    <li><a href="index.html"><span>Main&nbsp;Page</span></a></li>
    <li><a href="modules.html"><span>Modules</span></a></li>
    <li><a href="annotated.html"><span>Classes</span></a></li>
    <li><a href="files.html"><span>Files</span></a></li>
    <li><a href="dirs.html"><span>Directories</span></a></li>
    <li><a href="pages.html"><span>Related&nbsp;Pages</span></a></li>
    <li><a href="examples.html"><span>Examples</span></a></li>
    <li>
      <form action="search.php" method="get">
        <table cellspacing="0" cellpadding="0" border="0">
          <tr>
            <td><label>&nbsp;<u>S</u>earch&nbsp;for&nbsp;</label></td>
            <td><input type="text" name="query" value="" size="20" accesskey="s"/></td>
          </tr>
        </table>
      </form>
    </li>
  </ul>
</div>
<h1>Flow</h1><table border="0" cellpadding="0" cellspacing="0">
<tr><td></td></tr>
<tr><td colspan="2"><br><h2>Functions</h2></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top">AXIS2_EXTERN <br>
axis2_status_t&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__axiom__mime__parser.html#gdc5c7fd17d2589e7bcb82db28a2ee2c7">axiom_mime_parser_parse_for_soap</a> (axiom_mime_parser_t *mime_parser, const <a class="el" href="structaxutil__env.html">axutil_env_t</a> *env, AXIS2_READ_INPUT_CALLBACK callback, void *callback_ctx, axis2_char_t *mime_boundary)</td></tr>

<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="gad740844c9b6e98882ecdd80d5059b73"></a><!-- doxytag: member="axiom_mime_parser::axiom_mime_parser_parse_for_attachments" ref="gad740844c9b6e98882ecdd80d5059b73" args="(axiom_mime_parser_t *mime_parser, const axutil_env_t *env, AXIS2_READ_INPUT_CALLBACK callback, void *callback_ctx, axis2_char_t *mime_boundary, void *user_param)" -->
AXIS2_EXTERN <br>
<a class="el" href="group__axutil__hash.html#gb2d7d14db2de92a101573f44421ac12a">axutil_hash_t</a> *&nbsp;</td><td class="memItemRight" valign="bottom"><b>axiom_mime_parser_parse_for_attachments</b> (axiom_mime_parser_t *mime_parser, const <a class="el" href="structaxutil__env.html">axutil_env_t</a> *env, AXIS2_READ_INPUT_CALLBACK callback, void *callback_ctx, axis2_char_t *mime_boundary, void *user_param)</td></tr>

<tr><td class="memItemLeft" nowrap align="right" valign="top">AXIS2_EXTERN <br>
<a class="el" href="group__axutil__hash.html#gb2d7d14db2de92a101573f44421ac12a">axutil_hash_t</a> *&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__axiom__mime__parser.html#g617b19ac339bcd891757054a089c3f84">axiom_mime_parser_get_mime_parts_map</a> (axiom_mime_parser_t *mime_parser, const <a class="el" href="structaxutil__env.html">axutil_env_t</a> *env)</td></tr>

<tr><td class="memItemLeft" nowrap align="right" valign="top">AXIS2_EXTERN void&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__axiom__mime__parser.html#g0d0558064a7fca5445a4840be45b2600">axiom_mime_parser_free</a> (axiom_mime_parser_t *mime_parser, const <a class="el" href="structaxutil__env.html">axutil_env_t</a> *env)</td></tr>

<tr><td class="memItemLeft" nowrap align="right" valign="top">AXIS2_EXTERN int&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__axiom__mime__parser.html#g40a67e95af791703fa91d7b796ea89a2">axiom_mime_parser_get_soap_body_len</a> (axiom_mime_parser_t *mime_parser, const <a class="el" href="structaxutil__env.html">axutil_env_t</a> *env)</td></tr>

<tr><td class="memItemLeft" nowrap align="right" valign="top">AXIS2_EXTERN <br>
axis2_char_t *&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__axiom__mime__parser.html#g6550688f1ddcc45d11363947f441e2be">axiom_mime_parser_get_soap_body_str</a> (axiom_mime_parser_t *mime_parser, const <a class="el" href="structaxutil__env.html">axutil_env_t</a> *env)</td></tr>

<tr><td class="memItemLeft" nowrap align="right" valign="top">AXIS2_EXTERN <br>
axiom_mime_parser_t *&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__axiom__mime__parser.html#g05b3c82c78a50ffe9d1d05fffdc4c2ee">axiom_mime_parser_create</a> (const <a class="el" href="structaxutil__env.html">axutil_env_t</a> *env)</td></tr>

<tr><td class="memItemLeft" nowrap align="right" valign="top">AXIS2_EXTERN void&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__axiom__mime__parser.html#gbe1b6ea790d1a5315b0b46df54e26a2e">axiom_mime_parser_set_buffer_size</a> (axiom_mime_parser_t *mime_parser, const <a class="el" href="structaxutil__env.html">axutil_env_t</a> *env, int size)</td></tr>

<tr><td class="memItemLeft" nowrap align="right" valign="top">AXIS2_EXTERN void&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__axiom__mime__parser.html#g5673d9d89ee85532d51e16756c712e68">axiom_mime_parser_set_max_buffers</a> (axiom_mime_parser_t *mime_parser, const <a class="el" href="structaxutil__env.html">axutil_env_t</a> *env, int num)</td></tr>

<tr><td class="memItemLeft" nowrap align="right" valign="top">AXIS2_EXTERN void&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__axiom__mime__parser.html#gd8edc291c3b20e88329ee6e077ca3a0c">axiom_mime_parser_set_attachment_dir</a> (axiom_mime_parser_t *mime_parser, const <a class="el" href="structaxutil__env.html">axutil_env_t</a> *env, axis2_char_t *attachment_dir)</td></tr>

<tr><td class="memItemLeft" nowrap align="right" valign="top">AXIS2_EXTERN void&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__axiom__mime__parser.html#g6440482e9821e7bd06be17382568f9b2">axiom_mime_parser_set_caching_callback_name</a> (axiom_mime_parser_t *mime_parser, const <a class="el" href="structaxutil__env.html">axutil_env_t</a> *env, axis2_char_t *callback_name)</td></tr>

<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="g75c483098bcbb01cacff9dbfc3e41e01"></a><!-- doxytag: member="axiom_mime_parser::axiom_mime_parser_set_mime_boundary" ref="g75c483098bcbb01cacff9dbfc3e41e01" args="(axiom_mime_parser_t *mime_parser, const axutil_env_t *env, axis2_char_t *mime_boundary)" -->
AXIS2_EXTERN void&nbsp;</td><td class="memItemRight" valign="bottom"><b>axiom_mime_parser_set_mime_boundary</b> (axiom_mime_parser_t *mime_parser, const <a class="el" href="structaxutil__env.html">axutil_env_t</a> *env, axis2_char_t *mime_boundary)</td></tr>

<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="g08f37696836e054ba7fef00f7bf1a401"></a><!-- doxytag: member="axiom_mime_parser::axiom_mime_parser_get_mime_boundary" ref="g08f37696836e054ba7fef00f7bf1a401" args="(axiom_mime_parser_t *mime_parser, const axutil_env_t *env)" -->
AXIS2_EXTERN <br>
axis2_char_t *&nbsp;</td><td class="memItemRight" valign="bottom"><b>axiom_mime_parser_get_mime_boundary</b> (axiom_mime_parser_t *mime_parser, const <a class="el" href="structaxutil__env.html">axutil_env_t</a> *env)</td></tr>

</table>
<hr><h2>Function Documentation</h2>
<a class="anchor" name="g05b3c82c78a50ffe9d1d05fffdc4c2ee"></a><!-- doxytag: member="axiom_mime_parser.h::axiom_mime_parser_create" ref="g05b3c82c78a50ffe9d1d05fffdc4c2ee" args="(const axutil_env_t *env)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">AXIS2_EXTERN axiom_mime_parser_t* axiom_mime_parser_create           </td>
          <td>(</td>
          <td class="paramtype">const <a class="el" href="structaxutil__env.html">axutil_env_t</a> *&nbsp;</td>
          <td class="paramname"> <em>env</em>          </td>
          <td>&nbsp;)&nbsp;</td>
          <td width="100%"></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
Create a mime parser struct <dl compact><dt><b>Parameters:</b></dt><dd>
  <table border="0" cellspacing="2" cellpadding="0">
    <tr><td valign="top"></td><td valign="top"><em>env</em>&nbsp;</td><td>Environment. MUST NOT be NULL. </td></tr>
  </table>
</dl>
<dl class="return" compact><dt><b>Returns:</b></dt><dd>created mime parser </dd></dl>

</div>
</div><p>
<a class="anchor" name="g0d0558064a7fca5445a4840be45b2600"></a><!-- doxytag: member="axiom_mime_parser.h::axiom_mime_parser_free" ref="g0d0558064a7fca5445a4840be45b2600" args="(axiom_mime_parser_t *mime_parser, const axutil_env_t *env)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">AXIS2_EXTERN void axiom_mime_parser_free           </td>
          <td>(</td>
          <td class="paramtype">axiom_mime_parser_t *&nbsp;</td>
          <td class="paramname"> <em>mime_parser</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const <a class="el" href="structaxutil__env.html">axutil_env_t</a> *&nbsp;</td>
          <td class="paramname"> <em>env</em></td><td>&nbsp;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td><td width="100%"></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
Deallocate memory. Free the mime parser struct <dl compact><dt><b>Parameters:</b></dt><dd>
  <table border="0" cellspacing="2" cellpadding="0">
    <tr><td valign="top"></td><td valign="top"><em>mime_parser</em>&nbsp;</td><td>the pointer for the mime parser struct </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>env</em>&nbsp;</td><td>Environment. MUST NOT be NULL. </td></tr>
  </table>
</dl>
<dl class="return" compact><dt><b>Returns:</b></dt><dd>VOID </dd></dl>

</div>
</div><p>
<a class="anchor" name="g617b19ac339bcd891757054a089c3f84"></a><!-- doxytag: member="axiom_mime_parser.h::axiom_mime_parser_get_mime_parts_map" ref="g617b19ac339bcd891757054a089c3f84" args="(axiom_mime_parser_t *mime_parser, const axutil_env_t *env)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">AXIS2_EXTERN <a class="el" href="group__axutil__hash.html#gb2d7d14db2de92a101573f44421ac12a">axutil_hash_t</a>* axiom_mime_parser_get_mime_parts_map           </td>
          <td>(</td>
          <td class="paramtype">axiom_mime_parser_t *&nbsp;</td>
          <td class="paramname"> <em>mime_parser</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const <a class="el" href="structaxutil__env.html">axutil_env_t</a> *&nbsp;</td>
          <td class="paramname"> <em>env</em></td><td>&nbsp;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td><td width="100%"></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
Returns mime parts as a hash map <dl compact><dt><b>Parameters:</b></dt><dd>
  <table border="0" cellspacing="2" cellpadding="0">
    <tr><td valign="top"></td><td valign="top"><em>mime_parser</em>&nbsp;</td><td>the pointer for the mime parser struct </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>env</em>&nbsp;</td><td>Environment. MUST NOT be NULL. </td></tr>
  </table>
</dl>
<dl class="return" compact><dt><b>Returns:</b></dt><dd>mime parts as a hash map </dd></dl>

</div>
</div><p>
<a class="anchor" name="g40a67e95af791703fa91d7b796ea89a2"></a><!-- doxytag: member="axiom_mime_parser.h::axiom_mime_parser_get_soap_body_len" ref="g40a67e95af791703fa91d7b796ea89a2" args="(axiom_mime_parser_t *mime_parser, const axutil_env_t *env)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">AXIS2_EXTERN int axiom_mime_parser_get_soap_body_len           </td>
          <td>(</td>
          <td class="paramtype">axiom_mime_parser_t *&nbsp;</td>
          <td class="paramname"> <em>mime_parser</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const <a class="el" href="structaxutil__env.html">axutil_env_t</a> *&nbsp;</td>
          <td class="paramname"> <em>env</em></td><td>&nbsp;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td><td width="100%"></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
Returns the length of the SOAP Body <dl compact><dt><b>Parameters:</b></dt><dd>
  <table border="0" cellspacing="2" cellpadding="0">
    <tr><td valign="top"></td><td valign="top"><em>mime_parser</em>&nbsp;</td><td>the pointer for the mime parser struct </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>env</em>&nbsp;</td><td>Environment. MUST NOT be NULL. </td></tr>
  </table>
</dl>
<dl class="return" compact><dt><b>Returns:</b></dt><dd>the length of the SOAP Body </dd></dl>

</div>
</div><p>
<a class="anchor" name="g6550688f1ddcc45d11363947f441e2be"></a><!-- doxytag: member="axiom_mime_parser.h::axiom_mime_parser_get_soap_body_str" ref="g6550688f1ddcc45d11363947f441e2be" args="(axiom_mime_parser_t *mime_parser, const axutil_env_t *env)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">AXIS2_EXTERN axis2_char_t* axiom_mime_parser_get_soap_body_str           </td>
          <td>(</td>
          <td class="paramtype">axiom_mime_parser_t *&nbsp;</td>
          <td class="paramname"> <em>mime_parser</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const <a class="el" href="structaxutil__env.html">axutil_env_t</a> *&nbsp;</td>
          <td class="paramname"> <em>env</em></td><td>&nbsp;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td><td width="100%"></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
Get the SOAP Body as a string <dl compact><dt><b>Parameters:</b></dt><dd>
  <table border="0" cellspacing="2" cellpadding="0">
    <tr><td valign="top"></td><td valign="top"><em>mime_parser</em>&nbsp;</td><td>the pointer for the mime parser struct </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>env</em>&nbsp;</td><td>Environment. MUST NOT be NULL. </td></tr>
  </table>
</dl>
<dl class="return" compact><dt><b>Returns:</b></dt><dd>the SOAP Body as a string </dd></dl>

</div>
</div><p>
<a class="anchor" name="gdc5c7fd17d2589e7bcb82db28a2ee2c7"></a><!-- doxytag: member="axiom_mime_parser.h::axiom_mime_parser_parse_for_soap" ref="gdc5c7fd17d2589e7bcb82db28a2ee2c7" args="(axiom_mime_parser_t *mime_parser, const axutil_env_t *env, AXIS2_READ_INPUT_CALLBACK callback, void *callback_ctx, axis2_char_t *mime_boundary)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">AXIS2_EXTERN axis2_status_t axiom_mime_parser_parse_for_soap           </td>
          <td>(</td>
          <td class="paramtype">axiom_mime_parser_t *&nbsp;</td>
          <td class="paramname"> <em>mime_parser</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const <a class="el" href="structaxutil__env.html">axutil_env_t</a> *&nbsp;</td>
          <td class="paramname"> <em>env</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">AXIS2_READ_INPUT_CALLBACK&nbsp;</td>
          <td class="paramname"> <em>callback</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">void *&nbsp;</td>
          <td class="paramname"> <em>callback_ctx</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">axis2_char_t *&nbsp;</td>
          <td class="paramname"> <em>mime_boundary</em></td><td>&nbsp;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td><td width="100%"></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
Parse and returns mime parts as a hash map <dl compact><dt><b>Parameters:</b></dt><dd>
  <table border="0" cellspacing="2" cellpadding="0">
    <tr><td valign="top"></td><td valign="top"><em>mime_parser</em>&nbsp;</td><td>the pointer for the mime parser struct </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>env</em>&nbsp;</td><td>Environment. MUST NOT be NULL. </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>callback_ctx</em>&nbsp;</td><td>the callback context </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>mime_boundary</em>&nbsp;</td><td>the MIME boundary </td></tr>
  </table>
</dl>
<dl class="return" compact><dt><b>Returns:</b></dt><dd>mime parts as a hash map </dd></dl>

</div>
</div><p>
<a class="anchor" name="gd8edc291c3b20e88329ee6e077ca3a0c"></a><!-- doxytag: member="axiom_mime_parser.h::axiom_mime_parser_set_attachment_dir" ref="gd8edc291c3b20e88329ee6e077ca3a0c" args="(axiom_mime_parser_t *mime_parser, const axutil_env_t *env, axis2_char_t *attachment_dir)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">AXIS2_EXTERN void axiom_mime_parser_set_attachment_dir           </td>
          <td>(</td>
          <td class="paramtype">axiom_mime_parser_t *&nbsp;</td>
          <td class="paramname"> <em>mime_parser</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const <a class="el" href="structaxutil__env.html">axutil_env_t</a> *&nbsp;</td>
          <td class="paramname"> <em>env</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">axis2_char_t *&nbsp;</td>
          <td class="paramname"> <em>attachment_dir</em></td><td>&nbsp;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td><td width="100%"></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
Set attachment dir specified in the axis2.xml <dl compact><dt><b>Parameters:</b></dt><dd>
  <table border="0" cellspacing="2" cellpadding="0">
    <tr><td valign="top"></td><td valign="top"><em>mime_parser</em>&nbsp;</td><td>the pointer for the mime parser struct </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>env</em>&nbsp;</td><td>Environment. MUST NOT be NULL. </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>attachment_dir</em>&nbsp;</td><td>is string containg the directory path </td></tr>
  </table>
</dl>
<dl class="return" compact><dt><b>Returns:</b></dt><dd>VOID </dd></dl>

</div>
</div><p>
<a class="anchor" name="gbe1b6ea790d1a5315b0b46df54e26a2e"></a><!-- doxytag: member="axiom_mime_parser.h::axiom_mime_parser_set_buffer_size" ref="gbe1b6ea790d1a5315b0b46df54e26a2e" args="(axiom_mime_parser_t *mime_parser, const axutil_env_t *env, int size)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">AXIS2_EXTERN void axiom_mime_parser_set_buffer_size           </td>
          <td>(</td>
          <td class="paramtype">axiom_mime_parser_t *&nbsp;</td>
          <td class="paramname"> <em>mime_parser</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const <a class="el" href="structaxutil__env.html">axutil_env_t</a> *&nbsp;</td>
          <td class="paramname"> <em>env</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">int&nbsp;</td>
          <td class="paramname"> <em>size</em></td><td>&nbsp;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td><td width="100%"></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
Set the size of the chink buffer <dl compact><dt><b>Parameters:</b></dt><dd>
  <table border="0" cellspacing="2" cellpadding="0">
    <tr><td valign="top"></td><td valign="top"><em>mime_parser</em>&nbsp;</td><td>the pointer for the mime parser struct </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>env</em>&nbsp;</td><td>Environment. MUST NOT be NULL. </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>size</em>&nbsp;</td><td>the size of the chink buffer </td></tr>
  </table>
</dl>
<dl class="return" compact><dt><b>Returns:</b></dt><dd>mime parts as a hash map </dd></dl>

</div>
</div><p>
<a class="anchor" name="g6440482e9821e7bd06be17382568f9b2"></a><!-- doxytag: member="axiom_mime_parser.h::axiom_mime_parser_set_caching_callback_name" ref="g6440482e9821e7bd06be17382568f9b2" args="(axiom_mime_parser_t *mime_parser, const axutil_env_t *env, axis2_char_t *callback_name)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">AXIS2_EXTERN void axiom_mime_parser_set_caching_callback_name           </td>
          <td>(</td>
          <td class="paramtype">axiom_mime_parser_t *&nbsp;</td>
          <td class="paramname"> <em>mime_parser</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const <a class="el" href="structaxutil__env.html">axutil_env_t</a> *&nbsp;</td>
          <td class="paramname"> <em>env</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">axis2_char_t *&nbsp;</td>
          <td class="paramname"> <em>callback_name</em></td><td>&nbsp;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td><td width="100%"></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
Set Caching callback name specified in the axis2.xml <dl compact><dt><b>Parameters:</b></dt><dd>
  <table border="0" cellspacing="2" cellpadding="0">
    <tr><td valign="top"></td><td valign="top"><em>mime_parser</em>&nbsp;</td><td>the pointer for the mime parser struct </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>env</em>&nbsp;</td><td>Environment. MUST NOT be NULL. </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>callback_name</em>&nbsp;</td><td>is string containg the dll path </td></tr>
  </table>
</dl>
<dl class="return" compact><dt><b>Returns:</b></dt><dd>VOID </dd></dl>

</div>
</div><p>
<a class="anchor" name="g5673d9d89ee85532d51e16756c712e68"></a><!-- doxytag: member="axiom_mime_parser.h::axiom_mime_parser_set_max_buffers" ref="g5673d9d89ee85532d51e16756c712e68" args="(axiom_mime_parser_t *mime_parser, const axutil_env_t *env, int num)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">AXIS2_EXTERN void axiom_mime_parser_set_max_buffers           </td>
          <td>(</td>
          <td class="paramtype">axiom_mime_parser_t *&nbsp;</td>
          <td class="paramname"> <em>mime_parser</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const <a class="el" href="structaxutil__env.html">axutil_env_t</a> *&nbsp;</td>
          <td class="paramname"> <em>env</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">int&nbsp;</td>
          <td class="paramname"> <em>num</em></td><td>&nbsp;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td><td width="100%"></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
Set maximum number of chunk buffers <dl compact><dt><b>Parameters:</b></dt><dd>
  <table border="0" cellspacing="2" cellpadding="0">
    <tr><td valign="top"></td><td valign="top"><em>mime_parser</em>&nbsp;</td><td>the pointer for the mime parser struct </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>env</em>&nbsp;</td><td>Environment. MUST NOT be NULL. </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>num</em>&nbsp;</td><td>maximum number of chunk buffers </td></tr>
  </table>
</dl>
<dl class="return" compact><dt><b>Returns:</b></dt><dd>VOID </dd></dl>

</div>
</div><p>
<hr size="1"><address style="text-align: right;"><small>Generated on Fri Apr 17 11:49:44 2009 for Axis2/C by&nbsp;
<a href="http://www.doxygen.org/index.html">
<img src="doxygen.png" alt="doxygen" align="middle" border="0"></a> 1.5.3 </small></address>
</body>
</html>


<|start_filename|>axiom/src/om/om_stax_builder.c<|end_filename|>

/*
 * 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.
 */

#include <axiom_stax_builder.h>
#include <axiom_element.h>
#include <axiom_text.h>
#include <axiom_processing_instruction.h>
#include <axiom_comment.h>
#include <axutil_string.h>
#include <axiom_xml_writer.h>
#include <axiom_doctype.h>
#include "axiom_node_internal.h"
#include "axiom_stax_builder_internal.h"

struct axiom_stax_builder
{

    /** pull parser instance used by the om_builder */
    axiom_xml_reader_t *parser;

    /** last node the om_builder found */
    axiom_node_t *lastnode;

    axiom_node_t *root_node;

    /** document associated with the om_builder */
    axiom_document_t *document;

    /** done building the document? */
    axis2_bool_t done;

    /** parser was accessed? */
    axis2_bool_t parser_accessed;

    /** caching enabled? */
    axis2_bool_t cache;

    /** current event */
    int current_event;
	/** Indicate the  current element level. */
    int element_level;
    axutil_hash_t *declared_namespaces;
};

AXIS2_EXTERN axiom_stax_builder_t *AXIS2_CALL
axiom_stax_builder_create(
    const axutil_env_t * env,
    axiom_xml_reader_t * parser)
{
    axiom_stax_builder_t *om_builder = NULL;
    AXIS2_ENV_CHECK(env, NULL);
    AXIS2_PARAM_CHECK(env->error, parser, NULL);
	
	
    om_builder = (axiom_stax_builder_t *) AXIS2_MALLOC(env->allocator,
                                                       sizeof
                                                       (axiom_stax_builder_t));

    if (!om_builder)
    {
        AXIS2_ERROR_SET(env->error, AXIS2_ERROR_NO_MEMORY, AXIS2_FAILURE);
        return NULL;
    }

    om_builder->cache = AXIS2_TRUE;
    om_builder->parser_accessed = AXIS2_FALSE;
    om_builder->done = AXIS2_FALSE;
    om_builder->lastnode = NULL;
    om_builder->document = NULL;
    om_builder->parser = parser;
    om_builder->current_event = -1;
    om_builder->root_node = NULL;
    om_builder->element_level = 0;

    om_builder->declared_namespaces = axutil_hash_make(env);

    om_builder->document = axiom_document_create(env, NULL, om_builder);
    if (!om_builder->document)
    {
        AXIS2_FREE(env->allocator, om_builder);
        return NULL;
    }

    return om_builder;
}

axis2_status_t
axiom_stax_builder_process_attributes(
    axiom_stax_builder_t * om_builder,
    const axutil_env_t * env,
    axiom_node_t * element_node)
{
    int i = 0;
    int attribute_count;
    axiom_attribute_t *attribute = NULL;
    axiom_namespace_t *ns = NULL;
    axis2_char_t *uri = NULL;
    axis2_char_t *prefix = NULL;
    axis2_char_t *attr_name = NULL;
    axis2_char_t *attr_value = NULL;
    axutil_string_t *attr_name_str = NULL;
    axutil_string_t *attr_value_str = NULL;

    axis2_status_t status = AXIS2_SUCCESS;

    AXIS2_ENV_CHECK(env, AXIS2_FAILURE);
    AXIS2_PARAM_CHECK(env->error, element_node, AXIS2_FAILURE);

    attribute_count = axiom_xml_reader_get_attribute_count(om_builder->parser,
                                                           env);
    for (i = 1; i <= attribute_count; i++)
    {
        axiom_element_t *temp_ele = NULL;

        uri =
            axiom_xml_reader_get_attribute_namespace_by_number(om_builder->
                                                               parser, env, i);

        prefix =
            axiom_xml_reader_get_attribute_prefix_by_number(om_builder->parser,
                                                            env, i);
        if (uri)
        {
            if (axutil_strcmp(uri, "") != 0)
            {
                axiom_element_t *om_ele = NULL;
                om_ele =
                    (axiom_element_t *)
                    axiom_node_get_data_element(element_node, env);
                if (om_ele)
                {
                    ns = axiom_element_find_namespace(om_ele,
                                                      env, element_node, uri,
                                                      prefix);

                    /* newly added to handle "xml:*" attributes" (axutil_strcmp(prefix, "xml") == 0) && */
                    if (!ns)
                    {
                        ns = axiom_namespace_create(env, uri, prefix);
                    }
                }
            }
        }

        attr_name =
            axiom_xml_reader_get_attribute_name_by_number(om_builder->parser,
                                                          env, i);

#ifdef WIN32
        attr_name_str = axutil_string_create(env, attr_name);
        axiom_xml_reader_xml_free(om_builder->parser, env, attr_name);
#else
        attr_name_str = axutil_string_create_assume_ownership(env, &attr_name);
#endif

        attr_value =
            axiom_xml_reader_get_attribute_value_by_number(om_builder->parser,
                                                           env, i);

#ifdef WIN32
        attr_value_str = axutil_string_create(env, attr_value);
        axiom_xml_reader_xml_free(om_builder->parser, env, attr_value);
#else
        attr_value_str =
            axutil_string_create_assume_ownership(env, &attr_value);
#endif

        if (attr_name)
        {
            attribute =
                axiom_attribute_create_str(env, attr_name_str, attr_value_str,
                                           ns);
            if (!attribute)
            {
                return AXIS2_FAILURE;
            }

            temp_ele =
                (axiom_element_t *) axiom_node_get_data_element(element_node,
                                                                env);
            if (temp_ele)
            {
                status = axiom_element_add_attribute(temp_ele,
                                                     env, attribute,
                                                     element_node);
            }
        }
        if (uri)
        {
#ifdef AXIS2_LIBXML2_ENABLED
            axiom_xml_reader_xml_free(om_builder->parser, env, uri);
#else
            AXIS2_FREE(env->allocator,uri);
#endif
        }
        if (prefix)
        {
#ifdef AXIS2_LIBXML2_ENABLED
            axiom_xml_reader_xml_free(om_builder->parser, env, prefix);
#else
            AXIS2_FREE(env->allocator,prefix);
#endif
        }
        if (attr_name_str)
        {
            axutil_string_free(attr_name_str, env);
        }
        if (attr_value_str)
        {
            axutil_string_free(attr_value_str, env);
        }
        ns = NULL;
    }
    return status;
}

axiom_node_t *
axiom_stax_builder_create_om_text(
    axiom_stax_builder_t * om_builder,
    const axutil_env_t * env)
{
    axis2_char_t *temp_value = NULL;
    axutil_string_t *temp_value_str = NULL;
    axiom_node_t *node = NULL;

    AXIS2_ENV_CHECK(env, NULL);

    if (!om_builder->lastnode)
    {
        AXIS2_ERROR_SET(env->error,
                        AXIS2_ERROR_INVALID_BUILDER_STATE_LAST_NODE_NULL,
                        AXIS2_FAILURE);
        return NULL;
    }
    temp_value = axiom_xml_reader_get_value(om_builder->parser, env);
    if (!temp_value)
    {
        AXIS2_ERROR_SET(env->error, AXIS2_ERROR_XML_READER_VALUE_NULL,
                        AXIS2_FAILURE);
        return NULL;
    }

#ifdef WIN32
    temp_value_str = axutil_string_create(env, temp_value);
    axiom_xml_reader_xml_free(om_builder->parser, env, temp_value);
#else
    temp_value_str = axutil_string_create_assume_ownership(env, &temp_value);
#endif
    if (!temp_value_str)
    {
        /* axutil_string_create will have set an error number */
        return NULL;
    }

    if (axiom_node_is_complete(om_builder->lastnode, env))
    {
        axiom_text_create_str(env,
                              axiom_node_get_parent(om_builder->lastnode, env),
                              temp_value_str, &node);
    }
    else
    {
        axiom_text_create_str(env, om_builder->lastnode, temp_value_str, &node);
    }
    if (node)
    {
        axiom_node_set_complete(node, env, AXIS2_TRUE);
        om_builder->lastnode = node;
    }

    axutil_string_free(temp_value_str, env);
    return node;
}

AXIS2_EXTERN axis2_status_t AXIS2_CALL
axiom_stax_builder_discard_current_element(
    axiom_stax_builder_t * om_builder,
    const axutil_env_t * env)
{
    axiom_node_t *element = NULL;
    axiom_node_t *prev_node = NULL;
    axiom_node_t *parent = NULL;

    AXIS2_ENV_CHECK(env, AXIS2_FAILURE);

    element = om_builder->lastnode;

    if (axiom_node_is_complete(element, env) || !(om_builder->cache))
    {
        AXIS2_ERROR_SET(env->error,
                        AXIS2_ERROR_INVALID_BUILDER_STATE_CANNOT_DISCARD,
                        AXIS2_FAILURE);
        return AXIS2_FAILURE;
    }

    om_builder->cache = AXIS2_FALSE;
    do
    {
        while (axiom_xml_reader_next(om_builder->parser, env)
               != AXIOM_XML_READER_END_ELEMENT);
    }
    while (!(axiom_node_is_complete(element, env)));

    /*All children of this element is pulled now */

    prev_node = axiom_node_get_previous_sibling(element, env);
    if (prev_node)
    {
        axiom_node_free_tree(axiom_node_get_next_sibling(prev_node, env), env);
        axiom_node_set_next_sibling(prev_node, env, NULL);
    }
    else
    {
        parent = axiom_node_get_parent(element, env);
        axiom_node_free_tree(axiom_node_get_first_child(parent, env), env);
        axiom_node_set_first_child(parent, env, NULL);
        om_builder->lastnode = parent;
    }
    om_builder->cache = AXIS2_TRUE;

    return AXIS2_SUCCESS;
}

axis2_status_t
axiom_stax_builder_process_namespaces(
    axiom_stax_builder_t * om_builder,
    const axutil_env_t * env,
    axiom_node_t * node,
    int is_soap_element)
{
    axis2_status_t status = AXIS2_SUCCESS;
    int namespace_count = 0;
    axiom_namespace_t *om_ns = NULL;
    /* temp values */
    axis2_char_t *temp_prefix = NULL;
    axis2_char_t *temp_ns_prefix = NULL;
    axis2_char_t *temp_ns_uri = NULL;
    axutil_string_t *temp_ns_prefix_str = NULL;
    axutil_string_t *temp_ns_uri_str = NULL;

    int i = 0;

    AXIS2_ENV_CHECK(env, AXIS2_FAILURE);

    namespace_count =
        axiom_xml_reader_get_namespace_count(om_builder->parser, env);
    for (i = 1; i <= namespace_count; i++)
    {
        temp_ns_prefix =
            axiom_xml_reader_get_namespace_prefix_by_number(om_builder->parser,
                                                            env, i);

        temp_ns_uri =
            axiom_xml_reader_get_namespace_uri_by_number(om_builder->parser,
                                                         env, i);

#ifdef WIN32
        temp_ns_prefix_str = axutil_string_create(env, temp_ns_prefix);
#else
        temp_ns_prefix_str =
            axutil_string_create_assume_ownership(env, &temp_ns_prefix);
#endif

#ifdef WIN32
        temp_ns_uri_str = axutil_string_create(env, temp_ns_uri);
#else
        temp_ns_uri_str =
            axutil_string_create_assume_ownership(env, &temp_ns_uri);
#endif
        if (!temp_ns_prefix || axutil_strcmp(temp_ns_prefix, "xmlns") == 0)
        {

            /** default namespace case */

            /** !temp_ns_prefix is for guththila */
            axiom_element_t *om_ele = NULL;

            if (temp_ns_prefix_str)
            {
                axutil_string_free(temp_ns_prefix_str, env);
                temp_ns_prefix_str = NULL;
            }

            temp_ns_prefix_str = axutil_string_create(env, "");
            om_ele = (axiom_element_t *) axiom_node_get_data_element(node, env);

            om_ns =
                axiom_namespace_create_str(env, temp_ns_uri_str,
                                           temp_ns_prefix_str);
            if (!om_ns || !om_ele)
            {
                return AXIS2_FAILURE;
            }

            status = axiom_element_declare_namespace(om_ele, env, node, om_ns);

            if (!status)
            {
                axiom_namespace_free(om_ns, env);
                om_ns = NULL;
            }
        }
        else
        {
            axiom_element_t *om_ele = NULL;
            axis2_char_t *prefix = NULL;
            om_ele = (axiom_element_t *) axiom_node_get_data_element(node, env);

            om_ns =
                axiom_namespace_create_str(env, temp_ns_uri_str,
                                           temp_ns_prefix_str);
            if (!om_ns || !om_ele)
            {
                return AXIS2_FAILURE;
            }

            status =
                axiom_element_declare_namespace_assume_param_ownership(om_ele,
                                                                       env,
                                                                       om_ns);
            prefix = axiom_namespace_get_prefix(om_ns, env);
            axutil_hash_set(om_builder->declared_namespaces,
                            prefix, AXIS2_HASH_KEY_STRING, om_ns);
        }

        axutil_string_free(temp_ns_uri_str, env);
        axutil_string_free(temp_ns_prefix_str, env);
#ifdef WIN32
         axiom_xml_reader_xml_free(om_builder->parser, env, temp_ns_uri);
        axiom_xml_reader_xml_free(om_builder->parser, env, temp_ns_prefix);
#endif
        if (!om_ns)
        {
            /* something went wrong */
            return AXIS2_FAILURE;
        }
    }
    /* set own namespace */
    temp_prefix = axiom_xml_reader_get_prefix(om_builder->parser, env);
    if (temp_prefix)
    {
        om_ns = axutil_hash_get(om_builder->declared_namespaces,
                                temp_prefix, AXIS2_HASH_KEY_STRING);

        if (om_ns)
        {
            axiom_element_t *om_ele = NULL;
            om_ele = (axiom_element_t *) axiom_node_get_data_element(node, env);
            if (om_ele)
            {
                axiom_element_set_namespace_assume_param_ownership(om_ele, env,
                                                                   om_ns);
            }
        }
        else
        {
            AXIS2_ERROR_SET(env->error,
                            AXIS2_ERROR_INVALID_DOCUMENT_STATE_UNDEFINED_NAMESPACE,
                            AXIS2_FAILURE);
            return AXIS2_FAILURE;
        }

        #ifdef AXIS2_LIBXML2_ENABLED
            axiom_xml_reader_xml_free(om_builder->parser, env, temp_prefix);
        #else
            AXIS2_FREE(env->allocator,temp_prefix);
        #endif
    }

    return status;
}

axiom_node_t *
axiom_stax_builder_create_om_element(
    axiom_stax_builder_t * om_builder,
    const axutil_env_t * env,
    axis2_bool_t is_empty)
{
    axiom_node_t *element_node = NULL;
    axiom_element_t *om_ele = NULL;
    axis2_char_t *temp_localname = NULL;
    axutil_string_t *temp_localname_str = NULL;

    AXIS2_ENV_CHECK(env, NULL);
    AXIS2_PARAM_CHECK(env->error, om_builder, NULL);

    temp_localname = axiom_xml_reader_get_name(om_builder->parser, env);

    if (!temp_localname)
    {
        AXIS2_ERROR_SET(env->error, AXIS2_ERROR_XML_READER_ELEMENT_NULL,
                        AXIS2_FAILURE);
        return NULL;
    }

#ifdef WIN32
    temp_localname_str = axutil_string_create(env, temp_localname);
    axiom_xml_reader_xml_free(om_builder->parser, env, temp_localname);
#else
    temp_localname_str =
        axutil_string_create_assume_ownership(env, &temp_localname);
#endif

    om_builder->element_level++;

    if (!(om_builder->lastnode))
    {
        om_ele =
            axiom_element_create_str(env, NULL, temp_localname_str, NULL,
                                     &element_node);
        if (!om_ele)
        {
            return NULL;
        }

        om_builder->root_node = element_node;

        axiom_node_set_builder(element_node, env, om_builder);

        if (om_builder->document)
        {
            axiom_node_set_document(element_node, env, om_builder->document);
            axiom_document_set_root_element(om_builder->document,
                                            env, element_node);
        }
    }
    else if (axiom_node_is_complete(om_builder->lastnode, env))
    {
        om_ele = axiom_element_create_str(env,
                                          axiom_node_get_parent(om_builder->
                                                                lastnode, env),
                                          temp_localname_str, NULL,
                                          &element_node);
        if (!om_ele)
        {
            return NULL;
        }

        if (element_node)
        {
            axiom_node_set_next_sibling(om_builder->lastnode,
                                        env, element_node);
            axiom_node_set_previous_sibling(element_node,
                                            env, om_builder->lastnode);
            axiom_node_set_document(element_node, env, om_builder->document);
            axiom_node_set_builder(element_node, env, om_builder);
        }
    }
    else
    {
        om_ele = axiom_element_create_str(env, om_builder->lastnode,
                                          temp_localname_str, NULL,
                                          &element_node);
        if (element_node)
        {
            axiom_node_set_first_child(om_builder->lastnode, env, element_node);
            axiom_node_set_parent(element_node, env, om_builder->lastnode);
            axiom_node_set_document(element_node, env, om_builder->document);
            axiom_node_set_builder(element_node, env, om_builder);
        }
    }

    axutil_string_free(temp_localname_str, env);

    /** order of processing namespaces first is important */
    axiom_stax_builder_process_namespaces(om_builder, env, element_node, 0);
    axiom_stax_builder_process_attributes(om_builder, env, element_node);

    om_builder->lastnode = element_node;
    if (om_ele)
    {
        axiom_element_set_is_empty(om_ele, env, is_empty);
    }

    return element_node;
}

axiom_node_t *
axiom_stax_builder_create_om_comment(
    axiom_stax_builder_t * om_builder,
    const axutil_env_t * env)
{
    axiom_node_t *comment_node = NULL;
    axis2_char_t *comment_value = NULL;
    AXIS2_ENV_CHECK(env, NULL);

    comment_value = axiom_xml_reader_get_value(om_builder->parser, env);
    if (!comment_value)
    {
        AXIS2_ERROR_SET(env->error, AXIS2_ERROR_XML_READER_ELEMENT_NULL,
                        AXIS2_FAILURE);
        return NULL;
    }

    if (!(om_builder->lastnode))
    {

#ifdef AXIS2_LIBXML2_ENABLED
        axiom_xml_reader_xml_free(om_builder->parser, env, comment_value);
#else
        AXIS2_FREE(env->allocator,comment_value);
#endif
        return NULL;
    }
    else if (axiom_node_is_complete(om_builder->lastnode, env))
    {
        axiom_comment_create(env,
                             axiom_node_get_parent(om_builder->lastnode, env),
                             comment_value, &comment_node);

        axiom_node_set_next_sibling(om_builder->lastnode, env, comment_node);
        axiom_node_set_previous_sibling(comment_node, env,
                                        om_builder->lastnode);
        axiom_node_set_builder(comment_node, env, om_builder);
        axiom_node_set_document(comment_node, env, om_builder->document);
    }
    else
    {
        axiom_comment_create(env, om_builder->lastnode,
                             comment_value, &comment_node);

        axiom_node_set_first_child(om_builder->lastnode, env, comment_node);
        axiom_node_set_parent(comment_node, env, om_builder->lastnode);
        axiom_node_set_builder(comment_node, env, om_builder);
        axiom_node_set_document(comment_node, env, om_builder->document);
    }

    om_builder->element_level++;

#ifdef AXIS2_LIBXML2_ENABLED
    axiom_xml_reader_xml_free(om_builder->parser,env,comment_value);
#else
    AXIS2_FREE(env->allocator,comment_value);
#endif

	om_builder->lastnode = comment_node;

    return comment_node;
}

axiom_node_t *
axiom_stax_builder_create_om_doctype(
    axiom_stax_builder_t * om_builder,
    const axutil_env_t * env)
{
    axiom_node_t *doctype_node = NULL;
    axis2_char_t *doc_value = NULL;

    AXIS2_ENV_CHECK(env, NULL);

    doc_value = axiom_xml_reader_get_dtd(om_builder->parser, env);
    if (!doc_value)
    {
        return NULL;
    }
    if (!(om_builder->lastnode))
    {
        axiom_doctype_create(env, NULL, doc_value, &doctype_node);
        if (om_builder->document)
        {
            axiom_document_set_root_element(om_builder->document,
                                            env, doctype_node);
        }
    }
    om_builder->lastnode = doctype_node;
    axiom_xml_reader_xml_free(om_builder->parser, env, doc_value);
    return doctype_node;
}

axiom_node_t *
axiom_stax_builder_create_om_processing_instruction(
    axiom_stax_builder_t * om_builder,
    const axutil_env_t * env)
{
    axiom_node_t *pi_node = NULL;
    axis2_char_t *target = NULL;
    axis2_char_t *value = NULL;

    AXIS2_ENV_CHECK(env, NULL);
    target = axiom_xml_reader_get_pi_target(om_builder->parser, env);
    value = axiom_xml_reader_get_pi_data(om_builder->parser, env);
    if (!target)
    {
        AXIS2_ERROR_SET(env->error, AXIS2_ERROR_XML_READER_ELEMENT_NULL,
                        AXIS2_FAILURE);
        return NULL;
    }
    if (!(om_builder->lastnode))
    {
        /* do nothing */
        axiom_xml_reader_xml_free(om_builder->parser, env, target);
        axiom_xml_reader_xml_free(om_builder->parser, env, value);
        return NULL;
    }
    else if (axiom_node_is_complete(om_builder->lastnode, env) ||
             (axiom_node_get_node_type(om_builder->lastnode, env) ==
              AXIOM_TEXT))
    {
        axiom_processing_instruction_create(env,
                                            axiom_node_get_parent(om_builder->
                                                                  lastnode,
                                                                  env), target,
                                            value, &pi_node);

        axiom_node_set_next_sibling(om_builder->lastnode, env, pi_node);
        axiom_node_set_previous_sibling(pi_node, env, om_builder->lastnode);
    }
    else
    {
        axiom_processing_instruction_create(env, om_builder->lastnode,
                                            target, value, &pi_node);
        axiom_node_set_first_child(om_builder->lastnode, env, pi_node);
        axiom_node_set_parent(pi_node, env, om_builder->lastnode);
    }

    om_builder->element_level++;

    if (target)
    {
        axiom_xml_reader_xml_free(om_builder->parser, env, target);
    }
    if (value)
    {
        axiom_xml_reader_xml_free(om_builder->parser, env, value);
    }

    om_builder->lastnode = pi_node;
    return pi_node;
}

AXIS2_EXTERN axis2_status_t AXIS2_CALL
axiom_stax_builder_end_element(
    axiom_stax_builder_t * om_builder,
    const axutil_env_t * env)
{
    axiom_node_t *parent = NULL;
    AXIS2_ENV_CHECK(env, AXIS2_FAILURE);
    om_builder->element_level--;

    if (om_builder->lastnode)
    {
        if (axiom_node_is_complete((om_builder->lastnode), env))
        {
            parent = axiom_node_get_parent((om_builder->lastnode), env);
            if (parent)
            {
                axiom_node_set_complete(parent, env, AXIS2_TRUE);
                om_builder->lastnode = parent;
            }
        }
        else
        {
            axiom_node_set_complete((om_builder->lastnode), env, AXIS2_TRUE);
        }
    }
    if (om_builder->root_node)
    {
        if (axiom_node_is_complete(om_builder->root_node, env))
        {
            om_builder->done = AXIS2_TRUE;
        }
    }
    return AXIS2_SUCCESS;
}

AXIS2_EXTERN axiom_node_t *AXIS2_CALL
axiom_stax_builder_next(
    axiom_stax_builder_t * om_builder,
    const axutil_env_t * env)
{
    int token = 0;
    axiom_node_t *node = NULL;
    AXIS2_ENV_CHECK(env, NULL);

    if (!om_builder->parser)
    {
        return NULL;
    }
    do
    {
        if (om_builder->done)
        {
            AXIS2_ERROR_SET(env->error,
                            AXIS2_ERROR_BUILDER_DONE_CANNOT_PULL,
                            AXIS2_FAILURE);
            return NULL;
        }

        token = axiom_xml_reader_next(om_builder->parser, env);
        if (token == -1)
        {
            return NULL;
        }

        om_builder->current_event = token;

        if (!(om_builder->cache))
        {
            return NULL;
        }

        switch (token)
        {
        case AXIOM_XML_READER_START_DOCUMENT:
            /*Do nothing */
            break;

        case AXIOM_XML_READER_START_ELEMENT:
            node = axiom_stax_builder_create_om_element(om_builder, env,
                                                        AXIS2_FALSE);
            break;

        case AXIOM_XML_READER_EMPTY_ELEMENT:

#ifdef AXIS2_LIBXML2_ENABLED
            node = axiom_stax_builder_create_om_element(om_builder, env, AXIS2_FALSE);
#else
            node = axiom_stax_builder_create_om_element(om_builder, env, AXIS2_TRUE);
#endif

        case AXIOM_XML_READER_END_ELEMENT:
            axiom_stax_builder_end_element(om_builder, env);
            break;

        case AXIOM_XML_READER_SPACE:
            node = axiom_stax_builder_create_om_text(om_builder, env);
            break;

        case AXIOM_XML_READER_CHARACTER:
            node = axiom_stax_builder_create_om_text(om_builder, env);
            break;

        case AXIOM_XML_READER_ENTITY_REFERENCE:
            break;

        case AXIOM_XML_READER_COMMENT:

            node = axiom_stax_builder_create_om_comment(om_builder, env);
            axiom_stax_builder_end_element(om_builder, env);
            break;

        case AXIOM_XML_READER_PROCESSING_INSTRUCTION:

            node =
                axiom_stax_builder_create_om_processing_instruction(om_builder,
                                                                    env);
            axiom_stax_builder_end_element(om_builder, env);
            break;

        case AXIOM_XML_READER_CDATA:
            break;

        case AXIOM_XML_READER_DOCUMENT_TYPE:
            break;

        default:
            break;
        }
    }
    while (!node);
    return node;
}

AXIS2_EXTERN void AXIS2_CALL
axiom_stax_builder_free(
    axiom_stax_builder_t * om_builder,
    const axutil_env_t * env)
{
    AXIS2_ENV_CHECK(env, AXIS2_FAILURE);
    if (!om_builder)
    {
        return;
    }
    if (om_builder->declared_namespaces)
    {
        axutil_hash_free(om_builder->declared_namespaces, env);
        om_builder->declared_namespaces = NULL;
    }

    if (om_builder->document)
    {
        axiom_document_free(om_builder->document, env);
        om_builder->document = NULL;
    }
    else
    {
        if (om_builder->root_node)
        {
            axiom_node_free_tree(om_builder->root_node, env);
            om_builder->root_node = NULL;
        }
    }

    if (om_builder->parser)
    {
        axiom_xml_reader_free(om_builder->parser, env);
        om_builder->parser = NULL;
    }

    AXIS2_FREE(env->allocator, om_builder);

    return;
}

AXIS2_EXTERN void AXIS2_CALL
axiom_stax_builder_free_self(
    axiom_stax_builder_t * om_builder,
    const axutil_env_t * env)
{

    axiom_node_t *temp_node = NULL;
    axiom_node_t *nodes[256];
    axiom_node_t *om_node = NULL;
    int count = 0;

    om_node = om_builder->root_node;

    nodes[count++] = om_node;

    if (om_node)
    {
        do
        {

            axiom_node_set_builder(om_node, env, NULL);
            axiom_node_set_document(om_node, env, NULL);

            temp_node = axiom_node_get_first_child(om_node, env);
            /* serialize children of this node */
            if (temp_node)
            {
                om_node = temp_node;
                nodes[count++] = om_node;
            }
            else
            {
                temp_node = axiom_node_get_next_sibling(om_node, env);
                if (temp_node)
                {
                    om_node = temp_node;
                    nodes[count - 1] = om_node;
                }
                else
                {
                    while (count > 1 && !temp_node)
                    {
                        count--;
                        om_node = nodes[count - 1];
                        temp_node = axiom_node_get_next_sibling(om_node, env);
                    }
                    if (temp_node && count > 1)
                    {
                        om_node = temp_node;
                        nodes[count - 1] = om_node;
                    }
                    else
                    {
                        count--;
                    }
                }
            }
        }
        while (count > 0);
    }
    if (om_builder->declared_namespaces)
    {
        axutil_hash_free(om_builder->declared_namespaces, env);
        om_builder->declared_namespaces = NULL;
    }

    if (om_builder->parser)
    {
        axiom_xml_reader_free(om_builder->parser, env);
        om_builder->parser = NULL;
    }
    if (om_builder->document)
    {
        axiom_document_free_self(om_builder->document, env);
        om_builder->document = NULL;
    }
    AXIS2_FREE(env->allocator, om_builder);
    return;
}

AXIS2_EXTERN axiom_document_t *AXIS2_CALL
axiom_stax_builder_get_document(
    axiom_stax_builder_t * om_builder,
    const axutil_env_t * env)
{
    return om_builder->document;
}

/**
    This is an internal function
*/

AXIS2_EXTERN int AXIS2_CALL
axiom_stax_builder_get_current_event(
    axiom_stax_builder_t * om_builder,
    const axutil_env_t * env)
{
    AXIS2_PARAM_CHECK(env->error, om_builder, AXIS2_FAILURE);
    return om_builder->current_event;
}

/**
 This is an internal function
*/
AXIS2_EXTERN axiom_node_t *AXIS2_CALL
axiom_stax_builder_get_lastnode(
    axiom_stax_builder_t * om_builder,
    const axutil_env_t * env)
{
    AXIS2_PARAM_CHECK(env->error, om_builder, NULL);
    return om_builder->lastnode;
}

/**
This is an internal function
*/
AXIS2_EXTERN axis2_bool_t AXIS2_CALL
axiom_stax_builder_is_complete(
    axiom_stax_builder_t * om_builder,
    const axutil_env_t * env)
{
    AXIS2_ENV_CHECK(env, AXIS2_FALSE);
    return om_builder->done;
}

/**
This is an internal function to be used by soap om_builder only
*/
AXIS2_EXTERN axis2_status_t AXIS2_CALL
axiom_stax_builder_set_lastnode(
    axiom_stax_builder_t * om_builder,
    const axutil_env_t * env,
    axiom_node_t * om_node)
{
    AXIS2_PARAM_CHECK(env->error, om_node, AXIS2_FAILURE);
    AXIS2_PARAM_CHECK(env->error, om_builder, AXIS2_FAILURE);

    om_builder->lastnode = om_node;
    return AXIS2_SUCCESS;
}

/**
internal function for soap om_builder only
*/
AXIS2_EXTERN int AXIS2_CALL
axiom_stax_builder_get_element_level(
    axiom_stax_builder_t * om_builder,
    const axutil_env_t * env)
{
    AXIS2_PARAM_CHECK(env->error, om_builder, -1);
    return om_builder->element_level;
}

/**
internal function for soap om_builder only
*/
AXIS2_EXTERN axis2_status_t AXIS2_CALL
axiom_stax_builder_set_element_level(
    axiom_stax_builder_t * om_builder,
    const axutil_env_t * env,
    int element_level)
{
    AXIS2_PARAM_CHECK(env->error, om_builder, AXIS2_FAILURE);
    om_builder->element_level = element_level;
    return AXIS2_SUCCESS;
}

int AXIS2_CALL
axiom_stax_builder_next_with_token(
    axiom_stax_builder_t * om_builder,
    const axutil_env_t * env)
{
    int token = 0;
    void *val = NULL;
/*	axutil_env_t* thread = NULL;*/
/*	thread = axutil_env_create(env->allocator);*/
/*	env = thread;*/
    if (!om_builder)
    {
        return -1;
    }

    if (om_builder->done)
    {
        AXIS2_ERROR_SET(env->error, AXIS2_ERROR_BUILDER_DONE_CANNOT_PULL,
                        AXIS2_FAILURE);
        return -1;
    }

    if (!om_builder->parser)
    {
        return -1;
    }

    token = axiom_xml_reader_next(om_builder->parser, env);

    om_builder->current_event = token;

    if (token == -1)
    {
        om_builder->done = AXIS2_TRUE;
        return -1;
    }

    if (!(om_builder->cache))
    {
        return -1;
    }
    switch (token)
    {
    case AXIOM_XML_READER_START_DOCUMENT:
        /*Do nothing */
        break;

    case AXIOM_XML_READER_START_ELEMENT:
        val = axiom_stax_builder_create_om_element(om_builder, env,
                                                   AXIS2_FALSE);
        if (!val)
        {
            return -1;
        }
        break;

    case AXIOM_XML_READER_EMPTY_ELEMENT:

#ifdef AXIS2_LIBXML2_ENABLED
        val = axiom_stax_builder_create_om_element(om_builder, env, AXIS2_FALSE);
#else
        val = axiom_stax_builder_create_om_element(om_builder, env, AXIS2_TRUE);
#endif

        if (!val)
        {
            return -1;
        }
    case AXIOM_XML_READER_END_ELEMENT:
        axiom_stax_builder_end_element(om_builder, env);
        break;

    case AXIOM_XML_READER_SPACE:
        /* ignore white space before the root element */
        if (om_builder->lastnode)
        {
            val = axiom_stax_builder_create_om_text(om_builder, env);
            if (!val)
            {
                return -1;
            }
        }
        break;

    case AXIOM_XML_READER_CHARACTER:
        val = axiom_stax_builder_create_om_text(om_builder, env);
        if (!val)
        {
            return -1;
        }
        break;

    case AXIOM_XML_READER_ENTITY_REFERENCE:
        break;

    case AXIOM_XML_READER_COMMENT:
        val = axiom_stax_builder_create_om_comment(om_builder, env);
        if (val)
        {
            axiom_stax_builder_end_element(om_builder, env);
        }
        break;

    case AXIOM_XML_READER_PROCESSING_INSTRUCTION:
        val = axiom_stax_builder_create_om_processing_instruction(om_builder,
                                                                  env);
        if (val)
        {
            axiom_stax_builder_end_element(om_builder, env);
        }
        break;

    case AXIOM_XML_READER_CDATA:
        break;

    case AXIOM_XML_READER_DOCUMENT_TYPE:
        break;

    default:
        break;
    }
    return token;
}


<|start_filename|>xdocs/api/html/structaxiom__xml__writer__ops.html<|end_filename|>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html><head><meta http-equiv="Content-Type" content="text/html;charset=UTF-8">
<title>Axis2/C: axiom_xml_writer_ops Struct Reference</title>
<link href="doxygen.css" rel="stylesheet" type="text/css">
<link href="tabs.css" rel="stylesheet" type="text/css">
</head><body>
<!-- Generated by Doxygen 1.5.3 -->
<div class="tabs">
  <ul>
    <li><a href="index.html"><span>Main&nbsp;Page</span></a></li>
    <li><a href="modules.html"><span>Modules</span></a></li>
    <li class="current"><a href="annotated.html"><span>Classes</span></a></li>
    <li><a href="files.html"><span>Files</span></a></li>
    <li><a href="dirs.html"><span>Directories</span></a></li>
    <li><a href="pages.html"><span>Related&nbsp;Pages</span></a></li>
    <li><a href="examples.html"><span>Examples</span></a></li>
    <li>
      <form action="search.php" method="get">
        <table cellspacing="0" cellpadding="0" border="0">
          <tr>
            <td><label>&nbsp;<u>S</u>earch&nbsp;for&nbsp;</label></td>
            <td><input type="text" name="query" value="" size="20" accesskey="s"/></td>
          </tr>
        </table>
      </form>
    </li>
  </ul>
</div>
<div class="tabs">
  <ul>
    <li><a href="annotated.html"><span>Class&nbsp;List</span></a></li>
    <li><a href="functions.html"><span>Class&nbsp;Members</span></a></li>
  </ul>
</div>
<h1>axiom_xml_writer_ops Struct Reference<br>
<small>
[<a class="el" href="group__axiom__xml__writer.html">XML writer</a>]</small>
</h1><!-- doxytag: class="axiom_xml_writer_ops" --><a class="el" href="structaxiom__xml__writer.html" title="axis2_pull_parser struct Axis2 OM pull_parser">axiom_xml_writer</a> ops Encapsulator struct for ops of <a class="el" href="structaxiom__xml__writer.html" title="axis2_pull_parser struct Axis2 OM pull_parser">axiom_xml_writer</a>  
<a href="#_details">More...</a>
<p>
<code>#include &lt;<a class="el" href="axiom__xml__writer_8h-source.html">axiom_xml_writer.h</a>&gt;</code>
<p>

<p>
<a href="structaxiom__xml__writer__ops-members.html">List of all members.</a><table border="0" cellpadding="0" cellspacing="0">
<tr><td></td></tr>
<tr><td colspan="2"><br><h2>Public Attributes</h2></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top">void(*&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="structaxiom__xml__writer__ops.html#5af16ee94216db95e1a0e16d2bf7eea3">free</a> )(<a class="el" href="structaxiom__xml__writer.html">axiom_xml_writer_t</a> *writer, const <a class="el" href="structaxutil__env.html">axutil_env_t</a> *env)</td></tr>

<tr><td class="memItemLeft" nowrap align="right" valign="top">axis2_status_t(*&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="structaxiom__xml__writer__ops.html#c06223c3d060d8a16219daf284c31b25">write_start_element</a> )(<a class="el" href="structaxiom__xml__writer.html">axiom_xml_writer_t</a> *writer, const <a class="el" href="structaxutil__env.html">axutil_env_t</a> *env, axis2_char_t *localname)</td></tr>

<tr><td class="memItemLeft" nowrap align="right" valign="top">axis2_status_t(*&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="structaxiom__xml__writer__ops.html#cfc4c8e81bd5e6ea6dc557f0d47aba03">end_start_element</a> )(<a class="el" href="structaxiom__xml__writer.html">axiom_xml_writer_t</a> *writer, const <a class="el" href="structaxutil__env.html">axutil_env_t</a> *env)</td></tr>

<tr><td class="memItemLeft" nowrap align="right" valign="top">axis2_status_t(*&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="structaxiom__xml__writer__ops.html#cb19bc0de6a28aff413d1116ab94488e">write_start_element_with_namespace</a> )(<a class="el" href="structaxiom__xml__writer.html">axiom_xml_writer_t</a> *writer, const <a class="el" href="structaxutil__env.html">axutil_env_t</a> *env, axis2_char_t *localname, axis2_char_t *namespace_uri)</td></tr>

<tr><td class="memItemLeft" nowrap align="right" valign="top">axis2_status_t(*&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="structaxiom__xml__writer__ops.html#181de53ec63a06c1dbbd9d724c34929f">write_start_element_with_namespace_prefix</a> )(<a class="el" href="structaxiom__xml__writer.html">axiom_xml_writer_t</a> *writer, const <a class="el" href="structaxutil__env.html">axutil_env_t</a> *env, axis2_char_t *localname, axis2_char_t *namespace_uri, axis2_char_t *prefix)</td></tr>

<tr><td class="memItemLeft" nowrap align="right" valign="top">axis2_status_t(*&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="structaxiom__xml__writer__ops.html#9f17f154c81b94a06d0f0e15ddafa5b0">write_empty_element</a> )(<a class="el" href="structaxiom__xml__writer.html">axiom_xml_writer_t</a> *writer, const <a class="el" href="structaxutil__env.html">axutil_env_t</a> *env, axis2_char_t *localname)</td></tr>

<tr><td class="memItemLeft" nowrap align="right" valign="top">axis2_status_t(*&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="structaxiom__xml__writer__ops.html#a5ebeba99a64158870c0a170f2ede136">write_empty_element_with_namespace</a> )(<a class="el" href="structaxiom__xml__writer.html">axiom_xml_writer_t</a> *writer, const <a class="el" href="structaxutil__env.html">axutil_env_t</a> *env, axis2_char_t *localname, axis2_char_t *namespace_uri)</td></tr>

<tr><td class="memItemLeft" nowrap align="right" valign="top">axis2_status_t(*&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="structaxiom__xml__writer__ops.html#1b5832263ff6777425b0a02370e69e2c">write_empty_element_with_namespace_prefix</a> )(<a class="el" href="structaxiom__xml__writer.html">axiom_xml_writer_t</a> *writer, const <a class="el" href="structaxutil__env.html">axutil_env_t</a> *env, axis2_char_t *localname, axis2_char_t *namespace_uri, axis2_char_t *prefix)</td></tr>

<tr><td class="memItemLeft" nowrap align="right" valign="top">axis2_status_t(*&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="structaxiom__xml__writer__ops.html#8527242f1ab3148202bc6199a138181b">write_end_element</a> )(<a class="el" href="structaxiom__xml__writer.html">axiom_xml_writer_t</a> *writer, const <a class="el" href="structaxutil__env.html">axutil_env_t</a> *env)</td></tr>

<tr><td class="memItemLeft" nowrap align="right" valign="top">axis2_status_t(*&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="structaxiom__xml__writer__ops.html#3138b51841a55f98918bf692cf7801c2">write_end_document</a> )(<a class="el" href="structaxiom__xml__writer.html">axiom_xml_writer_t</a> *writer, const <a class="el" href="structaxutil__env.html">axutil_env_t</a> *env)</td></tr>

<tr><td class="memItemLeft" nowrap align="right" valign="top">axis2_status_t(*&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="structaxiom__xml__writer__ops.html#3cfbfc24a004f6dc69ddf4a794e0f4dc">write_attribute</a> )(<a class="el" href="structaxiom__xml__writer.html">axiom_xml_writer_t</a> *writer, const <a class="el" href="structaxutil__env.html">axutil_env_t</a> *env, axis2_char_t *localname, axis2_char_t *value)</td></tr>

<tr><td class="memItemLeft" nowrap align="right" valign="top">axis2_status_t(*&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="structaxiom__xml__writer__ops.html#9be76a40295724f89c21460a0cbb420e">write_attribute_with_namespace</a> )(<a class="el" href="structaxiom__xml__writer.html">axiom_xml_writer_t</a> *writer, const <a class="el" href="structaxutil__env.html">axutil_env_t</a> *env, axis2_char_t *localname, axis2_char_t *value, axis2_char_t *namespace_uri)</td></tr>

<tr><td class="memItemLeft" nowrap align="right" valign="top">axis2_status_t(*&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="structaxiom__xml__writer__ops.html#b95d7b90c1debb4474301a63248679dc">write_attribute_with_namespace_prefix</a> )(<a class="el" href="structaxiom__xml__writer.html">axiom_xml_writer_t</a> *writer, const <a class="el" href="structaxutil__env.html">axutil_env_t</a> *env, axis2_char_t *localname, axis2_char_t *value, axis2_char_t *namespace_uri, axis2_char_t *prefix)</td></tr>

<tr><td class="memItemLeft" nowrap align="right" valign="top">axis2_status_t(*&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="structaxiom__xml__writer__ops.html#9342c2366cc765c44bf9830eb793b968">write_namespace</a> )(<a class="el" href="structaxiom__xml__writer.html">axiom_xml_writer_t</a> *writer, const <a class="el" href="structaxutil__env.html">axutil_env_t</a> *env, axis2_char_t *prefix, axis2_char_t *namespace_uri)</td></tr>

<tr><td class="memItemLeft" nowrap align="right" valign="top">axis2_status_t(*&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="structaxiom__xml__writer__ops.html#d5e89aade5d5eea3dfa737e93aa3af2b">write_default_namespace</a> )(<a class="el" href="structaxiom__xml__writer.html">axiom_xml_writer_t</a> *writer, const <a class="el" href="structaxutil__env.html">axutil_env_t</a> *env, axis2_char_t *namespace_uri)</td></tr>

<tr><td class="memItemLeft" nowrap align="right" valign="top">axis2_status_t(*&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="structaxiom__xml__writer__ops.html#31ae05dafb0f580135ea5aba9ba14ab8">write_comment</a> )(<a class="el" href="structaxiom__xml__writer.html">axiom_xml_writer_t</a> *writer, const <a class="el" href="structaxutil__env.html">axutil_env_t</a> *env, axis2_char_t *value)</td></tr>

<tr><td class="memItemLeft" nowrap align="right" valign="top">axis2_status_t(*&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="structaxiom__xml__writer__ops.html#7c4747974cc1beb1234f1a60670cac1d">write_processing_instruction</a> )(<a class="el" href="structaxiom__xml__writer.html">axiom_xml_writer_t</a> *writer, const <a class="el" href="structaxutil__env.html">axutil_env_t</a> *env, axis2_char_t *target)</td></tr>

<tr><td class="memItemLeft" nowrap align="right" valign="top">axis2_status_t(*&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="structaxiom__xml__writer__ops.html#a2c34385c2e7cad6914b637cb0324157">write_processing_instruction_data</a> )(<a class="el" href="structaxiom__xml__writer.html">axiom_xml_writer_t</a> *writer, const <a class="el" href="structaxutil__env.html">axutil_env_t</a> *env, axis2_char_t *target, axis2_char_t *data)</td></tr>

<tr><td class="memItemLeft" nowrap align="right" valign="top">axis2_status_t(*&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="structaxiom__xml__writer__ops.html#dc350f03c1f39657762665d91e3da7de">write_cdata</a> )(<a class="el" href="structaxiom__xml__writer.html">axiom_xml_writer_t</a> *writer, const <a class="el" href="structaxutil__env.html">axutil_env_t</a> *env, axis2_char_t *data)</td></tr>

<tr><td class="memItemLeft" nowrap align="right" valign="top">axis2_status_t(*&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="structaxiom__xml__writer__ops.html#ad4bd1835177f7a4cd51b9684eb70fbb">write_dtd</a> )(<a class="el" href="structaxiom__xml__writer.html">axiom_xml_writer_t</a> *writer, const <a class="el" href="structaxutil__env.html">axutil_env_t</a> *env, axis2_char_t *dtd)</td></tr>

<tr><td class="memItemLeft" nowrap align="right" valign="top">axis2_status_t(*&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="structaxiom__xml__writer__ops.html#f7515527519017374d3c999857c19b4b">write_entity_ref</a> )(<a class="el" href="structaxiom__xml__writer.html">axiom_xml_writer_t</a> *writer, const <a class="el" href="structaxutil__env.html">axutil_env_t</a> *env, axis2_char_t *name)</td></tr>

<tr><td class="memItemLeft" nowrap align="right" valign="top">axis2_status_t(*&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="structaxiom__xml__writer__ops.html#ceb71f8c3dc1e4d6dae3b8e098238752">write_start_document</a> )(<a class="el" href="structaxiom__xml__writer.html">axiom_xml_writer_t</a> *writer, const <a class="el" href="structaxutil__env.html">axutil_env_t</a> *env)</td></tr>

<tr><td class="memItemLeft" nowrap align="right" valign="top">axis2_status_t(*&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="structaxiom__xml__writer__ops.html#6369d78e9156277c1130c09d023d9620">write_start_document_with_version</a> )(<a class="el" href="structaxiom__xml__writer.html">axiom_xml_writer_t</a> *writer, const <a class="el" href="structaxutil__env.html">axutil_env_t</a> *env, axis2_char_t *version)</td></tr>

<tr><td class="memItemLeft" nowrap align="right" valign="top">axis2_status_t(*&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="structaxiom__xml__writer__ops.html#50e3ebac8e1e667ec229d879cf854158">write_start_document_with_version_encoding</a> )(<a class="el" href="structaxiom__xml__writer.html">axiom_xml_writer_t</a> *writer, const <a class="el" href="structaxutil__env.html">axutil_env_t</a> *env, axis2_char_t *version, axis2_char_t *encoding)</td></tr>

<tr><td class="memItemLeft" nowrap align="right" valign="top">axis2_status_t(*&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="structaxiom__xml__writer__ops.html#bd4740a7d7c8ec64f9989942adf95683">write_characters</a> )(<a class="el" href="structaxiom__xml__writer.html">axiom_xml_writer_t</a> *writer, const <a class="el" href="structaxutil__env.html">axutil_env_t</a> *env, axis2_char_t *text)</td></tr>

<tr><td class="memItemLeft" nowrap align="right" valign="top">axis2_char_t *(*&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="structaxiom__xml__writer__ops.html#d146f0f6c94b7b3e2e9c9a771f09bfbd">get_prefix</a> )(<a class="el" href="structaxiom__xml__writer.html">axiom_xml_writer_t</a> *writer, const <a class="el" href="structaxutil__env.html">axutil_env_t</a> *env, axis2_char_t *uri)</td></tr>

<tr><td class="memItemLeft" nowrap align="right" valign="top">axis2_status_t(*&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="structaxiom__xml__writer__ops.html#1dc7aaaa7a93eb687a9df7954284a8ca">set_prefix</a> )(<a class="el" href="structaxiom__xml__writer.html">axiom_xml_writer_t</a> *writer, const <a class="el" href="structaxutil__env.html">axutil_env_t</a> *env, axis2_char_t *prefix, axis2_char_t *uri)</td></tr>

<tr><td class="memItemLeft" nowrap align="right" valign="top">axis2_status_t(*&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="structaxiom__xml__writer__ops.html#6e82203c544a4ff8b4fd83446d6f7917">set_default_prefix</a> )(<a class="el" href="structaxiom__xml__writer.html">axiom_xml_writer_t</a> *writer, const <a class="el" href="structaxutil__env.html">axutil_env_t</a> *env, axis2_char_t *uri)</td></tr>

<tr><td class="memItemLeft" nowrap align="right" valign="top">axis2_status_t(*&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="structaxiom__xml__writer__ops.html#18abc643865e39e695f7c818680c0b98">write_encoded</a> )(<a class="el" href="structaxiom__xml__writer.html">axiom_xml_writer_t</a> *writer, const <a class="el" href="structaxutil__env.html">axutil_env_t</a> *env, axis2_char_t *text, int in_attr)</td></tr>

<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="01879ea98fa959a6b2ad20e786adad3e"></a><!-- doxytag: member="axiom_xml_writer_ops::get_xml" ref="01879ea98fa959a6b2ad20e786adad3e" args=")(axiom_xml_writer_t *writer, const axutil_env_t *env)" -->
void *(*&nbsp;</td><td class="memItemRight" valign="bottom"><b>get_xml</b> )(<a class="el" href="structaxiom__xml__writer.html">axiom_xml_writer_t</a> *writer, const <a class="el" href="structaxutil__env.html">axutil_env_t</a> *env)</td></tr>

<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="97184f1a85f25a010530faed25365180"></a><!-- doxytag: member="axiom_xml_writer_ops::get_xml_size" ref="97184f1a85f25a010530faed25365180" args=")(axiom_xml_writer_t *writer, const axutil_env_t *env)" -->
unsigned int(*&nbsp;</td><td class="memItemRight" valign="bottom"><b>get_xml_size</b> )(<a class="el" href="structaxiom__xml__writer.html">axiom_xml_writer_t</a> *writer, const <a class="el" href="structaxutil__env.html">axutil_env_t</a> *env)</td></tr>

<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="0b43729f51ed230b4952d2d8e96dec7b"></a><!-- doxytag: member="axiom_xml_writer_ops::get_type" ref="0b43729f51ed230b4952d2d8e96dec7b" args=")(axiom_xml_writer_t *writer, const axutil_env_t *env)" -->
int(*&nbsp;</td><td class="memItemRight" valign="bottom"><b>get_type</b> )(<a class="el" href="structaxiom__xml__writer.html">axiom_xml_writer_t</a> *writer, const <a class="el" href="structaxutil__env.html">axutil_env_t</a> *env)</td></tr>

<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="2060d71d20b8d77ea598b4714998ab42"></a><!-- doxytag: member="axiom_xml_writer_ops::write_raw" ref="2060d71d20b8d77ea598b4714998ab42" args=")(axiom_xml_writer_t *writer, const axutil_env_t *env, axis2_char_t *content)" -->
axis2_status_t(*&nbsp;</td><td class="memItemRight" valign="bottom"><b>write_raw</b> )(<a class="el" href="structaxiom__xml__writer.html">axiom_xml_writer_t</a> *writer, const <a class="el" href="structaxutil__env.html">axutil_env_t</a> *env, axis2_char_t *content)</td></tr>

<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="5ce22edb7ada7612443969d52ebd903a"></a><!-- doxytag: member="axiom_xml_writer_ops::flush" ref="5ce22edb7ada7612443969d52ebd903a" args=")(axiom_xml_writer_t *writer, const axutil_env_t *env)" -->
axis2_status_t(*&nbsp;</td><td class="memItemRight" valign="bottom"><b>flush</b> )(<a class="el" href="structaxiom__xml__writer.html">axiom_xml_writer_t</a> *writer, const <a class="el" href="structaxutil__env.html">axutil_env_t</a> *env)</td></tr>

</table>
<hr><a name="_details"></a><h2>Detailed Description</h2>
<a class="el" href="structaxiom__xml__writer.html" title="axis2_pull_parser struct Axis2 OM pull_parser">axiom_xml_writer</a> ops Encapsulator struct for ops of <a class="el" href="structaxiom__xml__writer.html" title="axis2_pull_parser struct Axis2 OM pull_parser">axiom_xml_writer</a> <hr><h2>Member Data Documentation</h2>
<a class="anchor" name="5af16ee94216db95e1a0e16d2bf7eea3"></a><!-- doxytag: member="axiom_xml_writer_ops::free" ref="5af16ee94216db95e1a0e16d2bf7eea3" args=")(axiom_xml_writer_t *writer, const axutil_env_t *env)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">void( *  <a class="el" href="structaxiom__xml__writer__ops.html#5af16ee94216db95e1a0e16d2bf7eea3">axiom_xml_writer_ops::free</a>)(<a class="el" href="structaxiom__xml__writer.html">axiom_xml_writer_t</a> *writer, const <a class="el" href="structaxutil__env.html">axutil_env_t</a> *env)          </td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
Free xml writer <dl compact><dt><b>Parameters:</b></dt><dd>
  <table border="0" cellspacing="2" cellpadding="0">
    <tr><td valign="top"></td><td valign="top"><em>writer</em>&nbsp;</td><td>pointer to xml_writer struct to be freed </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>env</em>&nbsp;</td><td>environment, MUST NOT be NULL. </td></tr>
  </table>
</dl>
<dl class="return" compact><dt><b>Returns:</b></dt><dd>status of the op. AXIS2_SUCCESS on success and AXIS2_FAILURE on error </dd></dl>

</div>
</div><p>
<a class="anchor" name="c06223c3d060d8a16219daf284c31b25"></a><!-- doxytag: member="axiom_xml_writer_ops::write_start_element" ref="c06223c3d060d8a16219daf284c31b25" args=")(axiom_xml_writer_t *writer, const axutil_env_t *env, axis2_char_t *localname)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">axis2_status_t( *  <a class="el" href="structaxiom__xml__writer__ops.html#c06223c3d060d8a16219daf284c31b25">axiom_xml_writer_ops::write_start_element</a>)(<a class="el" href="structaxiom__xml__writer.html">axiom_xml_writer_t</a> *writer, const <a class="el" href="structaxutil__env.html">axutil_env_t</a> *env, axis2_char_t *localname)          </td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
Write a start tag to output stream with localname. Internally the writer keeps track of the opened tags <dl compact><dt><b>Parameters:</b></dt><dd>
  <table border="0" cellspacing="2" cellpadding="0">
    <tr><td valign="top"></td><td valign="top"><em>writer</em>&nbsp;</td><td>pointer to xml writer struct </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>env</em>&nbsp;</td><td>environment. MUST NOT be NULL. </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>localname</em>&nbsp;</td><td>localname of the tag, May not be NULL. </td></tr>
  </table>
</dl>
<dl class="return" compact><dt><b>Returns:</b></dt><dd>the status of the op, AXIS2_SUCCESS on success AXIS2_FAILURE on error. </dd></dl>

</div>
</div><p>
<a class="anchor" name="cfc4c8e81bd5e6ea6dc557f0d47aba03"></a><!-- doxytag: member="axiom_xml_writer_ops::end_start_element" ref="cfc4c8e81bd5e6ea6dc557f0d47aba03" args=")(axiom_xml_writer_t *writer, const axutil_env_t *env)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">axis2_status_t( *  <a class="el" href="structaxiom__xml__writer__ops.html#cfc4c8e81bd5e6ea6dc557f0d47aba03">axiom_xml_writer_ops::end_start_element</a>)(<a class="el" href="structaxiom__xml__writer.html">axiom_xml_writer_t</a> *writer, const <a class="el" href="structaxutil__env.html">axutil_env_t</a> *env)          </td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
write an end tag to the output relying on the internal state of writer to determine the prefix and localname of the element <dl compact><dt><b>Parameters:</b></dt><dd>
  <table border="0" cellspacing="2" cellpadding="0">
    <tr><td valign="top"></td><td valign="top"><em>writer</em>&nbsp;</td><td>xml_writer struct </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>env</em>&nbsp;</td><td>environment, MUST NOT be NULL. </td></tr>
  </table>
</dl>
<dl class="return" compact><dt><b>Returns:</b></dt><dd>status of the op. AXIS2_SUCCESS on success. AXIS2_FAILURE on error. </dd></dl>

</div>
</div><p>
<a class="anchor" name="cb19bc0de6a28aff413d1116ab94488e"></a><!-- doxytag: member="axiom_xml_writer_ops::write_start_element_with_namespace" ref="cb19bc0de6a28aff413d1116ab94488e" args=")(axiom_xml_writer_t *writer, const axutil_env_t *env, axis2_char_t *localname, axis2_char_t *namespace_uri)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">axis2_status_t( *  <a class="el" href="structaxiom__xml__writer__ops.html#cb19bc0de6a28aff413d1116ab94488e">axiom_xml_writer_ops::write_start_element_with_namespace</a>)(<a class="el" href="structaxiom__xml__writer.html">axiom_xml_writer_t</a> *writer, const <a class="el" href="structaxutil__env.html">axutil_env_t</a> *env, axis2_char_t *localname, axis2_char_t *namespace_uri)          </td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
Write an element tag with localname and namespace uri <dl compact><dt><b>Parameters:</b></dt><dd>
  <table border="0" cellspacing="2" cellpadding="0">
    <tr><td valign="top"></td><td valign="top"><em>writer</em>&nbsp;</td><td>pointer to xml writer struct </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>env</em>&nbsp;</td><td>environment struct </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>localname</em>&nbsp;</td><td>localname of the tag, May not be null. </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>namespace_uri</em>&nbsp;</td><td>the namespace URI of the the pefix to use.may not be null. </td></tr>
  </table>
</dl>
<dl class="return" compact><dt><b>Returns:</b></dt><dd>status of the op, AXIS2_SUCCESS on success. AXIS2_FAILURE on error </dd></dl>

</div>
</div><p>
<a class="anchor" name="181de53ec63a06c1dbbd9d724c34929f"></a><!-- doxytag: member="axiom_xml_writer_ops::write_start_element_with_namespace_prefix" ref="181de53ec63a06c1dbbd9d724c34929f" args=")(axiom_xml_writer_t *writer, const axutil_env_t *env, axis2_char_t *localname, axis2_char_t *namespace_uri, axis2_char_t *prefix)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">axis2_status_t( *  <a class="el" href="structaxiom__xml__writer__ops.html#181de53ec63a06c1dbbd9d724c34929f">axiom_xml_writer_ops::write_start_element_with_namespace_prefix</a>)(<a class="el" href="structaxiom__xml__writer.html">axiom_xml_writer_t</a> *writer, const <a class="el" href="structaxutil__env.html">axutil_env_t</a> *env, axis2_char_t *localname, axis2_char_t *namespace_uri, axis2_char_t *prefix)          </td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
write a start tag to output <dl compact><dt><b>Parameters:</b></dt><dd>
  <table border="0" cellspacing="2" cellpadding="0">
    <tr><td valign="top"></td><td valign="top"><em>writer</em>&nbsp;</td><td>pointer to xml_writer struct </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>environment,MUST</em>&nbsp;</td><td>NOT be NULL. </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>localname</em>&nbsp;</td><td>localname of the tag, May not be null. </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>namespace_uri</em>&nbsp;</td><td>namespace to bind the prefix to </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>prefix</em>&nbsp;</td><td>the prefix to the tag.May not be NULL. </td></tr>
  </table>
</dl>
<dl class="return" compact><dt><b>Returns:</b></dt><dd>status of the op AXIS2_SUCCESS on success. AXIS2_FAILURE on error. </dd></dl>

</div>
</div><p>
<a class="anchor" name="9f17f154c81b94a06d0f0e15ddafa5b0"></a><!-- doxytag: member="axiom_xml_writer_ops::write_empty_element" ref="9f17f154c81b94a06d0f0e15ddafa5b0" args=")(axiom_xml_writer_t *writer, const axutil_env_t *env, axis2_char_t *localname)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">axis2_status_t( *  <a class="el" href="structaxiom__xml__writer__ops.html#9f17f154c81b94a06d0f0e15ddafa5b0">axiom_xml_writer_ops::write_empty_element</a>)(<a class="el" href="structaxiom__xml__writer.html">axiom_xml_writer_t</a> *writer, const <a class="el" href="structaxutil__env.html">axutil_env_t</a> *env, axis2_char_t *localname)          </td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
write an element tag with localname <dl compact><dt><b>Parameters:</b></dt><dd>
  <table border="0" cellspacing="2" cellpadding="0">
    <tr><td valign="top"></td><td valign="top"><em>writer</em>&nbsp;</td><td>xml_writer </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>env</em>&nbsp;</td><td>environment </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>localname</em>&nbsp;</td><td>localname </td></tr>
  </table>
</dl>
<dl class="return" compact><dt><b>Returns:</b></dt><dd>status of the op AXIS2_SUCCESS on success, AXIS2_FAILURE on error. </dd></dl>

</div>
</div><p>
<a class="anchor" name="a5ebeba99a64158870c0a170f2ede136"></a><!-- doxytag: member="axiom_xml_writer_ops::write_empty_element_with_namespace" ref="a5ebeba99a64158870c0a170f2ede136" args=")(axiom_xml_writer_t *writer, const axutil_env_t *env, axis2_char_t *localname, axis2_char_t *namespace_uri)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">axis2_status_t( *  <a class="el" href="structaxiom__xml__writer__ops.html#a5ebeba99a64158870c0a170f2ede136">axiom_xml_writer_ops::write_empty_element_with_namespace</a>)(<a class="el" href="structaxiom__xml__writer.html">axiom_xml_writer_t</a> *writer, const <a class="el" href="structaxutil__env.html">axutil_env_t</a> *env, axis2_char_t *localname, axis2_char_t *namespace_uri)          </td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
write empty_element with localname and namespace uri. <dl compact><dt><b>Parameters:</b></dt><dd>
  <table border="0" cellspacing="2" cellpadding="0">
    <tr><td valign="top"></td><td valign="top"><em>writer</em>&nbsp;</td><td>xml writer </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>env</em>&nbsp;</td><td>environment </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>localname</em>&nbsp;</td><td>localname </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>namespace</em>&nbsp;</td><td>uri </td></tr>
  </table>
</dl>
<dl class="return" compact><dt><b>Returns:</b></dt><dd>status of the op, AXIS2_SUCCESS on success, AXIS2_FAILURE on error. </dd></dl>

</div>
</div><p>
<a class="anchor" name="1b5832263ff6777425b0a02370e69e2c"></a><!-- doxytag: member="axiom_xml_writer_ops::write_empty_element_with_namespace_prefix" ref="1b5832263ff6777425b0a02370e69e2c" args=")(axiom_xml_writer_t *writer, const axutil_env_t *env, axis2_char_t *localname, axis2_char_t *namespace_uri, axis2_char_t *prefix)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">axis2_status_t( *  <a class="el" href="structaxiom__xml__writer__ops.html#1b5832263ff6777425b0a02370e69e2c">axiom_xml_writer_ops::write_empty_element_with_namespace_prefix</a>)(<a class="el" href="structaxiom__xml__writer.html">axiom_xml_writer_t</a> *writer, const <a class="el" href="structaxutil__env.html">axutil_env_t</a> *env, axis2_char_t *localname, axis2_char_t *namespace_uri, axis2_char_t *prefix)          </td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
write empty element with namespace uri and prefix <dl compact><dt><b>Parameters:</b></dt><dd>
  <table border="0" cellspacing="2" cellpadding="0">
    <tr><td valign="top"></td><td valign="top"><em>writer</em>&nbsp;</td><td>xml_writer </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>env</em>&nbsp;</td><td>environment </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>localname</em>&nbsp;</td><td>localname </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>namespace_uri</em>&nbsp;</td><td>namespace uri </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>prefix</em>&nbsp;</td><td>prefix </td></tr>
  </table>
</dl>
<dl class="return" compact><dt><b>Returns:</b></dt><dd>status of the op, AXIS2_SUCCESS on success, AXIS2_FAILURE on error. </dd></dl>

</div>
</div><p>
<a class="anchor" name="8527242f1ab3148202bc6199a138181b"></a><!-- doxytag: member="axiom_xml_writer_ops::write_end_element" ref="8527242f1ab3148202bc6199a138181b" args=")(axiom_xml_writer_t *writer, const axutil_env_t *env)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">axis2_status_t( *  <a class="el" href="structaxiom__xml__writer__ops.html#8527242f1ab3148202bc6199a138181b">axiom_xml_writer_ops::write_end_element</a>)(<a class="el" href="structaxiom__xml__writer.html">axiom_xml_writer_t</a> *writer, const <a class="el" href="structaxutil__env.html">axutil_env_t</a> *env)          </td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
write end tag with correct localname prefix resolved internally <dl compact><dt><b>Parameters:</b></dt><dd>
  <table border="0" cellspacing="2" cellpadding="0">
    <tr><td valign="top"></td><td valign="top"><em>writer</em>&nbsp;</td><td>xml writer </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>env</em>&nbsp;</td><td>environment </td></tr>
  </table>
</dl>
<dl class="return" compact><dt><b>Returns:</b></dt><dd>status of the op, AXIS2_SUCCESS on success, AXIS2_FAILURE on failure </dd></dl>

</div>
</div><p>
<a class="anchor" name="3138b51841a55f98918bf692cf7801c2"></a><!-- doxytag: member="axiom_xml_writer_ops::write_end_document" ref="3138b51841a55f98918bf692cf7801c2" args=")(axiom_xml_writer_t *writer, const axutil_env_t *env)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">axis2_status_t( *  <a class="el" href="structaxiom__xml__writer__ops.html#3138b51841a55f98918bf692cf7801c2">axiom_xml_writer_ops::write_end_document</a>)(<a class="el" href="structaxiom__xml__writer.html">axiom_xml_writer_t</a> *writer, const <a class="el" href="structaxutil__env.html">axutil_env_t</a> *env)          </td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
write end document <dl compact><dt><b>Parameters:</b></dt><dd>
  <table border="0" cellspacing="2" cellpadding="0">
    <tr><td valign="top"></td><td valign="top"><em>writer</em>&nbsp;</td><td>xml writer </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>env</em>&nbsp;</td><td>environment </td></tr>
  </table>
</dl>
<dl class="return" compact><dt><b>Returns:</b></dt><dd>status of the op AXIS2_SUCCESS on success, AXIS2_FAILURE on error. </dd></dl>

</div>
</div><p>
<a class="anchor" name="3cfbfc24a004f6dc69ddf4a794e0f4dc"></a><!-- doxytag: member="axiom_xml_writer_ops::write_attribute" ref="3cfbfc24a004f6dc69ddf4a794e0f4dc" args=")(axiom_xml_writer_t *writer, const axutil_env_t *env, axis2_char_t *localname, axis2_char_t *value)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">axis2_status_t( *  <a class="el" href="structaxiom__xml__writer__ops.html#3cfbfc24a004f6dc69ddf4a794e0f4dc">axiom_xml_writer_ops::write_attribute</a>)(<a class="el" href="structaxiom__xml__writer.html">axiom_xml_writer_t</a> *writer, const <a class="el" href="structaxutil__env.html">axutil_env_t</a> *env, axis2_char_t *localname, axis2_char_t *value)          </td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
write attribute with localname and value <dl compact><dt><b>Parameters:</b></dt><dd>
  <table border="0" cellspacing="2" cellpadding="0">
    <tr><td valign="top"></td><td valign="top"><em>writer</em>&nbsp;</td><td>writer </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>env</em>&nbsp;</td><td>environment </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>localname</em>&nbsp;</td><td>localname </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>value</em>&nbsp;</td><td>text value of attribute </td></tr>
  </table>
</dl>
<dl class="return" compact><dt><b>Returns:</b></dt><dd>status of the op AXIS2_SUCCESS on success, AXIS2_FAILURE on error. </dd></dl>

</div>
</div><p>
<a class="anchor" name="9be76a40295724f89c21460a0cbb420e"></a><!-- doxytag: member="axiom_xml_writer_ops::write_attribute_with_namespace" ref="9be76a40295724f89c21460a0cbb420e" args=")(axiom_xml_writer_t *writer, const axutil_env_t *env, axis2_char_t *localname, axis2_char_t *value, axis2_char_t *namespace_uri)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">axis2_status_t( *  <a class="el" href="structaxiom__xml__writer__ops.html#9be76a40295724f89c21460a0cbb420e">axiom_xml_writer_ops::write_attribute_with_namespace</a>)(<a class="el" href="structaxiom__xml__writer.html">axiom_xml_writer_t</a> *writer, const <a class="el" href="structaxutil__env.html">axutil_env_t</a> *env, axis2_char_t *localname, axis2_char_t *value, axis2_char_t *namespace_uri)          </td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
<dl compact><dt><b>Parameters:</b></dt><dd>
  <table border="0" cellspacing="2" cellpadding="0">
    <tr><td valign="top"></td><td valign="top"><em>writer</em>&nbsp;</td><td></td></tr>
    <tr><td valign="top"></td><td valign="top"><em>env</em>&nbsp;</td><td>environment </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>localname</em>&nbsp;</td><td></td></tr>
    <tr><td valign="top"></td><td valign="top"><em>value</em>&nbsp;</td><td>text value of attribute </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>namespace</em>&nbsp;</td><td>uri namespace uri </td></tr>
  </table>
</dl>
<dl class="return" compact><dt><b>Returns:</b></dt><dd>status code of the op AXIS2_SUCCESS on success, AXIS2_FAILURE on error. </dd></dl>

</div>
</div><p>
<a class="anchor" name="b95d7b90c1debb4474301a63248679dc"></a><!-- doxytag: member="axiom_xml_writer_ops::write_attribute_with_namespace_prefix" ref="b95d7b90c1debb4474301a63248679dc" args=")(axiom_xml_writer_t *writer, const axutil_env_t *env, axis2_char_t *localname, axis2_char_t *value, axis2_char_t *namespace_uri, axis2_char_t *prefix)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">axis2_status_t( *  <a class="el" href="structaxiom__xml__writer__ops.html#b95d7b90c1debb4474301a63248679dc">axiom_xml_writer_ops::write_attribute_with_namespace_prefix</a>)(<a class="el" href="structaxiom__xml__writer.html">axiom_xml_writer_t</a> *writer, const <a class="el" href="structaxutil__env.html">axutil_env_t</a> *env, axis2_char_t *localname, axis2_char_t *value, axis2_char_t *namespace_uri, axis2_char_t *prefix)          </td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
<dl compact><dt><b>Parameters:</b></dt><dd>
  <table border="0" cellspacing="2" cellpadding="0">
    <tr><td valign="top"></td><td valign="top"><em>writer</em>&nbsp;</td><td>xml_writer </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>env</em>&nbsp;</td><td>environment </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>localname</em>&nbsp;</td><td>localname </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>value</em>&nbsp;</td><td>text value of attribute </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>namespace</em>&nbsp;</td><td>uri namespaceuri </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>prefix</em>&nbsp;</td><td>prefix </td></tr>
  </table>
</dl>

</div>
</div><p>
<a class="anchor" name="9342c2366cc765c44bf9830eb793b968"></a><!-- doxytag: member="axiom_xml_writer_ops::write_namespace" ref="<KEY>" args=")(axiom_xml_writer_t *writer, const axutil_env_t *env, axis2_char_t *prefix, axis2_char_t *namespace_uri)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">axis2_status_t( *  <a class="el" href="structaxiom__xml__writer__ops.html#9342c2366cc765c44bf9830eb793b968">axiom_xml_writer_ops::write_namespace</a>)(<a class="el" href="structaxiom__xml__writer.html">axiom_xml_writer_t</a> *writer, const <a class="el" href="structaxutil__env.html">axutil_env_t</a> *env, axis2_char_t *prefix, axis2_char_t *namespace_uri)          </td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
<dl compact><dt><b>Parameters:</b></dt><dd>
  <table border="0" cellspacing="2" cellpadding="0">
    <tr><td valign="top"></td><td valign="top"><em>writer</em>&nbsp;</td><td>xml_writer </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>env</em>&nbsp;</td><td>environment </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>prefix</em>&nbsp;</td><td>prefix </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>namespace</em>&nbsp;</td><td>uri namespaceuri </td></tr>
  </table>
</dl>
<dl class="return" compact><dt><b>Returns:</b></dt><dd>status of op AXIS2_SUCCESS on success, AXIS2_FAILURE on error. </dd></dl>

</div>
</div><p>
<a class="anchor" name="d5e89aade5d5eea3dfa737e93aa3af2b"></a><!-- doxytag: member="axiom_xml_writer_ops::write_default_namespace" ref="d5e89aade5d5eea3dfa737e93aa3af2b" args=")(axiom_xml_writer_t *writer, const axutil_env_t *env, axis2_char_t *namespace_uri)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">axis2_status_t( *  <a class="el" href="structaxiom__xml__writer__ops.html#d5e89aade5d5eea3dfa737e93aa3af2b">axiom_xml_writer_ops::write_default_namespace</a>)(<a class="el" href="structaxiom__xml__writer.html">axiom_xml_writer_t</a> *writer, const <a class="el" href="structaxutil__env.html">axutil_env_t</a> *env, axis2_char_t *namespace_uri)          </td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
<dl compact><dt><b>Parameters:</b></dt><dd>
  <table border="0" cellspacing="2" cellpadding="0">
    <tr><td valign="top"></td><td valign="top"><em>writer</em>&nbsp;</td><td>xml_writer </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>env</em>&nbsp;</td><td>environment </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>namespace</em>&nbsp;</td><td>uri namespaceuri </td></tr>
  </table>
</dl>
<dl class="return" compact><dt><b>Returns:</b></dt><dd>status of op AXIS2_SUCCESS on success, AXIS2_FAILURE on error. </dd></dl>

</div>
</div><p>
<a class="anchor" name="31ae05dafb0f580135ea5aba9ba14ab8"></a><!-- doxytag: member="axiom_xml_writer_ops::write_comment" ref="31ae05dafb0f580135ea5aba9ba14ab8" args=")(axiom_xml_writer_t *writer, const axutil_env_t *env, axis2_char_t *value)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">axis2_status_t( *  <a class="el" href="structaxiom__xml__writer__ops.html#31ae05dafb0f580135ea5aba9ba14ab8">axiom_xml_writer_ops::write_comment</a>)(<a class="el" href="structaxiom__xml__writer.html">axiom_xml_writer_t</a> *writer, const <a class="el" href="structaxutil__env.html">axutil_env_t</a> *env, axis2_char_t *value)          </td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
<dl compact><dt><b>Parameters:</b></dt><dd>
  <table border="0" cellspacing="2" cellpadding="0">
    <tr><td valign="top"></td><td valign="top"><em>writer</em>&nbsp;</td><td>xml_writer </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>env</em>&nbsp;</td><td>environment </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>value</em>&nbsp;</td><td>value </td></tr>
  </table>
</dl>
<dl class="return" compact><dt><b>Returns:</b></dt><dd>status of op AXIS2_SUCCESS on success, AXIS2_FAILURE on error. </dd></dl>

</div>
</div><p>
<a class="anchor" name="7c4747974cc1beb1234f1a60670cac1d"></a><!-- doxytag: member="axiom_xml_writer_ops::write_processing_instruction" ref="7c4747974cc1beb1234f1a60670cac1d" args=")(axiom_xml_writer_t *writer, const axutil_env_t *env, axis2_char_t *target)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">axis2_status_t( *  <a class="el" href="structaxiom__xml__writer__ops.html#7c4747974cc1beb1234f1a60670cac1d">axiom_xml_writer_ops::write_processing_instruction</a>)(<a class="el" href="structaxiom__xml__writer.html">axiom_xml_writer_t</a> *writer, const <a class="el" href="structaxutil__env.html">axutil_env_t</a> *env, axis2_char_t *target)          </td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
<dl compact><dt><b>Parameters:</b></dt><dd>
  <table border="0" cellspacing="2" cellpadding="0">
    <tr><td valign="top"></td><td valign="top"><em>writer</em>&nbsp;</td><td>xml_writer </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>env</em>&nbsp;</td><td>environment </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>target</em>&nbsp;</td><td>pi target </td></tr>
  </table>
</dl>
<dl class="return" compact><dt><b>Returns:</b></dt><dd>status of op AXIS2_SUCCESS on success, AXIS2_FAILURE on error. </dd></dl>

</div>
</div><p>
<a class="anchor" name="a2c34385c2e7cad6914b637cb0324157"></a><!-- doxytag: member="axiom_xml_writer_ops::write_processing_instruction_data" ref="a2c34385c2e7cad6914b637cb0324157" args=")(axiom_xml_writer_t *writer, const axutil_env_t *env, axis2_char_t *target, axis2_char_t *data)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">axis2_status_t( *  <a class="el" href="structaxiom__xml__writer__ops.html#a2c34385c2e7cad6914b637cb0324157">axiom_xml_writer_ops::write_processing_instruction_data</a>)(<a class="el" href="structaxiom__xml__writer.html">axiom_xml_writer_t</a> *writer, const <a class="el" href="structaxutil__env.html">axutil_env_t</a> *env, axis2_char_t *target, axis2_char_t *data)          </td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
<dl compact><dt><b>Parameters:</b></dt><dd>
  <table border="0" cellspacing="2" cellpadding="0">
    <tr><td valign="top"></td><td valign="top"><em>writer</em>&nbsp;</td><td>xml_writer </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>env</em>&nbsp;</td><td>environment </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>target</em>&nbsp;</td><td>pi target </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>data</em>&nbsp;</td><td>pi data </td></tr>
  </table>
</dl>
<dl class="return" compact><dt><b>Returns:</b></dt><dd>status of op AXIS2_SUCCESS on success, AXIS2_FAILURE on error. </dd></dl>

</div>
</div><p>
<a class="anchor" name="dc350f03c1f39657762665d91e3da7de"></a><!-- doxytag: member="axiom_xml_writer_ops::write_cdata" ref="dc350f03c1f39657762665d91e3da7de" args=")(axiom_xml_writer_t *writer, const axutil_env_t *env, axis2_char_t *data)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">axis2_status_t( *  <a class="el" href="structaxiom__xml__writer__ops.html#dc350f03c1f39657762665d91e3da7de">axiom_xml_writer_ops::write_cdata</a>)(<a class="el" href="structaxiom__xml__writer.html">axiom_xml_writer_t</a> *writer, const <a class="el" href="structaxutil__env.html">axutil_env_t</a> *env, axis2_char_t *data)          </td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
<dl compact><dt><b>Parameters:</b></dt><dd>
  <table border="0" cellspacing="2" cellpadding="0">
    <tr><td valign="top"></td><td valign="top"><em>writer</em>&nbsp;</td><td>xml_writer </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>env</em>&nbsp;</td><td>environment </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>data</em>&nbsp;</td><td>cdata </td></tr>
  </table>
</dl>
<dl class="return" compact><dt><b>Returns:</b></dt><dd>status of op AXIS2_SUCCESS on success, AXIS2_FAILURE on error. </dd></dl>

</div>
</div><p>
<a class="anchor" name="ad4bd1835177f7a4cd51b9684eb70fbb"></a><!-- doxytag: member="axiom_xml_writer_ops::write_dtd" ref="ad4bd1835177f7a4cd51b9684eb70fbb" args=")(axiom_xml_writer_t *writer, const axutil_env_t *env, axis2_char_t *dtd)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">axis2_status_t( *  <a class="el" href="structaxiom__xml__writer__ops.html#ad4bd1835177f7a4cd51b9684eb70fbb">axiom_xml_writer_ops::write_dtd</a>)(<a class="el" href="structaxiom__xml__writer.html">axiom_xml_writer_t</a> *writer, const <a class="el" href="structaxutil__env.html">axutil_env_t</a> *env, axis2_char_t *dtd)          </td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
<dl compact><dt><b>Parameters:</b></dt><dd>
  <table border="0" cellspacing="2" cellpadding="0">
    <tr><td valign="top"></td><td valign="top"><em>writer</em>&nbsp;</td><td>xml_writer </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>env</em>&nbsp;</td><td>environment </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>dtd</em>&nbsp;</td><td>dtd </td></tr>
  </table>
</dl>
<dl class="return" compact><dt><b>Returns:</b></dt><dd>status of op AXIS2_SUCCESS on success, AXIS2_FAILURE on error. </dd></dl>

</div>
</div><p>
<a class="anchor" name="f7515527519017374d3c999857c19b4b"></a><!-- doxytag: member="axiom_xml_writer_ops::write_entity_ref" ref="f7515527519017374d3c999857c19b4b" args=")(axiom_xml_writer_t *writer, const axutil_env_t *env, axis2_char_t *name)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">axis2_status_t( *  <a class="el" href="structaxiom__xml__writer__ops.html#f7515527519017374d3c999857c19b4b">axiom_xml_writer_ops::write_entity_ref</a>)(<a class="el" href="structaxiom__xml__writer.html">axiom_xml_writer_t</a> *writer, const <a class="el" href="structaxutil__env.html">axutil_env_t</a> *env, axis2_char_t *name)          </td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
<dl compact><dt><b>Parameters:</b></dt><dd>
  <table border="0" cellspacing="2" cellpadding="0">
    <tr><td valign="top"></td><td valign="top"><em>writer</em>&nbsp;</td><td>xml_writer </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>env</em>&nbsp;</td><td>environment </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>name</em>&nbsp;</td><td>name </td></tr>
  </table>
</dl>
<dl class="return" compact><dt><b>Returns:</b></dt><dd>status of op AXIS2_SUCCESS on success, AXIS2_FAILURE on error. </dd></dl>

</div>
</div><p>
<a class="anchor" name="ceb71f8c3dc1e4d6dae3b8e098238752"></a><!-- doxytag: member="axiom_xml_writer_ops::write_start_document" ref="ceb71f8c3dc1e4d6dae3b8e098238752" args=")(axiom_xml_writer_t *writer, const axutil_env_t *env)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">axis2_status_t( *  <a class="el" href="structaxiom__xml__writer__ops.html#ceb71f8c3dc1e4d6dae3b8e098238752">axiom_xml_writer_ops::write_start_document</a>)(<a class="el" href="structaxiom__xml__writer.html">axiom_xml_writer_t</a> *writer, const <a class="el" href="structaxutil__env.html">axutil_env_t</a> *env)          </td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
<dl compact><dt><b>Parameters:</b></dt><dd>
  <table border="0" cellspacing="2" cellpadding="0">
    <tr><td valign="top"></td><td valign="top"><em>writer</em>&nbsp;</td><td>xml_writer </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>env</em>&nbsp;</td><td>environment </td></tr>
  </table>
</dl>
<dl class="return" compact><dt><b>Returns:</b></dt><dd>status of op AXIS2_SUCCESS on success, AXIS2_FAILURE on error. </dd></dl>

</div>
</div><p>
<a class="anchor" name="6369d78e9156277c1130c09d023d9620"></a><!-- doxytag: member="axiom_xml_writer_ops::write_start_document_with_version" ref="6369d78e9156277c1130c09d023d9620" args=")(axiom_xml_writer_t *writer, const axutil_env_t *env, axis2_char_t *version)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">axis2_status_t( *  <a class="el" href="structaxiom__xml__writer__ops.html#6369d78e9156277c1130c09d023d9620">axiom_xml_writer_ops::write_start_document_with_version</a>)(<a class="el" href="structaxiom__xml__writer.html">axiom_xml_writer_t</a> *writer, const <a class="el" href="structaxutil__env.html">axutil_env_t</a> *env, axis2_char_t *version)          </td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
<dl compact><dt><b>Parameters:</b></dt><dd>
  <table border="0" cellspacing="2" cellpadding="0">
    <tr><td valign="top"></td><td valign="top"><em>writer</em>&nbsp;</td><td>xml_writer </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>env</em>&nbsp;</td><td>environment </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>version</em>&nbsp;</td><td>version </td></tr>
  </table>
</dl>
<dl class="return" compact><dt><b>Returns:</b></dt><dd>status of op AXIS2_SUCCESS on success, AXIS2_FAILURE on error. </dd></dl>

</div>
</div><p>
<a class="anchor" name="50e3ebac8e1e667ec229d879cf854158"></a><!-- doxytag: member="axiom_xml_writer_ops::write_start_document_with_version_encoding" ref="50e3ebac8e1e667ec229d879cf854158" args=")(axiom_xml_writer_t *writer, const axutil_env_t *env, axis2_char_t *version, axis2_char_t *encoding)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">axis2_status_t( *  <a class="el" href="structaxiom__xml__writer__ops.html#50e3ebac8e1e667ec229d879cf854158">axiom_xml_writer_ops::write_start_document_with_version_encoding</a>)(<a class="el" href="structaxiom__xml__writer.html">axiom_xml_writer_t</a> *writer, const <a class="el" href="structaxutil__env.html">axutil_env_t</a> *env, axis2_char_t *version, axis2_char_t *encoding)          </td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
<dl compact><dt><b>Parameters:</b></dt><dd>
  <table border="0" cellspacing="2" cellpadding="0">
    <tr><td valign="top"></td><td valign="top"><em>writer</em>&nbsp;</td><td>xml_writer </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>env</em>&nbsp;</td><td>environment </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>version</em>&nbsp;</td><td>version </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>encoding</em>&nbsp;</td><td>encoding </td></tr>
  </table>
</dl>
<dl class="return" compact><dt><b>Returns:</b></dt><dd>status of op AXIS2_SUCCESS on success, AXIS2_FAILURE on error. </dd></dl>

</div>
</div><p>
<a class="anchor" name="bd4740a7d7c8ec64f9989942adf95683"></a><!-- doxytag: member="axiom_xml_writer_ops::write_characters" ref="bd4740a7d7c8ec64f9989942adf95683" args=")(axiom_xml_writer_t *writer, const axutil_env_t *env, axis2_char_t *text)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">axis2_status_t( *  <a class="el" href="structaxiom__xml__writer__ops.html#bd4740a7d7c8ec64f9989942adf95683">axiom_xml_writer_ops::write_characters</a>)(<a class="el" href="structaxiom__xml__writer.html">axiom_xml_writer_t</a> *writer, const <a class="el" href="structaxutil__env.html">axutil_env_t</a> *env, axis2_char_t *text)          </td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
<dl compact><dt><b>Parameters:</b></dt><dd>
  <table border="0" cellspacing="2" cellpadding="0">
    <tr><td valign="top"></td><td valign="top"><em>writer</em>&nbsp;</td><td>xml_writer </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>env</em>&nbsp;</td><td>environment </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>text</em>&nbsp;</td><td>text </td></tr>
  </table>
</dl>
<dl class="return" compact><dt><b>Returns:</b></dt><dd>status of op AXIS2_SUCCESS on success, AXIS2_FAILURE on error. </dd></dl>

</div>
</div><p>
<a class="anchor" name="d146f0f6c94b7b3e2e9c9a771f09bfbd"></a><!-- doxytag: member="axiom_xml_writer_ops::get_prefix" ref="d146f0f6c94b7b3e2e9c9a771f09bfbd" args=")(axiom_xml_writer_t *writer, const axutil_env_t *env, axis2_char_t *uri)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">axis2_char_t*( *  <a class="el" href="structaxiom__xml__writer__ops.html#d146f0f6c94b7b3e2e9c9a771f09bfbd">axiom_xml_writer_ops::get_prefix</a>)(<a class="el" href="structaxiom__xml__writer.html">axiom_xml_writer_t</a> *writer, const <a class="el" href="structaxutil__env.html">axutil_env_t</a> *env, axis2_char_t *uri)          </td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
<dl compact><dt><b>Parameters:</b></dt><dd>
  <table border="0" cellspacing="2" cellpadding="0">
    <tr><td valign="top"></td><td valign="top"><em>writer</em>&nbsp;</td><td>xml_writer </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>env</em>&nbsp;</td><td>environment </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>uri</em>&nbsp;</td><td>uri </td></tr>
  </table>
</dl>
<dl class="return" compact><dt><b>Returns:</b></dt><dd>status of op AXIS2_SUCCESS on success, AXIS2_FAILURE on error. </dd></dl>

</div>
</div><p>
<a class="anchor" name="1dc7aaaa7a93eb687a9df7954284a8ca"></a><!-- doxytag: member="axiom_xml_writer_ops::set_prefix" ref="1dc7aaaa7a93eb687a9df7954284a8ca" args=")(axiom_xml_writer_t *writer, const axutil_env_t *env, axis2_char_t *prefix, axis2_char_t *uri)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">axis2_status_t( *  <a class="el" href="structaxiom__xml__writer__ops.html#1dc7aaaa7a93eb687a9df7954284a8ca">axiom_xml_writer_ops::set_prefix</a>)(<a class="el" href="structaxiom__xml__writer.html">axiom_xml_writer_t</a> *writer, const <a class="el" href="structaxutil__env.html">axutil_env_t</a> *env, axis2_char_t *prefix, axis2_char_t *uri)          </td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
<dl compact><dt><b>Parameters:</b></dt><dd>
  <table border="0" cellspacing="2" cellpadding="0">
    <tr><td valign="top"></td><td valign="top"><em>writer</em>&nbsp;</td><td>xml_writer </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>env</em>&nbsp;</td><td>environment </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>prefix</em>&nbsp;</td><td>prefix </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>uri</em>&nbsp;</td><td>uri </td></tr>
  </table>
</dl>
<dl class="return" compact><dt><b>Returns:</b></dt><dd>status of op AXIS2_SUCCESS on success, AXIS2_FAILURE on error. </dd></dl>

</div>
</div><p>
<a class="anchor" name="6e82203c544a4ff8b4fd83446d6f7917"></a><!-- doxytag: member="axiom_xml_writer_ops::set_default_prefix" ref="6e82203c544a4ff8b4fd83446d6f7917" args=")(axiom_xml_writer_t *writer, const axutil_env_t *env, axis2_char_t *uri)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">axis2_status_t( *  <a class="el" href="structaxiom__xml__writer__ops.html#6e82203c544a4ff8b4fd83446d6f7917">axiom_xml_writer_ops::set_default_prefix</a>)(<a class="el" href="structaxiom__xml__writer.html">axiom_xml_writer_t</a> *writer, const <a class="el" href="structaxutil__env.html">axutil_env_t</a> *env, axis2_char_t *uri)          </td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
<dl compact><dt><b>Parameters:</b></dt><dd>
  <table border="0" cellspacing="2" cellpadding="0">
    <tr><td valign="top"></td><td valign="top"><em>writer</em>&nbsp;</td><td>xml_writer </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>env</em>&nbsp;</td><td>environment </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>uri</em>&nbsp;</td><td>uri </td></tr>
  </table>
</dl>
<dl class="return" compact><dt><b>Returns:</b></dt><dd>status of op AXIS2_SUCCESS on success, AXIS2_FAILURE on error. </dd></dl>

</div>
</div><p>
<a class="anchor" name="18abc643865e39e695f7c818680c0b98"></a><!-- doxytag: member="axiom_xml_writer_ops::write_encoded" ref="18abc643865e39e695f7c818680c0b98" args=")(axiom_xml_writer_t *writer, const axutil_env_t *env, axis2_char_t *text, int in_attr)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">axis2_status_t( *  <a class="el" href="structaxiom__xml__writer__ops.html#18abc643865e39e695f7c818680c0b98">axiom_xml_writer_ops::write_encoded</a>)(<a class="el" href="structaxiom__xml__writer.html">axiom_xml_writer_t</a> *writer, const <a class="el" href="structaxutil__env.html">axutil_env_t</a> *env, axis2_char_t *text, int in_attr)          </td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
<dl compact><dt><b>Parameters:</b></dt><dd>
  <table border="0" cellspacing="2" cellpadding="0">
    <tr><td valign="top"></td><td valign="top"><em>writer</em>&nbsp;</td><td>xml_writer </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>env</em>&nbsp;</td><td>environment </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>text</em>&nbsp;</td><td>text </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>in_attr</em>&nbsp;</td><td></td></tr>
  </table>
</dl>
<dl class="return" compact><dt><b>Returns:</b></dt><dd>status of op AXIS2_SUCCESS on success, AXIS2_FAILURE on error. </dd></dl>

</div>
</div><p>
<hr>The documentation for this struct was generated from the following file:<ul>
<li><a class="el" href="axiom__xml__writer_8h-source.html">axiom_xml_writer.h</a></ul>
<hr size="1"><address style="text-align: right;"><small>Generated on Fri Apr 17 11:49:48 2009 for Axis2/C by&nbsp;
<a href="http://www.doxygen.org/index.html">
<img src="doxygen.png" alt="doxygen" align="middle" border="0"></a> 1.5.3 </small></address>
</body>
</html>


<|start_filename|>util/include/platforms/windows/axutil_thread_windows.h<|end_filename|>

/*
 * 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 AXIS2_THREAD_WINDOWS_H
#define AXIS2_THREAD_WINDOWS_H

#include <windows.h>
#include <process.h>
#include <axutil_thread.h>

#define SHELL_PATH "cmd.exe"

typedef HANDLE axis2_os_thread_t;   /* Native thread */

/* Chosen for us by apr_initialize */

struct axutil_thread_t
{
    HANDLE *td;
    void *data;
    axutil_thread_start_t func;
    axis2_bool_t try_exit;
};

struct axutil_threadattr_t
{
    int detach;
    size_t stacksize;
};

struct axutil_threadkey_t
{
    DWORD key;
};

struct axutil_thread_once_t
{
    long value;
};

AXIS2_EXTERN axutil_threadattr_t *AXIS2_CALL
axutil_threadattr_create(
    axutil_allocator_t * allocator);

/* Destroy the threadattr object */
AXIS2_EXTERN axis2_status_t AXIS2_CALL
threadattr_cleanup(
    void *data);

AXIS2_EXTERN axis2_status_t AXIS2_CALL
axutil_threadattr_detach_set(
    axutil_threadattr_t * attr,
    axis2_bool_t detached);

AXIS2_EXTERN axis2_status_t AXIS2_CALL
axutil_threadattr_detach_get(
    axutil_threadattr_t * attr,
    const axutil_env_t * env);

AXIS2_EXTERN axis2_status_t AXIS2_CALL
axutil_threadattr_stacksize_set(
    axutil_threadattr_t * attr,
    size_t stacksize);

AXIS2_EXTERN axutil_thread_t *AXIS2_CALL
axutil_thread_create(
    axutil_allocator_t * allocator,
    axutil_threadattr_t * attr,
    axutil_thread_start_t func,
    void *data);

AXIS2_EXTERN axis2_status_t AXIS2_CALL
axutil_thread_exit(
    axutil_thread_t * thd,
    axutil_allocator_t * allocator);

AXIS2_EXTERN axis2_os_thread_t AXIS2_CALL
axis2_os_thread_current(
    void);

AXIS2_EXTERN int AXIS2_CALL
axis2_os_thread_equal(
    axis2_os_thread_t tid1,
    axis2_os_thread_t tid2);

AXIS2_EXTERN axis2_status_t AXIS2_CALL
axutil_thread_join(
    axutil_thread_t * thd);

AXIS2_EXTERN axis2_status_t AXIS2_CALL
axutil_thread_detach(
    axutil_thread_t * thd);

AXIS2_EXTERN axis2_os_thread_t AXIS2_CALL
axis2_os_thread_get(
    axutil_thread_t * thd,
    const axutil_env_t * env);

AXIS2_EXTERN axutil_thread_once_t *AXIS2_CALL
axutil_thread_once_init(
    axutil_allocator_t * allocator);

AXIS2_EXTERN axis2_status_t AXIS2_CALL
axutil_thread_once(
    axutil_thread_once_t * control,
    void(*func)(void));

#endif                          /* AXIS2_THREAD_WINDOWS_H */


<|start_filename|>xdocs/api/html/group__axutil__rand.html<|end_filename|>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html><head><meta http-equiv="Content-Type" content="text/html;charset=UTF-8">
<title>Axis2/C: rand</title>
<link href="doxygen.css" rel="stylesheet" type="text/css">
<link href="tabs.css" rel="stylesheet" type="text/css">
</head><body>
<!-- Generated by Doxygen 1.5.3 -->
<div class="tabs">
  <ul>
    <li><a href="index.html"><span>Main&nbsp;Page</span></a></li>
    <li><a href="modules.html"><span>Modules</span></a></li>
    <li><a href="annotated.html"><span>Classes</span></a></li>
    <li><a href="files.html"><span>Files</span></a></li>
    <li><a href="dirs.html"><span>Directories</span></a></li>
    <li><a href="pages.html"><span>Related&nbsp;Pages</span></a></li>
    <li><a href="examples.html"><span>Examples</span></a></li>
    <li>
      <form action="search.php" method="get">
        <table cellspacing="0" cellpadding="0" border="0">
          <tr>
            <td><label>&nbsp;<u>S</u>earch&nbsp;for&nbsp;</label></td>
            <td><input type="text" name="query" value="" size="20" accesskey="s"/></td>
          </tr>
        </table>
      </form>
    </li>
  </ul>
</div>
<h1>rand<br>
<small>
[<a class="el" href="group__axis2__util.html">utilities</a>]</small>
</h1><table border="0" cellpadding="0" cellspacing="0">
<tr><td></td></tr>
<tr><td colspan="2"><br><h2>Files</h2></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top">file &nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="axutil__rand_8h.html">axutil_rand.h</a></td></tr>

<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">A simple thread safe and reentrant random number generator. <br></td></tr>

<p>
<tr><td colspan="2"><br><h2>Functions</h2></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top">AXIS2_EXTERN int&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__axutil__rand.html#g928a5beaf5c048d213b71ac49bef82b0">axutil_rand</a> (unsigned int *seedp)</td></tr>

<tr><td class="memItemLeft" nowrap align="right" valign="top">AXIS2_EXTERN int&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__axutil__rand.html#gc3ab8d15d9b62a720c6a2b423ea578eb">axutil_rand_with_range</a> (unsigned int *seedp, int start, int end)</td></tr>

<tr><td class="memItemLeft" nowrap align="right" valign="top">AXIS2_EXTERN unsigned int&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__axutil__rand.html#ge538ffc1401b35cac57c8573a860db0e">axutil_rand_get_seed_value_based_on_time</a> (const <a class="el" href="structaxutil__env.html">axutil_env_t</a> *env)</td></tr>

</table>
<hr><h2>Function Documentation</h2>
<a class="anchor" name="g928a5beaf5c048d213b71ac49bef82b0"></a><!-- doxytag: member="axutil_rand.h::axutil_rand" ref="g928a5beaf5c048d213b71ac49bef82b0" args="(unsigned int *seedp)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">AXIS2_EXTERN int axutil_rand           </td>
          <td>(</td>
          <td class="paramtype">unsigned int *&nbsp;</td>
          <td class="paramname"> <em>seedp</em>          </td>
          <td>&nbsp;)&nbsp;</td>
          <td width="100%"></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
This is reentrant and thread safe simple random number generator function. it is passed an pointer to an unsigned int state value which is used inside the function and changed in each call. <dl compact><dt><b>Parameters:</b></dt><dd>
  <table border="0" cellspacing="2" cellpadding="0">
    <tr><td valign="top"></td><td valign="top"><em>seedp</em>&nbsp;</td><td>pointer to an unsigned int used as the internal state </td></tr>
  </table>
</dl>
<dl class="return" compact><dt><b>Returns:</b></dt><dd>int <code>int<code> </code></code></dd></dl>

</div>
</div><p>
<a class="anchor" name="ge538ffc1401b35cac57c8573a860db0e"></a><!-- doxytag: member="axutil_rand.h::axutil_rand_get_seed_value_based_on_time" ref="ge538ffc1401b35cac57c8573a860db0e" args="(const axutil_env_t *env)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">AXIS2_EXTERN unsigned int axutil_rand_get_seed_value_based_on_time           </td>
          <td>(</td>
          <td class="paramtype">const <a class="el" href="structaxutil__env.html">axutil_env_t</a> *&nbsp;</td>
          <td class="paramname"> <em>env</em>          </td>
          <td>&nbsp;)&nbsp;</td>
          <td width="100%"></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
A random seed value generated based on the time 
</div>
</div><p>
<a class="anchor" name="gc3ab8d15d9b62a720c6a2b423ea578eb"></a><!-- doxytag: member="axutil_rand.h::axutil_rand_with_range" ref="gc3ab8d15d9b62a720c6a2b423ea578eb" args="(unsigned int *seedp, int start, int end)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">AXIS2_EXTERN int axutil_rand_with_range           </td>
          <td>(</td>
          <td class="paramtype">unsigned int *&nbsp;</td>
          <td class="paramname"> <em>seedp</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">int&nbsp;</td>
          <td class="paramname"> <em>start</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">int&nbsp;</td>
          <td class="paramname"> <em>end</em></td><td>&nbsp;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td><td width="100%"></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
This is reentrant and thread safe simple random number generator function. it is passed an pointer to an unsigned int state value which is used inside the function and changed in each call. Also it is passed a range in which the random number is selected <dl compact><dt><b>Parameters:</b></dt><dd>
  <table border="0" cellspacing="2" cellpadding="0">
    <tr><td valign="top"></td><td valign="top"><em>seedp</em>&nbsp;</td><td>pointer to an unsigned int used as the internal state </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>start</em>&nbsp;</td><td>start of the range </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>end</em>&nbsp;</td><td>end of the range </td></tr>
  </table>
</dl>
<dl class="return" compact><dt><b>Returns:</b></dt><dd>int If invalid range is entered -1 is returned <code>int<code> </code></code></dd></dl>

</div>
</div><p>
<hr size="1"><address style="text-align: right;"><small>Generated on Fri Apr 17 11:49:46 2009 for Axis2/C by&nbsp;
<a href="http://www.doxygen.org/index.html">
<img src="doxygen.png" alt="doxygen" align="middle" border="0"></a> 1.5.3 </small></address>
</body>
</html>


<|start_filename|>xdocs/api/html/group__wss10.html<|end_filename|>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html><head><meta http-equiv="Content-Type" content="text/html;charset=UTF-8">
<title>Axis2/C: Wss10</title>
<link href="doxygen.css" rel="stylesheet" type="text/css">
<link href="tabs.css" rel="stylesheet" type="text/css">
</head><body>
<!-- Generated by Doxygen 1.5.3 -->
<div class="tabs">
  <ul>
    <li><a href="index.html"><span>Main&nbsp;Page</span></a></li>
    <li><a href="modules.html"><span>Modules</span></a></li>
    <li><a href="annotated.html"><span>Classes</span></a></li>
    <li><a href="files.html"><span>Files</span></a></li>
    <li><a href="dirs.html"><span>Directories</span></a></li>
    <li><a href="pages.html"><span>Related&nbsp;Pages</span></a></li>
    <li><a href="examples.html"><span>Examples</span></a></li>
    <li>
      <form action="search.php" method="get">
        <table cellspacing="0" cellpadding="0" border="0">
          <tr>
            <td><label>&nbsp;<u>S</u>earch&nbsp;for&nbsp;</label></td>
            <td><input type="text" name="query" value="" size="20" accesskey="s"/></td>
          </tr>
        </table>
      </form>
    </li>
  </ul>
</div>
<h1>Wss10</h1><table border="0" cellpadding="0" cellspacing="0">
<tr><td></td></tr>
<tr><td colspan="2"><br><h2>Typedefs</h2></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="g4acad91523c067733bad624c9f3c2408"></a><!-- doxytag: member="wss10::rp_wss10_t" ref="g4acad91523c067733bad624c9f3c2408" args="" -->
typedef struct rp_wss10_t&nbsp;</td><td class="memItemRight" valign="bottom"><b>rp_wss10_t</b></td></tr>

<tr><td colspan="2"><br><h2>Functions</h2></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="g6d08375d18f74af7bb4b74fd650c9fd2"></a><!-- doxytag: member="wss10::rp_wss10_create" ref="g6d08375d18f74af7bb4b74fd650c9fd2" args="(const axutil_env_t *env)" -->
AXIS2_EXTERN rp_wss10_t *&nbsp;</td><td class="memItemRight" valign="bottom"><b>rp_wss10_create</b> (const <a class="el" href="structaxutil__env.html">axutil_env_t</a> *env)</td></tr>

<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="ge00929e7b7bc522ff990f35ed161e1cd"></a><!-- doxytag: member="wss10::rp_wss10_free" ref="ge00929e7b7bc522ff990f35ed161e1cd" args="(rp_wss10_t *wss10, const axutil_env_t *env)" -->
AXIS2_EXTERN void&nbsp;</td><td class="memItemRight" valign="bottom"><b>rp_wss10_free</b> (rp_wss10_t *wss10, const <a class="el" href="structaxutil__env.html">axutil_env_t</a> *env)</td></tr>

<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="g66412d8dec816fcae8b66ef88612a135"></a><!-- doxytag: member="wss10::rp_wss10_get_must_support_ref_key_identifier" ref="g66412d8dec816fcae8b66ef88612a135" args="(rp_wss10_t *wss10, const axutil_env_t *env)" -->
AXIS2_EXTERN axis2_bool_t&nbsp;</td><td class="memItemRight" valign="bottom"><b>rp_wss10_get_must_support_ref_key_identifier</b> (rp_wss10_t *wss10, const <a class="el" href="structaxutil__env.html">axutil_env_t</a> *env)</td></tr>

<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="g4c4ae46173260b395853ba5bdd283bb5"></a><!-- doxytag: member="wss10::rp_wss10_set_must_support_ref_key_identifier" ref="<KEY>" args="(rp_wss10_t *wss10, const axutil_env_t *env, axis2_bool_t must_support_ref_key_identifier)" -->
AXIS2_EXTERN <br>
axis2_status_t&nbsp;</td><td class="memItemRight" valign="bottom"><b>rp_wss10_set_must_support_ref_key_identifier</b> (rp_wss10_t *wss10, const <a class="el" href="structaxutil__env.html">axutil_env_t</a> *env, axis2_bool_t must_support_ref_key_identifier)</td></tr>

<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="g071a5e3c79f6d06b2779c5cf30581f81"></a><!-- doxytag: member="wss10::rp_wss10_get_must_support_ref_issuer_serial" ref="g071a5e3c79f6d06b2779c5cf30581f81" args="(rp_wss10_t *wss10, const axutil_env_t *env)" -->
AXIS2_EXTERN axis2_bool_t&nbsp;</td><td class="memItemRight" valign="bottom"><b>rp_wss10_get_must_support_ref_issuer_serial</b> (rp_wss10_t *wss10, const <a class="el" href="structaxutil__env.html">axutil_env_t</a> *env)</td></tr>

<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="gbd74037b430fef44183d4d00a662d28b"></a><!-- doxytag: member="wss10::rp_wss10_set_must_support_ref_issuer_serial" ref="gbd74037b430fef44183d4d00a662d28b" args="(rp_wss10_t *wss10, const axutil_env_t *env, axis2_bool_t must_support_ref_issuer_serial)" -->
AXIS2_EXTERN <br>
axis2_status_t&nbsp;</td><td class="memItemRight" valign="bottom"><b>rp_wss10_set_must_support_ref_issuer_serial</b> (rp_wss10_t *wss10, const <a class="el" href="structaxutil__env.html">axutil_env_t</a> *env, axis2_bool_t must_support_ref_issuer_serial)</td></tr>

<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="g26c231cfb87af46792017f204d90a0a7"></a><!-- doxytag: member="wss10::rp_wss10_get_must_support_ref_external_uri" ref="g26c231cfb87af46792017f204d90a0a7" args="(rp_wss10_t *wss10, const axutil_env_t *env)" -->
AXIS2_EXTERN axis2_bool_t&nbsp;</td><td class="memItemRight" valign="bottom"><b>rp_wss10_get_must_support_ref_external_uri</b> (rp_wss10_t *wss10, const <a class="el" href="structaxutil__env.html">axutil_env_t</a> *env)</td></tr>

<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="g7fe6d48c6c0840d2cfe4cf808ee5fd43"></a><!-- doxytag: member="wss10::rp_wss10_set_must_support_ref_external_uri" ref="g7fe6d48c6c0840d2cfe4cf808ee5fd43" args="(rp_wss10_t *wss10, const axutil_env_t *env, axis2_bool_t must_support_ref_external_uri)" -->
AXIS2_EXTERN <br>
axis2_status_t&nbsp;</td><td class="memItemRight" valign="bottom"><b>rp_wss10_set_must_support_ref_external_uri</b> (rp_wss10_t *wss10, const <a class="el" href="structaxutil__env.html">axutil_env_t</a> *env, axis2_bool_t must_support_ref_external_uri)</td></tr>

<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="g5ae05bb6ebb65d1541caf6ca09b244ee"></a><!-- doxytag: member="wss10::rp_wss10_get_must_support_ref_embedded_token" ref="g5ae05bb6ebb65d1541caf6ca09b244ee" args="(rp_wss10_t *wss10, const axutil_env_t *env)" -->
AXIS2_EXTERN axis2_bool_t&nbsp;</td><td class="memItemRight" valign="bottom"><b>rp_wss10_get_must_support_ref_embedded_token</b> (rp_wss10_t *wss10, const <a class="el" href="structaxutil__env.html">axutil_env_t</a> *env)</td></tr>

<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="gbf46ea24bc9745c4cb03a65642da86d5"></a><!-- doxytag: member="wss10::rp_wss10_set_must_support_ref_embedded_token" ref="gbf46ea24bc9745c4cb03a65642da86d5" args="(rp_wss10_t *wss10, const axutil_env_t *env, axis2_bool_t must_support_ref_embedded_token)" -->
AXIS2_EXTERN <br>
axis2_status_t&nbsp;</td><td class="memItemRight" valign="bottom"><b>rp_wss10_set_must_support_ref_embedded_token</b> (rp_wss10_t *wss10, const <a class="el" href="structaxutil__env.html">axutil_env_t</a> *env, axis2_bool_t must_support_ref_embedded_token)</td></tr>

<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="gec4a75a48ef367e02bb6cdc60b07d188"></a><!-- doxytag: member="wss10::rp_wss10_increment_ref" ref="gec4a75a48ef367e02bb6cdc60b07d188" args="(rp_wss10_t *wss10, const axutil_env_t *env)" -->
AXIS2_EXTERN <br>
axis2_status_t&nbsp;</td><td class="memItemRight" valign="bottom"><b>rp_wss10_increment_ref</b> (rp_wss10_t *wss10, const <a class="el" href="structaxutil__env.html">axutil_env_t</a> *env)</td></tr>

</table>
<hr size="1"><address style="text-align: right;"><small>Generated on Fri Apr 17 11:49:47 2009 for Axis2/C by&nbsp;
<a href="http://www.doxygen.org/index.html">
<img src="doxygen.png" alt="doxygen" align="middle" border="0"></a> 1.5.3 </small></address>
</body>
</html>


<|start_filename|>test/core/context/test_context.c<|end_filename|>

/*
 * 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.
 */

#include <axis2_conf_ctx.h>
#include <axis2_svc_grp.h>
#include <axis2_const.h>
#include <axutil_allocator.h>
#include <axutil_env.h>
#include <stdio.h>

void
axis2_test_conf_ctx_init(
    )
{
    struct axis2_conf *conf = NULL;
    struct axis2_svc_grp_ctx *svc_grp_ctx1 = NULL;
    struct axis2_svc_grp_ctx *svc_grp_ctx2 = NULL;
    struct axis2_svc_grp *svc_grp1 = NULL;
    struct axis2_svc_grp *svc_grp2 = NULL;
    struct axis2_conf_ctx *conf_ctx = NULL;
    struct axis2_svc_ctx *svc_ctx1 = NULL;
    struct axis2_svc_ctx *svc_ctx2 = NULL;
    struct axis2_svc *svc1 = NULL;
    struct axis2_svc *svc2 = NULL;
    struct axutil_qname *qname1 = NULL;
    struct axutil_qname *qname2 = NULL;
    struct axis2_op_ctx *op_ctx1 = NULL;
    struct axis2_op_ctx *op_ctx2 = NULL;
    struct axis2_op *op = NULL;
    struct axutil_hash_t *op_ctx_map = NULL;
    struct axutil_hash_t *svc_ctx_map = NULL;
    struct axutil_hash_t *svc_grp_ctx_map = NULL;

    axis2_status_t status = AXIS2_FAILURE;
    axutil_allocator_t *allocator = axutil_allocator_init(NULL);
    const axutil_env_t *env = axutil_env_create(allocator);

    conf = axis2_conf_create(env);

    op = axis2_op_create(env);

    conf_ctx = axis2_conf_ctx_create(env, conf);

    svc_grp1 = axis2_svc_grp_create(env);
    svc_grp2 = axis2_svc_grp_create(env);

    svc_grp_ctx1 = axis2_svc_grp_ctx_create(env, svc_grp1, conf_ctx);
    svc_grp_ctx2 = axis2_svc_grp_ctx_create(env, svc_grp2, conf_ctx);

    qname1 = axutil_qname_create(env, "name1", NULL, NULL);
    qname2 = axutil_qname_create(env, "name2", NULL, NULL);

    svc1 = axis2_svc_create_with_qname(env, qname1);
    svc2 = axis2_svc_create_with_qname(env, qname2);

    svc_ctx1 = axis2_svc_ctx_create(env, svc1, svc_grp_ctx1);
    svc_ctx2 = axis2_svc_ctx_create(env, svc2, svc_grp_ctx2);

    op = axis2_op_create(env);
    op_ctx1 = axis2_op_ctx_create(env, op, svc_ctx1);
    op_ctx2 = axis2_op_ctx_create(env, op, svc_ctx2);

    op_ctx_map = axis2_conf_ctx_get_op_ctx_map(conf_ctx, env);

    if (op_ctx_map)
    {
        axutil_hash_set(op_ctx_map, "op_ctx1", AXIS2_HASH_KEY_STRING, op_ctx1);
        axutil_hash_set(op_ctx_map, "op_ctx2", AXIS2_HASH_KEY_STRING, op_ctx2);
    }

    svc_ctx_map = axis2_conf_ctx_get_svc_ctx_map(conf_ctx, env);

    if (svc_ctx_map)
    {
        axutil_hash_set(svc_ctx_map, "svc_ctx1", AXIS2_HASH_KEY_STRING,
                        svc_ctx1);
        axutil_hash_set(svc_ctx_map, "svc_ctx2", AXIS2_HASH_KEY_STRING,
                        svc_ctx2);
    }

    svc_grp_ctx_map = axis2_conf_ctx_get_svc_grp_ctx_map(conf_ctx, env);

    if (svc_grp_ctx_map)
    {
        axutil_hash_set(svc_ctx_map, "svc_grp_ctx1", AXIS2_HASH_KEY_STRING,
                        svc_grp_ctx1);
        axutil_hash_set(svc_ctx_map, "svc_grp_ctx2", AXIS2_HASH_KEY_STRING,
                        svc_grp_ctx2);
    }

    status = axis2_conf_ctx_init(conf_ctx, env, conf);

    if (status != AXIS2_SUCCESS)
    {
        printf("ERROR %d\n", status);
    }
    else
        printf("SUCCESS\n");

    axis2_conf_ctx_free(conf_ctx, env);
}

int
main(
    )
{
    axis2_test_conf_ctx_init();
    return 0;
}


<|start_filename|>util/src/platforms/unix/uuid_gen_unix.c<|end_filename|>

/*
 * 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.
 */

#include <config.h>

#include <sys/ioctl.h>
#include <string.h>
#include <arpa/inet.h>
#include <netinet/in.h>
#include <netdb.h>
#include <fcntl.h>
#include <unistd.h>
#include <sys/types.h>
#include <sys/socket.h>
#include <sys/time.h>

#ifdef HAVE_LINUX_IF_H
# include <linux/if.h>
#else
# ifdef HAVE_NET_IF_H
#  include <sys/sockio.h>
#  include <net/if.h>
#  include <net/if_arp.h>
# endif
# ifdef HAVE_NET_IF_TYPES_H
#  include <net/if_types.h>
# endif
# ifdef HAVE_NET_IF_DL_H
#  include <net/if_dl.h>
# endif
#endif
#ifdef HAVE_GETIFADDRS
#include <ifaddrs.h>
#endif
#include <platforms/unix/axutil_uuid_gen_unix.h>
#include <platforms/axutil_platform_auto_sense.h>

/* We need these static variables to track throughout the program execution */
static axis2_bool_t axutil_uuid_gen_is_first = AXIS2_TRUE;
static struct axutil_uuid_st axutil_uuid_static;

axutil_uuid_t *AXIS2_CALL
axutil_uuid_gen_v1(
    )
{
    struct timeval time_now;
    struct timeval tv;
    unsigned long long time_val;
    unsigned long long time_val2;
    unsigned short int clck = 0;
    axutil_uuid_t *ret_uuid = NULL;
    unsigned short int time_high_version = 0;

    if (AXIS2_TRUE == axutil_uuid_gen_is_first)
    {
        char *mac_addr = axutil_uuid_get_mac_addr();
        if (!mac_addr)
        {
            memset(axutil_uuid_static.mac, 0, 6);
        }
        else
        {
            memcpy(axutil_uuid_static.mac, mac_addr, 6);
        }
        axutil_uuid_static.time_seq = 0;
        axutil_uuid_static.clock = 0;
        free(mac_addr);
        axutil_uuid_gen_is_first = AXIS2_FALSE;
    }
    /*
     *  GENERATE TIME
     */

    /* determine current system time and sequence counter */
    if (gettimeofday(&time_now, NULL) == -1)
        return NULL;

    /* check whether system time changed since last retrieve */
    if (!
        (time_now.tv_sec == axutil_uuid_static.time_last.tv_sec &&
         time_now.tv_usec == axutil_uuid_static.time_last.tv_usec))
    {
        /* reset time sequence counter and continue */
        axutil_uuid_static.time_seq = 0;
    }

    /* until we are out of UUIDs per tick, increment
       the time/tick sequence counter and continue */
    while (axutil_uuid_static.time_seq < UUIDS_PER_TICK)
    {
        axutil_uuid_static.time_seq++;
    }
    /* sleep for 1000ns (1us) */
    tv.tv_sec = 0;
    tv.tv_usec = 1;
    /*
       The following select causes severe performance problems. 
       Hence commenting out. I am not sure why this is required. - Samisa.    
       select(0, NULL, NULL, NULL, &tv); */

    time_val = (unsigned long long) time_now.tv_sec * 10000000ull;
    time_val += (unsigned long long) time_now.tv_usec * 10ull;

    ret_uuid = malloc(sizeof(axutil_uuid_t));

    time_val += UUID_TIMEOFFSET;
    /* compensate for low resolution system clock by adding
       the time/tick sequence counter */
    if (axutil_uuid_static.time_seq > 0)
        time_val += (unsigned long long) axutil_uuid_static.time_seq;

    time_val2 = time_val;
    ret_uuid->time_low = (unsigned long) time_val2;
    time_val2 >>= 32;
    ret_uuid->time_mid = (unsigned short int) time_val2;
    time_val2 >>= 16;
    time_high_version = (unsigned short int) time_val2;

    /* store the 60 LSB of the time in the UUID and make version 1 */
    time_high_version <<= 4;
    time_high_version &= 0xFFF0;
    time_high_version |= 0x0001;
    ret_uuid->time_high_version = time_high_version;

    /*
     *  GENERATE CLOCK
     */

    /* retrieve current clock sequence */
    clck = axutil_uuid_static.clock;

    /* generate new random clock sequence (initially or if the
       time has stepped backwards) or else just increase it */
    if (clck == 0 ||
        (time_now.tv_sec < axutil_uuid_static.time_last.tv_sec ||
         (time_now.tv_sec == axutil_uuid_static.time_last.tv_sec &&
          time_now.tv_usec < axutil_uuid_static.time_last.tv_usec)))
    {
        srand(time_now.tv_usec);
        clck = rand();
    }
    else
    {
        clck++;
    }
    clck %= (2 << 14);

    /* store back new clock sequence */
    axutil_uuid_static.clock = clck;

    clck &= 0x1FFF;
    clck |= 0x2000;

    /*
     *  FINISH
     */
    /* remember current system time for next iteration */
    axutil_uuid_static.time_last.tv_sec = time_now.tv_sec;
    axutil_uuid_static.time_last.tv_usec = time_now.tv_usec;

    if (!ret_uuid)
    {
        return NULL;
    }
    ret_uuid->clock_variant = clck;
    memcpy(ret_uuid->mac_addr, axutil_uuid_static.mac, 6);
    return ret_uuid;
}

axis2_char_t *AXIS2_CALL
axutil_platform_uuid_gen(
    char *s)
{
    axutil_uuid_t *uuid_struct = NULL;
    axis2_char_t *uuid_str = NULL;
    unsigned char mac[7];
    char mac_hex[13];

    if (!s)
    {
        return NULL;
    }
    uuid_struct = axutil_uuid_gen_v1();
    if (!uuid_struct)
    {
        return NULL;
    }
    uuid_str = s;
    if (!uuid_str)
    {
        return NULL;
    }
    memcpy(mac, uuid_struct->mac_addr, 6);
    sprintf(mac_hex, "%02x%02x%02x%02x%02x%02x", mac[0], mac[1], mac[2], mac[3],
            mac[4], mac[5]);
    sprintf(uuid_str, "%08x-%04x-%04x-%04x-%s", uuid_struct->time_low,
            uuid_struct->time_mid, uuid_struct->time_high_version,
            uuid_struct->clock_variant, mac_hex);
    free(uuid_struct);
    uuid_struct = NULL;
    return uuid_str;
}

#ifdef HAVE_LINUX_IF_H          /* Linux */

char *AXIS2_CALL
axutil_uuid_get_mac_addr(
    )
{
    struct ifreq ifr;
    struct ifreq *IFR;
    struct ifconf ifc;
    struct sockaddr *sa;
    int s = 0;
    int i = 0;
    char *buffer = NULL;
    char buf[1024];
    int ok = AXIS2_FALSE;

    if ((s = socket(PF_INET, SOCK_DGRAM, 0)) < 0)
        return NULL;

    ifc.ifc_len = sizeof(buf);
    ifc.ifc_buf = buf;
    ioctl(s, SIOCGIFCONF, &ifc);
    IFR = ifc.ifc_req;

    for (i = ifc.ifc_len / sizeof(struct ifreq); --i >= 0; IFR++)
    {
        strcpy(ifr.ifr_name, IFR->ifr_name);
        /*sprintf(ifr.ifr_name, "eth0"); */
        if (ioctl(s, SIOCGIFFLAGS, &ifr) == 0)
        {
            if (!(ifr.ifr_flags & IFF_LOOPBACK))
            {
                if (ioctl(s, SIOCGIFHWADDR, &ifr) == 0)
                {
                    ok = AXIS2_TRUE;
                    break;
                }
            }
        }
    }
    buffer = (char *) malloc(6 * sizeof(char));
    if (ok)
    {
        sa = (struct sockaddr *) &ifr.ifr_addr;
        for (i = 0; i < 6; i++)
            buffer[i] = (unsigned char) (sa->sa_data[i] & 0xff);
    }
    else
    {
        for (i = 0; i < 6; i++)
            buffer[i] = (unsigned char) ((AXIS2_LOCAL_MAC_ADDR[i]) - '0');
    }
    close(s);
    return buffer;
}

#else

/* NetBSD, MacOSX, etc... */
/* Solaris >= 11.1 seems to have getifaddrs, but it doesn't function as expected */
#if defined HAVE_GETIFADDRS && !(defined(__sun) && (defined(__svr4__) || defined(__SVR4)))

#ifndef max
# define        max(a,b)        ((a) > (b) ? (a) : (b))
#endif                          /* !max */

char *AXIS2_CALL
axutil_uuid_get_mac_addr(
    )
{
    struct ifaddrs *ifap;
    struct ifaddrs *ifap_head;
    const struct sockaddr_dl *sdl;
    unsigned char *ucp;
    int i;
    char *data_ptr;

    if (getifaddrs(&ifap_head) < 0)
        return NULL;
    for (ifap = ifap_head; ifap != NULL; ifap = ifap->ifa_next)
    {
        if (ifap->ifa_addr != NULL && ifap->ifa_addr->sa_family == AF_LINK)
        {
            sdl = (const struct sockaddr_dl *) (void *) ifap->ifa_addr;
            ucp = (unsigned char *) (sdl->sdl_data + sdl->sdl_nlen);
            if (sdl->sdl_alen > 0)
            {
                data_ptr = malloc(6 * sizeof(char));
                for (i = 0; i < 6 && i < sdl->sdl_alen; i++, ucp++)
                    data_ptr[i] = (unsigned char) (*ucp & 0xff);

                freeifaddrs(ifap_head);
                return data_ptr;
            }
        }
    }
    freeifaddrs(ifap_head);
    return NULL;
}
# else                          /* Solaris-ish */

/* code modified from that posted on:
* http://forum.sun.com/jive/thread.jspa?threadID=84804&tstart=30
*/

char *AXIS2_CALL
axutil_uuid_get_mac_addr(
    )
{
    char hostname[MAXHOSTNAMELEN];
    char *data_ptr;
    struct hostent *he;
    struct arpreq ar;
    struct sockaddr_in *sa;
    int s;
    int i;

    if (gethostname(hostname, sizeof(hostname)) < 0)
        return NULL;
    if ((he = gethostbyname(hostname)) == NULL)
        return NULL;
    if ((s = socket(PF_INET, SOCK_DGRAM, IPPROTO_UDP)) < 0)
        return NULL;
    memset(&ar, 0, sizeof(ar));
    sa = (struct sockaddr_in *) ((void *) &(ar.arp_pa));
    sa->sin_family = AF_INET;
    memcpy(&(sa->sin_addr), *(he->h_addr_list), sizeof(struct in_addr));
    if (ioctl(s, SIOCGARP, &ar) < 0)
    {
        close(s);
        return NULL;
    }
    close(s);
    if (!(ar.arp_flags & ATF_COM))
        return NULL;
    data_ptr = malloc(6 * sizeof(char));
    for (i = 0; i < 6; i++)
        data_ptr[i] = (unsigned char) (ar.arp_ha.sa_data[i] & 0xff);

    return data_ptr;
}
# endif
#endif


<|start_filename|>axiom/include/axiom_mtom_sending_callback.h<|end_filename|>
/*
* 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 AXIOM_MTOM_SENDING_CALLBACK_H 
#define AXIOM_MTOM_SENDING_CALLBACK_H

/**
  * @file axiom_mtom_sending_callback.h
  * @brief sending callback for attachment sending 
  */

/**
* @defgroup mtom_sending_callback
* @ingroup axiom
* @{
*/

#include <axutil_env.h>
#include <axutil_param.h>

#ifdef __cplusplus
extern "C"
{
#endif

    /**
     * Type name for struct axiom_mtom_sending_callback_ops 
     */
    typedef struct axiom_mtom_sending_callback_ops axiom_mtom_sending_callback_ops_t;

    /**
     * Type name for struct axiom_mtom_sending_callback
     */
    typedef struct axiom_mtom_sending_callback axiom_mtom_sending_callback_t;


    /**
     * init_handler will init the attachment storage
     */

    /**
     * load will read the attachemnt by part from the storage
     */

    /**
     * close_handler will close the storage
     */

    struct axiom_mtom_sending_callback_ops
    {
        void* (AXIS2_CALL*
            init_handler)(axiom_mtom_sending_callback_t *mtom_sending_callback,
            const axutil_env_t* env,
            void *user_param);

        int (AXIS2_CALL*
            load_data)(axiom_mtom_sending_callback_t *mtom_sending_callback,
            const axutil_env_t* env,
            void *handler,
            axis2_char_t **buffer);

        axis2_status_t (AXIS2_CALL*
            close_handler)(axiom_mtom_sending_callback_t *mtom_sending_callback,
            const axutil_env_t* env,
            void *handler);

        axis2_status_t (AXIS2_CALL*
            free)(axiom_mtom_sending_callback_t *mtom_sending_callback,
            const axutil_env_t* env);
    };

    struct axiom_mtom_sending_callback
    {
        axiom_mtom_sending_callback_ops_t *ops;
		axutil_param_t *param;
    };

    /*************************** Function macros **********************************/
#define AXIOM_MTOM_SENDING_CALLBACK_INIT_HANDLER(mtom_sending_callback, env, user_param) \
        ((mtom_sending_callback)->ops->init_handler(mtom_sending_callback, env, user_param))

#define AXIOM_MTOM_SENDING_CALLBACK_LOAD_DATA(mtom_sending_callback, env, handler, buffer) \
        ((mtom_sending_callback)->ops->load_data(mtom_sending_callback, env, handler, buffer))

#define AXIOM_MTOM_SENDING_CALLBACK_CLOSE_HANDLER(mtom_sending_callback, env, handler) \
        ((mtom_sending_callback)->ops->close_handler(mtom_sending_callback, env, handler))

#define AXIOM_MTOM_SENDING_CALLBACK_FREE(mtom_sending_callback, env) \
        ((mtom_sending_callback)->ops->free(mtom_sending_callback, env))

    /** @} */
#ifdef __cplusplus
}
#endif

#endif                          /* AXIOM_MTOM_SENDING_CALLBACK */




<|start_filename|>axiom/include/axiom_element.h<|end_filename|>

/*
 * 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 AXIOM_ELEMENT_H
#define AXIOM_ELEMENT_H

#include <axiom_namespace.h>
#include <axiom_attribute.h>
#include <axiom_output.h>
#include <axiom_node.h>
#include <axiom_children_iterator.h>
#include <axiom_children_qname_iterator.h>
#include <axiom_child_element_iterator.h>
#include <axutil_hash.h>
#include <axutil_utils.h>

#ifdef __cplusplus
extern "C"
{
#endif

    typedef struct axiom_element axiom_element_t;

    /**
     * @defgroup axiom_element element
     * @ingroup axiom_om
     * @{
     */

    /**
      * Creates an AXIOM element with given local name
      * @param env Environment. MUST NOT be NULL.
      * @param parent parent of the element node to be created. can be NULL.
      * @param localname local name of the elment. cannot be NULL.
      * @param ns namespace of the element.  can be NULL.
      *                       If the value of the namespace has not already been declared
      *                       then the namespace structure ns will be declared and will be
      *                       freed when the tree is freed.
      *                       If the value of the namespace has already been declared using
      *                       another namespace structure then the namespace structure ns
      *                       will be freed.
      * @param node This is an out parameter. cannot be NULL.
      *                       Returns the node corresponding to the comment created.
      *                       Node type will be set to AXIOM_ELEMENT
      * @return a pointer to the newly created element struct
      */
    AXIS2_EXTERN axiom_element_t *AXIS2_CALL
    axiom_element_create(
        const axutil_env_t * env,
        axiom_node_t * parent,
        const axis2_char_t * localname,
        axiom_namespace_t * ns,
        axiom_node_t ** node);

    /**
      * Creates an AXIOM element with given qname
      * @param env Environment. MUST NOT be NULL.
      * @param parent parent of the element node to be created. can be NULL.
      * @param qname qname of the elment.cannot be NULL.
      * @param node This is an out parameter. cannot be NULL.
      *                       Returns the node corresponding to the comment created.
      *                       Node type will be set to AXIOM_ELEMENT
      * @return a pointer to the newly created element struct
      */
    AXIS2_EXTERN axiom_element_t *AXIS2_CALL
    axiom_element_create_with_qname(
        const axutil_env_t * env,
        axiom_node_t * parent,
        const axutil_qname_t * qname,
        axiom_node_t ** node);
    /*
     * Find a namespace in the scope of the document.
     * Start to find from the given node and go up the hierarchy.
     * @param om_element pointer to om_element_struct contained in
     *        node , 
     * @param env Environment. MUST NOT be NULL.
     * @param node node containing an instance of an AXIOM element,cannot be NULL.
     * @param uri namespace uri..
     * @param prefix namespace prefix. can be NULL.
     * @return pointer to the namespace, if found, else NULL. On error, returns 
     *           NULL and sets error code in environment,s error
     */
    AXIS2_EXTERN axiom_namespace_t *AXIS2_CALL
    axiom_element_find_namespace(
        axiom_element_t * om_element,
        const axutil_env_t * env,
        axiom_node_t * node,
        const axis2_char_t * uri,
        const axis2_char_t * prefix);

    /**
      * Declare a namespace in current element (in the scope of this element ).
      * It checks to see if it is already declared.
      * @param om_element contained in the om node struct
      * @param env Environment. MUST NOT be NULL.
      * @param node node containing an instance of an AXIOM element.
      * @param ns pointer to the namespace struct to be declared
      * @return satus of the op. AXIS2_SUCCESS on success else AXIS2_FAILURE.
      */
    AXIS2_EXTERN axis2_status_t AXIS2_CALL
    axiom_element_declare_namespace(
        axiom_element_t * om_element,
        const axutil_env_t * env,
        axiom_node_t * node,
        axiom_namespace_t * ns);
    /**
     * @param om_element pointer to om_element
     * @param env environment MUST not be NULL
     * @param om_node pointer to this element node
     * @return satus of the op. AXIS2_SUCCESS on success else AXIS2_FAILURE.
     *
     */
    AXIS2_EXTERN axis2_status_t AXIS2_CALL
    axiom_element_declare_namespace_assume_param_ownership(
        axiom_element_t * om_element,
        const axutil_env_t * env,
        axiom_namespace_t * ns);

    /**
     * Finds a namespace using qname
     * Start to find from the given node and go up the hierarchy.
     * @param om_element om_element contained in node
     * @param env Environment. MUST NOT be NULL.
     * @param node node containing an instance of an AXIOM element, cannot be NULL.   
     * @param qname qname of the namespace to be found. cannot be NULL.
     * @return pointer to the namespace, if found, else NULL. On error, returns 
     *           NULL and sets the error code in environment's error struct.
     */
    AXIS2_EXTERN axiom_namespace_t *AXIS2_CALL
    axiom_element_find_namespace_with_qname(
        axiom_element_t * om_element,
        const axutil_env_t * env,
        axiom_node_t * node,
        axutil_qname_t * qname);

    /**
      * Adds an attribute to current element The current element takes responsibility of the assigned attribute
      * @param om_element element to which the attribute is to be added.cannot be NULL.
      * @param env Environment. MUST NOT be NULL.
      * @param attribute attribute to be added.
      * @param node axiom_node_t node that om_element is contained in
      * @return satus of the op. AXIS2_SUCCESS on success else AXIS2_FAILURE.
      */
    AXIS2_EXTERN axis2_status_t AXIS2_CALL
    axiom_element_add_attribute(
        axiom_element_t * om_element,
        const axutil_env_t * env,
        axiom_attribute_t * attribute,
        axiom_node_t * node);

    /**
      * Gets (finds) the attribute with the given qname
      * @param element element whose attribute is to be found. 
      * @param env Environment. MUST NOT be NULL.
      * @qname qname qname of the attribute to be found. should not be NULL.
      * @return a pointer to the attribute with given qname if found, else NULL.
      *           On error, returns NULL and sets the error code in environment's error struct.
      */
    AXIS2_EXTERN axiom_attribute_t *AXIS2_CALL
    axiom_element_get_attribute(
        axiom_element_t * om_element,
        const axutil_env_t * env,
        axutil_qname_t * qname);

    /**
    * Gets (finds) the attribute value with the given qname
    * @param element element whose attribute is to be found. 
    * @param env Environment. MUST NOT be NULL.
    * @qname qname qname of the attribute to be found. should not be NULL.
    * @return the attribute value with given qname if found, else NULL.
    *  On error, returns NULL and sets the error code in environment's error struct.
    */
    AXIS2_EXTERN axis2_char_t *AXIS2_CALL
    axiom_element_get_attribute_value(
        axiom_element_t * om_element,
        const axutil_env_t * env,
        axutil_qname_t * qname);

    /**
      * Frees given element 
      * @param element AXIOM element to be freed.
      * @param env Environment. MUST NOT be NULL.
       * @return satus of the op. AXIS2_SUCCESS on success ,AXIS2_FAILURE on error.
      */
    AXIS2_EXTERN void AXIS2_CALL
    axiom_element_free(
        axiom_element_t * element,
        const axutil_env_t * env);

    /**
      * Serializes the start part of the given element
      * @param element element to be serialized.
      * @param env Environment. MUST NOT be NULL.
      * @param om_output AXIOM output handler to be used in serializing
      * @return satus of the op. AXIS2_SUCCESS on success else AXIS2_FAILURE
      */
    AXIS2_EXTERN axis2_status_t AXIS2_CALL
    axiom_element_serialize_start_part(
        axiom_element_t * om_element,
        const axutil_env_t * env,
        axiom_output_t * om_output,
        axiom_node_t * ele_node);

    /**
     * Serializes the end part of the given element. serialize_start_part must 
     *     have been called before calling this method.
     * @param om_element pointer to om_element
     * @param env environment MUST not be NULL
     * @param om_node pointer to this element node
     * @param om_output AXIOM output handler to be used in serializing
     * @return satus of the op. AXIS2_SUCCESS on success else AXIS2_FAILURE
     */
    AXIS2_EXTERN axis2_status_t AXIS2_CALL
    axiom_element_serialize_end_part(
        axiom_element_t * om_element,
        const axutil_env_t * env,
        axiom_output_t * om_output);

    /**
     * finds a namespace in current element's scope, 
     *     by uri or prefix or both
     * @param om_element pointer to om_element
     * @param env environment MUST not be NULL
     * @param uri namespace uri, may be null
     * @param prefix prefix 
     * @return axiom_namespace_t if found, else return NULL
     */

    AXIS2_EXTERN axiom_namespace_t *AXIS2_CALL
    axiom_element_find_declared_namespace(
        axiom_element_t * om_element,
        const axutil_env_t * env,
        const axis2_char_t * uri,
        const axis2_char_t * prefix);

    /**
     * returns the localname of this element
     * @param om_element pointer to om_element
     * @param env environment MUST not be NULL
     * @returns localname of element, returns NULL on error.
     */
    AXIS2_EXTERN axis2_char_t *AXIS2_CALL
    axiom_element_get_localname(
        axiom_element_t * om_element,
        const axutil_env_t * env);

    /**
     * set the localname of this element
     * @param om_element pointer to om_element
     * @param env environment MUST not be NULL
     * @localname text value to be set as localname 
     * @returns status code of op, AXIS2_SUCCESS on success,
     *                   AXIS2_FAILURE on error.
     */
    AXIS2_EXTERN axis2_status_t AXIS2_CALL
    axiom_element_set_localname(
        axiom_element_t * om_element,
        const axutil_env_t * env,
        const axis2_char_t * localname);

    /**
     * get the namespace  of om_element 
     * @param om_element om_element struct
     * @param env environemt, MUST NOT be NULL.
     * @returns pointer to axiom_namespace_t struct 
     *          NULL if there is no namespace associated with the element,
     *          NULL on error with error code set to environment's error
     */
    AXIS2_EXTERN axiom_namespace_t *AXIS2_CALL
    axiom_element_get_namespace(
        axiom_element_t * om_element,
        const axutil_env_t * env,
        axiom_node_t * ele_node);

    /**
     * set the namespace of the element
     * @param om_element pointer to om_element
     * @param env environment MUST not be NULL
     * @param ns pointer to namespace
     *                       If the value of the namespace has not already been declared
     *                       then the namespace structure ns will be declared and will be 
     *                       freed when the tree is freed.
     * @returns status code of the op, with error code 
     *                  set to environment's error
     */
    AXIS2_EXTERN axis2_status_t AXIS2_CALL
    axiom_element_set_namespace(
        axiom_element_t * om_element,
        const axutil_env_t * env,
        axiom_namespace_t * ns,
        axiom_node_t * node);


    /**
     * unconditionally set the namespace of the element
     * @param om_element pointer to om_element
     * @param env environment MUST not be NULL
     * @param ns pointer to namespace
     *                       The namespace ns is assumed to have been declared already.
     * @returns status code of the op, with error code
     *                  set to environment's error
     */
    AXIS2_EXTERN axis2_status_t AXIS2_CALL
    axiom_element_set_namespace_assume_param_ownership(
        axiom_element_t * om_element,
        const axutil_env_t * env,
        axiom_namespace_t * ns);

    /**
     * get  the attribute list of the element 
     * @param om_element pointer to om_element
     * @param env environment MUST not be NULL
     * @returns axutil_hash poiner to attributes hash
     * This hash table is read only 
     */
    AXIS2_EXTERN axutil_hash_t *AXIS2_CALL
    axiom_element_get_all_attributes(
        axiom_element_t * om_element,
        const axutil_env_t * env);

    /**
     * get the namespace list of the element
     * @param om_element pointer to om_element
     * @param env environment MUST not be NULL
     * @returns axutil_hash pointer to namespaces hash
     * this hash table is read only
     */
    AXIS2_EXTERN axutil_hash_t *AXIS2_CALL
    axiom_element_get_namespaces(
        axiom_element_t * om_element,
        const axutil_env_t * env);

    /**
     *@return qname of this element
     * the returned qname should not be externaly freed
     * when om_element struct is freed qname is also
     * freed 
     * @param om_element pointer to om_element
     * @param env environment MUST not be NULL
     * @param ele_node pointer to this element node
     *
     * @returns axutil_qname_t struct , NULL on failure
     */
    AXIS2_EXTERN axutil_qname_t *AXIS2_CALL
    axiom_element_get_qname(
        axiom_element_t * om_element,
        const axutil_env_t * env,
        axiom_node_t * ele_node);

    /**
     *   returns a list of children iterator
     *   returned iterator is freed when om_element struct
     *   is freed
     *   iterators reset function must be called by user
     * @param om_element pointer to om_element
     * @param env environment MUST not be NULL
     * @param element_node pointer to this element node
     *
     */
    AXIS2_EXTERN axiom_children_iterator_t *AXIS2_CALL
    axiom_element_get_children(
        axiom_element_t * om_element,
        const axutil_env_t * env,
        axiom_node_t * element_node);

    /**
     *   returns a list of children iterator with qname
     *   returned iterator is freed when om element struct
     *  is freed 
     * @param om_element pointer to om_element
     * @param env environment MUST not be NULL
     * @param element_node pointer to this element node
     * @returns children qname iterator struct
     */

    AXIS2_EXTERN axiom_children_qname_iterator_t *AXIS2_CALL
    axiom_element_get_children_with_qname(
        axiom_element_t * om_element,
        const axutil_env_t * env,
        axutil_qname_t * element_qname,
        axiom_node_t * element_node);

    /**
     * Returns the om_element corresponding to element_qname
     * @param om_element pointer to om_element
     * @param env environment MUST not be NULL
     * @param element_qname qname of the element 
     * @param om_node pointer to this element node
     * @param element_node 
     * @param child_node 
     * @returns children qname iterator struct
     */

    AXIS2_EXTERN axiom_element_t *AXIS2_CALL
    axiom_element_get_first_child_with_qname(
        axiom_element_t * om_element,
        const axutil_env_t * env,
        axutil_qname_t * element_qname,
        axiom_node_t * element_node,
        axiom_node_t ** child_node);

    /**
     * removes an attribute from the element attribute list
     * user must free this attribute, element free function does not free 
     * attributes that are not is it's attribute list
     * @param om_element pointer to om_element
     * @param env environment MUST not be NULL
     * @param om_attribute attribute to be removed
     * @return AXIS2_SUCCESS if attribute was found and removed, else 
     *           AXIS2_FAILURE
     */
    AXIS2_EXTERN axis2_status_t AXIS2_CALL
    axiom_element_remove_attribute(
        axiom_element_t * om_element,
        const axutil_env_t * env,
        axiom_attribute_t * om_attribute);

    /**
     * Sets the text of the given element.
     * caution - This method will wipe out all the text elements (and hence any
     * mixed content) before setting the text
     * @param om_element pointer to om_element
     * @param env environment MUST not be NULL
     * @param text text to set.
     * @param element_node node of element.
     * @return AXIS2_SUCCESS if attribute was found and removed, else 
     *           AXIS2_FAILURE
     */
    AXIS2_EXTERN axis2_status_t AXIS2_CALL
    axiom_element_set_text(
        axiom_element_t * om_element,
        const axutil_env_t * env,
        const axis2_char_t * text,
        axiom_node_t * element_node);

    /**
     * Select all the text children and concat them to a single string. The string 
	 * returned by this method call will be free by axiom when this method is called again. 
	 * So it is recomended to have a copy of the return value if this method is going to 
	 * be called more that once and the return values of the earlier calls are important.
     * @param om_element pointer to om_element
     * @param env environment MUST not be NULL
     * @param element node , the container node of this om element
     * @return the contanated text of all text childrens text values
     *         return null if no text children is avilable or on error
     */
    AXIS2_EXTERN axis2_char_t *AXIS2_CALL
    axiom_element_get_text(
        axiom_element_t * om_element,
        const axutil_env_t * env,
        axiom_node_t * element_node);

    /**
     * returns the first child om element of this om element node
     * @param om_element pointer to om_element
     * @param env environment MUST not be NULL
     * @param om_node pointer to this element node
     * @return om_element if one is availble otherwise return NULL
     */
    AXIS2_EXTERN axiom_element_t *AXIS2_CALL
    axiom_element_get_first_element(
        axiom_element_t * om_element,
        const axutil_env_t * env,
        axiom_node_t * element_node,
        axiom_node_t ** first_element_node);

    /**
     * returns the serilized text of this element and its children
     * @param om_element pointer to om_element
     * @param env environment MUST not be NULL
     * @param element_node the container node this on element is contained 
     * @return a char array of xml , returns NULL on error
     */
    AXIS2_EXTERN axis2_char_t *AXIS2_CALL
    axiom_element_to_string(
        axiom_element_t * om_element,
        const axutil_env_t * env,
        axiom_node_t * element_node);

    /**
     * returns an iterator with child elements of type AXIOM_ELEMENT
     * iterator is freed when om_element node is freed
     * @param om_element pointer to om_element
     * @param env environment MUST not be NULL
     * @param element_node
     * @returns axiom_child_element_iterator_t , NULL on error    
     */
    AXIS2_EXTERN axiom_child_element_iterator_t *AXIS2_CALL
    axiom_element_get_child_elements(
        axiom_element_t * om_element,
        const axutil_env_t * env,
        axiom_node_t * element_node);

    /**
     * builds this om_element_node completely, This is only possible 
     * if the om_stax_builder is associated with the om_element_node,
     * @param om_element pointer to om_element
     * @param env environment MUST not be NULL
     * @param om_node pointer to this element node
     * @param element_node corresponding om element node of this om element
     * struct 
     * @returns AXIS2_SUCCESS if this element node was successfully completed,
     * otherwise returns AXIS2_FAILURE
     */
    AXIS2_EXTERN axis2_status_t AXIS2_CALL
    axiom_element_build(
        axiom_element_t * om_element,
        const axutil_env_t * env,
        axiom_node_t * element_node);

    /**
     * retrieves the default namespace of this element , if available,
     * @param om_element pointer to om element
     * @param env axutil_environment MUST Not be NULL
     * @param element_node corresponding om element node of this om element
     * @returns pointer to default namespace if availale , NULL otherwise
     */
    AXIS2_EXTERN axiom_namespace_t *AXIS2_CALL
    axiom_element_get_default_namespace(
        axiom_element_t * om_element,
        const axutil_env_t * env,
        axiom_node_t * element_node);

    /**
     * declared a default namespace explicitly 
     * @param om_element pointer to om element
     * @param env environment MUST not be NULL
     * @param uri namespace uri of the default namespace
     * @returns the declared namespace
                                                 */
    AXIS2_EXTERN axiom_namespace_t *AXIS2_CALL
    axiom_element_declare_default_namespace(
        axiom_element_t * om_element,
        const axutil_env_t * env,
        axis2_char_t * uri);

    /**
     * checks for the namespace in the context of this element 
     * with the given prefix 
     * @param om_element pointer to om_element
     * @param env environment MUST not be NULL
     * @param om_element_node pointer to this element node
     * @returns pointer to relevent namespace 
     */
    AXIS2_EXTERN axiom_namespace_t *AXIS2_CALL
    axiom_element_find_namespace_uri(
        axiom_element_t * om_element,
        const axutil_env_t * env,
        const axis2_char_t * prefix,
        axiom_node_t * element_node);

    /**
     *This will not search the namespace in the scope nor will 
     * declare in the current element, as in set_namespace. This will
     * just assign the given namespace to the element.
     * @param om_element pointer to om_element
     * @param env environment MUST not be NULL
     * @param om_node pointer to this element node
     * @param om_ns pointer to namespace to be set
     * @returns 
     */
    AXIS2_EXTERN axis2_status_t AXIS2_CALL
    axiom_element_set_namespace_with_no_find_in_current_scope(
        axiom_element_t * om_element,
        const axutil_env_t * env,
        axiom_namespace_t * om_ns);

    /**
     *  Extract attributes , returns a clones hash table of attributes,
     *  if attributes are associated with a namespace it is also cloned
     * @param om_element pointer to om_element
     * @param env environment MUST not be NULL
     * @param om_node pointer to this element node
     *
     */
    AXIS2_EXTERN axutil_hash_t *AXIS2_CALL
    axiom_element_extract_attributes(
        axiom_element_t * om_element,
        const axutil_env_t * env,
        axiom_node_t * ele_node);

    /**
     * Returns the attribute value as a string for the given element
     * @param om_element pointer to om_element
     * @param env environment MUST not be NULL
     * @param attr_name the attribute name
     * 
     * @return the attribute value as a string
     */
    AXIS2_EXTERN axis2_char_t *AXIS2_CALL
    axiom_element_get_attribute_value_by_name(
        axiom_element_t * om_ele,
        const axutil_env_t * env,
        axis2_char_t * attr_name);

    /**
     * Create an OM Element and an OM node from given string params
     * @param env environment MUST not be NULL
     * @param parent pointer to this parent element node
     * @param localname the locanmae of the element
     * @param ns the namespace of the element
     * @param node the reference ot the created node
     * @return 
     */
    AXIS2_EXTERN axiom_element_t *AXIS2_CALL
    axiom_element_create_str(
        const axutil_env_t * env,
        axiom_node_t * parent,
        axutil_string_t * localname,
        axiom_namespace_t * ns,
        axiom_node_t ** node);

    /**
     * Returns the Local name of the element
     * @param om_element pointer to om_element
     * @param env environment MUST not be NULL
     * @param om_node pointer to this element node
     * 
     * @return the Local name of the element
     */
    AXIS2_EXTERN axutil_string_t *AXIS2_CALL
    axiom_element_get_localname_str(
        axiom_element_t * om_element,
        const axutil_env_t * env);

    /**
     * Set the Local name of the element
     * @param om_element pointer to om_element
     * @param env environment MUST not be NULL
     * @param localname  the Local name of the element 
     * 
     * @return
     */
    AXIS2_EXTERN axis2_status_t AXIS2_CALL
    axiom_element_set_localname_str(
        axiom_element_t * om_element,
        const axutil_env_t * env,
        axutil_string_t * localname);

    /**
     * Return whether the element is empty or not
     * @param om_element pointer to om_element
     * @param env environment MUST not be NULL
     * 
     * @return AXIS2_TRUE if empty AXIS2_FALSE if not empty
     */
    AXIS2_EXTERN axis2_bool_t AXIS2_CALL
    axiom_element_get_is_empty(
        axiom_element_t * om_element,
        const axutil_env_t * env);

    /**
     * Set whether the element is empty or not
     * @param om_element pointer to om_element
     * @param env environment MUST not be NULL
     * @param is_empty AXIS2_TRUE if empty AXIS2_FALSE if not empty
     * 
     * @return VOID
     */
    AXIS2_EXTERN void AXIS2_CALL
    axiom_element_set_is_empty(
        axiom_element_t * om_element,
        const axutil_env_t * env,
        axis2_bool_t is_empty);

    /**
     * Collect all the namespaces with distinct prefixes in 
     * the parents of the given element.  Effectively this 
     * is the set of namespaces declared above this element  
     * that are inscope at this element and might be used   
     * by it or its children. 
     * @param om_element pointer to om_element
     * @param env environment MUST not be NULL
     * @param om_node pointer to this element node
     * @returns pointer to hash of relevent namespaces
     */
    AXIS2_EXTERN axutil_hash_t * AXIS2_CALL
    axiom_element_gather_parent_namespaces(
        axiom_element_t * om_element,
        const axutil_env_t * env,
        axiom_node_t * om_node);

    /**
     * If the provided namespace used by the provided element 
     * is one of the namespaces from the parent of the root  
     * root element, redeclares that namespace at the root element
     * and removes it from the hash of parent namespaces
     * @param om_element pointer to om_element
     * @param env environment MUST not be NULL
     * @param om_node pointer to this element node
     * @param ns pointer to namespace to redeclare
     * @param root_element pointer to the subtree root element node
     * @param inscope_namespaces pointer to hash of parent namespaces
     */
    AXIS2_EXTERN void AXIS2_CALL
    axiom_element_use_parent_namespace(
        axiom_element_t * om_element,
        const axutil_env_t * env,
        axiom_node_t * om_node,
        axiom_namespace_t *ns,
        axiom_element_t * root_element,
        axutil_hash_t *inscope_namespaces);

    /**
     * Examines the subtree beginning at the provided element 
     * For each element or attribute, if it refers to a namespace   
     * declared in a parent of the subtree root element, redeclares
     * that namespace at the level of the subtree root and removes
     * it from the set of parent namespaces in scope and not yet 
     * declared
     * @param om_element pointer to om_element
     * @param env environment MUST not be NULL
     * @param om_node pointer to this element node
     *
     * @param root_element pointer to the subtree root element node
     * @param inscope_namespaces pointer to hash of parent namespaces
     */
    AXIS2_EXTERN void AXIS2_CALL
    axiom_element_redeclare_parent_namespaces(
        axiom_element_t * om_element,
        const axutil_env_t * env,
        axiom_node_t * om_node,
        axiom_element_t * root_element,
        axutil_hash_t *inscope_namespaces);

    /** @} */

#ifdef __cplusplus
}
#endif

#endif                          /* AXIOM_ELEMENT_H */


<|start_filename|>xdocs/api/html/axutil__types_8h-source.html<|end_filename|>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html><head><meta http-equiv="Content-Type" content="text/html;charset=UTF-8">
<title>Axis2/C: axutil_types.h Source File</title>
<link href="doxygen.css" rel="stylesheet" type="text/css">
<link href="tabs.css" rel="stylesheet" type="text/css">
</head><body>
<!-- Generated by Doxygen 1.5.3 -->
<div class="tabs">
  <ul>
    <li><a href="index.html"><span>Main&nbsp;Page</span></a></li>
    <li><a href="modules.html"><span>Modules</span></a></li>
    <li><a href="annotated.html"><span>Classes</span></a></li>
    <li class="current"><a href="files.html"><span>Files</span></a></li>
    <li><a href="dirs.html"><span>Directories</span></a></li>
    <li><a href="pages.html"><span>Related&nbsp;Pages</span></a></li>
    <li><a href="examples.html"><span>Examples</span></a></li>
    <li>
      <form action="search.php" method="get">
        <table cellspacing="0" cellpadding="0" border="0">
          <tr>
            <td><label>&nbsp;<u>S</u>earch&nbsp;for&nbsp;</label></td>
            <td><input type="text" name="query" value="" size="20" accesskey="s"/></td>
          </tr>
        </table>
      </form>
    </li>
  </ul>
</div>
<div class="nav">
<a class="el" href="dir_f60961de8e5edc3b2658ef023e959e45.html">deploy</a>&nbsp;&raquo&nbsp;<a class="el" href="dir_6b4e91e54b7316b376882a6402adbf44.html">include</a>&nbsp;&raquo&nbsp;<a class="el" href="dir_df3a7695d5a9e696f30b948b566829e7.html">axis2-1.6.0</a></div>
<h1>axutil_types.h</h1><div class="fragment"><pre class="fragment"><a name="l00001"></a>00001 
<a name="l00019"></a>00019 <span class="preprocessor">#ifndef AXUTIL_TYPES_H</span>
<a name="l00020"></a>00020 <span class="preprocessor"></span><span class="preprocessor">#define AXUTIL_TYPES_H</span>
<a name="l00021"></a>00021 <span class="preprocessor"></span>
<a name="l00022"></a>00022 <span class="preprocessor">#include &lt;axutil_utils_defines.h&gt;</span>
<a name="l00023"></a>00023 <span class="preprocessor">#include &lt;axutil_error.h&gt;</span>
<a name="l00024"></a>00024 <span class="preprocessor">#include &lt;<a class="code" href="axutil__env_8h.html" title="Axis2 environment that acts as a container for error, log and memory allocator routines...">axutil_env.h</a>&gt;</span>
<a name="l00025"></a>00025 <span class="preprocessor">#include &lt;stdlib.h&gt;</span>
<a name="l00026"></a>00026 
<a name="l00027"></a>00027 <span class="preprocessor">#ifdef __cplusplus</span>
<a name="l00028"></a>00028 <span class="preprocessor"></span><span class="keyword">extern</span> <span class="stringliteral">"C"</span>
<a name="l00029"></a>00029 {
<a name="l00030"></a>00030 <span class="preprocessor">#endif</span>
<a name="l00031"></a>00031 <span class="preprocessor"></span>
<a name="l00038"></a>00038     AXIS2_EXTERN <span class="keywordtype">int</span> AXIS2_CALL
<a name="l00039"></a>00039     axutil_atoi(
<a name="l00040"></a>00040         <span class="keyword">const</span> <span class="keywordtype">char</span> *s);
<a name="l00041"></a>00041 
<a name="l00042"></a>00042 <span class="preprocessor">#define AXIS2_ATOI(s) axutil_atoi(s)</span>
<a name="l00043"></a>00043 <span class="preprocessor"></span>
<a name="l00044"></a>00044     AXIS2_EXTERN uint64_t AXIS2_CALL
<a name="l00045"></a>00045     axutil_strtoul(
<a name="l00046"></a>00046         <span class="keyword">const</span> <span class="keywordtype">char</span> *nptr,
<a name="l00047"></a>00047         <span class="keywordtype">char</span> **endptr,
<a name="l00048"></a>00048         <span class="keywordtype">int</span> base);
<a name="l00049"></a>00049 
<a name="l00050"></a>00050 <span class="preprocessor">#define AXIS2_STRTOUL(s, e, b) axutil_strtoul(s, e, b)</span>
<a name="l00051"></a>00051 <span class="preprocessor"></span>
<a name="l00052"></a>00052     AXIS2_EXTERN int64_t AXIS2_CALL
<a name="l00053"></a>00053     axutil_strtol(
<a name="l00054"></a>00054         <span class="keyword">const</span> <span class="keywordtype">char</span> *nptr,
<a name="l00055"></a>00055         <span class="keywordtype">char</span> **endptr,
<a name="l00056"></a>00056         <span class="keywordtype">int</span> base);
<a name="l00057"></a>00057 
<a name="l00058"></a>00058 <span class="preprocessor">#define AXIS2_STRTOL(s, e, b) axutil_strtol(s, e, b)</span>
<a name="l00059"></a>00059 <span class="preprocessor"></span>
<a name="l00060"></a>00060 
<a name="l00061"></a>00061     AXIS2_EXTERN int64_t AXIS2_CALL
<a name="l00062"></a>00062     axutil_atol(
<a name="l00063"></a>00063         <span class="keyword">const</span> <span class="keywordtype">char</span> *s);
<a name="l00064"></a>00064 
<a name="l00065"></a>00065 <span class="preprocessor">#define AXIS2_ATOL(s) axutil_atol(s)</span>
<a name="l00066"></a>00066 <span class="preprocessor"></span>
<a name="l00069"></a>00069 <span class="preprocessor">#ifdef __cplusplus</span>
<a name="l00070"></a>00070 <span class="preprocessor"></span>}
<a name="l00071"></a>00071 <span class="preprocessor">#endif</span>
<a name="l00072"></a>00072 <span class="preprocessor"></span>
<a name="l00073"></a>00073 <span class="preprocessor">#endif                          </span><span class="comment">/* AXIS2_TYPES_H */</span>
</pre></div><hr size="1"><address style="text-align: right;"><small>Generated on Fri Apr 17 11:49:43 2009 for Axis2/C by&nbsp;
<a href="http://www.doxygen.org/index.html">
<img src="doxygen.png" alt="doxygen" align="middle" border="0"></a> 1.5.3 </small></address>
</body>
</html>


<|start_filename|>xdocs/api/html/axiom__attribute_8h-source.html<|end_filename|>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html><head><meta http-equiv="Content-Type" content="text/html;charset=UTF-8">
<title>Axis2/C: axiom_attribute.h Source File</title>
<link href="doxygen.css" rel="stylesheet" type="text/css">
<link href="tabs.css" rel="stylesheet" type="text/css">
</head><body>
<!-- Generated by Doxygen 1.5.3 -->
<div class="tabs">
  <ul>
    <li><a href="index.html"><span>Main&nbsp;Page</span></a></li>
    <li><a href="modules.html"><span>Modules</span></a></li>
    <li><a href="annotated.html"><span>Classes</span></a></li>
    <li class="current"><a href="files.html"><span>Files</span></a></li>
    <li><a href="dirs.html"><span>Directories</span></a></li>
    <li><a href="pages.html"><span>Related&nbsp;Pages</span></a></li>
    <li><a href="examples.html"><span>Examples</span></a></li>
    <li>
      <form action="search.php" method="get">
        <table cellspacing="0" cellpadding="0" border="0">
          <tr>
            <td><label>&nbsp;<u>S</u>earch&nbsp;for&nbsp;</label></td>
            <td><input type="text" name="query" value="" size="20" accesskey="s"/></td>
          </tr>
        </table>
      </form>
    </li>
  </ul>
</div>
<div class="nav">
<a class="el" href="dir_f60961de8e5edc3b2658ef023e959e45.html">deploy</a>&nbsp;&raquo&nbsp;<a class="el" href="dir_6b4e91e54b7316b376882a6402adbf44.html">include</a>&nbsp;&raquo&nbsp;<a class="el" href="dir_df3a7695d5a9e696f30b948b566829e7.html">axis2-1.6.0</a></div>
<h1>axiom_attribute.h</h1><a href="axiom__attribute_8h.html">Go to the documentation of this file.</a><div class="fragment"><pre class="fragment"><a name="l00001"></a>00001 
<a name="l00002"></a>00002 <span class="comment">/*</span>
<a name="l00003"></a>00003 <span class="comment">* Licensed to the Apache Software Foundation (ASF) under one or more</span>
<a name="l00004"></a>00004 <span class="comment">* contributor license agreements.  See the NOTICE file distributed with</span>
<a name="l00005"></a>00005 <span class="comment">* this work for additional information regarding copyright ownership.</span>
<a name="l00006"></a>00006 <span class="comment">* The ASF licenses this file to You under the Apache License, Version 2.0</span>
<a name="l00007"></a>00007 <span class="comment">* (the "License"); you may not use this file except in compliance with</span>
<a name="l00008"></a>00008 <span class="comment">* the License.  You may obtain a copy of the License at</span>
<a name="l00009"></a>00009 <span class="comment">*</span>
<a name="l00010"></a>00010 <span class="comment">*      http://www.apache.org/licenses/LICENSE-2.0</span>
<a name="l00011"></a>00011 <span class="comment">*</span>
<a name="l00012"></a>00012 <span class="comment">* Unless required by applicable law or agreed to in writing, software</span>
<a name="l00013"></a>00013 <span class="comment">* distributed under the License is distributed on an "AS IS" BASIS,</span>
<a name="l00014"></a>00014 <span class="comment">* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.</span>
<a name="l00015"></a>00015 <span class="comment">* See the License for the specific language governing permissions and</span>
<a name="l00016"></a>00016 <span class="comment">* limitations under the License.</span>
<a name="l00017"></a>00017 <span class="comment">*/</span>
<a name="l00018"></a>00018 
<a name="l00019"></a>00019 <span class="preprocessor">#ifndef AXIOM_ATTRIBUTE_H</span>
<a name="l00020"></a>00020 <span class="preprocessor"></span><span class="preprocessor">#define AXIOM_ATTRIBUTE_H</span>
<a name="l00021"></a>00021 <span class="preprocessor"></span>
<a name="l00026"></a>00026 <span class="preprocessor">#include &lt;<a class="code" href="axutil__env_8h.html" title="Axis2 environment that acts as a container for error, log and memory allocator routines...">axutil_env.h</a>&gt;</span>
<a name="l00027"></a>00027 <span class="preprocessor">#include &lt;<a class="code" href="axutil__qname_8h.html" title="represents a qualified name">axutil_qname.h</a>&gt;</span>
<a name="l00028"></a>00028 <span class="preprocessor">#include &lt;axiom_namespace.h&gt;</span>
<a name="l00029"></a>00029 <span class="preprocessor">#include &lt;axiom_output.h&gt;</span>
<a name="l00030"></a>00030 
<a name="l00031"></a>00031 <span class="preprocessor">#ifdef __cplusplus</span>
<a name="l00032"></a>00032 <span class="preprocessor"></span><span class="keyword">extern</span> <span class="stringliteral">"C"</span>
<a name="l00033"></a>00033 {
<a name="l00034"></a>00034 <span class="preprocessor">#endif</span>
<a name="l00035"></a>00035 <span class="preprocessor"></span>
<a name="l00042"></a>00042     <span class="keyword">typedef</span> <span class="keyword">struct </span>axiom_attribute axiom_attribute_t;
<a name="l00043"></a>00043 
<a name="l00053"></a>00053     AXIS2_EXTERN axiom_attribute_t *AXIS2_CALL
<a name="l00054"></a>00054     <a class="code" href="group__axiom__attribute.html#gda66e5da53578d93c34f0c717394605d">axiom_attribute_create</a>(
<a name="l00055"></a>00055         <span class="keyword">const</span> <a class="code" href="structaxutil__env.html" title="Axis2 Environment struct.">axutil_env_t</a> * env,
<a name="l00056"></a>00056         <span class="keyword">const</span> axis2_char_t * localname,
<a name="l00057"></a>00057         <span class="keyword">const</span> axis2_char_t * value,
<a name="l00058"></a>00058         axiom_namespace_t * ns);
<a name="l00059"></a>00059 
<a name="l00068"></a>00068     AXIS2_EXTERN <span class="keywordtype">void</span> AXIS2_CALL
<a name="l00069"></a>00069     <a class="code" href="group__axiom__attribute.html#geb9ac7efe5dbb33273cd37c9ddc99b0a">axiom_attribute_free_void_arg</a>(
<a name="l00070"></a>00070         <span class="keywordtype">void</span> *om_attribute,
<a name="l00071"></a>00071         <span class="keyword">const</span> <a class="code" href="structaxutil__env.html" title="Axis2 Environment struct.">axutil_env_t</a> * env);
<a name="l00072"></a>00072 
<a name="l00079"></a>00079     AXIS2_EXTERN <span class="keywordtype">void</span> AXIS2_CALL
<a name="l00080"></a>00080     <a class="code" href="group__axiom__attribute.html#gd28f7c80adad15d93a1be5a8918c92c9">axiom_attribute_free</a>(
<a name="l00081"></a>00081         <span class="keyword">struct</span> axiom_attribute *om_attribute,
<a name="l00082"></a>00082         <span class="keyword">const</span> <a class="code" href="structaxutil__env.html" title="Axis2 Environment struct.">axutil_env_t</a> * env);
<a name="l00083"></a>00083 
<a name="l00092"></a>00092     AXIS2_EXTERN axutil_qname_t *AXIS2_CALL
<a name="l00093"></a>00093     <a class="code" href="group__axiom__attribute.html#g749197cc40576ff4139c9d19298f9f24">axiom_attribute_get_qname</a>(
<a name="l00094"></a>00094         <span class="keyword">struct</span> axiom_attribute *om_attribute,
<a name="l00095"></a>00095         <span class="keyword">const</span> <a class="code" href="structaxutil__env.html" title="Axis2 Environment struct.">axutil_env_t</a> * env);
<a name="l00096"></a>00096 
<a name="l00105"></a>00105     AXIS2_EXTERN <span class="keywordtype">int</span> AXIS2_CALL
<a name="l00106"></a>00106     <a class="code" href="group__axiom__attribute.html#gac6dabe7926ef1275437d5b5d1363108">axiom_attribute_serialize</a>(
<a name="l00107"></a>00107         <span class="keyword">struct</span> axiom_attribute *om_attribute,
<a name="l00108"></a>00108         <span class="keyword">const</span> <a class="code" href="structaxutil__env.html" title="Axis2 Environment struct.">axutil_env_t</a> * env,
<a name="l00109"></a>00109         <a class="code" href="group__axiom__output.html#gfe1ea804d7a8179e85371f065cd9df09" title="output struct The XML writer interface struct of om">axiom_output_t</a> * om_output);
<a name="l00110"></a>00110 
<a name="l00116"></a>00116     AXIS2_EXTERN axis2_char_t *AXIS2_CALL
<a name="l00117"></a>00117     <a class="code" href="group__axiom__attribute.html#g7ec0c8a1b00cdd260d3bbbe9c25d48d6">axiom_attribute_get_localname</a>(
<a name="l00118"></a>00118         <span class="keyword">struct</span> axiom_attribute *om_attribute,
<a name="l00119"></a>00119         <span class="keyword">const</span> <a class="code" href="structaxutil__env.html" title="Axis2 Environment struct.">axutil_env_t</a> * env);
<a name="l00120"></a>00120 
<a name="l00127"></a>00127     AXIS2_EXTERN axis2_char_t *AXIS2_CALL
<a name="l00128"></a>00128     <a class="code" href="group__axiom__attribute.html#g95d26b917b6beea23aada61bf1402376">axiom_attribute_get_value</a>(
<a name="l00129"></a>00129         <span class="keyword">struct</span> axiom_attribute *om_attribute,
<a name="l00130"></a>00130         <span class="keyword">const</span> <a class="code" href="structaxutil__env.html" title="Axis2 Environment struct.">axutil_env_t</a> * env);
<a name="l00131"></a>00131 
<a name="l00138"></a>00138     AXIS2_EXTERN axiom_namespace_t *AXIS2_CALL
<a name="l00139"></a>00139     <a class="code" href="group__axiom__attribute.html#gf5237ea2eed7bb6326f19e2cda6ffe9c">axiom_attribute_get_namespace</a>(
<a name="l00140"></a>00140         <span class="keyword">struct</span> axiom_attribute *om_attribute,
<a name="l00141"></a>00141         <span class="keyword">const</span> <a class="code" href="structaxutil__env.html" title="Axis2 Environment struct.">axutil_env_t</a> * env);
<a name="l00142"></a>00142 
<a name="l00149"></a>00149     AXIS2_EXTERN axis2_status_t AXIS2_CALL
<a name="l00150"></a>00150     <a class="code" href="group__axiom__attribute.html#g45d596e4d7eaf81d205f9b8f01c580e5">axiom_attribute_set_localname</a>(
<a name="l00151"></a>00151         <span class="keyword">struct</span> axiom_attribute *om_attribute,
<a name="l00152"></a>00152         <span class="keyword">const</span> <a class="code" href="structaxutil__env.html" title="Axis2 Environment struct.">axutil_env_t</a> * env,
<a name="l00153"></a>00153         <span class="keyword">const</span> axis2_char_t * localname);
<a name="l00154"></a>00154 
<a name="l00162"></a>00162     AXIS2_EXTERN axis2_status_t AXIS2_CALL
<a name="l00163"></a>00163     <a class="code" href="group__axiom__attribute.html#g04e602a4d9456b9111bdbad5ea89a0ec">axiom_attribute_set_value</a>(
<a name="l00164"></a>00164         <span class="keyword">struct</span> axiom_attribute *om_attribute,
<a name="l00165"></a>00165         <span class="keyword">const</span> <a class="code" href="structaxutil__env.html" title="Axis2 Environment struct.">axutil_env_t</a> * env,
<a name="l00166"></a>00166         <span class="keyword">const</span> axis2_char_t * value);
<a name="l00167"></a>00167 
<a name="l00175"></a>00175     AXIS2_EXTERN axis2_status_t AXIS2_CALL
<a name="l00176"></a>00176     <a class="code" href="group__axiom__attribute.html#g4b27824f6bb94509562fe09644adf9a3">axiom_attribute_set_namespace</a>(
<a name="l00177"></a>00177         <span class="keyword">struct</span> axiom_attribute *om_attribute,
<a name="l00178"></a>00178         <span class="keyword">const</span> <a class="code" href="structaxutil__env.html" title="Axis2 Environment struct.">axutil_env_t</a> * env,
<a name="l00179"></a>00179         axiom_namespace_t * om_namespace);
<a name="l00180"></a>00180 
<a name="l00188"></a>00188     AXIS2_EXTERN <span class="keyword">struct </span>axiom_attribute *AXIS2_CALL
<a name="l00189"></a>00189                 <a class="code" href="group__axiom__attribute.html#g21014966fb2d80f589bbbe23a66ff478">axiom_attribute_clone</a>(
<a name="l00190"></a>00190                     <span class="keyword">struct</span> axiom_attribute *om_attribute,
<a name="l00191"></a>00191                     <span class="keyword">const</span> <a class="code" href="structaxutil__env.html" title="Axis2 Environment struct.">axutil_env_t</a> * env);
<a name="l00192"></a>00192 
<a name="l00198"></a>00198     AXIS2_EXTERN axis2_status_t AXIS2_CALL
<a name="l00199"></a>00199     <a class="code" href="group__axiom__attribute.html#g4e9157492474b5a0e828935b606f943e">axiom_attribute_increment_ref</a>(
<a name="l00200"></a>00200         <span class="keyword">struct</span> axiom_attribute *om_attribute,
<a name="l00201"></a>00201         <span class="keyword">const</span> <a class="code" href="structaxutil__env.html" title="Axis2 Environment struct.">axutil_env_t</a> * env);
<a name="l00202"></a>00202 
<a name="l00208"></a>00208     AXIS2_EXTERN axiom_attribute_t *AXIS2_CALL
<a name="l00209"></a>00209     <a class="code" href="group__axiom__attribute.html#gb9836150f9d8af4256bcadace600c79f">axiom_attribute_create_str</a>(
<a name="l00210"></a>00210         <span class="keyword">const</span> <a class="code" href="structaxutil__env.html" title="Axis2 Environment struct.">axutil_env_t</a> * env,
<a name="l00211"></a>00211         axutil_string_t * localname,
<a name="l00212"></a>00212         axutil_string_t * value,
<a name="l00213"></a>00213         axiom_namespace_t * ns);
<a name="l00214"></a>00214 
<a name="l00220"></a>00220     AXIS2_EXTERN axutil_string_t *AXIS2_CALL
<a name="l00221"></a>00221     <a class="code" href="group__axiom__attribute.html#g9e36fa98afd7d60eff62da45e760dce4">axiom_attribute_get_localname_str</a>(
<a name="l00222"></a>00222         axiom_attribute_t * attribute,
<a name="l00223"></a>00223         <span class="keyword">const</span> <a class="code" href="structaxutil__env.html" title="Axis2 Environment struct.">axutil_env_t</a> * env);
<a name="l00224"></a>00224 
<a name="l00230"></a>00230     AXIS2_EXTERN axutil_string_t *AXIS2_CALL
<a name="l00231"></a>00231     <a class="code" href="group__axiom__attribute.html#g0f1e956758b142ba21d18dcd30cca1d9">axiom_attribute_get_value_str</a>(
<a name="l00232"></a>00232         axiom_attribute_t * attribute,
<a name="l00233"></a>00233         <span class="keyword">const</span> <a class="code" href="structaxutil__env.html" title="Axis2 Environment struct.">axutil_env_t</a> * env);
<a name="l00234"></a>00234 
<a name="l00240"></a>00240     AXIS2_EXTERN axis2_status_t AXIS2_CALL
<a name="l00241"></a>00241     <a class="code" href="group__axiom__attribute.html#g5433c75c8f87f602ae89c9943f45df81">axiom_attribute_set_localname_str</a>(
<a name="l00242"></a>00242         axiom_attribute_t * attribute,
<a name="l00243"></a>00243         <span class="keyword">const</span> <a class="code" href="structaxutil__env.html" title="Axis2 Environment struct.">axutil_env_t</a> * env,
<a name="l00244"></a>00244         axutil_string_t * localname);
<a name="l00245"></a>00245 
<a name="l00251"></a>00251     AXIS2_EXTERN axis2_status_t AXIS2_CALL
<a name="l00252"></a>00252     <a class="code" href="group__axiom__attribute.html#g10bfe30de55eb9f2f19829b1578913c1">axiom_attribute_set_value_str</a>(
<a name="l00253"></a>00253         axiom_attribute_t * attribute,
<a name="l00254"></a>00254         <span class="keyword">const</span> <a class="code" href="structaxutil__env.html" title="Axis2 Environment struct.">axutil_env_t</a> * env,
<a name="l00255"></a>00255         axutil_string_t * value);
<a name="l00256"></a>00256 
<a name="l00259"></a>00259 <span class="preprocessor">#ifdef __cplusplus</span>
<a name="l00260"></a>00260 <span class="preprocessor"></span>}
<a name="l00261"></a>00261 <span class="preprocessor">#endif</span>
<a name="l00262"></a>00262 <span class="preprocessor"></span>
<a name="l00263"></a>00263 <span class="preprocessor">#endif                          </span><span class="comment">/* AXIOM_ATTRIBUTE_H */</span>
</pre></div><hr size="1"><address style="text-align: right;"><small>Generated on Fri Apr 17 11:49:42 2009 for Axis2/C by&nbsp;
<a href="http://www.doxygen.org/index.html">
<img src="doxygen.png" alt="doxygen" align="middle" border="0"></a> 1.5.3 </small></address>
</body>
</html>


<|start_filename|>xdocs/api/html/axiom__xml__reader_8h-source.html<|end_filename|>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html><head><meta http-equiv="Content-Type" content="text/html;charset=UTF-8">
<title>Axis2/C: axiom_xml_reader.h Source File</title>
<link href="doxygen.css" rel="stylesheet" type="text/css">
<link href="tabs.css" rel="stylesheet" type="text/css">
</head><body>
<!-- Generated by Doxygen 1.5.3 -->
<div class="tabs">
  <ul>
    <li><a href="index.html"><span>Main&nbsp;Page</span></a></li>
    <li><a href="modules.html"><span>Modules</span></a></li>
    <li><a href="annotated.html"><span>Classes</span></a></li>
    <li class="current"><a href="files.html"><span>Files</span></a></li>
    <li><a href="dirs.html"><span>Directories</span></a></li>
    <li><a href="pages.html"><span>Related&nbsp;Pages</span></a></li>
    <li><a href="examples.html"><span>Examples</span></a></li>
    <li>
      <form action="search.php" method="get">
        <table cellspacing="0" cellpadding="0" border="0">
          <tr>
            <td><label>&nbsp;<u>S</u>earch&nbsp;for&nbsp;</label></td>
            <td><input type="text" name="query" value="" size="20" accesskey="s"/></td>
          </tr>
        </table>
      </form>
    </li>
  </ul>
</div>
<div class="nav">
<a class="el" href="dir_f60961de8e5edc3b2658ef023e959e45.html">deploy</a>&nbsp;&raquo&nbsp;<a class="el" href="dir_6b4e91e54b7316b376882a6402adbf44.html">include</a>&nbsp;&raquo&nbsp;<a class="el" href="dir_df3a7695d5a9e696f30b948b566829e7.html">axis2-1.6.0</a></div>
<h1>axiom_xml_reader.h</h1><a href="axiom__xml__reader_8h.html">Go to the documentation of this file.</a><div class="fragment"><pre class="fragment"><a name="l00001"></a>00001 
<a name="l00002"></a>00002 <span class="comment">/*</span>
<a name="l00003"></a>00003 <span class="comment"> *   Copyright 2004,2005 The Apache Software Foundation.</span>
<a name="l00004"></a>00004 <span class="comment"> *</span>
<a name="l00005"></a>00005 <span class="comment"> *   Licensed under the Apache License, Version 2.0 (the "License");</span>
<a name="l00006"></a>00006 <span class="comment"> *   you may not use this file except in compliance with the License.</span>
<a name="l00007"></a>00007 <span class="comment"> *   You may obtain a copy of the License at</span>
<a name="l00008"></a>00008 <span class="comment"> *</span>
<a name="l00009"></a>00009 <span class="comment"> *       http://www.apache.org/licenses/LICENSE-2.0</span>
<a name="l00010"></a>00010 <span class="comment"> *</span>
<a name="l00011"></a>00011 <span class="comment"> *   Unless required by applicable law or agreed to in writing, software</span>
<a name="l00012"></a>00012 <span class="comment"> *   distributed under the License is distributed on an "AS IS" BASIS,</span>
<a name="l00013"></a>00013 <span class="comment"> *   WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.</span>
<a name="l00014"></a>00014 <span class="comment"> *   See the License for the specific language governing permissions and</span>
<a name="l00015"></a>00015 <span class="comment"> *   limitations under the License.</span>
<a name="l00016"></a>00016 <span class="comment"> *</span>
<a name="l00017"></a>00017 <span class="comment"> */</span>
<a name="l00018"></a>00018 
<a name="l00019"></a>00019 <span class="preprocessor">#ifndef AXIOM_XML_READER_H</span>
<a name="l00020"></a>00020 <span class="preprocessor"></span><span class="preprocessor">#define AXIOM_XML_READER_H</span>
<a name="l00021"></a>00021 <span class="preprocessor"></span>
<a name="l00027"></a>00027 <span class="preprocessor">#include &lt;<a class="code" href="axutil__env_8h.html" title="Axis2 environment that acts as a container for error, log and memory allocator routines...">axutil_env.h</a>&gt;</span>
<a name="l00028"></a>00028 <span class="preprocessor">#include &lt;<a class="code" href="axutil__utils_8h.html">axutil_utils.h</a>&gt;</span>
<a name="l00029"></a>00029 <span class="preprocessor">#include &lt;axiom_defines.h&gt;</span>
<a name="l00030"></a>00030 
<a name="l00031"></a>00031 <span class="preprocessor">#ifdef __cplusplus</span>
<a name="l00032"></a>00032 <span class="preprocessor"></span><span class="keyword">extern</span> <span class="stringliteral">"C"</span>
<a name="l00033"></a>00033 {
<a name="l00034"></a>00034 <span class="preprocessor">#endif</span>
<a name="l00035"></a>00035 <span class="preprocessor"></span>
<a name="l00036"></a>00036     <span class="keyword">typedef</span> <span class="keyword">struct </span><a class="code" href="structaxiom__xml__reader__ops.html" title="AXIOM_XML_READER ops Encapsulator struct for ops of axiom_xml_reader.">axiom_xml_reader_ops</a> <a class="code" href="structaxiom__xml__reader__ops.html" title="AXIOM_XML_READER ops Encapsulator struct for ops of axiom_xml_reader.">axiom_xml_reader_ops_t</a>;
<a name="l00037"></a>00037     <span class="keyword">typedef</span> <span class="keyword">struct </span><a class="code" href="structaxiom__xml__reader.html" title="axiom_xml_reader struct Axis2 OM pull_parser">axiom_xml_reader</a> <a class="code" href="structaxiom__xml__reader.html" title="axiom_xml_reader struct Axis2 OM pull_parser">axiom_xml_reader_t</a>;
<a name="l00038"></a>00038 
<a name="l00052"></a>00052     <span class="keyword">typedef</span> <span class="keyword">enum</span> axiom_xml_reader_event_types
<a name="l00053"></a>00053     {
<a name="l00054"></a>00054         AXIOM_XML_READER_START_DOCUMENT = 0,
<a name="l00055"></a>00055         AXIOM_XML_READER_START_ELEMENT,
<a name="l00056"></a>00056         AXIOM_XML_READER_END_ELEMENT,
<a name="l00057"></a>00057         AXIOM_XML_READER_SPACE,
<a name="l00058"></a>00058         AXIOM_XML_READER_EMPTY_ELEMENT,
<a name="l00059"></a>00059         AXIOM_XML_READER_CHARACTER,
<a name="l00060"></a>00060         AXIOM_XML_READER_ENTITY_REFERENCE,
<a name="l00061"></a>00061         AXIOM_XML_READER_COMMENT,
<a name="l00062"></a>00062         AXIOM_XML_READER_PROCESSING_INSTRUCTION,
<a name="l00063"></a>00063         AXIOM_XML_READER_CDATA,
<a name="l00064"></a>00064         AXIOM_XML_READER_DOCUMENT_TYPE
<a name="l00065"></a>00065     } axiom_xml_reader_event_types;
<a name="l00066"></a>00066 
<a name="l00072"></a><a class="code" href="structaxiom__xml__reader__ops.html">00072</a>     <span class="keyword">struct </span><a class="code" href="structaxiom__xml__reader__ops.html" title="AXIOM_XML_READER ops Encapsulator struct for ops of axiom_xml_reader.">axiom_xml_reader_ops</a>
<a name="l00073"></a>00073     {
<a name="l00074"></a>00074 
<a name="l00084"></a>00084         int(
<a name="l00085"></a>00085             AXIS2_CALL
<a name="l00086"></a>00086             * <a class="code" href="structaxiom__xml__reader__ops.html#27dc955258fc16d29d509b44cc34f5b2">next</a>)(
<a name="l00087"></a>00087                 <a class="code" href="structaxiom__xml__reader.html" title="axiom_xml_reader struct Axis2 OM pull_parser">axiom_xml_reader_t</a> * parser,
<a name="l00088"></a>00088                 <span class="keyword">const</span> <a class="code" href="structaxutil__env.html" title="Axis2 Environment struct.">axutil_env_t</a> * env);
<a name="l00089"></a>00089 
<a name="l00097"></a>00097         void(
<a name="l00098"></a>00098             AXIS2_CALL
<a name="l00099"></a>00099             * <a class="code" href="structaxiom__xml__reader__ops.html#b6c0094b13a222f82a3362d30026dd70">free</a>)(
<a name="l00100"></a>00100                 <a class="code" href="structaxiom__xml__reader.html" title="axiom_xml_reader struct Axis2 OM pull_parser">axiom_xml_reader_t</a> * parser,
<a name="l00101"></a>00101                 <span class="keyword">const</span> <a class="code" href="structaxutil__env.html" title="Axis2 Environment struct.">axutil_env_t</a> * env);
<a name="l00102"></a>00102 
<a name="l00110"></a>00110         int(
<a name="l00111"></a>00111             AXIS2_CALL
<a name="l00112"></a>00112             * <a class="code" href="structaxiom__xml__reader__ops.html#22a176378851114e11809eabd8b4ae46">get_attribute_count</a>)(
<a name="l00113"></a>00113                 <a class="code" href="structaxiom__xml__reader.html" title="axiom_xml_reader struct Axis2 OM pull_parser">axiom_xml_reader_t</a> * parser,
<a name="l00114"></a>00114                 <span class="keyword">const</span> <a class="code" href="structaxutil__env.html" title="Axis2 Environment struct.">axutil_env_t</a> * env);
<a name="l00115"></a>00115 
<a name="l00125"></a>00125         axis2_char_t *(
<a name="l00126"></a>00126             AXIS2_CALL
<a name="l00127"></a>00127             * <a class="code" href="structaxiom__xml__reader__ops.html#2c68389efbe57ee92f34688edf4298df">get_attribute_name_by_number</a>)(
<a name="l00128"></a>00128                 <a class="code" href="structaxiom__xml__reader.html" title="axiom_xml_reader struct Axis2 OM pull_parser">axiom_xml_reader_t</a> * parser,
<a name="l00129"></a>00129                 <span class="keyword">const</span> <a class="code" href="structaxutil__env.html" title="Axis2 Environment struct.">axutil_env_t</a> * env,
<a name="l00130"></a>00130                 <span class="keywordtype">int</span> i);
<a name="l00131"></a>00131 
<a name="l00142"></a>00142         axis2_char_t *(
<a name="l00143"></a>00143             AXIS2_CALL
<a name="l00144"></a>00144             * <a class="code" href="structaxiom__xml__reader__ops.html#3ff29576e6e09c6f9eede201aaea50a3">get_attribute_prefix_by_number</a>)(
<a name="l00145"></a>00145                 <a class="code" href="structaxiom__xml__reader.html" title="axiom_xml_reader struct Axis2 OM pull_parser">axiom_xml_reader_t</a> * parser,
<a name="l00146"></a>00146                 <span class="keyword">const</span> <a class="code" href="structaxutil__env.html" title="Axis2 Environment struct.">axutil_env_t</a> * env,
<a name="l00147"></a>00147                 <span class="keywordtype">int</span> i);
<a name="l00148"></a>00148 
<a name="l00159"></a>00159         axis2_char_t *(
<a name="l00160"></a>00160             AXIS2_CALL
<a name="l00161"></a>00161             * <a class="code" href="structaxiom__xml__reader__ops.html#20f3de0e5c250e3af7552797e330efb6">get_attribute_value_by_number</a>)(
<a name="l00162"></a>00162                 <a class="code" href="structaxiom__xml__reader.html" title="axiom_xml_reader struct Axis2 OM pull_parser">axiom_xml_reader_t</a> * parser,
<a name="l00163"></a>00163                 <span class="keyword">const</span> <a class="code" href="structaxutil__env.html" title="Axis2 Environment struct.">axutil_env_t</a> * env,
<a name="l00164"></a>00164                 <span class="keywordtype">int</span> i);
<a name="l00165"></a>00165 
<a name="l00176"></a>00176         axis2_char_t *(
<a name="l00177"></a>00177             AXIS2_CALL
<a name="l00178"></a>00178             * <a class="code" href="structaxiom__xml__reader__ops.html#cd439813d81970e3776c59dbe4f293c8">get_attribute_namespace_by_number</a>)(
<a name="l00179"></a>00179                 <a class="code" href="structaxiom__xml__reader.html" title="axiom_xml_reader struct Axis2 OM pull_parser">axiom_xml_reader_t</a> * parser,
<a name="l00180"></a>00180                 <span class="keyword">const</span> <a class="code" href="structaxutil__env.html" title="Axis2 Environment struct.">axutil_env_t</a> * env,
<a name="l00181"></a>00181                 <span class="keywordtype">int</span> i);
<a name="l00182"></a>00182 
<a name="l00189"></a>00189         axis2_char_t *(
<a name="l00190"></a>00190             AXIS2_CALL
<a name="l00191"></a>00191             * <a class="code" href="structaxiom__xml__reader__ops.html#23269d48917339c1195c68548a1df6bd">get_value</a>)(
<a name="l00192"></a>00192                 <a class="code" href="structaxiom__xml__reader.html" title="axiom_xml_reader struct Axis2 OM pull_parser">axiom_xml_reader_t</a> * parser,
<a name="l00193"></a>00193                 <span class="keyword">const</span> <a class="code" href="structaxutil__env.html" title="Axis2 Environment struct.">axutil_env_t</a> * env);
<a name="l00194"></a>00194 
<a name="l00201"></a>00201         int(
<a name="l00202"></a>00202             AXIS2_CALL
<a name="l00203"></a>00203             * <a class="code" href="structaxiom__xml__reader__ops.html#2313a482156cba054e9ab475f36a1606">get_namespace_count</a>)(
<a name="l00204"></a>00204                 <a class="code" href="structaxiom__xml__reader.html" title="axiom_xml_reader struct Axis2 OM pull_parser">axiom_xml_reader_t</a> * parser,
<a name="l00205"></a>00205                 <span class="keyword">const</span> <a class="code" href="structaxutil__env.html" title="Axis2 Environment struct.">axutil_env_t</a> * env);
<a name="l00206"></a>00206 
<a name="l00216"></a>00216         axis2_char_t *(
<a name="l00217"></a>00217             AXIS2_CALL
<a name="l00218"></a>00218             * <a class="code" href="structaxiom__xml__reader__ops.html#9e6cb2a23eefe09daa1b6a6d9a470a52">get_namespace_uri_by_number</a>)(
<a name="l00219"></a>00219                 <a class="code" href="structaxiom__xml__reader.html" title="axiom_xml_reader struct Axis2 OM pull_parser">axiom_xml_reader_t</a> * parser,
<a name="l00220"></a>00220                 <span class="keyword">const</span> <a class="code" href="structaxutil__env.html" title="Axis2 Environment struct.">axutil_env_t</a> * env,
<a name="l00221"></a>00221                 <span class="keywordtype">int</span> i);
<a name="l00222"></a>00222 
<a name="l00232"></a>00232         axis2_char_t *(
<a name="l00233"></a>00233             AXIS2_CALL
<a name="l00234"></a>00234             * <a class="code" href="structaxiom__xml__reader__ops.html#038bd2b7b10d16ce5e33f0e0f8003d5c">get_namespace_prefix_by_number</a>)(
<a name="l00235"></a>00235                 <a class="code" href="structaxiom__xml__reader.html" title="axiom_xml_reader struct Axis2 OM pull_parser">axiom_xml_reader_t</a> * parser,
<a name="l00236"></a>00236                 <span class="keyword">const</span> <a class="code" href="structaxutil__env.html" title="Axis2 Environment struct.">axutil_env_t</a> * env,
<a name="l00237"></a>00237                 <span class="keywordtype">int</span> i);
<a name="l00238"></a>00238 
<a name="l00246"></a>00246         axis2_char_t *(
<a name="l00247"></a>00247             AXIS2_CALL
<a name="l00248"></a>00248             * <a class="code" href="structaxiom__xml__reader__ops.html#fb35c54f64deebf15f5e46040e12e47d">get_prefix</a>)(
<a name="l00249"></a>00249                 <a class="code" href="structaxiom__xml__reader.html" title="axiom_xml_reader struct Axis2 OM pull_parser">axiom_xml_reader_t</a> * parser,
<a name="l00250"></a>00250                 <span class="keyword">const</span> <a class="code" href="structaxutil__env.html" title="Axis2 Environment struct.">axutil_env_t</a> * env);
<a name="l00251"></a>00251 
<a name="l00259"></a>00259         axis2_char_t *(
<a name="l00260"></a>00260             AXIS2_CALL
<a name="l00261"></a>00261             * <a class="code" href="structaxiom__xml__reader__ops.html#5f53ff51d077111b77cc6ba7806f8e34">get_name</a>)(
<a name="l00262"></a>00262                 <a class="code" href="structaxiom__xml__reader.html" title="axiom_xml_reader struct Axis2 OM pull_parser">axiom_xml_reader_t</a> * parser,
<a name="l00263"></a>00263                 <span class="keyword">const</span> <a class="code" href="structaxutil__env.html" title="Axis2 Environment struct.">axutil_env_t</a> * env);
<a name="l00264"></a>00264 
<a name="l00272"></a>00272         axis2_char_t *(
<a name="l00273"></a>00273             AXIS2_CALL
<a name="l00274"></a>00274             * <a class="code" href="structaxiom__xml__reader__ops.html#65d6db8d669b488efa67f7b11aae87be">get_pi_target</a>)(
<a name="l00275"></a>00275                 <a class="code" href="structaxiom__xml__reader.html" title="axiom_xml_reader struct Axis2 OM pull_parser">axiom_xml_reader_t</a> * parser,
<a name="l00276"></a>00276                 <span class="keyword">const</span> <a class="code" href="structaxutil__env.html" title="Axis2 Environment struct.">axutil_env_t</a> * env);
<a name="l00277"></a>00277 
<a name="l00285"></a>00285         axis2_char_t *(
<a name="l00286"></a>00286             AXIS2_CALL
<a name="l00287"></a>00287             * <a class="code" href="structaxiom__xml__reader__ops.html#22fa968eae5d05ca0c5e774ecf43c6e0">get_pi_data</a>)(
<a name="l00288"></a>00288                 <a class="code" href="structaxiom__xml__reader.html" title="axiom_xml_reader struct Axis2 OM pull_parser">axiom_xml_reader_t</a> * parser,
<a name="l00289"></a>00289                 <span class="keyword">const</span> <a class="code" href="structaxutil__env.html" title="Axis2 Environment struct.">axutil_env_t</a> * env);
<a name="l00290"></a>00290 
<a name="l00298"></a>00298         axis2_char_t *(
<a name="l00299"></a>00299             AXIS2_CALL
<a name="l00300"></a>00300             * <a class="code" href="structaxiom__xml__reader__ops.html#a9507f65a18b044ed7e33f088101d397">get_dtd</a>)(
<a name="l00301"></a>00301                 <a class="code" href="structaxiom__xml__reader.html" title="axiom_xml_reader struct Axis2 OM pull_parser">axiom_xml_reader_t</a> * parser,
<a name="l00302"></a>00302                 <span class="keyword">const</span> <a class="code" href="structaxutil__env.html" title="Axis2 Environment struct.">axutil_env_t</a> * env);
<a name="l00303"></a>00303 
<a name="l00314"></a>00314         void(
<a name="l00315"></a>00315             AXIS2_CALL
<a name="l00316"></a>00316             * <a class="code" href="structaxiom__xml__reader__ops.html#5fc97ffea35f86a12e538528e9024e04">xml_free</a>)(
<a name="l00317"></a>00317                 <a class="code" href="structaxiom__xml__reader.html" title="axiom_xml_reader struct Axis2 OM pull_parser">axiom_xml_reader_t</a> * parser,
<a name="l00318"></a>00318                 <span class="keyword">const</span> <a class="code" href="structaxutil__env.html" title="Axis2 Environment struct.">axutil_env_t</a> * env,
<a name="l00319"></a>00319                 <span class="keywordtype">void</span> *data);
<a name="l00320"></a>00320 
<a name="l00328"></a>00328         axis2_char_t *(
<a name="l00329"></a>00329             AXIS2_CALL
<a name="l00330"></a>00330             * <a class="code" href="structaxiom__xml__reader__ops.html#7f8c57bb6d5dcf59ff55fd3cbc677da2">get_char_set_encoding</a>)(
<a name="l00331"></a>00331                 <a class="code" href="structaxiom__xml__reader.html" title="axiom_xml_reader struct Axis2 OM pull_parser">axiom_xml_reader_t</a> * parser,
<a name="l00332"></a>00332                 <span class="keyword">const</span> <a class="code" href="structaxutil__env.html" title="Axis2 Environment struct.">axutil_env_t</a> * env);
<a name="l00333"></a>00333 
<a name="l00335"></a>00335         axis2_char_t *(
<a name="l00336"></a>00336             AXIS2_CALL
<a name="l00337"></a>00337             * <a class="code" href="structaxiom__xml__reader__ops.html#61441a7ed7c3eb2d8e3755deb63383b2">get_namespace_uri</a>)(
<a name="l00338"></a>00338                 <a class="code" href="structaxiom__xml__reader.html" title="axiom_xml_reader struct Axis2 OM pull_parser">axiom_xml_reader_t</a> * parser,
<a name="l00339"></a>00339                 <span class="keyword">const</span> <a class="code" href="structaxutil__env.html" title="Axis2 Environment struct.">axutil_env_t</a> * env);
<a name="l00340"></a>00340 
<a name="l00341"></a>00341         axis2_char_t *(
<a name="l00342"></a>00342             AXIS2_CALL
<a name="l00343"></a>00343             * get_namespace_uri_by_prefix)(
<a name="l00344"></a>00344                 <a class="code" href="structaxiom__xml__reader.html" title="axiom_xml_reader struct Axis2 OM pull_parser">axiom_xml_reader_t</a> * parser,
<a name="l00345"></a>00345                 <span class="keyword">const</span> <a class="code" href="structaxutil__env.html" title="Axis2 Environment struct.">axutil_env_t</a> * env,
<a name="l00346"></a>00346                 axis2_char_t * prefix);
<a name="l00347"></a>00347     };
<a name="l00348"></a>00348 
<a name="l00353"></a><a class="code" href="structaxiom__xml__reader.html">00353</a>     <span class="keyword">struct </span><a class="code" href="structaxiom__xml__reader.html" title="axiom_xml_reader struct Axis2 OM pull_parser">axiom_xml_reader</a>
<a name="l00354"></a>00354     {
<a name="l00355"></a>00355         <span class="keyword">const</span> <a class="code" href="structaxiom__xml__reader__ops.html" title="AXIOM_XML_READER ops Encapsulator struct for ops of axiom_xml_reader.">axiom_xml_reader_ops_t</a> *ops;
<a name="l00356"></a>00356     };
<a name="l00357"></a>00357 
<a name="l00366"></a>00366     AXIS2_EXTERN <a class="code" href="structaxiom__xml__reader.html" title="axiom_xml_reader struct Axis2 OM pull_parser">axiom_xml_reader_t</a> *AXIS2_CALL
<a name="l00367"></a>00367     <a class="code" href="group__axiom__xml__reader.html#gcdedc0633fbbd6d3a3f2a1af534f047a">axiom_xml_reader_create_for_file</a>(
<a name="l00368"></a>00368         <span class="keyword">const</span> <a class="code" href="structaxutil__env.html" title="Axis2 Environment struct.">axutil_env_t</a> * env,
<a name="l00369"></a>00369         <span class="keywordtype">char</span> *filename,
<a name="l00370"></a>00370         <span class="keyword">const</span> axis2_char_t * encoding);
<a name="l00371"></a>00371 
<a name="l00389"></a>00389     AXIS2_EXTERN <a class="code" href="structaxiom__xml__reader.html" title="axiom_xml_reader struct Axis2 OM pull_parser">axiom_xml_reader_t</a> *AXIS2_CALL
<a name="l00390"></a>00390     <a class="code" href="group__axiom__xml__reader.html#g77bd95155c1f98044ecc2b2c0f525e9b">axiom_xml_reader_create_for_io</a>(
<a name="l00391"></a>00391         <span class="keyword">const</span> <a class="code" href="structaxutil__env.html" title="Axis2 Environment struct.">axutil_env_t</a> * env,
<a name="l00392"></a>00392         AXIS2_READ_INPUT_CALLBACK,
<a name="l00393"></a>00393         AXIS2_CLOSE_INPUT_CALLBACK,
<a name="l00394"></a>00394         <span class="keywordtype">void</span> *ctx,
<a name="l00395"></a>00395         <span class="keyword">const</span> axis2_char_t * encoding);
<a name="l00396"></a>00396 
<a name="l00407"></a>00407     AXIS2_EXTERN <a class="code" href="structaxiom__xml__reader.html" title="axiom_xml_reader struct Axis2 OM pull_parser">axiom_xml_reader_t</a> *AXIS2_CALL
<a name="l00408"></a>00408     <a class="code" href="group__axiom__xml__reader.html#g2c03628448af33ea26951fc798e6ef84">axiom_xml_reader_create_for_memory</a>(
<a name="l00409"></a>00409         <span class="keyword">const</span> <a class="code" href="structaxutil__env.html" title="Axis2 Environment struct.">axutil_env_t</a> * env,
<a name="l00410"></a>00410         <span class="keywordtype">void</span> *container,
<a name="l00411"></a>00411         <span class="keywordtype">int</span> size,
<a name="l00412"></a>00412         <span class="keyword">const</span> axis2_char_t * encoding,
<a name="l00413"></a>00413         <span class="keywordtype">int</span> type);
<a name="l00414"></a>00414 
<a name="l00419"></a>00419     AXIS2_EXTERN axis2_status_t AXIS2_CALL
<a name="l00420"></a>00420     <a class="code" href="group__axiom__xml__reader.html#g8e39a922babd615678d53209c3d86c25">axiom_xml_reader_init</a>(<span class="keywordtype">void</span>
<a name="l00421"></a>00421     );
<a name="l00422"></a>00422 
<a name="l00427"></a>00427     AXIS2_EXTERN axis2_status_t AXIS2_CALL
<a name="l00428"></a>00428     <a class="code" href="group__axiom__xml__reader.html#gaaf09b4bb704c449270da3eebda5e813">axiom_xml_reader_cleanup</a>(<span class="keywordtype">void</span>
<a name="l00429"></a>00429     );
<a name="l00430"></a>00430 
<a name="l00439"></a>00439     AXIS2_EXTERN <span class="keywordtype">int</span> AXIS2_CALL
<a name="l00440"></a>00440     <a class="code" href="group__axiom__xml__reader.html#g3374162deb7e15d0a66fb47d5de68d4d">axiom_xml_reader_next</a>(
<a name="l00441"></a>00441         <a class="code" href="structaxiom__xml__reader.html" title="axiom_xml_reader struct Axis2 OM pull_parser">axiom_xml_reader_t</a> * parser,
<a name="l00442"></a>00442         <span class="keyword">const</span> <a class="code" href="structaxutil__env.html" title="Axis2 Environment struct.">axutil_env_t</a> * env);
<a name="l00443"></a>00443 
<a name="l00450"></a>00450     AXIS2_EXTERN <span class="keywordtype">void</span> AXIS2_CALL
<a name="l00451"></a>00451     <a class="code" href="group__axiom__xml__reader.html#g9bf782a28329a5661230324bde422a03">axiom_xml_reader_free</a>(
<a name="l00452"></a>00452         <a class="code" href="structaxiom__xml__reader.html" title="axiom_xml_reader struct Axis2 OM pull_parser">axiom_xml_reader_t</a> * parser,
<a name="l00453"></a>00453         <span class="keyword">const</span> <a class="code" href="structaxutil__env.html" title="Axis2 Environment struct.">axutil_env_t</a> * env);
<a name="l00454"></a>00454 
<a name="l00462"></a>00462     AXIS2_EXTERN <span class="keywordtype">int</span> AXIS2_CALL
<a name="l00463"></a>00463     <a class="code" href="group__axiom__xml__reader.html#gae564cf8501da5b814ff04c2ff193c72">axiom_xml_reader_get_attribute_count</a>(
<a name="l00464"></a>00464         <a class="code" href="structaxiom__xml__reader.html" title="axiom_xml_reader struct Axis2 OM pull_parser">axiom_xml_reader_t</a> * parser,
<a name="l00465"></a>00465         <span class="keyword">const</span> <a class="code" href="structaxutil__env.html" title="Axis2 Environment struct.">axutil_env_t</a> * env);
<a name="l00466"></a>00466 
<a name="l00473"></a>00473     AXIS2_EXTERN axis2_char_t *AXIS2_CALL
<a name="l00474"></a>00474     <a class="code" href="group__axiom__xml__reader.html#g41431f427bb3e0d68091225f346af9ef">axiom_xml_reader_get_attribute_name_by_number</a>(
<a name="l00475"></a>00475         <a class="code" href="structaxiom__xml__reader.html" title="axiom_xml_reader struct Axis2 OM pull_parser">axiom_xml_reader_t</a> * parser,
<a name="l00476"></a>00476         <span class="keyword">const</span> <a class="code" href="structaxutil__env.html" title="Axis2 Environment struct.">axutil_env_t</a> * env,
<a name="l00477"></a>00477         <span class="keywordtype">int</span> i);
<a name="l00478"></a>00478 
<a name="l00485"></a>00485     AXIS2_EXTERN axis2_char_t *AXIS2_CALL
<a name="l00486"></a>00486     <a class="code" href="group__axiom__xml__reader.html#g6ab4ee9babdcbf9ff38f2ee7fde7f8bd">axiom_xml_reader_get_attribute_prefix_by_number</a>(
<a name="l00487"></a>00487         <a class="code" href="structaxiom__xml__reader.html" title="axiom_xml_reader struct Axis2 OM pull_parser">axiom_xml_reader_t</a> * parser,
<a name="l00488"></a>00488         <span class="keyword">const</span> <a class="code" href="structaxutil__env.html" title="Axis2 Environment struct.">axutil_env_t</a> * env,
<a name="l00489"></a>00489         <span class="keywordtype">int</span> i);
<a name="l00490"></a>00490 
<a name="l00497"></a>00497     AXIS2_EXTERN axis2_char_t *AXIS2_CALL
<a name="l00498"></a>00498     <a class="code" href="group__axiom__xml__reader.html#g5008312eab21f2d6af4ab9c1facec082">axiom_xml_reader_get_attribute_value_by_number</a>(
<a name="l00499"></a>00499         <a class="code" href="structaxiom__xml__reader.html" title="axiom_xml_reader struct Axis2 OM pull_parser">axiom_xml_reader_t</a> * parser,
<a name="l00500"></a>00500         <span class="keyword">const</span> <a class="code" href="structaxutil__env.html" title="Axis2 Environment struct.">axutil_env_t</a> * env,
<a name="l00501"></a>00501         <span class="keywordtype">int</span> i);
<a name="l00502"></a>00502 
<a name="l00509"></a>00509     AXIS2_EXTERN axis2_char_t *AXIS2_CALL
<a name="l00510"></a>00510     <a class="code" href="group__axiom__xml__reader.html#g8095baf49f5ae2577dc6ddd47bbf9b80">axiom_xml_reader_get_attribute_namespace_by_number</a>(
<a name="l00511"></a>00511         <a class="code" href="structaxiom__xml__reader.html" title="axiom_xml_reader struct Axis2 OM pull_parser">axiom_xml_reader_t</a> * parser,
<a name="l00512"></a>00512         <span class="keyword">const</span> <a class="code" href="structaxutil__env.html" title="Axis2 Environment struct.">axutil_env_t</a> * env,
<a name="l00513"></a>00513         <span class="keywordtype">int</span> i);
<a name="l00514"></a>00514 
<a name="l00521"></a>00521     AXIS2_EXTERN axis2_char_t *AXIS2_CALL
<a name="l00522"></a>00522     <a class="code" href="group__axiom__xml__reader.html#gc28be6f3ba09e107505989be82ccaa74">axiom_xml_reader_get_value</a>(
<a name="l00523"></a>00523         <a class="code" href="structaxiom__xml__reader.html" title="axiom_xml_reader struct Axis2 OM pull_parser">axiom_xml_reader_t</a> * parser,
<a name="l00524"></a>00524         <span class="keyword">const</span> <a class="code" href="structaxutil__env.html" title="Axis2 Environment struct.">axutil_env_t</a> * env);
<a name="l00525"></a>00525 
<a name="l00532"></a>00532     AXIS2_EXTERN <span class="keywordtype">int</span> AXIS2_CALL
<a name="l00533"></a>00533     <a class="code" href="group__axiom__xml__reader.html#g5b6d2609022f69113b08cc5b592ce200">axiom_xml_reader_get_namespace_count</a>(
<a name="l00534"></a>00534         <a class="code" href="structaxiom__xml__reader.html" title="axiom_xml_reader struct Axis2 OM pull_parser">axiom_xml_reader_t</a> * parser,
<a name="l00535"></a>00535         <span class="keyword">const</span> <a class="code" href="structaxutil__env.html" title="Axis2 Environment struct.">axutil_env_t</a> * env);
<a name="l00536"></a>00536 
<a name="l00543"></a>00543     AXIS2_EXTERN axis2_char_t *AXIS2_CALL
<a name="l00544"></a>00544     <a class="code" href="group__axiom__xml__reader.html#g5e0eb27b0a37e723592881e5a35e0bb2">axiom_xml_reader_get_namespace_uri_by_number</a>(
<a name="l00545"></a>00545         <a class="code" href="structaxiom__xml__reader.html" title="axiom_xml_reader struct Axis2 OM pull_parser">axiom_xml_reader_t</a> * parser,
<a name="l00546"></a>00546         <span class="keyword">const</span> <a class="code" href="structaxutil__env.html" title="Axis2 Environment struct.">axutil_env_t</a> * env,
<a name="l00547"></a>00547         <span class="keywordtype">int</span> i);
<a name="l00548"></a>00548 
<a name="l00555"></a>00555     AXIS2_EXTERN axis2_char_t *AXIS2_CALL
<a name="l00556"></a>00556     <a class="code" href="group__axiom__xml__reader.html#gedb9e7e00933a87a9f9681625aa051af">axiom_xml_reader_get_namespace_prefix_by_number</a>(
<a name="l00557"></a>00557         <a class="code" href="structaxiom__xml__reader.html" title="axiom_xml_reader struct Axis2 OM pull_parser">axiom_xml_reader_t</a> * parser,
<a name="l00558"></a>00558         <span class="keyword">const</span> <a class="code" href="structaxutil__env.html" title="Axis2 Environment struct.">axutil_env_t</a> * env,
<a name="l00559"></a>00559         <span class="keywordtype">int</span> i);
<a name="l00560"></a>00560 
<a name="l00567"></a>00567     AXIS2_EXTERN axis2_char_t *AXIS2_CALL
<a name="l00568"></a>00568     <a class="code" href="group__axiom__xml__reader.html#g044e4fce90018e0abe787a224673109e">axiom_xml_reader_get_prefix</a>(
<a name="l00569"></a>00569         <a class="code" href="structaxiom__xml__reader.html" title="axiom_xml_reader struct Axis2 OM pull_parser">axiom_xml_reader_t</a> * parser,
<a name="l00570"></a>00570         <span class="keyword">const</span> <a class="code" href="structaxutil__env.html" title="Axis2 Environment struct.">axutil_env_t</a> * env);
<a name="l00571"></a>00571 
<a name="l00578"></a>00578     AXIS2_EXTERN axis2_char_t *AXIS2_CALL
<a name="l00579"></a>00579     <a class="code" href="group__axiom__xml__reader.html#g4aa5740186e9a96828f3faceee38f09e">axiom_xml_reader_get_name</a>(
<a name="l00580"></a>00580         <a class="code" href="structaxiom__xml__reader.html" title="axiom_xml_reader struct Axis2 OM pull_parser">axiom_xml_reader_t</a> * parser,
<a name="l00581"></a>00581         <span class="keyword">const</span> <a class="code" href="structaxutil__env.html" title="Axis2 Environment struct.">axutil_env_t</a> * env);
<a name="l00582"></a>00582 
<a name="l00589"></a>00589     AXIS2_EXTERN axis2_char_t *AXIS2_CALL
<a name="l00590"></a>00590     <a class="code" href="group__axiom__xml__reader.html#g02a3310afc9f6e696a1945b09c81df6e">axiom_xml_reader_get_pi_target</a>(
<a name="l00591"></a>00591         <a class="code" href="structaxiom__xml__reader.html" title="axiom_xml_reader struct Axis2 OM pull_parser">axiom_xml_reader_t</a> * parser,
<a name="l00592"></a>00592         <span class="keyword">const</span> <a class="code" href="structaxutil__env.html" title="Axis2 Environment struct.">axutil_env_t</a> * env);
<a name="l00593"></a>00593 
<a name="l00600"></a>00600     AXIS2_EXTERN axis2_char_t *AXIS2_CALL
<a name="l00601"></a>00601     <a class="code" href="group__axiom__xml__reader.html#g19f6e1a4ea34d5aa7ba16066501c3a08">axiom_xml_reader_get_pi_data</a>(
<a name="l00602"></a>00602         <a class="code" href="structaxiom__xml__reader.html" title="axiom_xml_reader struct Axis2 OM pull_parser">axiom_xml_reader_t</a> * parser,
<a name="l00603"></a>00603         <span class="keyword">const</span> <a class="code" href="structaxutil__env.html" title="Axis2 Environment struct.">axutil_env_t</a> * env);
<a name="l00604"></a>00604 
<a name="l00611"></a>00611     AXIS2_EXTERN axis2_char_t *AXIS2_CALL
<a name="l00612"></a>00612     <a class="code" href="group__axiom__xml__reader.html#g1c1f7c88232c5aec33cafc72fda5830e">axiom_xml_reader_get_dtd</a>(
<a name="l00613"></a>00613         <a class="code" href="structaxiom__xml__reader.html" title="axiom_xml_reader struct Axis2 OM pull_parser">axiom_xml_reader_t</a> * parser,
<a name="l00614"></a>00614         <span class="keyword">const</span> <a class="code" href="structaxutil__env.html" title="Axis2 Environment struct.">axutil_env_t</a> * env);
<a name="l00615"></a>00615 
<a name="l00622"></a>00622     AXIS2_EXTERN <span class="keywordtype">void</span> AXIS2_CALL
<a name="l00623"></a>00623     <a class="code" href="group__axiom__xml__reader.html#g06c3e71eb295e7a0869a21ca2c88386d">axiom_xml_reader_xml_free</a>(
<a name="l00624"></a>00624         <a class="code" href="structaxiom__xml__reader.html" title="axiom_xml_reader struct Axis2 OM pull_parser">axiom_xml_reader_t</a> * parser,
<a name="l00625"></a>00625         <span class="keyword">const</span> <a class="code" href="structaxutil__env.html" title="Axis2 Environment struct.">axutil_env_t</a> * env,
<a name="l00626"></a>00626         <span class="keywordtype">void</span> *data);
<a name="l00627"></a>00627 
<a name="l00635"></a>00635     AXIS2_EXTERN axis2_char_t *AXIS2_CALL
<a name="l00636"></a>00636     <a class="code" href="group__axiom__xml__reader.html#gfea9c20e6adcb4fa1228bba4de19774c">axiom_xml_reader_get_char_set_encoding</a>(
<a name="l00637"></a>00637         <a class="code" href="structaxiom__xml__reader.html" title="axiom_xml_reader struct Axis2 OM pull_parser">axiom_xml_reader_t</a> * parser,
<a name="l00638"></a>00638         <span class="keyword">const</span> <a class="code" href="structaxutil__env.html" title="Axis2 Environment struct.">axutil_env_t</a> * env);
<a name="l00639"></a>00639 
<a name="l00646"></a>00646     AXIS2_EXTERN axis2_char_t *AXIS2_CALL
<a name="l00647"></a>00647     <a class="code" href="group__axiom__xml__reader.html#geb34cdd664cab7fd67f4ef1b15e5c53f">axiom_xml_reader_get_namespace_uri</a>(
<a name="l00648"></a>00648         <a class="code" href="structaxiom__xml__reader.html" title="axiom_xml_reader struct Axis2 OM pull_parser">axiom_xml_reader_t</a> * parser,
<a name="l00649"></a>00649         <span class="keyword">const</span> <a class="code" href="structaxutil__env.html" title="Axis2 Environment struct.">axutil_env_t</a> * env);
<a name="l00650"></a>00650 
<a name="l00658"></a>00658     AXIS2_EXTERN axis2_char_t *AXIS2_CALL
<a name="l00659"></a>00659     <a class="code" href="group__axiom__xml__reader.html#g19fa07ce807e4e7b7442b46ccac57120">axiom_xml_reader_get_namespace_uri_by_prefix</a>(
<a name="l00660"></a>00660         <a class="code" href="structaxiom__xml__reader.html" title="axiom_xml_reader struct Axis2 OM pull_parser">axiom_xml_reader_t</a> * parser,
<a name="l00661"></a>00661         <span class="keyword">const</span> <a class="code" href="structaxutil__env.html" title="Axis2 Environment struct.">axutil_env_t</a> * env,
<a name="l00662"></a>00662         axis2_char_t * prefix);
<a name="l00663"></a>00663 
<a name="l00666"></a>00666 <span class="preprocessor">#ifdef __cplusplus</span>
<a name="l00667"></a>00667 <span class="preprocessor"></span>}
<a name="l00668"></a>00668 <span class="preprocessor">#endif</span>
<a name="l00669"></a>00669 <span class="preprocessor"></span>
<a name="l00670"></a>00670 <span class="preprocessor">#endif                          </span><span class="comment">/* AXIOM_XML_READER_H */</span>
<a name="l00671"></a>00671 
<a name="l00672"></a>00672 
<a name="l00673"></a>00673 
<a name="l00674"></a>00674 
<a name="l00675"></a>00675 
<a name="l00676"></a>00676 
<a name="l00677"></a>00677 
<a name="l00678"></a>00678 
<a name="l00679"></a>00679 
<a name="l00680"></a>00680 
<a name="l00681"></a>00681 
<a name="l00682"></a>00682 
<a name="l00683"></a>00683 
<a name="l00684"></a>00684 
</pre></div><hr size="1"><address style="text-align: right;"><small>Generated on Fri Apr 17 11:49:42 2009 for Axis2/C by&nbsp;
<a href="http://www.doxygen.org/index.html">
<img src="doxygen.png" alt="doxygen" align="middle" border="0"></a> 1.5.3 </small></address>
</body>
</html>


<|start_filename|>xdocs/api/html/axis2__phase__resolver_8h-source.html<|end_filename|>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html><head><meta http-equiv="Content-Type" content="text/html;charset=UTF-8">
<title>Axis2/C: axis2_phase_resolver.h Source File</title>
<link href="doxygen.css" rel="stylesheet" type="text/css">
<link href="tabs.css" rel="stylesheet" type="text/css">
</head><body>
<!-- Generated by Doxygen 1.5.3 -->
<div class="tabs">
  <ul>
    <li><a href="index.html"><span>Main&nbsp;Page</span></a></li>
    <li><a href="modules.html"><span>Modules</span></a></li>
    <li><a href="annotated.html"><span>Classes</span></a></li>
    <li class="current"><a href="files.html"><span>Files</span></a></li>
    <li><a href="dirs.html"><span>Directories</span></a></li>
    <li><a href="pages.html"><span>Related&nbsp;Pages</span></a></li>
    <li><a href="examples.html"><span>Examples</span></a></li>
    <li>
      <form action="search.php" method="get">
        <table cellspacing="0" cellpadding="0" border="0">
          <tr>
            <td><label>&nbsp;<u>S</u>earch&nbsp;for&nbsp;</label></td>
            <td><input type="text" name="query" value="" size="20" accesskey="s"/></td>
          </tr>
        </table>
      </form>
    </li>
  </ul>
</div>
<div class="nav">
<a class="el" href="dir_f60961de8e5edc3b2658ef023e959e45.html">deploy</a>&nbsp;&raquo&nbsp;<a class="el" href="dir_6b4e91e54b7316b376882a6402adbf44.html">include</a>&nbsp;&raquo&nbsp;<a class="el" href="dir_df3a7695d5a9e696f30b948b566829e7.html">axis2-1.6.0</a></div>
<h1>axis2_phase_resolver.h</h1><a href="axis2__phase__resolver_8h.html">Go to the documentation of this file.</a><div class="fragment"><pre class="fragment"><a name="l00001"></a>00001 
<a name="l00002"></a>00002 <span class="comment">/*</span>
<a name="l00003"></a>00003 <span class="comment">* Licensed to the Apache Software Foundation (ASF) under one or more</span>
<a name="l00004"></a>00004 <span class="comment">* contributor license agreements.  See the NOTICE file distributed with</span>
<a name="l00005"></a>00005 <span class="comment">* this work for additional information regarding copyright ownership.</span>
<a name="l00006"></a>00006 <span class="comment">* The ASF licenses this file to You under the Apache License, Version 2.0</span>
<a name="l00007"></a>00007 <span class="comment">* (the "License"); you may not use this file except in compliance with</span>
<a name="l00008"></a>00008 <span class="comment">* the License.  You may obtain a copy of the License at</span>
<a name="l00009"></a>00009 <span class="comment">*</span>
<a name="l00010"></a>00010 <span class="comment">*      http://www.apache.org/licenses/LICENSE-2.0</span>
<a name="l00011"></a>00011 <span class="comment">*</span>
<a name="l00012"></a>00012 <span class="comment">* Unless required by applicable law or agreed to in writing, software</span>
<a name="l00013"></a>00013 <span class="comment">* distributed under the License is distributed on an "AS IS" BASIS,</span>
<a name="l00014"></a>00014 <span class="comment">* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.</span>
<a name="l00015"></a>00015 <span class="comment">* See the License for the specific language governing permissions and</span>
<a name="l00016"></a>00016 <span class="comment">* limitations under the License.</span>
<a name="l00017"></a>00017 <span class="comment">*/</span>
<a name="l00018"></a>00018 
<a name="l00019"></a>00019 <span class="preprocessor">#ifndef AXIS2_PHASE_RESOLVER_H</span>
<a name="l00020"></a>00020 <span class="preprocessor"></span><span class="preprocessor">#define AXIS2_PHASE_RESOLVER_H</span>
<a name="l00021"></a>00021 <span class="preprocessor"></span>
<a name="l00064"></a>00064 <span class="preprocessor">#include &lt;axis2_const.h&gt;</span>
<a name="l00065"></a>00065 <span class="preprocessor">#include &lt;axutil_error.h&gt;</span>
<a name="l00066"></a>00066 <span class="preprocessor">#include &lt;<a class="code" href="axis2__defines_8h.html" title="Useful definitions, which may have platform concerns.">axis2_defines.h</a>&gt;</span>
<a name="l00067"></a>00067 <span class="preprocessor">#include &lt;<a class="code" href="axutil__env_8h.html" title="Axis2 environment that acts as a container for error, log and memory allocator routines...">axutil_env.h</a>&gt;</span>
<a name="l00068"></a>00068 <span class="preprocessor">#include &lt;<a class="code" href="axutil__allocator_8h.html" title="Axis2 memory allocator interface.">axutil_allocator.h</a>&gt;</span>
<a name="l00069"></a>00069 <span class="preprocessor">#include &lt;<a class="code" href="axutil__qname_8h.html" title="represents a qualified name">axutil_qname.h</a>&gt;</span>
<a name="l00070"></a>00070 <span class="preprocessor">#include &lt;<a class="code" href="axutil__array__list_8h.html" title="Axis2 array_list interface.">axutil_array_list.h</a>&gt;</span>
<a name="l00071"></a>00071 <span class="preprocessor">#include &lt;<a class="code" href="axutil__hash_8h.html" title="Axis2 Hash Tables.">axutil_hash.h</a>&gt;</span>
<a name="l00072"></a>00072 <span class="preprocessor">#include &lt;<a class="code" href="axis2__handler__desc_8h.html">axis2_handler_desc.h</a>&gt;</span>
<a name="l00073"></a>00073 <span class="preprocessor">#include &lt;<a class="code" href="axis2__phase_8h.html">axis2_phase.h</a>&gt;</span>
<a name="l00074"></a>00074 <span class="preprocessor">#include &lt;<a class="code" href="axis2__phase__rule_8h.html">axis2_phase_rule.h</a>&gt;</span>
<a name="l00075"></a>00075 <span class="preprocessor">#include &lt;<a class="code" href="axis2__handler_8h.html">axis2_handler.h</a>&gt;</span>
<a name="l00076"></a>00076 <span class="preprocessor">#include &lt;<a class="code" href="axis2__handler__desc_8h.html">axis2_handler_desc.h</a>&gt;</span>
<a name="l00077"></a>00077 <span class="preprocessor">#include &lt;<a class="code" href="axis2__flow_8h.html">axis2_flow.h</a>&gt;</span>
<a name="l00078"></a>00078 <span class="preprocessor">#include &lt;<a class="code" href="axis2__module__desc_8h.html">axis2_module_desc.h</a>&gt;</span>
<a name="l00079"></a>00079 <span class="preprocessor">#include &lt;<a class="code" href="axis2__phase__holder_8h.html">axis2_phase_holder.h</a>&gt;</span>
<a name="l00080"></a>00080 
<a name="l00081"></a>00081 <span class="preprocessor">#ifdef __cplusplus</span>
<a name="l00082"></a>00082 <span class="preprocessor"></span><span class="keyword">extern</span> <span class="stringliteral">"C"</span>
<a name="l00083"></a>00083 {
<a name="l00084"></a>00084 <span class="preprocessor">#endif</span>
<a name="l00085"></a>00085 <span class="preprocessor"></span>
<a name="l00087"></a><a class="code" href="group__axis2__phase__resolver.html#g1d7f5ab5b7042b14e61751be6e6bcb7c">00087</a>     <span class="keyword">typedef</span> <span class="keyword">struct </span>axis2_phase_resolver <a class="code" href="group__axis2__phase__resolver.html#g1d7f5ab5b7042b14e61751be6e6bcb7c">axis2_phase_resolver_t</a>;
<a name="l00088"></a>00088 
<a name="l00089"></a>00089     <span class="keyword">struct </span>axis2_phase;
<a name="l00090"></a>00090     <span class="keyword">struct </span>axis2_handler_desc;
<a name="l00091"></a>00091     <span class="keyword">struct </span>axis2_module_desc;
<a name="l00092"></a>00092     <span class="keyword">struct </span>axis2_handler;
<a name="l00093"></a>00093     <span class="keyword">struct </span>axis2_phase_rule;
<a name="l00094"></a>00094     <span class="keyword">struct </span>axis2_svc;
<a name="l00095"></a>00095     <span class="keyword">struct </span>axis2_conf;
<a name="l00096"></a>00096     <span class="keyword">struct </span>axis2_op;
<a name="l00097"></a>00097     <span class="keyword">struct </span>axis2_phase_holder;
<a name="l00098"></a>00098 
<a name="l00105"></a>00105     AXIS2_EXTERN <span class="keywordtype">void</span> AXIS2_CALL
<a name="l00106"></a>00106     <a class="code" href="group__axis2__phase__resolver.html#gec0d6b1a44b15361b0c840ef947572df">axis2_phase_resolver_free</a>(
<a name="l00107"></a>00107         <a class="code" href="group__axis2__phase__resolver.html#g1d7f5ab5b7042b14e61751be6e6bcb7c">axis2_phase_resolver_t</a> * phase_resolver,
<a name="l00108"></a>00108         <span class="keyword">const</span> <a class="code" href="structaxutil__env.html" title="Axis2 Environment struct.">axutil_env_t</a> * env);
<a name="l00109"></a>00109 
<a name="l00119"></a>00119     AXIS2_EXTERN axis2_status_t AXIS2_CALL
<a name="l00120"></a>00120 
<a name="l00121"></a>00121     <a class="code" href="group__axis2__phase__resolver.html#g38da02ab67a528c00d8a319e3855c69e">axis2_phase_resolver_engage_module_globally</a>(
<a name="l00122"></a>00122         <a class="code" href="group__axis2__phase__resolver.html#g1d7f5ab5b7042b14e61751be6e6bcb7c">axis2_phase_resolver_t</a> * phase_resolver,
<a name="l00123"></a>00123         <span class="keyword">const</span> <a class="code" href="structaxutil__env.html" title="Axis2 Environment struct.">axutil_env_t</a> * env,
<a name="l00124"></a>00124         <span class="keyword">struct</span> axis2_module_desc *module);
<a name="l00125"></a>00125 
<a name="l00136"></a>00136     AXIS2_EXTERN axis2_status_t AXIS2_CALL
<a name="l00137"></a>00137 
<a name="l00138"></a>00138     <a class="code" href="group__axis2__phase__resolver.html#gbbf06ef19a61ea00c495c980f8cbee1b">axis2_phase_resolver_engage_module_to_svc</a>(
<a name="l00139"></a>00139         <a class="code" href="group__axis2__phase__resolver.html#g1d7f5ab5b7042b14e61751be6e6bcb7c">axis2_phase_resolver_t</a> * phase_resolver,
<a name="l00140"></a>00140         <span class="keyword">const</span> <a class="code" href="structaxutil__env.html" title="Axis2 Environment struct.">axutil_env_t</a> * env,
<a name="l00141"></a>00141         <span class="keyword">struct</span> axis2_svc *svc,
<a name="l00142"></a>00142         <span class="keyword">struct</span> axis2_module_desc *module_desc);
<a name="l00143"></a>00143 
<a name="l00152"></a>00152     AXIS2_EXTERN axis2_status_t AXIS2_CALL
<a name="l00153"></a>00153     <a class="code" href="group__axis2__phase__resolver.html#g0bb13c67fd8595207d8f5b4e5dc801fd">axis2_phase_resolver_engage_module_to_op</a>(
<a name="l00154"></a>00154         <a class="code" href="group__axis2__phase__resolver.html#g1d7f5ab5b7042b14e61751be6e6bcb7c">axis2_phase_resolver_t</a> * phase_resolver,
<a name="l00155"></a>00155         <span class="keyword">const</span> <a class="code" href="structaxutil__env.html" title="Axis2 Environment struct.">axutil_env_t</a> * env,
<a name="l00156"></a>00156         <span class="keyword">struct</span> axis2_op *axis_op,
<a name="l00157"></a>00157         <span class="keyword">struct</span> axis2_module_desc *module_desc);
<a name="l00158"></a>00158 
<a name="l00167"></a>00167     AXIS2_EXTERN axis2_status_t AXIS2_CALL
<a name="l00168"></a>00168     <a class="code" href="group__axis2__phase__resolver.html#g2d199ef8c0cf2c6f0477a0b7f3008798">axis2_phase_resolver_build_execution_chains_for_svc</a>(
<a name="l00169"></a>00169         <a class="code" href="group__axis2__phase__resolver.html#g1d7f5ab5b7042b14e61751be6e6bcb7c">axis2_phase_resolver_t</a> * phase_resolver,
<a name="l00170"></a>00170         <span class="keyword">const</span> <a class="code" href="structaxutil__env.html" title="Axis2 Environment struct.">axutil_env_t</a> * env);
<a name="l00171"></a>00171 
<a name="l00179"></a>00179     AXIS2_EXTERN axis2_status_t AXIS2_CALL
<a name="l00180"></a>00180 
<a name="l00181"></a>00181     <a class="code" href="group__axis2__phase__resolver.html#gf5b9efb389e34a23b0bb7feb5974c0fc">axis2_phase_resolver_build_execution_chains_for_module_op</a>(
<a name="l00182"></a>00182         <a class="code" href="group__axis2__phase__resolver.html#g1d7f5ab5b7042b14e61751be6e6bcb7c">axis2_phase_resolver_t</a> * phase_resolver,
<a name="l00183"></a>00183         <span class="keyword">const</span> <a class="code" href="structaxutil__env.html" title="Axis2 Environment struct.">axutil_env_t</a> * env,
<a name="l00184"></a>00184         <span class="keyword">struct</span> axis2_op *op);
<a name="l00185"></a>00185 
<a name="l00196"></a>00196     AXIS2_EXTERN axis2_status_t AXIS2_CALL
<a name="l00197"></a>00197     <a class="code" href="group__axis2__phase__resolver.html#g65dbd4a356861cb3517d4788f45b874c">axis2_phase_resolver_disengage_module_from_svc</a>(
<a name="l00198"></a>00198         <a class="code" href="group__axis2__phase__resolver.html#g1d7f5ab5b7042b14e61751be6e6bcb7c">axis2_phase_resolver_t</a> * phase_resolver,
<a name="l00199"></a>00199         <span class="keyword">const</span> <a class="code" href="structaxutil__env.html" title="Axis2 Environment struct.">axutil_env_t</a> * env,
<a name="l00200"></a>00200         <span class="keyword">struct</span> axis2_svc *svc,
<a name="l00201"></a>00201         <span class="keyword">struct</span> axis2_module_desc *module_desc);
<a name="l00202"></a>00202 
<a name="l00211"></a>00211     AXIS2_EXTERN axis2_status_t AXIS2_CALL
<a name="l00212"></a>00212     <a class="code" href="group__axis2__phase__resolver.html#g899969368596162709da90423336dd11">axis2_phase_resolver_disengage_module_from_op</a>(
<a name="l00213"></a>00213         <a class="code" href="group__axis2__phase__resolver.html#g1d7f5ab5b7042b14e61751be6e6bcb7c">axis2_phase_resolver_t</a> * phase_resolver,
<a name="l00214"></a>00214         <span class="keyword">const</span> <a class="code" href="structaxutil__env.html" title="Axis2 Environment struct.">axutil_env_t</a> * env,
<a name="l00215"></a>00215         <span class="keyword">struct</span> axis2_op *axis_op,
<a name="l00216"></a>00216         <span class="keyword">struct</span> axis2_module_desc *module_desc);
<a name="l00217"></a>00217 
<a name="l00226"></a>00226     AXIS2_EXTERN axis2_status_t AXIS2_CALL
<a name="l00227"></a>00227     <a class="code" href="group__axis2__phase__resolver.html#g9efb7f943f914da282d838fc692bfe37">axis2_phase_resolver_build_transport_chains</a>(
<a name="l00228"></a>00228         <a class="code" href="group__axis2__phase__resolver.html#g1d7f5ab5b7042b14e61751be6e6bcb7c">axis2_phase_resolver_t</a> * phase_resolver,
<a name="l00229"></a>00229         <span class="keyword">const</span> <a class="code" href="structaxutil__env.html" title="Axis2 Environment struct.">axutil_env_t</a> * env);
<a name="l00230"></a>00230 
<a name="l00236"></a>00236     AXIS2_EXTERN <a class="code" href="group__axis2__phase__resolver.html#g1d7f5ab5b7042b14e61751be6e6bcb7c">axis2_phase_resolver_t</a> *AXIS2_CALL
<a name="l00237"></a>00237 
<a name="l00238"></a>00238     <a class="code" href="group__axis2__phase__resolver.html#g13fa6c6ea63393abfbb1740161a07555">axis2_phase_resolver_create</a>(
<a name="l00239"></a>00239         <span class="keyword">const</span> <a class="code" href="structaxutil__env.html" title="Axis2 Environment struct.">axutil_env_t</a> * env);
<a name="l00240"></a>00240 
<a name="l00248"></a>00248     AXIS2_EXTERN <a class="code" href="group__axis2__phase__resolver.html#g1d7f5ab5b7042b14e61751be6e6bcb7c">axis2_phase_resolver_t</a> *AXIS2_CALL
<a name="l00249"></a>00249 
<a name="l00250"></a>00250     <a class="code" href="group__axis2__phase__resolver.html#g256c0cd570fa29d36e8834aa2cc4f23c">axis2_phase_resolver_create_with_config</a>(
<a name="l00251"></a>00251         <span class="keyword">const</span> <a class="code" href="structaxutil__env.html" title="Axis2 Environment struct.">axutil_env_t</a> * env,
<a name="l00252"></a>00252         <span class="keyword">struct</span> axis2_conf *axis2_config);
<a name="l00253"></a>00253 
<a name="l00263"></a>00263     AXIS2_EXTERN <a class="code" href="group__axis2__phase__resolver.html#g1d7f5ab5b7042b14e61751be6e6bcb7c">axis2_phase_resolver_t</a> *AXIS2_CALL
<a name="l00264"></a>00264 
<a name="l00265"></a>00265     <a class="code" href="group__axis2__phase__resolver.html#ga476f0ca50e5c9b0a45e62e8bf5bd352">axis2_phase_resolver_create_with_config_and_svc</a>(
<a name="l00266"></a>00266         <span class="keyword">const</span> <a class="code" href="structaxutil__env.html" title="Axis2 Environment struct.">axutil_env_t</a> * env,
<a name="l00267"></a>00267         <span class="keyword">struct</span> axis2_conf *axis2_config,
<a name="l00268"></a>00268         <span class="keyword">struct</span> axis2_svc *svc);
<a name="l00269"></a>00269 
<a name="l00272"></a>00272 <span class="preprocessor">#ifdef __cplusplus</span>
<a name="l00273"></a>00273 <span class="preprocessor"></span>}
<a name="l00274"></a>00274 <span class="preprocessor">#endif</span>
<a name="l00275"></a>00275 <span class="preprocessor"></span><span class="preprocessor">#endif                          </span><span class="comment">/* AXIS2_PHASE_RESOLVER_H */</span>
</pre></div><hr size="1"><address style="text-align: right;"><small>Generated on Fri Apr 17 11:49:42 2009 for Axis2/C by&nbsp;
<a href="http://www.doxygen.org/index.html">
<img src="doxygen.png" alt="doxygen" align="middle" border="0"></a> 1.5.3 </small></address>
</body>
</html>


<|start_filename|>xdocs/api/html/structaxutil__error.html<|end_filename|>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html><head><meta http-equiv="Content-Type" content="text/html;charset=UTF-8">
<title>Axis2/C: axutil_error Struct Reference</title>
<link href="doxygen.css" rel="stylesheet" type="text/css">
<link href="tabs.css" rel="stylesheet" type="text/css">
</head><body>
<!-- Generated by Doxygen 1.5.3 -->
<div class="tabs">
  <ul>
    <li><a href="index.html"><span>Main&nbsp;Page</span></a></li>
    <li><a href="modules.html"><span>Modules</span></a></li>
    <li class="current"><a href="annotated.html"><span>Classes</span></a></li>
    <li><a href="files.html"><span>Files</span></a></li>
    <li><a href="dirs.html"><span>Directories</span></a></li>
    <li><a href="pages.html"><span>Related&nbsp;Pages</span></a></li>
    <li><a href="examples.html"><span>Examples</span></a></li>
    <li>
      <form action="search.php" method="get">
        <table cellspacing="0" cellpadding="0" border="0">
          <tr>
            <td><label>&nbsp;<u>S</u>earch&nbsp;for&nbsp;</label></td>
            <td><input type="text" name="query" value="" size="20" accesskey="s"/></td>
          </tr>
        </table>
      </form>
    </li>
  </ul>
</div>
<div class="tabs">
  <ul>
    <li><a href="annotated.html"><span>Class&nbsp;List</span></a></li>
    <li><a href="functions.html"><span>Class&nbsp;Members</span></a></li>
  </ul>
</div>
<h1>axutil_error Struct Reference<br>
<small>
[<a class="el" href="group__axutil__error.html">error</a>]</small>
</h1><!-- doxytag: class="axutil_error" --><code>#include &lt;<a class="el" href="axutil__error_8h-source.html">axutil_error.h</a>&gt;</code>
<p>

<p>
<a href="structaxutil__error-members.html">List of all members.</a><table border="0" cellpadding="0" cellspacing="0">
<tr><td></td></tr>
<tr><td colspan="2"><br><h2>Public Attributes</h2></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="el" href="structaxutil__allocator.html">axutil_allocator_t</a> *&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="structaxutil__error.html#2f53d04714902b5a03c4b646effdb471">allocator</a></td></tr>

<tr><td class="memItemLeft" nowrap align="right" valign="top">int&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="structaxutil__error.html#3da4cc0e92d6497abb53a77de312761e">error_number</a></td></tr>

<tr><td class="memItemLeft" nowrap align="right" valign="top">int&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="structaxutil__error.html#39bc351d123f4f466b12c7157b29487f">status_code</a></td></tr>

<tr><td class="memItemLeft" nowrap align="right" valign="top">axis2_char_t *&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="structaxutil__error.html#a016f4ce55a9b63eb01dc66430d04c4f">message</a></td></tr>

</table>
<hr><a name="_details"></a><h2>Detailed Description</h2>
Axutil error struct. Error holds the last error number, the status code as well as the last error message. <hr><h2>Member Data Documentation</h2>
<a class="anchor" name="2f53d04714902b5a03c4b646effdb471"></a><!-- doxytag: member="axutil_error::allocator" ref="2f53d04714902b5a03c4b646effdb471" args="" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="structaxutil__allocator.html">axutil_allocator_t</a>* <a class="el" href="structaxutil__error.html#2f53d04714902b5a03c4b646effdb471">axutil_error::allocator</a>          </td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
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. 
</div>
</div><p>
<a class="anchor" name="3da4cc0e92d6497abb53a77de312761e"></a><!-- doxytag: member="axutil_error::error_number" ref="3da4cc0e92d6497abb53a77de312761e" args="" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">int <a class="el" href="structaxutil__error.html#3da4cc0e92d6497abb53a77de312761e">axutil_error::error_number</a>          </td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
Last error number. 
</div>
</div><p>
<a class="anchor" name="39bc351d123f4f466b12c7157b29487f"></a><!-- doxytag: member="axutil_error::status_code" ref="39bc351d123f4f466b12c7157b29487f" args="" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">int <a class="el" href="structaxutil__error.html#39bc351d123f4f466b12c7157b29487f">axutil_error::status_code</a>          </td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
Last status code. 
</div>
</div><p>
<a class="anchor" name="a016f4ce55a9b63eb01dc66430d04c4f"></a><!-- doxytag: member="axutil_error::message" ref="a016f4ce55a9b63eb01dc66430d04c4f" args="" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">axis2_char_t* <a class="el" href="structaxutil__error.html#a016f4ce55a9b63eb01dc66430d04c4f">axutil_error::message</a>          </td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
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. 
</div>
</div><p>
<hr>The documentation for this struct was generated from the following file:<ul>
<li><a class="el" href="axutil__error_8h-source.html">axutil_error.h</a></ul>
<hr size="1"><address style="text-align: right;"><small>Generated on Fri Apr 17 11:49:48 2009 for Axis2/C by&nbsp;
<a href="http://www.doxygen.org/index.html">
<img src="doxygen.png" alt="doxygen" align="middle" border="0"></a> 1.5.3 </small></address>
</body>
</html>


<|start_filename|>xdocs/api/html/axiom__soap__body_8h-source.html<|end_filename|>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html><head><meta http-equiv="Content-Type" content="text/html;charset=UTF-8">
<title>Axis2/C: axiom_soap_body.h Source File</title>
<link href="doxygen.css" rel="stylesheet" type="text/css">
<link href="tabs.css" rel="stylesheet" type="text/css">
</head><body>
<!-- Generated by Doxygen 1.5.3 -->
<div class="tabs">
  <ul>
    <li><a href="index.html"><span>Main&nbsp;Page</span></a></li>
    <li><a href="modules.html"><span>Modules</span></a></li>
    <li><a href="annotated.html"><span>Classes</span></a></li>
    <li class="current"><a href="files.html"><span>Files</span></a></li>
    <li><a href="dirs.html"><span>Directories</span></a></li>
    <li><a href="pages.html"><span>Related&nbsp;Pages</span></a></li>
    <li><a href="examples.html"><span>Examples</span></a></li>
    <li>
      <form action="search.php" method="get">
        <table cellspacing="0" cellpadding="0" border="0">
          <tr>
            <td><label>&nbsp;<u>S</u>earch&nbsp;for&nbsp;</label></td>
            <td><input type="text" name="query" value="" size="20" accesskey="s"/></td>
          </tr>
        </table>
      </form>
    </li>
  </ul>
</div>
<div class="nav">
<a class="el" href="dir_f60961de8e5edc3b2658ef023e959e45.html">deploy</a>&nbsp;&raquo&nbsp;<a class="el" href="dir_6b4e91e54b7316b376882a6402adbf44.html">include</a>&nbsp;&raquo&nbsp;<a class="el" href="dir_df3a7695d5a9e696f30b948b566829e7.html">axis2-1.6.0</a></div>
<h1>axiom_soap_body.h</h1><a href="axiom__soap__body_8h.html">Go to the documentation of this file.</a><div class="fragment"><pre class="fragment"><a name="l00001"></a>00001 
<a name="l00002"></a>00002 <span class="comment">/*</span>
<a name="l00003"></a>00003 <span class="comment"> * Licensed to the Apache Software Foundation (ASF) under one or more</span>
<a name="l00004"></a>00004 <span class="comment"> * contributor license agreements.  See the NOTICE file distributed with</span>
<a name="l00005"></a>00005 <span class="comment"> * this work for additional information regarding copyright ownership.</span>
<a name="l00006"></a>00006 <span class="comment"> * The ASF licenses this file to You under the Apache License, Version 2.0</span>
<a name="l00007"></a>00007 <span class="comment"> * (the "License"); you may not use this file except in compliance with</span>
<a name="l00008"></a>00008 <span class="comment"> * the License.  You may obtain a copy of the License at</span>
<a name="l00009"></a>00009 <span class="comment"> *</span>
<a name="l00010"></a>00010 <span class="comment"> *      http://www.apache.org/licenses/LICENSE-2.0</span>
<a name="l00011"></a>00011 <span class="comment"> *</span>
<a name="l00012"></a>00012 <span class="comment"> * Unless required by applicable law or agreed to in writing, software</span>
<a name="l00013"></a>00013 <span class="comment"> * distributed under the License is distributed on an "AS IS" BASIS,</span>
<a name="l00014"></a>00014 <span class="comment"> * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.</span>
<a name="l00015"></a>00015 <span class="comment"> * See the License for the specific language governing permissions and</span>
<a name="l00016"></a>00016 <span class="comment"> * limitations under the License.</span>
<a name="l00017"></a>00017 <span class="comment"> */</span>
<a name="l00018"></a>00018 
<a name="l00019"></a>00019 <span class="preprocessor">#ifndef AXIOM_SOAP_BODY_H</span>
<a name="l00020"></a>00020 <span class="preprocessor"></span><span class="preprocessor">#define AXIOM_SOAP_BODY_H</span>
<a name="l00021"></a>00021 <span class="preprocessor"></span>
<a name="l00027"></a>00027 <span class="preprocessor">#include &lt;<a class="code" href="axutil__env_8h.html" title="Axis2 environment that acts as a container for error, log and memory allocator routines...">axutil_env.h</a>&gt;</span>
<a name="l00028"></a>00028 <span class="preprocessor">#include &lt;<a class="code" href="axiom__node_8h.html" title="defines axiom_node struct">axiom_node.h</a>&gt;</span>
<a name="l00029"></a>00029 <span class="preprocessor">#include &lt;axiom_element.h&gt;</span>
<a name="l00030"></a>00030 <span class="preprocessor">#include &lt;axiom_namespace.h&gt;</span>
<a name="l00031"></a>00031 <span class="preprocessor">#include &lt;<a class="code" href="axiom__soap__fault_8h.html" title="axiom_soap_fault struct">axiom_soap_fault.h</a>&gt;</span>
<a name="l00032"></a>00032 <span class="preprocessor">#include &lt;<a class="code" href="axiom__soap__envelope_8h.html" title="axiom_soap_envelope struct corresponds to root element of soap message">axiom_soap_envelope.h</a>&gt;</span>
<a name="l00033"></a>00033 
<a name="l00034"></a>00034 <span class="preprocessor">#ifdef __cplusplus</span>
<a name="l00035"></a>00035 <span class="preprocessor"></span><span class="keyword">extern</span> <span class="stringliteral">"C"</span>
<a name="l00036"></a>00036 {
<a name="l00037"></a>00037 <span class="preprocessor">#endif</span>
<a name="l00038"></a>00038 <span class="preprocessor"></span>
<a name="l00039"></a>00039     <span class="keyword">typedef</span> <span class="keyword">struct </span>axiom_soap_body axiom_soap_body_t;
<a name="l00040"></a>00040     <span class="keyword">struct </span>axiom_soap_builder;
<a name="l00041"></a>00041 
<a name="l00065"></a>00065     AXIS2_EXTERN axiom_soap_body_t *AXIS2_CALL
<a name="l00066"></a>00066     <a class="code" href="group__axiom__soap__body.html#ged07d656f1b298588cdbc539609d979f">axiom_soap_body_create_with_parent</a>(
<a name="l00067"></a>00067         <span class="keyword">const</span> <a class="code" href="structaxutil__env.html" title="Axis2 Environment struct.">axutil_env_t</a> * env,
<a name="l00068"></a>00068         <span class="keyword">struct</span> axiom_soap_envelope *envelope);
<a name="l00069"></a>00069 
<a name="l00077"></a>00077     AXIS2_EXTERN <span class="keywordtype">void</span> AXIS2_CALL
<a name="l00078"></a>00078     <a class="code" href="group__axiom__soap__body.html#g34c1b50ba393f19106007eed20104e1d">axiom_soap_body_free</a>(
<a name="l00079"></a>00079         axiom_soap_body_t * body,
<a name="l00080"></a>00080         <span class="keyword">const</span> <a class="code" href="structaxutil__env.html" title="Axis2 Environment struct.">axutil_env_t</a> * env);
<a name="l00081"></a>00081 
<a name="l00089"></a>00089     AXIS2_EXTERN axis2_bool_t AXIS2_CALL
<a name="l00090"></a>00090     <a class="code" href="group__axiom__soap__body.html#g5e88d50ff93d508053b3920f301f301c">axiom_soap_body_has_fault</a>(
<a name="l00091"></a>00091         axiom_soap_body_t * body,
<a name="l00092"></a>00092         <span class="keyword">const</span> <a class="code" href="structaxutil__env.html" title="Axis2 Environment struct.">axutil_env_t</a> * env);
<a name="l00093"></a>00093 
<a name="l00102"></a>00102     AXIS2_EXTERN axiom_soap_fault_t *AXIS2_CALL
<a name="l00103"></a>00103     <a class="code" href="group__axiom__soap__body.html#ga5be4d54bfebaa44966685511e2ad96b">axiom_soap_body_get_fault</a>(
<a name="l00104"></a>00104         axiom_soap_body_t * body,
<a name="l00105"></a>00105         <span class="keyword">const</span> <a class="code" href="structaxutil__env.html" title="Axis2 Environment struct.">axutil_env_t</a> * env);
<a name="l00106"></a>00106 
<a name="l00113"></a>00113     AXIS2_EXTERN axiom_node_t *AXIS2_CALL
<a name="l00114"></a>00114     <a class="code" href="group__axiom__soap__body.html#g9bbf0f7a4ecab44106145d9b97f07dfc">axiom_soap_body_get_base_node</a>(
<a name="l00115"></a>00115         axiom_soap_body_t * body,
<a name="l00116"></a>00116         <span class="keyword">const</span> <a class="code" href="structaxutil__env.html" title="Axis2 Environment struct.">axutil_env_t</a> * env);
<a name="l00117"></a>00117 
<a name="l00124"></a>00124     AXIS2_EXTERN <span class="keywordtype">int</span> AXIS2_CALL
<a name="l00125"></a>00125     <a class="code" href="group__axiom__soap__body.html#ge87f17d53d2995ac6c3b05be6d7dddaa">axiom_soap_body_get_soap_version</a>(
<a name="l00126"></a>00126         axiom_soap_body_t * body,
<a name="l00127"></a>00127         <span class="keyword">const</span> <a class="code" href="structaxutil__env.html" title="Axis2 Environment struct.">axutil_env_t</a> * env);
<a name="l00128"></a>00128 
<a name="l00135"></a>00135     AXIS2_EXTERN axis2_status_t AXIS2_CALL
<a name="l00136"></a>00136     <a class="code" href="group__axiom__soap__body.html#g5a7066590890390e527b0a718178c785">axiom_soap_body_build</a>(
<a name="l00137"></a>00137         axiom_soap_body_t * body,
<a name="l00138"></a>00138         <span class="keyword">const</span> <a class="code" href="structaxutil__env.html" title="Axis2 Environment struct.">axutil_env_t</a> * env);
<a name="l00139"></a>00139 
<a name="l00148"></a>00148     AXIS2_EXTERN axis2_status_t AXIS2_CALL
<a name="l00149"></a>00149     <a class="code" href="group__axiom__soap__body.html#g67ce69f3f13c325bd541fff5a2059d49">axiom_soap_body_add_child</a>(
<a name="l00150"></a>00150         axiom_soap_body_t * body,
<a name="l00151"></a>00151         <span class="keyword">const</span> <a class="code" href="structaxutil__env.html" title="Axis2 Environment struct.">axutil_env_t</a> * env,
<a name="l00152"></a>00152         axiom_node_t * child);
<a name="l00153"></a>00153 
<a name="l00162"></a>00162     AXIS2_EXTERN axis2_status_t AXIS2_CALL
<a name="l00163"></a>00163     <a class="code" href="group__axiom__soap__body.html#g9e5fafdf4c3be8634b6460caaf2483c0">axiom_soap_body_convert_fault_to_soap11</a>(
<a name="l00164"></a>00164         axiom_soap_body_t * soap_body,
<a name="l00165"></a>00165         <span class="keyword">const</span> <a class="code" href="structaxutil__env.html" title="Axis2 Environment struct.">axutil_env_t</a> * env);
<a name="l00166"></a>00166 
<a name="l00167"></a>00167 
<a name="l00168"></a>00168     AXIS2_EXTERN axis2_status_t AXIS2_CALL
<a name="l00169"></a>00169     axiom_soap_body_process_attachments(
<a name="l00170"></a>00170         axiom_soap_body_t * soap_body,
<a name="l00171"></a>00171         <span class="keyword">const</span> <a class="code" href="structaxutil__env.html" title="Axis2 Environment struct.">axutil_env_t</a> * env,
<a name="l00172"></a>00172         <span class="keywordtype">void</span> *user_param,
<a name="l00173"></a>00173         axis2_char_t *callback_name);
<a name="l00174"></a>00174 
<a name="l00175"></a>00175 
<a name="l00176"></a>00176 <span class="preprocessor">#ifdef __cplusplus</span>
<a name="l00177"></a>00177 <span class="preprocessor"></span>}
<a name="l00178"></a>00178 <span class="preprocessor">#endif</span>
<a name="l00179"></a>00179 <span class="preprocessor"></span>
<a name="l00180"></a>00180 <span class="preprocessor">#endif                          </span><span class="comment">/* AXIOM_SOAP_BODY_H */</span>
</pre></div><hr size="1"><address style="text-align: right;"><small>Generated on Fri Apr 17 11:49:42 2009 for Axis2/C by&nbsp;
<a href="http://www.doxygen.org/index.html">
<img src="doxygen.png" alt="doxygen" align="middle" border="0"></a> 1.5.3 </small></address>
</body>
</html>


<|start_filename|>util/src/platforms/windows/axutil_windows.c<|end_filename|>

/*
 * 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.
 */

 

#include <windows/axutil_windows.h>
#include <stdio.h>
    

/*

std::string* getPlatformErrorMessage(long errorNumber)
{
   std::string* returningString = new std::string();
    LPVOID lpMsgBuf;

   FormatMessage(
   FORMAT_MESSAGE_ALLOCATE_BUFFER |
   FORMAT_MESSAGE_FROM_SYSTEM,
   NULL,
   errorNumber,
   MAKELANGID(LANG_NEUTRAL, SUBLANG_DEFAULT),
   (LPTSTR) &lpMsgBuf,
   0, NULL );

   returningString->append((LPTSTR)lpMsgBuf);
    LocalFree(lpMsgBuf);

    return returningString;
}
*/ 
AXIS2_EXTERN HMODULE AXIS2_CALL 
callLoadLib(char *lib) 
{
	/* Disable display of the critical-error-handler message box */
    SetErrorMode(SEM_FAILCRITICALERRORS); 
    return LoadLibraryEx(lib, NULL, LOAD_WITH_ALTERED_SEARCH_PATH);
}


AXIS2_EXTERN struct tm *AXIS2_CALL 
axis2_win_gmtime(
    const time_t * timep,
    struct tm *result) 
{
    return gmtime(timep);
}

AXIS2_EXTERN void AXIS2_CALL 
axutil_win32_get_last_error(axis2_char_t *buf, 
							unsigned int buf_size)
{
	LPVOID lpMsgBuf;	
	int rc = GetLastError();
	sprintf( buf, "DLL Load Error %d: ", rc );
	FormatMessage(FORMAT_MESSAGE_ALLOCATE_BUFFER | FORMAT_MESSAGE_FROM_SYSTEM,
				  NULL,
	              rc,
	              0, 
				  (LPTSTR) &lpMsgBuf,
				  0,
				  NULL
				);
	if (lpMsgBuf)
	{
		strncat( buf, (char*)lpMsgBuf, buf_size - strlen( buf ) - 1 );
	}
	LocalFree( lpMsgBuf );
}

AXIS2_EXTERN void AXIS2_CALL
axutil_win32_get_last_wsa_error(axis2_char_t *buf, 
								unsigned int buf_size)
{
	LPVOID lpMsgBuf;	
	int rc = WSAGetLastError();
	sprintf( buf, "Winsock error %d: ", rc );
	FormatMessage(FORMAT_MESSAGE_ALLOCATE_BUFFER | FORMAT_MESSAGE_FROM_SYSTEM,
				  NULL,
	              rc,
	              0, 
				  (LPTSTR) &lpMsgBuf,
				  0,
				  NULL
				);
	if (lpMsgBuf)
	{
		strncat( buf, (char*)lpMsgBuf, buf_size - strlen( buf ) - 1 );
	}
	LocalFree( lpMsgBuf );
}


<|start_filename|>guththila/tests/test_utf8_encoder.c<|end_filename|>

/*
 * 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.
 */  
#include <guththila.h>
#include <check.h>
#include <string.h>
#include "test.h"

static guththila_utf8_encoder_t *encoder = NULL;

void
setup_utf8_encoder(
    void)
{
    allocator = axutil_allocator_init(NULL);
    env = axutil_env_create(allocator);
    encoder = guththila_utf8_encoder_create(env);
}

void
teardown_utf8_encoder(
    void)
{
    guththila_utf8_encoder_free(encoder, env);
    axutil_env_free(env);
}

START_TEST(test_encode_1_byte_letter)
{
    int code_point = 'A';
    guththila_char_t buffer[10];
    int buffer_length = 10;
    int is_done = guththila_utf8_encoder_encode(encoder, code_point, buffer,
                                                &buffer_length, env);
    fail_if(is_done == 0, "guththila encoder is not done");
    fail_if(GUTHTHILA_UTF8_ENCODER_IS_ERROR(encoder) != 0,
            "guththila encoder detected error");
    fail_if(GUTHTHILA_UTF8_ENCODER_IS_BUFFERED(encoder) == 0,
            "guththila encoder has no buffer space");
    int encoded_length = 10 - buffer_length;
    fail_if(encoded_length != 1, "guththila encoder encoding wrong length");
    fail_if(buffer[0] != 'A', "guththila encoder encoding wrong byte 0");
}
END_TEST

START_TEST(test_encode_2_byte_letter)
{
    //       Greek Alpha:   Code point: 913 UTF-8: \xCE\x91
    int code_point = 913;
    guththila_char_t buffer[10];
    int buffer_length = 10;
    int is_done = guththila_utf8_encoder_encode(encoder, code_point, buffer,
                                                &buffer_length, env);
    fail_if(is_done == 0, "guththila encoder is not done");
    fail_if(GUTHTHILA_UTF8_ENCODER_IS_ERROR(encoder) != 0,
            "guththila encoder detected error");
    fail_if(GUTHTHILA_UTF8_ENCODER_IS_BUFFERED(encoder) == 0,
            "guththila encoder has no buffer space");
    int encoded_length = 10 - buffer_length;
    fail_if(encoded_length != 2, "guththila encoder encoding wrong length");
    fail_if(buffer[0] != '\xCE', "guththila encoder encoding wrong byte 0");
    fail_if(buffer[1] != '\x91', "guththila encoder encoding wrong byte 1");
}
END_TEST

START_TEST(test_encode_3_byte_letter)
{
    //       Thai Sara U:   Code point: 3640 UTF-8: \xE0\xB8\xB8
    int code_point = 3640;
    guththila_char_t buffer[10];
    int buffer_length = 10;
    int is_done = guththila_utf8_encoder_encode(encoder, code_point, buffer,
                                                &buffer_length, env);
    fail_if(is_done == 0, "guththila encoder is not done");
    fail_if(GUTHTHILA_UTF8_ENCODER_IS_ERROR(encoder) != 0,
            "guththila encoder detected error");
    fail_if(GUTHTHILA_UTF8_ENCODER_IS_BUFFERED(encoder) == 0,
            "guththila encoder has no buffer space");
    int encoded_length = 10 - buffer_length;
    fail_if(encoded_length != 3, "guththila encoder encoding wrong length");
    fail_if(buffer[0] != '\xE0', "guththila encoder encoding wrong byte 0");
    fail_if(buffer[1] != '\xB8', "guththila encoder encoding wrong byte 1");
    fail_if(buffer[2] != '\xB8', "guththila encoder encoding wrong byte 2");
}
END_TEST

START_TEST(test_encode_4_byte_letter)
{
    // Chinese Treestump:   Code point: 144308 UTF-8: \xF0\xA3\x8E\xB4
    int code_point = 144308;
    guththila_char_t buffer[10];
    int buffer_length = 10;
    int is_done = guththila_utf8_encoder_encode(encoder, code_point, buffer,
                                                &buffer_length, env);
    fail_if(is_done == 0, "guththila encoder is not done");
    fail_if(GUTHTHILA_UTF8_ENCODER_IS_ERROR(encoder) != 0,
            "guththila encoder detected error");
    fail_if(GUTHTHILA_UTF8_ENCODER_IS_BUFFERED(encoder) == 0,
            "guththila encoder has no buffer space");
    int encoded_length = 10 - buffer_length;
    fail_if(encoded_length != 4, "guththila encoder encoding wrong length");
    fail_if(buffer[0] != '\xF0', "guththila encoder encoding wrong byte 0");
    fail_if(buffer[1] != '\xA3', "guththila encoder encoding wrong byte 1");
    fail_if(buffer[2] != '\x8E', "guththila encoder encoding wrong byte 2");
    fail_if(buffer[3] != '\xB4', "guththila encoder encoding wrong byte 3");
}
END_TEST

START_TEST(test_encode_4_byte_letter_overflow)
{
    // Chinese Treestump:   Code point: 144308 UTF-8: \xF0\xA3\x8E\xB4
    int code_point = 144308;
    guththila_char_t buffer[10];
    int buffer_length = 2;
    int is_done = guththila_utf8_encoder_encode(encoder, code_point, buffer,
                                                &buffer_length, env);
    fail_if(is_done != 0, "guththila encoder already done");
    fail_if(GUTHTHILA_UTF8_ENCODER_IS_ERROR(encoder) != 0,
            "guththila encoder detected error");
    fail_if(GUTHTHILA_UTF8_ENCODER_IS_BUFFERED(encoder) != 0,
            "guththila encoder has buffer space");
    int encoded_length = 2 - buffer_length;
    fail_if(encoded_length != 2, "guththila encoder encoding wrong length");
    fail_if(buffer[0] != '\xF0', "guththila encoder encoding wrong byte 0");
    fail_if(buffer[1] != '\xA3', "guththila encoder encoding wrong byte 1");
    buffer_length = 2;
    is_done = guththila_utf8_encoder_encode(encoder, code_point, buffer,
                                                &buffer_length, env);
    fail_if(is_done == 0, "guththila encoder is not done");
    fail_if(GUTHTHILA_UTF8_ENCODER_IS_ERROR(encoder) != 0,
            "guththila encoder detected error");
    fail_if(GUTHTHILA_UTF8_ENCODER_IS_BUFFERED(encoder) == 0,
            "guththila encoder has no more buffer space");
    encoded_length = 2 - buffer_length;
    fail_if(encoded_length != 2, "guththila encoder encoding wrong length");
    fail_if(buffer[0] != '\x8E', "guththila encoder encoding wrong byte 2");
    fail_if(buffer[1] != '\xB4', "guththila encoder encoding wrong byte 3");
}
END_TEST

Suite * guththila_utf8_encoder_suite(void)
{
    Suite *s = suite_create("Guththila_utf8_encoder");

    /* Core test case */
    TCase *tc_core = tcase_create("utf8_encoder");
    tcase_add_checked_fixture(tc_core, setup_utf8_encoder, teardown_utf8_encoder);
    tcase_add_test(tc_core, test_encode_1_byte_letter);
    tcase_add_test(tc_core, test_encode_2_byte_letter);
    tcase_add_test(tc_core, test_encode_3_byte_letter);
    tcase_add_test(tc_core, test_encode_4_byte_letter);
    tcase_add_test(tc_core, test_encode_4_byte_letter_overflow);
    suite_add_tcase(s, tc_core);
    return s;
}


<|start_filename|>src/core/engine/ctx_handler.c<|end_filename|>

/*
 * 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.
 */

#include <axis2_handler_desc.h>
#include <axutil_string.h>
#include <axis2_svc.h>
#include <axis2_conf_ctx.h>

const axis2_char_t *AXIS2_CTX_HANDLER_NAME = "context_handler";

/**
 * By the time the control comes to this handler, the dispatching must have
 * happened so that the message context contains the service group, service and
 * operation. This will then try to find the contexts for service group, service
 * and the operation.
 */

axis2_status_t AXIS2_CALL axis2_ctx_handler_invoke(
    axis2_handler_t * handler,
    const axutil_env_t * env,
    struct axis2_msg_ctx *msg_ctx);

axis2_handler_t *AXIS2_CALL
axis2_ctx_handler_create(
    const axutil_env_t * env,
    const axutil_string_t * string)
{
    axis2_handler_t *handler = NULL;
    axis2_handler_desc_t *handler_desc = NULL;
    axutil_string_t *handler_string = NULL;

    if (string)
    {
        handler_string = axutil_string_clone((axutil_string_t *) string, env);
        if (!(handler_string))
        {
            AXIS2_ERROR_SET(env->error, AXIS2_ERROR_NO_MEMORY, AXIS2_FAILURE);
            return NULL;
        }
    }
    else
    {
        /* create default string */
        handler_string =
            axutil_string_create_const(env, (axis2_char_t **) & AXIS2_CTX_HANDLER_NAME);
        if (!handler_string)
        {
            return NULL;
        }
    }

    handler = axis2_handler_create(env);
    if (!handler)
    {
        return NULL;
    }

    /* handler desc of base handler */
    handler_desc = axis2_handler_desc_create(env, handler_string);
    axutil_string_free(handler_string, env);
    if (!handler_desc)
    {
        axis2_handler_free(handler, env);
        return NULL;
    }

    axis2_handler_init(handler, env, handler_desc);

    /* set the base struct's invoke op */
    axis2_handler_set_invoke(handler, env, axis2_ctx_handler_invoke);

    return handler;
}

axis2_status_t AXIS2_CALL
axis2_ctx_handler_invoke(
    axis2_handler_t * handler,
    const axutil_env_t * env,
    struct axis2_msg_ctx * msg_ctx)
{
    axis2_op_t *op = NULL;
    axis2_svc_ctx_t *svc_ctx = NULL;
    axis2_op_ctx_t *op_ctx = NULL;
    axis2_svc_grp_ctx_t *svc_grp_ctx = NULL;

    AXIS2_PARAM_CHECK(env->error, msg_ctx, AXIS2_FAILURE);
    AXIS2_LOG_TRACE(env->log, AXIS2_LOG_SI, "Entry:axis2_ctx_handler_invoke"); 

    op_ctx = axis2_msg_ctx_get_op_ctx(msg_ctx, env);
    svc_ctx = axis2_msg_ctx_get_svc_ctx(msg_ctx, env);

    if (op_ctx && svc_ctx)
    {
        svc_grp_ctx = axis2_svc_ctx_get_parent(svc_ctx, env);
        if (svc_grp_ctx)
        {
            axutil_string_t *svc_grp_ctx_id_str =
                axutil_string_create(env,
                                     axis2_svc_grp_ctx_get_id(svc_grp_ctx,
                                                              env));
            axis2_msg_ctx_set_svc_grp_ctx_id(msg_ctx, env, svc_grp_ctx_id_str);
            axutil_string_free(svc_grp_ctx_id_str, env);
        }
        return AXIS2_SUCCESS;
    }

    op = axis2_msg_ctx_get_op(msg_ctx, env);
    if (op)
    {
        op_ctx = axis2_op_find_existing_op_ctx(op, env, msg_ctx);
    }

    if (op_ctx)
    {
        axis2_op_register_op_ctx(op, env, msg_ctx, op_ctx);
        svc_ctx = axis2_op_ctx_get_parent(op_ctx, env);
        if (svc_ctx)
        {
            axutil_string_t *svc_grp_ctx_id_str = NULL;
            const axis2_char_t *grp_ctx_id = NULL;

            svc_grp_ctx = axis2_svc_ctx_get_parent(svc_ctx, env);
            axis2_msg_ctx_set_svc_ctx(msg_ctx, env, svc_ctx);
            axis2_msg_ctx_set_svc_grp_ctx(msg_ctx, env, svc_grp_ctx);
            grp_ctx_id = axis2_svc_grp_ctx_get_id(svc_grp_ctx, env);
            svc_grp_ctx_id_str =
                axutil_string_create(env, grp_ctx_id);
            axis2_msg_ctx_set_svc_grp_ctx_id(msg_ctx, env, svc_grp_ctx_id_str);
            axutil_string_free(svc_grp_ctx_id_str, env);
        }

        return AXIS2_SUCCESS;
    }
    else if (op)                /*  2. if no op_ctx, create new op_ctx */
    {
        axis2_conf_ctx_t *conf_ctx = NULL;
        axis2_bool_t use_pools = AXIS2_FALSE;
        axutil_param_t *param = axis2_msg_ctx_get_parameter(msg_ctx, env, AXIS2_PERSIST_OP_CTX);

        use_pools = (param && 0 == axutil_strcmp(AXIS2_VALUE_TRUE, axutil_param_get_value(param, 
                        env)));

        if (use_pools)
        {
            axutil_allocator_switch_to_global_pool(env->allocator);
        }
        op_ctx = axis2_op_ctx_create(env, op, NULL);
        if (!op_ctx)
        {
            axis2_char_t *op_name = axutil_qname_get_localpart(axis2_op_get_qname(op, env), env);
            AXIS2_LOG_ERROR(env->log, AXIS2_LOG_SI, 
                    "Could not create Operation context for operatoin %s", op_name);

            return AXIS2_FAILURE;
        }

        axis2_msg_ctx_set_op_ctx(msg_ctx, env, op_ctx);

        axis2_op_register_op_ctx(op, env, msg_ctx, op_ctx);

        conf_ctx = axis2_msg_ctx_get_conf_ctx(msg_ctx, env);
        if (conf_ctx)
        {
            if (!use_pools)
            {
                axutil_allocator_switch_to_global_pool(env->allocator);
            }

            svc_grp_ctx = axis2_conf_ctx_fill_ctxs(conf_ctx, env, msg_ctx);

            if (!use_pools)
            {
                axutil_allocator_switch_to_local_pool(env->allocator);
            }
        }

        if (use_pools)
        {
            axutil_allocator_switch_to_local_pool(env->allocator);
        }
    }

    if (!svc_grp_ctx && (axis2_msg_ctx_get_server_side(msg_ctx, env)))
    {
        AXIS2_LOG_ERROR(env->log, AXIS2_LOG_SI, "Service group context not found"); 
        return AXIS2_FAILURE;
    }

    AXIS2_LOG_TRACE(env->log, AXIS2_LOG_SI, "Exit:axis2_ctx_handler_invoke"); 

    return AXIS2_SUCCESS;
}



<|start_filename|>axiom/src/xpath/xpath.c<|end_filename|>

/*
 * 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.
 */

#include <axiom_xpath.h>
#include "xpath_internals.h"
#include "xpath_internals_parser.h"
#include "xpath_internals_engine.h"
#include "xpath_functions.h"
#include "xpath_streaming.h"

/* Create XPath context */
AXIS2_EXTERN axiom_xpath_context_t * AXIS2_CALL axiom_xpath_context_create(
    const axutil_env_t *env,
    axiom_node_t * root_node)
{
    axiom_xpath_context_t* context;

    /*HACK: xpath impl requires a dummy root node in order to process properly.*/
    axiom_node_t * dummy_root;
    dummy_root = axiom_node_create(env);
    axiom_node_add_child(dummy_root, env, root_node);


    context = AXIS2_MALLOC(env->allocator,
            sizeof(axiom_xpath_context_t));

    context->env = env;
    context->root_node = dummy_root;
    context->node = dummy_root;
    context->expr = NULL;
    context->attribute = NULL;
    context->namespaces = NULL;
    context->functions = NULL;

    axiom_xpath_register_default_functions_set(context);

    return context;
}

/* Compile XPath expression */
AXIS2_EXTERN axiom_xpath_expression_t * AXIS2_CALL axiom_xpath_compile_expression(
    const axutil_env_t *env,
    const axis2_char_t* xpath_expr)
{
    axiom_xpath_expression_t* expr;

    expr = AXIS2_MALLOC(env->allocator,
            sizeof(axiom_xpath_expression_t));

    expr->expr_str = axutil_strdup(env, xpath_expr);

    if (axiom_xpath_compile(env, expr) == AXIOM_XPATH_PARSE_ERROR)
    {
        AXIS2_FREE(env->allocator, expr->expr_str);
        AXIS2_FREE(env->allocator, expr);

        return NULL;
    }
    else
        return expr;
}

/* Evaluate compiled XPath expression */
AXIS2_EXTERN axiom_xpath_result_t * AXIS2_CALL axiom_xpath_evaluate(
    axiom_xpath_context_t *context,
    axiom_xpath_expression_t *xpath_expr)
{
    axiom_xpath_expression_copy(context, xpath_expr);

    context->streaming = AXIS2_FALSE;
    
    return axiom_xpath_run(context);
}

AXIS2_EXTERN axiom_xpath_result_t * AXIS2_CALL axiom_xpath_evaluate_streaming(
    axiom_xpath_context_t *context,
    axiom_xpath_expression_t *xpath_expr)
{
    axiom_xpath_result_t *res;

    axiom_xpath_expression_copy(context, xpath_expr);

    if (axiom_xpath_streaming_check(context->env, xpath_expr))
    {
        context->streaming = AXIS2_TRUE;
        return axiom_xpath_run(context);
    }
    else
    {
        res = AXIS2_MALLOC(
                    context->env->allocator, sizeof(axiom_xpath_result_t));
        res->nodes = NULL;
        res->flag = AXIOM_XPATH_ERROR_STREAMING_NOT_SUPPORTED;

        return res;
    }
}

AXIS2_EXTERN void AXIS2_CALL axiom_xpath_register_default_functions_set(
    axiom_xpath_context_t *context)
{
    axiom_xpath_register_function(
        context, "count", axiom_xpath_function_count);
}


AXIS2_EXTERN void AXIS2_CALL axiom_xpath_register_function(
    axiom_xpath_context_t *context,
    axis2_char_t *name,
    axiom_xpath_function_t func)
{
    if (name && func)
    {
        if (!context->functions)
        {
            context->functions = axutil_hash_make(context->env);
        }

        axutil_hash_set(context->functions, name, AXIS2_HASH_KEY_STRING, func);
    }
}

AXIS2_EXTERN axiom_xpath_function_t AXIS2_CALL axiom_xpath_get_function(
    axiom_xpath_context_t *context,
    axis2_char_t *name)
{
    axiom_xpath_function_t func = NULL;

    if (context->functions)
    {
        func = axutil_hash_get(context->functions, name, AXIS2_HASH_KEY_STRING);
    }

    return func;
}

AXIS2_EXTERN void AXIS2_CALL axiom_xpath_register_namespace(
    axiom_xpath_context_t *context,
    axiom_namespace_t *ns)
{
    axis2_char_t *prefix = NULL;

    if (!context->namespaces)
    {
        context->namespaces = axutil_hash_make(context->env);
    }

    prefix = axiom_namespace_get_prefix(ns, context->env);

    if (prefix)
    {
        axutil_hash_set(
            context->namespaces, prefix, AXIS2_HASH_KEY_STRING, ns);
    }
}

AXIS2_EXTERN axiom_namespace_t * AXIS2_CALL axiom_xpath_get_namespace(
    axiom_xpath_context_t *context,
    axis2_char_t *prefix)
{
    axiom_namespace_t *ns = NULL;

    if (context->namespaces)
    {
        ns = axutil_hash_get(context->namespaces, prefix, AXIS2_HASH_KEY_STRING);
    }

    return ns;
}

AXIS2_EXTERN void AXIS2_CALL axiom_xpath_clear_namespaces(axiom_xpath_context_t *context)
{
    axutil_hash_index_t *hi;
    void *val;

    if (context->namespaces)
    {
        for (hi = axutil_hash_first(context->namespaces, context->env);
                hi;
                hi = axutil_hash_next(context->env, hi))
        {
            axutil_hash_this(hi, NULL, NULL, &val);
            axiom_namespace_free((axiom_namespace_t *)val, context->env);
        }

        axutil_hash_free(context->namespaces, context->env);
    }

    context->namespaces = NULL;
}

/* Cast to boolean */
AXIS2_EXTERN axis2_bool_t AXIS2_CALL axiom_xpath_cast_node_to_boolean(
    const axutil_env_t *env,
    axiom_xpath_result_node_t * node)
{
    if (node->type == AXIOM_XPATH_TYPE_BOOLEAN)
    {
        return *(axis2_bool_t *)node->value;
    }
    else if (node->type == AXIOM_XPATH_TYPE_NUMBER)
    {
        /* Cannot evaluate as *(double *)(node->value) == 1e-12
           since there might be an precision error */
        if (*(double *)(node->value) > 1e-12
                || *(double *)(node->value) < -1e-12)
        {
            return AXIS2_TRUE;
        }
        else
        {
            return AXIS2_FALSE;
        }
    }
    else if (node->value)
    {
        return AXIS2_TRUE;
    }
    else
    {
        return AXIS2_FALSE;
    }
}

/* Cast to double */
AXIS2_EXTERN double AXIS2_CALL axiom_xpath_cast_node_to_number(
    const axutil_env_t *env,
    axiom_xpath_result_node_t * node)
{
    if (node->type == AXIOM_XPATH_TYPE_BOOLEAN)
    {
        if (*(axis2_bool_t *)(node->value) == AXIS2_TRUE)
        {
            return 1.0;
        }
        else
        {
            return 0.0;
        }
    }
    else if (node->type == AXIOM_XPATH_TYPE_NUMBER)
    {
        return *(double *)node->value;
    }
    else if (node->value)
    {
        return 1.0;
    }
    else
    {
        return 0.0;
    }
}

/* Cast to text */
AXIS2_EXTERN axis2_char_t * AXIS2_CALL axiom_xpath_cast_node_to_string(
    const axutil_env_t *env,
    axiom_xpath_result_node_t * node)
{
    axiom_element_t *ele;
    axis2_char_t *res;

    if (!node->value)
    {
        return NULL;
    }

    if (node->type == AXIOM_XPATH_TYPE_BOOLEAN)
    {
        if (*(axis2_bool_t *)(node->value) == AXIS2_TRUE)
        {
            return axutil_strdup(env, "true");
        }
        else
        {
            return axutil_strdup(env, "false");
        }
    }
    else if (node->type == AXIOM_XPATH_TYPE_NUMBER)
    {
        /* Allocate 50 bytes */
        res = AXIS2_MALLOC(env->allocator, sizeof(axis2_char_t) * 50);

        sprintf(res, "%lf", *(double *)(node->value));

        return res;
    }
    else if (node->type == AXIOM_XPATH_TYPE_TEXT)
    {
        return (axis2_char_t *)node->value;
    }
    else if (node->type == AXIOM_XPATH_TYPE_NODE)
    {
        ele = (axiom_element_t *)axiom_node_get_data_element(
                    (axiom_node_t *)(node->value), env);

        if (ele)
        {
            return axiom_element_get_text(
                        ele, env, (axiom_node_t *)(node->value));
        }
        else
        {
            return NULL;
        }
    }
    else if (node->type == AXIOM_XPATH_TYPE_ATTRIBUTE)
    {
        return axiom_attribute_get_value(
                    (axiom_attribute_t *)(node->value), env);
    }
    else if (node->type == AXIOM_XPATH_TYPE_NAMESPACE)
    {
        return axiom_namespace_get_prefix(
                    (axiom_namespace_t *)(node->value), env);
    }

    return NULL;
}

/* Cast to axiom node */
AXIS2_EXTERN axiom_node_t * AXIS2_CALL axiom_xpath_cast_node2axiom_node(
    const axutil_env_t *env,
    axiom_xpath_result_node_t * node)
{
    if (node->type == AXIOM_XPATH_TYPE_NODE && node->value)
    {
        return (axiom_node_t *)node->value;
    }
    else
    {
        return NULL;
    }
}

/* Free context */
AXIS2_EXTERN void AXIS2_CALL axiom_xpath_free_context(
    const axutil_env_t *env,
    axiom_xpath_context_t *context)
{
    if (context)
    {
        /* Free the expression if not freed */
        if (context->expr)
        {
            /* axiom_xpath_free_expression(env, context->expr); */

            context->expr = NULL;
        }

        AXIS2_FREE(env->allocator, context);
    }
}

/* Free expression */
AXIS2_EXTERN void AXIS2_CALL axiom_xpath_free_expression(
    const axutil_env_t *env,
    axiom_xpath_expression_t * xpath_expr)
{
    if (xpath_expr)
    {
        if (xpath_expr->expr_str)
        {
            AXIS2_FREE(env->allocator, xpath_expr->expr_str);

            xpath_expr->expr_str = NULL;
        }

        AXIS2_FREE(env->allocator, xpath_expr);
    }
}

/* Free result set */
AXIS2_EXTERN void AXIS2_CALL axiom_xpath_free_result(
    const axutil_env_t *env,
    axiom_xpath_result_t* result)
{
    if (result)
    {
        if (result->nodes)
        {
            axutil_array_list_free(result->nodes, env);
        }

        AXIS2_FREE(env->allocator, result);
    }
}

/* Check if the expression can be evaluated on streaming XML */
AXIS2_EXTERN axis2_bool_t AXIS2_CALL axiom_xpath_streaming_check(
    const axutil_env_t *env,
    axiom_xpath_expression_t* expr)
{
    axiom_xpath_streaming_t r = AXIOM_XPATH_CHECK(expr->start);

    if (r == AXIOM_XPATH_STREAMING_NOT_SUPPORTED)
    {
        return AXIS2_FALSE;
    }
    else
    {
        return AXIS2_TRUE;
    }
}



<|start_filename|>xdocs/api/html/group__axis2__conf__ctx.html<|end_filename|>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html><head><meta http-equiv="Content-Type" content="text/html;charset=UTF-8">
<title>Axis2/C: configuration context</title>
<link href="doxygen.css" rel="stylesheet" type="text/css">
<link href="tabs.css" rel="stylesheet" type="text/css">
</head><body>
<!-- Generated by Doxygen 1.5.3 -->
<div class="tabs">
  <ul>
    <li><a href="index.html"><span>Main&nbsp;Page</span></a></li>
    <li><a href="modules.html"><span>Modules</span></a></li>
    <li><a href="annotated.html"><span>Classes</span></a></li>
    <li><a href="files.html"><span>Files</span></a></li>
    <li><a href="dirs.html"><span>Directories</span></a></li>
    <li><a href="pages.html"><span>Related&nbsp;Pages</span></a></li>
    <li><a href="examples.html"><span>Examples</span></a></li>
    <li>
      <form action="search.php" method="get">
        <table cellspacing="0" cellpadding="0" border="0">
          <tr>
            <td><label>&nbsp;<u>S</u>earch&nbsp;for&nbsp;</label></td>
            <td><input type="text" name="query" value="" size="20" accesskey="s"/></td>
          </tr>
        </table>
      </form>
    </li>
  </ul>
</div>
<h1>configuration context<br>
<small>
[<a class="el" href="group__axis2__context.html">Context Hierarchy</a>]</small>
</h1><table border="0" cellpadding="0" cellspacing="0">
<tr><td></td></tr>
<tr><td colspan="2"><br><h2>Files</h2></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top">file &nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="axis2__conf__ctx_8h.html">axis2_conf_ctx.h</a></td></tr>

<tr><td colspan="2"><br><h2>Typedefs</h2></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top">typedef struct <br>
axis2_conf_ctx&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__axis2__conf__ctx.html#gab2f89df328e63d4f9fa3a4d035d18f0">axis2_conf_ctx_t</a></td></tr>

<tr><td colspan="2"><br><h2>Functions</h2></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top">AXIS2_EXTERN <br>
<a class="el" href="group__axis2__conf__ctx.html#gab2f89df328e63d4f9fa3a4d035d18f0">axis2_conf_ctx_t</a> *&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__axis2__conf__ctx.html#g9d44e6d988ccfa96510146c18118f272">axis2_conf_ctx_create</a> (const <a class="el" href="structaxutil__env.html">axutil_env_t</a> *env, struct axis2_conf *conf)</td></tr>

<tr><td class="memItemLeft" nowrap align="right" valign="top">AXIS2_EXTERN <br>
axis2_status_t&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__axis2__conf__ctx.html#g2219982ff63cd78a432352482079907a">axis2_conf_ctx_set_conf</a> (<a class="el" href="group__axis2__conf__ctx.html#gab2f89df328e63d4f9fa3a4d035d18f0">axis2_conf_ctx_t</a> *conf_ctx, const <a class="el" href="structaxutil__env.html">axutil_env_t</a> *env, struct axis2_conf *conf)</td></tr>

<tr><td class="memItemLeft" nowrap align="right" valign="top">AXIS2_EXTERN <br>
<a class="el" href="group__axis2__ctx.html#ga705ff779281577f08fef5330c23402c">axis2_ctx_t</a> *&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__axis2__conf__ctx.html#ge66a52699ed3a03ae50286e9ea859abb">axis2_conf_ctx_get_base</a> (const <a class="el" href="group__axis2__conf__ctx.html#gab2f89df328e63d4f9fa3a4d035d18f0">axis2_conf_ctx_t</a> *conf_ctx, const <a class="el" href="structaxutil__env.html">axutil_env_t</a> *env)</td></tr>

<tr><td class="memItemLeft" nowrap align="right" valign="top">AXIS2_EXTERN <br>
<a class="el" href="group__axis2__config.html#gd32db334e748bbdcaebd55156e493d3b">axis2_conf_t</a> *&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__axis2__conf__ctx.html#g118ac5ba83bb6ba1d8c054513d960d08">axis2_conf_ctx_get_conf</a> (const <a class="el" href="group__axis2__conf__ctx.html#gab2f89df328e63d4f9fa3a4d035d18f0">axis2_conf_ctx_t</a> *conf_ctx, const <a class="el" href="structaxutil__env.html">axutil_env_t</a> *env)</td></tr>

<tr><td class="memItemLeft" nowrap align="right" valign="top">AXIS2_EXTERN <br>
<a class="el" href="group__axutil__hash.html#gb2d7d14db2de92a101573f44421ac12a">axutil_hash_t</a> *&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__axis2__conf__ctx.html#gcde62abb6fcb296e62a8dc5fbe04fa38">axis2_conf_ctx_get_op_ctx_map</a> (const <a class="el" href="group__axis2__conf__ctx.html#gab2f89df328e63d4f9fa3a4d035d18f0">axis2_conf_ctx_t</a> *conf_ctx, const <a class="el" href="structaxutil__env.html">axutil_env_t</a> *env)</td></tr>

<tr><td class="memItemLeft" nowrap align="right" valign="top">AXIS2_EXTERN <br>
<a class="el" href="group__axutil__hash.html#gb2d7d14db2de92a101573f44421ac12a">axutil_hash_t</a> *&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__axis2__conf__ctx.html#g5345c142c9d7868bcb8adbbbc6091c3f">axis2_conf_ctx_get_svc_ctx_map</a> (const <a class="el" href="group__axis2__conf__ctx.html#gab2f89df328e63d4f9fa3a4d035d18f0">axis2_conf_ctx_t</a> *conf_ctx, const <a class="el" href="structaxutil__env.html">axutil_env_t</a> *env)</td></tr>

<tr><td class="memItemLeft" nowrap align="right" valign="top">AXIS2_EXTERN <br>
<a class="el" href="group__axutil__hash.html#gb2d7d14db2de92a101573f44421ac12a">axutil_hash_t</a> *&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__axis2__conf__ctx.html#ga8be6a3dce54129fddc3ca40fe95e03a">axis2_conf_ctx_get_svc_grp_ctx_map</a> (const <a class="el" href="group__axis2__conf__ctx.html#gab2f89df328e63d4f9fa3a4d035d18f0">axis2_conf_ctx_t</a> *conf_ctx, const <a class="el" href="structaxutil__env.html">axutil_env_t</a> *env)</td></tr>

<tr><td class="memItemLeft" nowrap align="right" valign="top">AXIS2_EXTERN <br>
axis2_status_t&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__axis2__conf__ctx.html#gbb9159aa11b1ed08deb4f02a2b320a64">axis2_conf_ctx_register_op_ctx</a> (<a class="el" href="group__axis2__conf__ctx.html#gab2f89df328e63d4f9fa3a4d035d18f0">axis2_conf_ctx_t</a> *conf_ctx, const <a class="el" href="structaxutil__env.html">axutil_env_t</a> *env, const axis2_char_t *message_id, <a class="el" href="group__axis2__op__ctx.html#ga1a3bbd22f2313e8da5bd031ea8190c9">axis2_op_ctx_t</a> *op_ctx)</td></tr>

<tr><td class="memItemLeft" nowrap align="right" valign="top">AXIS2_EXTERN <br>
<a class="el" href="group__axis2__op__ctx.html#ga1a3bbd22f2313e8da5bd031ea8190c9">axis2_op_ctx_t</a> *&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__axis2__conf__ctx.html#g42e7023af97b04e9ac5d192c20c6980e">axis2_conf_ctx_get_op_ctx</a> (const <a class="el" href="group__axis2__conf__ctx.html#gab2f89df328e63d4f9fa3a4d035d18f0">axis2_conf_ctx_t</a> *conf_ctx, const <a class="el" href="structaxutil__env.html">axutil_env_t</a> *env, const axis2_char_t *message_id)</td></tr>

<tr><td class="memItemLeft" nowrap align="right" valign="top">AXIS2_EXTERN <br>
axis2_status_t&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__axis2__conf__ctx.html#g2e9f3ef21b1f3e781232f2835058154a">axis2_conf_ctx_register_svc_ctx</a> (<a class="el" href="group__axis2__conf__ctx.html#gab2f89df328e63d4f9fa3a4d035d18f0">axis2_conf_ctx_t</a> *conf_ctx, const <a class="el" href="structaxutil__env.html">axutil_env_t</a> *env, const axis2_char_t *svc_id, <a class="el" href="group__axis2__svc__ctx.html#g2a3845db3eb9e9a47b992f6c8882e482">axis2_svc_ctx_t</a> *svc_ctx)</td></tr>

<tr><td class="memItemLeft" nowrap align="right" valign="top">AXIS2_EXTERN struct <br>
axis2_svc_ctx *&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__axis2__conf__ctx.html#ge90cb5dd919956c1e2eb52fa69c6734b">axis2_conf_ctx_get_svc_ctx</a> (const <a class="el" href="group__axis2__conf__ctx.html#gab2f89df328e63d4f9fa3a4d035d18f0">axis2_conf_ctx_t</a> *conf_ctx, const <a class="el" href="structaxutil__env.html">axutil_env_t</a> *env, const axis2_char_t *svc_id)</td></tr>

<tr><td class="memItemLeft" nowrap align="right" valign="top">AXIS2_EXTERN <br>
axis2_status_t&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__axis2__conf__ctx.html#g068ae26464a6cf8b2cc8a530603b516a">axis2_conf_ctx_register_svc_grp_ctx</a> (<a class="el" href="group__axis2__conf__ctx.html#gab2f89df328e63d4f9fa3a4d035d18f0">axis2_conf_ctx_t</a> *conf_ctx, const <a class="el" href="structaxutil__env.html">axutil_env_t</a> *env, const axis2_char_t *svc_grp_id, <a class="el" href="group__axis2__svc__grp__ctx.html#g340e0c5f75d6579013ff5768b37e4a07">axis2_svc_grp_ctx_t</a> *svc_grp_ctx)</td></tr>

<tr><td class="memItemLeft" nowrap align="right" valign="top">AXIS2_EXTERN <br>
<a class="el" href="group__axis2__svc__grp__ctx.html#g340e0c5f75d6579013ff5768b37e4a07">axis2_svc_grp_ctx_t</a> *&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__axis2__conf__ctx.html#g74d5c818fd827335b3ef71e8f6c15efa">axis2_conf_ctx_get_svc_grp_ctx</a> (const <a class="el" href="group__axis2__conf__ctx.html#gab2f89df328e63d4f9fa3a4d035d18f0">axis2_conf_ctx_t</a> *conf_ctx, const <a class="el" href="structaxutil__env.html">axutil_env_t</a> *env, const axis2_char_t *svc_grp_id)</td></tr>

<tr><td class="memItemLeft" nowrap align="right" valign="top">AXIS2_EXTERN const <br>
axis2_char_t *&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__axis2__conf__ctx.html#g8be4f6863d1a226ef4a239afcb191e6c">axis2_conf_ctx_get_root_dir</a> (const <a class="el" href="group__axis2__conf__ctx.html#gab2f89df328e63d4f9fa3a4d035d18f0">axis2_conf_ctx_t</a> *conf_ctx, const <a class="el" href="structaxutil__env.html">axutil_env_t</a> *env)</td></tr>

<tr><td class="memItemLeft" nowrap align="right" valign="top">AXIS2_EXTERN <br>
axis2_status_t&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__axis2__conf__ctx.html#gc9b785de188769a7f695b6d21c5d8fce">axis2_conf_ctx_set_root_dir</a> (<a class="el" href="group__axis2__conf__ctx.html#gab2f89df328e63d4f9fa3a4d035d18f0">axis2_conf_ctx_t</a> *conf_ctx, const <a class="el" href="structaxutil__env.html">axutil_env_t</a> *env, const axis2_char_t *path)</td></tr>

<tr><td class="memItemLeft" nowrap align="right" valign="top">AXIS2_EXTERN <br>
axis2_status_t&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__axis2__conf__ctx.html#g95ac09f843d1594d5bf3bf4f6f424fb0">axis2_conf_ctx_init</a> (<a class="el" href="group__axis2__conf__ctx.html#gab2f89df328e63d4f9fa3a4d035d18f0">axis2_conf_ctx_t</a> *conf_ctx, const <a class="el" href="structaxutil__env.html">axutil_env_t</a> *env, <a class="el" href="group__axis2__config.html#gd32db334e748bbdcaebd55156e493d3b">axis2_conf_t</a> *conf)</td></tr>

<tr><td class="memItemLeft" nowrap align="right" valign="top">AXIS2_EXTERN void&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__axis2__conf__ctx.html#g0d6bee37eb671fb1f538b6d96484f46f">axis2_conf_ctx_free</a> (<a class="el" href="group__axis2__conf__ctx.html#gab2f89df328e63d4f9fa3a4d035d18f0">axis2_conf_ctx_t</a> *conf_ctx, const <a class="el" href="structaxutil__env.html">axutil_env_t</a> *env)</td></tr>

<tr><td class="memItemLeft" nowrap align="right" valign="top">AXIS2_EXTERN <br>
<a class="el" href="group__axis2__svc__grp__ctx.html#g340e0c5f75d6579013ff5768b37e4a07">axis2_svc_grp_ctx_t</a> *&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__axis2__conf__ctx.html#ge4ac0ac0a8960a7e8d5a1c898877fa56">axis2_conf_ctx_fill_ctxs</a> (<a class="el" href="group__axis2__conf__ctx.html#gab2f89df328e63d4f9fa3a4d035d18f0">axis2_conf_ctx_t</a> *conf_ctx, const <a class="el" href="structaxutil__env.html">axutil_env_t</a> *env, <a class="el" href="group__axis2__msg__ctx.html#g160acae289ac39cb49fa625ffd88e410">axis2_msg_ctx_t</a> *msg_ctx)</td></tr>

<tr><td class="memItemLeft" nowrap align="right" valign="top">AXIS2_EXTERN <br>
axis2_status_t&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__axis2__conf__ctx.html#gfbb679038aba7d0305f8607a5449f381">axis2_conf_ctx_set_property</a> (<a class="el" href="group__axis2__conf__ctx.html#gab2f89df328e63d4f9fa3a4d035d18f0">axis2_conf_ctx_t</a> *conf_ctx, const <a class="el" href="structaxutil__env.html">axutil_env_t</a> *env, const axis2_char_t *key, axutil_property_t *value)</td></tr>

<tr><td class="memItemLeft" nowrap align="right" valign="top">AXIS2_EXTERN <br>
axutil_property_t *&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__axis2__conf__ctx.html#ga8842aca9155be5f501e12818c1303e1">axis2_conf_ctx_get_property</a> (const <a class="el" href="group__axis2__conf__ctx.html#gab2f89df328e63d4f9fa3a4d035d18f0">axis2_conf_ctx_t</a> *conf_ctx, const <a class="el" href="structaxutil__env.html">axutil_env_t</a> *env, const axis2_char_t *key)</td></tr>

</table>
<hr><a name="_details"></a><h2>Detailed Description</h2>
configuration context is the holder for all the state information related to configuration. It holds all the service group context, service context and operation context that exists within an engine instance. An engine instance has only one configuration context associated with it (Singleton pattern). <hr><h2>Typedef Documentation</h2>
<a class="anchor" name="gab2f89df328e63d4f9fa3a4d035d18f0"></a><!-- doxytag: member="axis2_conf_ctx.h::axis2_conf_ctx_t" ref="gab2f89df328e63d4f9fa3a4d035d18f0" args="" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">typedef struct axis2_conf_ctx <a class="el" href="group__axis2__conf__ctx.html#gab2f89df328e63d4f9fa3a4d035d18f0">axis2_conf_ctx_t</a>          </td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
Type name for struct axis2_conf_ctx 
</div>
</div><p>
<hr><h2>Function Documentation</h2>
<a class="anchor" name="g9d44e6d988ccfa96510146c18118f272"></a><!-- doxytag: member="axis2_conf_ctx.h::axis2_conf_ctx_create" ref="g9d44e6d988ccfa96510146c18118f272" args="(const axutil_env_t *env, struct axis2_conf *conf)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">AXIS2_EXTERN <a class="el" href="group__axis2__conf__ctx.html#gab2f89df328e63d4f9fa3a4d035d18f0">axis2_conf_ctx_t</a>* axis2_conf_ctx_create           </td>
          <td>(</td>
          <td class="paramtype">const <a class="el" href="structaxutil__env.html">axutil_env_t</a> *&nbsp;</td>
          <td class="paramname"> <em>env</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">struct axis2_conf *&nbsp;</td>
          <td class="paramname"> <em>conf</em></td><td>&nbsp;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td><td width="100%"></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
Creates a configuration context struct instance. <dl compact><dt><b>Parameters:</b></dt><dd>
  <table border="0" cellspacing="2" cellpadding="0">
    <tr><td valign="top"></td><td valign="top"><em>env</em>&nbsp;</td><td>pointer to environment struct </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>conf</em>&nbsp;</td><td>pointer to configuration, configuration context assumes ownership of the configuration </td></tr>
  </table>
</dl>
<dl class="return" compact><dt><b>Returns:</b></dt><dd>pointer to newly created configuration context </dd></dl>

</div>
</div><p>
<a class="anchor" name="ge4ac0ac0a8960a7e8d5a1c898877fa56"></a><!-- doxytag: member="axis2_conf_ctx.h::axis2_conf_ctx_fill_ctxs" ref="ge4ac0ac0a8960a7e8d5a1c898877fa56" args="(axis2_conf_ctx_t *conf_ctx, const axutil_env_t *env, axis2_msg_ctx_t *msg_ctx)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">AXIS2_EXTERN <a class="el" href="group__axis2__svc__grp__ctx.html#g340e0c5f75d6579013ff5768b37e4a07">axis2_svc_grp_ctx_t</a>* axis2_conf_ctx_fill_ctxs           </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="group__axis2__conf__ctx.html#gab2f89df328e63d4f9fa3a4d035d18f0">axis2_conf_ctx_t</a> *&nbsp;</td>
          <td class="paramname"> <em>conf_ctx</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const <a class="el" href="structaxutil__env.html">axutil_env_t</a> *&nbsp;</td>
          <td class="paramname"> <em>env</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype"><a class="el" href="group__axis2__msg__ctx.html#g160acae289ac39cb49fa625ffd88e410">axis2_msg_ctx_t</a> *&nbsp;</td>
          <td class="paramname"> <em>msg_ctx</em></td><td>&nbsp;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td><td width="100%"></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
This method fills the context hierarchy (service group, service and operation contexts that is) for the service and operation found in the given message context. If the context hierarchy is not already built it will create the contexts and build the context hierarchy. <dl compact><dt><b>Parameters:</b></dt><dd>
  <table border="0" cellspacing="2" cellpadding="0">
    <tr><td valign="top"></td><td valign="top"><em>conf_ctx</em>&nbsp;</td><td>pointer to configuration context </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>env</em>&nbsp;</td><td>pointer to environment struct </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>msg_ctx</em>&nbsp;</td><td>pointer to message context with service and operation for which the context hierarchy is to be built set </td></tr>
  </table>
</dl>
<dl class="return" compact><dt><b>Returns:</b></dt><dd>pointer to the service group context, which is the root of the context hierarchy for given service and operation </dd></dl>

</div>
</div><p>
<a class="anchor" name="g0d6bee37eb671fb1f538b6d96484f46f"></a><!-- doxytag: member="axis2_conf_ctx.h::axis2_conf_ctx_free" ref="g0d6bee37eb671fb1f538b6d96484f46f" args="(axis2_conf_ctx_t *conf_ctx, const axutil_env_t *env)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">AXIS2_EXTERN void axis2_conf_ctx_free           </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="group__axis2__conf__ctx.html#gab2f89df328e63d4f9fa3a4d035d18f0">axis2_conf_ctx_t</a> *&nbsp;</td>
          <td class="paramname"> <em>conf_ctx</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const <a class="el" href="structaxutil__env.html">axutil_env_t</a> *&nbsp;</td>
          <td class="paramname"> <em>env</em></td><td>&nbsp;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td><td width="100%"></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
Frees configuration context struct. <dl compact><dt><b>Parameters:</b></dt><dd>
  <table border="0" cellspacing="2" cellpadding="0">
    <tr><td valign="top"></td><td valign="top"><em>conf_ctx</em>&nbsp;</td><td>pointer to configuration context </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>env</em>&nbsp;</td><td>pointer to environment struct </td></tr>
  </table>
</dl>
<dl class="return" compact><dt><b>Returns:</b></dt><dd>AXIS2_SUCCESS on success, else AXIS2_FAILURE </dd></dl>

</div>
</div><p>
<a class="anchor" name="ge66a52699ed3a03ae50286e9ea859abb"></a><!-- doxytag: member="axis2_conf_ctx.h::axis2_conf_ctx_get_base" ref="ge66a52699ed3a03ae50286e9ea859abb" args="(const axis2_conf_ctx_t *conf_ctx, const axutil_env_t *env)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">AXIS2_EXTERN <a class="el" href="group__axis2__ctx.html#ga705ff779281577f08fef5330c23402c">axis2_ctx_t</a>* axis2_conf_ctx_get_base           </td>
          <td>(</td>
          <td class="paramtype">const <a class="el" href="group__axis2__conf__ctx.html#gab2f89df328e63d4f9fa3a4d035d18f0">axis2_conf_ctx_t</a> *&nbsp;</td>
          <td class="paramname"> <em>conf_ctx</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const <a class="el" href="structaxutil__env.html">axutil_env_t</a> *&nbsp;</td>
          <td class="paramname"> <em>env</em></td><td>&nbsp;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td><td width="100%"></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
Gets the base struct, which is of type context <dl compact><dt><b>Parameters:</b></dt><dd>
  <table border="0" cellspacing="2" cellpadding="0">
    <tr><td valign="top"></td><td valign="top"><em>conf_ctx</em>&nbsp;</td><td>pointer to configuration context </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>env</em>&nbsp;</td><td>pointer to environment struct </td></tr>
  </table>
</dl>
<dl class="return" compact><dt><b>Returns:</b></dt><dd>pointer to context struct, returns a reference not a cloned copy </dd></dl>

</div>
</div><p>
<a class="anchor" name="g118ac5ba83bb6ba1d8c054513d960d08"></a><!-- doxytag: member="axis2_conf_ctx.h::axis2_conf_ctx_get_conf" ref="g118ac5ba83bb6ba1d8c054513d960d08" args="(const axis2_conf_ctx_t *conf_ctx, const axutil_env_t *env)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">AXIS2_EXTERN <a class="el" href="group__axis2__config.html#gd32db334e748bbdcaebd55156e493d3b">axis2_conf_t</a>* axis2_conf_ctx_get_conf           </td>
          <td>(</td>
          <td class="paramtype">const <a class="el" href="group__axis2__conf__ctx.html#gab2f89df328e63d4f9fa3a4d035d18f0">axis2_conf_ctx_t</a> *&nbsp;</td>
          <td class="paramname"> <em>conf_ctx</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const <a class="el" href="structaxutil__env.html">axutil_env_t</a> *&nbsp;</td>
          <td class="paramname"> <em>env</em></td><td>&nbsp;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td><td width="100%"></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
Gets the configuration of the engine. <dl compact><dt><b>Parameters:</b></dt><dd>
  <table border="0" cellspacing="2" cellpadding="0">
    <tr><td valign="top"></td><td valign="top"><em>conf_ctx</em>&nbsp;</td><td>pointer to configuration context </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>env</em>&nbsp;</td><td>pointer to environment struct </td></tr>
  </table>
</dl>
<dl class="return" compact><dt><b>Returns:</b></dt><dd>pointer to configuration struct, returns a reference not a cloned copy </dd></dl>

</div>
</div><p>
<a class="anchor" name="g42e7023af97b04e9ac5d192c20c6980e"></a><!-- doxytag: member="axis2_conf_ctx.h::axis2_conf_ctx_get_op_ctx" ref="g42e7023af97b04e9ac5d192c20c6980e" args="(const axis2_conf_ctx_t *conf_ctx, const axutil_env_t *env, const axis2_char_t *message_id)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">AXIS2_EXTERN <a class="el" href="group__axis2__op__ctx.html#ga1a3bbd22f2313e8da5bd031ea8190c9">axis2_op_ctx_t</a>* axis2_conf_ctx_get_op_ctx           </td>
          <td>(</td>
          <td class="paramtype">const <a class="el" href="group__axis2__conf__ctx.html#gab2f89df328e63d4f9fa3a4d035d18f0">axis2_conf_ctx_t</a> *&nbsp;</td>
          <td class="paramname"> <em>conf_ctx</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const <a class="el" href="structaxutil__env.html">axutil_env_t</a> *&nbsp;</td>
          <td class="paramname"> <em>env</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const axis2_char_t *&nbsp;</td>
          <td class="paramname"> <em>message_id</em></td><td>&nbsp;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td><td width="100%"></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
Gets operation context corresponding to the given message ID. <dl compact><dt><b>Parameters:</b></dt><dd>
  <table border="0" cellspacing="2" cellpadding="0">
    <tr><td valign="top"></td><td valign="top"><em>conf_ctx</em>&nbsp;</td><td>pointer to configuration context </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>env</em>&nbsp;</td><td>pointer to environment struct </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>message_id</em>&nbsp;</td><td>message ID related to the operation to be retrieved </td></tr>
  </table>
</dl>
<dl class="return" compact><dt><b>Returns:</b></dt><dd>pointer to operation context related to the given message ID </dd></dl>

</div>
</div><p>
<a class="anchor" name="gcde62abb6fcb296e62a8dc5fbe04fa38"></a><!-- doxytag: member="axis2_conf_ctx.h::axis2_conf_ctx_get_op_ctx_map" ref="gcde62abb6fcb296e62a8dc5fbe04fa38" args="(const axis2_conf_ctx_t *conf_ctx, const axutil_env_t *env)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">AXIS2_EXTERN <a class="el" href="group__axutil__hash.html#gb2d7d14db2de92a101573f44421ac12a">axutil_hash_t</a>* axis2_conf_ctx_get_op_ctx_map           </td>
          <td>(</td>
          <td class="paramtype">const <a class="el" href="group__axis2__conf__ctx.html#gab2f89df328e63d4f9fa3a4d035d18f0">axis2_conf_ctx_t</a> *&nbsp;</td>
          <td class="paramname"> <em>conf_ctx</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const <a class="el" href="structaxutil__env.html">axutil_env_t</a> *&nbsp;</td>
          <td class="paramname"> <em>env</em></td><td>&nbsp;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td><td width="100%"></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
Gets the hash map of operation context instances. <dl compact><dt><b>Parameters:</b></dt><dd>
  <table border="0" cellspacing="2" cellpadding="0">
    <tr><td valign="top"></td><td valign="top"><em>conf_ctx</em>&nbsp;</td><td>pointer to configuration context </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>env</em>&nbsp;</td><td>pointer to environment struct </td></tr>
  </table>
</dl>
<dl class="return" compact><dt><b>Returns:</b></dt><dd>pointer to hash map containing all operation contexts </dd></dl>

</div>
</div><p>
<a class="anchor" name="ga8842aca9155be5f501e12818c1303e1"></a><!-- doxytag: member="axis2_conf_ctx.h::axis2_conf_ctx_get_property" ref="ga8842aca9155be5f501e12818c1303e1" args="(const axis2_conf_ctx_t *conf_ctx, const axutil_env_t *env, const axis2_char_t *key)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">AXIS2_EXTERN axutil_property_t* axis2_conf_ctx_get_property           </td>
          <td>(</td>
          <td class="paramtype">const <a class="el" href="group__axis2__conf__ctx.html#gab2f89df328e63d4f9fa3a4d035d18f0">axis2_conf_ctx_t</a> *&nbsp;</td>
          <td class="paramname"> <em>conf_ctx</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const <a class="el" href="structaxutil__env.html">axutil_env_t</a> *&nbsp;</td>
          <td class="paramname"> <em>env</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const axis2_char_t *&nbsp;</td>
          <td class="paramname"> <em>key</em></td><td>&nbsp;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td><td width="100%"></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
Gets the property with the given key. <dl compact><dt><b>Parameters:</b></dt><dd>
  <table border="0" cellspacing="2" cellpadding="0">
    <tr><td valign="top"></td><td valign="top"><em>ctx</em>&nbsp;</td><td>pointer to context struct </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>env</em>&nbsp;</td><td>pointer to environment struct </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>key</em>&nbsp;</td><td>key string </td></tr>
  </table>
</dl>
<dl class="return" compact><dt><b>Returns:</b></dt><dd>pointer to property struct corresponding to the given key </dd></dl>

</div>
</div><p>
<a class="anchor" name="g8be4f6863d1a226ef4a239afcb191e6c"></a><!-- doxytag: member="axis2_conf_ctx.h::axis2_conf_ctx_get_root_dir" ref="g8be4f6863d1a226ef4a239afcb191e6c" args="(const axis2_conf_ctx_t *conf_ctx, const axutil_env_t *env)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">AXIS2_EXTERN const axis2_char_t* axis2_conf_ctx_get_root_dir           </td>
          <td>(</td>
          <td class="paramtype">const <a class="el" href="group__axis2__conf__ctx.html#gab2f89df328e63d4f9fa3a4d035d18f0">axis2_conf_ctx_t</a> *&nbsp;</td>
          <td class="paramname"> <em>conf_ctx</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const <a class="el" href="structaxutil__env.html">axutil_env_t</a> *&nbsp;</td>
          <td class="paramname"> <em>env</em></td><td>&nbsp;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td><td width="100%"></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
Gets the root working directory. It is in this directory that the axis2.xml configuration file is located. The services and modules sub folders too are located in this directory. <dl compact><dt><b>Parameters:</b></dt><dd>
  <table border="0" cellspacing="2" cellpadding="0">
    <tr><td valign="top"></td><td valign="top"><em>conf_ctx</em>&nbsp;</td><td>pointer to configuration context </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>env</em>&nbsp;</td><td>pointer to environment struct </td></tr>
  </table>
</dl>
<dl class="return" compact><dt><b>Returns:</b></dt><dd>pointer to string containing the root folder name </dd></dl>

</div>
</div><p>
<a class="anchor" name="ge90cb5dd919956c1e2eb52fa69c6734b"></a><!-- doxytag: member="axis2_conf_ctx.h::axis2_conf_ctx_get_svc_ctx" ref="ge90cb5dd919956c1e2eb52fa69c6734b" args="(const axis2_conf_ctx_t *conf_ctx, const axutil_env_t *env, const axis2_char_t *svc_id)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">AXIS2_EXTERN struct axis2_svc_ctx* axis2_conf_ctx_get_svc_ctx           </td>
          <td>(</td>
          <td class="paramtype">const <a class="el" href="group__axis2__conf__ctx.html#gab2f89df328e63d4f9fa3a4d035d18f0">axis2_conf_ctx_t</a> *&nbsp;</td>
          <td class="paramname"> <em>conf_ctx</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const <a class="el" href="structaxutil__env.html">axutil_env_t</a> *&nbsp;</td>
          <td class="paramname"> <em>env</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const axis2_char_t *&nbsp;</td>
          <td class="paramname"> <em>svc_id</em></td><td>&nbsp;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td><td width="100%"><code> [read]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
Gets service context with the given service ID <dl compact><dt><b>Parameters:</b></dt><dd>
  <table border="0" cellspacing="2" cellpadding="0">
    <tr><td valign="top"></td><td valign="top"><em>conf_ctx</em>&nbsp;</td><td>pointer to configuration context </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>env</em>&nbsp;</td><td>pointer to environment struct </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>svc_id</em>&nbsp;</td><td>service ID </td></tr>
  </table>
</dl>
<dl class="return" compact><dt><b>Returns:</b></dt><dd>pointer to service context with the given service ID </dd></dl>

</div>
</div><p>
<a class="anchor" name="g5345c142c9d7868bcb8adbbbc6091c3f"></a><!-- doxytag: member="axis2_conf_ctx.h::axis2_conf_ctx_get_svc_ctx_map" ref="g5345c142c9d7868bcb8adbbbc6091c3f" args="(const axis2_conf_ctx_t *conf_ctx, const axutil_env_t *env)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">AXIS2_EXTERN <a class="el" href="group__axutil__hash.html#gb2d7d14db2de92a101573f44421ac12a">axutil_hash_t</a>* axis2_conf_ctx_get_svc_ctx_map           </td>
          <td>(</td>
          <td class="paramtype">const <a class="el" href="group__axis2__conf__ctx.html#gab2f89df328e63d4f9fa3a4d035d18f0">axis2_conf_ctx_t</a> *&nbsp;</td>
          <td class="paramname"> <em>conf_ctx</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const <a class="el" href="structaxutil__env.html">axutil_env_t</a> *&nbsp;</td>
          <td class="paramname"> <em>env</em></td><td>&nbsp;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td><td width="100%"></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
Gets the hash map of service context instances. <dl compact><dt><b>Parameters:</b></dt><dd>
  <table border="0" cellspacing="2" cellpadding="0">
    <tr><td valign="top"></td><td valign="top"><em>conf_ctx</em>&nbsp;</td><td>pointer to configuration context </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>env</em>&nbsp;</td><td>pointer to environment struct </td></tr>
  </table>
</dl>
<dl class="return" compact><dt><b>Returns:</b></dt><dd>pointer to hash map containing all service contexts </dd></dl>

</div>
</div><p>
<a class="anchor" name="g74d5c818fd827335b3ef71e8f6c15efa"></a><!-- doxytag: member="axis2_conf_ctx.h::axis2_conf_ctx_get_svc_grp_ctx" ref="g74d5c818fd827335b3ef71e8f6c15efa" args="(const axis2_conf_ctx_t *conf_ctx, const axutil_env_t *env, const axis2_char_t *svc_grp_id)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">AXIS2_EXTERN <a class="el" href="group__axis2__svc__grp__ctx.html#g340e0c5f75d6579013ff5768b37e4a07">axis2_svc_grp_ctx_t</a>* axis2_conf_ctx_get_svc_grp_ctx           </td>
          <td>(</td>
          <td class="paramtype">const <a class="el" href="group__axis2__conf__ctx.html#gab2f89df328e63d4f9fa3a4d035d18f0">axis2_conf_ctx_t</a> *&nbsp;</td>
          <td class="paramname"> <em>conf_ctx</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const <a class="el" href="structaxutil__env.html">axutil_env_t</a> *&nbsp;</td>
          <td class="paramname"> <em>env</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const axis2_char_t *&nbsp;</td>
          <td class="paramname"> <em>svc_grp_id</em></td><td>&nbsp;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td><td width="100%"></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
Gets service group with the given service group ID. <dl compact><dt><b>Parameters:</b></dt><dd>
  <table border="0" cellspacing="2" cellpadding="0">
    <tr><td valign="top"></td><td valign="top"><em>conf_ctx</em>&nbsp;</td><td>pointer to configuration context </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>env</em>&nbsp;</td><td>pointer to environment struct </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>svc_grp_id</em>&nbsp;</td><td>service group id </td></tr>
  </table>
</dl>
<dl class="return" compact><dt><b>Returns:</b></dt><dd>pointer to service group context with the given ID </dd></dl>

</div>
</div><p>
<a class="anchor" name="ga8be6a3dce54129fddc3ca40fe95e03a"></a><!-- doxytag: member="axis2_conf_ctx.h::axis2_conf_ctx_get_svc_grp_ctx_map" ref="ga8be6a3dce54129fddc3ca40fe95e03a" args="(const axis2_conf_ctx_t *conf_ctx, const axutil_env_t *env)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">AXIS2_EXTERN <a class="el" href="group__axutil__hash.html#gb2d7d14db2de92a101573f44421ac12a">axutil_hash_t</a>* axis2_conf_ctx_get_svc_grp_ctx_map           </td>
          <td>(</td>
          <td class="paramtype">const <a class="el" href="group__axis2__conf__ctx.html#gab2f89df328e63d4f9fa3a4d035d18f0">axis2_conf_ctx_t</a> *&nbsp;</td>
          <td class="paramname"> <em>conf_ctx</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const <a class="el" href="structaxutil__env.html">axutil_env_t</a> *&nbsp;</td>
          <td class="paramname"> <em>env</em></td><td>&nbsp;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td><td width="100%"></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
Gets the hash map of service group context instances. <dl compact><dt><b>Parameters:</b></dt><dd>
  <table border="0" cellspacing="2" cellpadding="0">
    <tr><td valign="top"></td><td valign="top"><em>conf_ctx</em>&nbsp;</td><td>pointer to configuration context </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>env</em>&nbsp;</td><td>pointer to environment struct </td></tr>
  </table>
</dl>
<dl class="return" compact><dt><b>Returns:</b></dt><dd>pointer to hash map containing all service group contexts </dd></dl>

</div>
</div><p>
<a class="anchor" name="g95ac09f843d1594d5bf3bf4f6f424fb0"></a><!-- doxytag: member="axis2_conf_ctx.h::axis2_conf_ctx_init" ref="g95ac09f843d1594d5bf3bf4f6f424fb0" args="(axis2_conf_ctx_t *conf_ctx, const axutil_env_t *env, axis2_conf_t *conf)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">AXIS2_EXTERN axis2_status_t axis2_conf_ctx_init           </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="group__axis2__conf__ctx.html#gab2f89df328e63d4f9fa3a4d035d18f0">axis2_conf_ctx_t</a> *&nbsp;</td>
          <td class="paramname"> <em>conf_ctx</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const <a class="el" href="structaxutil__env.html">axutil_env_t</a> *&nbsp;</td>
          <td class="paramname"> <em>env</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype"><a class="el" href="group__axis2__config.html#gd32db334e748bbdcaebd55156e493d3b">axis2_conf_t</a> *&nbsp;</td>
          <td class="paramname"> <em>conf</em></td><td>&nbsp;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td><td width="100%"></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
Initializes the configuration context. Within this function, it would initialize all the service group context, service context and operation context instances stored within configuration context. <dl compact><dt><b>Parameters:</b></dt><dd>
  <table border="0" cellspacing="2" cellpadding="0">
    <tr><td valign="top"></td><td valign="top"><em>conf_ctx</em>&nbsp;</td><td>pointer to configuration context </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>env</em>&nbsp;</td><td>pointer to environment struct </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>conf</em>&nbsp;</td><td>pointer to configuration struct </td></tr>
  </table>
</dl>
<dl class="return" compact><dt><b>Returns:</b></dt><dd>AXIS2_SUCCESS on success, else AXIS2_FAILURE </dd></dl>

</div>
</div><p>
<a class="anchor" name="gbb9159aa11b1ed08deb4f02a2b320a64"></a><!-- doxytag: member="axis2_conf_ctx.h::axis2_conf_ctx_register_op_ctx" ref="gbb9159aa11b1ed08deb4f02a2b320a64" args="(axis2_conf_ctx_t *conf_ctx, const axutil_env_t *env, const axis2_char_t *message_id, axis2_op_ctx_t *op_ctx)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">AXIS2_EXTERN axis2_status_t axis2_conf_ctx_register_op_ctx           </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="group__axis2__conf__ctx.html#gab2f89df328e63d4f9fa3a4d035d18f0">axis2_conf_ctx_t</a> *&nbsp;</td>
          <td class="paramname"> <em>conf_ctx</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const <a class="el" href="structaxutil__env.html">axutil_env_t</a> *&nbsp;</td>
          <td class="paramname"> <em>env</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const axis2_char_t *&nbsp;</td>
          <td class="paramname"> <em>message_id</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype"><a class="el" href="group__axis2__op__ctx.html#ga1a3bbd22f2313e8da5bd031ea8190c9">axis2_op_ctx_t</a> *&nbsp;</td>
          <td class="paramname"> <em>op_ctx</em></td><td>&nbsp;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td><td width="100%"></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
Registers an operation context with the given message ID. <dl compact><dt><b>Parameters:</b></dt><dd>
  <table border="0" cellspacing="2" cellpadding="0">
    <tr><td valign="top"></td><td valign="top"><em>conf_ctx</em>&nbsp;</td><td>pointer to configuration context </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>env</em>&nbsp;</td><td>pointer to environment struct </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>message_id</em>&nbsp;</td><td>message id related to the operation context </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>op_ctx</em>&nbsp;</td><td>pointer to operation context, conf context assumes ownership of the operation context </td></tr>
  </table>
</dl>
<dl class="return" compact><dt><b>Returns:</b></dt><dd>AXIS2_SUCCESS on success, else AXIS2_FAILURE </dd></dl>

</div>
</div><p>
<a class="anchor" name="g2e9f3ef21b1f3e781232f2835058154a"></a><!-- doxytag: member="axis2_conf_ctx.h::axis2_conf_ctx_register_svc_ctx" ref="g2e9f3ef21b1f3e781232f2835058154a" args="(axis2_conf_ctx_t *conf_ctx, const axutil_env_t *env, const axis2_char_t *svc_id, axis2_svc_ctx_t *svc_ctx)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">AXIS2_EXTERN axis2_status_t axis2_conf_ctx_register_svc_ctx           </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="group__axis2__conf__ctx.html#gab2f89df328e63d4f9fa3a4d035d18f0">axis2_conf_ctx_t</a> *&nbsp;</td>
          <td class="paramname"> <em>conf_ctx</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const <a class="el" href="structaxutil__env.html">axutil_env_t</a> *&nbsp;</td>
          <td class="paramname"> <em>env</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const axis2_char_t *&nbsp;</td>
          <td class="paramname"> <em>svc_id</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype"><a class="el" href="group__axis2__svc__ctx.html#g2a3845db3eb9e9a47b992f6c8882e482">axis2_svc_ctx_t</a> *&nbsp;</td>
          <td class="paramname"> <em>svc_ctx</em></td><td>&nbsp;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td><td width="100%"></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
Registers a service context with the given service ID. <dl compact><dt><b>Parameters:</b></dt><dd>
  <table border="0" cellspacing="2" cellpadding="0">
    <tr><td valign="top"></td><td valign="top"><em>conf_ctx</em>&nbsp;</td><td>pointer t configuration context </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>env</em>&nbsp;</td><td>pointer to environment struct </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>svc_id</em>&nbsp;</td><td>ID of the service to be added </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>svc_ctx</em>&nbsp;</td><td>pointer to service context </td></tr>
  </table>
</dl>
<dl class="return" compact><dt><b>Returns:</b></dt><dd>AXIS2_SUCCESS on success, else AXIS2_FAILURE </dd></dl>

</div>
</div><p>
<a class="anchor" name="g068ae26464a6cf8b2cc8a530603b516a"></a><!-- doxytag: member="axis2_conf_ctx.h::axis2_conf_ctx_register_svc_grp_ctx" ref="g068ae26464a6cf8b2cc8a530603b516a" args="(axis2_conf_ctx_t *conf_ctx, const axutil_env_t *env, const axis2_char_t *svc_grp_id, axis2_svc_grp_ctx_t *svc_grp_ctx)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">AXIS2_EXTERN axis2_status_t axis2_conf_ctx_register_svc_grp_ctx           </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="group__axis2__conf__ctx.html#gab2f89df328e63d4f9fa3a4d035d18f0">axis2_conf_ctx_t</a> *&nbsp;</td>
          <td class="paramname"> <em>conf_ctx</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const <a class="el" href="structaxutil__env.html">axutil_env_t</a> *&nbsp;</td>
          <td class="paramname"> <em>env</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const axis2_char_t *&nbsp;</td>
          <td class="paramname"> <em>svc_grp_id</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype"><a class="el" href="group__axis2__svc__grp__ctx.html#g340e0c5f75d6579013ff5768b37e4a07">axis2_svc_grp_ctx_t</a> *&nbsp;</td>
          <td class="paramname"> <em>svc_grp_ctx</em></td><td>&nbsp;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td><td width="100%"></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
Registers a service group context with the given service group ID. <dl compact><dt><b>Parameters:</b></dt><dd>
  <table border="0" cellspacing="2" cellpadding="0">
    <tr><td valign="top"></td><td valign="top"><em>conf_ctx</em>&nbsp;</td><td>pointer to configuration context </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>env</em>&nbsp;</td><td>pointer to environment struct </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>svc_grp_id</em>&nbsp;</td><td>service group id </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>svc_grp_ctx</em>&nbsp;</td><td>pointer to service group context </td></tr>
  </table>
</dl>
<dl class="return" compact><dt><b>Returns:</b></dt><dd>AXIS2_SUCCESS on success, else AXIS2_FAILURE </dd></dl>

</div>
</div><p>
<a class="anchor" name="g2219982ff63cd78a432352482079907a"></a><!-- doxytag: member="axis2_conf_ctx.h::axis2_conf_ctx_set_conf" ref="g2219982ff63cd78a432352482079907a" args="(axis2_conf_ctx_t *conf_ctx, const axutil_env_t *env, struct axis2_conf *conf)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">AXIS2_EXTERN axis2_status_t axis2_conf_ctx_set_conf           </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="group__axis2__conf__ctx.html#gab2f89df328e63d4f9fa3a4d035d18f0">axis2_conf_ctx_t</a> *&nbsp;</td>
          <td class="paramname"> <em>conf_ctx</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const <a class="el" href="structaxutil__env.html">axutil_env_t</a> *&nbsp;</td>
          <td class="paramname"> <em>env</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">struct axis2_conf *&nbsp;</td>
          <td class="paramname"> <em>conf</em></td><td>&nbsp;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td><td width="100%"></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
Sets the configuration associated with the engine instance. <dl compact><dt><b>Parameters:</b></dt><dd>
  <table border="0" cellspacing="2" cellpadding="0">
    <tr><td valign="top"></td><td valign="top"><em>conf_ctx</em>&nbsp;</td><td>pointer to configuration context </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>env</em>&nbsp;</td><td>pointer to environment struct </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>conf</em>&nbsp;</td><td>pointer to configuration </td></tr>
  </table>
</dl>
<dl class="return" compact><dt><b>Returns:</b></dt><dd>AXIS2_SUCCESS on success, else AXIS2_FAILURE </dd></dl>

</div>
</div><p>
<a class="anchor" name="gfbb679038aba7d0305f8607a5449f381"></a><!-- doxytag: member="axis2_conf_ctx.h::axis2_conf_ctx_set_property" ref="gfbb679038aba7d0305f8607a5449f381" args="(axis2_conf_ctx_t *conf_ctx, const axutil_env_t *env, const axis2_char_t *key, axutil_property_t *value)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">AXIS2_EXTERN axis2_status_t axis2_conf_ctx_set_property           </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="group__axis2__conf__ctx.html#gab2f89df328e63d4f9fa3a4d035d18f0">axis2_conf_ctx_t</a> *&nbsp;</td>
          <td class="paramname"> <em>conf_ctx</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const <a class="el" href="structaxutil__env.html">axutil_env_t</a> *&nbsp;</td>
          <td class="paramname"> <em>env</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const axis2_char_t *&nbsp;</td>
          <td class="paramname"> <em>key</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">axutil_property_t *&nbsp;</td>
          <td class="paramname"> <em>value</em></td><td>&nbsp;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td><td width="100%"></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
Sets a property with the given key. <dl compact><dt><b>Parameters:</b></dt><dd>
  <table border="0" cellspacing="2" cellpadding="0">
    <tr><td valign="top"></td><td valign="top"><em>ctx</em>&nbsp;</td><td>pointer to context struct </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>env</em>&nbsp;</td><td>pointer to environment struct </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>key</em>&nbsp;</td><td>key string to store the property with </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>value</em>&nbsp;</td><td>pointer to property to be stored, context assumes the ownership of the property </td></tr>
  </table>
</dl>
<dl class="return" compact><dt><b>Returns:</b></dt><dd>AXIS2_SUCCESS on success, else AXIS2_FAILURE </dd></dl>

</div>
</div><p>
<a class="anchor" name="gc9b785de188769a7f695b6d21c5d8fce"></a><!-- doxytag: member="axis2_conf_ctx.h::axis2_conf_ctx_set_root_dir" ref="gc9b785de188769a7f695b6d21c5d8fce" args="(axis2_conf_ctx_t *conf_ctx, const axutil_env_t *env, const axis2_char_t *path)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">AXIS2_EXTERN axis2_status_t axis2_conf_ctx_set_root_dir           </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="group__axis2__conf__ctx.html#gab2f89df328e63d4f9fa3a4d035d18f0">axis2_conf_ctx_t</a> *&nbsp;</td>
          <td class="paramname"> <em>conf_ctx</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const <a class="el" href="structaxutil__env.html">axutil_env_t</a> *&nbsp;</td>
          <td class="paramname"> <em>env</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const axis2_char_t *&nbsp;</td>
          <td class="paramname"> <em>path</em></td><td>&nbsp;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td><td width="100%"></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
Sets the root working directory. It is in this directory that the axis2.xml configuration file is located. The services and modules sub folders too are located in this directory. <dl compact><dt><b>Parameters:</b></dt><dd>
  <table border="0" cellspacing="2" cellpadding="0">
    <tr><td valign="top"></td><td valign="top"><em>conf_ctx</em>&nbsp;</td><td>pointer to configuration context </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>env</em>&nbsp;</td><td>pointer to environment struct </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>path</em>&nbsp;</td><td>string containing the path of root directory </td></tr>
  </table>
</dl>
<dl class="return" compact><dt><b>Returns:</b></dt><dd>AXIS2_SUCCESS on success, else AXIS2_FAILURE </dd></dl>

</div>
</div><p>
<hr size="1"><address style="text-align: right;"><small>Generated on Fri Apr 17 11:49:44 2009 for Axis2/C by&nbsp;
<a href="http://www.doxygen.org/index.html">
<img src="doxygen.png" alt="doxygen" align="middle" border="0"></a> 1.5.3 </small></address>
</body>
</html>


<|start_filename|>axiom/src/soap/soap12_builder_helper.c<|end_filename|>

/*
 * 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.
 */

#include "axiom_soap12_builder_helper.h"
#include <axutil_array_list.h>
#include "_axiom_soap_body.h"
#include "_axiom_soap_fault.h"
#include "_axiom_soap_envelope.h"
#include "_axiom_soap_fault_code.h"
#include "_axiom_soap_fault_sub_code.h"
#include "_axiom_soap_fault_node.h"
#include "_axiom_soap_fault_detail.h"
#include "_axiom_soap_fault_reason.h"
#include "_axiom_soap_fault_role.h"
#include "_axiom_soap_fault_value.h"
#include "_axiom_soap_fault_text.h"

struct axiom_soap12_builder_helper
{
    axiom_soap_builder_t *soap_builder;

    axis2_bool_t code_present;

    axis2_bool_t reason_present;

    axis2_bool_t node_present;

    axis2_bool_t role_present;

    axis2_bool_t detail_present;

    axis2_bool_t subcode_value_present;

    axis2_bool_t value_present;

    axis2_bool_t sub_code_present;

    axis2_bool_t sub_sub_code_present;

    axis2_bool_t code_processing;

    axis2_bool_t sub_code_processing;

    axis2_bool_t reason_processing;

    axutil_array_list_t *detail_element_names;
};

AXIS2_EXTERN axiom_soap12_builder_helper_t *AXIS2_CALL
axiom_soap12_builder_helper_create(
    const axutil_env_t * env,
    axiom_soap_builder_t * soap_builder)
{
    axiom_soap12_builder_helper_t *builder_helper = NULL;
    AXIS2_ENV_CHECK(env, NULL);
    AXIS2_PARAM_CHECK(env->error, soap_builder, NULL);

    builder_helper =
        (axiom_soap12_builder_helper_t *) AXIS2_MALLOC(env->allocator,
                  sizeof(axiom_soap12_builder_helper_t));
    if (!builder_helper)
    {
        AXIS2_ERROR_SET(env->error, AXIS2_ERROR_NO_MEMORY, AXIS2_FAILURE);
        AXIS2_LOG_ERROR(env->log, AXIS2_LOG_SI,
                  "No memory. Cannot create SOAP 1.1 builder helper");
        return NULL;
    }

    builder_helper->code_present = AXIS2_FALSE;
    builder_helper->detail_present = AXIS2_FALSE;
    builder_helper->reason_present = AXIS2_FALSE;
    builder_helper->role_present = AXIS2_FALSE;
    builder_helper->sub_code_present = AXIS2_FALSE;
    builder_helper->reason_processing = AXIS2_FALSE;
    builder_helper->code_processing = AXIS2_FALSE;
    builder_helper->sub_code_processing = AXIS2_FALSE;
    builder_helper->detail_element_names = NULL;
    builder_helper->node_present = AXIS2_FALSE;
    builder_helper->soap_builder = soap_builder;
    builder_helper->sub_sub_code_present = AXIS2_FALSE;
    builder_helper->value_present = AXIS2_FALSE;
    builder_helper->subcode_value_present = AXIS2_FALSE;

    return builder_helper;
}

AXIS2_EXTERN void AXIS2_CALL
axiom_soap12_builder_helper_free(
    axiom_soap12_builder_helper_t * builder_helper,
    const axutil_env_t * env)
{
    AXIS2_ENV_CHECK(env, void);

    if (builder_helper->detail_element_names)
    {
        axutil_array_list_free(builder_helper->detail_element_names, env);
        builder_helper->detail_element_names = NULL;
    }

    AXIS2_FREE(env->allocator, builder_helper);
    builder_helper = NULL;
    return;
}

AXIS2_EXTERN axis2_status_t AXIS2_CALL
axiom_soap12_builder_helper_handle_event(
    axiom_soap12_builder_helper_t * builder_helper,
    const axutil_env_t * env,
    axiom_node_t * om_ele_node,
    int element_level)
{
    axis2_char_t *ele_localname = NULL;
    axiom_element_t *om_ele = NULL;

    axiom_soap_body_t *soap_body = NULL;
    axiom_soap_fault_t *soap_fault = NULL;
    axiom_soap_envelope_t *soap_envelope = NULL;

    AXIS2_ENV_CHECK(env, AXIS2_FAILURE);
    AXIS2_PARAM_CHECK(env->error, om_ele_node, AXIS2_FAILURE);

    om_ele = (axiom_element_t *) axiom_node_get_data_element(om_ele_node, env);
    if (!om_ele)
    {
        return AXIS2_FAILURE;
    }

    ele_localname = axiom_element_get_localname(om_ele, env);
    if (!ele_localname)
    {
        return AXIS2_FAILURE;
    }

    soap_envelope =
        axiom_soap_builder_get_soap_envelope(builder_helper->soap_builder, env);
    if (!soap_envelope)
    {
        return AXIS2_FAILURE;
    }

    soap_body = axiom_soap_envelope_get_body(soap_envelope, env);
    if (!soap_body)
    {
        return AXIS2_FAILURE;
    }

    soap_fault = axiom_soap_body_get_fault(soap_body, env);
    if (!soap_fault)
    {
        return AXIS2_FAILURE;
    }

    if (element_level == 4)
    {
        if (axutil_strcmp
            (AXIOM_SOAP12_SOAP_FAULT_CODE_LOCAL_NAME, ele_localname) == 0)
        {
            if (builder_helper->code_present)
            {
                AXIS2_ERROR_SET(env->error,
                                AXIS2_ERROR_MULTIPLE_CODE_ELEMENTS_ENCOUNTERED,
                                AXIS2_FAILURE);
                AXIS2_LOG_ERROR(env->log, AXIS2_LOG_SI,
                       "Multiple  fault code elements encountered in SOAP fault");
                return AXIS2_FAILURE;
            }
            else
            {
                axiom_soap_fault_code_t *soap_fault_code = NULL;
                soap_fault_code = axiom_soap_fault_code_create(env);
                if (!soap_fault_code)
                {
                    return AXIS2_FAILURE;
                }
                axiom_soap_fault_code_set_base_node(soap_fault_code, env,
                                                    om_ele_node);

                axiom_soap_fault_code_set_builder(soap_fault_code, env,
                                                  builder_helper->soap_builder);

                axiom_soap_fault_set_code(soap_fault, env, soap_fault_code);

                builder_helper->code_present = AXIS2_TRUE;
                builder_helper->code_processing = AXIS2_TRUE;
            }
        }
        else if (axutil_strcmp
                 (AXIOM_SOAP12_SOAP_FAULT_REASON_LOCAL_NAME,
                  ele_localname) == 0)
        {
            if (!(builder_helper->code_processing) &&
                !(builder_helper->sub_code_processing))
            {
                if (builder_helper->code_present)
                {
                    if (builder_helper->reason_present)
                    {
                        AXIS2_ERROR_SET(env->error,
                                        AXIS2_ERROR_MULTIPLE_REASON_ELEMENTS_ENCOUNTERED,
                                        AXIS2_FAILURE);
                        AXIS2_LOG_ERROR(env->log, AXIS2_LOG_SI,
                            "Multiple fault reason elements encountered in SOAP fault");

                        return AXIS2_FAILURE;
                    }
                    else
                    {
                        axiom_soap_fault_reason_t *fault_reason = NULL;
                        fault_reason = axiom_soap_fault_reason_create(env);
                        if (!fault_reason)
                        {
                            return AXIS2_FAILURE;
                        }

                        axiom_soap_fault_reason_set_base_node(fault_reason, env,
                                                              om_ele_node);

                        axiom_soap_fault_set_reason(soap_fault, env,
                                                    fault_reason);

                        axiom_soap_fault_reason_set_builder(fault_reason, env,
                                                            builder_helper->
                                                            soap_builder);

                        builder_helper->reason_present = AXIS2_TRUE;
                        builder_helper->reason_processing = AXIS2_TRUE;
                    }
                }
                else
                {
                    AXIS2_ERROR_SET(env->error,
                                    AXIS2_ERROR_WRONG_ELEMENT_ORDER_ENCOUNTERED,
                                    AXIS2_FAILURE);
                    return AXIS2_FAILURE;
                }
            }
            else
            {
                if (builder_helper->code_processing)
                {
                    AXIS2_ERROR_SET(env->error,
                                    AXIS2_ERROR_SOAP_FAULT_CODE_DOES_NOT_HAVE_A_VALUE,
                                    AXIS2_FAILURE);
                    return AXIS2_FAILURE;
                }
                else
                {
                    AXIS2_ERROR_SET(env->error,
                                    AXIS2_ERROR_SOAP_FAULT_CODE_DOES_NOT_HAVE_A_VALUE,
                                    AXIS2_FAILURE);
                    return AXIS2_FAILURE;
                }
            }
        }
        else if (axutil_strcmp
                 (ele_localname, AXIOM_SOAP12_SOAP_FAULT_NODE_LOCAL_NAME) == 0)
        {
            if (!(builder_helper->reason_processing))
            {
                if (builder_helper->reason_present &&
                    !(builder_helper->role_present) &&
                    !(builder_helper->detail_present))
                {
                    if (builder_helper->node_present)
                    {
                        AXIS2_ERROR_SET(env->error,
                                        AXIS2_ERROR_MULTIPLE_NODE_ELEMENTS_ENCOUNTERED,
                                        AXIS2_FAILURE);
                        return AXIS2_FAILURE;
                    }
                    else
                    {
                        axiom_soap_fault_node_t *soap_fault_node = NULL;
                        soap_fault_node = axiom_soap_fault_node_create(env);
                        if (!soap_fault_node)
                        {
                            return AXIS2_FAILURE;
                        }

                        axiom_soap_fault_node_set_base_node(soap_fault_node,
                                                            env, om_ele_node);

                        axiom_soap_fault_set_node(soap_fault, env,
                                                  soap_fault_node);

                        builder_helper->node_present = AXIS2_TRUE;
                    }
                }
                else
                {
                    AXIS2_ERROR_SET(env->error,
                                    AXIS2_ERROR_WRONG_ELEMENT_ORDER_ENCOUNTERED,
                                    AXIS2_FALSE);

                    return AXIS2_FAILURE;
                }
            }
            else
            {
                AXIS2_ERROR_SET(env->error,
                                AXIS2_ERROR_SOAP_FAULT_REASON_ELEMENT_SHOULD_HAVE_A_TEXT,
                                AXIS2_FALSE);
                return AXIS2_FAILURE;
            }

        }
        else if (axutil_strcmp
                 (ele_localname, AXIOM_SOAP12_SOAP_FAULT_ROLE_LOCAL_NAME) == 0)
        {
            if (!(builder_helper->reason_processing))
            {
                if (builder_helper->reason_present &&
                    !(builder_helper->detail_present))
                {
                    if (builder_helper->role_present)
                    {
                        AXIS2_ERROR_SET(env->error,
                                        AXIS2_ERROR_MULTIPLE_ROLE_ELEMENTS_ENCOUNTERED,
                                        AXIS2_FAILURE);

                        return AXIS2_FAILURE;
                    }
                    else
                    {
                        axiom_soap_fault_role_t *soap_fault_role = NULL;
                        soap_fault_role = axiom_soap_fault_role_create(env);
                        if (!soap_fault_role)
                            return AXIS2_FAILURE;

                        axiom_soap_fault_role_set_base_node(soap_fault_role,
                                                            env, om_ele_node);

                        axiom_soap_fault_set_role(soap_fault, env,
                                                  soap_fault_role);
                        builder_helper->role_present = AXIS2_TRUE;
                    }
                }
                else
                {
                    AXIS2_ERROR_SET(env->error,
                                    AXIS2_ERROR_WRONG_ELEMENT_ORDER_ENCOUNTERED,
                                    AXIS2_FAILURE);
                    return AXIS2_FAILURE;
                }
            }
            else
            {

                AXIS2_ERROR_SET(env->error,
                                AXIS2_ERROR_SOAP_FAULT_ROLE_ELEMENT_SHOULD_HAVE_A_TEXT,
                                AXIS2_FAILURE);
                return AXIS2_FAILURE;
            }
        }
        else if (axutil_strcmp
                 (ele_localname,
                  AXIOM_SOAP12_SOAP_FAULT_DETAIL_LOCAL_NAME) == 0)
        {
            if (!(builder_helper->reason_processing))
            {
                if (builder_helper->reason_present)
                {
                    if (builder_helper->detail_present)
                    {
                        AXIS2_ERROR_SET(env->error,
                                        AXIS2_ERROR_MULTIPLE_DETAIL_ELEMENTS_ENCOUNTERED,
                                        AXIS2_FAILURE);
                        return AXIS2_FAILURE;
                    }
                    else
                    {

                        axiom_soap_fault_detail_t *soap_fault_detail = NULL;
                        soap_fault_detail = axiom_soap_fault_detail_create(env);
                        if (!soap_fault_detail)
                            return AXIS2_FAILURE;

                        axiom_soap_fault_detail_set_base_node(soap_fault_detail,
                                                              env, om_ele_node);

                        axiom_soap_fault_set_detail(soap_fault, env,
                                                    soap_fault_detail);
                        builder_helper->detail_present = AXIS2_TRUE;
                    }
                }
                else
                {
                    AXIS2_ERROR_SET(env->error,
                                    AXIS2_ERROR_WRONG_ELEMENT_ORDER_ENCOUNTERED,
                                    AXIS2_FAILURE);

                    return AXIS2_FAILURE;

                }
            }
            else
            {
                AXIS2_ERROR_SET(env->error,
                                AXIS2_ERROR_SOAP_FAULT_REASON_ELEMENT_SHOULD_HAVE_A_TEXT,
                                AXIS2_FAILURE);
                return AXIS2_FAILURE;
            }

        }
        else
        {
            AXIS2_ERROR_SET(env->error,
                            AXIS2_ERROR_UNSUPPORTED_ELEMENT_IN_SOAP_FAULT_ELEMENT,
                            AXIS2_FAILURE);
            return AXIS2_FAILURE;
        }
    }
    else if (element_level == 5)
    {
        axiom_node_t *parent_node = NULL;
        axiom_element_t *parent_ele = NULL;
        axis2_char_t *parent_localname = NULL;
        parent_node = axiom_node_get_parent(om_ele_node, env);
        if (!parent_node)
        {
            return AXIS2_FAILURE;
        }
        parent_ele =
            (axiom_element_t *) axiom_node_get_data_element(parent_node, env);
        if (!parent_ele)
        {
            return AXIS2_FAILURE;
        }
        parent_localname = axiom_element_get_localname(parent_ele, env);
        if (!parent_localname)
        {
            return AXIS2_FAILURE;
        }

        if (axutil_strcmp(parent_localname,
                          AXIOM_SOAP12_SOAP_FAULT_CODE_LOCAL_NAME) == 0)
        {
            if (axutil_strcmp
                (ele_localname, AXIOM_SOAP12_SOAP_FAULT_VALUE_LOCAL_NAME) == 0)
            {
                if (!(builder_helper->value_present))
                {
                    axiom_soap_fault_value_t *soap_fault_value = NULL;
                    axiom_soap_fault_code_t *parent_fcode = NULL;

                    soap_fault_value = axiom_soap_fault_value_create(env);
                    if (!soap_fault_value)
                    {
                        return AXIS2_FAILURE;
                    }
                    axiom_soap_fault_value_set_base_node(soap_fault_value, env,
                                                         om_ele_node);

                    parent_fcode = axiom_soap_fault_get_code(soap_fault, env);
                    if (!parent_fcode)
                    {
                        return AXIS2_FAILURE;
                    }
                    axiom_soap_fault_code_set_value(parent_fcode, env,
                                                    soap_fault_value);

                    builder_helper->value_present = AXIS2_TRUE;
                    builder_helper->code_processing = AXIS2_FALSE;

                }
                else
                {
                    AXIS2_ERROR_SET(env->error,
                                    AXIS2_ERROR_MULTIPLE_VALUE_ENCOUNTERED_IN_CODE_ELEMENT,
                                    AXIS2_FAILURE);
                    return AXIS2_FAILURE;
                }
            }
            else if (axutil_strcmp(ele_localname,
                                   AXIOM_SOAP12_SOAP_FAULT_SUB_CODE_LOCAL_NAME)
                     == 0)
            {
                if (!(builder_helper->sub_code_present))
                {
                    if (builder_helper->value_present)
                    {

                        axiom_soap_fault_sub_code_t *fault_subcode = NULL;
                        axiom_soap_fault_code_t *fault_code = NULL;

                        fault_subcode = axiom_soap_fault_sub_code_create(env);
                        if (!fault_subcode)
                        {
                            return AXIS2_FAILURE;
                        }
                        axiom_soap_fault_sub_code_set_base_node(fault_subcode,
                                                                env,
                                                                om_ele_node);

                        fault_code = axiom_soap_fault_get_code(soap_fault, env);
                        if (!fault_code)
                        {
                            return AXIS2_FAILURE;
                        }
                        axiom_soap_fault_code_set_sub_code(fault_code, env,
                                                           fault_subcode);

                        axiom_soap_fault_sub_code_set_builder(fault_subcode,
                                                              env,
                                                              builder_helper->
                                                              soap_builder);

                        builder_helper->sub_code_present = AXIS2_TRUE;
                        builder_helper->sub_code_processing = AXIS2_TRUE;
                    }
                    else
                    {
                        AXIS2_ERROR_SET(env->error,
                                        AXIS2_ERROR_SOAP_FAULT_VALUE_SHOULD_BE_PRESENT_BEFORE_SUB_CODE,
                                        AXIS2_FAILURE);
                        return AXIS2_FAILURE;
                    }
                }
                else
                {
                    AXIS2_ERROR_SET(env->error,
                                    AXIS2_ERROR_MULTIPLE_SUB_CODE_VALUES_ENCOUNTERED,
                                    AXIS2_FAILURE);
                    return AXIS2_FAILURE;
                }
            }
            else
            {
                AXIS2_ERROR_SET(env->error,
                                AXIS2_ERROR_THIS_LOCALNAME_NOT_SUPPORTED_INSIDE_THE_CODE_ELEMENT,
                                AXIS2_FAILURE);
                return AXIS2_FAILURE;
            }
        }
        else if (axutil_strcmp
                 (parent_localname,
                  AXIOM_SOAP12_SOAP_FAULT_REASON_LOCAL_NAME) == 0)
        {
            if (axutil_strcmp
                (ele_localname, AXIOM_SOAP12_SOAP_FAULT_TEXT_LOCAL_NAME) == 0)
            {
                axiom_soap_fault_text_t *soap_fault_text = NULL;
                axiom_soap_fault_reason_t *fault_reason = NULL;

                soap_fault_text = axiom_soap_fault_text_create(env);
                if (!soap_fault_text)
                {
                    return AXIS2_FAILURE;
                }
                axiom_soap_fault_text_set_base_node(soap_fault_text, env,
                                                    om_ele_node);

                fault_reason = axiom_soap_fault_get_reason(soap_fault, env);
                if (!fault_reason)
                {
                    return AXIS2_FAILURE;
                }

                axiom_soap_fault_reason_add_soap_fault_text(fault_reason, env,
                                                            soap_fault_text);
                builder_helper->reason_processing = AXIS2_FALSE;

                axiom_soap_builder_set_bool_processing_mandatory_fault_elements
                    (builder_helper->soap_builder, env, AXIS2_FALSE);

            }
            else
            {
                AXIS2_ERROR_SET(env->error,
                                AXIS2_ERROR_THIS_LOCALNAME_IS_NOT_SUPPORTED_INSIDE_THE_REASON_ELEMENT,
                                AXIS2_FAILURE);
                return AXIS2_FAILURE;
            }

        }
        else if (axutil_strcmp
                 (parent_localname,
                  AXIOM_SOAP12_SOAP_FAULT_DETAIL_LOCAL_NAME) == 0)
        {
            axiom_soap_builder_set_processing_detail_elements(builder_helper->
                                                              soap_builder, env,
                                                              AXIS2_TRUE);

            if (!(builder_helper->detail_element_names))
            {
                builder_helper->detail_element_names =
                    axutil_array_list_create(env, 20);
            }

            axutil_array_list_add(builder_helper->detail_element_names, env,
                                  ele_localname);

        }
        else
        {

            return AXIS2_FAILURE;
        }

    }
    else if (element_level > 5)
    {
        axiom_node_t *parent_node = NULL;
        axiom_element_t *parent_ele = NULL;
        axis2_char_t *parent_localname = NULL;

        parent_node = axiom_node_get_parent(om_ele_node, env);
        if (!parent_node)
        {
            return AXIS2_FAILURE;
        }
        parent_ele =
            (axiom_element_t *) axiom_node_get_data_element(parent_node, env);
        if (!parent_ele)
        {
            return AXIS2_FAILURE;
        }

        parent_localname = axiom_element_get_localname(parent_ele, env);
        if (!parent_localname)
        {
            return AXIS2_FAILURE;
        }
        if (axutil_strcmp
            (parent_localname,
             AXIOM_SOAP12_SOAP_FAULT_SUB_CODE_LOCAL_NAME) == 0)
        {
            if (axutil_strcmp
                (ele_localname, AXIOM_SOAP12_SOAP_FAULT_VALUE_LOCAL_NAME) == 0)
            {
                if (builder_helper->subcode_value_present)
                {
                    AXIS2_ERROR_SET(env->error,
                                    AXIS2_ERROR_MULTIPLE_SUB_CODE_VALUES_ENCOUNTERED,
                                    AXIS2_FAILURE);
                    return AXIS2_FAILURE;
                }
                else
                {

                    axiom_soap_fault_sub_code_t *sub_code = NULL;
                    axiom_soap_fault_code_t *code = NULL;
                    axiom_soap_fault_value_t *value = NULL;
                    code = axiom_soap_fault_get_code(soap_fault, env);

                    if (!code)
                    {
                        AXIS2_LOG_DEBUG(env->log, AXIS2_LOG_SI,
                                        "fault code null when it should not be null");
                        return AXIS2_FAILURE;
                    }

                    sub_code = axiom_soap_fault_code_get_sub_code(code, env);
                    if (!sub_code)
                    {
                        AXIS2_LOG_DEBUG(env->log, AXIS2_LOG_SI,
                                        "fault subcode null when it should not be null");
                        return AXIS2_FAILURE;
                    }
                    value = axiom_soap_fault_value_create(env);
                    if (!value)
                    {
                        return AXIS2_FAILURE;
                    }

                    axiom_soap_fault_value_set_base_node(value, env,
                                                         om_ele_node);

                    axiom_soap_fault_sub_code_set_value(sub_code, env, value);

                    builder_helper->subcode_value_present = AXIS2_TRUE;
                    builder_helper->sub_sub_code_present = AXIS2_FALSE;
                    builder_helper->sub_code_processing = AXIS2_FALSE;
                }
            }
            else if (axutil_strcmp
                     (ele_localname,
                      AXIOM_SOAP12_SOAP_FAULT_SUB_CODE_LOCAL_NAME) == 0)
            {
                if (builder_helper->subcode_value_present)
                {
                    if (!(builder_helper->sub_sub_code_present))
                    {
                        axiom_soap_fault_code_t *fault_code = NULL;
                        axiom_soap_fault_sub_code_t *parent_subcode = NULL;
                        axiom_soap_fault_sub_code_t *subcode = NULL;

                        subcode = axiom_soap_fault_sub_code_create(env);
                        if (!subcode)
                        {
                            return AXIS2_FAILURE;
                        }

                        axiom_soap_fault_sub_code_set_base_node(subcode, env,
                                                                om_ele_node);

                        fault_code = axiom_soap_fault_get_code(soap_fault, env);
                        if (!fault_code)
                        {
                            AXIS2_LOG_DEBUG(env->log, AXIS2_LOG_SI,
                                            "fault code null when it should not be null");
                            return AXIS2_FAILURE;
                        }
                        parent_subcode =
                            axiom_soap_fault_code_get_sub_code(fault_code, env);
                        if (!parent_subcode)
                        {
                            AXIS2_LOG_DEBUG(env->log, AXIS2_LOG_SI,
                                            "fault subcode null when it should not be null");
                            return AXIS2_FAILURE;
                        }

                        axiom_soap_fault_sub_code_set_sub_code(parent_subcode,
                                                               env, subcode);

                        builder_helper->subcode_value_present = AXIS2_FALSE;
                        builder_helper->sub_sub_code_present = AXIS2_TRUE;
                        builder_helper->sub_code_processing = AXIS2_TRUE;
                    }
                    else
                    {
                        AXIS2_ERROR_SET(env->error,
                                        AXIS2_ERROR_MULTIPLE_SUB_CODE_VALUES_ENCOUNTERED,
                                        AXIS2_FAILURE);

                        return AXIS2_FAILURE;
                    }
                }
                else
                {
                    AXIS2_ERROR_SET(env->error,
                                    AXIS2_ERROR_SOAP_FAULT_VALUE_SHOULD_BE_PRESENT_BEFORE_SUB_CODE,
                                    AXIS2_FAILURE);

                    return AXIS2_FAILURE;

                }
            }
            else
            {
                AXIS2_ERROR_SET(env->error,
                                AXIS2_ERROR_THIS_LOCALNAME_IS_NOT_SUPPORTED_INSIDE_THE_SUB_CODE_ELEMENT,
                                AXIS2_FAILURE);

                return AXIS2_FAILURE;
            }
        }
        else if (axiom_soap_builder_is_processing_detail_elements
                 (builder_helper->soap_builder, env))
        {

            int detail_element_level = 0;
            axis2_bool_t local_name_exists = AXIS2_FALSE;
            int i = 0;
            if (!(builder_helper->detail_element_names))
            {
                return AXIS2_FAILURE;
            }

            for (i = 0;
                 i <
                 axutil_array_list_size(builder_helper->detail_element_names,
                                        env); i++)
            {
                if (axutil_strcmp
                    (parent_localname,
                     axutil_array_list_get(builder_helper->detail_element_names,
                                           env, i)) == 0)
                {
                    local_name_exists = AXIS2_TRUE;
                    detail_element_level = i + 1;
                }
            }
            if (local_name_exists)
            {
                axutil_array_list_add(builder_helper->detail_element_names, env,
                                      ele_localname);
            }
            else
            {
                return AXIS2_FAILURE;
            }
        }
    }
    return AXIS2_SUCCESS;
}


<|start_filename|>xdocs/api/html/axutil__network__handler_8h-source.html<|end_filename|>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html><head><meta http-equiv="Content-Type" content="text/html;charset=UTF-8">
<title>Axis2/C: axutil_network_handler.h Source File</title>
<link href="doxygen.css" rel="stylesheet" type="text/css">
<link href="tabs.css" rel="stylesheet" type="text/css">
</head><body>
<!-- Generated by Doxygen 1.5.3 -->
<div class="tabs">
  <ul>
    <li><a href="index.html"><span>Main&nbsp;Page</span></a></li>
    <li><a href="modules.html"><span>Modules</span></a></li>
    <li><a href="annotated.html"><span>Classes</span></a></li>
    <li class="current"><a href="files.html"><span>Files</span></a></li>
    <li><a href="dirs.html"><span>Directories</span></a></li>
    <li><a href="pages.html"><span>Related&nbsp;Pages</span></a></li>
    <li><a href="examples.html"><span>Examples</span></a></li>
    <li>
      <form action="search.php" method="get">
        <table cellspacing="0" cellpadding="0" border="0">
          <tr>
            <td><label>&nbsp;<u>S</u>earch&nbsp;for&nbsp;</label></td>
            <td><input type="text" name="query" value="" size="20" accesskey="s"/></td>
          </tr>
        </table>
      </form>
    </li>
  </ul>
</div>
<div class="nav">
<a class="el" href="dir_f60961de8e5edc3b2658ef023e959e45.html">deploy</a>&nbsp;&raquo&nbsp;<a class="el" href="dir_6b4e91e54b7316b376882a6402adbf44.html">include</a>&nbsp;&raquo&nbsp;<a class="el" href="dir_df3a7695d5a9e696f30b948b566829e7.html">axis2-1.6.0</a></div>
<h1>axutil_network_handler.h</h1><div class="fragment"><pre class="fragment"><a name="l00001"></a>00001 
<a name="l00002"></a>00002 <span class="comment">/*</span>
<a name="l00003"></a>00003 <span class="comment"> * Copyright 2004,2005 The Apache Software Foundation.</span>
<a name="l00004"></a>00004 <span class="comment"> *</span>
<a name="l00005"></a>00005 <span class="comment"> * Licensed under the Apache License, Version 2.0 (the "License");</span>
<a name="l00006"></a>00006 <span class="comment"> * you may not use this file except in compliance with the License.</span>
<a name="l00007"></a>00007 <span class="comment"> * You may obtain count copy of the License at</span>
<a name="l00008"></a>00008 <span class="comment"> *</span>
<a name="l00009"></a>00009 <span class="comment"> *      http://www.apache.org/licenses/LICENSE-2.0</span>
<a name="l00010"></a>00010 <span class="comment"> *</span>
<a name="l00011"></a>00011 <span class="comment"> * Unless required by applicable law or agreed to in writing, software</span>
<a name="l00012"></a>00012 <span class="comment"> * distributed under the License is distributed on an "AS IS" BASIS,</span>
<a name="l00013"></a>00013 <span class="comment"> * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.</span>
<a name="l00014"></a>00014 <span class="comment"> * See the License for the specific language governing permissions and</span>
<a name="l00015"></a>00015 <span class="comment"> * limitations under the License.</span>
<a name="l00016"></a>00016 <span class="comment"> */</span>
<a name="l00017"></a>00017 
<a name="l00018"></a>00018 <span class="preprocessor">#ifndef AXUTIL_NETWORK_HANDLER_H</span>
<a name="l00019"></a>00019 <span class="preprocessor"></span><span class="preprocessor">#define AXUTIL_NETWORK_HANDLER_H</span>
<a name="l00020"></a>00020 <span class="preprocessor"></span>
<a name="l00021"></a>00021 <span class="preprocessor">#include &lt;<a class="code" href="axutil__utils_8h.html">axutil_utils.h</a>&gt;</span>
<a name="l00022"></a>00022 <span class="preprocessor">#include &lt;axutil_utils_defines.h&gt;</span>
<a name="l00023"></a>00023 <span class="preprocessor">#include &lt;<a class="code" href="axutil__env_8h.html" title="Axis2 environment that acts as a container for error, log and memory allocator routines...">axutil_env.h</a>&gt;</span>
<a name="l00024"></a>00024 <span class="preprocessor">#include &lt;sys/types.h&gt;</span>
<a name="l00025"></a>00025 <span class="preprocessor">#include &lt;platforms/axutil_platform_auto_sense.h&gt;</span>
<a name="l00026"></a>00026 
<a name="l00027"></a>00027 <span class="preprocessor">#ifdef __cplusplus</span>
<a name="l00028"></a>00028 <span class="preprocessor"></span><span class="keyword">extern</span> <span class="stringliteral">"C"</span>
<a name="l00029"></a>00029 {
<a name="l00030"></a>00030 <span class="preprocessor">#endif</span>
<a name="l00031"></a>00031 <span class="preprocessor"></span>
<a name="l00044"></a>00044     AXIS2_EXTERN axis2_socket_t AXIS2_CALL
<a name="l00045"></a>00045 
<a name="l00046"></a>00046     <a class="code" href="group__axutil__network__handler.html#g3bc07fd4dddb1427de1cfe28e5e1e09b">axutil_network_handler_open_socket</a>(
<a name="l00047"></a>00047         <span class="keyword">const</span> <a class="code" href="structaxutil__env.html" title="Axis2 Environment struct.">axutil_env_t</a> * env,
<a name="l00048"></a>00048         <span class="keywordtype">char</span> *server,
<a name="l00049"></a>00049         <span class="keywordtype">int</span> port);
<a name="l00050"></a>00050 
<a name="l00056"></a>00056     AXIS2_EXTERN axis2_socket_t AXIS2_CALL
<a name="l00057"></a>00057 
<a name="l00058"></a>00058     <a class="code" href="group__axutil__network__handler.html#gba4133a493242c5b02880ea807779830">axutil_network_handler_create_server_socket</a>(
<a name="l00059"></a>00059         <span class="keyword">const</span> <a class="code" href="structaxutil__env.html" title="Axis2 Environment struct.">axutil_env_t</a> * env,
<a name="l00060"></a>00060         <span class="keywordtype">int</span> port);
<a name="l00061"></a>00061 
<a name="l00067"></a>00067     AXIS2_EXTERN axis2_status_t AXIS2_CALL
<a name="l00068"></a>00068 
<a name="l00069"></a>00069     <a class="code" href="group__axutil__network__handler.html#g71fbbdcbc95a7ddf46dc34e652d4b79c">axutil_network_handler_close_socket</a>(
<a name="l00070"></a>00070         <span class="keyword">const</span> <a class="code" href="structaxutil__env.html" title="Axis2 Environment struct.">axutil_env_t</a> * env,
<a name="l00071"></a>00071         axis2_socket_t socket);
<a name="l00072"></a>00072 
<a name="l00080"></a>00080     AXIS2_EXTERN axis2_status_t AXIS2_CALL
<a name="l00081"></a>00081 
<a name="l00082"></a>00082     <a class="code" href="group__axutil__network__handler.html#gf4d2e959b57c810c811414775d406268">axutil_network_handler_set_sock_option</a>(
<a name="l00083"></a>00083         <span class="keyword">const</span> <a class="code" href="structaxutil__env.html" title="Axis2 Environment struct.">axutil_env_t</a> * env,
<a name="l00084"></a>00084         axis2_socket_t socket,
<a name="l00085"></a>00085         <span class="keywordtype">int</span> option,
<a name="l00086"></a>00086         <span class="keywordtype">int</span> value);
<a name="l00087"></a>00087 
<a name="l00093"></a>00093     AXIS2_EXTERN axis2_socket_t AXIS2_CALL
<a name="l00094"></a>00094 
<a name="l00095"></a>00095     <a class="code" href="group__axutil__network__handler.html#g3375a0ac8d9e4bba1262337ce0667b81">axutil_network_handler_svr_socket_accept</a>(
<a name="l00096"></a>00096         <span class="keyword">const</span> <a class="code" href="structaxutil__env.html" title="Axis2 Environment struct.">axutil_env_t</a> * env,
<a name="l00097"></a>00097         axis2_socket_t socket);
<a name="l00098"></a>00098 
<a name="l00104"></a>00104     AXIS2_EXTERN axis2_char_t *AXIS2_CALL
<a name="l00105"></a>00105     <a class="code" href="group__axutil__network__handler.html#ge133f7aaab676ec5220383a1fc6a18b5">axutil_network_handler_get_svr_ip</a>(
<a name="l00106"></a>00106         <span class="keyword">const</span> <a class="code" href="structaxutil__env.html" title="Axis2 Environment struct.">axutil_env_t</a> * env,
<a name="l00107"></a>00107         axis2_socket_t socket);
<a name="l00108"></a>00108 
<a name="l00109"></a>00109     AXIS2_EXTERN axis2_char_t *AXIS2_CALL
<a name="l00110"></a>00110     axutil_network_handler_get_peer_ip(
<a name="l00111"></a>00111         <span class="keyword">const</span> <a class="code" href="structaxutil__env.html" title="Axis2 Environment struct.">axutil_env_t</a> * env,
<a name="l00112"></a>00112         axis2_socket_t socket);
<a name="l00113"></a>00113 
<a name="l00114"></a>00114         <span class="comment">/* </span>
<a name="l00115"></a>00115 <span class="comment">         * Create a datagram socket. </span>
<a name="l00116"></a>00116 <span class="comment">         * @param env pointer to env</span>
<a name="l00117"></a>00117 <span class="comment">         * @return a datagram socket</span>
<a name="l00118"></a>00118 <span class="comment">         */</span>
<a name="l00119"></a>00119         AXIS2_EXTERN axis2_socket_t AXIS2_CALL
<a name="l00120"></a>00120         axutil_network_handler_open_dgram_socket(<span class="keyword">const</span> <a class="code" href="structaxutil__env.html" title="Axis2 Environment struct.">axutil_env_t</a> *env);
<a name="l00121"></a>00121 
<a name="l00122"></a>00122         <span class="comment">/*</span>
<a name="l00123"></a>00123 <span class="comment">         * Send a UDP packet to the given source and port address.</span>
<a name="l00124"></a>00124 <span class="comment">         * Read a incoming UDP packet from the port and server address.</span>
<a name="l00125"></a>00125 <span class="comment">         * @param env pointer to the env structure</span>
<a name="l00126"></a>00126 <span class="comment">         * @param socket a datagram socket</span>
<a name="l00127"></a>00127 <span class="comment">         * @param buffer a buffer containing the data to be sent</span>
<a name="l00128"></a>00128 <span class="comment">         * @param buf_len length of the buffer</span>
<a name="l00129"></a>00129 <span class="comment">         * @param addr address of the source field</span>
<a name="l00130"></a>00130 <span class="comment">         * @param port udp port number</span>
<a name="l00131"></a>00131 <span class="comment">         * @return success if everything goes well</span>
<a name="l00132"></a>00132 <span class="comment">         */</span>
<a name="l00133"></a>00133         AXIS2_EXTERN axis2_status_t AXIS2_CALL 
<a name="l00134"></a>00134         axutil_network_handler_send_dgram(<span class="keyword">const</span> <a class="code" href="structaxutil__env.html" title="Axis2 Environment struct.">axutil_env_t</a> *env, axis2_socket_t socket, 
<a name="l00135"></a>00135                                                                  axis2_char_t *buff, <span class="keywordtype">int</span> *buf_len, 
<a name="l00136"></a>00136                                                                  axis2_char_t *addr, <span class="keywordtype">int</span> dest_port, <span class="keywordtype">int</span> *source_port);
<a name="l00137"></a>00137 
<a name="l00138"></a>00138         <span class="comment">/* </span>
<a name="l00139"></a>00139 <span class="comment">         * Read a incoming UDP packet from the port and server address.</span>
<a name="l00140"></a>00140 <span class="comment">         * @param env pointer to the env structure</span>
<a name="l00141"></a>00141 <span class="comment">         * @param socket a datagram socket</span>
<a name="l00142"></a>00142 <span class="comment">         * @param buffer a buffer allocated and passed to be filled</span>
<a name="l00143"></a>00143 <span class="comment">         * @param buf_len length of the buffer allocated. In return buffer len </span>
<a name="l00144"></a>00144 <span class="comment">                          contains the length of the data read</span>
<a name="l00145"></a>00145 <span class="comment">         * @param addr address of the sender. This is a return value.</span>
<a name="l00146"></a>00146 <span class="comment">         * @param port senders port address. Return value</span>
<a name="l00147"></a>00147 <span class="comment">         * @return if everything goes well return success </span>
<a name="l00148"></a>00148 <span class="comment">         */</span>
<a name="l00149"></a>00149         AXIS2_EXTERN axis2_status_t AXIS2_CALL
<a name="l00150"></a>00150         axutil_network_handler_read_dgram(<span class="keyword">const</span> <a class="code" href="structaxutil__env.html" title="Axis2 Environment struct.">axutil_env_t</a> *env, axis2_socket_t socket, 
<a name="l00151"></a>00151                                                                          axis2_char_t *buffer, <span class="keywordtype">int</span> *buf_len,
<a name="l00152"></a>00152                                                                          axis2_char_t **addr, <span class="keywordtype">int</span> *port);
<a name="l00153"></a>00153 
<a name="l00154"></a>00154         <span class="comment">/* </span>
<a name="l00155"></a>00155 <span class="comment">         * Create a datagram socket to receive incoming UDP packets.</span>
<a name="l00156"></a>00156 <span class="comment">         * @param env a pointer to the env structure</span>
<a name="l00157"></a>00157 <span class="comment">         * @param port udp port to listen</span>
<a name="l00158"></a>00158 <span class="comment">         * @return AXIS2_SUCCESS if everything goes well</span>
<a name="l00159"></a>00159 <span class="comment">         */</span>
<a name="l00160"></a>00160         AXIS2_EXTERN axis2_socket_t AXIS2_CALL
<a name="l00161"></a>00161         axutil_network_handler_create_dgram_svr_socket(
<a name="l00162"></a>00162                                                                         <span class="keyword">const</span> <a class="code" href="structaxutil__env.html" title="Axis2 Environment struct.">axutil_env_t</a> *env, 
<a name="l00163"></a>00163                                                                         <span class="keywordtype">int</span> port);
<a name="l00164"></a>00164 
<a name="l00165"></a>00165         <span class="comment">/* </span>
<a name="l00166"></a>00166 <span class="comment">         * Bind a socket to the specified address</span>
<a name="l00167"></a>00167 <span class="comment">         * @param env a pointer to the env structure</span>
<a name="l00168"></a>00168 <span class="comment">         * @param sock socket</span>
<a name="l00169"></a>00169 <span class="comment">         * @param port port number to bind to</span>
<a name="l00170"></a>00170 <span class="comment">         * @return AXIS2_SUCCESS if binding is performed</span>
<a name="l00171"></a>00171 <span class="comment">         */</span>
<a name="l00172"></a>00172         AXIS2_EXTERN axis2_status_t AXIS2_CALL
<a name="l00173"></a>00173         axutil_network_handler_bind_socket(<span class="keyword">const</span> <a class="code" href="structaxutil__env.html" title="Axis2 Environment struct.">axutil_env_t</a> *env, 
<a name="l00174"></a>00174                                                                         axis2_socket_t sock, <span class="keywordtype">int</span> port);
<a name="l00175"></a>00175 
<a name="l00176"></a>00176         <span class="comment">/* </span>
<a name="l00177"></a>00177 <span class="comment">         * Create a multicast socket for listening on the given port. </span>
<a name="l00178"></a>00178 <span class="comment">         * @param env a pointer to the env structure</span>
<a name="l00179"></a>00179 <span class="comment">         * @param port udp port to listen</span>
<a name="l00180"></a>00180 <span class="comment">         * @param mul_addr multicast address to join. The address should be valid and in dotted format.</span>
<a name="l00181"></a>00181 <span class="comment">         * @param ttl TTL value. </span>
<a name="l00182"></a>00182 <span class="comment">         * @return AXIS2_SUCCESS if everything goes well.s</span>
<a name="l00183"></a>00183 <span class="comment">         */</span>
<a name="l00184"></a>00184         AXIS2_EXTERN axis2_socket_t AXIS2_CALL
<a name="l00185"></a>00185         axutil_network_hadler_create_multicast_svr_socket(<span class="keyword">const</span> <a class="code" href="structaxutil__env.html" title="Axis2 Environment struct.">axutil_env_t</a> *env, 
<a name="l00186"></a>00186                                                                         <span class="keywordtype">int</span> port, axis2_char_t *mul_addr);
<a name="l00187"></a>00187 
<a name="l00190"></a>00190 <span class="preprocessor">#ifdef __cplusplus</span>
<a name="l00191"></a>00191 <span class="preprocessor"></span>}
<a name="l00192"></a>00192 <span class="preprocessor">#endif</span>
<a name="l00193"></a>00193 <span class="preprocessor"></span>
<a name="l00194"></a>00194 <span class="preprocessor">#endif                          </span><span class="comment">/* AXIS2_NETWORK_HANDLER_H */</span>
</pre></div><hr size="1"><address style="text-align: right;"><small>Generated on Fri Apr 17 11:49:42 2009 for Axis2/C by&nbsp;
<a href="http://www.doxygen.org/index.html">
<img src="doxygen.png" alt="doxygen" align="middle" border="0"></a> 1.5.3 </small></address>
</body>
</html>


<|start_filename|>xdocs/api/html/group__axis2__ctx.html<|end_filename|>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html><head><meta http-equiv="Content-Type" content="text/html;charset=UTF-8">
<title>Axis2/C: context</title>
<link href="doxygen.css" rel="stylesheet" type="text/css">
<link href="tabs.css" rel="stylesheet" type="text/css">
</head><body>
<!-- Generated by Doxygen 1.5.3 -->
<div class="tabs">
  <ul>
    <li><a href="index.html"><span>Main&nbsp;Page</span></a></li>
    <li><a href="modules.html"><span>Modules</span></a></li>
    <li><a href="annotated.html"><span>Classes</span></a></li>
    <li><a href="files.html"><span>Files</span></a></li>
    <li><a href="dirs.html"><span>Directories</span></a></li>
    <li><a href="pages.html"><span>Related&nbsp;Pages</span></a></li>
    <li><a href="examples.html"><span>Examples</span></a></li>
    <li>
      <form action="search.php" method="get">
        <table cellspacing="0" cellpadding="0" border="0">
          <tr>
            <td><label>&nbsp;<u>S</u>earch&nbsp;for&nbsp;</label></td>
            <td><input type="text" name="query" value="" size="20" accesskey="s"/></td>
          </tr>
        </table>
      </form>
    </li>
  </ul>
</div>
<h1>context<br>
<small>
[<a class="el" href="group__axis2__context.html">Context Hierarchy</a>]</small>
</h1><table border="0" cellpadding="0" cellspacing="0">
<tr><td></td></tr>
<tr><td colspan="2"><br><h2>Files</h2></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top">file &nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="axis2__ctx_8h.html">axis2_ctx.h</a></td></tr>

<tr><td colspan="2"><br><h2>Typedefs</h2></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top">typedef struct axis2_ctx&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__axis2__ctx.html#ga705ff779281577f08fef5330c23402c">axis2_ctx_t</a></td></tr>

<tr><td colspan="2"><br><h2>Functions</h2></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top">AXIS2_EXTERN <br>
<a class="el" href="group__axis2__ctx.html#ga705ff779281577f08fef5330c23402c">axis2_ctx_t</a> *&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__axis2__ctx.html#gcb5d8fd664562a2ddaf88cc3248e977e">axis2_ctx_create</a> (const <a class="el" href="structaxutil__env.html">axutil_env_t</a> *env)</td></tr>

<tr><td class="memItemLeft" nowrap align="right" valign="top">AXIS2_EXTERN <br>
axis2_status_t&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__axis2__ctx.html#g7cf1781574ed208e2ca552cde99501bb">axis2_ctx_set_property</a> (struct axis2_ctx *ctx, const <a class="el" href="structaxutil__env.html">axutil_env_t</a> *env, const axis2_char_t *key, axutil_property_t *value)</td></tr>

<tr><td class="memItemLeft" nowrap align="right" valign="top">AXIS2_EXTERN <br>
axutil_property_t *&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__axis2__ctx.html#g2344da02e08fe0a2b88b7bb5e21fafe8">axis2_ctx_get_property</a> (const <a class="el" href="group__axis2__ctx.html#ga705ff779281577f08fef5330c23402c">axis2_ctx_t</a> *ctx, const <a class="el" href="structaxutil__env.html">axutil_env_t</a> *env, const axis2_char_t *key)</td></tr>

<tr><td class="memItemLeft" nowrap align="right" valign="top">AXIS2_EXTERN <br>
<a class="el" href="group__axutil__hash.html#gb2d7d14db2de92a101573f44421ac12a">axutil_hash_t</a> *&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__axis2__ctx.html#gc516a4bacec4a38f5e201273b77781db">axis2_ctx_get_property_map</a> (const <a class="el" href="group__axis2__ctx.html#ga705ff779281577f08fef5330c23402c">axis2_ctx_t</a> *ctx, const <a class="el" href="structaxutil__env.html">axutil_env_t</a> *env)</td></tr>

<tr><td class="memItemLeft" nowrap align="right" valign="top">AXIS2_EXTERN <br>
<a class="el" href="group__axutil__hash.html#gb2d7d14db2de92a101573f44421ac12a">axutil_hash_t</a> *&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__axis2__ctx.html#gff927e494c30e1e2b89da57679285f49">axis2_ctx_get_all_properties</a> (const <a class="el" href="group__axis2__ctx.html#ga705ff779281577f08fef5330c23402c">axis2_ctx_t</a> *ctx, const <a class="el" href="structaxutil__env.html">axutil_env_t</a> *env)</td></tr>

<tr><td class="memItemLeft" nowrap align="right" valign="top">AXIS2_EXTERN void&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__axis2__ctx.html#g6cc540335eb01194fc20626e774f9991">axis2_ctx_free</a> (<a class="el" href="group__axis2__ctx.html#ga705ff779281577f08fef5330c23402c">axis2_ctx_t</a> *ctx, const <a class="el" href="structaxutil__env.html">axutil_env_t</a> *env)</td></tr>

<tr><td class="memItemLeft" nowrap align="right" valign="top">AXIS2_EXTERN <br>
axis2_status_t&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__axis2__ctx.html#gd1452d5b24ddbb87565e8b297f7e7fdc">axis2_ctx_set_property_map</a> (struct axis2_ctx *ctx, const <a class="el" href="structaxutil__env.html">axutil_env_t</a> *env, <a class="el" href="group__axutil__hash.html#gb2d7d14db2de92a101573f44421ac12a">axutil_hash_t</a> *map)</td></tr>

</table>
<hr><a name="_details"></a><h2>Detailed Description</h2>
context is the base struct of all the context related structs. This struct encapsulates the common operations and data for all context types. All the context types, configuration, service group, service and operation has the base of type context. <hr><h2>Typedef Documentation</h2>
<a class="anchor" name="ga705ff779281577f08fef5330c23402c"></a><!-- doxytag: member="axis2_ctx.h::axis2_ctx_t" ref="ga705ff779281577f08fef5330c23402c" args="" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">typedef struct axis2_ctx <a class="el" href="group__axis2__ctx.html#ga705ff779281577f08fef5330c23402c">axis2_ctx_t</a>          </td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
Type name for struct axis2_ctx 
</div>
</div><p>
<hr><h2>Function Documentation</h2>
<a class="anchor" name="gcb5d8fd664562a2ddaf88cc3248e977e"></a><!-- doxytag: member="axis2_ctx.h::axis2_ctx_create" ref="gcb5d8fd664562a2ddaf88cc3248e977e" args="(const axutil_env_t *env)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">AXIS2_EXTERN <a class="el" href="group__axis2__ctx.html#ga705ff779281577f08fef5330c23402c">axis2_ctx_t</a>* axis2_ctx_create           </td>
          <td>(</td>
          <td class="paramtype">const <a class="el" href="structaxutil__env.html">axutil_env_t</a> *&nbsp;</td>
          <td class="paramname"> <em>env</em>          </td>
          <td>&nbsp;)&nbsp;</td>
          <td width="100%"></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
Creates a context struct. <dl compact><dt><b>Parameters:</b></dt><dd>
  <table border="0" cellspacing="2" cellpadding="0">
    <tr><td valign="top"></td><td valign="top"><em>env</em>&nbsp;</td><td>pointer to environment struct </td></tr>
  </table>
</dl>
<dl class="return" compact><dt><b>Returns:</b></dt><dd>pointer to newly created context </dd></dl>

</div>
</div><p>
<a class="anchor" name="g6cc540335eb01194fc20626e774f9991"></a><!-- doxytag: member="axis2_ctx.h::axis2_ctx_free" ref="g6cc540335eb01194fc20626e774f9991" args="(axis2_ctx_t *ctx, const axutil_env_t *env)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">AXIS2_EXTERN void axis2_ctx_free           </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="group__axis2__ctx.html#ga705ff779281577f08fef5330c23402c">axis2_ctx_t</a> *&nbsp;</td>
          <td class="paramname"> <em>ctx</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const <a class="el" href="structaxutil__env.html">axutil_env_t</a> *&nbsp;</td>
          <td class="paramname"> <em>env</em></td><td>&nbsp;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td><td width="100%"></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
Frees context struct. <dl compact><dt><b>Parameters:</b></dt><dd>
  <table border="0" cellspacing="2" cellpadding="0">
    <tr><td valign="top"></td><td valign="top"><em>ctx</em>&nbsp;</td><td>pointer to context struct </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>env</em>&nbsp;</td><td>pointer to environment struct </td></tr>
  </table>
</dl>
<dl class="return" compact><dt><b>Returns:</b></dt><dd>void </dd></dl>

</div>
</div><p>
<a class="anchor" name="gff927e494c30e1e2b89da57679285f49"></a><!-- doxytag: member="axis2_ctx.h::axis2_ctx_get_all_properties" ref="gff927e494c30e1e2b89da57679285f49" args="(const axis2_ctx_t *ctx, const axutil_env_t *env)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">AXIS2_EXTERN <a class="el" href="group__axutil__hash.html#gb2d7d14db2de92a101573f44421ac12a">axutil_hash_t</a>* axis2_ctx_get_all_properties           </td>
          <td>(</td>
          <td class="paramtype">const <a class="el" href="group__axis2__ctx.html#ga705ff779281577f08fef5330c23402c">axis2_ctx_t</a> *&nbsp;</td>
          <td class="paramname"> <em>ctx</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const <a class="el" href="structaxutil__env.html">axutil_env_t</a> *&nbsp;</td>
          <td class="paramname"> <em>env</em></td><td>&nbsp;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td><td width="100%"></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
Gets all properties stored within context. <dl compact><dt><b>Parameters:</b></dt><dd>
  <table border="0" cellspacing="2" cellpadding="0">
    <tr><td valign="top"></td><td valign="top"><em>ctx</em>&nbsp;</td><td>pointer to context struct </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>env</em>&nbsp;</td><td>pointer to environment struct </td></tr>
  </table>
</dl>
<dl class="return" compact><dt><b>Returns:</b></dt><dd>pointer to hash table containing all properties </dd></dl>

</div>
</div><p>
<a class="anchor" name="g2344da02e08fe0a2b88b7bb5e21fafe8"></a><!-- doxytag: member="axis2_ctx.h::axis2_ctx_get_property" ref="g2344da02e08fe0a2b88b7bb5e21fafe8" args="(const axis2_ctx_t *ctx, const axutil_env_t *env, const axis2_char_t *key)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">AXIS2_EXTERN axutil_property_t* axis2_ctx_get_property           </td>
          <td>(</td>
          <td class="paramtype">const <a class="el" href="group__axis2__ctx.html#ga705ff779281577f08fef5330c23402c">axis2_ctx_t</a> *&nbsp;</td>
          <td class="paramname"> <em>ctx</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const <a class="el" href="structaxutil__env.html">axutil_env_t</a> *&nbsp;</td>
          <td class="paramname"> <em>env</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const axis2_char_t *&nbsp;</td>
          <td class="paramname"> <em>key</em></td><td>&nbsp;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td><td width="100%"></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
Gets the property with the given key. <dl compact><dt><b>Parameters:</b></dt><dd>
  <table border="0" cellspacing="2" cellpadding="0">
    <tr><td valign="top"></td><td valign="top"><em>ctx</em>&nbsp;</td><td>pointer to context struct </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>env</em>&nbsp;</td><td>pointer to environment struct </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>key</em>&nbsp;</td><td>key string </td></tr>
  </table>
</dl>
<dl class="return" compact><dt><b>Returns:</b></dt><dd>pointer to property struct corresponding to the given key </dd></dl>

</div>
</div><p>
<a class="anchor" name="gc516a4bacec4a38f5e201273b77781db"></a><!-- doxytag: member="axis2_ctx.h::axis2_ctx_get_property_map" ref="gc516a4bacec4a38f5e201273b77781db" args="(const axis2_ctx_t *ctx, const axutil_env_t *env)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">AXIS2_EXTERN <a class="el" href="group__axutil__hash.html#gb2d7d14db2de92a101573f44421ac12a">axutil_hash_t</a>* axis2_ctx_get_property_map           </td>
          <td>(</td>
          <td class="paramtype">const <a class="el" href="group__axis2__ctx.html#ga705ff779281577f08fef5330c23402c">axis2_ctx_t</a> *&nbsp;</td>
          <td class="paramname"> <em>ctx</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const <a class="el" href="structaxutil__env.html">axutil_env_t</a> *&nbsp;</td>
          <td class="paramname"> <em>env</em></td><td>&nbsp;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td><td width="100%"></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
Gets the non-persistent map of properties. <dl compact><dt><b>Parameters:</b></dt><dd>
  <table border="0" cellspacing="2" cellpadding="0">
    <tr><td valign="top"></td><td valign="top"><em>ctx</em>&nbsp;</td><td>pointer to context struct </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>env</em>&nbsp;</td><td>pointer to environment struct </td></tr>
  </table>
</dl>
<dl class="return" compact><dt><b>Returns:</b></dt><dd>pointer to the hash map which stores the non-persistent properties </dd></dl>

</div>
</div><p>
<a class="anchor" name="g7cf1781574ed208e2ca552cde99501bb"></a><!-- doxytag: member="axis2_ctx.h::axis2_ctx_set_property" ref="g7cf1781574ed208e2ca552cde99501bb" args="(struct axis2_ctx *ctx, const axutil_env_t *env, const axis2_char_t *key, axutil_property_t *value)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">AXIS2_EXTERN axis2_status_t axis2_ctx_set_property           </td>
          <td>(</td>
          <td class="paramtype">struct axis2_ctx *&nbsp;</td>
          <td class="paramname"> <em>ctx</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const <a class="el" href="structaxutil__env.html">axutil_env_t</a> *&nbsp;</td>
          <td class="paramname"> <em>env</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const axis2_char_t *&nbsp;</td>
          <td class="paramname"> <em>key</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">axutil_property_t *&nbsp;</td>
          <td class="paramname"> <em>value</em></td><td>&nbsp;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td><td width="100%"></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
Sets a property with the given key. <dl compact><dt><b>Parameters:</b></dt><dd>
  <table border="0" cellspacing="2" cellpadding="0">
    <tr><td valign="top"></td><td valign="top"><em>ctx</em>&nbsp;</td><td>pointer to context struct </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>env</em>&nbsp;</td><td>pointer to environment struct </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>key</em>&nbsp;</td><td>key string to store the property with </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>value</em>&nbsp;</td><td>pointer to property to be stored, context assumes the ownership of the property </td></tr>
  </table>
</dl>
<dl class="return" compact><dt><b>Returns:</b></dt><dd>AXIS2_SUCCESS on success, else AXIS2_FAILURE </dd></dl>

</div>
</div><p>
<a class="anchor" name="gd1452d5b24ddbb87565e8b297f7e7fdc"></a><!-- doxytag: member="axis2_ctx.h::axis2_ctx_set_property_map" ref="gd1452d5b24ddbb87565e8b297f7e7fdc" args="(struct axis2_ctx *ctx, const axutil_env_t *env, axutil_hash_t *map)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">AXIS2_EXTERN axis2_status_t axis2_ctx_set_property_map           </td>
          <td>(</td>
          <td class="paramtype">struct axis2_ctx *&nbsp;</td>
          <td class="paramname"> <em>ctx</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const <a class="el" href="structaxutil__env.html">axutil_env_t</a> *&nbsp;</td>
          <td class="paramname"> <em>env</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype"><a class="el" href="group__axutil__hash.html#gb2d7d14db2de92a101573f44421ac12a">axutil_hash_t</a> *&nbsp;</td>
          <td class="paramname"> <em>map</em></td><td>&nbsp;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td><td width="100%"></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
Sets non-persistent map of properties. <dl compact><dt><b>Parameters:</b></dt><dd>
  <table border="0" cellspacing="2" cellpadding="0">
    <tr><td valign="top"></td><td valign="top"><em>ctx</em>&nbsp;</td><td>pointer to context struct </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>env</em>&nbsp;</td><td>pointer to environment struct </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>map</em>&nbsp;</td><td>pointer to hash map, context assumes ownership of the map </td></tr>
  </table>
</dl>
<dl class="return" compact><dt><b>Returns:</b></dt><dd>AXIS2_SUCCESS on success, else AXIS2_FAILURE </dd></dl>

</div>
</div><p>
<hr size="1"><address style="text-align: right;"><small>Generated on Fri Apr 17 11:49:44 2009 for Axis2/C by&nbsp;
<a href="http://www.doxygen.org/index.html">
<img src="doxygen.png" alt="doxygen" align="middle" border="0"></a> 1.5.3 </small></address>
</body>
</html>


<|start_filename|>xdocs/api/html/group__axis2__config.html<|end_filename|>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html><head><meta http-equiv="Content-Type" content="text/html;charset=UTF-8">
<title>Axis2/C: configuration</title>
<link href="doxygen.css" rel="stylesheet" type="text/css">
<link href="tabs.css" rel="stylesheet" type="text/css">
</head><body>
<!-- Generated by Doxygen 1.5.3 -->
<div class="tabs">
  <ul>
    <li><a href="index.html"><span>Main&nbsp;Page</span></a></li>
    <li><a href="modules.html"><span>Modules</span></a></li>
    <li><a href="annotated.html"><span>Classes</span></a></li>
    <li><a href="files.html"><span>Files</span></a></li>
    <li><a href="dirs.html"><span>Directories</span></a></li>
    <li><a href="pages.html"><span>Related&nbsp;Pages</span></a></li>
    <li><a href="examples.html"><span>Examples</span></a></li>
    <li>
      <form action="search.php" method="get">
        <table cellspacing="0" cellpadding="0" border="0">
          <tr>
            <td><label>&nbsp;<u>S</u>earch&nbsp;for&nbsp;</label></td>
            <td><input type="text" name="query" value="" size="20" accesskey="s"/></td>
          </tr>
        </table>
      </form>
    </li>
  </ul>
</div>
<h1>configuration<br>
<small>
[<a class="el" href="group__axis2__engine.html">engine</a>]</small>
</h1><table border="0" cellpadding="0" cellspacing="0">
<tr><td></td></tr>
<tr><td colspan="2"><br><h2>Typedefs</h2></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top">typedef struct axis2_conf&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__axis2__config.html#gd32db334e748bbdcaebd55156e493d3b">axis2_conf_t</a></td></tr>

<tr><td colspan="2"><br><h2>Functions</h2></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top">AXIS2_EXTERN void&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__axis2__config.html#g06062b4f3ea3a4fb05c0e55d76f6ca8c">axis2_conf_free</a> (<a class="el" href="group__axis2__config.html#gd32db334e748bbdcaebd55156e493d3b">axis2_conf_t</a> *conf, const <a class="el" href="structaxutil__env.html">axutil_env_t</a> *env)</td></tr>

<tr><td class="memItemLeft" nowrap align="right" valign="top">AXIS2_EXTERN <br>
axis2_status_t&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__axis2__config.html#gf1d556bc4c78ed899213d9b863834209">axis2_conf_add_svc_grp</a> (<a class="el" href="group__axis2__config.html#gd32db334e748bbdcaebd55156e493d3b">axis2_conf_t</a> *conf, const <a class="el" href="structaxutil__env.html">axutil_env_t</a> *env, struct axis2_svc_grp *svc_grp)</td></tr>

<tr><td class="memItemLeft" nowrap align="right" valign="top">AXIS2_EXTERN struct <br>
axis2_svc_grp *&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__axis2__config.html#g0a81de08c7d260307dce83727e7fbb6c">axis2_conf_get_svc_grp</a> (const <a class="el" href="group__axis2__config.html#gd32db334e748bbdcaebd55156e493d3b">axis2_conf_t</a> *conf, const <a class="el" href="structaxutil__env.html">axutil_env_t</a> *env, const axis2_char_t *svc_grp_name)</td></tr>

<tr><td class="memItemLeft" nowrap align="right" valign="top">AXIS2_EXTERN <br>
<a class="el" href="group__axutil__hash.html#gb2d7d14db2de92a101573f44421ac12a">axutil_hash_t</a> *&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__axis2__config.html#g51f16242864d15ff2d77442615d51832">axis2_conf_get_all_svc_grps</a> (const <a class="el" href="group__axis2__config.html#gd32db334e748bbdcaebd55156e493d3b">axis2_conf_t</a> *conf, const <a class="el" href="structaxutil__env.html">axutil_env_t</a> *env)</td></tr>

<tr><td class="memItemLeft" nowrap align="right" valign="top">AXIS2_EXTERN <br>
axis2_status_t&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__axis2__config.html#gfc6aefecf137595736194e704c8849e6">axis2_conf_add_svc</a> (<a class="el" href="group__axis2__config.html#gd32db334e748bbdcaebd55156e493d3b">axis2_conf_t</a> *conf, const <a class="el" href="structaxutil__env.html">axutil_env_t</a> *env, struct axis2_svc *svc)</td></tr>

<tr><td class="memItemLeft" nowrap align="right" valign="top">AXIS2_EXTERN struct <br>
axis2_svc *&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__axis2__config.html#g52a73101f2e0fead3788761b4b32fb6f">axis2_conf_get_svc</a> (const <a class="el" href="group__axis2__config.html#gd32db334e748bbdcaebd55156e493d3b">axis2_conf_t</a> *conf, const <a class="el" href="structaxutil__env.html">axutil_env_t</a> *env, const axis2_char_t *svc_name)</td></tr>

<tr><td class="memItemLeft" nowrap align="right" valign="top">AXIS2_EXTERN <br>
axis2_status_t&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__axis2__config.html#gd35639715fb90bc32ea9f04cbfaffede">axis2_conf_remove_svc</a> (<a class="el" href="group__axis2__config.html#gd32db334e748bbdcaebd55156e493d3b">axis2_conf_t</a> *conf, const <a class="el" href="structaxutil__env.html">axutil_env_t</a> *env, const axis2_char_t *name)</td></tr>

<tr><td class="memItemLeft" nowrap align="right" valign="top">AXIS2_EXTERN <br>
axis2_status_t&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__axis2__config.html#g03227082f8dcb6d49c70ae123224618d">axis2_conf_add_param</a> (<a class="el" href="group__axis2__config.html#gd32db334e748bbdcaebd55156e493d3b">axis2_conf_t</a> *conf, const <a class="el" href="structaxutil__env.html">axutil_env_t</a> *env, axutil_param_t *param)</td></tr>

<tr><td class="memItemLeft" nowrap align="right" valign="top">AXIS2_EXTERN <br>
axutil_param_t *&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__axis2__config.html#g1335e3c90eb343f5a06ad1cdc761f638">axis2_conf_get_param</a> (const <a class="el" href="group__axis2__config.html#gd32db334e748bbdcaebd55156e493d3b">axis2_conf_t</a> *conf, const <a class="el" href="structaxutil__env.html">axutil_env_t</a> *env, const axis2_char_t *name)</td></tr>

<tr><td class="memItemLeft" nowrap align="right" valign="top">AXIS2_EXTERN <br>
<a class="el" href="group__axutil__array__list.html#g1a6a89777db876cfa0cc86787b7be6a0">axutil_array_list_t</a> *&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__axis2__config.html#g2cf688584fa948c9ffaf8e5b9b7747e4">axis2_conf_get_all_params</a> (const <a class="el" href="group__axis2__config.html#gd32db334e748bbdcaebd55156e493d3b">axis2_conf_t</a> *conf, const <a class="el" href="structaxutil__env.html">axutil_env_t</a> *env)</td></tr>

<tr><td class="memItemLeft" nowrap align="right" valign="top">AXIS2_EXTERN axis2_bool_t&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__axis2__config.html#g8fe2754bf14d3965c99a32b92909cb1d">axis2_conf_is_param_locked</a> (const <a class="el" href="group__axis2__config.html#gd32db334e748bbdcaebd55156e493d3b">axis2_conf_t</a> *conf, const <a class="el" href="structaxutil__env.html">axutil_env_t</a> *env, const axis2_char_t *param_name)</td></tr>

<tr><td class="memItemLeft" nowrap align="right" valign="top">AXIS2_EXTERN <br>
<a class="el" href="group__axis2__transport__in__desc.html#g9185c8c5307454b74f49523666f7bda6">axis2_transport_in_desc_t</a> *&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__axis2__config.html#gbb3c960284024e19b4587a8bfe2f54d8">axis2_conf_get_transport_in</a> (const <a class="el" href="group__axis2__config.html#gd32db334e748bbdcaebd55156e493d3b">axis2_conf_t</a> *conf, const <a class="el" href="structaxutil__env.html">axutil_env_t</a> *env, const AXIS2_TRANSPORT_ENUMS trans_enum)</td></tr>

<tr><td class="memItemLeft" nowrap align="right" valign="top">AXIS2_EXTERN <br>
axis2_status_t&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__axis2__config.html#g78048cf013c8a2441862164f9aaaedbe">axis2_conf_add_transport_in</a> (<a class="el" href="group__axis2__config.html#gd32db334e748bbdcaebd55156e493d3b">axis2_conf_t</a> *conf, const <a class="el" href="structaxutil__env.html">axutil_env_t</a> *env, <a class="el" href="group__axis2__transport__in__desc.html#g9185c8c5307454b74f49523666f7bda6">axis2_transport_in_desc_t</a> *transport, const AXIS2_TRANSPORT_ENUMS trans_enum)</td></tr>

<tr><td class="memItemLeft" nowrap align="right" valign="top">AXIS2_EXTERN <br>
<a class="el" href="group__axis2__transport__out__desc.html#g30caf90fd8fb7b0c89700bcb12e250df">axis2_transport_out_desc_t</a> *&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__axis2__config.html#gaf9cf73e931cfb1fcb70206de2adaa26">axis2_conf_get_transport_out</a> (const <a class="el" href="group__axis2__config.html#gd32db334e748bbdcaebd55156e493d3b">axis2_conf_t</a> *conf, const <a class="el" href="structaxutil__env.html">axutil_env_t</a> *env, const AXIS2_TRANSPORT_ENUMS trans_enum)</td></tr>

<tr><td class="memItemLeft" nowrap align="right" valign="top">AXIS2_EXTERN <br>
axis2_status_t&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__axis2__config.html#gec80422b458c7baf542450a6b0d6a87e">axis2_conf_add_transport_out</a> (<a class="el" href="group__axis2__config.html#gd32db334e748bbdcaebd55156e493d3b">axis2_conf_t</a> *conf, const <a class="el" href="structaxutil__env.html">axutil_env_t</a> *env, <a class="el" href="group__axis2__transport__out__desc.html#g30caf90fd8fb7b0c89700bcb12e250df">axis2_transport_out_desc_t</a> *transport, const AXIS2_TRANSPORT_ENUMS trans_enum)</td></tr>

<tr><td class="memItemLeft" nowrap align="right" valign="top">AXIS2_EXTERN <br>
<a class="el" href="group__axis2__transport__in__desc.html#g9185c8c5307454b74f49523666f7bda6">axis2_transport_in_desc_t</a> **&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__axis2__config.html#g287e0d1e671665be290f523539f370d6">axis2_conf_get_all_in_transports</a> (const <a class="el" href="group__axis2__config.html#gd32db334e748bbdcaebd55156e493d3b">axis2_conf_t</a> *conf, const <a class="el" href="structaxutil__env.html">axutil_env_t</a> *env)</td></tr>

<tr><td class="memItemLeft" nowrap align="right" valign="top">AXIS2_EXTERN <br>
<a class="el" href="group__axis2__transport__out__desc.html#g30caf90fd8fb7b0c89700bcb12e250df">axis2_transport_out_desc_t</a> **&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__axis2__config.html#g2e5723e559a264f763e22e898990a63c">axis2_conf_get_all_out_transports</a> (const <a class="el" href="group__axis2__config.html#gd32db334e748bbdcaebd55156e493d3b">axis2_conf_t</a> *conf, const <a class="el" href="structaxutil__env.html">axutil_env_t</a> *env)</td></tr>

<tr><td class="memItemLeft" nowrap align="right" valign="top">AXIS2_EXTERN struct <br>
axis2_module_desc *&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__axis2__config.html#g0821f7d4a53d5731c23d9be80fd5cbe0">axis2_conf_get_module</a> (const <a class="el" href="group__axis2__config.html#gd32db334e748bbdcaebd55156e493d3b">axis2_conf_t</a> *conf, const <a class="el" href="structaxutil__env.html">axutil_env_t</a> *env, const axutil_qname_t *qname)</td></tr>

<tr><td class="memItemLeft" nowrap align="right" valign="top">AXIS2_EXTERN <br>
<a class="el" href="group__axutil__array__list.html#g1a6a89777db876cfa0cc86787b7be6a0">axutil_array_list_t</a> *&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__axis2__config.html#ge2aa21b6ff10d77d3180459b7e22ebc1">axis2_conf_get_all_engaged_modules</a> (const <a class="el" href="group__axis2__config.html#gd32db334e748bbdcaebd55156e493d3b">axis2_conf_t</a> *conf, const <a class="el" href="structaxutil__env.html">axutil_env_t</a> *env)</td></tr>

<tr><td class="memItemLeft" nowrap align="right" valign="top">AXIS2_EXTERN <br>
<a class="el" href="group__axutil__array__list.html#g1a6a89777db876cfa0cc86787b7be6a0">axutil_array_list_t</a> *&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__axis2__config.html#g39916547b5444449bcd1a87f3a37111d">axis2_conf_get_in_phases_upto_and_including_post_dispatch</a> (const <a class="el" href="group__axis2__config.html#gd32db334e748bbdcaebd55156e493d3b">axis2_conf_t</a> *conf, const <a class="el" href="structaxutil__env.html">axutil_env_t</a> *env)</td></tr>

<tr><td class="memItemLeft" nowrap align="right" valign="top">AXIS2_EXTERN <br>
<a class="el" href="group__axutil__array__list.html#g1a6a89777db876cfa0cc86787b7be6a0">axutil_array_list_t</a> *&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__axis2__config.html#g9c2c12ce9e298ae1255d698b0c101f98">axis2_conf_get_out_flow</a> (const <a class="el" href="group__axis2__config.html#gd32db334e748bbdcaebd55156e493d3b">axis2_conf_t</a> *conf, const <a class="el" href="structaxutil__env.html">axutil_env_t</a> *env)</td></tr>

<tr><td class="memItemLeft" nowrap align="right" valign="top">AXIS2_EXTERN <br>
<a class="el" href="group__axutil__array__list.html#g1a6a89777db876cfa0cc86787b7be6a0">axutil_array_list_t</a> *&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__axis2__config.html#g90731a7c7f62c1fc619074a50c43450d">axis2_conf_get_in_fault_flow</a> (const <a class="el" href="group__axis2__config.html#gd32db334e748bbdcaebd55156e493d3b">axis2_conf_t</a> *conf, const <a class="el" href="structaxutil__env.html">axutil_env_t</a> *env)</td></tr>

<tr><td class="memItemLeft" nowrap align="right" valign="top">AXIS2_EXTERN <br>
<a class="el" href="group__axutil__array__list.html#g1a6a89777db876cfa0cc86787b7be6a0">axutil_array_list_t</a> *&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__axis2__config.html#gd14aad417357ead8d2080d5798e884fe">axis2_conf_get_out_fault_flow</a> (const <a class="el" href="group__axis2__config.html#gd32db334e748bbdcaebd55156e493d3b">axis2_conf_t</a> *conf, const <a class="el" href="structaxutil__env.html">axutil_env_t</a> *env)</td></tr>

<tr><td class="memItemLeft" nowrap align="right" valign="top">AXIS2_EXTERN <br>
<a class="el" href="group__axutil__hash.html#gb2d7d14db2de92a101573f44421ac12a">axutil_hash_t</a> *&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__axis2__config.html#g9024b3f7f97461ba822eebc7d6c1a812">axis2_conf_get_all_faulty_svcs</a> (const <a class="el" href="group__axis2__config.html#gd32db334e748bbdcaebd55156e493d3b">axis2_conf_t</a> *conf, const <a class="el" href="structaxutil__env.html">axutil_env_t</a> *env)</td></tr>

<tr><td class="memItemLeft" nowrap align="right" valign="top">AXIS2_EXTERN <br>
<a class="el" href="group__axutil__hash.html#gb2d7d14db2de92a101573f44421ac12a">axutil_hash_t</a> *&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__axis2__config.html#g12b5a698718da795312b3e09fdeac1c4">axis2_conf_get_all_faulty_modules</a> (const <a class="el" href="group__axis2__config.html#gd32db334e748bbdcaebd55156e493d3b">axis2_conf_t</a> *conf, const <a class="el" href="structaxutil__env.html">axutil_env_t</a> *env)</td></tr>

<tr><td class="memItemLeft" nowrap align="right" valign="top">AXIS2_EXTERN <br>
<a class="el" href="group__axutil__hash.html#gb2d7d14db2de92a101573f44421ac12a">axutil_hash_t</a> *&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__axis2__config.html#gb3d4be2ef73eee238915c80a8f9b155c">axis2_conf_get_all_svcs</a> (const <a class="el" href="group__axis2__config.html#gd32db334e748bbdcaebd55156e493d3b">axis2_conf_t</a> *conf, const <a class="el" href="structaxutil__env.html">axutil_env_t</a> *env)</td></tr>

<tr><td class="memItemLeft" nowrap align="right" valign="top">AXIS2_EXTERN <br>
<a class="el" href="group__axutil__hash.html#gb2d7d14db2de92a101573f44421ac12a">axutil_hash_t</a> *&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__axis2__config.html#g4e60a26bae6ab18adf601fc3dc0ccd6d">axis2_conf_get_all_svcs_to_load</a> (const <a class="el" href="group__axis2__config.html#gd32db334e748bbdcaebd55156e493d3b">axis2_conf_t</a> *conf, const <a class="el" href="structaxutil__env.html">axutil_env_t</a> *env)</td></tr>

<tr><td class="memItemLeft" nowrap align="right" valign="top">AXIS2_EXTERN axis2_bool_t&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__axis2__config.html#g7756e8038846da3d822c690279ecfcc6">axis2_conf_is_engaged</a> (<a class="el" href="group__axis2__config.html#gd32db334e748bbdcaebd55156e493d3b">axis2_conf_t</a> *conf, const <a class="el" href="structaxutil__env.html">axutil_env_t</a> *env, const axutil_qname_t *module_name)</td></tr>

<tr><td class="memItemLeft" nowrap align="right" valign="top">AXIS2_EXTERN struct <br>
axis2_phases_info *&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__axis2__config.html#ged50d579ca49af8a25416470012edc14">axis2_conf_get_phases_info</a> (const <a class="el" href="group__axis2__config.html#gd32db334e748bbdcaebd55156e493d3b">axis2_conf_t</a> *conf, const <a class="el" href="structaxutil__env.html">axutil_env_t</a> *env)</td></tr>

<tr><td class="memItemLeft" nowrap align="right" valign="top">AXIS2_EXTERN <br>
axis2_status_t&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__axis2__config.html#g7a51cf9382faf1e4d2cb9440cea1eb83">axis2_conf_set_phases_info</a> (<a class="el" href="group__axis2__config.html#gd32db334e748bbdcaebd55156e493d3b">axis2_conf_t</a> *conf, const <a class="el" href="structaxutil__env.html">axutil_env_t</a> *env, struct axis2_phases_info *phases_info)</td></tr>

<tr><td class="memItemLeft" nowrap align="right" valign="top">AXIS2_EXTERN <br>
axis2_status_t&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__axis2__config.html#g2563c430243b6cce5142109b1f7fae84">axis2_conf_add_msg_recv</a> (<a class="el" href="group__axis2__config.html#gd32db334e748bbdcaebd55156e493d3b">axis2_conf_t</a> *conf, const <a class="el" href="structaxutil__env.html">axutil_env_t</a> *env, const axis2_char_t *key, struct axis2_msg_recv *msg_recv)</td></tr>

<tr><td class="memItemLeft" nowrap align="right" valign="top">AXIS2_EXTERN struct <br>
axis2_msg_recv *&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__axis2__config.html#g569170784a8f375728854f94d035509d">axis2_conf_get_msg_recv</a> (const <a class="el" href="group__axis2__config.html#gd32db334e748bbdcaebd55156e493d3b">axis2_conf_t</a> *conf, const <a class="el" href="structaxutil__env.html">axutil_env_t</a> *env, axis2_char_t *key)</td></tr>

<tr><td class="memItemLeft" nowrap align="right" valign="top">AXIS2_EXTERN <br>
axis2_status_t&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__axis2__config.html#g70e492fdfb83180cab77006979ce10e0">axis2_conf_set_out_phases</a> (<a class="el" href="group__axis2__config.html#gd32db334e748bbdcaebd55156e493d3b">axis2_conf_t</a> *conf, const <a class="el" href="structaxutil__env.html">axutil_env_t</a> *env, <a class="el" href="group__axutil__array__list.html#g1a6a89777db876cfa0cc86787b7be6a0">axutil_array_list_t</a> *out_phases)</td></tr>

<tr><td class="memItemLeft" nowrap align="right" valign="top">AXIS2_EXTERN <br>
<a class="el" href="group__axutil__array__list.html#g1a6a89777db876cfa0cc86787b7be6a0">axutil_array_list_t</a> *&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__axis2__config.html#gdf15d7aa810a6d812818d3ac00085537">axis2_conf_get_out_phases</a> (const <a class="el" href="group__axis2__config.html#gd32db334e748bbdcaebd55156e493d3b">axis2_conf_t</a> *conf, const <a class="el" href="structaxutil__env.html">axutil_env_t</a> *env)</td></tr>

<tr><td class="memItemLeft" nowrap align="right" valign="top">AXIS2_EXTERN <br>
axis2_status_t&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__axis2__config.html#gb9219d57c1060b93d19a39cc95ced711">axis2_conf_set_in_fault_phases</a> (<a class="el" href="group__axis2__config.html#gd32db334e748bbdcaebd55156e493d3b">axis2_conf_t</a> *conf, const <a class="el" href="structaxutil__env.html">axutil_env_t</a> *env, <a class="el" href="group__axutil__array__list.html#g1a6a89777db876cfa0cc86787b7be6a0">axutil_array_list_t</a> *list)</td></tr>

<tr><td class="memItemLeft" nowrap align="right" valign="top">AXIS2_EXTERN <br>
axis2_status_t&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__axis2__config.html#g4c4a1f282d942f596e29fb2699afff42">axis2_conf_set_out_fault_phases</a> (<a class="el" href="group__axis2__config.html#gd32db334e748bbdcaebd55156e493d3b">axis2_conf_t</a> *conf, const <a class="el" href="structaxutil__env.html">axutil_env_t</a> *env, <a class="el" href="group__axutil__array__list.html#g1a6a89777db876cfa0cc86787b7be6a0">axutil_array_list_t</a> *list)</td></tr>

<tr><td class="memItemLeft" nowrap align="right" valign="top">AXIS2_EXTERN <br>
<a class="el" href="group__axutil__hash.html#gb2d7d14db2de92a101573f44421ac12a">axutil_hash_t</a> *&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__axis2__config.html#gae78d7f53b928733081821be9c869c86">axis2_conf_get_all_modules</a> (const <a class="el" href="group__axis2__config.html#gd32db334e748bbdcaebd55156e493d3b">axis2_conf_t</a> *conf, const <a class="el" href="structaxutil__env.html">axutil_env_t</a> *env)</td></tr>

<tr><td class="memItemLeft" nowrap align="right" valign="top">AXIS2_EXTERN <br>
axis2_status_t&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__axis2__config.html#gd1f8225ed64ad78477b72eacd8f6a48a">axis2_conf_add_module</a> (<a class="el" href="group__axis2__config.html#gd32db334e748bbdcaebd55156e493d3b">axis2_conf_t</a> *conf, const <a class="el" href="structaxutil__env.html">axutil_env_t</a> *env, struct axis2_module_desc *module)</td></tr>

<tr><td class="memItemLeft" nowrap align="right" valign="top">AXIS2_EXTERN <br>
axis2_status_t&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__axis2__config.html#g325b14f8715288333af6003ece30414d">axis2_conf_set_default_dispatchers</a> (<a class="el" href="group__axis2__config.html#gd32db334e748bbdcaebd55156e493d3b">axis2_conf_t</a> *conf, const <a class="el" href="structaxutil__env.html">axutil_env_t</a> *env)</td></tr>

<tr><td class="memItemLeft" nowrap align="right" valign="top">AXIS2_EXTERN <br>
axis2_status_t&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__axis2__config.html#g131077965ba3a728525239560327a9e5">axis2_conf_set_dispatch_phase</a> (<a class="el" href="group__axis2__config.html#gd32db334e748bbdcaebd55156e493d3b">axis2_conf_t</a> *conf, const <a class="el" href="structaxutil__env.html">axutil_env_t</a> *env, <a class="el" href="group__axis2__phase.html#gbd87daad5497d3a4d756e20c008e3ac4">axis2_phase_t</a> *dispatch)</td></tr>

<tr><td class="memItemLeft" nowrap align="right" valign="top">AXIS2_EXTERN const <br>
axis2_char_t *&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__axis2__config.html#ge352936161aa818a3b9b6b812851be01">axis2_conf_get_repo</a> (const <a class="el" href="group__axis2__config.html#gd32db334e748bbdcaebd55156e493d3b">axis2_conf_t</a> *conf, const <a class="el" href="structaxutil__env.html">axutil_env_t</a> *env)</td></tr>

<tr><td class="memItemLeft" nowrap align="right" valign="top">AXIS2_EXTERN <br>
axis2_status_t&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__axis2__config.html#g9b73dd9150ace3dca82364a4c77e0f7a">axis2_conf_set_repo</a> (<a class="el" href="group__axis2__config.html#gd32db334e748bbdcaebd55156e493d3b">axis2_conf_t</a> *conf, const <a class="el" href="structaxutil__env.html">axutil_env_t</a> *env, axis2_char_t *axis2_repo)</td></tr>

<tr><td class="memItemLeft" nowrap align="right" valign="top">AXIS2_EXTERN const <br>
axis2_char_t *&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__axis2__config.html#ga0d096c494a2ad9eb24767275d0baa7e">axis2_conf_get_axis2_xml</a> (const <a class="el" href="group__axis2__config.html#gd32db334e748bbdcaebd55156e493d3b">axis2_conf_t</a> *conf, const <a class="el" href="structaxutil__env.html">axutil_env_t</a> *env)</td></tr>

<tr><td class="memItemLeft" nowrap align="right" valign="top">AXIS2_EXTERN <br>
axis2_status_t&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__axis2__config.html#g9752b59114c2e54f0df629ffe9c27657">axis2_conf_set_axis2_xml</a> (<a class="el" href="group__axis2__config.html#gd32db334e748bbdcaebd55156e493d3b">axis2_conf_t</a> *conf, const <a class="el" href="structaxutil__env.html">axutil_env_t</a> *env, axis2_char_t *axis2_xml)</td></tr>

<tr><td class="memItemLeft" nowrap align="right" valign="top">AXIS2_EXTERN <br>
axis2_status_t&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__axis2__config.html#gd606b44f38e986772f34e7eea44f1213">axis2_conf_engage_module</a> (<a class="el" href="group__axis2__config.html#gd32db334e748bbdcaebd55156e493d3b">axis2_conf_t</a> *conf, const <a class="el" href="structaxutil__env.html">axutil_env_t</a> *env, const axutil_qname_t *module_ref)</td></tr>

<tr><td class="memItemLeft" nowrap align="right" valign="top">AXIS2_EXTERN <br>
axis2_status_t&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__axis2__config.html#gddbe656d37ee7d94bdfbaa1a3f293bbd">axis2_conf_set_dep_engine</a> (<a class="el" href="group__axis2__config.html#gd32db334e748bbdcaebd55156e493d3b">axis2_conf_t</a> *conf, const <a class="el" href="structaxutil__env.html">axutil_env_t</a> *env, struct axis2_dep_engine *dep_engine)</td></tr>

<tr><td class="memItemLeft" nowrap align="right" valign="top">AXIS2_EXTERN const <br>
axis2_char_t *&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__axis2__config.html#gc57b44693b7d2a19e2268c5860105eb5">axis2_conf_get_default_module_version</a> (const <a class="el" href="group__axis2__config.html#gd32db334e748bbdcaebd55156e493d3b">axis2_conf_t</a> *conf, const <a class="el" href="structaxutil__env.html">axutil_env_t</a> *env, const axis2_char_t *module_name)</td></tr>

<tr><td class="memItemLeft" nowrap align="right" valign="top">AXIS2_EXTERN struct <br>
axis2_module_desc *&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__axis2__config.html#gcc150b948c4762e423777fe2f622fba0">axis2_conf_get_default_module</a> (const <a class="el" href="group__axis2__config.html#gd32db334e748bbdcaebd55156e493d3b">axis2_conf_t</a> *conf, const <a class="el" href="structaxutil__env.html">axutil_env_t</a> *env, const axis2_char_t *module_name)</td></tr>

<tr><td class="memItemLeft" nowrap align="right" valign="top">AXIS2_EXTERN <br>
axis2_status_t&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__axis2__config.html#g0f7af7f98fa7f8b51d0ec1fd729fde6b">axis2_conf_add_default_module_version</a> (<a class="el" href="group__axis2__config.html#gd32db334e748bbdcaebd55156e493d3b">axis2_conf_t</a> *conf, const <a class="el" href="structaxutil__env.html">axutil_env_t</a> *env, const axis2_char_t *module_name, const axis2_char_t *module_version)</td></tr>

<tr><td class="memItemLeft" nowrap align="right" valign="top">AXIS2_EXTERN <br>
axis2_status_t&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__axis2__config.html#g437349fa6fb067fc0cf6b23f731e5b5b">axis2_conf_engage_module_with_version</a> (<a class="el" href="group__axis2__config.html#gd32db334e748bbdcaebd55156e493d3b">axis2_conf_t</a> *conf, const <a class="el" href="structaxutil__env.html">axutil_env_t</a> *env, const axis2_char_t *module_name, const axis2_char_t *version_id)</td></tr>

<tr><td class="memItemLeft" nowrap align="right" valign="top">AXIS2_EXTERN <br>
<a class="el" href="group__axis2__config.html#gd32db334e748bbdcaebd55156e493d3b">axis2_conf_t</a> *&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__axis2__config.html#g87f521276d7d6dfde72b289121c80a79">axis2_conf_create</a> (const <a class="el" href="structaxutil__env.html">axutil_env_t</a> *env)</td></tr>

<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="g5c41a261d23542a2df0e94da5920c993"></a><!-- doxytag: member="axis2_config::axis2_conf_get_enable_mtom" ref="g5c41a261d23542a2df0e94da5920c993" args="(axis2_conf_t *conf, const axutil_env_t *env)" -->
AXIS2_EXTERN axis2_bool_t&nbsp;</td><td class="memItemRight" valign="bottom"><b>axis2_conf_get_enable_mtom</b> (<a class="el" href="group__axis2__config.html#gd32db334e748bbdcaebd55156e493d3b">axis2_conf_t</a> *conf, const <a class="el" href="structaxutil__env.html">axutil_env_t</a> *env)</td></tr>

<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="g15bbcb1d467b2d394ad101afc7c68530"></a><!-- doxytag: member="axis2_config::axis2_conf_set_enable_mtom" ref="g15bbcb1d467b2d394ad101afc7c68530" args="(axis2_conf_t *conf, const axutil_env_t *env, axis2_bool_t enable_mtom)" -->
AXIS2_EXTERN <br>
axis2_status_t&nbsp;</td><td class="memItemRight" valign="bottom"><b>axis2_conf_set_enable_mtom</b> (<a class="el" href="group__axis2__config.html#gd32db334e748bbdcaebd55156e493d3b">axis2_conf_t</a> *conf, const <a class="el" href="structaxutil__env.html">axutil_env_t</a> *env, axis2_bool_t enable_mtom)</td></tr>

<tr><td class="memItemLeft" nowrap align="right" valign="top">AXIS2_EXTERN axis2_bool_t&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__axis2__config.html#g5ec35a0f6f9bd8d6c179b74e27c1a22f">axis2_conf_get_axis2_flag</a> (<a class="el" href="group__axis2__config.html#gd32db334e748bbdcaebd55156e493d3b">axis2_conf_t</a> *conf, const <a class="el" href="structaxutil__env.html">axutil_env_t</a> *env)</td></tr>

<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="ga50c055fdc6e639f274aaf9972d92ade"></a><!-- doxytag: member="axis2_config::axis2_conf_set_axis2_flag" ref="ga50c055fdc6e639f274aaf9972d92ade" args="(axis2_conf_t *conf, const axutil_env_t *env, axis2_bool_t axis2_flag)" -->
AXIS2_EXTERN <br>
axis2_status_t&nbsp;</td><td class="memItemRight" valign="bottom"><b>axis2_conf_set_axis2_flag</b> (<a class="el" href="group__axis2__config.html#gd32db334e748bbdcaebd55156e493d3b">axis2_conf_t</a> *conf, const <a class="el" href="structaxutil__env.html">axutil_env_t</a> *env, axis2_bool_t axis2_flag)</td></tr>

<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="g9ce5a88eaac674320f4b67dabf634026"></a><!-- doxytag: member="axis2_config::axis2_conf_get_enable_security" ref="g9ce5a88eaac674320f4b67dabf634026" args="(axis2_conf_t *conf, const axutil_env_t *env)" -->
AXIS2_EXTERN axis2_bool_t&nbsp;</td><td class="memItemRight" valign="bottom"><b>axis2_conf_get_enable_security</b> (<a class="el" href="group__axis2__config.html#gd32db334e748bbdcaebd55156e493d3b">axis2_conf_t</a> *conf, const <a class="el" href="structaxutil__env.html">axutil_env_t</a> *env)</td></tr>

<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="g11191aa7774fd9d4b441d773735e7096"></a><!-- doxytag: member="axis2_config::axis2_conf_set_enable_security" ref="g11191aa7774fd9d4b441d773735e7096" args="(axis2_conf_t *conf, const axutil_env_t *env, axis2_bool_t enable_security)" -->
AXIS2_EXTERN <br>
axis2_status_t&nbsp;</td><td class="memItemRight" valign="bottom"><b>axis2_conf_set_enable_security</b> (<a class="el" href="group__axis2__config.html#gd32db334e748bbdcaebd55156e493d3b">axis2_conf_t</a> *conf, const <a class="el" href="structaxutil__env.html">axutil_env_t</a> *env, axis2_bool_t enable_security)</td></tr>

<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="g05611c63df4255acffa7b684ba995afe"></a><!-- doxytag: member="axis2_config::axis2_conf_get_security_context" ref="g05611c63df4255acffa7b684ba995afe" args="(axis2_conf_t *conf, const axutil_env_t *env)" -->
AXIS2_EXTERN void *&nbsp;</td><td class="memItemRight" valign="bottom"><b>axis2_conf_get_security_context</b> (<a class="el" href="group__axis2__config.html#gd32db334e748bbdcaebd55156e493d3b">axis2_conf_t</a> *conf, const <a class="el" href="structaxutil__env.html">axutil_env_t</a> *env)</td></tr>

<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="g8fe9cfa417c2e423b0ee6973cde58231"></a><!-- doxytag: member="axis2_config::axis2_conf_set_security_context" ref="g8fe9cfa417c2e423b0ee6973cde58231" args="(axis2_conf_t *conf, const axutil_env_t *env, void *security_context)" -->
AXIS2_EXTERN <br>
axis2_status_t&nbsp;</td><td class="memItemRight" valign="bottom"><b>axis2_conf_set_security_context</b> (<a class="el" href="group__axis2__config.html#gd32db334e748bbdcaebd55156e493d3b">axis2_conf_t</a> *conf, const <a class="el" href="structaxutil__env.html">axutil_env_t</a> *env, void *security_context)</td></tr>

<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="g83de5146ca7d0529d1af8ec8f1944013"></a><!-- doxytag: member="axis2_config::axis2_conf_get_param_container" ref="g83de5146ca7d0529d1af8ec8f1944013" args="(const axis2_conf_t *conf, const axutil_env_t *env)" -->
AXIS2_EXTERN <br>
axutil_param_container_t *&nbsp;</td><td class="memItemRight" valign="bottom"><b>axis2_conf_get_param_container</b> (const <a class="el" href="group__axis2__config.html#gd32db334e748bbdcaebd55156e493d3b">axis2_conf_t</a> *conf, const <a class="el" href="structaxutil__env.html">axutil_env_t</a> *env)</td></tr>

<tr><td class="memItemLeft" nowrap align="right" valign="top">AXIS2_EXTERN <br>
<a class="el" href="group__axis2__description.html#g9bbf771ae43a8364c5f453c7077f0f1e">axis2_desc_t</a> *&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__axis2__config.html#gdcada32afcb07e8386d0eae0e7f75c72">axis2_conf_get_base</a> (const <a class="el" href="group__axis2__config.html#gd32db334e748bbdcaebd55156e493d3b">axis2_conf_t</a> *conf, const <a class="el" href="structaxutil__env.html">axutil_env_t</a> *env)</td></tr>

<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="g4201e005521a5165322c04af1d0c493d"></a><!-- doxytag: member="axis2_config::axis2_conf_get_handlers" ref="g4201e005521a5165322c04af1d0c493d" args="(const axis2_conf_t *conf, const axutil_env_t *env)" -->
AXIS2_EXTERN <br>
<a class="el" href="group__axutil__array__list.html#g1a6a89777db876cfa0cc86787b7be6a0">axutil_array_list_t</a> *&nbsp;</td><td class="memItemRight" valign="bottom"><b>axis2_conf_get_handlers</b> (const <a class="el" href="group__axis2__config.html#gd32db334e748bbdcaebd55156e493d3b">axis2_conf_t</a> *conf, const <a class="el" href="structaxutil__env.html">axutil_env_t</a> *env)</td></tr>

</table>
<hr><a name="_details"></a><h2>Detailed Description</h2>
Axis2 configuration captures all configuration information. Configuration information includes user preferences along with module and service information that is either statically configured using axis2.xml file, service.xml files and module.xml files or dynamically using the functions defined in the ops struct related to this conf struct. <hr><h2>Typedef Documentation</h2>
<a class="anchor" name="gd32db334e748bbdcaebd55156e493d3b"></a><!-- doxytag: member="axis2_conf.h::axis2_conf_t" ref="gd32db334e748bbdcaebd55156e493d3b" args="" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">typedef struct axis2_conf <a class="el" href="group__axis2__config.html#gd32db334e748bbdcaebd55156e493d3b">axis2_conf_t</a>          </td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
Type name for struct axis2_conf 
</div>
</div><p>
<hr><h2>Function Documentation</h2>
<a class="anchor" name="g0f7af7f98fa7f8b51d0ec1fd729fde6b"></a><!-- doxytag: member="axis2_conf.h::axis2_conf_add_default_module_version" ref="g0f7af7f98fa7f8b51d0ec1fd729fde6b" args="(axis2_conf_t *conf, const axutil_env_t *env, const axis2_char_t *module_name, const axis2_char_t *module_version)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">AXIS2_EXTERN axis2_status_t axis2_conf_add_default_module_version           </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="group__axis2__config.html#gd32db334e748bbdcaebd55156e493d3b">axis2_conf_t</a> *&nbsp;</td>
          <td class="paramname"> <em>conf</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const <a class="el" href="structaxutil__env.html">axutil_env_t</a> *&nbsp;</td>
          <td class="paramname"> <em>env</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const axis2_char_t *&nbsp;</td>
          <td class="paramname"> <em>module_name</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const axis2_char_t *&nbsp;</td>
          <td class="paramname"> <em>module_version</em></td><td>&nbsp;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td><td width="100%"></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
Adds a default module version for the named module. <dl compact><dt><b>Parameters:</b></dt><dd>
  <table border="0" cellspacing="2" cellpadding="0">
    <tr><td valign="top"></td><td valign="top"><em>conf</em>&nbsp;</td><td>pointer to conf struct </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>env</em>&nbsp;</td><td>pointer to environment struct </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>module_name</em>&nbsp;</td><td>name of the module </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>module_version</em>&nbsp;</td><td>default version for the module </td></tr>
  </table>
</dl>
<dl class="return" compact><dt><b>Returns:</b></dt><dd>AXIS2_SUCCESS on success, else AXIS2_FAILURE </dd></dl>

</div>
</div><p>
<a class="anchor" name="gd1f8225ed64ad78477b72eacd8f6a48a"></a><!-- doxytag: member="axis2_conf.h::axis2_conf_add_module" ref="gd1f8225ed64ad78477b72eacd8f6a48a" args="(axis2_conf_t *conf, const axutil_env_t *env, struct axis2_module_desc *module)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">AXIS2_EXTERN axis2_status_t axis2_conf_add_module           </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="group__axis2__config.html#gd32db334e748bbdcaebd55156e493d3b">axis2_conf_t</a> *&nbsp;</td>
          <td class="paramname"> <em>conf</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const <a class="el" href="structaxutil__env.html">axutil_env_t</a> *&nbsp;</td>
          <td class="paramname"> <em>env</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">struct axis2_module_desc *&nbsp;</td>
          <td class="paramname"> <em>module</em></td><td>&nbsp;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td><td width="100%"></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
Adds a module. <dl compact><dt><b>Parameters:</b></dt><dd>
  <table border="0" cellspacing="2" cellpadding="0">
    <tr><td valign="top"></td><td valign="top"><em>conf</em>&nbsp;</td><td>pointer to conf struct </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>env</em>&nbsp;</td><td>pointer to environment struct </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>module</em>&nbsp;</td><td>pointer to module struct to be added </td></tr>
  </table>
</dl>
<dl class="return" compact><dt><b>Returns:</b></dt><dd>AXIS2_SUCCESS on success, else AXIS2_FAILURE </dd></dl>

</div>
</div><p>
<a class="anchor" name="g2563c430243b6cce5142109b1f7fae84"></a><!-- doxytag: member="axis2_conf.h::axis2_conf_add_msg_recv" ref="g2563c430243b6cce5142109b1f7fae84" args="(axis2_conf_t *conf, const axutil_env_t *env, const axis2_char_t *key, struct axis2_msg_recv *msg_recv)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">AXIS2_EXTERN axis2_status_t axis2_conf_add_msg_recv           </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="group__axis2__config.html#gd32db334e748bbdcaebd55156e493d3b">axis2_conf_t</a> *&nbsp;</td>
          <td class="paramname"> <em>conf</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const <a class="el" href="structaxutil__env.html">axutil_env_t</a> *&nbsp;</td>
          <td class="paramname"> <em>env</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const axis2_char_t *&nbsp;</td>
          <td class="paramname"> <em>key</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">struct axis2_msg_recv *&nbsp;</td>
          <td class="paramname"> <em>msg_recv</em></td><td>&nbsp;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td><td width="100%"></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
Adds message receiver with the given key. <dl compact><dt><b>Parameters:</b></dt><dd>
  <table border="0" cellspacing="2" cellpadding="0">
    <tr><td valign="top"></td><td valign="top"><em>conf</em>&nbsp;</td><td>pointer to conf struct </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>env</em>&nbsp;</td><td>pointer to environment struct </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>key</em>&nbsp;</td><td>key string with which the message receive is to be added </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>msg_recv</em>&nbsp;</td><td>pointer to message receiver </td></tr>
  </table>
</dl>
<dl class="return" compact><dt><b>Returns:</b></dt><dd>AXIS2_SUCCESS on success, else AXIS2_FAILURE </dd></dl>

</div>
</div><p>
<a class="anchor" name="g03227082f8dcb6d49c70ae123224618d"></a><!-- doxytag: member="axis2_conf.h::axis2_conf_add_param" ref="g03227082f8dcb6d49c70ae123224618d" args="(axis2_conf_t *conf, const axutil_env_t *env, axutil_param_t *param)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">AXIS2_EXTERN axis2_status_t axis2_conf_add_param           </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="group__axis2__config.html#gd32db334e748bbdcaebd55156e493d3b">axis2_conf_t</a> *&nbsp;</td>
          <td class="paramname"> <em>conf</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const <a class="el" href="structaxutil__env.html">axutil_env_t</a> *&nbsp;</td>
          <td class="paramname"> <em>env</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">axutil_param_t *&nbsp;</td>
          <td class="paramname"> <em>param</em></td><td>&nbsp;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td><td width="100%"></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
Adds a parameter to configuration. <dl compact><dt><b>Parameters:</b></dt><dd>
  <table border="0" cellspacing="2" cellpadding="0">
    <tr><td valign="top"></td><td valign="top"><em>conf</em>&nbsp;</td><td>pointer to conf struct </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>env</em>&nbsp;</td><td>pointer to environment struct </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>param</em>&nbsp;</td><td>pointer to parameter struct to be added </td></tr>
  </table>
</dl>
<dl class="return" compact><dt><b>Returns:</b></dt><dd>AXIS2_SUCCESS on success, else AXIS2_FAILURE </dd></dl>

</div>
</div><p>
<a class="anchor" name="gfc6aefecf137595736194e704c8849e6"></a><!-- doxytag: member="axis2_conf.h::axis2_conf_add_svc" ref="gfc6aefecf137595736194e704c8849e6" args="(axis2_conf_t *conf, const axutil_env_t *env, struct axis2_svc *svc)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">AXIS2_EXTERN axis2_status_t axis2_conf_add_svc           </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="group__axis2__config.html#gd32db334e748bbdcaebd55156e493d3b">axis2_conf_t</a> *&nbsp;</td>
          <td class="paramname"> <em>conf</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const <a class="el" href="structaxutil__env.html">axutil_env_t</a> *&nbsp;</td>
          <td class="paramname"> <em>env</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">struct axis2_svc *&nbsp;</td>
          <td class="paramname"> <em>svc</em></td><td>&nbsp;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td><td width="100%"></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
Adds a service to configuration. <dl compact><dt><b>Parameters:</b></dt><dd>
  <table border="0" cellspacing="2" cellpadding="0">
    <tr><td valign="top"></td><td valign="top"><em>conf</em>&nbsp;</td><td>pointer to conf struct </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>env</em>&nbsp;</td><td>pointer to environment struct </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>svc</em>&nbsp;</td><td>pointer to service, conf takes over the ownership of the service </td></tr>
  </table>
</dl>
<dl class="return" compact><dt><b>Returns:</b></dt><dd>AXIS2_SUCCESS on success, else AXIS2_FAILURE </dd></dl>

</div>
</div><p>
<a class="anchor" name="gf1d556bc4c78ed899213d9b863834209"></a><!-- doxytag: member="axis2_conf.h::axis2_conf_add_svc_grp" ref="gf1d556bc4c78ed899213d9b863834209" args="(axis2_conf_t *conf, const axutil_env_t *env, struct axis2_svc_grp *svc_grp)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">AXIS2_EXTERN axis2_status_t axis2_conf_add_svc_grp           </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="group__axis2__config.html#gd32db334e748bbdcaebd55156e493d3b">axis2_conf_t</a> *&nbsp;</td>
          <td class="paramname"> <em>conf</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const <a class="el" href="structaxutil__env.html">axutil_env_t</a> *&nbsp;</td>
          <td class="paramname"> <em>env</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">struct axis2_svc_grp *&nbsp;</td>
          <td class="paramname"> <em>svc_grp</em></td><td>&nbsp;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td><td width="100%"></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
Adds a service group to the configuration. <dl compact><dt><b>Parameters:</b></dt><dd>
  <table border="0" cellspacing="2" cellpadding="0">
    <tr><td valign="top"></td><td valign="top"><em>conf</em>&nbsp;</td><td>pointer to conf struct </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>env</em>&nbsp;</td><td>pointer to environment struct </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>svc_grp</em>&nbsp;</td><td>pointer to service group, conf takes over the ownership of the service group </td></tr>
  </table>
</dl>
<dl class="return" compact><dt><b>Returns:</b></dt><dd>AXIS2_SUCCESS on success, else AXIS2_FAILURE </dd></dl>

</div>
</div><p>
<a class="anchor" name="g78048cf013c8a2441862164f9aaaedbe"></a><!-- doxytag: member="axis2_conf.h::axis2_conf_add_transport_in" ref="g78048cf013c8a2441862164f9aaaedbe" args="(axis2_conf_t *conf, const axutil_env_t *env, axis2_transport_in_desc_t *transport, const AXIS2_TRANSPORT_ENUMS trans_enum)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">AXIS2_EXTERN axis2_status_t axis2_conf_add_transport_in           </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="group__axis2__config.html#gd32db334e748bbdcaebd55156e493d3b">axis2_conf_t</a> *&nbsp;</td>
          <td class="paramname"> <em>conf</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const <a class="el" href="structaxutil__env.html">axutil_env_t</a> *&nbsp;</td>
          <td class="paramname"> <em>env</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype"><a class="el" href="group__axis2__transport__in__desc.html#g9185c8c5307454b74f49523666f7bda6">axis2_transport_in_desc_t</a> *&nbsp;</td>
          <td class="paramname"> <em>transport</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const AXIS2_TRANSPORT_ENUMS&nbsp;</td>
          <td class="paramname"> <em>trans_enum</em></td><td>&nbsp;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td><td width="100%"></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
Adds a transport in description. <dl compact><dt><b>Parameters:</b></dt><dd>
  <table border="0" cellspacing="2" cellpadding="0">
    <tr><td valign="top"></td><td valign="top"><em>conf</em>&nbsp;</td><td>pointer to conf struct </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>env</em>&nbsp;</td><td>pointer to environment struct </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>transport</em>&nbsp;</td><td>pointer to transport in description. conf assumes ownership of the struct </td></tr>
  </table>
</dl>
<dl class="return" compact><dt><b>Returns:</b></dt><dd>AXIS2_SUCCESS on success, else AXIS2_FAILURE </dd></dl>

</div>
</div><p>
<a class="anchor" name="gec80422b458c7baf542450a6b0d6a87e"></a><!-- doxytag: member="axis2_conf.h::axis2_conf_add_transport_out" ref="gec80422b458c7baf542450a6b0d6a87e" args="(axis2_conf_t *conf, const axutil_env_t *env, axis2_transport_out_desc_t *transport, const AXIS2_TRANSPORT_ENUMS trans_enum)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">AXIS2_EXTERN axis2_status_t axis2_conf_add_transport_out           </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="group__axis2__config.html#gd32db334e748bbdcaebd55156e493d3b">axis2_conf_t</a> *&nbsp;</td>
          <td class="paramname"> <em>conf</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const <a class="el" href="structaxutil__env.html">axutil_env_t</a> *&nbsp;</td>
          <td class="paramname"> <em>env</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype"><a class="el" href="group__axis2__transport__out__desc.html#g30caf90fd8fb7b0c89700bcb12e250df">axis2_transport_out_desc_t</a> *&nbsp;</td>
          <td class="paramname"> <em>transport</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const AXIS2_TRANSPORT_ENUMS&nbsp;</td>
          <td class="paramname"> <em>trans_enum</em></td><td>&nbsp;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td><td width="100%"></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
Adds a transport out description. <dl compact><dt><b>Parameters:</b></dt><dd>
  <table border="0" cellspacing="2" cellpadding="0">
    <tr><td valign="top"></td><td valign="top"><em>conf</em>&nbsp;</td><td>pointer to conf struct </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>env</em>&nbsp;</td><td>pointer to environment struct </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>transport</em>&nbsp;</td><td>pointer to transport out description. conf assumes ownership of the struct </td></tr>
  </table>
</dl>
<dl class="return" compact><dt><b>Returns:</b></dt><dd>AXIS2_SUCCESS on success, else AXIS2_FAILURE </dd></dl>

</div>
</div><p>
<a class="anchor" name="g87f521276d7d6dfde72b289121c80a79"></a><!-- doxytag: member="axis2_conf.h::axis2_conf_create" ref="g87f521276d7d6dfde72b289121c80a79" args="(const axutil_env_t *env)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">AXIS2_EXTERN <a class="el" href="group__axis2__config.html#gd32db334e748bbdcaebd55156e493d3b">axis2_conf_t</a>* axis2_conf_create           </td>
          <td>(</td>
          <td class="paramtype">const <a class="el" href="structaxutil__env.html">axutil_env_t</a> *&nbsp;</td>
          <td class="paramname"> <em>env</em>          </td>
          <td>&nbsp;)&nbsp;</td>
          <td width="100%"></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
Creates configuration struct. <dl compact><dt><b>Parameters:</b></dt><dd>
  <table border="0" cellspacing="2" cellpadding="0">
    <tr><td valign="top"></td><td valign="top"><em>env</em>&nbsp;</td><td>pointer to environment struct </td></tr>
  </table>
</dl>
<dl class="return" compact><dt><b>Returns:</b></dt><dd>pointer to newly created configuration </dd></dl>

</div>
</div><p>
<a class="anchor" name="gd606b44f38e986772f34e7eea44f1213"></a><!-- doxytag: member="axis2_conf.h::axis2_conf_engage_module" ref="gd606b44f38e986772f34e7eea44f1213" args="(axis2_conf_t *conf, const axutil_env_t *env, const axutil_qname_t *module_ref)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">AXIS2_EXTERN axis2_status_t axis2_conf_engage_module           </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="group__axis2__config.html#gd32db334e748bbdcaebd55156e493d3b">axis2_conf_t</a> *&nbsp;</td>
          <td class="paramname"> <em>conf</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const <a class="el" href="structaxutil__env.html">axutil_env_t</a> *&nbsp;</td>
          <td class="paramname"> <em>env</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const axutil_qname_t *&nbsp;</td>
          <td class="paramname"> <em>module_ref</em></td><td>&nbsp;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td><td width="100%"></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
Engages the named module. <dl compact><dt><b>Parameters:</b></dt><dd>
  <table border="0" cellspacing="2" cellpadding="0">
    <tr><td valign="top"></td><td valign="top"><em>conf</em>&nbsp;</td><td>pointer to conf struct </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>env</em>&nbsp;</td><td>pointer to environment struct </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>module_ref</em>&nbsp;</td><td>pointer to the QName of the module to be engaged </td></tr>
  </table>
</dl>
<dl class="return" compact><dt><b>Returns:</b></dt><dd>AXIS2_SUCCESS on success, else AXIS2_FAILURE </dd></dl>

</div>
</div><p>
<a class="anchor" name="g437349fa6fb067fc0cf6b23f731e5b5b"></a><!-- doxytag: member="axis2_conf.h::axis2_conf_engage_module_with_version" ref="g437349fa6fb067fc0cf6b23f731e5b5b" args="(axis2_conf_t *conf, const axutil_env_t *env, const axis2_char_t *module_name, const axis2_char_t *version_id)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">AXIS2_EXTERN axis2_status_t axis2_conf_engage_module_with_version           </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="group__axis2__config.html#gd32db334e748bbdcaebd55156e493d3b">axis2_conf_t</a> *&nbsp;</td>
          <td class="paramname"> <em>conf</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const <a class="el" href="structaxutil__env.html">axutil_env_t</a> *&nbsp;</td>
          <td class="paramname"> <em>env</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const axis2_char_t *&nbsp;</td>
          <td class="paramname"> <em>module_name</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const axis2_char_t *&nbsp;</td>
          <td class="paramname"> <em>version_id</em></td><td>&nbsp;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td><td width="100%"></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
Engages the module with the given version. <dl compact><dt><b>Parameters:</b></dt><dd>
  <table border="0" cellspacing="2" cellpadding="0">
    <tr><td valign="top"></td><td valign="top"><em>conf</em>&nbsp;</td><td>pointer to conf struct </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>env</em>&nbsp;</td><td>pointer to environment struct </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>module_name</em>&nbsp;</td><td>name of the module to be engaged </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>version_id</em>&nbsp;</td><td>version of the module to be engaged </td></tr>
  </table>
</dl>
<dl class="return" compact><dt><b>Returns:</b></dt><dd>AXIS2_SUCCESS on success, else AXIS2_FAILURE </dd></dl>

</div>
</div><p>
<a class="anchor" name="g06062b4f3ea3a4fb05c0e55d76f6ca8c"></a><!-- doxytag: member="axis2_conf.h::axis2_conf_free" ref="g06062b4f3ea3a4fb05c0e55d76f6ca8c" args="(axis2_conf_t *conf, const axutil_env_t *env)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">AXIS2_EXTERN void axis2_conf_free           </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="group__axis2__config.html#gd32db334e748bbdcaebd55156e493d3b">axis2_conf_t</a> *&nbsp;</td>
          <td class="paramname"> <em>conf</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const <a class="el" href="structaxutil__env.html">axutil_env_t</a> *&nbsp;</td>
          <td class="paramname"> <em>env</em></td><td>&nbsp;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td><td width="100%"></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
Frees conf struct. <dl compact><dt><b>Parameters:</b></dt><dd>
  <table border="0" cellspacing="2" cellpadding="0">
    <tr><td valign="top"></td><td valign="top"><em>conf</em>&nbsp;</td><td>pointer to conf struct </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>env</em>&nbsp;</td><td>pointer to environment struct </td></tr>
  </table>
</dl>
<dl class="return" compact><dt><b>Returns:</b></dt><dd>AXIS2_SUCCESS on success, else AXIS2_FAILURE </dd></dl>

</div>
</div><p>
<a class="anchor" name="ge2aa21b6ff10d77d3180459b7e22ebc1"></a><!-- doxytag: member="axis2_conf.h::axis2_conf_get_all_engaged_modules" ref="ge2aa21b6ff10d77d3180459b7e22ebc1" args="(const axis2_conf_t *conf, const axutil_env_t *env)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">AXIS2_EXTERN <a class="el" href="group__axutil__array__list.html#g1a6a89777db876cfa0cc86787b7be6a0">axutil_array_list_t</a>* axis2_conf_get_all_engaged_modules           </td>
          <td>(</td>
          <td class="paramtype">const <a class="el" href="group__axis2__config.html#gd32db334e748bbdcaebd55156e493d3b">axis2_conf_t</a> *&nbsp;</td>
          <td class="paramname"> <em>conf</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const <a class="el" href="structaxutil__env.html">axutil_env_t</a> *&nbsp;</td>
          <td class="paramname"> <em>env</em></td><td>&nbsp;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td><td width="100%"></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
Gets the list of engaged modules. <dl compact><dt><b>Parameters:</b></dt><dd>
  <table border="0" cellspacing="2" cellpadding="0">
    <tr><td valign="top"></td><td valign="top"><em>conf</em>&nbsp;</td><td>pointer to conf struct </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>env</em>&nbsp;</td><td>pointer to environment struct </td></tr>
  </table>
</dl>
<dl class="return" compact><dt><b>Returns:</b></dt><dd>a pointer to the array list of engaged modules. Returns a reference, not a cloned copy </dd></dl>

</div>
</div><p>
<a class="anchor" name="g12b5a698718da795312b3e09fdeac1c4"></a><!-- doxytag: member="axis2_conf.h::axis2_conf_get_all_faulty_modules" ref="g12b5a698718da795312b3e09fdeac1c4" args="(const axis2_conf_t *conf, const axutil_env_t *env)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">AXIS2_EXTERN <a class="el" href="group__axutil__hash.html#gb2d7d14db2de92a101573f44421ac12a">axutil_hash_t</a>* axis2_conf_get_all_faulty_modules           </td>
          <td>(</td>
          <td class="paramtype">const <a class="el" href="group__axis2__config.html#gd32db334e748bbdcaebd55156e493d3b">axis2_conf_t</a> *&nbsp;</td>
          <td class="paramname"> <em>conf</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const <a class="el" href="structaxutil__env.html">axutil_env_t</a> *&nbsp;</td>
          <td class="paramname"> <em>env</em></td><td>&nbsp;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td><td width="100%"></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
Gets faulty modules. A faulty module is a module that does not meet the module configuration criteria or a module with errors in the service dynamic link library. <dl compact><dt><b>Parameters:</b></dt><dd>
  <table border="0" cellspacing="2" cellpadding="0">
    <tr><td valign="top"></td><td valign="top"><em>conf</em>&nbsp;</td><td>pointer to conf struct </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>env</em>&nbsp;</td><td>pointer to environment struct </td></tr>
  </table>
</dl>
<dl class="return" compact><dt><b>Returns:</b></dt><dd>a pointer to the hash table of faulty modules. Returns a reference, not a cloned copy </dd></dl>

</div>
</div><p>
<a class="anchor" name="g9024b3f7f97461ba822eebc7d6c1a812"></a><!-- doxytag: member="axis2_conf.h::axis2_conf_get_all_faulty_svcs" ref="g9024b3f7f97461ba822eebc7d6c1a812" args="(const axis2_conf_t *conf, const axutil_env_t *env)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">AXIS2_EXTERN <a class="el" href="group__axutil__hash.html#gb2d7d14db2de92a101573f44421ac12a">axutil_hash_t</a>* axis2_conf_get_all_faulty_svcs           </td>
          <td>(</td>
          <td class="paramtype">const <a class="el" href="group__axis2__config.html#gd32db334e748bbdcaebd55156e493d3b">axis2_conf_t</a> *&nbsp;</td>
          <td class="paramname"> <em>conf</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const <a class="el" href="structaxutil__env.html">axutil_env_t</a> *&nbsp;</td>
          <td class="paramname"> <em>env</em></td><td>&nbsp;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td><td width="100%"></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
Gets faulty services. A faulty service is a service that does not meet the service configuration criteria or a service with errors in the service dynamic link library. <dl compact><dt><b>Parameters:</b></dt><dd>
  <table border="0" cellspacing="2" cellpadding="0">
    <tr><td valign="top"></td><td valign="top"><em>conf</em>&nbsp;</td><td>pointer to conf struct </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>env</em>&nbsp;</td><td>pointer to environment struct </td></tr>
  </table>
</dl>
<dl class="return" compact><dt><b>Returns:</b></dt><dd>a pointer to the hash table of faulty services. Returns a reference, not a cloned copy </dd></dl>

</div>
</div><p>
<a class="anchor" name="g287e0d1e671665be290f523539f370d6"></a><!-- doxytag: member="axis2_conf.h::axis2_conf_get_all_in_transports" ref="g287e0d1e671665be290f523539f370d6" args="(const axis2_conf_t *conf, const axutil_env_t *env)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">AXIS2_EXTERN <a class="el" href="group__axis2__transport__in__desc.html#g9185c8c5307454b74f49523666f7bda6">axis2_transport_in_desc_t</a>** axis2_conf_get_all_in_transports           </td>
          <td>(</td>
          <td class="paramtype">const <a class="el" href="group__axis2__config.html#gd32db334e748bbdcaebd55156e493d3b">axis2_conf_t</a> *&nbsp;</td>
          <td class="paramname"> <em>conf</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const <a class="el" href="structaxutil__env.html">axutil_env_t</a> *&nbsp;</td>
          <td class="paramname"> <em>env</em></td><td>&nbsp;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td><td width="100%"></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
Gets all in transports. <dl compact><dt><b>Parameters:</b></dt><dd>
  <table border="0" cellspacing="2" cellpadding="0">
    <tr><td valign="top"></td><td valign="top"><em>conf</em>&nbsp;</td><td>pointer to conf struct </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>env</em>&nbsp;</td><td>pointer to environment struct </td></tr>
  </table>
</dl>
<dl class="return" compact><dt><b>Returns:</b></dt><dd>hash table containing all transport in descriptions. Returns a reference, not a cloned copy </dd></dl>

</div>
</div><p>
<a class="anchor" name="gae78d7f53b928733081821be9c869c86"></a><!-- doxytag: member="axis2_conf.h::axis2_conf_get_all_modules" ref="gae78d7f53b928733081821be9c869c86" args="(const axis2_conf_t *conf, const axutil_env_t *env)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">AXIS2_EXTERN <a class="el" href="group__axutil__hash.html#gb2d7d14db2de92a101573f44421ac12a">axutil_hash_t</a>* axis2_conf_get_all_modules           </td>
          <td>(</td>
          <td class="paramtype">const <a class="el" href="group__axis2__config.html#gd32db334e748bbdcaebd55156e493d3b">axis2_conf_t</a> *&nbsp;</td>
          <td class="paramname"> <em>conf</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const <a class="el" href="structaxutil__env.html">axutil_env_t</a> *&nbsp;</td>
          <td class="paramname"> <em>env</em></td><td>&nbsp;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td><td width="100%"></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
Gets all modules configured, <dl compact><dt><b>Parameters:</b></dt><dd>
  <table border="0" cellspacing="2" cellpadding="0">
    <tr><td valign="top"></td><td valign="top"><em>conf</em>&nbsp;</td><td>pointer to conf struct </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>env</em>&nbsp;</td><td>pointer to environment struct </td></tr>
  </table>
</dl>
<dl class="return" compact><dt><b>Returns:</b></dt><dd>a pointer to hash table containing the list of modules. Returns a reference, not a cloned copy </dd></dl>

</div>
</div><p>
<a class="anchor" name="g2e5723e559a264f763e22e898990a63c"></a><!-- doxytag: member="axis2_conf.h::axis2_conf_get_all_out_transports" ref="g2e5723e559a264f763e22e898990a63c" args="(const axis2_conf_t *conf, const axutil_env_t *env)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">AXIS2_EXTERN <a class="el" href="group__axis2__transport__out__desc.html#g30caf90fd8fb7b0c89700bcb12e250df">axis2_transport_out_desc_t</a>** axis2_conf_get_all_out_transports           </td>
          <td>(</td>
          <td class="paramtype">const <a class="el" href="group__axis2__config.html#gd32db334e748bbdcaebd55156e493d3b">axis2_conf_t</a> *&nbsp;</td>
          <td class="paramname"> <em>conf</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const <a class="el" href="structaxutil__env.html">axutil_env_t</a> *&nbsp;</td>
          <td class="paramname"> <em>env</em></td><td>&nbsp;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td><td width="100%"></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
Gets all out transports. <dl compact><dt><b>Parameters:</b></dt><dd>
  <table border="0" cellspacing="2" cellpadding="0">
    <tr><td valign="top"></td><td valign="top"><em>conf</em>&nbsp;</td><td>pointer to conf struct </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>env</em>&nbsp;</td><td>pointer to environment struct </td></tr>
  </table>
</dl>
<dl class="return" compact><dt><b>Returns:</b></dt><dd>hash table containing all transport out descriptions. Returns a reference, not a cloned copy </dd></dl>

</div>
</div><p>
<a class="anchor" name="g2cf688584fa948c9ffaf8e5b9b7747e4"></a><!-- doxytag: member="axis2_conf.h::axis2_conf_get_all_params" ref="g2cf688584fa948c9ffaf8e5b9b7747e4" args="(const axis2_conf_t *conf, const axutil_env_t *env)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">AXIS2_EXTERN <a class="el" href="group__axutil__array__list.html#g1a6a89777db876cfa0cc86787b7be6a0">axutil_array_list_t</a>* axis2_conf_get_all_params           </td>
          <td>(</td>
          <td class="paramtype">const <a class="el" href="group__axis2__config.html#gd32db334e748bbdcaebd55156e493d3b">axis2_conf_t</a> *&nbsp;</td>
          <td class="paramname"> <em>conf</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const <a class="el" href="structaxutil__env.html">axutil_env_t</a> *&nbsp;</td>
          <td class="paramname"> <em>env</em></td><td>&nbsp;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td><td width="100%"></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
Gets all the parameters added to the configuration. <dl compact><dt><b>Parameters:</b></dt><dd>
  <table border="0" cellspacing="2" cellpadding="0">
    <tr><td valign="top"></td><td valign="top"><em>conf</em>&nbsp;</td><td>pointer to conf struct </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>env</em>&nbsp;</td><td>pointer to environment </td></tr>
  </table>
</dl>
<dl class="return" compact><dt><b>Returns:</b></dt><dd>pointer to array list containing parameters if exists, else NULL. Returns a reference, not a cloned copy </dd></dl>

</div>
</div><p>
<a class="anchor" name="g51f16242864d15ff2d77442615d51832"></a><!-- doxytag: member="axis2_conf.h::axis2_conf_get_all_svc_grps" ref="g51f16242864d15ff2d77442615d51832" args="(const axis2_conf_t *conf, const axutil_env_t *env)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">AXIS2_EXTERN <a class="el" href="group__axutil__hash.html#gb2d7d14db2de92a101573f44421ac12a">axutil_hash_t</a>* axis2_conf_get_all_svc_grps           </td>
          <td>(</td>
          <td class="paramtype">const <a class="el" href="group__axis2__config.html#gd32db334e748bbdcaebd55156e493d3b">axis2_conf_t</a> *&nbsp;</td>
          <td class="paramname"> <em>conf</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const <a class="el" href="structaxutil__env.html">axutil_env_t</a> *&nbsp;</td>
          <td class="paramname"> <em>env</em></td><td>&nbsp;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td><td width="100%"></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
Gets all service group added to conf. <dl compact><dt><b>Parameters:</b></dt><dd>
  <table border="0" cellspacing="2" cellpadding="0">
    <tr><td valign="top"></td><td valign="top"><em>conf</em>&nbsp;</td><td>pointer to conf struct </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>env</em>&nbsp;</td><td>pointer to environment struct </td></tr>
  </table>
</dl>
<dl class="return" compact><dt><b>Returns:</b></dt><dd>pointer to hash table containing the service groups, returns a reference, not a cloned copy </dd></dl>

</div>
</div><p>
<a class="anchor" name="gb3d4be2ef73eee238915c80a8f9b155c"></a><!-- doxytag: member="axis2_conf.h::axis2_conf_get_all_svcs" ref="gb3d4be2ef73eee238915c80a8f9b155c" args="(const axis2_conf_t *conf, const axutil_env_t *env)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">AXIS2_EXTERN <a class="el" href="group__axutil__hash.html#gb2d7d14db2de92a101573f44421ac12a">axutil_hash_t</a>* axis2_conf_get_all_svcs           </td>
          <td>(</td>
          <td class="paramtype">const <a class="el" href="group__axis2__config.html#gd32db334e748bbdcaebd55156e493d3b">axis2_conf_t</a> *&nbsp;</td>
          <td class="paramname"> <em>conf</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const <a class="el" href="structaxutil__env.html">axutil_env_t</a> *&nbsp;</td>
          <td class="paramname"> <em>env</em></td><td>&nbsp;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td><td width="100%"></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
Gets all the list of services loaded into configuration. <dl compact><dt><b>Parameters:</b></dt><dd>
  <table border="0" cellspacing="2" cellpadding="0">
    <tr><td valign="top"></td><td valign="top"><em>conf</em>&nbsp;</td><td>pointer to conf struct </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>env</em>&nbsp;</td><td>pointer to environment struct </td></tr>
  </table>
</dl>
<dl class="return" compact><dt><b>Returns:</b></dt><dd>a pointer to the hash table of services. Returns a reference, not a cloned copy </dd></dl>

</div>
</div><p>
<a class="anchor" name="g4e60a26bae6ab18adf601fc3dc0ccd6d"></a><!-- doxytag: member="axis2_conf.h::axis2_conf_get_all_svcs_to_load" ref="g4e60a26bae6ab18adf601fc3dc0ccd6d" args="(const axis2_conf_t *conf, const axutil_env_t *env)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">AXIS2_EXTERN <a class="el" href="group__axutil__hash.html#gb2d7d14db2de92a101573f44421ac12a">axutil_hash_t</a>* axis2_conf_get_all_svcs_to_load           </td>
          <td>(</td>
          <td class="paramtype">const <a class="el" href="group__axis2__config.html#gd32db334e748bbdcaebd55156e493d3b">axis2_conf_t</a> *&nbsp;</td>
          <td class="paramname"> <em>conf</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const <a class="el" href="structaxutil__env.html">axutil_env_t</a> *&nbsp;</td>
          <td class="paramname"> <em>env</em></td><td>&nbsp;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td><td width="100%"></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
Gets all the list of services that need to be loaded into configuration at the start up of the axis2 engine. <dl compact><dt><b>Parameters:</b></dt><dd>
  <table border="0" cellspacing="2" cellpadding="0">
    <tr><td valign="top"></td><td valign="top"><em>conf</em>&nbsp;</td><td>pointer to conf struct </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>env</em>&nbsp;</td><td>pointer to environment struct </td></tr>
  </table>
</dl>
<dl class="return" compact><dt><b>Returns:</b></dt><dd>a pointer to the hash table of services. Returns a reference, not a cloned copy </dd></dl>

</div>
</div><p>
<a class="anchor" name="g5ec35a0f6f9bd8d6c179b74e27c1a22f"></a><!-- doxytag: member="axis2_conf.h::axis2_conf_get_axis2_flag" ref="g5ec35a0f6f9bd8d6c179b74e27c1a22f" args="(axis2_conf_t *conf, const axutil_env_t *env)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">AXIS2_EXTERN axis2_bool_t axis2_conf_get_axis2_flag           </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="group__axis2__config.html#gd32db334e748bbdcaebd55156e493d3b">axis2_conf_t</a> *&nbsp;</td>
          <td class="paramname"> <em>conf</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const <a class="el" href="structaxutil__env.html">axutil_env_t</a> *&nbsp;</td>
          <td class="paramname"> <em>env</em></td><td>&nbsp;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td><td width="100%"></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
set a flag to mark conf created by axis2.xml 
</div>
</div><p>
<a class="anchor" name="ga0d096c494a2ad9eb24767275d0baa7e"></a><!-- doxytag: member="axis2_conf.h::axis2_conf_get_axis2_xml" ref="ga0d096c494a2ad9eb24767275d0baa7e" args="(const axis2_conf_t *conf, const axutil_env_t *env)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">AXIS2_EXTERN const axis2_char_t* axis2_conf_get_axis2_xml           </td>
          <td>(</td>
          <td class="paramtype">const <a class="el" href="group__axis2__config.html#gd32db334e748bbdcaebd55156e493d3b">axis2_conf_t</a> *&nbsp;</td>
          <td class="paramname"> <em>conf</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const <a class="el" href="structaxutil__env.html">axutil_env_t</a> *&nbsp;</td>
          <td class="paramname"> <em>env</em></td><td>&nbsp;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td><td width="100%"></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
Gets the axis2.xml location. <dl compact><dt><b>Parameters:</b></dt><dd>
  <table border="0" cellspacing="2" cellpadding="0">
    <tr><td valign="top"></td><td valign="top"><em>conf</em>&nbsp;</td><td>pointer to conf struct </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>env</em>&nbsp;</td><td>pointer to environment struct </td></tr>
  </table>
</dl>
<dl class="return" compact><dt><b>Returns:</b></dt><dd>returns repository location as a string </dd></dl>

</div>
</div><p>
<a class="anchor" name="gdcada32afcb07e8386d0eae0e7f75c72"></a><!-- doxytag: member="axis2_conf.h::axis2_conf_get_base" ref="gdcada32afcb07e8386d0eae0e7f75c72" args="(const axis2_conf_t *conf, const axutil_env_t *env)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">AXIS2_EXTERN <a class="el" href="group__axis2__description.html#g9bbf771ae43a8364c5f453c7077f0f1e">axis2_desc_t</a>* axis2_conf_get_base           </td>
          <td>(</td>
          <td class="paramtype">const <a class="el" href="group__axis2__config.html#gd32db334e748bbdcaebd55156e493d3b">axis2_conf_t</a> *&nbsp;</td>
          <td class="paramname"> <em>conf</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const <a class="el" href="structaxutil__env.html">axutil_env_t</a> *&nbsp;</td>
          <td class="paramname"> <em>env</em></td><td>&nbsp;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td><td width="100%"></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
Gets base description. <dl compact><dt><b>Parameters:</b></dt><dd>
  <table border="0" cellspacing="2" cellpadding="0">
    <tr><td valign="top"></td><td valign="top"><em>conf</em>&nbsp;</td><td>pointer to message </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>env</em>&nbsp;</td><td>pointer to environment struct </td></tr>
  </table>
</dl>
<dl class="return" compact><dt><b>Returns:</b></dt><dd>pointer to base description struct </dd></dl>

</div>
</div><p>
<a class="anchor" name="gcc150b948c4762e423777fe2f622fba0"></a><!-- doxytag: member="axis2_conf.h::axis2_conf_get_default_module" ref="gcc150b948c4762e423777fe2f622fba0" args="(const axis2_conf_t *conf, const axutil_env_t *env, const axis2_char_t *module_name)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">AXIS2_EXTERN struct axis2_module_desc* axis2_conf_get_default_module           </td>
          <td>(</td>
          <td class="paramtype">const <a class="el" href="group__axis2__config.html#gd32db334e748bbdcaebd55156e493d3b">axis2_conf_t</a> *&nbsp;</td>
          <td class="paramname"> <em>conf</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const <a class="el" href="structaxutil__env.html">axutil_env_t</a> *&nbsp;</td>
          <td class="paramname"> <em>env</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const axis2_char_t *&nbsp;</td>
          <td class="paramname"> <em>module_name</em></td><td>&nbsp;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td><td width="100%"><code> [read]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
Gets the default module reference for the named module. <dl compact><dt><b>Parameters:</b></dt><dd>
  <table border="0" cellspacing="2" cellpadding="0">
    <tr><td valign="top"></td><td valign="top"><em>conf</em>&nbsp;</td><td>pointer to conf struct </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>env</em>&nbsp;</td><td>pointer to environment struct </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>module_name</em>&nbsp;</td><td>module name string </td></tr>
  </table>
</dl>
<dl class="return" compact><dt><b>Returns:</b></dt><dd>pointer to the module description struct corresponding to the given name </dd></dl>

</div>
</div><p>
<a class="anchor" name="gc57b44693b7d2a19e2268c5860105eb5"></a><!-- doxytag: member="axis2_conf.h::axis2_conf_get_default_module_version" ref="gc57b44693b7d2a19e2268c5860105eb5" args="(const axis2_conf_t *conf, const axutil_env_t *env, const axis2_char_t *module_name)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">AXIS2_EXTERN const axis2_char_t* axis2_conf_get_default_module_version           </td>
          <td>(</td>
          <td class="paramtype">const <a class="el" href="group__axis2__config.html#gd32db334e748bbdcaebd55156e493d3b">axis2_conf_t</a> *&nbsp;</td>
          <td class="paramname"> <em>conf</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const <a class="el" href="structaxutil__env.html">axutil_env_t</a> *&nbsp;</td>
          <td class="paramname"> <em>env</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const axis2_char_t *&nbsp;</td>
          <td class="paramname"> <em>module_name</em></td><td>&nbsp;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td><td width="100%"></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
Gets the default module version for the named module. <dl compact><dt><b>Parameters:</b></dt><dd>
  <table border="0" cellspacing="2" cellpadding="0">
    <tr><td valign="top"></td><td valign="top"><em>conf</em>&nbsp;</td><td>pointer to conf struct </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>env</em>&nbsp;</td><td>pointer to environment struct </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>module_name</em>&nbsp;</td><td>module name string </td></tr>
  </table>
</dl>
<dl class="return" compact><dt><b>Returns:</b></dt><dd>default module version as a string </dd></dl>

</div>
</div><p>
<a class="anchor" name="g90731a7c7f62c1fc619074a50c43450d"></a><!-- doxytag: member="axis2_conf.h::axis2_conf_get_in_fault_flow" ref="g90731a7c7f62c1fc619074a50c43450d" args="(const axis2_conf_t *conf, const axutil_env_t *env)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">AXIS2_EXTERN <a class="el" href="group__axutil__array__list.html#g1a6a89777db876cfa0cc86787b7be6a0">axutil_array_list_t</a>* axis2_conf_get_in_fault_flow           </td>
          <td>(</td>
          <td class="paramtype">const <a class="el" href="group__axis2__config.html#gd32db334e748bbdcaebd55156e493d3b">axis2_conf_t</a> *&nbsp;</td>
          <td class="paramname"> <em>conf</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const <a class="el" href="structaxutil__env.html">axutil_env_t</a> *&nbsp;</td>
          <td class="paramname"> <em>env</em></td><td>&nbsp;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td><td width="100%"></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
Gets the in fault flow. In fault flow is a list of phases invoked in the in path of execution, if some fault happens. <dl compact><dt><b>Parameters:</b></dt><dd>
  <table border="0" cellspacing="2" cellpadding="0">
    <tr><td valign="top"></td><td valign="top"><em>conf</em>&nbsp;</td><td>pointer to conf struct </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>env</em>&nbsp;</td><td>pointer to environment struct </td></tr>
  </table>
</dl>
<dl class="return" compact><dt><b>Returns:</b></dt><dd>a pointer to the array list of in fault flow phases. Returns a reference, not a cloned copy </dd></dl>

</div>
</div><p>
<a class="anchor" name="g39916547b5444449bcd1a87f3a37111d"></a><!-- doxytag: member="axis2_conf.h::axis2_conf_get_in_phases_upto_and_including_post_dispatch" ref="g39916547b5444449bcd1a87f3a37111d" args="(const axis2_conf_t *conf, const axutil_env_t *env)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">AXIS2_EXTERN <a class="el" href="group__axutil__array__list.html#g1a6a89777db876cfa0cc86787b7be6a0">axutil_array_list_t</a>* axis2_conf_get_in_phases_upto_and_including_post_dispatch           </td>
          <td>(</td>
          <td class="paramtype">const <a class="el" href="group__axis2__config.html#gd32db334e748bbdcaebd55156e493d3b">axis2_conf_t</a> *&nbsp;</td>
          <td class="paramname"> <em>conf</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const <a class="el" href="structaxutil__env.html">axutil_env_t</a> *&nbsp;</td>
          <td class="paramname"> <em>env</em></td><td>&nbsp;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td><td width="100%"></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
Gets the in phases up to and including port dispatch phase. <dl compact><dt><b>Parameters:</b></dt><dd>
  <table border="0" cellspacing="2" cellpadding="0">
    <tr><td valign="top"></td><td valign="top"><em>conf</em>&nbsp;</td><td>pointer to conf struct </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>env</em>&nbsp;</td><td>pointer to environment struct </td></tr>
  </table>
</dl>
<dl class="return" compact><dt><b>Returns:</b></dt><dd>a pointer to the array list of in phases up to post dispatch inclusive. Returns a reference, not a cloned copy </dd></dl>

</div>
</div><p>
<a class="anchor" name="g0821f7d4a53d5731c23d9be80fd5cbe0"></a><!-- doxytag: member="axis2_conf.h::axis2_conf_get_module" ref="g0821f7d4a53d5731c23d9be80fd5cbe0" args="(const axis2_conf_t *conf, const axutil_env_t *env, const axutil_qname_t *qname)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">AXIS2_EXTERN struct axis2_module_desc* axis2_conf_get_module           </td>
          <td>(</td>
          <td class="paramtype">const <a class="el" href="group__axis2__config.html#gd32db334e748bbdcaebd55156e493d3b">axis2_conf_t</a> *&nbsp;</td>
          <td class="paramname"> <em>conf</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const <a class="el" href="structaxutil__env.html">axutil_env_t</a> *&nbsp;</td>
          <td class="paramname"> <em>env</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const axutil_qname_t *&nbsp;</td>
          <td class="paramname"> <em>qname</em></td><td>&nbsp;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td><td width="100%"><code> [read]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
Gets a module with given QName. <dl compact><dt><b>Parameters:</b></dt><dd>
  <table border="0" cellspacing="2" cellpadding="0">
    <tr><td valign="top"></td><td valign="top"><em>conf</em>&nbsp;</td><td>pointer to conf struct </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>env</em>&nbsp;</td><td>pointer to environment struct </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>qname</em>&nbsp;</td><td>pointer to qname </td></tr>
  </table>
</dl>
<dl class="return" compact><dt><b>Returns:</b></dt><dd>module description corresponding to the given qname </dd></dl>

</div>
</div><p>
<a class="anchor" name="g569170784a8f375728854f94d035509d"></a><!-- doxytag: member="axis2_conf.h::axis2_conf_get_msg_recv" ref="g569170784a8f375728854f94d035509d" args="(const axis2_conf_t *conf, const axutil_env_t *env, axis2_char_t *key)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">AXIS2_EXTERN struct axis2_msg_recv* axis2_conf_get_msg_recv           </td>
          <td>(</td>
          <td class="paramtype">const <a class="el" href="group__axis2__config.html#gd32db334e748bbdcaebd55156e493d3b">axis2_conf_t</a> *&nbsp;</td>
          <td class="paramname"> <em>conf</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const <a class="el" href="structaxutil__env.html">axutil_env_t</a> *&nbsp;</td>
          <td class="paramname"> <em>env</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">axis2_char_t *&nbsp;</td>
          <td class="paramname"> <em>key</em></td><td>&nbsp;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td><td width="100%"><code> [read]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
Gets message receiver with the given key. <dl compact><dt><b>Parameters:</b></dt><dd>
  <table border="0" cellspacing="2" cellpadding="0">
    <tr><td valign="top"></td><td valign="top"><em>conf</em>&nbsp;</td><td>pointer to conf struct </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>env</em>&nbsp;</td><td>pointer to environment struct </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>key</em>&nbsp;</td><td>key string corresponding to the message receiver to be retrieved </td></tr>
  </table>
</dl>
<dl class="return" compact><dt><b>Returns:</b></dt><dd>pointer to the message receiver with the given key if it exists, else null. Returns a reference, not a cloned copy </dd></dl>

</div>
</div><p>
<a class="anchor" name="gd14aad417357ead8d2080d5798e884fe"></a><!-- doxytag: member="axis2_conf.h::axis2_conf_get_out_fault_flow" ref="gd14aad417357ead8d2080d5798e884fe" args="(const axis2_conf_t *conf, const axutil_env_t *env)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">AXIS2_EXTERN <a class="el" href="group__axutil__array__list.html#g1a6a89777db876cfa0cc86787b7be6a0">axutil_array_list_t</a>* axis2_conf_get_out_fault_flow           </td>
          <td>(</td>
          <td class="paramtype">const <a class="el" href="group__axis2__config.html#gd32db334e748bbdcaebd55156e493d3b">axis2_conf_t</a> *&nbsp;</td>
          <td class="paramname"> <em>conf</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const <a class="el" href="structaxutil__env.html">axutil_env_t</a> *&nbsp;</td>
          <td class="paramname"> <em>env</em></td><td>&nbsp;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td><td width="100%"></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
Gets the out fault flow. Out fault flow is a list of phases invoked in the out path of execution, if some fault happens. <dl compact><dt><b>Parameters:</b></dt><dd>
  <table border="0" cellspacing="2" cellpadding="0">
    <tr><td valign="top"></td><td valign="top"><em>conf</em>&nbsp;</td><td>pointer to conf struct </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>env</em>&nbsp;</td><td>pointer to environment struct </td></tr>
  </table>
</dl>
<dl class="return" compact><dt><b>Returns:</b></dt><dd>a pointer to the array list of out fault flow phases. Returns a reference, not a cloned copy </dd></dl>

</div>
</div><p>
<a class="anchor" name="g9c2c12ce9e298ae1255d698b0c101f98"></a><!-- doxytag: member="axis2_conf.h::axis2_conf_get_out_flow" ref="g9c2c12ce9e298ae1255d698b0c101f98" args="(const axis2_conf_t *conf, const axutil_env_t *env)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">AXIS2_EXTERN <a class="el" href="group__axutil__array__list.html#g1a6a89777db876cfa0cc86787b7be6a0">axutil_array_list_t</a>* axis2_conf_get_out_flow           </td>
          <td>(</td>
          <td class="paramtype">const <a class="el" href="group__axis2__config.html#gd32db334e748bbdcaebd55156e493d3b">axis2_conf_t</a> *&nbsp;</td>
          <td class="paramname"> <em>conf</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const <a class="el" href="structaxutil__env.html">axutil_env_t</a> *&nbsp;</td>
          <td class="paramname"> <em>env</em></td><td>&nbsp;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td><td width="100%"></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
Gets the out flow. Out flow is a list of phases invoked in the out path of execution of the engine. <dl compact><dt><b>Parameters:</b></dt><dd>
  <table border="0" cellspacing="2" cellpadding="0">
    <tr><td valign="top"></td><td valign="top"><em>conf</em>&nbsp;</td><td>pointer to conf struct </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>env</em>&nbsp;</td><td>pointer to environment struct </td></tr>
  </table>
</dl>
<dl class="return" compact><dt><b>Returns:</b></dt><dd>a pointer to the array list of out flow phases. Returns a reference, not a cloned copy </dd></dl>

</div>
</div><p>
<a class="anchor" name="gdf15d7aa810a6d812818d3ac00085537"></a><!-- doxytag: member="axis2_conf.h::axis2_conf_get_out_phases" ref="gdf15d7aa810a6d812818d3ac00085537" args="(const axis2_conf_t *conf, const axutil_env_t *env)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">AXIS2_EXTERN <a class="el" href="group__axutil__array__list.html#g1a6a89777db876cfa0cc86787b7be6a0">axutil_array_list_t</a>* axis2_conf_get_out_phases           </td>
          <td>(</td>
          <td class="paramtype">const <a class="el" href="group__axis2__config.html#gd32db334e748bbdcaebd55156e493d3b">axis2_conf_t</a> *&nbsp;</td>
          <td class="paramname"> <em>conf</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const <a class="el" href="structaxutil__env.html">axutil_env_t</a> *&nbsp;</td>
          <td class="paramname"> <em>env</em></td><td>&nbsp;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td><td width="100%"></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
Gets the list of out phases. <dl compact><dt><b>Parameters:</b></dt><dd>
  <table border="0" cellspacing="2" cellpadding="0">
    <tr><td valign="top"></td><td valign="top"><em>conf</em>&nbsp;</td><td>pointer to conf struct </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>env</em>&nbsp;</td><td>pointer to environment struct </td></tr>
  </table>
</dl>
<dl class="return" compact><dt><b>Returns:</b></dt><dd>pointer to array list of out phases. Returns a reference, not a cloned copy </dd></dl>

</div>
</div><p>
<a class="anchor" name="g1335e3c90eb343f5a06ad1cdc761f638"></a><!-- doxytag: member="axis2_conf.h::axis2_conf_get_param" ref="g1335e3c90eb343f5a06ad1cdc761f638" args="(const axis2_conf_t *conf, const axutil_env_t *env, const axis2_char_t *name)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">AXIS2_EXTERN axutil_param_t* axis2_conf_get_param           </td>
          <td>(</td>
          <td class="paramtype">const <a class="el" href="group__axis2__config.html#gd32db334e748bbdcaebd55156e493d3b">axis2_conf_t</a> *&nbsp;</td>
          <td class="paramname"> <em>conf</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const <a class="el" href="structaxutil__env.html">axutil_env_t</a> *&nbsp;</td>
          <td class="paramname"> <em>env</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const axis2_char_t *&nbsp;</td>
          <td class="paramname"> <em>name</em></td><td>&nbsp;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td><td width="100%"></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
Gets a parameter with the given name. <dl compact><dt><b>Parameters:</b></dt><dd>
  <table border="0" cellspacing="2" cellpadding="0">
    <tr><td valign="top"></td><td valign="top"><em>conf</em>&nbsp;</td><td>pointer to conf struct </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>env</em>&nbsp;</td><td>pointer to environment struct </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>name</em>&nbsp;</td><td>name of the parameter to be accessed </td></tr>
  </table>
</dl>
<dl class="return" compact><dt><b>Returns:</b></dt><dd>pointer to parameter with the given name if exists, else NULL. Returns a reference, not a cloned copy </dd></dl>

</div>
</div><p>
<a class="anchor" name="ged50d579ca49af8a25416470012edc14"></a><!-- doxytag: member="axis2_conf.h::axis2_conf_get_phases_info" ref="ged50d579ca49af8a25416470012edc14" args="(const axis2_conf_t *conf, const axutil_env_t *env)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">AXIS2_EXTERN struct axis2_phases_info* axis2_conf_get_phases_info           </td>
          <td>(</td>
          <td class="paramtype">const <a class="el" href="group__axis2__config.html#gd32db334e748bbdcaebd55156e493d3b">axis2_conf_t</a> *&nbsp;</td>
          <td class="paramname"> <em>conf</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const <a class="el" href="structaxutil__env.html">axutil_env_t</a> *&nbsp;</td>
          <td class="paramname"> <em>env</em></td><td>&nbsp;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td><td width="100%"><code> [read]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
Gets phases information struct. <dl compact><dt><b>Parameters:</b></dt><dd>
  <table border="0" cellspacing="2" cellpadding="0">
    <tr><td valign="top"></td><td valign="top"><em>conf</em>&nbsp;</td><td>pointer to conf struct </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>env</em>&nbsp;</td><td>pointer to environment struct </td></tr>
  </table>
</dl>
<dl class="return" compact><dt><b>Returns:</b></dt><dd>a pointer to the struct containing phases information. Returns a reference, not a cloned copy </dd></dl>

</div>
</div><p>
<a class="anchor" name="ge352936161aa818a3b9b6b812851be01"></a><!-- doxytag: member="axis2_conf.h::axis2_conf_get_repo" ref="ge352936161aa818a3b9b6b812851be01" args="(const axis2_conf_t *conf, const axutil_env_t *env)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">AXIS2_EXTERN const axis2_char_t* axis2_conf_get_repo           </td>
          <td>(</td>
          <td class="paramtype">const <a class="el" href="group__axis2__config.html#gd32db334e748bbdcaebd55156e493d3b">axis2_conf_t</a> *&nbsp;</td>
          <td class="paramname"> <em>conf</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const <a class="el" href="structaxutil__env.html">axutil_env_t</a> *&nbsp;</td>
          <td class="paramname"> <em>env</em></td><td>&nbsp;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td><td width="100%"></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
Gets the repository location. <dl compact><dt><b>Parameters:</b></dt><dd>
  <table border="0" cellspacing="2" cellpadding="0">
    <tr><td valign="top"></td><td valign="top"><em>conf</em>&nbsp;</td><td>pointer to conf struct </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>env</em>&nbsp;</td><td>pointer to environment struct </td></tr>
  </table>
</dl>
<dl class="return" compact><dt><b>Returns:</b></dt><dd>returns repository location as a string </dd></dl>

</div>
</div><p>
<a class="anchor" name="g52a73101f2e0fead3788761b4b32fb6f"></a><!-- doxytag: member="axis2_conf.h::axis2_conf_get_svc" ref="g52a73101f2e0fead3788761b4b32fb6f" args="(const axis2_conf_t *conf, const axutil_env_t *env, const axis2_char_t *svc_name)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">AXIS2_EXTERN struct axis2_svc* axis2_conf_get_svc           </td>
          <td>(</td>
          <td class="paramtype">const <a class="el" href="group__axis2__config.html#gd32db334e748bbdcaebd55156e493d3b">axis2_conf_t</a> *&nbsp;</td>
          <td class="paramname"> <em>conf</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const <a class="el" href="structaxutil__env.html">axutil_env_t</a> *&nbsp;</td>
          <td class="paramname"> <em>env</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const axis2_char_t *&nbsp;</td>
          <td class="paramname"> <em>svc_name</em></td><td>&nbsp;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td><td width="100%"><code> [read]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
Gets a service with given name. <dl compact><dt><b>Parameters:</b></dt><dd>
  <table border="0" cellspacing="2" cellpadding="0">
    <tr><td valign="top"></td><td valign="top"><em>conf</em>&nbsp;</td><td>pointer to conf struct </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>env</em>&nbsp;</td><td>pointer to environment struct </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>svc_name</em>&nbsp;</td><td>service name string </td></tr>
  </table>
</dl>
<dl class="return" compact><dt><b>Returns:</b></dt><dd>pointer to service with the given name if exists, else NULL. Returns a reference, not a cloned copy </dd></dl>

</div>
</div><p>
<a class="anchor" name="g0a81de08c7d260307dce83727e7fbb6c"></a><!-- doxytag: member="axis2_conf.h::axis2_conf_get_svc_grp" ref="g0a81de08c7d260307dce83727e7fbb6c" args="(const axis2_conf_t *conf, const axutil_env_t *env, const axis2_char_t *svc_grp_name)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">AXIS2_EXTERN struct axis2_svc_grp* axis2_conf_get_svc_grp           </td>
          <td>(</td>
          <td class="paramtype">const <a class="el" href="group__axis2__config.html#gd32db334e748bbdcaebd55156e493d3b">axis2_conf_t</a> *&nbsp;</td>
          <td class="paramname"> <em>conf</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const <a class="el" href="structaxutil__env.html">axutil_env_t</a> *&nbsp;</td>
          <td class="paramname"> <em>env</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const axis2_char_t *&nbsp;</td>
          <td class="paramname"> <em>svc_grp_name</em></td><td>&nbsp;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td><td width="100%"><code> [read]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
Gets a named service group. <dl compact><dt><b>Parameters:</b></dt><dd>
  <table border="0" cellspacing="2" cellpadding="0">
    <tr><td valign="top"></td><td valign="top"><em>conf</em>&nbsp;</td><td>pointer to conf struct </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>env</em>&nbsp;</td><td>pointer to environment struct </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>svc_grp_name</em>&nbsp;</td><td>name of the service group to be accessed </td></tr>
  </table>
</dl>
<dl class="return" compact><dt><b>Returns:</b></dt><dd>pointer to service group with the given name if exists, else NULL. Returns a reference, not a cloned copy </dd></dl>

</div>
</div><p>
<a class="anchor" name="gbb3c960284024e19b4587a8bfe2f54d8"></a><!-- doxytag: member="axis2_conf.h::axis2_conf_get_transport_in" ref="gbb3c960284024e19b4587a8bfe2f54d8" args="(const axis2_conf_t *conf, const axutil_env_t *env, const AXIS2_TRANSPORT_ENUMS trans_enum)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">AXIS2_EXTERN <a class="el" href="group__axis2__transport__in__desc.html#g9185c8c5307454b74f49523666f7bda6">axis2_transport_in_desc_t</a>* axis2_conf_get_transport_in           </td>
          <td>(</td>
          <td class="paramtype">const <a class="el" href="group__axis2__config.html#gd32db334e748bbdcaebd55156e493d3b">axis2_conf_t</a> *&nbsp;</td>
          <td class="paramname"> <em>conf</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const <a class="el" href="structaxutil__env.html">axutil_env_t</a> *&nbsp;</td>
          <td class="paramname"> <em>env</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const AXIS2_TRANSPORT_ENUMS&nbsp;</td>
          <td class="paramname"> <em>trans_enum</em></td><td>&nbsp;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td><td width="100%"></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
Gets in transport corresponding to the given transport QName. <dl compact><dt><b>Parameters:</b></dt><dd>
  <table border="0" cellspacing="2" cellpadding="0">
    <tr><td valign="top"></td><td valign="top"><em>conf</em>&nbsp;</td><td>pointer to conf struct </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>env</em>&nbsp;</td><td>pointer to environment struct </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>qname</em>&nbsp;</td><td>QName of transport </td></tr>
  </table>
</dl>
<dl class="return" compact><dt><b>Returns:</b></dt><dd>pointer to transport in description if exists, else NULL. Returns a reference, not a cloned copy </dd></dl>

</div>
</div><p>
<a class="anchor" name="gaf9cf73e931cfb1fcb70206de2adaa26"></a><!-- doxytag: member="axis2_conf.h::axis2_conf_get_transport_out" ref="gaf9cf73e931cfb1fcb70206de2adaa26" args="(const axis2_conf_t *conf, const axutil_env_t *env, const AXIS2_TRANSPORT_ENUMS trans_enum)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">AXIS2_EXTERN <a class="el" href="group__axis2__transport__out__desc.html#g30caf90fd8fb7b0c89700bcb12e250df">axis2_transport_out_desc_t</a>* axis2_conf_get_transport_out           </td>
          <td>(</td>
          <td class="paramtype">const <a class="el" href="group__axis2__config.html#gd32db334e748bbdcaebd55156e493d3b">axis2_conf_t</a> *&nbsp;</td>
          <td class="paramname"> <em>conf</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const <a class="el" href="structaxutil__env.html">axutil_env_t</a> *&nbsp;</td>
          <td class="paramname"> <em>env</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const AXIS2_TRANSPORT_ENUMS&nbsp;</td>
          <td class="paramname"> <em>trans_enum</em></td><td>&nbsp;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td><td width="100%"></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
Gets out transport corresponding to the given transport QName. <dl compact><dt><b>Parameters:</b></dt><dd>
  <table border="0" cellspacing="2" cellpadding="0">
    <tr><td valign="top"></td><td valign="top"><em>conf</em>&nbsp;</td><td>pointer to conf struct </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>env</em>&nbsp;</td><td>pointer to environment strcut </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>qname</em>&nbsp;</td><td>pointer to transport qname </td></tr>
  </table>
</dl>
<dl class="return" compact><dt><b>Returns:</b></dt><dd>pointer to transport out description if exists, else NULL. Returns a reference, not a cloned copy </dd></dl>

</div>
</div><p>
<a class="anchor" name="g7756e8038846da3d822c690279ecfcc6"></a><!-- doxytag: member="axis2_conf.h::axis2_conf_is_engaged" ref="g7756e8038846da3d822c690279ecfcc6" args="(axis2_conf_t *conf, const axutil_env_t *env, const axutil_qname_t *module_name)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">AXIS2_EXTERN axis2_bool_t axis2_conf_is_engaged           </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="group__axis2__config.html#gd32db334e748bbdcaebd55156e493d3b">axis2_conf_t</a> *&nbsp;</td>
          <td class="paramname"> <em>conf</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const <a class="el" href="structaxutil__env.html">axutil_env_t</a> *&nbsp;</td>
          <td class="paramname"> <em>env</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const axutil_qname_t *&nbsp;</td>
          <td class="paramname"> <em>module_name</em></td><td>&nbsp;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td><td width="100%"></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
Checks is the named module is engaged. <dl compact><dt><b>Parameters:</b></dt><dd>
  <table border="0" cellspacing="2" cellpadding="0">
    <tr><td valign="top"></td><td valign="top"><em>conf</em>&nbsp;</td><td>pointer to conf struct </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>env</em>&nbsp;</td><td>pointer to environment struct </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>module_name</em>&nbsp;</td><td>pointer to QName representing the module name </td></tr>
  </table>
</dl>
<dl class="return" compact><dt><b>Returns:</b></dt><dd>AXIS2_TRUE if named module is engaged, else AXIS2_FALSE </dd></dl>

</div>
</div><p>
<a class="anchor" name="g8fe2754bf14d3965c99a32b92909cb1d"></a><!-- doxytag: member="axis2_conf.h::axis2_conf_is_param_locked" ref="g8fe2754bf14d3965c99a32b92909cb1d" args="(const axis2_conf_t *conf, const axutil_env_t *env, const axis2_char_t *param_name)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">AXIS2_EXTERN axis2_bool_t axis2_conf_is_param_locked           </td>
          <td>(</td>
          <td class="paramtype">const <a class="el" href="group__axis2__config.html#gd32db334e748bbdcaebd55156e493d3b">axis2_conf_t</a> *&nbsp;</td>
          <td class="paramname"> <em>conf</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const <a class="el" href="structaxutil__env.html">axutil_env_t</a> *&nbsp;</td>
          <td class="paramname"> <em>env</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const axis2_char_t *&nbsp;</td>
          <td class="paramname"> <em>param_name</em></td><td>&nbsp;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td><td width="100%"></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
Checks if the named parameter is locked. <dl compact><dt><b>Parameters:</b></dt><dd>
  <table border="0" cellspacing="2" cellpadding="0">
    <tr><td valign="top"></td><td valign="top"><em>conf</em>&nbsp;</td><td>pointer to conf struct </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>env</em>&nbsp;</td><td>pointer to environment struct </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>param_name</em>&nbsp;</td><td>name of the parameter </td></tr>
  </table>
</dl>
<dl class="return" compact><dt><b>Returns:</b></dt><dd>AXIS2_TRUE if parameter is locked, else AXIS2_FALSE </dd></dl>

</div>
</div><p>
<a class="anchor" name="gd35639715fb90bc32ea9f04cbfaffede"></a><!-- doxytag: member="axis2_conf.h::axis2_conf_remove_svc" ref="gd35639715fb90bc32ea9f04cbfaffede" args="(axis2_conf_t *conf, const axutil_env_t *env, const axis2_char_t *name)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">AXIS2_EXTERN axis2_status_t axis2_conf_remove_svc           </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="group__axis2__config.html#gd32db334e748bbdcaebd55156e493d3b">axis2_conf_t</a> *&nbsp;</td>
          <td class="paramname"> <em>conf</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const <a class="el" href="structaxutil__env.html">axutil_env_t</a> *&nbsp;</td>
          <td class="paramname"> <em>env</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const axis2_char_t *&nbsp;</td>
          <td class="paramname"> <em>name</em></td><td>&nbsp;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td><td width="100%"></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
Removes the named service from configuration. <dl compact><dt><b>Parameters:</b></dt><dd>
  <table border="0" cellspacing="2" cellpadding="0">
    <tr><td valign="top"></td><td valign="top"><em>conf</em>&nbsp;</td><td>pointer to conf struct </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>env</em>&nbsp;</td><td>pointer to environment struct </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>name</em>&nbsp;</td><td>name of service to be removed </td></tr>
  </table>
</dl>
<dl class="return" compact><dt><b>Returns:</b></dt><dd>AXIS2_SUCCESS on success, else AXIS2_FAILURE </dd></dl>

</div>
</div><p>
<a class="anchor" name="g9752b59114c2e54f0df629ffe9c27657"></a><!-- doxytag: member="axis2_conf.h::axis2_conf_set_axis2_xml" ref="g9752b59114c2e54f0df629ffe9c27657" args="(axis2_conf_t *conf, const axutil_env_t *env, axis2_char_t *axis2_xml)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">AXIS2_EXTERN axis2_status_t axis2_conf_set_axis2_xml           </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="group__axis2__config.html#gd32db334e748bbdcaebd55156e493d3b">axis2_conf_t</a> *&nbsp;</td>
          <td class="paramname"> <em>conf</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const <a class="el" href="structaxutil__env.html">axutil_env_t</a> *&nbsp;</td>
          <td class="paramname"> <em>env</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">axis2_char_t *&nbsp;</td>
          <td class="paramname"> <em>axis2_xml</em></td><td>&nbsp;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td><td width="100%"></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
Sets the axis2.xml location. <dl compact><dt><b>Parameters:</b></dt><dd>
  <table border="0" cellspacing="2" cellpadding="0">
    <tr><td valign="top"></td><td valign="top"><em>conf</em>&nbsp;</td><td>pointer to conf struct </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>env</em>&nbsp;</td><td>pointer to environment struct </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>axis2_xml</em>&nbsp;</td><td>repository location as a string </td></tr>
  </table>
</dl>
<dl class="return" compact><dt><b>Returns:</b></dt><dd>AXIS2_SUCCESS on success, else AXIS2_FAILURE </dd></dl>

</div>
</div><p>
<a class="anchor" name="g325b14f8715288333af6003ece30414d"></a><!-- doxytag: member="axis2_conf.h::axis2_conf_set_default_dispatchers" ref="g325b14f8715288333af6003ece30414d" args="(axis2_conf_t *conf, const axutil_env_t *env)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">AXIS2_EXTERN axis2_status_t axis2_conf_set_default_dispatchers           </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="group__axis2__config.html#gd32db334e748bbdcaebd55156e493d3b">axis2_conf_t</a> *&nbsp;</td>
          <td class="paramname"> <em>conf</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const <a class="el" href="structaxutil__env.html">axutil_env_t</a> *&nbsp;</td>
          <td class="paramname"> <em>env</em></td><td>&nbsp;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td><td width="100%"></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
Sets the default dispatchers. <dl compact><dt><b>Parameters:</b></dt><dd>
  <table border="0" cellspacing="2" cellpadding="0">
    <tr><td valign="top"></td><td valign="top"><em>conf</em>&nbsp;</td><td>pointer to conf struct </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>env</em>&nbsp;</td><td>pointer to environment struct </td></tr>
  </table>
</dl>
<dl class="return" compact><dt><b>Returns:</b></dt><dd>AXIS2_SUCCESS on success, else AXIS2_FAILURE </dd></dl>

</div>
</div><p>
<a class="anchor" name="gddbe656d37ee7d94bdfbaa1a3f293bbd"></a><!-- doxytag: member="axis2_conf.h::axis2_conf_set_dep_engine" ref="gddbe656d37ee7d94bdfbaa1a3f293bbd" args="(axis2_conf_t *conf, const axutil_env_t *env, struct axis2_dep_engine *dep_engine)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">AXIS2_EXTERN axis2_status_t axis2_conf_set_dep_engine           </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="group__axis2__config.html#gd32db334e748bbdcaebd55156e493d3b">axis2_conf_t</a> *&nbsp;</td>
          <td class="paramname"> <em>conf</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const <a class="el" href="structaxutil__env.html">axutil_env_t</a> *&nbsp;</td>
          <td class="paramname"> <em>env</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">struct axis2_dep_engine *&nbsp;</td>
          <td class="paramname"> <em>dep_engine</em></td><td>&nbsp;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td><td width="100%"></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
Sets the deployment engine. <dl compact><dt><b>Parameters:</b></dt><dd>
  <table border="0" cellspacing="2" cellpadding="0">
    <tr><td valign="top"></td><td valign="top"><em>conf</em>&nbsp;</td><td>pointer to conf struct </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>env</em>&nbsp;</td><td>pointer to environment struct </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>dep_engine</em>&nbsp;</td><td>pointer to dep_engine struct </td></tr>
  </table>
</dl>
<dl class="return" compact><dt><b>Returns:</b></dt><dd>AXIS2_SUCCESS on success, else AXIS2_FAILURE </dd></dl>

</div>
</div><p>
<a class="anchor" name="g131077965ba3a728525239560327a9e5"></a><!-- doxytag: member="axis2_conf.h::axis2_conf_set_dispatch_phase" ref="g131077965ba3a728525239560327a9e5" args="(axis2_conf_t *conf, const axutil_env_t *env, axis2_phase_t *dispatch)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">AXIS2_EXTERN axis2_status_t axis2_conf_set_dispatch_phase           </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="group__axis2__config.html#gd32db334e748bbdcaebd55156e493d3b">axis2_conf_t</a> *&nbsp;</td>
          <td class="paramname"> <em>conf</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const <a class="el" href="structaxutil__env.html">axutil_env_t</a> *&nbsp;</td>
          <td class="paramname"> <em>env</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype"><a class="el" href="group__axis2__phase.html#gbd87daad5497d3a4d756e20c008e3ac4">axis2_phase_t</a> *&nbsp;</td>
          <td class="paramname"> <em>dispatch</em></td><td>&nbsp;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td><td width="100%"></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
Sets a custom dispatching phase. <dl compact><dt><b>Parameters:</b></dt><dd>
  <table border="0" cellspacing="2" cellpadding="0">
    <tr><td valign="top"></td><td valign="top"><em>conf</em>&nbsp;</td><td>pointer to conf struct </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>env</em>&nbsp;</td><td>pointer to environment struct </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>dispatch</em>&nbsp;</td><td>pointer to phase to be dispatched </td></tr>
  </table>
</dl>
<dl class="return" compact><dt><b>Returns:</b></dt><dd>AXIS2_SUCCESS on success, else AXIS2_FAILURE </dd></dl>

</div>
</div><p>
<a class="anchor" name="gb9219d57c1060b93d19a39cc95ced711"></a><!-- doxytag: member="axis2_conf.h::axis2_conf_set_in_fault_phases" ref="gb9219d57c1060b93d19a39cc95ced711" args="(axis2_conf_t *conf, const axutil_env_t *env, axutil_array_list_t *list)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">AXIS2_EXTERN axis2_status_t axis2_conf_set_in_fault_phases           </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="group__axis2__config.html#gd32db334e748bbdcaebd55156e493d3b">axis2_conf_t</a> *&nbsp;</td>
          <td class="paramname"> <em>conf</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const <a class="el" href="structaxutil__env.html">axutil_env_t</a> *&nbsp;</td>
          <td class="paramname"> <em>env</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype"><a class="el" href="group__axutil__array__list.html#g1a6a89777db876cfa0cc86787b7be6a0">axutil_array_list_t</a> *&nbsp;</td>
          <td class="paramname"> <em>list</em></td><td>&nbsp;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td><td width="100%"></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
Sets fault phases for in path. <dl compact><dt><b>Parameters:</b></dt><dd>
  <table border="0" cellspacing="2" cellpadding="0">
    <tr><td valign="top"></td><td valign="top"><em>conf</em>&nbsp;</td><td>pointer to conf struct </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>env</em>&nbsp;</td><td>pointer to environment struct </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>list</em>&nbsp;</td><td>pointer to array list of phases </td></tr>
  </table>
</dl>
<dl class="return" compact><dt><b>Returns:</b></dt><dd>AXIS2_SUCCESS on success, else AXIS2_FAILURE </dd></dl>

</div>
</div><p>
<a class="anchor" name="g4c4a1f282d942f596e29fb2699afff42"></a><!-- doxytag: member="axis2_conf.h::axis2_conf_set_out_fault_phases" ref="g4c4a1f282d942f596e29fb2699afff42" args="(axis2_conf_t *conf, const axutil_env_t *env, axutil_array_list_t *list)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">AXIS2_EXTERN axis2_status_t axis2_conf_set_out_fault_phases           </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="group__axis2__config.html#gd32db334e748bbdcaebd55156e493d3b">axis2_conf_t</a> *&nbsp;</td>
          <td class="paramname"> <em>conf</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const <a class="el" href="structaxutil__env.html">axutil_env_t</a> *&nbsp;</td>
          <td class="paramname"> <em>env</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype"><a class="el" href="group__axutil__array__list.html#g1a6a89777db876cfa0cc86787b7be6a0">axutil_array_list_t</a> *&nbsp;</td>
          <td class="paramname"> <em>list</em></td><td>&nbsp;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td><td width="100%"></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
Sets fault phases for out path. <dl compact><dt><b>Parameters:</b></dt><dd>
  <table border="0" cellspacing="2" cellpadding="0">
    <tr><td valign="top"></td><td valign="top"><em>conf</em>&nbsp;</td><td>pointer to conf struct </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>env</em>&nbsp;</td><td>pointer to environment struct </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>list</em>&nbsp;</td><td>pointer to array list of phases </td></tr>
  </table>
</dl>
<dl class="return" compact><dt><b>Returns:</b></dt><dd>AXIS2_SUCCESS on success, else AXIS2_FAILURE </dd></dl>

</div>
</div><p>
<a class="anchor" name="g70e492fdfb83180cab77006979ce10e0"></a><!-- doxytag: member="axis2_conf.h::axis2_conf_set_out_phases" ref="g70e492fdfb83180cab77006979ce10e0" args="(axis2_conf_t *conf, const axutil_env_t *env, axutil_array_list_t *out_phases)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">AXIS2_EXTERN axis2_status_t axis2_conf_set_out_phases           </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="group__axis2__config.html#gd32db334e748bbdcaebd55156e493d3b">axis2_conf_t</a> *&nbsp;</td>
          <td class="paramname"> <em>conf</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const <a class="el" href="structaxutil__env.html">axutil_env_t</a> *&nbsp;</td>
          <td class="paramname"> <em>env</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype"><a class="el" href="group__axutil__array__list.html#g1a6a89777db876cfa0cc86787b7be6a0">axutil_array_list_t</a> *&nbsp;</td>
          <td class="paramname"> <em>out_phases</em></td><td>&nbsp;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td><td width="100%"></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
Sets the list of out phases. <dl compact><dt><b>Parameters:</b></dt><dd>
  <table border="0" cellspacing="2" cellpadding="0">
    <tr><td valign="top"></td><td valign="top"><em>conf</em>&nbsp;</td><td>pointer to conf struct </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>env</em>&nbsp;</td><td>pointer to environment struct </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>out_phases</em>&nbsp;</td><td>pointer to array list of the phases. conf assumes ownership of the struct </td></tr>
  </table>
</dl>
<dl class="return" compact><dt><b>Returns:</b></dt><dd>AXIS2_SUCCESS on success, else AXIS2_FAILURE </dd></dl>

</div>
</div><p>
<a class="anchor" name="g7a51cf9382faf1e4d2cb9440cea1eb83"></a><!-- doxytag: member="axis2_conf.h::axis2_conf_set_phases_info" ref="g7a51cf9382faf1e4d2cb9440cea1eb83" args="(axis2_conf_t *conf, const axutil_env_t *env, struct axis2_phases_info *phases_info)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">AXIS2_EXTERN axis2_status_t axis2_conf_set_phases_info           </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="group__axis2__config.html#gd32db334e748bbdcaebd55156e493d3b">axis2_conf_t</a> *&nbsp;</td>
          <td class="paramname"> <em>conf</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const <a class="el" href="structaxutil__env.html">axutil_env_t</a> *&nbsp;</td>
          <td class="paramname"> <em>env</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">struct axis2_phases_info *&nbsp;</td>
          <td class="paramname"> <em>phases_info</em></td><td>&nbsp;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td><td width="100%"></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
Sets phases information struct. <dl compact><dt><b>Parameters:</b></dt><dd>
  <table border="0" cellspacing="2" cellpadding="0">
    <tr><td valign="top"></td><td valign="top"><em>conf</em>&nbsp;</td><td>pointer to conf struct </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>env</em>&nbsp;</td><td>pointer to environment struct </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>phases_info</em>&nbsp;</td><td>pointer to phases_info struct. conf assumes ownership of the struct </td></tr>
  </table>
</dl>
<dl class="return" compact><dt><b>Returns:</b></dt><dd>AXIS2_SUCCESS on success, else AXIS2_FAILURE </dd></dl>

</div>
</div><p>
<a class="anchor" name="g9b73dd9150ace3dca82364a4c77e0f7a"></a><!-- doxytag: member="axis2_conf.h::axis2_conf_set_repo" ref="g9b73dd9150ace3dca82364a4c77e0f7a" args="(axis2_conf_t *conf, const axutil_env_t *env, axis2_char_t *axis2_repo)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">AXIS2_EXTERN axis2_status_t axis2_conf_set_repo           </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="group__axis2__config.html#gd32db334e748bbdcaebd55156e493d3b">axis2_conf_t</a> *&nbsp;</td>
          <td class="paramname"> <em>conf</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const <a class="el" href="structaxutil__env.html">axutil_env_t</a> *&nbsp;</td>
          <td class="paramname"> <em>env</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">axis2_char_t *&nbsp;</td>
          <td class="paramname"> <em>axis2_repo</em></td><td>&nbsp;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td><td width="100%"></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
Sets the repository location. <dl compact><dt><b>Parameters:</b></dt><dd>
  <table border="0" cellspacing="2" cellpadding="0">
    <tr><td valign="top"></td><td valign="top"><em>conf</em>&nbsp;</td><td>pointer to conf struct </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>env</em>&nbsp;</td><td>pointer to environment struct </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>axis2_repo</em>&nbsp;</td><td>repository location as a string </td></tr>
  </table>
</dl>
<dl class="return" compact><dt><b>Returns:</b></dt><dd>AXIS2_SUCCESS on success, else AXIS2_FAILURE </dd></dl>

</div>
</div><p>
<hr size="1"><address style="text-align: right;"><small>Generated on Fri Apr 17 11:49:44 2009 for Axis2/C by&nbsp;
<a href="http://www.doxygen.org/index.html">
<img src="doxygen.png" alt="doxygen" align="middle" border="0"></a> 1.5.3 </small></address>
</body>
</html>


<|start_filename|>xdocs/api/html/group__axis2__http__simple__request.html<|end_filename|>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html><head><meta http-equiv="Content-Type" content="text/html;charset=UTF-8">
<title>Axis2/C: http simple request</title>
<link href="doxygen.css" rel="stylesheet" type="text/css">
<link href="tabs.css" rel="stylesheet" type="text/css">
</head><body>
<!-- Generated by Doxygen 1.5.3 -->
<div class="tabs">
  <ul>
    <li><a href="index.html"><span>Main&nbsp;Page</span></a></li>
    <li><a href="modules.html"><span>Modules</span></a></li>
    <li><a href="annotated.html"><span>Classes</span></a></li>
    <li><a href="files.html"><span>Files</span></a></li>
    <li><a href="dirs.html"><span>Directories</span></a></li>
    <li><a href="pages.html"><span>Related&nbsp;Pages</span></a></li>
    <li><a href="examples.html"><span>Examples</span></a></li>
    <li>
      <form action="search.php" method="get">
        <table cellspacing="0" cellpadding="0" border="0">
          <tr>
            <td><label>&nbsp;<u>S</u>earch&nbsp;for&nbsp;</label></td>
            <td><input type="text" name="query" value="" size="20" accesskey="s"/></td>
          </tr>
        </table>
      </form>
    </li>
  </ul>
</div>
<h1>http simple request<br>
<small>
[<a class="el" href="group__axis2__core__trans__http.html">http transport</a>]</small>
</h1><table border="0" cellpadding="0" cellspacing="0">
<tr><td></td></tr>
<tr><td colspan="2"><br><h2>Files</h2></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top">file &nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="axis2__http__simple__request_8h.html">axis2_http_simple_request.h</a></td></tr>

<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">axis2 HTTP Simple Request <br></td></tr>

<p>
<tr><td colspan="2"><br><h2>Typedefs</h2></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top">typedef struct <br>
axis2_http_simple_request&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__axis2__http__simple__request.html#g587c6b13c2e9b94b68e3a2a142cc3416">axis2_http_simple_request_t</a></td></tr>

<tr><td colspan="2"><br><h2>Functions</h2></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top">AXIS2_EXTERN <br>
<a class="el" href="group__axis2__http__request__line.html#g1070304508a3dd97050d86758db6b3e4">axis2_http_request_line_t</a> *&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__axis2__http__simple__request.html#g6ac660f82dcc2f279f88179c9c8e93a1">axis2_http_simple_request_get_request_line</a> (const <a class="el" href="group__axis2__http__simple__request.html#g587c6b13c2e9b94b68e3a2a142cc3416">axis2_http_simple_request_t</a> *simple_request, const <a class="el" href="structaxutil__env.html">axutil_env_t</a> *env)</td></tr>

<tr><td class="memItemLeft" nowrap align="right" valign="top">AXIS2_EXTERN <br>
axis2_status_t&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__axis2__http__simple__request.html#gb86fa24c5e3e0a99591bf8b3cb48dd20">axis2_http_simple_request_set_request_line</a> (<a class="el" href="group__axis2__http__simple__request.html#g587c6b13c2e9b94b68e3a2a142cc3416">axis2_http_simple_request_t</a> *simple_request, const <a class="el" href="structaxutil__env.html">axutil_env_t</a> *env, <a class="el" href="group__axis2__http__request__line.html#g1070304508a3dd97050d86758db6b3e4">axis2_http_request_line_t</a> *request_line)</td></tr>

<tr><td class="memItemLeft" nowrap align="right" valign="top">AXIS2_EXTERN axis2_bool_t&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__axis2__http__simple__request.html#gbf7dd0d486ee2058b0ffb1db75510c7f">axis2_http_simple_request_contains_header</a> (<a class="el" href="group__axis2__http__simple__request.html#g587c6b13c2e9b94b68e3a2a142cc3416">axis2_http_simple_request_t</a> *simple_request, const <a class="el" href="structaxutil__env.html">axutil_env_t</a> *env, const axis2_char_t *name)</td></tr>

<tr><td class="memItemLeft" nowrap align="right" valign="top">AXIS2_EXTERN <br>
<a class="el" href="group__axutil__array__list.html#g1a6a89777db876cfa0cc86787b7be6a0">axutil_array_list_t</a> *&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__axis2__http__simple__request.html#g9fe9677642fa793af996875b3cee31d9">axis2_http_simple_request_get_headers</a> (const <a class="el" href="group__axis2__http__simple__request.html#g587c6b13c2e9b94b68e3a2a142cc3416">axis2_http_simple_request_t</a> *simple_request, const <a class="el" href="structaxutil__env.html">axutil_env_t</a> *env)</td></tr>

<tr><td class="memItemLeft" nowrap align="right" valign="top">AXIS2_EXTERN <br>
<a class="el" href="group__axis2__http__header.html#gd8f14a5acb342f2f99bcfe3c71e7857e">axis2_http_header_t</a> *&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__axis2__http__simple__request.html#gf9b0570c70ee242116e4208dca302273">axis2_http_simple_request_get_first_header</a> (const <a class="el" href="group__axis2__http__simple__request.html#g587c6b13c2e9b94b68e3a2a142cc3416">axis2_http_simple_request_t</a> *simple_request, const <a class="el" href="structaxutil__env.html">axutil_env_t</a> *env, const axis2_char_t *str)</td></tr>

<tr><td class="memItemLeft" nowrap align="right" valign="top">AXIS2_EXTERN <br>
axis2_status_t&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__axis2__http__simple__request.html#g13c4f13d8fb1461784477498c78624d0">axis2_http_simple_request_remove_headers</a> (<a class="el" href="group__axis2__http__simple__request.html#g587c6b13c2e9b94b68e3a2a142cc3416">axis2_http_simple_request_t</a> *simple_request, const <a class="el" href="structaxutil__env.html">axutil_env_t</a> *env, const axis2_char_t *str)</td></tr>

<tr><td class="memItemLeft" nowrap align="right" valign="top">AXIS2_EXTERN <br>
axis2_status_t&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__axis2__http__simple__request.html#g8451d9b42f770193cf5d4d5d2b699710">axis2_http_simple_request_add_header</a> (<a class="el" href="group__axis2__http__simple__request.html#g587c6b13c2e9b94b68e3a2a142cc3416">axis2_http_simple_request_t</a> *simple_request, const <a class="el" href="structaxutil__env.html">axutil_env_t</a> *env, <a class="el" href="group__axis2__http__header.html#gd8f14a5acb342f2f99bcfe3c71e7857e">axis2_http_header_t</a> *header)</td></tr>

<tr><td class="memItemLeft" nowrap align="right" valign="top">AXIS2_EXTERN const <br>
axis2_char_t *&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__axis2__http__simple__request.html#g74b99f552c7acdf24cfdc693ac77f732">axis2_http_simple_request_get_content_type</a> (const <a class="el" href="group__axis2__http__simple__request.html#g587c6b13c2e9b94b68e3a2a142cc3416">axis2_http_simple_request_t</a> *simple_request, const <a class="el" href="structaxutil__env.html">axutil_env_t</a> *env)</td></tr>

<tr><td class="memItemLeft" nowrap align="right" valign="top">AXIS2_EXTERN const <br>
axis2_char_t *&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__axis2__http__simple__request.html#g340aaf878e94c5e010931b4a1de7a230">axis2_http_simple_request_get_charset</a> (const <a class="el" href="group__axis2__http__simple__request.html#g587c6b13c2e9b94b68e3a2a142cc3416">axis2_http_simple_request_t</a> *simple_request, const <a class="el" href="structaxutil__env.html">axutil_env_t</a> *env)</td></tr>

<tr><td class="memItemLeft" nowrap align="right" valign="top">AXIS2_EXTERN <br>
axis2_ssize_t&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__axis2__http__simple__request.html#g240a77f497fd89d640f9e7364263647f">axis2_http_simple_request_get_content_length</a> (const <a class="el" href="group__axis2__http__simple__request.html#g587c6b13c2e9b94b68e3a2a142cc3416">axis2_http_simple_request_t</a> *simple_request, const <a class="el" href="structaxutil__env.html">axutil_env_t</a> *env)</td></tr>

<tr><td class="memItemLeft" nowrap align="right" valign="top">AXIS2_EXTERN <br>
axutil_stream_t *&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__axis2__http__simple__request.html#g96fc519ef12d1ceeb0a8e7c139217331">axis2_http_simple_request_get_body</a> (const <a class="el" href="group__axis2__http__simple__request.html#g587c6b13c2e9b94b68e3a2a142cc3416">axis2_http_simple_request_t</a> *simple_request, const <a class="el" href="structaxutil__env.html">axutil_env_t</a> *env)</td></tr>

<tr><td class="memItemLeft" nowrap align="right" valign="top">AXIS2_EXTERN <br>
axis2_ssize_t&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__axis2__http__simple__request.html#ge431df3effadffc3192024b49dffc4bd">axis2_http_simple_request_get_body_bytes</a> (const <a class="el" href="group__axis2__http__simple__request.html#g587c6b13c2e9b94b68e3a2a142cc3416">axis2_http_simple_request_t</a> *simple_request, const <a class="el" href="structaxutil__env.html">axutil_env_t</a> *env, char **buf)</td></tr>

<tr><td class="memItemLeft" nowrap align="right" valign="top">AXIS2_EXTERN <br>
axis2_status_t&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__axis2__http__simple__request.html#gcc978b2478be7c335d62ba8855dddb20">axis2_http_simple_request_set_body_string</a> (<a class="el" href="group__axis2__http__simple__request.html#g587c6b13c2e9b94b68e3a2a142cc3416">axis2_http_simple_request_t</a> *simple_request, const <a class="el" href="structaxutil__env.html">axutil_env_t</a> *env, void *str, unsigned int str_len)</td></tr>

<tr><td class="memItemLeft" nowrap align="right" valign="top">AXIS2_EXTERN void&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__axis2__http__simple__request.html#gaeb4abc4abfbf9b5789b986c1bf47d48">axis2_http_simple_request_free</a> (<a class="el" href="group__axis2__http__simple__request.html#g587c6b13c2e9b94b68e3a2a142cc3416">axis2_http_simple_request_t</a> *simple_request, const <a class="el" href="structaxutil__env.html">axutil_env_t</a> *env)</td></tr>

<tr><td class="memItemLeft" nowrap align="right" valign="top">AXIS2_EXTERN <br>
<a class="el" href="group__axis2__http__simple__request.html#g587c6b13c2e9b94b68e3a2a142cc3416">axis2_http_simple_request_t</a> *&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__axis2__http__simple__request.html#g1ede2c7bbd3f657b898f2b98c97e2a20">axis2_http_simple_request_create</a> (const <a class="el" href="structaxutil__env.html">axutil_env_t</a> *env, <a class="el" href="group__axis2__http__request__line.html#g1070304508a3dd97050d86758db6b3e4">axis2_http_request_line_t</a> *request_line, <a class="el" href="group__axis2__http__header.html#gd8f14a5acb342f2f99bcfe3c71e7857e">axis2_http_header_t</a> **http_headers, axis2_ssize_t http_hdr_count, axutil_stream_t *content)</td></tr>

</table>
<hr><h2>Typedef Documentation</h2>
<a class="anchor" name="g587c6b13c2e9b94b68e3a2a142cc3416"></a><!-- doxytag: member="axis2_http_simple_request.h::axis2_http_simple_request_t" ref="g587c6b13c2e9b94b68e3a2a142cc3416" args="" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">typedef struct axis2_http_simple_request <a class="el" href="group__axis2__http__simple__request.html#g587c6b13c2e9b94b68e3a2a142cc3416">axis2_http_simple_request_t</a>          </td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
Type name for struct axis2_http_simple_request 
</div>
</div><p>
<hr><h2>Function Documentation</h2>
<a class="anchor" name="g8451d9b42f770193cf5d4d5d2b699710"></a><!-- doxytag: member="axis2_http_simple_request.h::axis2_http_simple_request_add_header" ref="g8451d9b42f770193cf5d4d5d2b699710" args="(axis2_http_simple_request_t *simple_request, const axutil_env_t *env, axis2_http_header_t *header)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">AXIS2_EXTERN axis2_status_t axis2_http_simple_request_add_header           </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="group__axis2__http__simple__request.html#g587c6b13c2e9b94b68e3a2a142cc3416">axis2_http_simple_request_t</a> *&nbsp;</td>
          <td class="paramname"> <em>simple_request</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const <a class="el" href="structaxutil__env.html">axutil_env_t</a> *&nbsp;</td>
          <td class="paramname"> <em>env</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype"><a class="el" href="group__axis2__http__header.html#gd8f14a5acb342f2f99bcfe3c71e7857e">axis2_http_header_t</a> *&nbsp;</td>
          <td class="paramname"> <em>header</em></td><td>&nbsp;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td><td width="100%"></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
<dl compact><dt><b>Parameters:</b></dt><dd>
  <table border="0" cellspacing="2" cellpadding="0">
    <tr><td valign="top"></td><td valign="top"><em>simple_request</em>&nbsp;</td><td>pointer to simple request </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>env</em>&nbsp;</td><td>pointer to environment struct </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>header</em>&nbsp;</td><td>pointer to header </td></tr>
  </table>
</dl>
<dl class="return" compact><dt><b>Returns:</b></dt><dd>AXIS2_SUCCESS on success, else AXIS2_FAILURE </dd></dl>

</div>
</div><p>
<a class="anchor" name="gbf7dd0d486ee2058b0ffb1db75510c7f"></a><!-- doxytag: member="axis2_http_simple_request.h::axis2_http_simple_request_contains_header" ref="gbf7dd0d486ee2058b0ffb1db75510c7f" args="(axis2_http_simple_request_t *simple_request, const axutil_env_t *env, const axis2_char_t *name)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">AXIS2_EXTERN axis2_bool_t axis2_http_simple_request_contains_header           </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="group__axis2__http__simple__request.html#g587c6b13c2e9b94b68e3a2a142cc3416">axis2_http_simple_request_t</a> *&nbsp;</td>
          <td class="paramname"> <em>simple_request</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const <a class="el" href="structaxutil__env.html">axutil_env_t</a> *&nbsp;</td>
          <td class="paramname"> <em>env</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const axis2_char_t *&nbsp;</td>
          <td class="paramname"> <em>name</em></td><td>&nbsp;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td><td width="100%"></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
<dl compact><dt><b>Parameters:</b></dt><dd>
  <table border="0" cellspacing="2" cellpadding="0">
    <tr><td valign="top"></td><td valign="top"><em>simple_request</em>&nbsp;</td><td>pointer to simple request </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>env</em>&nbsp;</td><td>pointer to environment struct </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>name</em>&nbsp;</td><td>pointer to name </td></tr>
  </table>
</dl>

</div>
</div><p>
<a class="anchor" name="g1ede2c7bbd3f657b898f2b98c97e2a20"></a><!-- doxytag: member="axis2_http_simple_request.h::axis2_http_simple_request_create" ref="g1ede2c7bbd3f657b898f2b98c97e2a20" args="(const axutil_env_t *env, axis2_http_request_line_t *request_line, axis2_http_header_t **http_headers, axis2_ssize_t http_hdr_count, axutil_stream_t *content)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">AXIS2_EXTERN <a class="el" href="group__axis2__http__simple__request.html#g587c6b13c2e9b94b68e3a2a142cc3416">axis2_http_simple_request_t</a>* axis2_http_simple_request_create           </td>
          <td>(</td>
          <td class="paramtype">const <a class="el" href="structaxutil__env.html">axutil_env_t</a> *&nbsp;</td>
          <td class="paramname"> <em>env</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype"><a class="el" href="group__axis2__http__request__line.html#g1070304508a3dd97050d86758db6b3e4">axis2_http_request_line_t</a> *&nbsp;</td>
          <td class="paramname"> <em>request_line</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype"><a class="el" href="group__axis2__http__header.html#gd8f14a5acb342f2f99bcfe3c71e7857e">axis2_http_header_t</a> **&nbsp;</td>
          <td class="paramname"> <em>http_headers</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">axis2_ssize_t&nbsp;</td>
          <td class="paramname"> <em>http_hdr_count</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">axutil_stream_t *&nbsp;</td>
          <td class="paramname"> <em>content</em></td><td>&nbsp;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td><td width="100%"></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
<dl compact><dt><b>Parameters:</b></dt><dd>
  <table border="0" cellspacing="2" cellpadding="0">
    <tr><td valign="top"></td><td valign="top"><em>env</em>&nbsp;</td><td>pointer to environment struct </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>request_line</em>&nbsp;</td><td>pointer to request line </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>http_headers</em>&nbsp;</td><td>double pointer to http headers </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>http_hdr_count</em>&nbsp;</td><td></td></tr>
    <tr><td valign="top"></td><td valign="top"><em>content</em>&nbsp;</td><td>pointer to content </td></tr>
  </table>
</dl>

</div>
</div><p>
<a class="anchor" name="gaeb4abc4abfbf9b5789b986c1bf47d48"></a><!-- doxytag: member="axis2_http_simple_request.h::axis2_http_simple_request_free" ref="gaeb4abc4abfbf9b5789b986c1bf47d48" args="(axis2_http_simple_request_t *simple_request, const axutil_env_t *env)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">AXIS2_EXTERN void axis2_http_simple_request_free           </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="group__axis2__http__simple__request.html#g587c6b13c2e9b94b68e3a2a142cc3416">axis2_http_simple_request_t</a> *&nbsp;</td>
          <td class="paramname"> <em>simple_request</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const <a class="el" href="structaxutil__env.html">axutil_env_t</a> *&nbsp;</td>
          <td class="paramname"> <em>env</em></td><td>&nbsp;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td><td width="100%"></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
<dl compact><dt><b>Parameters:</b></dt><dd>
  <table border="0" cellspacing="2" cellpadding="0">
    <tr><td valign="top"></td><td valign="top"><em>simple_request</em>&nbsp;</td><td>pointer to simple request </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>env</em>&nbsp;</td><td>pointer to environment struct </td></tr>
  </table>
</dl>
<dl class="return" compact><dt><b>Returns:</b></dt><dd>void </dd></dl>

</div>
</div><p>
<a class="anchor" name="g96fc519ef12d1ceeb0a8e7c139217331"></a><!-- doxytag: member="axis2_http_simple_request.h::axis2_http_simple_request_get_body" ref="g96fc519ef12d1ceeb0a8e7c139217331" args="(const axis2_http_simple_request_t *simple_request, const axutil_env_t *env)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">AXIS2_EXTERN axutil_stream_t* axis2_http_simple_request_get_body           </td>
          <td>(</td>
          <td class="paramtype">const <a class="el" href="group__axis2__http__simple__request.html#g587c6b13c2e9b94b68e3a2a142cc3416">axis2_http_simple_request_t</a> *&nbsp;</td>
          <td class="paramname"> <em>simple_request</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const <a class="el" href="structaxutil__env.html">axutil_env_t</a> *&nbsp;</td>
          <td class="paramname"> <em>env</em></td><td>&nbsp;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td><td width="100%"></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
<dl compact><dt><b>Parameters:</b></dt><dd>
  <table border="0" cellspacing="2" cellpadding="0">
    <tr><td valign="top"></td><td valign="top"><em>simple_request</em>&nbsp;</td><td>pointer to simple request </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>env</em>&nbsp;</td><td>pointer to environment struct </td></tr>
  </table>
</dl>

</div>
</div><p>
<a class="anchor" name="ge431df3effadffc3192024b49dffc4bd"></a><!-- doxytag: member="axis2_http_simple_request.h::axis2_http_simple_request_get_body_bytes" ref="ge431df3effadffc3192024b49dffc4bd" args="(const axis2_http_simple_request_t *simple_request, const axutil_env_t *env, char **buf)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">AXIS2_EXTERN axis2_ssize_t axis2_http_simple_request_get_body_bytes           </td>
          <td>(</td>
          <td class="paramtype">const <a class="el" href="group__axis2__http__simple__request.html#g587c6b13c2e9b94b68e3a2a142cc3416">axis2_http_simple_request_t</a> *&nbsp;</td>
          <td class="paramname"> <em>simple_request</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const <a class="el" href="structaxutil__env.html">axutil_env_t</a> *&nbsp;</td>
          <td class="paramname"> <em>env</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">char **&nbsp;</td>
          <td class="paramname"> <em>buf</em></td><td>&nbsp;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td><td width="100%"></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
<dl compact><dt><b>Parameters:</b></dt><dd>
  <table border="0" cellspacing="2" cellpadding="0">
    <tr><td valign="top"></td><td valign="top"><em>simple_request</em>&nbsp;</td><td>pointer to simple request </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>env</em>&nbsp;</td><td>pointer to environment struct </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>buf</em>&nbsp;</td><td>double pointer to buf </td></tr>
  </table>
</dl>

</div>
</div><p>
<a class="anchor" name="g340aaf878e94c5e010931b4a1de7a230"></a><!-- doxytag: member="axis2_http_simple_request.h::axis2_http_simple_request_get_charset" ref="g340aaf878e94c5e010931b4a1de7a230" args="(const axis2_http_simple_request_t *simple_request, const axutil_env_t *env)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">AXIS2_EXTERN const axis2_char_t* axis2_http_simple_request_get_charset           </td>
          <td>(</td>
          <td class="paramtype">const <a class="el" href="group__axis2__http__simple__request.html#g587c6b13c2e9b94b68e3a2a142cc3416">axis2_http_simple_request_t</a> *&nbsp;</td>
          <td class="paramname"> <em>simple_request</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const <a class="el" href="structaxutil__env.html">axutil_env_t</a> *&nbsp;</td>
          <td class="paramname"> <em>env</em></td><td>&nbsp;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td><td width="100%"></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
<dl compact><dt><b>Parameters:</b></dt><dd>
  <table border="0" cellspacing="2" cellpadding="0">
    <tr><td valign="top"></td><td valign="top"><em>simple_request</em>&nbsp;</td><td>pointer to simple request </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>env</em>&nbsp;</td><td>pointer to environment struct </td></tr>
  </table>
</dl>

</div>
</div><p>
<a class="anchor" name="g240a77f497fd89d640f9e7364263647f"></a><!-- doxytag: member="axis2_http_simple_request.h::axis2_http_simple_request_get_content_length" ref="g240a77f497fd89d640f9e7364263647f" args="(const axis2_http_simple_request_t *simple_request, const axutil_env_t *env)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">AXIS2_EXTERN axis2_ssize_t axis2_http_simple_request_get_content_length           </td>
          <td>(</td>
          <td class="paramtype">const <a class="el" href="group__axis2__http__simple__request.html#g587c6b13c2e9b94b68e3a2a142cc3416">axis2_http_simple_request_t</a> *&nbsp;</td>
          <td class="paramname"> <em>simple_request</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const <a class="el" href="structaxutil__env.html">axutil_env_t</a> *&nbsp;</td>
          <td class="paramname"> <em>env</em></td><td>&nbsp;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td><td width="100%"></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
<dl compact><dt><b>Parameters:</b></dt><dd>
  <table border="0" cellspacing="2" cellpadding="0">
    <tr><td valign="top"></td><td valign="top"><em>simple_request</em>&nbsp;</td><td>pointer to simple request </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>env</em>&nbsp;</td><td>pointer to environment struct </td></tr>
  </table>
</dl>

</div>
</div><p>
<a class="anchor" name="g74b99f552c7acdf24cfdc693ac77f732"></a><!-- doxytag: member="axis2_http_simple_request.h::axis2_http_simple_request_get_content_type" ref="g74b99f552c7acdf24cfdc693ac77f732" args="(const axis2_http_simple_request_t *simple_request, const axutil_env_t *env)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">AXIS2_EXTERN const axis2_char_t* axis2_http_simple_request_get_content_type           </td>
          <td>(</td>
          <td class="paramtype">const <a class="el" href="group__axis2__http__simple__request.html#g587c6b13c2e9b94b68e3a2a142cc3416">axis2_http_simple_request_t</a> *&nbsp;</td>
          <td class="paramname"> <em>simple_request</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const <a class="el" href="structaxutil__env.html">axutil_env_t</a> *&nbsp;</td>
          <td class="paramname"> <em>env</em></td><td>&nbsp;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td><td width="100%"></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
<dl compact><dt><b>Parameters:</b></dt><dd>
  <table border="0" cellspacing="2" cellpadding="0">
    <tr><td valign="top"></td><td valign="top"><em>simple_request</em>&nbsp;</td><td>pointer to simple request </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>env</em>&nbsp;</td><td>pointer to environment struct </td></tr>
  </table>
</dl>

</div>
</div><p>
<a class="anchor" name="gf9b0570c70ee242116e4208dca302273"></a><!-- doxytag: member="axis2_http_simple_request.h::axis2_http_simple_request_get_first_header" ref="gf9b0570c70ee242116e4208dca302273" args="(const axis2_http_simple_request_t *simple_request, const axutil_env_t *env, const axis2_char_t *str)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">AXIS2_EXTERN <a class="el" href="group__axis2__http__header.html#gd8f14a5acb342f2f99bcfe3c71e7857e">axis2_http_header_t</a>* axis2_http_simple_request_get_first_header           </td>
          <td>(</td>
          <td class="paramtype">const <a class="el" href="group__axis2__http__simple__request.html#g587c6b13c2e9b94b68e3a2a142cc3416">axis2_http_simple_request_t</a> *&nbsp;</td>
          <td class="paramname"> <em>simple_request</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const <a class="el" href="structaxutil__env.html">axutil_env_t</a> *&nbsp;</td>
          <td class="paramname"> <em>env</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const axis2_char_t *&nbsp;</td>
          <td class="paramname"> <em>str</em></td><td>&nbsp;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td><td width="100%"></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
<dl compact><dt><b>Parameters:</b></dt><dd>
  <table border="0" cellspacing="2" cellpadding="0">
    <tr><td valign="top"></td><td valign="top"><em>simple_request</em>&nbsp;</td><td>pointer to simple request </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>env</em>&nbsp;</td><td>pointer to environment struct </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>str</em>&nbsp;</td><td>pointer to str </td></tr>
  </table>
</dl>

</div>
</div><p>
<a class="anchor" name="g9fe9677642fa793af996875b3cee31d9"></a><!-- doxytag: member="axis2_http_simple_request.h::axis2_http_simple_request_get_headers" ref="g9fe9677642fa793af996875b3cee31d9" args="(const axis2_http_simple_request_t *simple_request, const axutil_env_t *env)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">AXIS2_EXTERN <a class="el" href="group__axutil__array__list.html#g1a6a89777db876cfa0cc86787b7be6a0">axutil_array_list_t</a>* axis2_http_simple_request_get_headers           </td>
          <td>(</td>
          <td class="paramtype">const <a class="el" href="group__axis2__http__simple__request.html#g587c6b13c2e9b94b68e3a2a142cc3416">axis2_http_simple_request_t</a> *&nbsp;</td>
          <td class="paramname"> <em>simple_request</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const <a class="el" href="structaxutil__env.html">axutil_env_t</a> *&nbsp;</td>
          <td class="paramname"> <em>env</em></td><td>&nbsp;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td><td width="100%"></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
<dl compact><dt><b>Parameters:</b></dt><dd>
  <table border="0" cellspacing="2" cellpadding="0">
    <tr><td valign="top"></td><td valign="top"><em>simple_request</em>&nbsp;</td><td>pointer to simple request </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>env</em>&nbsp;</td><td>pointer to environment struct </td></tr>
  </table>
</dl>

</div>
</div><p>
<a class="anchor" name="g6ac660f82dcc2f279f88179c9c8e93a1"></a><!-- doxytag: member="axis2_http_simple_request.h::axis2_http_simple_request_get_request_line" ref="g6ac660f82dcc2f279f88179c9c8e93a1" args="(const axis2_http_simple_request_t *simple_request, const axutil_env_t *env)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">AXIS2_EXTERN <a class="el" href="group__axis2__http__request__line.html#g1070304508a3dd97050d86758db6b3e4">axis2_http_request_line_t</a>* axis2_http_simple_request_get_request_line           </td>
          <td>(</td>
          <td class="paramtype">const <a class="el" href="group__axis2__http__simple__request.html#g587c6b13c2e9b94b68e3a2a142cc3416">axis2_http_simple_request_t</a> *&nbsp;</td>
          <td class="paramname"> <em>simple_request</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const <a class="el" href="structaxutil__env.html">axutil_env_t</a> *&nbsp;</td>
          <td class="paramname"> <em>env</em></td><td>&nbsp;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td><td width="100%"></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
<dl compact><dt><b>Parameters:</b></dt><dd>
  <table border="0" cellspacing="2" cellpadding="0">
    <tr><td valign="top"></td><td valign="top"><em>simple_request</em>&nbsp;</td><td>pointer to simple request </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>env</em>&nbsp;</td><td>pointer to environment struct </td></tr>
  </table>
</dl>

</div>
</div><p>
<a class="anchor" name="g13c4f13d8fb1461784477498c78624d0"></a><!-- doxytag: member="axis2_http_simple_request.h::axis2_http_simple_request_remove_headers" ref="g13c4f13d8fb1461784477498c78624d0" args="(axis2_http_simple_request_t *simple_request, const axutil_env_t *env, const axis2_char_t *str)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">AXIS2_EXTERN axis2_status_t axis2_http_simple_request_remove_headers           </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="group__axis2__http__simple__request.html#g587c6b13c2e9b94b68e3a2a142cc3416">axis2_http_simple_request_t</a> *&nbsp;</td>
          <td class="paramname"> <em>simple_request</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const <a class="el" href="structaxutil__env.html">axutil_env_t</a> *&nbsp;</td>
          <td class="paramname"> <em>env</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const axis2_char_t *&nbsp;</td>
          <td class="paramname"> <em>str</em></td><td>&nbsp;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td><td width="100%"></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
<dl compact><dt><b>Parameters:</b></dt><dd>
  <table border="0" cellspacing="2" cellpadding="0">
    <tr><td valign="top"></td><td valign="top"><em>simple_request</em>&nbsp;</td><td>pointer to simple request </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>env</em>&nbsp;</td><td>pointer to environment struct </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>str</em>&nbsp;</td><td>pointer to str </td></tr>
  </table>
</dl>
<dl class="return" compact><dt><b>Returns:</b></dt><dd>AXIS2_SUCCESS on success, else AXIS2_FAILURE </dd></dl>

</div>
</div><p>
<a class="anchor" name="gcc978b2478be7c335d62ba8855dddb20"></a><!-- doxytag: member="axis2_http_simple_request.h::axis2_http_simple_request_set_body_string" ref="gcc978b2478be7c335d62ba8855dddb20" args="(axis2_http_simple_request_t *simple_request, const axutil_env_t *env, void *str, unsigned int str_len)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">AXIS2_EXTERN axis2_status_t axis2_http_simple_request_set_body_string           </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="group__axis2__http__simple__request.html#g587c6b13c2e9b94b68e3a2a142cc3416">axis2_http_simple_request_t</a> *&nbsp;</td>
          <td class="paramname"> <em>simple_request</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const <a class="el" href="structaxutil__env.html">axutil_env_t</a> *&nbsp;</td>
          <td class="paramname"> <em>env</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">void *&nbsp;</td>
          <td class="paramname"> <em>str</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">unsigned int&nbsp;</td>
          <td class="paramname"> <em>str_len</em></td><td>&nbsp;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td><td width="100%"></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
<dl compact><dt><b>Parameters:</b></dt><dd>
  <table border="0" cellspacing="2" cellpadding="0">
    <tr><td valign="top"></td><td valign="top"><em>simple_request</em>&nbsp;</td><td>pointer to simple request </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>env</em>&nbsp;</td><td>pointer to environment struct </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>str</em>&nbsp;</td><td>pointer to str </td></tr>
  </table>
</dl>
<dl class="return" compact><dt><b>Returns:</b></dt><dd>AXIS2_SUCCESS on success, else AXIS2_FAILURE </dd></dl>

</div>
</div><p>
<a class="anchor" name="gb86fa24c5e3e0a99591bf8b3cb48dd20"></a><!-- doxytag: member="axis2_http_simple_request.h::axis2_http_simple_request_set_request_line" ref="gb86fa24c5e3e0a99591bf8b3cb48dd20" args="(axis2_http_simple_request_t *simple_request, const axutil_env_t *env, axis2_http_request_line_t *request_line)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">AXIS2_EXTERN axis2_status_t axis2_http_simple_request_set_request_line           </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="group__axis2__http__simple__request.html#g587c6b13c2e9b94b68e3a2a142cc3416">axis2_http_simple_request_t</a> *&nbsp;</td>
          <td class="paramname"> <em>simple_request</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const <a class="el" href="structaxutil__env.html">axutil_env_t</a> *&nbsp;</td>
          <td class="paramname"> <em>env</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype"><a class="el" href="group__axis2__http__request__line.html#g1070304508a3dd97050d86758db6b3e4">axis2_http_request_line_t</a> *&nbsp;</td>
          <td class="paramname"> <em>request_line</em></td><td>&nbsp;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td><td width="100%"></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
<dl compact><dt><b>Parameters:</b></dt><dd>
  <table border="0" cellspacing="2" cellpadding="0">
    <tr><td valign="top"></td><td valign="top"><em>simple_request</em>&nbsp;</td><td>pointer to simple request </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>env</em>&nbsp;</td><td>pointer to environment struct </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>request_line</em>&nbsp;</td><td>pointer to request line </td></tr>
  </table>
</dl>
<dl class="return" compact><dt><b>Returns:</b></dt><dd>AXIS2_SUCCESS on success, else AXIS2_FAILURE </dd></dl>

</div>
</div><p>
<hr size="1"><address style="text-align: right;"><small>Generated on Fri Apr 17 11:49:45 2009 for Axis2/C by&nbsp;
<a href="http://www.doxygen.org/index.html">
<img src="doxygen.png" alt="doxygen" align="middle" border="0"></a> 1.5.3 </small></address>
</body>
</html>


<|start_filename|>src/core/deployment/desc_builder.c<|end_filename|>

/*
 * 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.
 */

#include <axis2_desc_builder.h>
#include <axutil_string.h>
#include <axutil_class_loader.h>
#include <axutil_utils.h>
#include <axutil_generic_obj.h>
#include <axis2_raw_xml_in_out_msg_recv.h>
#include <neethi_engine.h>

struct axis2_desc_builder
{
    /**
     * Store the full path to configuration file.
     */
    axis2_char_t *file_name;
	axiom_node_t *root;
    struct axis2_dep_engine *engine;
};

static axis2_status_t set_attrs_and_value(
    axutil_param_t * param,
    const axutil_env_t * env,
    axiom_element_t * param_element,
    axiom_node_t * param_node);

AXIS2_EXTERN axis2_desc_builder_t *AXIS2_CALL
axis2_desc_builder_create(
    const axutil_env_t * env)
{
    axis2_desc_builder_t *desc_builder = NULL;

    desc_builder = (axis2_desc_builder_t *) AXIS2_MALLOC(env->
                                                         allocator,
                                                         sizeof
                                                         (axis2_desc_builder_t));

    if (!desc_builder)
    {
        AXIS2_ERROR_SET(env->error, AXIS2_ERROR_NO_MEMORY, AXIS2_FAILURE);
        AXIS2_LOG_ERROR(env->log, AXIS2_LOG_SI, 
            "No memory. Cannot allocate memory to desc_builder");
        return NULL;
    }
    desc_builder->file_name = NULL;
    desc_builder->engine = NULL;
    desc_builder->root = NULL;

    return desc_builder;
}

AXIS2_EXTERN axis2_desc_builder_t *AXIS2_CALL
axis2_desc_builder_create_with_file_and_dep_engine(
    const axutil_env_t * env,
    axis2_char_t * file_name,
    axis2_dep_engine_t * engine)
{
    axis2_desc_builder_t *desc_builder = NULL;

    AXIS2_PARAM_CHECK(env->error, file_name, NULL);
    AXIS2_PARAM_CHECK(env->error, engine, NULL);

    desc_builder = (axis2_desc_builder_t *) axis2_desc_builder_create(env);
    if (!desc_builder)
    {
        AXIS2_ERROR_SET(env->error, AXIS2_ERROR_NO_MEMORY, AXIS2_FAILURE);
        AXIS2_LOG_ERROR(env->log, AXIS2_LOG_SI, 
            "No memory. Cannot allocate memory to desc_builder");
        return NULL;
    }

	desc_builder->root = NULL;

    desc_builder->file_name = axutil_strdup(env, file_name);
    if (!desc_builder->file_name)
    {
        AXIS2_ERROR_SET(env->error, AXIS2_ERROR_NO_MEMORY, AXIS2_FAILURE);
        AXIS2_LOG_ERROR(env->log, AXIS2_LOG_SI, 
            "No memory. Cannot allocate memory to desc_builder->file_name");
        return NULL;
    }
    desc_builder->engine = engine;

    return desc_builder;
}

AXIS2_EXTERN axis2_desc_builder_t *AXIS2_CALL
axis2_desc_builder_create_with_dep_engine(
    const axutil_env_t * env,
    struct axis2_dep_engine * engine)
{
    axis2_desc_builder_t *desc_builder = NULL;

    AXIS2_PARAM_CHECK(env->error, engine, NULL);

    desc_builder = (axis2_desc_builder_t *) axis2_desc_builder_create(env);
    if (!desc_builder)
    {
        AXIS2_ERROR_SET(env->error, AXIS2_ERROR_NO_MEMORY, AXIS2_FAILURE);
        AXIS2_LOG_ERROR(env->log, AXIS2_LOG_SI, 
            "No memory. Cannot allocate memory to desc_builder");
        return NULL;
    }

    desc_builder->engine = engine;

    return desc_builder;
}

AXIS2_EXTERN void AXIS2_CALL
axis2_desc_builder_free(
    axis2_desc_builder_t * desc_builder,
    const axutil_env_t * env)
{
    if (desc_builder->file_name)
    {
        AXIS2_FREE(env->allocator, desc_builder->file_name);
    }

    if (desc_builder->root)
    {
		axiom_node_free_tree(desc_builder->root,env);
    }

    /* we cannot free deployment engine here */
    desc_builder->engine = NULL;

    if (desc_builder)
    {
        AXIS2_FREE(env->allocator, desc_builder);
    }
    return;
}

AXIS2_EXTERN axiom_node_t *AXIS2_CALL
axis2_desc_builder_build_om(
    axis2_desc_builder_t * desc_builder,
    const axutil_env_t * env)
{
    axiom_xml_reader_t *reader = NULL;
    axiom_document_t *document = NULL;
	axiom_stax_builder_t *builder = NULL;

    if (!desc_builder->file_name)
    {
        AXIS2_ERROR_SET(env->error, AXIS2_ERROR_INVALID_STATE_DESC_BUILDER,
                        AXIS2_FAILURE);
        AXIS2_LOG_ERROR(env->log, AXIS2_LOG_SI, 
            "Invalid state desc builder. Unable to continue");
        return NULL;
    }

    /** create pull parser using the file path to configuration file */
    reader = axiom_xml_reader_create_for_file(env, desc_builder->file_name, 
                                              NULL);

    if (!reader)
    {
        AXIS2_ERROR_SET(env->error, AXIS2_ERROR_CREATING_XML_STREAM_READER,
                        AXIS2_FAILURE);
        AXIS2_LOG_ERROR(env->log, AXIS2_LOG_SI, 
            "Could not create xml reader for %s", desc_builder->file_name);
		return NULL;
    };

    /** create axiom_stax_builder by parsing pull_parser struct */
    builder = axiom_stax_builder_create(env, reader);

    if (!(builder))
    {
        AXIS2_ERROR_SET(env->error, AXIS2_ERROR_CREATING_XML_STREAM_READER,
                        AXIS2_FAILURE);
        AXIS2_LOG_ERROR(env->log, AXIS2_LOG_SI, 
            "Could not create xml stream reader for desc builder %s. Unable "\
                "to continue", desc_builder->file_name);
		 return NULL;
    }

    /**
        get the om document form builder 
        document is the container of om model created using builder
    */
    document = axiom_stax_builder_get_document(builder, env);

    /**
     * In description building we don't want defferred building. So build
     * the whole tree at once
     */
    axiom_document_build_all(document, env);

    /**
        get root element , building starts hear 
     */
    desc_builder->root = axiom_document_get_root_element(document, env);
	/**
		We have built the whole document. So no need of keeping the builder.
	*/
	axiom_stax_builder_free_self(builder, env);

    return desc_builder->root;
}

AXIS2_EXTERN axis2_flow_t *AXIS2_CALL
axis2_desc_builder_process_flow(
    axis2_desc_builder_t * desc_builder,
    const axutil_env_t * env,
    axiom_element_t * flow_element,
    axutil_param_container_t * parent,
    axiom_node_t * flow_node)
{
    axis2_flow_t *flow = NULL;
    axiom_children_qname_iterator_t *handlers = NULL;
    axutil_qname_t *qchild = NULL;

    AXIS2_PARAM_CHECK(env->error, parent, NULL);
    AXIS2_PARAM_CHECK(env->error, flow_node, NULL);

    flow = axis2_flow_create(env);
    if (!flow)
    {
        AXIS2_ERROR_SET(env->error, AXIS2_ERROR_NO_MEMORY, AXIS2_FAILURE);
        AXIS2_LOG_ERROR(env->log, AXIS2_LOG_SI, 
            "No memory. Could not allocate to flow");
        return NULL;
    }

    if (!flow_element)
    {
        AXIS2_LOG_DEBUG(env->log, AXIS2_LOG_SI, 
            "There is no flow element to process");
        return NULL;
    }

    qchild = axutil_qname_create(env, AXIS2_HANDLERST, NULL, NULL);
    handlers = axiom_element_get_children_with_qname(flow_element, env,
                                                     qchild, flow_node);
    if (qchild)
    {
        axutil_qname_free(qchild, env);
    }

    while (axiom_children_qname_iterator_has_next(handlers, env))
    {
        axiom_node_t *handler_node = NULL;
        axis2_handler_desc_t *handler_desc = NULL;
        axis2_status_t status = AXIS2_FAILURE;

        handler_node = (axiom_node_t *)
            axiom_children_qname_iterator_next(handlers, env);

        handler_desc = axis2_desc_builder_process_handler(desc_builder, env,
                                                          handler_node, parent);
        status = axis2_flow_add_handler(flow, env, handler_desc);
        if (!status)
        {
            const axutil_string_t *handler_name = NULL;
            const axis2_char_t *hname = NULL;
            handler_name = axis2_handler_desc_get_name(handler_desc, env);
            hname = axutil_string_get_buffer(handler_name, env);
            AXIS2_LOG_ERROR(env->log, AXIS2_LOG_SI, 
                "Adding handler %s to flow failed", hname);
            axis2_flow_free(flow, env);
            return NULL;
        }
    }
    return flow;
}

struct axis2_handler_desc *AXIS2_CALL
axis2_desc_builder_process_handler(
    axis2_desc_builder_t * desc_builder,
    const axutil_env_t * env,
    axiom_node_t * handler_node,
    struct axutil_param_container *parent)
{
    axis2_handler_desc_t *handler_desc = NULL;
    axiom_attribute_t *name_attrib = NULL;
    axutil_qname_t *attr_qname = NULL;
    axiom_attribute_t *class_attrib = NULL;
    axutil_qname_t *class_qname = NULL;
    axis2_status_t status = AXIS2_FAILURE;
    axis2_char_t *attrib_value = NULL;
    axiom_element_t *handler_element = NULL;
    axiom_node_t *order_node = NULL;
    axiom_element_t *order_element = NULL;
    axutil_qname_t *order_qname = NULL;
    axutil_string_t *handler_name = NULL;
    const axis2_char_t *hname = NULL;

    AXIS2_PARAM_CHECK(env->error, handler_node, NULL);
    AXIS2_PARAM_CHECK(env->error, parent, NULL);

    handler_desc = axis2_handler_desc_create(env, NULL);
    if (!handler_desc)
    {
        AXIS2_LOG_ERROR(env->log, AXIS2_LOG_SI, 
            "Could not create handler description");
        return NULL;
    }
    /* Setting Handler name */
    attr_qname = axutil_qname_create(env, AXIS2_ATTNAME, NULL, NULL);
    handler_element = axiom_node_get_data_element(handler_node, env);
    name_attrib = axiom_element_get_attribute(handler_element, env, attr_qname);
    if (attr_qname)
    {
        axutil_qname_free(attr_qname, env);
    }

    if (!name_attrib)
    {
        axis2_handler_desc_free(handler_desc, env);
        AXIS2_ERROR_SET(env->error, AXIS2_ERROR_INVALID_HANDLER_STATE,
                        AXIS2_FAILURE);
        AXIS2_LOG_ERROR(env->log, AXIS2_LOG_SI, 
            "Name attribute not fould for handler.");
        return NULL;
    }
    else
    {
        axis2_char_t *value = NULL;

        value = axiom_attribute_get_value(name_attrib, env);
        handler_name = axutil_string_create(env, value);
        status = axis2_handler_desc_set_name(handler_desc, env, handler_name);
        if (handler_name)
        {
            axutil_string_free(handler_name, env);
        }

        if (!status)
        {
            AXIS2_LOG_ERROR(env->log, AXIS2_LOG_SI, 
                "Setting name for handler description failed in %s", 
                    desc_builder->file_name);
            axis2_handler_desc_free(handler_desc, env);
            return NULL;
        }
    }
    hname = axutil_string_get_buffer(handler_name, env);
    /*Setting Handler Class name */
    class_qname = axutil_qname_create(env, AXIS2_CLASSNAME, NULL, NULL);
    class_attrib = axiom_element_get_attribute(handler_element, env,
                                               class_qname);
    if (class_qname)
    {
        axutil_qname_free(class_qname, env);
    }

    if (!class_attrib)
    {
        axis2_handler_desc_free(handler_desc, env);
        AXIS2_ERROR_SET(env->error, AXIS2_ERROR_INVALID_HANDLER_STATE,
                        AXIS2_FAILURE);
        AXIS2_LOG_ERROR(env->log, AXIS2_LOG_SI, 
            "Library name attribute not found for handler %s", hname);
        return NULL;
    }
    else
    {
        attrib_value = axiom_attribute_get_value(class_attrib, env);
        status =
            axis2_handler_desc_set_class_name(handler_desc, env, attrib_value);
    }

    /*processing phase Rules (order) */

    order_qname = axutil_qname_create(env, AXIS2_ORDER, NULL, NULL);
    order_element = axiom_element_get_first_child_with_qname(handler_element,
                                                             env, order_qname,
                                                             handler_node,
                                                             &order_node);
    if (order_qname)
    {
        axutil_qname_free(order_qname, env);
    }

    if (!order_element || !order_node)
    {
        axis2_handler_desc_free(handler_desc, env);
        AXIS2_ERROR_SET(env->error, AXIS2_ERROR_INVALID_HANDLER_STATE,
                        AXIS2_FAILURE);
        AXIS2_LOG_ERROR(env->log, AXIS2_LOG_SI, 
            "Order node not found for handler description %s", hname);
        return NULL;
    }
    else
    {
        axutil_hash_t *order_itr = NULL;
        axiom_children_qname_iterator_t *params = NULL;
        axutil_qname_t *param_qname = NULL;
        axutil_hash_index_t *index_i = NULL;

        order_itr = axiom_element_get_all_attributes(order_element, env);
        if (!order_itr)
        {
            AXIS2_LOG_ERROR(env->log, AXIS2_LOG_SI, 
                "Order element for handler desc %s does not contain any "\
                "attribute", hname);
            axis2_handler_desc_free(handler_desc, env);
            return NULL;
        }

        index_i = axutil_hash_first(order_itr, env);

        while (index_i)
        {
            axiom_attribute_t *order_attrib = NULL;
            axutil_qname_t *qname = NULL;
            axis2_char_t *name = NULL;
            axis2_char_t *value = NULL;
            void *v = NULL;

            axutil_hash_this(index_i, NULL, NULL, &v);
            order_attrib = (axiom_attribute_t *) v;
            qname = axiom_attribute_get_qname(order_attrib, env);
            name = axutil_qname_get_localpart(qname, env);

            value = axiom_attribute_get_value(order_attrib, env);
            if (!axutil_strcmp(AXIS2_AFTER, name))
            {
                struct axis2_phase_rule *phase_rule = NULL;

                phase_rule = axis2_handler_desc_get_rules(handler_desc, env);
                status = axis2_phase_rule_set_after(phase_rule, env, value);
                if (!status)
                {
                    AXIS2_LOG_ERROR(env->log, AXIS2_LOG_SI, 
                        "Setting %s phase rule failed for handler %s", 
                            AXIS2_AFTER, hname);
                    axis2_handler_desc_free(handler_desc, env);
                    return NULL;
                }
            }
            if (!axutil_strcmp(AXIS2_BEFORE, name))
            {
                struct axis2_phase_rule *phase_rule = NULL;
                phase_rule = axis2_handler_desc_get_rules(handler_desc, env);
                status = axis2_phase_rule_set_before(phase_rule, env, value);
                if (!status)
                {
                    AXIS2_LOG_ERROR(env->log, AXIS2_LOG_SI, 
                        "Setting %s phase rule failed for handler %s", 
                            AXIS2_BEFORE, hname);
                    axis2_handler_desc_free(handler_desc, env);
                    return NULL;
                }
            }
            if (!axutil_strcmp(AXIS2_PHASE, name))
            {
                struct axis2_phase_rule *phase_rule = NULL;
                phase_rule = axis2_handler_desc_get_rules(handler_desc, env);
                status = axis2_phase_rule_set_name(phase_rule, env, value);
                if (!status)
                {
                    AXIS2_LOG_ERROR(env->log, AXIS2_LOG_SI, 
                        "Setting phase rule name failed for handler %s", 
                            hname);
                    axis2_handler_desc_free(handler_desc, env);
                    return NULL;
                }
            }
            if (!axutil_strcmp(AXIS2_PHASEFIRST, name))
            {
                axis2_char_t *bool_val = NULL;

                bool_val = axis2_desc_builder_get_value(desc_builder, env,
                                                        value);
                if (!axutil_strcmp(bool_val, AXIS2_VALUE_TRUE))
                {
                    struct axis2_phase_rule *phase_rule = NULL;
                    phase_rule =
                        axis2_handler_desc_get_rules(handler_desc, env);
                    status =
                        axis2_phase_rule_set_first(phase_rule, env, AXIS2_TRUE);
                    if (!status)
                    {
                        AXIS2_LOG_ERROR(env->log, AXIS2_LOG_SI, 
                            "Setting %s property for phase rules for handler "\
                            "%s failed", AXIS2_PHASEFIRST, hname);
                        axis2_handler_desc_free(handler_desc, env);
                        AXIS2_FREE(env->allocator, bool_val);
                        return NULL;
                    }
                }
                else if (!axutil_strcmp(bool_val, AXIS2_VALUE_FALSE))
                {
                    struct axis2_phase_rule *phase_rule = NULL;
                    phase_rule =
                        axis2_handler_desc_get_rules(handler_desc, env);
                    status =
                        axis2_phase_rule_set_first(phase_rule, env,
                                                   AXIS2_FALSE);
                    if (!status)
                    {
                        AXIS2_LOG_ERROR(env->log, AXIS2_LOG_SI, 
                            "Setting %s property for phase rules for handler "\
                            "%s failed", AXIS2_PHASEFIRST, hname);
                        axis2_handler_desc_free(handler_desc, env);
                        AXIS2_FREE(env->allocator, bool_val);
                        return NULL;
                    }
                }
                AXIS2_FREE(env->allocator, bool_val);
            }
            index_i = axutil_hash_next(env, index_i);
        }

        param_qname = axutil_qname_create(env, AXIS2_PARAMETERST, NULL, NULL);
        params = axiom_element_get_children_with_qname(handler_element,
                                                       env, param_qname,
                                                       handler_node);
        axutil_qname_free(param_qname, env);
        status = axis2_desc_builder_process_params(desc_builder, env, params,
                                       axis2_handler_desc_get_param_container
                                       (handler_desc, env), parent);
        if (!status)
        {
            AXIS2_LOG_ERROR(env->log, AXIS2_LOG_SI, 
                "Processing params failed for handler %s", hname);
            axis2_handler_desc_free(handler_desc, env);
            return NULL;
        }
    }

    status = axis2_handler_desc_set_parent(handler_desc, env, parent);
    if (!status)
    {
        AXIS2_LOG_ERROR(env->log, AXIS2_LOG_SI, 
            "Setting parent failed for handler %s", hname);
        axis2_handler_desc_free(handler_desc, env);
        return NULL;
    }

    return handler_desc;
}

static axis2_status_t
set_attrs_and_value(
    axutil_param_t * param,
    const axutil_env_t * env,
    axiom_element_t * param_element,
    axiom_node_t * param_node)
{
    axis2_status_t status = AXIS2_FAILURE;
    axutil_hash_t *attrs = NULL;
    axiom_child_element_iterator_t *childs = NULL;

    AXIS2_PARAM_CHECK(env->error, param, AXIS2_FAILURE);
    AXIS2_PARAM_CHECK(env->error, param_element, AXIS2_FAILURE);
    AXIS2_PARAM_CHECK(env->error, param_node, AXIS2_FAILURE);

    /* Setting attributes */
    attrs = axiom_element_extract_attributes(param_element, env, param_node);
    if (attrs)
    {
        axutil_hash_index_t *i = NULL;

        for (i = axutil_hash_first(attrs, env); i; i = axutil_hash_next(env, i))
        {
            void *v = NULL;
            axiom_attribute_t *value = NULL;
            axutil_generic_obj_t *obj = NULL;
            axutil_qname_t *attr_qname = NULL;
            axis2_char_t *attr_name = NULL;

            axutil_hash_this(i, NULL, NULL, &v);
            if (!v)
            {
                AXIS2_LOG_ERROR(env->log, AXIS2_LOG_SI, 
                    "Attibute missing in the parameter element");
                axutil_param_free(param, env);
                return AXIS2_FAILURE;
            }
            obj = axutil_generic_obj_create(env);
            if (!obj)
            {
                axutil_param_free(param, env);
                AXIS2_ERROR_SET(env->error, AXIS2_ERROR_NO_MEMORY,
                                AXIS2_FAILURE);
                AXIS2_LOG_ERROR(env->log, AXIS2_LOG_SI, "No memory");
                return AXIS2_FAILURE;
            }
            value = (axiom_attribute_t *) v;
            axutil_generic_obj_set_value(obj, env, value);
            axutil_generic_obj_set_free_func(obj, env,
                                             axiom_attribute_free_void_arg);
            attr_qname = axiom_attribute_get_qname(value, env);
            attr_name = axutil_qname_to_string(attr_qname, env);
            axutil_hash_set(attrs, attr_name, AXIS2_HASH_KEY_STRING, obj);
        }
        axutil_param_set_attributes(param, env, attrs);
    }

    childs = axiom_element_get_child_elements(param_element, env, param_node);
    if (childs)
    {
        axutil_array_list_t *value_list = NULL;

        value_list = axutil_array_list_create(env, 0);
        axutil_param_set_value_list(param, env, value_list);

        while (AXIOM_CHILD_ELEMENT_ITERATOR_HAS_NEXT(childs, env))
        {
            axiom_node_t *node = NULL;
            axiom_element_t *element = NULL;
            axutil_param_t *param = NULL;
            axis2_char_t *pname = NULL;

            node = AXIOM_CHILD_ELEMENT_ITERATOR_NEXT(childs, env);
            element = axiom_node_get_data_element(node, env);
            param = axutil_param_create(env, NULL, NULL);
            pname = axiom_element_get_localname(element, env);
            status = axutil_param_set_name(param, env, pname);
            if (!status)
            {
                AXIS2_LOG_ERROR(env->log, AXIS2_LOG_SI, 
                    "Setting name to parameter failed");
                axutil_param_free(param, env);
                return status;
            }
            axutil_param_set_param_type(param, env, AXIS2_DOM_PARAM);
            set_attrs_and_value(param, env, element, node);
            axutil_array_list_add(value_list, env, param);
        }
    }
    else
    {
        axis2_char_t *para_test_value = NULL;
        axis2_char_t *temp = NULL;

        temp = axiom_element_get_text(param_element, env, param_node);
        para_test_value = axutil_strdup(env, temp);
        status = axutil_param_set_value(param, env, para_test_value);
        if (!status)
        {
            AXIS2_LOG_ERROR(env->log, AXIS2_LOG_SI, 
                "Setting value to parameter failed");
            axutil_param_free(param, env);
            AXIS2_FREE(env->allocator, para_test_value);
            return status;
        }
        axutil_param_set_param_type(param, env, AXIS2_TEXT_PARAM);
    }
    return AXIS2_SUCCESS;
}

AXIS2_EXTERN axis2_status_t AXIS2_CALL
axis2_desc_builder_process_rest_params(
    axis2_desc_builder_t * desc_builder,
    const axutil_env_t * env,
    axiom_node_t * op_node,
    axis2_op_t * op_desc)
{
    axiom_element_t *op_element = NULL;
    axutil_qname_t *qname = NULL;
    axutil_qname_t *param_qname = NULL;
    axiom_node_t *rest_node = NULL;
    axiom_element_t *rest_element = NULL;
    axiom_children_qname_iterator_t *rest_mappings = NULL;

    AXIS2_PARAM_CHECK(env->error, op_desc, AXIS2_FAILURE);

    op_element = axiom_node_get_data_element(op_node, env);

    param_qname = axutil_qname_create(env, AXIS2_PARAMETERST, NULL, NULL);
    qname = axutil_qname_create(env, AXIS2_ATTNAME, NULL, NULL);

    if (op_element)
    {
        rest_mappings = axiom_element_get_children_with_qname(op_element, env,
                                                              param_qname, op_node);
    }

    while (rest_mappings && axiom_children_qname_iterator_has_next(rest_mappings, env))
    {
        axis2_char_t *param_value = NULL;
        rest_node = (axiom_node_t *)
            axiom_children_qname_iterator_next(rest_mappings, env);
        rest_element = axiom_node_get_data_element(rest_node, env);
        param_value = axiom_element_get_attribute_value(rest_element, env, qname);
        if (!strcmp(param_value, AXIS2_REST_HTTP_METHOD))
        {
            axis2_op_set_rest_http_method(op_desc, env,
                                          axiom_element_get_text(rest_element,
                                                                 env, rest_node));
        }
        param_value = axiom_element_get_attribute_value(rest_element, env, qname);
        if (!strcmp(param_value, AXIS2_REST_HTTP_LOCATION))
        {
            axis2_op_set_rest_http_location(op_desc, env,
                                            axiom_element_get_text(rest_element,
                                                                   env, rest_node));
        }
        if (axis2_op_get_rest_http_method(op_desc, env) &&
            axis2_op_get_rest_http_location(op_desc, env))
        {
            break;
        }
    }

    axutil_qname_free(qname, env);
    axutil_qname_free(param_qname, env);
    return AXIS2_SUCCESS;
}

/**
 * Populate the Axis2 Operation with details from the actionMapping,
 * outputActionMapping and faultActionMapping elements from the operation
 * element.
 *
 * @param operation
 * @param op_desc
 */
AXIS2_EXTERN axis2_status_t AXIS2_CALL
axis2_desc_builder_process_action_mappings(
    axis2_desc_builder_t * desc_builder,
    const axutil_env_t * env,
    axiom_node_t * op_node,
    axis2_op_t * op_desc)
{
    axiom_element_t *op_element = NULL;
    axutil_qname_t *qname = NULL;
    axiom_children_qname_iterator_t *action_mappings = NULL;
    axutil_array_list_t *mapping_list = axutil_array_list_create(env, 0);
    AXIS2_PARAM_CHECK(env->error, op_desc, AXIS2_FAILURE);

    op_element = axiom_node_get_data_element(op_node, env);
    qname = axutil_qname_create(env, AXIS2_ACTION_MAPPING, NULL, NULL);
    if (op_element)
    {
        action_mappings = axiom_element_get_children_with_qname(op_element, env,
                                                                qname, op_node);
    }

    axutil_qname_free(qname, env);
    qname = NULL;
    if (!action_mappings)
    {
        if (mapping_list)
        {
            axutil_array_list_free(mapping_list, env);
            mapping_list = NULL;
        }
        return AXIS2_SUCCESS;
    }
    while (axiom_children_qname_iterator_has_next(action_mappings, env))
    {
        axiom_element_t *mapping_element = NULL;
        axiom_node_t *mapping_node = NULL;
        axis2_char_t *input_action_string = NULL;
        axis2_char_t *temp_str = NULL;

        /* This is to check whether some one has locked the parmter at the top
         * level
         */
        mapping_node = (axiom_node_t *)
            axiom_children_qname_iterator_next(action_mappings, env);
        mapping_element = axiom_node_get_data_element(mapping_node, env);
        temp_str = axiom_element_get_text(mapping_element, env, mapping_node);
        input_action_string = axutil_strtrim(env, temp_str, NULL);
        AXIS2_LOG_DEBUG(env->log, AXIS2_LOG_SI, "Input action mapping found %s",
                        input_action_string);
        if (axutil_strcmp("", input_action_string))
        {
            axutil_array_list_add(mapping_list, env, input_action_string);
        }
        else
        {
            AXIS2_LOG_DEBUG(env->log, AXIS2_LOG_SI, "Zero length "
                "input_action_string found. Not added to the mapping list");
        }
    }
    axis2_op_set_wsamapping_list(op_desc, env, mapping_list);
    return AXIS2_SUCCESS;
}

AXIS2_EXTERN axis2_status_t AXIS2_CALL
axis2_desc_builder_process_params(
    axis2_desc_builder_t * desc_builder,
    const axutil_env_t * env,
    axiom_children_qname_iterator_t * params,
    axutil_param_container_t * param_container,
    axutil_param_container_t * parent)
{
    axis2_status_t status = AXIS2_FAILURE;

    AXIS2_PARAM_CHECK(env->error, params, AXIS2_FAILURE);
    AXIS2_PARAM_CHECK(env->error, param_container, AXIS2_FAILURE);

    while (axiom_children_qname_iterator_has_next(params, env))
    {
        axiom_element_t *param_element = NULL;
        axiom_node_t *param_node = NULL;
        axutil_param_t *param = NULL;
        axutil_param_t *parent_para = NULL;
        axiom_attribute_t *para_name = NULL;
        axiom_attribute_t *para_locked = NULL;
        axutil_qname_t *att_locked = NULL;
        axutil_qname_t *att_qname = NULL;
        axis2_char_t *pname = NULL;

        /* This is to check whether some one has locked the parmter at the top
         * level
         */
        param_node = (axiom_node_t *)
            axiom_children_qname_iterator_next(params, env);
        param_element = axiom_node_get_data_element(param_node, env);
        param = axutil_param_create(env, NULL, NULL);

        /* Setting paramter name */
        att_qname = axutil_qname_create(env, AXIS2_ATTNAME, NULL, NULL);
        para_name = axiom_element_get_attribute(param_element, env, att_qname);
        axutil_qname_free(att_qname, env);
        if (!para_name)
        {
            AXIS2_LOG_ERROR(env->log, AXIS2_LOG_SI, 
                "Parameter name attribute not found for parameter");
            axutil_param_free(param, env);
            return AXIS2_FAILURE;
        }
        pname = axiom_attribute_get_value(para_name, env);
        status = axutil_param_set_name(param, env, pname);
        if (!status)
        {
            AXIS2_LOG_ERROR(env->log, AXIS2_LOG_SI, 
                "Could not set parameter name for parameter");
            axutil_param_free(param, env);
            return status;
        }

        /* Setting paramter Value (the chiled elemnt of the paramter) */
        set_attrs_and_value(param, env, param_element, param_node);

        /* Setting locking attrib */
        att_locked = axutil_qname_create(env, AXIS2_ATTLOCKED, NULL, NULL);
        para_locked = axiom_element_get_attribute(param_element, env,
                                                  att_locked);
        axutil_qname_free(att_locked, env);
        if (parent)
        {
            axis2_char_t *param_name = NULL;

            param_name = axutil_param_get_name(param, env);
            parent_para = axutil_param_container_get_param(parent, env,
                                                           param_name);
        }
        if (para_locked)
        {
            axis2_char_t *locked_value = NULL;
            locked_value = axiom_attribute_get_value(para_locked, env);
            if (!axutil_strcmp(AXIS2_VALUE_TRUE, locked_value))
            {
                axis2_char_t *param_name = NULL;
                axis2_bool_t is_param_locked = AXIS2_FALSE;
                /*if the parameter is locked at some level parameter value replace
                 * by that   
                 */
                param_name = axutil_param_get_name(param, env);
                is_param_locked = axutil_param_container_is_param_locked(parent,
                                                                         env,
                                                                         param_name);
                if (parent && is_param_locked)
                {
                    axutil_param_free(param, env);
                    AXIS2_ERROR_SET(env->error,
                                    AXIS2_ERROR_CONFIG_NOT_FOUND,
                                    AXIS2_FAILURE);
                    AXIS2_LOG_ERROR(env->log, AXIS2_LOG_SI, 
                        "Parameter %s is locked", param_name);
                    return AXIS2_FAILURE;
                }
                else
                {
                    axutil_param_set_locked(param, env, AXIS2_TRUE);
                }
            }
            else
            {
                axutil_param_set_locked(param, env, AXIS2_FALSE);
            }
        }

        if (parent)
        {
            axis2_char_t *name = NULL;
            axis2_bool_t bvalue = AXIS2_FALSE;

            name = axutil_param_get_name(param, env);
            bvalue = axutil_param_container_is_param_locked(parent, env, name);
            if (parent_para || !bvalue)
            {
                status = axutil_param_container_add_param(param_container, env,
                                                          param);
                if (!status)
                {
                    AXIS2_LOG_ERROR(env->log, AXIS2_LOG_SI, 
                        "Adding parameter %s failed", name);
                    axutil_param_free(param, env);
                    return status;
                }
            }
        }
        else
        {
            status = axutil_param_container_add_param(param_container, env,
                                                      param);
            if (!status)
            {
                AXIS2_LOG_ERROR(env->log, AXIS2_LOG_SI, 
                    "Adding parameter %s failed", pname);
                axutil_param_free(param, env);
                return status;
            }
        }
    }
    return AXIS2_SUCCESS;
}

AXIS2_EXTERN axis2_status_t AXIS2_CALL
axis2_desc_builder_process_op_module_refs(
    axis2_desc_builder_t * desc_builder,
    const axutil_env_t * env,
    axiom_children_qname_iterator_t * module_refs,
    axis2_op_t * op)
{
    axiom_element_t *moduleref = NULL;
    axiom_attribute_t *module_ref_attrib = NULL;
    axutil_qname_t *qref = NULL;
    axis2_status_t status = AXIS2_FAILURE;

    AXIS2_PARAM_CHECK(env->error, op, AXIS2_FAILURE);

    while (module_refs && axiom_children_qname_iterator_has_next(module_refs, env))
    {
        axiom_node_t *moduleref_node = axiom_children_qname_iterator_next(module_refs, env);
        moduleref = (axiom_element_t *)axiom_node_get_data_element(moduleref_node, env);
            
        qref = axutil_qname_create(env, AXIS2_REF, NULL, NULL);
        module_ref_attrib = axiom_element_get_attribute(moduleref, env, qref);
        axutil_qname_free(qref, env);
        if (module_ref_attrib)
        {
            axis2_char_t *ref_name = NULL;
            axutil_qname_t *ref_qname = NULL;
            axis2_module_desc_t *module_desc = NULL;

            ref_name = axiom_attribute_get_value(module_ref_attrib, env);
            ref_qname = axutil_qname_create(env, ref_name, NULL, NULL);
            module_desc = axis2_dep_engine_get_module(desc_builder->engine, env, ref_qname);
            if (!module_desc)
            {
                axutil_qname_free(ref_qname, env);
                AXIS2_ERROR_SET(env->error, AXIS2_ERROR_MODULE_NOT_FOUND, AXIS2_FAILURE);
                AXIS2_LOG_ERROR(env->log, AXIS2_LOG_SI, "Module %s not found in the deployment engine", 
                        ref_name);

                return AXIS2_FAILURE;
            }
            else
            {
                status = axis2_op_add_module_qname(op, env, ref_qname);
                axutil_qname_free(ref_qname, env);
                if (AXIS2_SUCCESS != status)
                {
                    AXIS2_ERROR_SET(env->error, AXIS2_ERROR_MODULE_NOT_FOUND, AXIS2_FAILURE);
                    AXIS2_LOG_ERROR(env->log, AXIS2_LOG_SI, 
                            "Adding module ref %s to operation %s failed", ref_name, 
                            axutil_qname_get_localpart(axis2_op_get_qname(op, env), env));

                    return AXIS2_FAILURE;
                }
            }
        }
    }

    return AXIS2_SUCCESS;
}

AXIS2_EXTERN axis2_msg_recv_t *AXIS2_CALL
axis2_desc_builder_load_msg_recv(
    axis2_desc_builder_t * desc_builder,
    const axutil_env_t * env,
    struct axiom_element * recv_element)
{
    axiom_attribute_t *recv_name = NULL;
    axis2_char_t *class_name = NULL;
    axis2_msg_recv_t *msg_recv = NULL;
    axutil_qname_t *class_qname = NULL;
    axutil_param_t *impl_info_param = NULL;
    axutil_dll_desc_t *dll_desc = NULL;
    axis2_char_t *repos_name = NULL;
    axis2_char_t *dll_name = NULL;
    axis2_char_t *temp_path = NULL;
    axis2_char_t *temp_path2 = NULL;
    axis2_char_t *temp_path3 = NULL;
    axis2_conf_t *conf = NULL;
    axis2_char_t *msg_recv_dll_name = NULL;

    AXIS2_PARAM_CHECK(env->error, recv_element, NULL);

    class_qname = axutil_qname_create(env, AXIS2_CLASSNAME, NULL, NULL);
    recv_name = axiom_element_get_attribute(recv_element, env, class_qname);
    axutil_qname_free(class_qname, env);
    class_name = axiom_attribute_get_value(recv_name, env);

    conf = axis2_dep_engine_get_axis_conf(desc_builder->engine, env);
    if (!conf)
    {
        AXIS2_LOG_ERROR(env->log, AXIS2_LOG_SI, 
            "Configuration not found in the deployment engine");
        return NULL;
    }
    impl_info_param = axis2_conf_get_param(conf, env, class_name);

    if (!impl_info_param)
    {
        dll_desc = axutil_dll_desc_create(env);
        msg_recv_dll_name =
            axutil_dll_desc_create_platform_specific_dll_name(dll_desc, env,
                                                              class_name);
        repos_name = axis2_dep_engine_get_repos_path(desc_builder->engine, env);
        temp_path = axutil_stracat(env, repos_name, AXIS2_PATH_SEP_STR);
        temp_path2 = axutil_stracat(env, temp_path, AXIS2_LIB_FOLDER);
        temp_path3 = axutil_stracat(env, temp_path2, AXIS2_PATH_SEP_STR);
        dll_name = axutil_stracat(env, temp_path3, msg_recv_dll_name);
        AXIS2_FREE(env->allocator, temp_path);
        AXIS2_FREE(env->allocator, temp_path2);
        AXIS2_FREE(env->allocator, temp_path3);
        axutil_dll_desc_set_name(dll_desc, env, dll_name);
        AXIS2_FREE(env->allocator, dll_name);
        axutil_dll_desc_set_type(dll_desc, env, AXIS2_MSG_RECV_DLL);
        impl_info_param = axutil_param_create(env, class_name, NULL);
        axutil_param_set_value(impl_info_param, env, dll_desc);
        axutil_param_set_value_free(impl_info_param, env,
                                    axutil_dll_desc_free_void_arg);
        /* set the impl_info_param(which contain dll_desc as value) so that
         * loaded msg_recv loader lib can be re-used in future
         */
        axis2_conf_add_param(conf, env, impl_info_param);
    }

    axutil_class_loader_init(env);
    msg_recv = (axis2_msg_recv_t *) axutil_class_loader_create_dll(env,
                                                                   impl_info_param);
    return msg_recv;
}

AXIS2_EXTERN struct axis2_msg_recv *AXIS2_CALL
axis2_desc_builder_load_default_msg_recv(
    const axutil_env_t * env)
{
    axis2_msg_recv_t *msg_recv = NULL;

    msg_recv = axis2_raw_xml_in_out_msg_recv_create(env);
    return msg_recv;
}

AXIS2_EXTERN axis2_char_t *AXIS2_CALL
axis2_desc_builder_get_short_file_name(
    const axis2_desc_builder_t * desc_builder,
    const axutil_env_t * env,
    axis2_char_t * file_name)
{
    const axis2_char_t *separator = NULL;
    axis2_char_t *value = NULL;
    axis2_char_t *file_name_l = NULL;
    axis2_char_t *short_name = NULL;

    AXIS2_PARAM_CHECK(env->error, file_name, NULL);

    file_name_l = axutil_strdup(env, file_name);
    if (!file_name_l)
    {
        AXIS2_ERROR_SET(env->error, AXIS2_ERROR_NO_MEMORY, AXIS2_FAILURE);
        AXIS2_LOG_ERROR(env->log, AXIS2_LOG_SI, "");
        return NULL;
    }
    separator = ".";

    value = axutil_strstr(file_name_l, separator);

    value[0] = AXIS2_EOLN;
    short_name = file_name_l;

    return short_name;
}

AXIS2_EXTERN axis2_char_t *AXIS2_CALL
axis2_desc_builder_get_file_name_without_prefix(
    const axis2_desc_builder_t * desc_builder,
    const axutil_env_t * env,
    axis2_char_t * short_file_name)
{
    axis2_char_t *file_name_l = NULL;
    axis2_char_t *short_name = NULL;
    int len = 0;
    AXIS2_PARAM_CHECK(env->error, short_file_name, NULL);
    file_name_l = axutil_strdup(env, short_file_name);
    if (!file_name_l)
    {
        AXIS2_ERROR_SET(env->error, AXIS2_ERROR_NO_MEMORY, AXIS2_FAILURE);
        AXIS2_LOG_ERROR(env->log, AXIS2_LOG_SI, "");
        return NULL;
    }
    len = axutil_strlen(AXIS2_LIB_PREFIX);
    short_name = &file_name_l[len];
    return short_name;

}

AXIS2_EXTERN axis2_char_t *AXIS2_CALL
axis2_desc_builder_get_value(
    const axis2_desc_builder_t * desc_builder,
    const axutil_env_t * env,
    axis2_char_t * in)
{
    const axis2_char_t *separator = ":";
    axis2_char_t *value = NULL;
    axis2_char_t *in_l = NULL;

    AXIS2_PARAM_CHECK(env->error, in, NULL);

    in_l = axutil_strdup(env, in);
    if (!in_l)
    {
        AXIS2_ERROR_SET(env->error, AXIS2_ERROR_NO_MEMORY, AXIS2_FAILURE);
        AXIS2_LOG_ERROR(env->log, AXIS2_LOG_SI, "");
        return NULL;
    }
    value = axutil_strstr(in_l, separator);
    value = value + 1;

    return value;
}

AXIS2_EXTERN struct axis2_dep_engine *AXIS2_CALL
axis2_desc_builder_get_dep_engine(
    const axis2_desc_builder_t * desc_builder,
    const axutil_env_t * env)
{
    return desc_builder->engine;
}

AXIS2_EXTERN axis2_status_t AXIS2_CALL
axis2_process_policy_elements(
    const axutil_env_t * env,
    int type,
    axiom_children_qname_iterator_t * iterator,
    axis2_policy_include_t * policy_include)
{
    while (axiom_children_qname_iterator_has_next(iterator, env))
    {
        axiom_node_t *node = NULL;
        node = axiom_children_qname_iterator_next(iterator, env);
        if (node)
        {
            axiom_element_t *element = NULL;
            neethi_policy_t *policy = NULL;

            element = axiom_node_get_data_element(node, env);
            policy = neethi_engine_get_policy(env, node, element);
            if (!policy)
            {
                AXIS2_LOG_ERROR(env->log, AXIS2_LOG_SI, "");
                return AXIS2_FAILURE;
            }
            axis2_policy_include_add_policy_element(policy_include, env,
                                                    type, policy);
        }
    }
    return AXIS2_SUCCESS;
}

AXIS2_EXTERN axis2_status_t AXIS2_CALL
axis2_process_policy_reference_elements(
    const axutil_env_t * env,
    int type,
    axiom_children_qname_iterator_t * iterator,
    axis2_policy_include_t * policy_include)
{
    while (axiom_children_qname_iterator_has_next(iterator, env))
    {
        axiom_node_t *node = NULL;
        node = axiom_children_qname_iterator_next(iterator, env);
        if (node)
        {
            axiom_element_t *element = NULL;
            neethi_reference_t *reference = NULL;

            element = axiom_node_get_data_element(node, env);
            /* TODO: add neethi_engine_get_policy_reference
               reference = neethi_engine_get_policy_reference(env, node, element); */
            axis2_policy_include_add_policy_reference_element(policy_include,
                                                              env, type,
                                                              reference);
        }
    }
    return AXIS2_SUCCESS;
}



<|start_filename|>xdocs/api/html/group__rp__token.html<|end_filename|>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html><head><meta http-equiv="Content-Type" content="text/html;charset=UTF-8">
<title>Axis2/C: Rp_token</title>
<link href="doxygen.css" rel="stylesheet" type="text/css">
<link href="tabs.css" rel="stylesheet" type="text/css">
</head><body>
<!-- Generated by Doxygen 1.5.3 -->
<div class="tabs">
  <ul>
    <li><a href="index.html"><span>Main&nbsp;Page</span></a></li>
    <li><a href="modules.html"><span>Modules</span></a></li>
    <li><a href="annotated.html"><span>Classes</span></a></li>
    <li><a href="files.html"><span>Files</span></a></li>
    <li><a href="dirs.html"><span>Directories</span></a></li>
    <li><a href="pages.html"><span>Related&nbsp;Pages</span></a></li>
    <li><a href="examples.html"><span>Examples</span></a></li>
    <li>
      <form action="search.php" method="get">
        <table cellspacing="0" cellpadding="0" border="0">
          <tr>
            <td><label>&nbsp;<u>S</u>earch&nbsp;for&nbsp;</label></td>
            <td><input type="text" name="query" value="" size="20" accesskey="s"/></td>
          </tr>
        </table>
      </form>
    </li>
  </ul>
</div>
<h1>Rp_token</h1><table border="0" cellpadding="0" cellspacing="0">
<tr><td></td></tr>
<tr><td colspan="2"><br><h2>Typedefs</h2></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="g1ef674b0689b0c9a151182841ec07b33"></a><!-- doxytag: member="rp_token::rp_token_t" ref="g1ef674b0689b0c9a151182841ec07b33" args="" -->
typedef struct rp_token_t&nbsp;</td><td class="memItemRight" valign="bottom"><b>rp_token_t</b></td></tr>

<tr><td colspan="2"><br><h2>Enumerations</h2></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top">enum &nbsp;</td><td class="memItemRight" valign="bottom"><b>derive_key_type_t</b> { <b>DERIVEKEY_NONE</b> = 0, 
<b>DERIVEKEY_NEEDED</b>, 
<b>DERIVEKEY_IMPLIED</b>, 
<b>DERIVEKEY_EXPLICIT</b>
 }</td></tr>

<tr><td class="memItemLeft" nowrap align="right" valign="top">enum &nbsp;</td><td class="memItemRight" valign="bottom"><b>derive_key_version_t</b> { <b>DERIVEKEY_VERSION_SC10</b> = 0, 
<b>DERIVEKEY_VERSION_SC13</b>
 }</td></tr>

<tr><td colspan="2"><br><h2>Functions</h2></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="g64cfd0cc41b0d2046512df58362de9bc"></a><!-- doxytag: member="rp_token::rp_token_create" ref="g64cfd0cc41b0d2046512df58362de9bc" args="(const axutil_env_t *env)" -->
AXIS2_EXTERN rp_token_t *&nbsp;</td><td class="memItemRight" valign="bottom"><b>rp_token_create</b> (const <a class="el" href="structaxutil__env.html">axutil_env_t</a> *env)</td></tr>

<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="ge8251c6218d6058c6b11a017563ffd29"></a><!-- doxytag: member="rp_token::rp_token_free" ref="ge8251c6218d6058c6b11a017563ffd29" args="(rp_token_t *token, const axutil_env_t *env)" -->
AXIS2_EXTERN void&nbsp;</td><td class="memItemRight" valign="bottom"><b>rp_token_free</b> (rp_token_t *token, const <a class="el" href="structaxutil__env.html">axutil_env_t</a> *env)</td></tr>

<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="g0fb38b7cbf32d94b810e87b805d09115"></a><!-- doxytag: member="rp_token::rp_token_get_issuer" ref="g0fb38b7cbf32d94b810e87b805d09115" args="(rp_token_t *token, const axutil_env_t *env)" -->
AXIS2_EXTERN <br>
axis2_char_t *&nbsp;</td><td class="memItemRight" valign="bottom"><b>rp_token_get_issuer</b> (rp_token_t *token, const <a class="el" href="structaxutil__env.html">axutil_env_t</a> *env)</td></tr>

<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="g35f2db1f7152a60389786597ba29aae9"></a><!-- doxytag: member="rp_token::rp_token_set_issuer" ref="g35f2db1f7152a60389786597ba29aae9" args="(rp_token_t *token, const axutil_env_t *env, axis2_char_t *issuer)" -->
AXIS2_EXTERN <br>
axis2_status_t&nbsp;</td><td class="memItemRight" valign="bottom"><b>rp_token_set_issuer</b> (rp_token_t *token, const <a class="el" href="structaxutil__env.html">axutil_env_t</a> *env, axis2_char_t *issuer)</td></tr>

<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="g1dc621b0ae187cbff095d89e3ab066c7"></a><!-- doxytag: member="rp_token::rp_token_get_derivedkey_type" ref="g1dc621b0ae187cbff095d89e3ab066c7" args="(rp_token_t *token, const axutil_env_t *env)" -->
AXIS2_EXTERN <br>
derive_key_type_t&nbsp;</td><td class="memItemRight" valign="bottom"><b>rp_token_get_derivedkey_type</b> (rp_token_t *token, const <a class="el" href="structaxutil__env.html">axutil_env_t</a> *env)</td></tr>

<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="gbfafcde88ad69be6f16b6efecf8d9674"></a><!-- doxytag: member="rp_token::rp_token_set_derivedkey_type" ref="gbfafcde88ad69be6f16b6efecf8d9674" args="(rp_token_t *token, const axutil_env_t *env, derive_key_type_t derivedkey)" -->
AXIS2_EXTERN <br>
axis2_status_t&nbsp;</td><td class="memItemRight" valign="bottom"><b>rp_token_set_derivedkey_type</b> (rp_token_t *token, const <a class="el" href="structaxutil__env.html">axutil_env_t</a> *env, derive_key_type_t derivedkey)</td></tr>

<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="g21faa5f63b7cfeb03c3b7af1bf1d1c12"></a><!-- doxytag: member="rp_token::rp_token_get_is_issuer_name" ref="g21faa5f63b7cfeb03c3b7af1bf1d1c12" args="(rp_token_t *token, const axutil_env_t *env)" -->
AXIS2_EXTERN axis2_bool_t&nbsp;</td><td class="memItemRight" valign="bottom"><b>rp_token_get_is_issuer_name</b> (rp_token_t *token, const <a class="el" href="structaxutil__env.html">axutil_env_t</a> *env)</td></tr>

<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="gb1dd9414167fdf46dce481aaef366d39"></a><!-- doxytag: member="rp_token::rp_token_set_is_issuer_name" ref="gb1dd9414167fdf46dce481aaef366d39" args="(rp_token_t *token, const axutil_env_t *env, axis2_bool_t is_issuer_name)" -->
AXIS2_EXTERN <br>
axis2_status_t&nbsp;</td><td class="memItemRight" valign="bottom"><b>rp_token_set_is_issuer_name</b> (rp_token_t *token, const <a class="el" href="structaxutil__env.html">axutil_env_t</a> *env, axis2_bool_t is_issuer_name)</td></tr>

<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="g12264e99e2b50c7a76f95c52b160de37"></a><!-- doxytag: member="rp_token::rp_token_get_claim" ref="g12264e99e2b50c7a76f95c52b160de37" args="(rp_token_t *token, const axutil_env_t *env)" -->
AXIS2_EXTERN <br>
axiom_node_t *&nbsp;</td><td class="memItemRight" valign="bottom"><b>rp_token_get_claim</b> (rp_token_t *token, const <a class="el" href="structaxutil__env.html">axutil_env_t</a> *env)</td></tr>

<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="g366bd9770b436fa2588588dd717c4fe2"></a><!-- doxytag: member="rp_token::rp_token_set_claim" ref="g366bd9770b436fa2588588dd717c4fe2" args="(rp_token_t *token, const axutil_env_t *env, axiom_node_t *claim)" -->
AXIS2_EXTERN <br>
axis2_status_t&nbsp;</td><td class="memItemRight" valign="bottom"><b>rp_token_set_claim</b> (rp_token_t *token, const <a class="el" href="structaxutil__env.html">axutil_env_t</a> *env, axiom_node_t *claim)</td></tr>

<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="g2fe4ca83bdd2fd673e956aec5fc1e110"></a><!-- doxytag: member="rp_token::rp_token_increment_ref" ref="g2fe4ca83bdd2fd673e956aec5fc1e110" args="(rp_token_t *token, const axutil_env_t *env)" -->
AXIS2_EXTERN <br>
axis2_status_t&nbsp;</td><td class="memItemRight" valign="bottom"><b>rp_token_increment_ref</b> (rp_token_t *token, const <a class="el" href="structaxutil__env.html">axutil_env_t</a> *env)</td></tr>

<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="g0255a213ead985ee42c976c357bf32f1"></a><!-- doxytag: member="rp_token::rp_token_set_derive_key_version" ref="g0255a213ead985ee42c976c357bf32f1" args="(rp_token_t *token, const axutil_env_t *env, derive_key_version_t version)" -->
AXIS2_EXTERN <br>
axis2_status_t&nbsp;</td><td class="memItemRight" valign="bottom"><b>rp_token_set_derive_key_version</b> (rp_token_t *token, const <a class="el" href="structaxutil__env.html">axutil_env_t</a> *env, derive_key_version_t version)</td></tr>

<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="g27c0e47f4ee059fe9c3f6c24fe5fe172"></a><!-- doxytag: member="rp_token::rp_token_get_derive_key_version" ref="g27c0e47f4ee059fe9c3f6c24fe5fe172" args="(rp_token_t *token, const axutil_env_t *env)" -->
AXIS2_EXTERN <br>
derive_key_version_t&nbsp;</td><td class="memItemRight" valign="bottom"><b>rp_token_get_derive_key_version</b> (rp_token_t *token, const <a class="el" href="structaxutil__env.html">axutil_env_t</a> *env)</td></tr>

<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="gdc488bbcde52b56935f85c56c4f4210f"></a><!-- doxytag: member="rp_token::rp_token_set_inclusion" ref="gdc488bbcde52b56935f85c56c4f4210f" args="(rp_token_t *token, const axutil_env_t *env, axis2_char_t *inclusion)" -->
AXIS2_EXTERN <br>
axis2_status_t&nbsp;</td><td class="memItemRight" valign="bottom"><b>rp_token_set_inclusion</b> (rp_token_t *token, const <a class="el" href="structaxutil__env.html">axutil_env_t</a> *env, axis2_char_t *inclusion)</td></tr>

<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="g8890c6009b655b7fb964eb769ce1030a"></a><!-- doxytag: member="rp_token::rp_token_get_inclusion" ref="g8890c6009b655b7fb964eb769ce1030a" args="(rp_token_t *token, const axutil_env_t *env)" -->
AXIS2_EXTERN <br>
axis2_char_t *&nbsp;</td><td class="memItemRight" valign="bottom"><b>rp_token_get_inclusion</b> (rp_token_t *token, const <a class="el" href="structaxutil__env.html">axutil_env_t</a> *env)</td></tr>

</table>
<hr size="1"><address style="text-align: right;"><small>Generated on Fri Apr 17 11:49:47 2009 for Axis2/C by&nbsp;
<a href="http://www.doxygen.org/index.html">
<img src="doxygen.png" alt="doxygen" align="middle" border="0"></a> 1.5.3 </small></address>
</body>
</html>


<|start_filename|>src/core/transport/tcp/axis2_tcp_worker.h<|end_filename|>

/*
 * 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
 *
 *      tcp://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 AXIS2_TCP_WORKER_H
#define AXIS2_TCP_WORKER_H

/**
 * @defgroup axis2_tcp_worker tcp worker
 * @ingroup axis2_core_trans_tcp
 * @{
 */

/**
 * @file axis2_tcp_worker.h
 * @brief axis2 TCP Worker
 */

#include <axis2_const.h>
#include <axis2_defines.h>
#include <axutil_env.h>
#include <axis2_simple_tcp_svr_conn.h>
#include <axis2_conf_ctx.h>

#ifdef __cplusplus
extern "C"
{
#endif

    /** Type name for struct axis2_tcp_worker */
    typedef struct axis2_tcp_worker axis2_tcp_worker_t;

    /**
     * @param tcp_worker pointer to tcp worker
     * @param env pointer to environment struct
     * @param svr_conn pointer to svr conn
     * @param simple_request pointer to simple request
     */
    AXIS2_EXTERN axis2_bool_t AXIS2_CALL
    axis2_tcp_worker_process_request(
        axis2_tcp_worker_t * tcp_worker,
        const axutil_env_t * env,
        axis2_simple_tcp_svr_conn_t * svr_conn,
        axis2_char_t * simple_request);

    /**
     * @param tcp_worker pointer to tcp worker
     * @param env pointer to environment struct
     * @param port
     * @return AXIS2_SUCCESS on success, else AXIS2_FAILURE
     */
    AXIS2_EXTERN axis2_status_t AXIS2_CALL
    axis2_tcp_worker_set_svr_port(
        axis2_tcp_worker_t * tcp_worker,
        const axutil_env_t * env,
        int port);

    /**
     * @param tcp_worker pointer to tcp worker
     * @param env pointer to environment strut
     * @return void
     */
    AXIS2_EXTERN void AXIS2_CALL
    axis2_tcp_worker_free(
        axis2_tcp_worker_t * tcp_worker,
        const axutil_env_t * env);

    /**
     * @param env pointer to environment struct
     * @param conf_ctx pointer to configuration context
     */
    AXIS2_EXTERN axis2_tcp_worker_t *AXIS2_CALL
    axis2_tcp_worker_create(
        const axutil_env_t * env,
        axis2_conf_ctx_t * conf_ctx);

#ifdef __cplusplus
}
#endif

#endif                          /* AXIS2_TCP_WORKER_H */


<|start_filename|>util/test/string_util/string_util_test.c<|end_filename|>
#include <string.h>   
#include "../util/create_env.h"
#include <axutil_string_util.h>
#include <axutil_array_list.h>

/** @brief test string 
 *  tokenize a string  
 */

axis2_status_t test_string(axutil_env_t *env)
{   
    int delim = ' ';
    void *token = NULL;
    void *last_token_string = NULL;
    void *first_token_string = NULL;
    axutil_array_list_t * first_token, * last_token;
    axis2_char_t * in =  "this is a test string";
    
    axutil_array_list_t * tokenize = axutil_tokenize(env, in, delim);
    if(tokenize)
    {
        token  = axutil_array_list_get(tokenize,env,4);
        printf("The test axutil_tokenize is successfull\n");
        printf("The tokenize string is %s\n",(char *)token);
    }
    else 
        return AXIS2_FAILURE;

    first_token = axutil_first_token(env,in,delim);
    if(first_token)
    {
        first_token_string = axutil_array_list_get(first_token,env,1);
        printf("The test axutil_first_token is successfull\n");
        printf("First token string is %s\n",(char *)first_token_string);
    }
    else
        return AXIS2_FAILURE;
    
    last_token = axutil_last_token(env,in,delim);
    if(last_token)
    {
        last_token_string = axutil_array_list_get(last_token,env,1);
        printf("The test axutil_last_token is successfull\n");
        printf("Last token string is %s\n",(char *)last_token_string);
    }
    else
        return AXIS2_FAILURE;

    return AXIS2_SUCCESS;
}
int main()
{
    axutil_env_t *env = NULL;
    int status = AXIS2_SUCCESS;
    env = create_environment();
    status = test_string(env);
    if(status == AXIS2_FAILURE)
    {
        printf("build  failed");
    }
    axutil_env_free(env);
    return 0;
}





<|start_filename|>util/test/url/url_test.c<|end_filename|>
#include <axutil_url.h>
#include "../util/create_env.h"

/** @brief test url 
 * create URL and get the values of it's components  
 */

axis2_status_t test_url(axutil_env_t *env)
{
    axutil_url_t * url;
    axis2_char_t *url_str = "https://issues.apache.org/jira/secure/ManageAttachments.jspa?id=12386356";
    axis2_char_t *set_server = "www.yahoo.com";
    axis2_char_t *set_protocol = "file";
    axis2_char_t *set_path = "/bar/";
    axis2_port_t set_port = 80;
    axis2_char_t *get_protocol;
    axis2_char_t *get_server;
    axis2_port_t get_port;
    axis2_char_t *get_path;
    axis2_status_t status;

    url = axutil_url_parse_string(env,url_str);
    if(url)
    {   
        printf("The url is created \n");
    }
    else
    {
         return AXIS2_FAILURE;
    }
    
    status = axutil_url_set_protocol(url,env,set_protocol);
    
    if (status == AXIS2_SUCCESS)
        printf("The test 1 is successful\n");
    else
        printf("The test 1 failed\n") ;
    
    status = axutil_url_set_server(url,env,set_server);
    
    if (status == AXIS2_SUCCESS)
        printf("The test 2 is successful\n");
    else
        printf("The test 2 failed\n") ;
    
    status = axutil_url_set_port(url,env,set_port);
    
    if (status == AXIS2_SUCCESS)
        printf("The test 3 is successful\n");
    else
        printf("The test 3 failed\n") ;
    
    status = axutil_url_set_path(url,env,set_path);
    
    if (status == AXIS2_SUCCESS)
        printf("The test 4 is successful\n");
    else
        printf("The test 4 failed\n") ;
    
    get_protocol = axutil_url_get_protocol(url,env);
    
    if (!get_protocol)
    {
        axutil_url_free(url,env);
        return AXIS2_FAILURE;
    }
    else 
    {
        printf("The protocol is %s\n",get_protocol);
    }

    get_server = axutil_url_get_server(url,env);
    
    if (!get_server)
    {
        axutil_url_free(url,env);
        return AXIS2_FAILURE;
    }
    else
    {
        printf("The server is %s\n",get_server);
    }
        
    get_port = axutil_url_get_port(url,env);
    
    if (!get_port)
    {
        axutil_url_free(url,env);
        return AXIS2_FAILURE;
    }
    else 
    {
        printf("The port is %d\n",get_port);
    }
 
    get_path = axutil_url_get_path(url,env);
    
    if (!get_path)
    {
        axutil_url_free(url,env);
        return AXIS2_FAILURE;
    }
    else
    {
        printf("The path is %s\n",get_path);
    }

    axutil_url_free(url,env);
    return AXIS2_SUCCESS;
}

int main()
{
    int status = AXIS2_SUCCESS;
    axutil_env_t *env = NULL;
    
    env = create_environment();
    status = test_url(env);
    
    if(status == AXIS2_FAILURE)
    {
        printf("Test failed");
    }
    axutil_env_free(env);
    
    return 0;
}





<|start_filename|>xdocs/api/html/group__axis2__options.html<|end_filename|>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html><head><meta http-equiv="Content-Type" content="text/html;charset=UTF-8">
<title>Axis2/C: options</title>
<link href="doxygen.css" rel="stylesheet" type="text/css">
<link href="tabs.css" rel="stylesheet" type="text/css">
</head><body>
<!-- Generated by Doxygen 1.5.3 -->
<div class="tabs">
  <ul>
    <li><a href="index.html"><span>Main&nbsp;Page</span></a></li>
    <li><a href="modules.html"><span>Modules</span></a></li>
    <li><a href="annotated.html"><span>Classes</span></a></li>
    <li><a href="files.html"><span>Files</span></a></li>
    <li><a href="dirs.html"><span>Directories</span></a></li>
    <li><a href="pages.html"><span>Related&nbsp;Pages</span></a></li>
    <li><a href="examples.html"><span>Examples</span></a></li>
    <li>
      <form action="search.php" method="get">
        <table cellspacing="0" cellpadding="0" border="0">
          <tr>
            <td><label>&nbsp;<u>S</u>earch&nbsp;for&nbsp;</label></td>
            <td><input type="text" name="query" value="" size="20" accesskey="s"/></td>
          </tr>
        </table>
      </form>
    </li>
  </ul>
</div>
<h1>options<br>
<small>
[<a class="el" href="group__axis2__client__api.html">client API</a>]</small>
</h1><table border="0" cellpadding="0" cellspacing="0">
<tr><td></td></tr>
<tr><td colspan="2"><br><h2>Files</h2></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top">file &nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="axis2__options_8h.html">axis2_options.h</a></td></tr>

<tr><td colspan="2"><br><h2>Defines</h2></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top">#define&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__axis2__options.html#gfc55ac210f2f22e70ac1d905d8509fe4">AXIS2_DEFAULT_TIMEOUT_MILLISECONDS</a>&nbsp;&nbsp;&nbsp;30000</td></tr>

<tr><td class="memItemLeft" nowrap align="right" valign="top">#define&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__axis2__options.html#g8d4099b7a4e7a79c33840aeb01b34a43">AXIS2_TIMEOUT_IN_SECONDS</a>&nbsp;&nbsp;&nbsp;&quot;time_out&quot;</td></tr>

<tr><td class="memItemLeft" nowrap align="right" valign="top">#define&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__axis2__options.html#g8e84174996e7ce97d2ec4c7b49956ad7">AXIS2_COPY_PROPERTIES</a>&nbsp;&nbsp;&nbsp;&quot;copy_properties&quot;</td></tr>

<tr><td colspan="2"><br><h2>Typedefs</h2></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top">typedef struct <br>
axis2_options&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__axis2__options.html#g26794bbdc46cdd3481c7e9079c0d6094">axis2_options_t</a></td></tr>

<tr><td colspan="2"><br><h2>Functions</h2></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top">AXIS2_EXTERN const <br>
axis2_char_t *&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__axis2__options.html#g678ae601586531dca4425014f09cd9ca">axis2_options_get_action</a> (const <a class="el" href="group__axis2__options.html#g26794bbdc46cdd3481c7e9079c0d6094">axis2_options_t</a> *options, const <a class="el" href="structaxutil__env.html">axutil_env_t</a> *env)</td></tr>

<tr><td class="memItemLeft" nowrap align="right" valign="top">AXIS2_EXTERN <br>
<a class="el" href="group__axis2__endpoint__ref.html#gf6e89c83a6b553e7e3f11e787b3fecd4">axis2_endpoint_ref_t</a> *&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__axis2__options.html#g283b491d25be268924fdfb3410003cce">axis2_options_get_fault_to</a> (const <a class="el" href="group__axis2__options.html#g26794bbdc46cdd3481c7e9079c0d6094">axis2_options_t</a> *options, const <a class="el" href="structaxutil__env.html">axutil_env_t</a> *env)</td></tr>

<tr><td class="memItemLeft" nowrap align="right" valign="top">AXIS2_EXTERN <br>
<a class="el" href="group__axis2__endpoint__ref.html#gf6e89c83a6b553e7e3f11e787b3fecd4">axis2_endpoint_ref_t</a> *&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__axis2__options.html#g7e00548bdf22d85963f03cf96af4324e">axis2_options_get_from</a> (const <a class="el" href="group__axis2__options.html#g26794bbdc46cdd3481c7e9079c0d6094">axis2_options_t</a> *options, const <a class="el" href="structaxutil__env.html">axutil_env_t</a> *env)</td></tr>

<tr><td class="memItemLeft" nowrap align="right" valign="top">AXIS2_EXTERN <br>
<a class="el" href="structaxis2__transport__receiver.html">axis2_transport_receiver_t</a> *&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__axis2__options.html#g2503c35d1dd383cc8f18cba198097df3">axis2_options_get_transport_receiver</a> (const <a class="el" href="group__axis2__options.html#g26794bbdc46cdd3481c7e9079c0d6094">axis2_options_t</a> *options, const <a class="el" href="structaxutil__env.html">axutil_env_t</a> *env)</td></tr>

<tr><td class="memItemLeft" nowrap align="right" valign="top">AXIS2_EXTERN <br>
<a class="el" href="group__axis2__transport__in__desc.html#g9185c8c5307454b74f49523666f7bda6">axis2_transport_in_desc_t</a> *&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__axis2__options.html#g21bb77bedd66cce1e54f470b2b33d983">axis2_options_get_transport_in</a> (const <a class="el" href="group__axis2__options.html#g26794bbdc46cdd3481c7e9079c0d6094">axis2_options_t</a> *options, const <a class="el" href="structaxutil__env.html">axutil_env_t</a> *env)</td></tr>

<tr><td class="memItemLeft" nowrap align="right" valign="top">AXIS2_EXTERN <br>
AXIS2_TRANSPORT_ENUMS&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__axis2__options.html#gd49160ba8b51fd82aafdc8bbd034851a">axis2_options_get_transport_in_protocol</a> (const <a class="el" href="group__axis2__options.html#g26794bbdc46cdd3481c7e9079c0d6094">axis2_options_t</a> *options, const <a class="el" href="structaxutil__env.html">axutil_env_t</a> *env)</td></tr>

<tr><td class="memItemLeft" nowrap align="right" valign="top">AXIS2_EXTERN const <br>
axis2_char_t *&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__axis2__options.html#g7b435f608628b067d41d269894245bf7">axis2_options_get_message_id</a> (const <a class="el" href="group__axis2__options.html#g26794bbdc46cdd3481c7e9079c0d6094">axis2_options_t</a> *options_t, const <a class="el" href="structaxutil__env.html">axutil_env_t</a> *env)</td></tr>

<tr><td class="memItemLeft" nowrap align="right" valign="top">AXIS2_EXTERN <br>
<a class="el" href="group__axutil__hash.html#gb2d7d14db2de92a101573f44421ac12a">axutil_hash_t</a> *&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__axis2__options.html#g244f26e4bca15b715a13240f0c95605b">axis2_options_get_properties</a> (const <a class="el" href="group__axis2__options.html#g26794bbdc46cdd3481c7e9079c0d6094">axis2_options_t</a> *options, const <a class="el" href="structaxutil__env.html">axutil_env_t</a> *env)</td></tr>

<tr><td class="memItemLeft" nowrap align="right" valign="top">AXIS2_EXTERN void *&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__axis2__options.html#g326904f3372180e2da28e235de21881f">axis2_options_get_property</a> (const <a class="el" href="group__axis2__options.html#g26794bbdc46cdd3481c7e9079c0d6094">axis2_options_t</a> *options, const <a class="el" href="structaxutil__env.html">axutil_env_t</a> *env, const axis2_char_t *key)</td></tr>

<tr><td class="memItemLeft" nowrap align="right" valign="top">AXIS2_EXTERN <br>
<a class="el" href="group__axis2__relates__to.html#gd92fd7b0e63b44c6343db15b61aeba45">axis2_relates_to_t</a> *&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__axis2__options.html#ga20805b9f4550070953e4f1e189ed78a">axis2_options_get_relates_to</a> (const <a class="el" href="group__axis2__options.html#g26794bbdc46cdd3481c7e9079c0d6094">axis2_options_t</a> *options, const <a class="el" href="structaxutil__env.html">axutil_env_t</a> *env)</td></tr>

<tr><td class="memItemLeft" nowrap align="right" valign="top">AXIS2_EXTERN <br>
<a class="el" href="group__axis2__endpoint__ref.html#gf6e89c83a6b553e7e3f11e787b3fecd4">axis2_endpoint_ref_t</a> *&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__axis2__options.html#g29a591f1954522269e4dcdbcea8f4cde">axis2_options_get_reply_to</a> (const <a class="el" href="group__axis2__options.html#g26794bbdc46cdd3481c7e9079c0d6094">axis2_options_t</a> *options, const <a class="el" href="structaxutil__env.html">axutil_env_t</a> *env)</td></tr>

<tr><td class="memItemLeft" nowrap align="right" valign="top">AXIS2_EXTERN <br>
<a class="el" href="group__axis2__transport__out__desc.html#g30caf90fd8fb7b0c89700bcb12e250df">axis2_transport_out_desc_t</a> *&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__axis2__options.html#g31b684c1588681915e4be4242f0e7ee0">axis2_options_get_transport_out</a> (const <a class="el" href="group__axis2__options.html#g26794bbdc46cdd3481c7e9079c0d6094">axis2_options_t</a> *options, const <a class="el" href="structaxutil__env.html">axutil_env_t</a> *env)</td></tr>

<tr><td class="memItemLeft" nowrap align="right" valign="top">AXIS2_EXTERN <br>
AXIS2_TRANSPORT_ENUMS&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__axis2__options.html#g99d8d5efc4c5cb0549c7ea93425f14f2">axis2_options_get_sender_transport_protocol</a> (const <a class="el" href="group__axis2__options.html#g26794bbdc46cdd3481c7e9079c0d6094">axis2_options_t</a> *options, const <a class="el" href="structaxutil__env.html">axutil_env_t</a> *env)</td></tr>

<tr><td class="memItemLeft" nowrap align="right" valign="top">AXIS2_EXTERN const <br>
axis2_char_t *&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__axis2__options.html#g815f59fcea7c8c19b361121636ecfd2a">axis2_options_get_soap_version_uri</a> (const <a class="el" href="group__axis2__options.html#g26794bbdc46cdd3481c7e9079c0d6094">axis2_options_t</a> *options, const <a class="el" href="structaxutil__env.html">axutil_env_t</a> *env)</td></tr>

<tr><td class="memItemLeft" nowrap align="right" valign="top">AXIS2_EXTERN long&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__axis2__options.html#gf5bffc566365333558914d7ca4c727dd">axis2_options_get_timeout_in_milli_seconds</a> (const <a class="el" href="group__axis2__options.html#g26794bbdc46cdd3481c7e9079c0d6094">axis2_options_t</a> *options, const <a class="el" href="structaxutil__env.html">axutil_env_t</a> *env)</td></tr>

<tr><td class="memItemLeft" nowrap align="right" valign="top">AXIS2_EXTERN <br>
<a class="el" href="group__axis2__endpoint__ref.html#gf6e89c83a6b553e7e3f11e787b3fecd4">axis2_endpoint_ref_t</a> *&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__axis2__options.html#gd01536ebcfafaa661a44f5049650a9e8">axis2_options_get_to</a> (const <a class="el" href="group__axis2__options.html#g26794bbdc46cdd3481c7e9079c0d6094">axis2_options_t</a> *options, const <a class="el" href="structaxutil__env.html">axutil_env_t</a> *env)</td></tr>

<tr><td class="memItemLeft" nowrap align="right" valign="top">AXIS2_EXTERN axis2_bool_t&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__axis2__options.html#g44f65542c0790f426a539e8a48bba49c">axis2_options_get_use_separate_listener</a> (const <a class="el" href="group__axis2__options.html#g26794bbdc46cdd3481c7e9079c0d6094">axis2_options_t</a> *options, const <a class="el" href="structaxutil__env.html">axutil_env_t</a> *env)</td></tr>

<tr><td class="memItemLeft" nowrap align="right" valign="top">AXIS2_EXTERN <br>
<a class="el" href="group__axis2__options.html#g26794bbdc46cdd3481c7e9079c0d6094">axis2_options_t</a> *&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__axis2__options.html#g44755ea1568201951ee3c75358323039">axis2_options_get_parent</a> (const <a class="el" href="group__axis2__options.html#g26794bbdc46cdd3481c7e9079c0d6094">axis2_options_t</a> *options, const <a class="el" href="structaxutil__env.html">axutil_env_t</a> *env)</td></tr>

<tr><td class="memItemLeft" nowrap align="right" valign="top">AXIS2_EXTERN <br>
axis2_status_t&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__axis2__options.html#g787038bb34b488493d73fbfe1af919ff">axis2_options_set_parent</a> (<a class="el" href="group__axis2__options.html#g26794bbdc46cdd3481c7e9079c0d6094">axis2_options_t</a> *options, const <a class="el" href="structaxutil__env.html">axutil_env_t</a> *env, const <a class="el" href="group__axis2__options.html#g26794bbdc46cdd3481c7e9079c0d6094">axis2_options_t</a> *parent)</td></tr>

<tr><td class="memItemLeft" nowrap align="right" valign="top">AXIS2_EXTERN <br>
axis2_status_t&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__axis2__options.html#g3034f3d572a3f31d708250ffa374931d">axis2_options_set_action</a> (<a class="el" href="group__axis2__options.html#g26794bbdc46cdd3481c7e9079c0d6094">axis2_options_t</a> *options, const <a class="el" href="structaxutil__env.html">axutil_env_t</a> *env, const axis2_char_t *action)</td></tr>

<tr><td class="memItemLeft" nowrap align="right" valign="top">AXIS2_EXTERN <br>
axis2_status_t&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__axis2__options.html#g14e60636d93226301003417edc5c96a0">axis2_options_set_fault_to</a> (<a class="el" href="group__axis2__options.html#g26794bbdc46cdd3481c7e9079c0d6094">axis2_options_t</a> *options, const <a class="el" href="structaxutil__env.html">axutil_env_t</a> *env, <a class="el" href="group__axis2__endpoint__ref.html#gf6e89c83a6b553e7e3f11e787b3fecd4">axis2_endpoint_ref_t</a> *fault_to)</td></tr>

<tr><td class="memItemLeft" nowrap align="right" valign="top">AXIS2_EXTERN <br>
axis2_status_t&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__axis2__options.html#g5c465dd6f0aebb8feb3d92642bb1d3c7">axis2_options_set_from</a> (<a class="el" href="group__axis2__options.html#g26794bbdc46cdd3481c7e9079c0d6094">axis2_options_t</a> *options, const <a class="el" href="structaxutil__env.html">axutil_env_t</a> *env, <a class="el" href="group__axis2__endpoint__ref.html#gf6e89c83a6b553e7e3f11e787b3fecd4">axis2_endpoint_ref_t</a> *from)</td></tr>

<tr><td class="memItemLeft" nowrap align="right" valign="top">AXIS2_EXTERN <br>
axis2_status_t&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__axis2__options.html#geb3c591479ec264bd1e36221d22e31c7">axis2_options_set_to</a> (<a class="el" href="group__axis2__options.html#g26794bbdc46cdd3481c7e9079c0d6094">axis2_options_t</a> *options, const <a class="el" href="structaxutil__env.html">axutil_env_t</a> *env, <a class="el" href="group__axis2__endpoint__ref.html#gf6e89c83a6b553e7e3f11e787b3fecd4">axis2_endpoint_ref_t</a> *to)</td></tr>

<tr><td class="memItemLeft" nowrap align="right" valign="top">AXIS2_EXTERN <br>
axis2_status_t&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__axis2__options.html#g3b599f4516c8eb809d9c957f79e3b348">axis2_options_set_transport_receiver</a> (<a class="el" href="group__axis2__options.html#g26794bbdc46cdd3481c7e9079c0d6094">axis2_options_t</a> *options, const <a class="el" href="structaxutil__env.html">axutil_env_t</a> *env, <a class="el" href="structaxis2__transport__receiver.html">axis2_transport_receiver_t</a> *receiver)</td></tr>

<tr><td class="memItemLeft" nowrap align="right" valign="top">AXIS2_EXTERN <br>
axis2_status_t&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__axis2__options.html#g7adae8ea3c133854375e0a0dc02a2446">axis2_options_set_transport_in</a> (<a class="el" href="group__axis2__options.html#g26794bbdc46cdd3481c7e9079c0d6094">axis2_options_t</a> *options, const <a class="el" href="structaxutil__env.html">axutil_env_t</a> *env, <a class="el" href="group__axis2__transport__in__desc.html#g9185c8c5307454b74f49523666f7bda6">axis2_transport_in_desc_t</a> *transport_in)</td></tr>

<tr><td class="memItemLeft" nowrap align="right" valign="top">AXIS2_EXTERN <br>
axis2_status_t&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__axis2__options.html#g23c960bfdb5ace4fce7997b3d00be21d">axis2_options_set_transport_in_protocol</a> (<a class="el" href="group__axis2__options.html#g26794bbdc46cdd3481c7e9079c0d6094">axis2_options_t</a> *options, const <a class="el" href="structaxutil__env.html">axutil_env_t</a> *env, const AXIS2_TRANSPORT_ENUMS transport_in_protocol)</td></tr>

<tr><td class="memItemLeft" nowrap align="right" valign="top">AXIS2_EXTERN <br>
axis2_status_t&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__axis2__options.html#g7d0fbc43a55e0e40f1f124d317cd2675">axis2_options_set_message_id</a> (<a class="el" href="group__axis2__options.html#g26794bbdc46cdd3481c7e9079c0d6094">axis2_options_t</a> *options, const <a class="el" href="structaxutil__env.html">axutil_env_t</a> *env, const axis2_char_t *message_id)</td></tr>

<tr><td class="memItemLeft" nowrap align="right" valign="top">AXIS2_EXTERN <br>
axis2_status_t&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__axis2__options.html#g585f0123a394ba50e4aa472a026517b7">axis2_options_set_properties</a> (<a class="el" href="group__axis2__options.html#g26794bbdc46cdd3481c7e9079c0d6094">axis2_options_t</a> *options, const <a class="el" href="structaxutil__env.html">axutil_env_t</a> *env, <a class="el" href="group__axutil__hash.html#gb2d7d14db2de92a101573f44421ac12a">axutil_hash_t</a> *properties)</td></tr>

<tr><td class="memItemLeft" nowrap align="right" valign="top">AXIS2_EXTERN <br>
axis2_status_t&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__axis2__options.html#g5a364a815c87168bb136d8cbd11476aa">axis2_options_set_property</a> (<a class="el" href="group__axis2__options.html#g26794bbdc46cdd3481c7e9079c0d6094">axis2_options_t</a> *options, const <a class="el" href="structaxutil__env.html">axutil_env_t</a> *env, const axis2_char_t *property_key, const void *property)</td></tr>

<tr><td class="memItemLeft" nowrap align="right" valign="top">AXIS2_EXTERN <br>
axis2_status_t&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__axis2__options.html#g209582f680d8310f26952d036d130b55">axis2_options_set_relates_to</a> (<a class="el" href="group__axis2__options.html#g26794bbdc46cdd3481c7e9079c0d6094">axis2_options_t</a> *options, const <a class="el" href="structaxutil__env.html">axutil_env_t</a> *env, <a class="el" href="group__axis2__relates__to.html#gd92fd7b0e63b44c6343db15b61aeba45">axis2_relates_to_t</a> *relates_to)</td></tr>

<tr><td class="memItemLeft" nowrap align="right" valign="top">AXIS2_EXTERN <br>
axis2_status_t&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__axis2__options.html#gc2425fafccaf57322da1a07b328ebcb0">axis2_options_set_reply_to</a> (<a class="el" href="group__axis2__options.html#g26794bbdc46cdd3481c7e9079c0d6094">axis2_options_t</a> *options, const <a class="el" href="structaxutil__env.html">axutil_env_t</a> *env, <a class="el" href="group__axis2__endpoint__ref.html#gf6e89c83a6b553e7e3f11e787b3fecd4">axis2_endpoint_ref_t</a> *reply_to)</td></tr>

<tr><td class="memItemLeft" nowrap align="right" valign="top">AXIS2_EXTERN <br>
axis2_status_t&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__axis2__options.html#gfa5e260c38cf75997d4ae2b58517166d">axis2_options_set_transport_out</a> (<a class="el" href="group__axis2__options.html#g26794bbdc46cdd3481c7e9079c0d6094">axis2_options_t</a> *options, const <a class="el" href="structaxutil__env.html">axutil_env_t</a> *env, <a class="el" href="group__axis2__transport__out__desc.html#g30caf90fd8fb7b0c89700bcb12e250df">axis2_transport_out_desc_t</a> *transport_out)</td></tr>

<tr><td class="memItemLeft" nowrap align="right" valign="top">AXIS2_EXTERN <br>
axis2_status_t&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__axis2__options.html#g20bad0d888b7d491992595703dd11dda">axis2_options_set_sender_transport</a> (<a class="el" href="group__axis2__options.html#g26794bbdc46cdd3481c7e9079c0d6094">axis2_options_t</a> *options, const <a class="el" href="structaxutil__env.html">axutil_env_t</a> *env, const AXIS2_TRANSPORT_ENUMS sender_transport, <a class="el" href="group__axis2__config.html#gd32db334e748bbdcaebd55156e493d3b">axis2_conf_t</a> *conf)</td></tr>

<tr><td class="memItemLeft" nowrap align="right" valign="top">AXIS2_EXTERN <br>
axis2_status_t&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__axis2__options.html#gfa4179613c1277d4301bb25065e9007b">axis2_options_set_soap_version_uri</a> (<a class="el" href="group__axis2__options.html#g26794bbdc46cdd3481c7e9079c0d6094">axis2_options_t</a> *options, const <a class="el" href="structaxutil__env.html">axutil_env_t</a> *env, const axis2_char_t *soap_version_uri)</td></tr>

<tr><td class="memItemLeft" nowrap align="right" valign="top">AXIS2_EXTERN <br>
axis2_status_t&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__axis2__options.html#gb75870ba3c356a79e749135f32e2971c">axis2_options_set_timeout_in_milli_seconds</a> (<a class="el" href="group__axis2__options.html#g26794bbdc46cdd3481c7e9079c0d6094">axis2_options_t</a> *options, const <a class="el" href="structaxutil__env.html">axutil_env_t</a> *env, const long timeout_in_milli_seconds)</td></tr>

<tr><td class="memItemLeft" nowrap align="right" valign="top">AXIS2_EXTERN <br>
axis2_status_t&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__axis2__options.html#ga80d984e3d86b89084d9aefd0da22196">axis2_options_set_transport_info</a> (<a class="el" href="group__axis2__options.html#g26794bbdc46cdd3481c7e9079c0d6094">axis2_options_t</a> *options, const <a class="el" href="structaxutil__env.html">axutil_env_t</a> *env, const AXIS2_TRANSPORT_ENUMS sender_transport, const AXIS2_TRANSPORT_ENUMS receiver_transport, const axis2_bool_t use_separate_listener)</td></tr>

<tr><td class="memItemLeft" nowrap align="right" valign="top">AXIS2_EXTERN <br>
axis2_status_t&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__axis2__options.html#g4d51e41495fd13829711123fc1c66179">axis2_options_set_use_separate_listener</a> (<a class="el" href="group__axis2__options.html#g26794bbdc46cdd3481c7e9079c0d6094">axis2_options_t</a> *options, const <a class="el" href="structaxutil__env.html">axutil_env_t</a> *env, const axis2_bool_t use_separate_listener)</td></tr>

<tr><td class="memItemLeft" nowrap align="right" valign="top">AXIS2_EXTERN <br>
axis2_status_t&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__axis2__options.html#g37109110cd1537d898fd4ec78787988e">axis2_options_add_reference_parameter</a> (<a class="el" href="group__axis2__options.html#g26794bbdc46cdd3481c7e9079c0d6094">axis2_options_t</a> *options, const <a class="el" href="structaxutil__env.html">axutil_env_t</a> *env, axiom_node_t *reference_parameter)</td></tr>

<tr><td class="memItemLeft" nowrap align="right" valign="top">AXIS2_EXTERN axis2_bool_t&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__axis2__options.html#g31560142acf4f3fdd5784e95215ec8c4">axis2_options_get_manage_session</a> (const <a class="el" href="group__axis2__options.html#g26794bbdc46cdd3481c7e9079c0d6094">axis2_options_t</a> *options, const <a class="el" href="structaxutil__env.html">axutil_env_t</a> *env)</td></tr>

<tr><td class="memItemLeft" nowrap align="right" valign="top">AXIS2_EXTERN <br>
axis2_status_t&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__axis2__options.html#g61fc4980e653dcc854819966af927b01">axis2_options_set_manage_session</a> (<a class="el" href="group__axis2__options.html#g26794bbdc46cdd3481c7e9079c0d6094">axis2_options_t</a> *options, const <a class="el" href="structaxutil__env.html">axutil_env_t</a> *env, const axis2_bool_t manage_session)</td></tr>

<tr><td class="memItemLeft" nowrap align="right" valign="top">AXIS2_EXTERN <br>
axis2_status_t&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__axis2__options.html#g85559daaff1957e799f5ff93c8f5c805">axis2_options_set_msg_info_headers</a> (<a class="el" href="group__axis2__options.html#g26794bbdc46cdd3481c7e9079c0d6094">axis2_options_t</a> *options, const <a class="el" href="structaxutil__env.html">axutil_env_t</a> *env, <a class="el" href="group__axis2__msg__info__headers.html#g556873fdfa94e29e43d96728871f3192">axis2_msg_info_headers_t</a> *msg_info_headers)</td></tr>

<tr><td class="memItemLeft" nowrap align="right" valign="top">AXIS2_EXTERN <br>
<a class="el" href="group__axis2__msg__info__headers.html#g556873fdfa94e29e43d96728871f3192">axis2_msg_info_headers_t</a> *&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__axis2__options.html#gf88ecbaac26036de8311ecf8552ef396">axis2_options_get_msg_info_headers</a> (const <a class="el" href="group__axis2__options.html#g26794bbdc46cdd3481c7e9079c0d6094">axis2_options_t</a> *options, const <a class="el" href="structaxutil__env.html">axutil_env_t</a> *env)</td></tr>

<tr><td class="memItemLeft" nowrap align="right" valign="top">AXIS2_EXTERN int&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__axis2__options.html#g11ee50a4d0d759ce0199e4009c958b25">axis2_options_get_soap_version</a> (const <a class="el" href="group__axis2__options.html#g26794bbdc46cdd3481c7e9079c0d6094">axis2_options_t</a> *options, const <a class="el" href="structaxutil__env.html">axutil_env_t</a> *env)</td></tr>

<tr><td class="memItemLeft" nowrap align="right" valign="top">AXIS2_EXTERN <br>
axis2_status_t&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__axis2__options.html#ge0a82c10e919078b3e06509e0ffe1042">axis2_options_set_soap_version</a> (<a class="el" href="group__axis2__options.html#g26794bbdc46cdd3481c7e9079c0d6094">axis2_options_t</a> *options, const <a class="el" href="structaxutil__env.html">axutil_env_t</a> *env, const int soap_version)</td></tr>

<tr><td class="memItemLeft" nowrap align="right" valign="top">AXIS2_EXTERN <br>
axis2_status_t&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__axis2__options.html#g1b441d3770ced54ff17f117022ea082f">axis2_options_set_enable_mtom</a> (<a class="el" href="group__axis2__options.html#g26794bbdc46cdd3481c7e9079c0d6094">axis2_options_t</a> *options, const <a class="el" href="structaxutil__env.html">axutil_env_t</a> *env, axis2_bool_t enable_mtom)</td></tr>

<tr><td class="memItemLeft" nowrap align="right" valign="top">AXIS2_EXTERN axis2_bool_t&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__axis2__options.html#g868f6cfddb5dcae40c8dcaf870eb688f">axis2_options_get_enable_mtom</a> (const <a class="el" href="group__axis2__options.html#g26794bbdc46cdd3481c7e9079c0d6094">axis2_options_t</a> *options, const <a class="el" href="structaxutil__env.html">axutil_env_t</a> *env)</td></tr>

<tr><td class="memItemLeft" nowrap align="right" valign="top">AXIS2_EXTERN <br>
axutil_string_t *&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__axis2__options.html#g67dbecc87ad94df19286a2a87178ce34">axis2_options_get_soap_action</a> (const <a class="el" href="group__axis2__options.html#g26794bbdc46cdd3481c7e9079c0d6094">axis2_options_t</a> *options, const <a class="el" href="structaxutil__env.html">axutil_env_t</a> *env)</td></tr>

<tr><td class="memItemLeft" nowrap align="right" valign="top">AXIS2_EXTERN <br>
axis2_status_t&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__axis2__options.html#g39f6317b5633f5ee71311f124dac42fc">axis2_options_set_soap_action</a> (<a class="el" href="group__axis2__options.html#g26794bbdc46cdd3481c7e9079c0d6094">axis2_options_t</a> *options, const <a class="el" href="structaxutil__env.html">axutil_env_t</a> *env, axutil_string_t *soap_action)</td></tr>

<tr><td class="memItemLeft" nowrap align="right" valign="top">AXIS2_EXTERN <br>
axis2_status_t&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__axis2__options.html#gcb471f91a48af04d45ee124f341e98ba">axis2_options_set_xml_parser_reset</a> (<a class="el" href="group__axis2__options.html#g26794bbdc46cdd3481c7e9079c0d6094">axis2_options_t</a> *options, const <a class="el" href="structaxutil__env.html">axutil_env_t</a> *env, const axis2_bool_t paser_reset_flag)</td></tr>

<tr><td class="memItemLeft" nowrap align="right" valign="top">AXIS2_EXTERN axis2_bool_t&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__axis2__options.html#g079c0d74ca8b4a6bdf94b5afe45c8b1c">axis2_options_get_xml_parser_reset</a> (const <a class="el" href="group__axis2__options.html#g26794bbdc46cdd3481c7e9079c0d6094">axis2_options_t</a> *options, const <a class="el" href="structaxutil__env.html">axutil_env_t</a> *env)</td></tr>

<tr><td class="memItemLeft" nowrap align="right" valign="top">AXIS2_EXTERN void&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__axis2__options.html#g1cc19bb9faf77ab2afaf79781e409fc0">axis2_options_free</a> (<a class="el" href="group__axis2__options.html#g26794bbdc46cdd3481c7e9079c0d6094">axis2_options_t</a> *options, const <a class="el" href="structaxutil__env.html">axutil_env_t</a> *env)</td></tr>

<tr><td class="memItemLeft" nowrap align="right" valign="top">AXIS2_EXTERN <br>
axis2_status_t&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__axis2__options.html#gb1533f1ffce6cb2842f60cd14a1270ba">axis2_options_set_enable_rest</a> (<a class="el" href="group__axis2__options.html#g26794bbdc46cdd3481c7e9079c0d6094">axis2_options_t</a> *options, const <a class="el" href="structaxutil__env.html">axutil_env_t</a> *env, const axis2_bool_t enable_rest)</td></tr>

<tr><td class="memItemLeft" nowrap align="right" valign="top">AXIS2_EXTERN <br>
axis2_status_t&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__axis2__options.html#g08d3a84142e28bf18609aa127f5e43da">axis2_options_set_test_http_auth</a> (<a class="el" href="group__axis2__options.html#g26794bbdc46cdd3481c7e9079c0d6094">axis2_options_t</a> *options, const <a class="el" href="structaxutil__env.html">axutil_env_t</a> *env, const axis2_bool_t test_http_auth)</td></tr>

<tr><td class="memItemLeft" nowrap align="right" valign="top">AXIS2_EXTERN <br>
axis2_status_t&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__axis2__options.html#gb5f388b034b9c34825711fd8fef977e9">axis2_options_set_test_proxy_auth</a> (<a class="el" href="group__axis2__options.html#g26794bbdc46cdd3481c7e9079c0d6094">axis2_options_t</a> *options, const <a class="el" href="structaxutil__env.html">axutil_env_t</a> *env, const axis2_bool_t test_proxy_auth)</td></tr>

<tr><td class="memItemLeft" nowrap align="right" valign="top">AXIS2_EXTERN <br>
axis2_status_t&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__axis2__options.html#g1c7eff578547cf234abd57ea34f2e0b9">axis2_options_set_http_method</a> (<a class="el" href="group__axis2__options.html#g26794bbdc46cdd3481c7e9079c0d6094">axis2_options_t</a> *options, const <a class="el" href="structaxutil__env.html">axutil_env_t</a> *env, const axis2_char_t *http_method)</td></tr>

<tr><td class="memItemLeft" nowrap align="right" valign="top">AXIS2_EXTERN <br>
axis2_status_t&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__axis2__options.html#ga3c3b6a89eac2785b2eeb4fefe054202">axis2_options_set_http_headers</a> (<a class="el" href="group__axis2__options.html#g26794bbdc46cdd3481c7e9079c0d6094">axis2_options_t</a> *options, const <a class="el" href="structaxutil__env.html">axutil_env_t</a> *env, <a class="el" href="group__axutil__array__list.html#g1a6a89777db876cfa0cc86787b7be6a0">axutil_array_list_t</a> *http_header_list)</td></tr>

<tr><td class="memItemLeft" nowrap align="right" valign="top">AXIS2_EXTERN <br>
<a class="el" href="group__axis2__options.html#g26794bbdc46cdd3481c7e9079c0d6094">axis2_options_t</a> *&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__axis2__options.html#gdda6f5257f3532ec3fa9ca4b316fb0f1">axis2_options_create</a> (const <a class="el" href="structaxutil__env.html">axutil_env_t</a> *env)</td></tr>

<tr><td class="memItemLeft" nowrap align="right" valign="top">AXIS2_EXTERN <br>
<a class="el" href="group__axis2__options.html#g26794bbdc46cdd3481c7e9079c0d6094">axis2_options_t</a> *&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__axis2__options.html#ge74438488efabde966a1fbefbb1642e2">axis2_options_create_with_parent</a> (const <a class="el" href="structaxutil__env.html">axutil_env_t</a> *env, <a class="el" href="group__axis2__options.html#g26794bbdc46cdd3481c7e9079c0d6094">axis2_options_t</a> *parent)</td></tr>

<tr><td class="memItemLeft" nowrap align="right" valign="top">AXIS2_EXTERN <br>
axis2_status_t&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__axis2__options.html#g075f4088b1263d5a932486293c099238">axis2_options_set_http_auth_info</a> (<a class="el" href="group__axis2__options.html#g26794bbdc46cdd3481c7e9079c0d6094">axis2_options_t</a> *options, const <a class="el" href="structaxutil__env.html">axutil_env_t</a> *env, const axis2_char_t *username, const axis2_char_t *password, const axis2_char_t *auth_type)</td></tr>

<tr><td class="memItemLeft" nowrap align="right" valign="top">AXIS2_EXTERN <br>
axis2_status_t&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__axis2__options.html#g1d156a086d838faecb313d2cc96f80dc">axis2_options_set_proxy_auth_info</a> (<a class="el" href="group__axis2__options.html#g26794bbdc46cdd3481c7e9079c0d6094">axis2_options_t</a> *options, const <a class="el" href="structaxutil__env.html">axutil_env_t</a> *env, const axis2_char_t *username, const axis2_char_t *password, const axis2_char_t *auth_type)</td></tr>

</table>
<hr><a name="_details"></a><h2>Detailed Description</h2>
The options struct holds user options to be used by client when invocation services. In addition to the end point reference information, options struct also hold addressing, transport and timeout related information. User specific properties could also set on top of options. <hr><h2>Define Documentation</h2>
<a class="anchor" name="g8e84174996e7ce97d2ec4c7b49956ad7"></a><!-- doxytag: member="axis2_options.h::AXIS2_COPY_PROPERTIES" ref="g8e84174996e7ce97d2ec4c7b49956ad7" args="" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">#define AXIS2_COPY_PROPERTIES&nbsp;&nbsp;&nbsp;&quot;copy_properties&quot;          </td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
Copy properties 
</div>
</div><p>
<a class="anchor" name="gfc55ac210f2f22e70ac1d905d8509fe4"></a><!-- doxytag: member="axis2_options.h::AXIS2_DEFAULT_TIMEOUT_MILLISECONDS" ref="gfc55ac210f2f22e70ac1d905d8509fe4" args="" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">#define AXIS2_DEFAULT_TIMEOUT_MILLISECONDS&nbsp;&nbsp;&nbsp;30000          </td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
Default timeout 
</div>
</div><p>
<a class="anchor" name="g8d4099b7a4e7a79c33840aeb01b34a43"></a><!-- doxytag: member="axis2_options.h::AXIS2_TIMEOUT_IN_SECONDS" ref="g8d4099b7a4e7a79c33840aeb01b34a43" args="" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">#define AXIS2_TIMEOUT_IN_SECONDS&nbsp;&nbsp;&nbsp;&quot;time_out&quot;          </td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
Timeout in seconds waiting for a response envelope 
</div>
</div><p>
<hr><h2>Typedef Documentation</h2>
<a class="anchor" name="g26794bbdc46cdd3481c7e9079c0d6094"></a><!-- doxytag: member="axis2_options.h::axis2_options_t" ref="g26794bbdc46cdd3481c7e9079c0d6094" args="" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">typedef struct axis2_options <a class="el" href="group__axis2__options.html#g26794bbdc46cdd3481c7e9079c0d6094">axis2_options_t</a>          </td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
Type name for struct axis2_options 
</div>
</div><p>
<hr><h2>Function Documentation</h2>
<a class="anchor" name="g37109110cd1537d898fd4ec78787988e"></a><!-- doxytag: member="axis2_options.h::axis2_options_add_reference_parameter" ref="g37109110cd1537d898fd4ec78787988e" args="(axis2_options_t *options, const axutil_env_t *env, axiom_node_t *reference_parameter)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">AXIS2_EXTERN axis2_status_t axis2_options_add_reference_parameter           </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="group__axis2__options.html#g26794bbdc46cdd3481c7e9079c0d6094">axis2_options_t</a> *&nbsp;</td>
          <td class="paramname"> <em>options</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const <a class="el" href="structaxutil__env.html">axutil_env_t</a> *&nbsp;</td>
          <td class="paramname"> <em>env</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">axiom_node_t *&nbsp;</td>
          <td class="paramname"> <em>reference_parameter</em></td><td>&nbsp;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td><td width="100%"></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
Adds a WSA reference parameter. <dl compact><dt><b>Parameters:</b></dt><dd>
  <table border="0" cellspacing="2" cellpadding="0">
    <tr><td valign="top"></td><td valign="top"><em>options</em>&nbsp;</td><td>pointer to options struct </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>env</em>&nbsp;</td><td>pointer to environment struct </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>reference_parameter</em>&nbsp;</td><td>pointer to reference parameter in the form of an AXIOM tree. options takes over the ownership of the struct. </td></tr>
  </table>
</dl>
<dl class="return" compact><dt><b>Returns:</b></dt><dd>AXIS2_SUCCESS on success, else AXIS2_FAILURE </dd></dl>

</div>
</div><p>
<a class="anchor" name="gdda6f5257f3532ec3fa9ca4b316fb0f1"></a><!-- doxytag: member="axis2_options.h::axis2_options_create" ref="gdda6f5257f3532ec3fa9ca4b316fb0f1" args="(const axutil_env_t *env)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">AXIS2_EXTERN <a class="el" href="group__axis2__options.html#g26794bbdc46cdd3481c7e9079c0d6094">axis2_options_t</a>* axis2_options_create           </td>
          <td>(</td>
          <td class="paramtype">const <a class="el" href="structaxutil__env.html">axutil_env_t</a> *&nbsp;</td>
          <td class="paramname"> <em>env</em>          </td>
          <td>&nbsp;)&nbsp;</td>
          <td width="100%"></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
Creates the options struct. <dl compact><dt><b>Parameters:</b></dt><dd>
  <table border="0" cellspacing="2" cellpadding="0">
    <tr><td valign="top"></td><td valign="top"><em>env</em>&nbsp;</td><td>pointer to environment struct </td></tr>
  </table>
</dl>
<dl class="return" compact><dt><b>Returns:</b></dt><dd>a pointer to newly created options struct, or NULL on error with error code set in environment's error. </dd></dl>

</div>
</div><p>
<a class="anchor" name="ge74438488efabde966a1fbefbb1642e2"></a><!-- doxytag: member="axis2_options.h::axis2_options_create_with_parent" ref="ge74438488efabde966a1fbefbb1642e2" args="(const axutil_env_t *env, axis2_options_t *parent)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">AXIS2_EXTERN <a class="el" href="group__axis2__options.html#g26794bbdc46cdd3481c7e9079c0d6094">axis2_options_t</a>* axis2_options_create_with_parent           </td>
          <td>(</td>
          <td class="paramtype">const <a class="el" href="structaxutil__env.html">axutil_env_t</a> *&nbsp;</td>
          <td class="paramname"> <em>env</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype"><a class="el" href="group__axis2__options.html#g26794bbdc46cdd3481c7e9079c0d6094">axis2_options_t</a> *&nbsp;</td>
          <td class="paramname"> <em>parent</em></td><td>&nbsp;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td><td width="100%"></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
Creates the options struct with given parent. <dl compact><dt><b>Parameters:</b></dt><dd>
  <table border="0" cellspacing="2" cellpadding="0">
    <tr><td valign="top"></td><td valign="top"><em>env</em>&nbsp;</td><td>pointer to environment struct </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>parent</em>&nbsp;</td><td>pointer to parent struct </td></tr>
  </table>
</dl>
<dl class="return" compact><dt><b>Returns:</b></dt><dd>a pointer to newly created options struct. Newly created options assumes ownership of the parent or NULL on error with error code set in environment's error. </dd></dl>

</div>
</div><p>
<a class="anchor" name="g1cc19bb9faf77ab2afaf79781e409fc0"></a><!-- doxytag: member="axis2_options.h::axis2_options_free" ref="g1cc19bb9faf77ab2afaf79781e409fc0" args="(axis2_options_t *options, const axutil_env_t *env)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">AXIS2_EXTERN void axis2_options_free           </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="group__axis2__options.html#g26794bbdc46cdd3481c7e9079c0d6094">axis2_options_t</a> *&nbsp;</td>
          <td class="paramname"> <em>options</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const <a class="el" href="structaxutil__env.html">axutil_env_t</a> *&nbsp;</td>
          <td class="paramname"> <em>env</em></td><td>&nbsp;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td><td width="100%"></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
Frees options struct. <dl compact><dt><b>Parameters:</b></dt><dd>
  <table border="0" cellspacing="2" cellpadding="0">
    <tr><td valign="top"></td><td valign="top"><em>options</em>&nbsp;</td><td>pointer to options struct </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>env</em>&nbsp;</td><td>pointer to environment struct </td></tr>
  </table>
</dl>
<dl class="return" compact><dt><b>Returns:</b></dt><dd>void </dd></dl>

</div>
</div><p>
<a class="anchor" name="g678ae601586531dca4425014f09cd9ca"></a><!-- doxytag: member="axis2_options.h::axis2_options_get_action" ref="g678ae601586531dca4425014f09cd9ca" args="(const axis2_options_t *options, const axutil_env_t *env)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">AXIS2_EXTERN const axis2_char_t* axis2_options_get_action           </td>
          <td>(</td>
          <td class="paramtype">const <a class="el" href="group__axis2__options.html#g26794bbdc46cdd3481c7e9079c0d6094">axis2_options_t</a> *&nbsp;</td>
          <td class="paramname"> <em>options</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const <a class="el" href="structaxutil__env.html">axutil_env_t</a> *&nbsp;</td>
          <td class="paramname"> <em>env</em></td><td>&nbsp;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td><td width="100%"></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
Gets Web Services Addressing (WSA) action. <dl compact><dt><b>Parameters:</b></dt><dd>
  <table border="0" cellspacing="2" cellpadding="0">
    <tr><td valign="top"></td><td valign="top"><em>options</em>&nbsp;</td><td>pointer to options struct </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>env</em>&nbsp;</td><td>pointer to environment struct </td></tr>
  </table>
</dl>
<dl class="return" compact><dt><b>Returns:</b></dt><dd>WSA action string if set, else NULL </dd></dl>

</div>
</div><p>
<a class="anchor" name="g868f6cfddb5dcae40c8dcaf870eb688f"></a><!-- doxytag: member="axis2_options.h::axis2_options_get_enable_mtom" ref="g868f6cfddb5dcae40c8dcaf870eb688f" args="(const axis2_options_t *options, const axutil_env_t *env)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">AXIS2_EXTERN axis2_bool_t axis2_options_get_enable_mtom           </td>
          <td>(</td>
          <td class="paramtype">const <a class="el" href="group__axis2__options.html#g26794bbdc46cdd3481c7e9079c0d6094">axis2_options_t</a> *&nbsp;</td>
          <td class="paramname"> <em>options</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const <a class="el" href="structaxutil__env.html">axutil_env_t</a> *&nbsp;</td>
          <td class="paramname"> <em>env</em></td><td>&nbsp;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td><td width="100%"></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
Gets Enable/disable MTOM status. <dl compact><dt><b>Parameters:</b></dt><dd>
  <table border="0" cellspacing="2" cellpadding="0">
    <tr><td valign="top"></td><td valign="top"><em>options</em>&nbsp;</td><td>pointer to options struct </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>env</em>&nbsp;</td><td>pointer to environment struct </td></tr>
  </table>
</dl>
<dl class="return" compact><dt><b>Returns:</b></dt><dd>AXIS2_TRUE if MTOM enabled, else AXIS2_FALSE </dd></dl>

</div>
</div><p>
<a class="anchor" name="g283b491d25be268924fdfb3410003cce"></a><!-- doxytag: member="axis2_options.h::axis2_options_get_fault_to" ref="g283b491d25be268924fdfb3410003cce" args="(const axis2_options_t *options, const axutil_env_t *env)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">AXIS2_EXTERN <a class="el" href="group__axis2__endpoint__ref.html#gf6e89c83a6b553e7e3f11e787b3fecd4">axis2_endpoint_ref_t</a>* axis2_options_get_fault_to           </td>
          <td>(</td>
          <td class="paramtype">const <a class="el" href="group__axis2__options.html#g26794bbdc46cdd3481c7e9079c0d6094">axis2_options_t</a> *&nbsp;</td>
          <td class="paramname"> <em>options</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const <a class="el" href="structaxutil__env.html">axutil_env_t</a> *&nbsp;</td>
          <td class="paramname"> <em>env</em></td><td>&nbsp;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td><td width="100%"></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
Gets WSA fault to address. <dl compact><dt><b>Parameters:</b></dt><dd>
  <table border="0" cellspacing="2" cellpadding="0">
    <tr><td valign="top"></td><td valign="top"><em>options</em>&nbsp;</td><td>pointer to options struct </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>env</em>&nbsp;</td><td>pointer to environment struct </td></tr>
  </table>
</dl>
<dl class="return" compact><dt><b>Returns:</b></dt><dd>pointer to endpoint reference struct representing fault to address if set, else NULL </dd></dl>

</div>
</div><p>
<a class="anchor" name="g7e00548bdf22d85963f03cf96af4324e"></a><!-- doxytag: member="axis2_options.h::axis2_options_get_from" ref="g7e00548bdf22d85963f03cf96af4324e" args="(const axis2_options_t *options, const axutil_env_t *env)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">AXIS2_EXTERN <a class="el" href="group__axis2__endpoint__ref.html#gf6e89c83a6b553e7e3f11e787b3fecd4">axis2_endpoint_ref_t</a>* axis2_options_get_from           </td>
          <td>(</td>
          <td class="paramtype">const <a class="el" href="group__axis2__options.html#g26794bbdc46cdd3481c7e9079c0d6094">axis2_options_t</a> *&nbsp;</td>
          <td class="paramname"> <em>options</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const <a class="el" href="structaxutil__env.html">axutil_env_t</a> *&nbsp;</td>
          <td class="paramname"> <em>env</em></td><td>&nbsp;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td><td width="100%"></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
Gets WSA from address. <dl compact><dt><b>Parameters:</b></dt><dd>
  <table border="0" cellspacing="2" cellpadding="0">
    <tr><td valign="top"></td><td valign="top"><em>options</em>&nbsp;</td><td>pointer to options struct </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>env</em>&nbsp;</td><td>pointer to environment struct </td></tr>
  </table>
</dl>
<dl class="return" compact><dt><b>Returns:</b></dt><dd>pointer to endpoint reference struct representing from address if set, else NULL </dd></dl>

</div>
</div><p>
<a class="anchor" name="g31560142acf4f3fdd5784e95215ec8c4"></a><!-- doxytag: member="axis2_options.h::axis2_options_get_manage_session" ref="g31560142acf4f3fdd5784e95215ec8c4" args="(const axis2_options_t *options, const axutil_env_t *env)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">AXIS2_EXTERN axis2_bool_t axis2_options_get_manage_session           </td>
          <td>(</td>
          <td class="paramtype">const <a class="el" href="group__axis2__options.html#g26794bbdc46cdd3481c7e9079c0d6094">axis2_options_t</a> *&nbsp;</td>
          <td class="paramname"> <em>options</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const <a class="el" href="structaxutil__env.html">axutil_env_t</a> *&nbsp;</td>
          <td class="paramname"> <em>env</em></td><td>&nbsp;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td><td width="100%"></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
Gets manage session bool value. <dl compact><dt><b>Parameters:</b></dt><dd>
  <table border="0" cellspacing="2" cellpadding="0">
    <tr><td valign="top"></td><td valign="top"><em>options</em>&nbsp;</td><td>pointer to options struct </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>env</em>&nbsp;</td><td>pointer to environment struct </td></tr>
  </table>
</dl>
<dl class="return" compact><dt><b>Returns:</b></dt><dd>AXIS2_TRUE if session is managed, else AXIS2_FALSE </dd></dl>

</div>
</div><p>
<a class="anchor" name="g7b435f608628b067d41d269894245bf7"></a><!-- doxytag: member="axis2_options.h::axis2_options_get_message_id" ref="g7b435f608628b067d41d269894245bf7" args="(const axis2_options_t *options_t, const axutil_env_t *env)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">AXIS2_EXTERN const axis2_char_t* axis2_options_get_message_id           </td>
          <td>(</td>
          <td class="paramtype">const <a class="el" href="group__axis2__options.html#g26794bbdc46cdd3481c7e9079c0d6094">axis2_options_t</a> *&nbsp;</td>
          <td class="paramname"> <em>options_t</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const <a class="el" href="structaxutil__env.html">axutil_env_t</a> *&nbsp;</td>
          <td class="paramname"> <em>env</em></td><td>&nbsp;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td><td width="100%"></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
Gets message ID. <dl compact><dt><b>Parameters:</b></dt><dd>
  <table border="0" cellspacing="2" cellpadding="0">
    <tr><td valign="top"></td><td valign="top"><em>options</em>&nbsp;</td><td>pointer to options struct </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>env</em>&nbsp;</td><td>pointer to environment struct </td></tr>
  </table>
</dl>
<dl class="return" compact><dt><b>Returns:</b></dt><dd>pointer to message ID string if set, else NULL </dd></dl>

</div>
</div><p>
<a class="anchor" name="gf88ecbaac26036de8311ecf8552ef396"></a><!-- doxytag: member="axis2_options.h::axis2_options_get_msg_info_headers" ref="gf88ecbaac26036de8311ecf8552ef396" args="(const axis2_options_t *options, const axutil_env_t *env)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">AXIS2_EXTERN <a class="el" href="group__axis2__msg__info__headers.html#g556873fdfa94e29e43d96728871f3192">axis2_msg_info_headers_t</a>* axis2_options_get_msg_info_headers           </td>
          <td>(</td>
          <td class="paramtype">const <a class="el" href="group__axis2__options.html#g26794bbdc46cdd3481c7e9079c0d6094">axis2_options_t</a> *&nbsp;</td>
          <td class="paramname"> <em>options</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const <a class="el" href="structaxutil__env.html">axutil_env_t</a> *&nbsp;</td>
          <td class="paramname"> <em>env</em></td><td>&nbsp;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td><td width="100%"></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
Gets WSA message information headers. <dl compact><dt><b>Parameters:</b></dt><dd>
  <table border="0" cellspacing="2" cellpadding="0">
    <tr><td valign="top"></td><td valign="top"><em>options</em>&nbsp;</td><td>pointer to options struct </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>env</em>&nbsp;</td><td>pointer to environment struct </td></tr>
  </table>
</dl>
<dl class="return" compact><dt><b>Returns:</b></dt><dd>pointer to message information headers struct if set, else NULL </dd></dl>

</div>
</div><p>
<a class="anchor" name="g44755ea1568201951ee3c75358323039"></a><!-- doxytag: member="axis2_options.h::axis2_options_get_parent" ref="g44755ea1568201951ee3c75358323039" args="(const axis2_options_t *options, const axutil_env_t *env)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">AXIS2_EXTERN <a class="el" href="group__axis2__options.html#g26794bbdc46cdd3481c7e9079c0d6094">axis2_options_t</a>* axis2_options_get_parent           </td>
          <td>(</td>
          <td class="paramtype">const <a class="el" href="group__axis2__options.html#g26794bbdc46cdd3481c7e9079c0d6094">axis2_options_t</a> *&nbsp;</td>
          <td class="paramname"> <em>options</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const <a class="el" href="structaxutil__env.html">axutil_env_t</a> *&nbsp;</td>
          <td class="paramname"> <em>env</em></td><td>&nbsp;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td><td width="100%"></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
Gets the parent options. <dl compact><dt><b>Parameters:</b></dt><dd>
  <table border="0" cellspacing="2" cellpadding="0">
    <tr><td valign="top"></td><td valign="top"><em>options</em>&nbsp;</td><td>pointer to options struct </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>env</em>&nbsp;</td><td>pointer to environment struct </td></tr>
  </table>
</dl>
<dl class="return" compact><dt><b>Returns:</b></dt><dd>pointer to the parent options struct if set, else NULL </dd></dl>

</div>
</div><p>
<a class="anchor" name="g244f26e4bca15b715a13240f0c95605b"></a><!-- doxytag: member="axis2_options.h::axis2_options_get_properties" ref="g244f26e4bca15b715a13240f0c95605b" args="(const axis2_options_t *options, const axutil_env_t *env)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">AXIS2_EXTERN <a class="el" href="group__axutil__hash.html#gb2d7d14db2de92a101573f44421ac12a">axutil_hash_t</a>* axis2_options_get_properties           </td>
          <td>(</td>
          <td class="paramtype">const <a class="el" href="group__axis2__options.html#g26794bbdc46cdd3481c7e9079c0d6094">axis2_options_t</a> *&nbsp;</td>
          <td class="paramname"> <em>options</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const <a class="el" href="structaxutil__env.html">axutil_env_t</a> *&nbsp;</td>
          <td class="paramname"> <em>env</em></td><td>&nbsp;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td><td width="100%"></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
Gets the properties hash map. <dl compact><dt><b>Parameters:</b></dt><dd>
  <table border="0" cellspacing="2" cellpadding="0">
    <tr><td valign="top"></td><td valign="top"><em>options</em>&nbsp;</td><td>pointer to options struct </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>env</em>&nbsp;</td><td>pointer to environment struct </td></tr>
  </table>
</dl>
<dl class="return" compact><dt><b>Returns:</b></dt><dd>pointer to properties hash map if set, else NULL </dd></dl>

</div>
</div><p>
<a class="anchor" name="g326904f3372180e2da28e235de21881f"></a><!-- doxytag: member="axis2_options.h::axis2_options_get_property" ref="g326904f3372180e2da28e235de21881f" args="(const axis2_options_t *options, const axutil_env_t *env, const axis2_char_t *key)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">AXIS2_EXTERN void* axis2_options_get_property           </td>
          <td>(</td>
          <td class="paramtype">const <a class="el" href="group__axis2__options.html#g26794bbdc46cdd3481c7e9079c0d6094">axis2_options_t</a> *&nbsp;</td>
          <td class="paramname"> <em>options</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const <a class="el" href="structaxutil__env.html">axutil_env_t</a> *&nbsp;</td>
          <td class="paramname"> <em>env</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const axis2_char_t *&nbsp;</td>
          <td class="paramname"> <em>key</em></td><td>&nbsp;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td><td width="100%"></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
Gets a property corresponding to the given key. <dl compact><dt><b>Parameters:</b></dt><dd>
  <table border="0" cellspacing="2" cellpadding="0">
    <tr><td valign="top"></td><td valign="top"><em>options</em>&nbsp;</td><td>pointer to options struct </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>env</em>&nbsp;</td><td>pointer to environment struct </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>key</em>&nbsp;</td><td>key of the property to be returned </td></tr>
  </table>
</dl>
<dl class="return" compact><dt><b>Returns:</b></dt><dd>value corresponding to the given key </dd></dl>

</div>
</div><p>
<a class="anchor" name="ga20805b9f4550070953e4f1e189ed78a"></a><!-- doxytag: member="axis2_options.h::axis2_options_get_relates_to" ref="ga20805b9f4550070953e4f1e189ed78a" args="(const axis2_options_t *options, const axutil_env_t *env)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">AXIS2_EXTERN <a class="el" href="group__axis2__relates__to.html#gd92fd7b0e63b44c6343db15b61aeba45">axis2_relates_to_t</a>* axis2_options_get_relates_to           </td>
          <td>(</td>
          <td class="paramtype">const <a class="el" href="group__axis2__options.html#g26794bbdc46cdd3481c7e9079c0d6094">axis2_options_t</a> *&nbsp;</td>
          <td class="paramname"> <em>options</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const <a class="el" href="structaxutil__env.html">axutil_env_t</a> *&nbsp;</td>
          <td class="paramname"> <em>env</em></td><td>&nbsp;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td><td width="100%"></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
Gets relates to information. <dl compact><dt><b>Parameters:</b></dt><dd>
  <table border="0" cellspacing="2" cellpadding="0">
    <tr><td valign="top"></td><td valign="top"><em>options</em>&nbsp;</td><td>pointer to options struct </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>env</em>&nbsp;</td><td>pointer to environment struct </td></tr>
  </table>
</dl>
<dl class="return" compact><dt><b>Returns:</b></dt><dd>pointer to relates to struct if set, else NULL </dd></dl>

</div>
</div><p>
<a class="anchor" name="g29a591f1954522269e4dcdbcea8f4cde"></a><!-- doxytag: member="axis2_options.h::axis2_options_get_reply_to" ref="g29a591f1954522269e4dcdbcea8f4cde" args="(const axis2_options_t *options, const axutil_env_t *env)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">AXIS2_EXTERN <a class="el" href="group__axis2__endpoint__ref.html#gf6e89c83a6b553e7e3f11e787b3fecd4">axis2_endpoint_ref_t</a>* axis2_options_get_reply_to           </td>
          <td>(</td>
          <td class="paramtype">const <a class="el" href="group__axis2__options.html#g26794bbdc46cdd3481c7e9079c0d6094">axis2_options_t</a> *&nbsp;</td>
          <td class="paramname"> <em>options</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const <a class="el" href="structaxutil__env.html">axutil_env_t</a> *&nbsp;</td>
          <td class="paramname"> <em>env</em></td><td>&nbsp;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td><td width="100%"></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
Gets WSA reply to address. <dl compact><dt><b>Parameters:</b></dt><dd>
  <table border="0" cellspacing="2" cellpadding="0">
    <tr><td valign="top"></td><td valign="top"><em>options</em>&nbsp;</td><td>pointer to options struct </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>env</em>&nbsp;</td><td>pointer to environment struct </td></tr>
  </table>
</dl>
<dl class="return" compact><dt><b>Returns:</b></dt><dd>pointer to endpoint reference struct representing reply to address if set, else NULL </dd></dl>

</div>
</div><p>
<a class="anchor" name="g99d8d5efc4c5cb0549c7ea93425f14f2"></a><!-- doxytag: member="axis2_options.h::axis2_options_get_sender_transport_protocol" ref="g99d8d5efc4c5cb0549c7ea93425f14f2" args="(const axis2_options_t *options, const axutil_env_t *env)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">AXIS2_EXTERN AXIS2_TRANSPORT_ENUMS axis2_options_get_sender_transport_protocol           </td>
          <td>(</td>
          <td class="paramtype">const <a class="el" href="group__axis2__options.html#g26794bbdc46cdd3481c7e9079c0d6094">axis2_options_t</a> *&nbsp;</td>
          <td class="paramname"> <em>options</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const <a class="el" href="structaxutil__env.html">axutil_env_t</a> *&nbsp;</td>
          <td class="paramname"> <em>env</em></td><td>&nbsp;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td><td width="100%"></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
Gets transport out protocol. <dl compact><dt><b>Parameters:</b></dt><dd>
  <table border="0" cellspacing="2" cellpadding="0">
    <tr><td valign="top"></td><td valign="top"><em>options</em>&nbsp;</td><td>pointer to options struct </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>env</em>&nbsp;</td><td>pointer to environment struct </td></tr>
  </table>
</dl>
<dl class="return" compact><dt><b>Returns:</b></dt><dd>pointer to transport out protocol string if set, else NULL </dd></dl>

</div>
</div><p>
<a class="anchor" name="g67dbecc87ad94df19286a2a87178ce34"></a><!-- doxytag: member="axis2_options.h::axis2_options_get_soap_action" ref="g67dbecc87ad94df19286a2a87178ce34" args="(const axis2_options_t *options, const axutil_env_t *env)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">AXIS2_EXTERN axutil_string_t* axis2_options_get_soap_action           </td>
          <td>(</td>
          <td class="paramtype">const <a class="el" href="group__axis2__options.html#g26794bbdc46cdd3481c7e9079c0d6094">axis2_options_t</a> *&nbsp;</td>
          <td class="paramname"> <em>options</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const <a class="el" href="structaxutil__env.html">axutil_env_t</a> *&nbsp;</td>
          <td class="paramname"> <em>env</em></td><td>&nbsp;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td><td width="100%"></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
Gets SOAP action. <dl compact><dt><b>Parameters:</b></dt><dd>
  <table border="0" cellspacing="2" cellpadding="0">
    <tr><td valign="top"></td><td valign="top"><em>options</em>&nbsp;</td><td>pointer to options struct </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>env</em>&nbsp;</td><td>pointer to environment struct </td></tr>
  </table>
</dl>
<dl class="return" compact><dt><b>Returns:</b></dt><dd>SOAP Action string if set, else NULL </dd></dl>

</div>
</div><p>
<a class="anchor" name="g11ee50a4d0d759ce0199e4009c958b25"></a><!-- doxytag: member="axis2_options.h::axis2_options_get_soap_version" ref="g11ee50a4d0d759ce0199e4009c958b25" args="(const axis2_options_t *options, const axutil_env_t *env)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">AXIS2_EXTERN int axis2_options_get_soap_version           </td>
          <td>(</td>
          <td class="paramtype">const <a class="el" href="group__axis2__options.html#g26794bbdc46cdd3481c7e9079c0d6094">axis2_options_t</a> *&nbsp;</td>
          <td class="paramname"> <em>options</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const <a class="el" href="structaxutil__env.html">axutil_env_t</a> *&nbsp;</td>
          <td class="paramname"> <em>env</em></td><td>&nbsp;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td><td width="100%"></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
Gets SOAP version. <dl compact><dt><b>Parameters:</b></dt><dd>
  <table border="0" cellspacing="2" cellpadding="0">
    <tr><td valign="top"></td><td valign="top"><em>options</em>&nbsp;</td><td>pointer to options struct </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>env</em>&nbsp;</td><td>pointer to environment struct </td></tr>
  </table>
</dl>
<dl class="return" compact><dt><b>Returns:</b></dt><dd>AXIOM_SOAP11 if SOAP version 1.1 is in use, else AXIOM_SOAP12 </dd></dl>

</div>
</div><p>
<a class="anchor" name="g815f59fcea7c8c19b361121636ecfd2a"></a><!-- doxytag: member="axis2_options.h::axis2_options_get_soap_version_uri" ref="g815f59fcea7c8c19b361121636ecfd2a" args="(const axis2_options_t *options, const axutil_env_t *env)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">AXIS2_EXTERN const axis2_char_t* axis2_options_get_soap_version_uri           </td>
          <td>(</td>
          <td class="paramtype">const <a class="el" href="group__axis2__options.html#g26794bbdc46cdd3481c7e9079c0d6094">axis2_options_t</a> *&nbsp;</td>
          <td class="paramname"> <em>options</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const <a class="el" href="structaxutil__env.html">axutil_env_t</a> *&nbsp;</td>
          <td class="paramname"> <em>env</em></td><td>&nbsp;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td><td width="100%"></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
Gets SOAP version URI. <dl compact><dt><b>Parameters:</b></dt><dd>
  <table border="0" cellspacing="2" cellpadding="0">
    <tr><td valign="top"></td><td valign="top"><em>options</em>&nbsp;</td><td>pointer to options struct </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>env</em>&nbsp;</td><td>pointer to environment struct </td></tr>
  </table>
</dl>
<dl class="return" compact><dt><b>Returns:</b></dt><dd>string representing SOAP version URI </dd></dl>

</div>
</div><p>
<a class="anchor" name="gf5bffc566365333558914d7ca4c727dd"></a><!-- doxytag: member="axis2_options.h::axis2_options_get_timeout_in_milli_seconds" ref="gf5bffc566365333558914d7ca4c727dd" args="(const axis2_options_t *options, const axutil_env_t *env)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">AXIS2_EXTERN long axis2_options_get_timeout_in_milli_seconds           </td>
          <td>(</td>
          <td class="paramtype">const <a class="el" href="group__axis2__options.html#g26794bbdc46cdd3481c7e9079c0d6094">axis2_options_t</a> *&nbsp;</td>
          <td class="paramname"> <em>options</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const <a class="el" href="structaxutil__env.html">axutil_env_t</a> *&nbsp;</td>
          <td class="paramname"> <em>env</em></td><td>&nbsp;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td><td width="100%"></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
Gets the wait time after which a client times out in a blocking scenario. The default is AXIS2_DEFAULT_TIMEOUT_MILLISECONDS. <dl compact><dt><b>Parameters:</b></dt><dd>
  <table border="0" cellspacing="2" cellpadding="0">
    <tr><td valign="top"></td><td valign="top"><em>options</em>&nbsp;</td><td>pointer to options struct </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>env</em>&nbsp;</td><td>pointer to environment struct </td></tr>
  </table>
</dl>
<dl class="return" compact><dt><b>Returns:</b></dt><dd>timeout in milliseconds </dd></dl>

</div>
</div><p>
<a class="anchor" name="gd01536ebcfafaa661a44f5049650a9e8"></a><!-- doxytag: member="axis2_options.h::axis2_options_get_to" ref="gd01536ebcfafaa661a44f5049650a9e8" args="(const axis2_options_t *options, const axutil_env_t *env)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">AXIS2_EXTERN <a class="el" href="group__axis2__endpoint__ref.html#gf6e89c83a6b553e7e3f11e787b3fecd4">axis2_endpoint_ref_t</a>* axis2_options_get_to           </td>
          <td>(</td>
          <td class="paramtype">const <a class="el" href="group__axis2__options.html#g26794bbdc46cdd3481c7e9079c0d6094">axis2_options_t</a> *&nbsp;</td>
          <td class="paramname"> <em>options</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const <a class="el" href="structaxutil__env.html">axutil_env_t</a> *&nbsp;</td>
          <td class="paramname"> <em>env</em></td><td>&nbsp;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td><td width="100%"></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
Gets WSA to address. <dl compact><dt><b>Parameters:</b></dt><dd>
  <table border="0" cellspacing="2" cellpadding="0">
    <tr><td valign="top"></td><td valign="top"><em>options</em>&nbsp;</td><td>pointer to options struct </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>env</em>&nbsp;</td><td>pointer to environment struct </td></tr>
  </table>
</dl>
<dl class="return" compact><dt><b>Returns:</b></dt><dd>pointer to endpoint reference struct representing to address if set, else NULL </dd></dl>

</div>
</div><p>
<a class="anchor" name="g21bb77bedd66cce1e54f470b2b33d983"></a><!-- doxytag: member="axis2_options.h::axis2_options_get_transport_in" ref="g21bb77bedd66cce1e54f470b2b33d983" args="(const axis2_options_t *options, const axutil_env_t *env)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">AXIS2_EXTERN <a class="el" href="group__axis2__transport__in__desc.html#g9185c8c5307454b74f49523666f7bda6">axis2_transport_in_desc_t</a>* axis2_options_get_transport_in           </td>
          <td>(</td>
          <td class="paramtype">const <a class="el" href="group__axis2__options.html#g26794bbdc46cdd3481c7e9079c0d6094">axis2_options_t</a> *&nbsp;</td>
          <td class="paramname"> <em>options</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const <a class="el" href="structaxutil__env.html">axutil_env_t</a> *&nbsp;</td>
          <td class="paramname"> <em>env</em></td><td>&nbsp;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td><td width="100%"></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
Gets transport in. <dl compact><dt><b>Parameters:</b></dt><dd>
  <table border="0" cellspacing="2" cellpadding="0">
    <tr><td valign="top"></td><td valign="top"><em>options</em>&nbsp;</td><td>pointer to options struct </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>env</em>&nbsp;</td><td>pointer to environment struct </td></tr>
  </table>
</dl>
<dl class="return" compact><dt><b>Returns:</b></dt><dd>pointer to transport in struct if set, else NULL </dd></dl>

</div>
</div><p>
<a class="anchor" name="gd49160ba8b51fd82aafdc8bbd034851a"></a><!-- doxytag: member="axis2_options.h::axis2_options_get_transport_in_protocol" ref="gd49160ba8b51fd82aafdc8bbd034851a" args="(const axis2_options_t *options, const axutil_env_t *env)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">AXIS2_EXTERN AXIS2_TRANSPORT_ENUMS axis2_options_get_transport_in_protocol           </td>
          <td>(</td>
          <td class="paramtype">const <a class="el" href="group__axis2__options.html#g26794bbdc46cdd3481c7e9079c0d6094">axis2_options_t</a> *&nbsp;</td>
          <td class="paramname"> <em>options</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const <a class="el" href="structaxutil__env.html">axutil_env_t</a> *&nbsp;</td>
          <td class="paramname"> <em>env</em></td><td>&nbsp;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td><td width="100%"></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
Gets transport in protocol. <dl compact><dt><b>Parameters:</b></dt><dd>
  <table border="0" cellspacing="2" cellpadding="0">
    <tr><td valign="top"></td><td valign="top"><em>options</em>&nbsp;</td><td>pointer to options struct </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>env</em>&nbsp;</td><td>pointer to environment struct </td></tr>
  </table>
</dl>
<dl class="return" compact><dt><b>Returns:</b></dt><dd>pointer to transport in protocol string if set, else NULL </dd></dl>

</div>
</div><p>
<a class="anchor" name="g31b684c1588681915e4be4242f0e7ee0"></a><!-- doxytag: member="axis2_options.h::axis2_options_get_transport_out" ref="g31b684c1588681915e4be4242f0e7ee0" args="(const axis2_options_t *options, const axutil_env_t *env)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">AXIS2_EXTERN <a class="el" href="group__axis2__transport__out__desc.html#g30caf90fd8fb7b0c89700bcb12e250df">axis2_transport_out_desc_t</a>* axis2_options_get_transport_out           </td>
          <td>(</td>
          <td class="paramtype">const <a class="el" href="group__axis2__options.html#g26794bbdc46cdd3481c7e9079c0d6094">axis2_options_t</a> *&nbsp;</td>
          <td class="paramname"> <em>options</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const <a class="el" href="structaxutil__env.html">axutil_env_t</a> *&nbsp;</td>
          <td class="paramname"> <em>env</em></td><td>&nbsp;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td><td width="100%"></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
Gets transport out. <dl compact><dt><b>Parameters:</b></dt><dd>
  <table border="0" cellspacing="2" cellpadding="0">
    <tr><td valign="top"></td><td valign="top"><em>options</em>&nbsp;</td><td>pointer to options struct </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>env</em>&nbsp;</td><td>pointer to environment struct </td></tr>
  </table>
</dl>
<dl class="return" compact><dt><b>Returns:</b></dt><dd>pointer to transport out struct if set, else NULL </dd></dl>

</div>
</div><p>
<a class="anchor" name="g2503c35d1dd383cc8f18cba198097df3"></a><!-- doxytag: member="axis2_options.h::axis2_options_get_transport_receiver" ref="g2503c35d1dd383cc8f18cba198097df3" args="(const axis2_options_t *options, const axutil_env_t *env)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">AXIS2_EXTERN <a class="el" href="structaxis2__transport__receiver.html">axis2_transport_receiver_t</a>* axis2_options_get_transport_receiver           </td>
          <td>(</td>
          <td class="paramtype">const <a class="el" href="group__axis2__options.html#g26794bbdc46cdd3481c7e9079c0d6094">axis2_options_t</a> *&nbsp;</td>
          <td class="paramname"> <em>options</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const <a class="el" href="structaxutil__env.html">axutil_env_t</a> *&nbsp;</td>
          <td class="paramname"> <em>env</em></td><td>&nbsp;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td><td width="100%"></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
Gets transport receiver. <dl compact><dt><b>Parameters:</b></dt><dd>
  <table border="0" cellspacing="2" cellpadding="0">
    <tr><td valign="top"></td><td valign="top"><em>options</em>&nbsp;</td><td>pointer to options struct </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>env</em>&nbsp;</td><td>pointer to environment struct </td></tr>
  </table>
</dl>
<dl class="return" compact><dt><b>Returns:</b></dt><dd>pointer to transport receiver struct if set, else NULL </dd></dl>

</div>
</div><p>
<a class="anchor" name="g44f65542c0790f426a539e8a48bba49c"></a><!-- doxytag: member="axis2_options.h::axis2_options_get_use_separate_listener" ref="g44f65542c0790f426a539e8a48bba49c" args="(const axis2_options_t *options, const axutil_env_t *env)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">AXIS2_EXTERN axis2_bool_t axis2_options_get_use_separate_listener           </td>
          <td>(</td>
          <td class="paramtype">const <a class="el" href="group__axis2__options.html#g26794bbdc46cdd3481c7e9079c0d6094">axis2_options_t</a> *&nbsp;</td>
          <td class="paramname"> <em>options</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const <a class="el" href="structaxutil__env.html">axutil_env_t</a> *&nbsp;</td>
          <td class="paramname"> <em>env</em></td><td>&nbsp;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td><td width="100%"></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
Gets use separate listener status. <dl compact><dt><b>Parameters:</b></dt><dd>
  <table border="0" cellspacing="2" cellpadding="0">
    <tr><td valign="top"></td><td valign="top"><em>options</em>&nbsp;</td><td>pointer to options struct </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>env</em>&nbsp;</td><td>pointer to environment struct </td></tr>
  </table>
</dl>
<dl class="return" compact><dt><b>Returns:</b></dt><dd>AXIS2_TRUE if using separate listener, else AXIS2_FALSE </dd></dl>

</div>
</div><p>
<a class="anchor" name="g079c0d74ca8b4a6bdf94b5afe45c8b1c"></a><!-- doxytag: member="axis2_options.h::axis2_options_get_xml_parser_reset" ref="g079c0d74ca8b4a6bdf94b5afe45c8b1c" args="(const axis2_options_t *options, const axutil_env_t *env)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">AXIS2_EXTERN axis2_bool_t axis2_options_get_xml_parser_reset           </td>
          <td>(</td>
          <td class="paramtype">const <a class="el" href="group__axis2__options.html#g26794bbdc46cdd3481c7e9079c0d6094">axis2_options_t</a> *&nbsp;</td>
          <td class="paramname"> <em>options</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const <a class="el" href="structaxutil__env.html">axutil_env_t</a> *&nbsp;</td>
          <td class="paramname"> <em>env</em></td><td>&nbsp;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td><td width="100%"></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
Gets xml parser reset value, <dl compact><dt><b>Parameters:</b></dt><dd>
  <table border="0" cellspacing="2" cellpadding="0">
    <tr><td valign="top"></td><td valign="top"><em>options</em>&nbsp;</td><td>pointer to options struct </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>env</em>&nbsp;</td><td>pointer to environment struct </td></tr>
  </table>
</dl>
<dl class="return" compact><dt><b>Returns:</b></dt><dd>xml parser reset boolean value </dd></dl>

</div>
</div><p>
<a class="anchor" name="g3034f3d572a3f31d708250ffa374931d"></a><!-- doxytag: member="axis2_options.h::axis2_options_set_action" ref="g3034f3d572a3f31d708250ffa374931d" args="(axis2_options_t *options, const axutil_env_t *env, const axis2_char_t *action)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">AXIS2_EXTERN axis2_status_t axis2_options_set_action           </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="group__axis2__options.html#g26794bbdc46cdd3481c7e9079c0d6094">axis2_options_t</a> *&nbsp;</td>
          <td class="paramname"> <em>options</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const <a class="el" href="structaxutil__env.html">axutil_env_t</a> *&nbsp;</td>
          <td class="paramname"> <em>env</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const axis2_char_t *&nbsp;</td>
          <td class="paramname"> <em>action</em></td><td>&nbsp;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td><td width="100%"></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
Sets WSA action <dl compact><dt><b>Parameters:</b></dt><dd>
  <table border="0" cellspacing="2" cellpadding="0">
    <tr><td valign="top"></td><td valign="top"><em>options</em>&nbsp;</td><td>pointer to options struct </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>env</em>&nbsp;</td><td>pointer to environment struct </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>action</em>&nbsp;</td><td>pointer to action string </td></tr>
  </table>
</dl>
<dl class="return" compact><dt><b>Returns:</b></dt><dd>AXIS2_SUCCESS on success, else AXIS2_FAILURE </dd></dl>

</div>
</div><p>
<a class="anchor" name="g1b441d3770ced54ff17f117022ea082f"></a><!-- doxytag: member="axis2_options.h::axis2_options_set_enable_mtom" ref="g1b441d3770ced54ff17f117022ea082f" args="(axis2_options_t *options, const axutil_env_t *env, axis2_bool_t enable_mtom)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">AXIS2_EXTERN axis2_status_t axis2_options_set_enable_mtom           </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="group__axis2__options.html#g26794bbdc46cdd3481c7e9079c0d6094">axis2_options_t</a> *&nbsp;</td>
          <td class="paramname"> <em>options</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const <a class="el" href="structaxutil__env.html">axutil_env_t</a> *&nbsp;</td>
          <td class="paramname"> <em>env</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">axis2_bool_t&nbsp;</td>
          <td class="paramname"> <em>enable_mtom</em></td><td>&nbsp;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td><td width="100%"></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
Enable/disable MTOM handling. <dl compact><dt><b>Parameters:</b></dt><dd>
  <table border="0" cellspacing="2" cellpadding="0">
    <tr><td valign="top"></td><td valign="top"><em>options</em>&nbsp;</td><td>pointer to options struct </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>env</em>&nbsp;</td><td>pointer to environment struct </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>enable_mtom</em>&nbsp;</td><td>AXIS2_TRUE if MTOM is to be enabled, AXIS2_FALSE </td></tr>
  </table>
</dl>
<dl class="return" compact><dt><b>Returns:</b></dt><dd>AXIS2_SUCCESS on success, else AXIS2_FAILURE </dd></dl>

</div>
</div><p>
<a class="anchor" name="gb1533f1ffce6cb2842f60cd14a1270ba"></a><!-- doxytag: member="axis2_options.h::axis2_options_set_enable_rest" ref="gb1533f1ffce6cb2842f60cd14a1270ba" args="(axis2_options_t *options, const axutil_env_t *env, const axis2_bool_t enable_rest)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">AXIS2_EXTERN axis2_status_t axis2_options_set_enable_rest           </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="group__axis2__options.html#g26794bbdc46cdd3481c7e9079c0d6094">axis2_options_t</a> *&nbsp;</td>
          <td class="paramname"> <em>options</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const <a class="el" href="structaxutil__env.html">axutil_env_t</a> *&nbsp;</td>
          <td class="paramname"> <em>env</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const axis2_bool_t&nbsp;</td>
          <td class="paramname"> <em>enable_rest</em></td><td>&nbsp;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td><td width="100%"></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
Sets the bool value indicating whether to enable REST or not. <dl compact><dt><b>Parameters:</b></dt><dd>
  <table border="0" cellspacing="2" cellpadding="0">
    <tr><td valign="top"></td><td valign="top"><em>options</em>&nbsp;</td><td>pointer to options struct </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>env</em>&nbsp;</td><td>pointer to environment struct </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>enable_rest</em>&nbsp;</td><td>bool value indicating whether to enable REST or not, AXIS2_TRUE to enable, AXIS2_FALSE to disable </td></tr>
  </table>
</dl>
<dl class="return" compact><dt><b>Returns:</b></dt><dd>AXIS2_SUCCESS on success, else AXIS2_FAILURE </dd></dl>

</div>
</div><p>
<a class="anchor" name="g14e60636d93226301003417edc5c96a0"></a><!-- doxytag: member="axis2_options.h::axis2_options_set_fault_to" ref="g14e60636d93226301003417edc5c96a0" args="(axis2_options_t *options, const axutil_env_t *env, axis2_endpoint_ref_t *fault_to)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">AXIS2_EXTERN axis2_status_t axis2_options_set_fault_to           </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="group__axis2__options.html#g26794bbdc46cdd3481c7e9079c0d6094">axis2_options_t</a> *&nbsp;</td>
          <td class="paramname"> <em>options</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const <a class="el" href="structaxutil__env.html">axutil_env_t</a> *&nbsp;</td>
          <td class="paramname"> <em>env</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype"><a class="el" href="group__axis2__endpoint__ref.html#gf6e89c83a6b553e7e3f11e787b3fecd4">axis2_endpoint_ref_t</a> *&nbsp;</td>
          <td class="paramname"> <em>fault_to</em></td><td>&nbsp;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td><td width="100%"></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
Sets fault to address. <dl compact><dt><b>Parameters:</b></dt><dd>
  <table border="0" cellspacing="2" cellpadding="0">
    <tr><td valign="top"></td><td valign="top"><em>options</em>&nbsp;</td><td>pointer to options struct </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>env</em>&nbsp;</td><td>pointer to environment struct </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>fault_to</em>&nbsp;</td><td>pointer to endpoint reference struct representing fault to address. options takes over the ownership of the struct. </td></tr>
  </table>
</dl>
<dl class="return" compact><dt><b>Returns:</b></dt><dd>AXIS2_SUCCESS on success, else AXIS2_FAILURE </dd></dl>

</div>
</div><p>
<a class="anchor" name="g5c465dd6f0aebb8feb3d92642bb1d3c7"></a><!-- doxytag: member="axis2_options.h::axis2_options_set_from" ref="g5c465dd6f0aebb8feb3d92642bb1d3c7" args="(axis2_options_t *options, const axutil_env_t *env, axis2_endpoint_ref_t *from)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">AXIS2_EXTERN axis2_status_t axis2_options_set_from           </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="group__axis2__options.html#g26794bbdc46cdd3481c7e9079c0d6094">axis2_options_t</a> *&nbsp;</td>
          <td class="paramname"> <em>options</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const <a class="el" href="structaxutil__env.html">axutil_env_t</a> *&nbsp;</td>
          <td class="paramname"> <em>env</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype"><a class="el" href="group__axis2__endpoint__ref.html#gf6e89c83a6b553e7e3f11e787b3fecd4">axis2_endpoint_ref_t</a> *&nbsp;</td>
          <td class="paramname"> <em>from</em></td><td>&nbsp;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td><td width="100%"></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
Sets from address. <dl compact><dt><b>Parameters:</b></dt><dd>
  <table border="0" cellspacing="2" cellpadding="0">
    <tr><td valign="top"></td><td valign="top"><em>options</em>&nbsp;</td><td>pointer to options struct </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>env</em>&nbsp;</td><td>pointer to environment struct </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>from</em>&nbsp;</td><td>pointer to endpoint reference struct representing from to address. options takes over the ownership of the struct. </td></tr>
  </table>
</dl>
<dl class="return" compact><dt><b>Returns:</b></dt><dd>AXIS2_SUCCESS on success, else AXIS2_FAILURE </dd></dl>

</div>
</div><p>
<a class="anchor" name="g075f4088b1263d5a932486293c099238"></a><!-- doxytag: member="axis2_options.h::axis2_options_set_http_auth_info" ref="g075f4088b1263d5a932486293c099238" args="(axis2_options_t *options, const axutil_env_t *env, const axis2_char_t *username, const axis2_char_t *password, const axis2_char_t *auth_type)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">AXIS2_EXTERN axis2_status_t axis2_options_set_http_auth_info           </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="group__axis2__options.html#g26794bbdc46cdd3481c7e9079c0d6094">axis2_options_t</a> *&nbsp;</td>
          <td class="paramname"> <em>options</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const <a class="el" href="structaxutil__env.html">axutil_env_t</a> *&nbsp;</td>
          <td class="paramname"> <em>env</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const axis2_char_t *&nbsp;</td>
          <td class="paramname"> <em>username</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const axis2_char_t *&nbsp;</td>
          <td class="paramname"> <em>password</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const axis2_char_t *&nbsp;</td>
          <td class="paramname"> <em>auth_type</em></td><td>&nbsp;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td><td width="100%"></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
Sets HTTP authentication information. <dl compact><dt><b>Parameters:</b></dt><dd>
  <table border="0" cellspacing="2" cellpadding="0">
    <tr><td valign="top"></td><td valign="top"><em>env</em>&nbsp;</td><td>pointer to environment struct </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>parent</em>&nbsp;</td><td>pointer to parent struct </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>username</em>&nbsp;</td><td>string representing username </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>password</em>&nbsp;</td><td>string representing password </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>auth_type</em>&nbsp;</td><td>use "Basic" to force basic authentication and "Digest" to force digest authentication or NULL for not forcing authentication </td></tr>
  </table>
</dl>
<dl class="return" compact><dt><b>Returns:</b></dt><dd>AXIS2_SUCCESS on success, else AXIS2_FAILURE </dd></dl>

</div>
</div><p>
<a class="anchor" name="ga3c3b6a89eac2785b2eeb4fefe054202"></a><!-- doxytag: member="axis2_options.h::axis2_options_set_http_headers" ref="ga3c3b6a89eac2785b2eeb4fefe054202" args="(axis2_options_t *options, const axutil_env_t *env, axutil_array_list_t *http_header_list)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">AXIS2_EXTERN axis2_status_t axis2_options_set_http_headers           </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="group__axis2__options.html#g26794bbdc46cdd3481c7e9079c0d6094">axis2_options_t</a> *&nbsp;</td>
          <td class="paramname"> <em>options</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const <a class="el" href="structaxutil__env.html">axutil_env_t</a> *&nbsp;</td>
          <td class="paramname"> <em>env</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype"><a class="el" href="group__axutil__array__list.html#g1a6a89777db876cfa0cc86787b7be6a0">axutil_array_list_t</a> *&nbsp;</td>
          <td class="paramname"> <em>http_header_list</em></td><td>&nbsp;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td><td width="100%"></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
Sets the Additional HTTP Headers to be sent. <dl compact><dt><b>Parameters:</b></dt><dd>
  <table border="0" cellspacing="2" cellpadding="0">
    <tr><td valign="top"></td><td valign="top"><em>options</em>&nbsp;</td><td>pointer to options struct </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>env</em>&nbsp;</td><td>pointer to environment struct </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>http_header_list</em>&nbsp;</td><td>array list containing HTTP Headers. </td></tr>
  </table>
</dl>
<dl class="return" compact><dt><b>Returns:</b></dt><dd>AXIS2_SUCCESS on success, else AXIS2_FAILURE </dd></dl>

</div>
</div><p>
<a class="anchor" name="g1c7eff578547cf234abd57ea34f2e0b9"></a><!-- doxytag: member="axis2_options.h::axis2_options_set_http_method" ref="g1c7eff578547cf234abd57ea34f2e0b9" args="(axis2_options_t *options, const axutil_env_t *env, const axis2_char_t *http_method)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">AXIS2_EXTERN axis2_status_t axis2_options_set_http_method           </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="group__axis2__options.html#g26794bbdc46cdd3481c7e9079c0d6094">axis2_options_t</a> *&nbsp;</td>
          <td class="paramname"> <em>options</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const <a class="el" href="structaxutil__env.html">axutil_env_t</a> *&nbsp;</td>
          <td class="paramname"> <em>env</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const axis2_char_t *&nbsp;</td>
          <td class="paramname"> <em>http_method</em></td><td>&nbsp;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td><td width="100%"></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
Sets the HTTP method to be used <dl compact><dt><b>Parameters:</b></dt><dd>
  <table border="0" cellspacing="2" cellpadding="0">
    <tr><td valign="top"></td><td valign="top"><em>options</em>&nbsp;</td><td>pointer to options struct </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>env</em>&nbsp;</td><td>pointer to environment struct </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>http_method</em>&nbsp;</td><td>string representing HTTP method to use, can be either AXIS2_HTTP_GET or AXIS2_HTTP_POST </td></tr>
  </table>
</dl>
<dl class="return" compact><dt><b>Returns:</b></dt><dd>AXIS2_SUCCESS on success, else AXIS2_FAILURE </dd></dl>

</div>
</div><p>
<a class="anchor" name="g61fc4980e653dcc854819966af927b01"></a><!-- doxytag: member="axis2_options.h::axis2_options_set_manage_session" ref="g61fc4980e653dcc854819966af927b01" args="(axis2_options_t *options, const axutil_env_t *env, const axis2_bool_t manage_session)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">AXIS2_EXTERN axis2_status_t axis2_options_set_manage_session           </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="group__axis2__options.html#g26794bbdc46cdd3481c7e9079c0d6094">axis2_options_t</a> *&nbsp;</td>
          <td class="paramname"> <em>options</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const <a class="el" href="structaxutil__env.html">axutil_env_t</a> *&nbsp;</td>
          <td class="paramname"> <em>env</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const axis2_bool_t&nbsp;</td>
          <td class="paramname"> <em>manage_session</em></td><td>&nbsp;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td><td width="100%"></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
Sets manage session bool value. <dl compact><dt><b>Parameters:</b></dt><dd>
  <table border="0" cellspacing="2" cellpadding="0">
    <tr><td valign="top"></td><td valign="top"><em>options</em>&nbsp;</td><td>pointer to options struct </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>env</em>&nbsp;</td><td>pointer to environment struct </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>manage_session</em>&nbsp;</td><td>manage session bool value </td></tr>
  </table>
</dl>
<dl class="return" compact><dt><b>Returns:</b></dt><dd>AXIS2_SUCCESS on success, else AXIS2_FAILURE </dd></dl>

</div>
</div><p>
<a class="anchor" name="g7d0fbc43a55e0e40f1f124d317cd2675"></a><!-- doxytag: member="axis2_options.h::axis2_options_set_message_id" ref="g7d0fbc43a55e0e40f1f124d317cd2675" args="(axis2_options_t *options, const axutil_env_t *env, const axis2_char_t *message_id)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">AXIS2_EXTERN axis2_status_t axis2_options_set_message_id           </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="group__axis2__options.html#g26794bbdc46cdd3481c7e9079c0d6094">axis2_options_t</a> *&nbsp;</td>
          <td class="paramname"> <em>options</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const <a class="el" href="structaxutil__env.html">axutil_env_t</a> *&nbsp;</td>
          <td class="paramname"> <em>env</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const axis2_char_t *&nbsp;</td>
          <td class="paramname"> <em>message_id</em></td><td>&nbsp;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td><td width="100%"></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
Sets message ID. <dl compact><dt><b>Parameters:</b></dt><dd>
  <table border="0" cellspacing="2" cellpadding="0">
    <tr><td valign="top"></td><td valign="top"><em>options</em>&nbsp;</td><td>pointer to options struct </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>env</em>&nbsp;</td><td>pointer to environment struct </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>message_id</em>&nbsp;</td><td>pointer to message_id struct </td></tr>
  </table>
</dl>
<dl class="return" compact><dt><b>Returns:</b></dt><dd>AXIS2_SUCCESS on success, else AXIS2_FAILURE </dd></dl>

</div>
</div><p>
<a class="anchor" name="g85559daaff1957e799f5ff93c8f5c805"></a><!-- doxytag: member="axis2_options.h::axis2_options_set_msg_info_headers" ref="g85559daaff1957e799f5ff93c8f5c805" args="(axis2_options_t *options, const axutil_env_t *env, axis2_msg_info_headers_t *msg_info_headers)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">AXIS2_EXTERN axis2_status_t axis2_options_set_msg_info_headers           </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="group__axis2__options.html#g26794bbdc46cdd3481c7e9079c0d6094">axis2_options_t</a> *&nbsp;</td>
          <td class="paramname"> <em>options</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const <a class="el" href="structaxutil__env.html">axutil_env_t</a> *&nbsp;</td>
          <td class="paramname"> <em>env</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype"><a class="el" href="group__axis2__msg__info__headers.html#g556873fdfa94e29e43d96728871f3192">axis2_msg_info_headers_t</a> *&nbsp;</td>
          <td class="paramname"> <em>msg_info_headers</em></td><td>&nbsp;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td><td width="100%"></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
Sets WSA message information headers. <dl compact><dt><b>Parameters:</b></dt><dd>
  <table border="0" cellspacing="2" cellpadding="0">
    <tr><td valign="top"></td><td valign="top"><em>options</em>&nbsp;</td><td>pointer to options struct </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>env</em>&nbsp;</td><td>pointer to environment struct </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>pointer</em>&nbsp;</td><td>to message information headers struct </td></tr>
  </table>
</dl>
<dl class="return" compact><dt><b>Returns:</b></dt><dd>AXIS2_SUCCESS on success, else AXIS2_FAILURE </dd></dl>

</div>
</div><p>
<a class="anchor" name="g787038bb34b488493d73fbfe1af919ff"></a><!-- doxytag: member="axis2_options.h::axis2_options_set_parent" ref="g787038bb34b488493d73fbfe1af919ff" args="(axis2_options_t *options, const axutil_env_t *env, const axis2_options_t *parent)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">AXIS2_EXTERN axis2_status_t axis2_options_set_parent           </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="group__axis2__options.html#g26794bbdc46cdd3481c7e9079c0d6094">axis2_options_t</a> *&nbsp;</td>
          <td class="paramname"> <em>options</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const <a class="el" href="structaxutil__env.html">axutil_env_t</a> *&nbsp;</td>
          <td class="paramname"> <em>env</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const <a class="el" href="group__axis2__options.html#g26794bbdc46cdd3481c7e9079c0d6094">axis2_options_t</a> *&nbsp;</td>
          <td class="paramname"> <em>parent</em></td><td>&nbsp;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td><td width="100%"></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
Sets the parent options. <dl compact><dt><b>Parameters:</b></dt><dd>
  <table border="0" cellspacing="2" cellpadding="0">
    <tr><td valign="top"></td><td valign="top"><em>options</em>&nbsp;</td><td>pointer to options struct </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>env</em>&nbsp;</td><td>pointer to environment struct </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>parent</em>&nbsp;</td><td>pointer to parent options struct </td></tr>
  </table>
</dl>
<dl class="return" compact><dt><b>Returns:</b></dt><dd>AXIS2_SUCCESS on success, else AXIS2_FAILURE </dd></dl>

</div>
</div><p>
<a class="anchor" name="g585f0123a394ba50e4aa472a026517b7"></a><!-- doxytag: member="axis2_options.h::axis2_options_set_properties" ref="g585f0123a394ba50e4aa472a026517b7" args="(axis2_options_t *options, const axutil_env_t *env, axutil_hash_t *properties)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">AXIS2_EXTERN axis2_status_t axis2_options_set_properties           </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="group__axis2__options.html#g26794bbdc46cdd3481c7e9079c0d6094">axis2_options_t</a> *&nbsp;</td>
          <td class="paramname"> <em>options</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const <a class="el" href="structaxutil__env.html">axutil_env_t</a> *&nbsp;</td>
          <td class="paramname"> <em>env</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype"><a class="el" href="group__axutil__hash.html#gb2d7d14db2de92a101573f44421ac12a">axutil_hash_t</a> *&nbsp;</td>
          <td class="paramname"> <em>properties</em></td><td>&nbsp;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td><td width="100%"></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
Sets the properties hash map. <dl compact><dt><b>Parameters:</b></dt><dd>
  <table border="0" cellspacing="2" cellpadding="0">
    <tr><td valign="top"></td><td valign="top"><em>options</em>&nbsp;</td><td>pointer to options struct </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>env</em>&nbsp;</td><td>pointer to environment struct </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>properties</em>&nbsp;</td><td>pointer to properties hash map. options takes over the ownership of the hash struct. </td></tr>
  </table>
</dl>
<dl class="return" compact><dt><b>Returns:</b></dt><dd>AXIS2_SUCCESS on success, else AXIS2_FAILURE </dd></dl>

</div>
</div><p>
<a class="anchor" name="g5a364a815c87168bb136d8cbd11476aa"></a><!-- doxytag: member="axis2_options.h::axis2_options_set_property" ref="g5a364a815c87168bb136d8cbd11476aa" args="(axis2_options_t *options, const axutil_env_t *env, const axis2_char_t *property_key, const void *property)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">AXIS2_EXTERN axis2_status_t axis2_options_set_property           </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="group__axis2__options.html#g26794bbdc46cdd3481c7e9079c0d6094">axis2_options_t</a> *&nbsp;</td>
          <td class="paramname"> <em>options</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const <a class="el" href="structaxutil__env.html">axutil_env_t</a> *&nbsp;</td>
          <td class="paramname"> <em>env</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const axis2_char_t *&nbsp;</td>
          <td class="paramname"> <em>property_key</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const void *&nbsp;</td>
          <td class="paramname"> <em>property</em></td><td>&nbsp;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td><td width="100%"></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
Sets a property with the given key value. <dl compact><dt><b>Parameters:</b></dt><dd>
  <table border="0" cellspacing="2" cellpadding="0">
    <tr><td valign="top"></td><td valign="top"><em>options</em>&nbsp;</td><td>pointer to options struct </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>env</em>&nbsp;</td><td>pointer to environment struct </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>property_key</em>&nbsp;</td><td>property key string </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>property</em>&nbsp;</td><td>pointer to property to be set </td></tr>
  </table>
</dl>
<dl class="return" compact><dt><b>Returns:</b></dt><dd>AXIS2_SUCCESS on success, else AXIS2_FAILURE </dd></dl>

</div>
</div><p>
<a class="anchor" name="g1d156a086d838faecb313d2cc96f80dc"></a><!-- doxytag: member="axis2_options.h::axis2_options_set_proxy_auth_info" ref="g1d156a086d838faecb313d2cc96f80dc" args="(axis2_options_t *options, const axutil_env_t *env, const axis2_char_t *username, const axis2_char_t *password, const axis2_char_t *auth_type)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">AXIS2_EXTERN axis2_status_t axis2_options_set_proxy_auth_info           </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="group__axis2__options.html#g26794bbdc46cdd3481c7e9079c0d6094">axis2_options_t</a> *&nbsp;</td>
          <td class="paramname"> <em>options</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const <a class="el" href="structaxutil__env.html">axutil_env_t</a> *&nbsp;</td>
          <td class="paramname"> <em>env</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const axis2_char_t *&nbsp;</td>
          <td class="paramname"> <em>username</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const axis2_char_t *&nbsp;</td>
          <td class="paramname"> <em>password</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const axis2_char_t *&nbsp;</td>
          <td class="paramname"> <em>auth_type</em></td><td>&nbsp;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td><td width="100%"></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
Sets proxy authentication information. <dl compact><dt><b>Parameters:</b></dt><dd>
  <table border="0" cellspacing="2" cellpadding="0">
    <tr><td valign="top"></td><td valign="top"><em>env</em>&nbsp;</td><td>pointer to environment struct </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>parent</em>&nbsp;</td><td>pointer to parent struct </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>username</em>&nbsp;</td><td>string representing username </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>password</em>&nbsp;</td><td>string representing password </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>auth_type</em>&nbsp;</td><td>use "Basic" to force basic authentication and "Digest" to force digest authentication or NULL for not forcing authentication </td></tr>
  </table>
</dl>
<dl class="return" compact><dt><b>Returns:</b></dt><dd>AXIS2_SUCCESS on success, else AXIS2_FAILURE </dd></dl>

</div>
</div><p>
<a class="anchor" name="g209582f680d8310f26952d036d130b55"></a><!-- doxytag: member="axis2_options.h::axis2_options_set_relates_to" ref="g209582f680d8310f26952d036d130b55" args="(axis2_options_t *options, const axutil_env_t *env, axis2_relates_to_t *relates_to)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">AXIS2_EXTERN axis2_status_t axis2_options_set_relates_to           </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="group__axis2__options.html#g26794bbdc46cdd3481c7e9079c0d6094">axis2_options_t</a> *&nbsp;</td>
          <td class="paramname"> <em>options</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const <a class="el" href="structaxutil__env.html">axutil_env_t</a> *&nbsp;</td>
          <td class="paramname"> <em>env</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype"><a class="el" href="group__axis2__relates__to.html#gd92fd7b0e63b44c6343db15b61aeba45">axis2_relates_to_t</a> *&nbsp;</td>
          <td class="paramname"> <em>relates_to</em></td><td>&nbsp;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td><td width="100%"></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
Sets relates to. <dl compact><dt><b>Parameters:</b></dt><dd>
  <table border="0" cellspacing="2" cellpadding="0">
    <tr><td valign="top"></td><td valign="top"><em>options</em>&nbsp;</td><td>pointer to options struct </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>env</em>&nbsp;</td><td>pointer to environment struct </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>relates_to</em>&nbsp;</td><td>pointer to relates_to struct. options takes over the ownership of the struct. </td></tr>
  </table>
</dl>
<dl class="return" compact><dt><b>Returns:</b></dt><dd>AXIS2_SUCCESS on success, else AXIS2_FAILURE </dd></dl>

</div>
</div><p>
<a class="anchor" name="gc2425fafccaf57322da1a07b328ebcb0"></a><!-- doxytag: member="axis2_options.h::axis2_options_set_reply_to" ref="gc2425fafccaf57322da1a07b328ebcb0" args="(axis2_options_t *options, const axutil_env_t *env, axis2_endpoint_ref_t *reply_to)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">AXIS2_EXTERN axis2_status_t axis2_options_set_reply_to           </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="group__axis2__options.html#g26794bbdc46cdd3481c7e9079c0d6094">axis2_options_t</a> *&nbsp;</td>
          <td class="paramname"> <em>options</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const <a class="el" href="structaxutil__env.html">axutil_env_t</a> *&nbsp;</td>
          <td class="paramname"> <em>env</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype"><a class="el" href="group__axis2__endpoint__ref.html#gf6e89c83a6b553e7e3f11e787b3fecd4">axis2_endpoint_ref_t</a> *&nbsp;</td>
          <td class="paramname"> <em>reply_to</em></td><td>&nbsp;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td><td width="100%"></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
Sets reply to address. <dl compact><dt><b>Parameters:</b></dt><dd>
  <table border="0" cellspacing="2" cellpadding="0">
    <tr><td valign="top"></td><td valign="top"><em>options</em>&nbsp;</td><td>pointer to options struct </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>env</em>&nbsp;</td><td>pointer to environment struct </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>reply_to</em>&nbsp;</td><td>pointer to endpoint reference struct representing reply to address. options takes over the ownership of the struct. </td></tr>
  </table>
</dl>
<dl class="return" compact><dt><b>Returns:</b></dt><dd>AXIS2_SUCCESS on success, else AXIS2_FAILURE </dd></dl>

</div>
</div><p>
<a class="anchor" name="g20bad0d888b7d491992595703dd11dda"></a><!-- doxytag: member="axis2_options.h::axis2_options_set_sender_transport" ref="g20bad0d888b7d491992595703dd11dda" args="(axis2_options_t *options, const axutil_env_t *env, const AXIS2_TRANSPORT_ENUMS sender_transport, axis2_conf_t *conf)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">AXIS2_EXTERN axis2_status_t axis2_options_set_sender_transport           </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="group__axis2__options.html#g26794bbdc46cdd3481c7e9079c0d6094">axis2_options_t</a> *&nbsp;</td>
          <td class="paramname"> <em>options</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const <a class="el" href="structaxutil__env.html">axutil_env_t</a> *&nbsp;</td>
          <td class="paramname"> <em>env</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const AXIS2_TRANSPORT_ENUMS&nbsp;</td>
          <td class="paramname"> <em>sender_transport</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype"><a class="el" href="group__axis2__config.html#gd32db334e748bbdcaebd55156e493d3b">axis2_conf_t</a> *&nbsp;</td>
          <td class="paramname"> <em>conf</em></td><td>&nbsp;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td><td width="100%"></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
Sets the sender transport. <dl compact><dt><b>Parameters:</b></dt><dd>
  <table border="0" cellspacing="2" cellpadding="0">
    <tr><td valign="top"></td><td valign="top"><em>options</em>&nbsp;</td><td>pointer to options struct </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>env</em>&nbsp;</td><td>pointer to environment struct </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>sender_transport</em>&nbsp;</td><td>name of the sender transport to be set </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>conf</em>&nbsp;</td><td>pointer to conf struct, it is from the conf that the transport is picked with the given name </td></tr>
  </table>
</dl>
<dl class="return" compact><dt><b>Returns:</b></dt><dd>AXIS2_SUCCESS on success, else AXIS2_FAILURE </dd></dl>

</div>
</div><p>
<a class="anchor" name="g39f6317b5633f5ee71311f124dac42fc"></a><!-- doxytag: member="axis2_options.h::axis2_options_set_soap_action" ref="g39f6317b5633f5ee71311f124dac42fc" args="(axis2_options_t *options, const axutil_env_t *env, axutil_string_t *soap_action)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">AXIS2_EXTERN axis2_status_t axis2_options_set_soap_action           </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="group__axis2__options.html#g26794bbdc46cdd3481c7e9079c0d6094">axis2_options_t</a> *&nbsp;</td>
          <td class="paramname"> <em>options</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const <a class="el" href="structaxutil__env.html">axutil_env_t</a> *&nbsp;</td>
          <td class="paramname"> <em>env</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">axutil_string_t *&nbsp;</td>
          <td class="paramname"> <em>soap_action</em></td><td>&nbsp;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td><td width="100%"></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
Sets SOAP action <dl compact><dt><b>Parameters:</b></dt><dd>
  <table border="0" cellspacing="2" cellpadding="0">
    <tr><td valign="top"></td><td valign="top"><em>options</em>&nbsp;</td><td>pointer to options struct </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>env</em>&nbsp;</td><td>pointer to environment struct </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>action</em>&nbsp;</td><td>pointer to SOAP action string </td></tr>
  </table>
</dl>
<dl class="return" compact><dt><b>Returns:</b></dt><dd>AXIS2_SUCCESS on success, else AXIS2_FAILURE </dd></dl>

</div>
</div><p>
<a class="anchor" name="ge0a82c10e919078b3e06509e0ffe1042"></a><!-- doxytag: member="axis2_options.h::axis2_options_set_soap_version" ref="ge0a82c10e919078b3e06509e0ffe1042" args="(axis2_options_t *options, const axutil_env_t *env, const int soap_version)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">AXIS2_EXTERN axis2_status_t axis2_options_set_soap_version           </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="group__axis2__options.html#g26794bbdc46cdd3481c7e9079c0d6094">axis2_options_t</a> *&nbsp;</td>
          <td class="paramname"> <em>options</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const <a class="el" href="structaxutil__env.html">axutil_env_t</a> *&nbsp;</td>
          <td class="paramname"> <em>env</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const int&nbsp;</td>
          <td class="paramname"> <em>soap_version</em></td><td>&nbsp;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td><td width="100%"></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
Sets SOAP version. <dl compact><dt><b>Parameters:</b></dt><dd>
  <table border="0" cellspacing="2" cellpadding="0">
    <tr><td valign="top"></td><td valign="top"><em>options</em>&nbsp;</td><td>pointer to options struct </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>env</em>&nbsp;</td><td>pointer to environment struct </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>soap_version</em>&nbsp;</td><td>soap version, either AXIOM_SOAP11 or AXIOM_SOAP12 </td></tr>
  </table>
</dl>
<dl class="return" compact><dt><b>Returns:</b></dt><dd>AXIS2_SUCCESS on success, else AXIS2_FAILURE </dd></dl>

</div>
</div><p>
<a class="anchor" name="gfa4179613c1277d4301bb25065e9007b"></a><!-- doxytag: member="axis2_options.h::axis2_options_set_soap_version_uri" ref="gfa4179613c1277d4301bb25065e9007b" args="(axis2_options_t *options, const axutil_env_t *env, const axis2_char_t *soap_version_uri)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">AXIS2_EXTERN axis2_status_t axis2_options_set_soap_version_uri           </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="group__axis2__options.html#g26794bbdc46cdd3481c7e9079c0d6094">axis2_options_t</a> *&nbsp;</td>
          <td class="paramname"> <em>options</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const <a class="el" href="structaxutil__env.html">axutil_env_t</a> *&nbsp;</td>
          <td class="paramname"> <em>env</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const axis2_char_t *&nbsp;</td>
          <td class="paramname"> <em>soap_version_uri</em></td><td>&nbsp;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td><td width="100%"></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
Sets the SOAP version URI. <dl compact><dt><b>Parameters:</b></dt><dd>
  <table border="0" cellspacing="2" cellpadding="0">
    <tr><td valign="top"></td><td valign="top"><em>options</em>&nbsp;</td><td>pointer to options struct </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>env</em>&nbsp;</td><td>pointer to environment struct </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>soap_version_uri</em>&nbsp;</td><td>URI of the SOAP version to be set, can be either AXIOM_SOAP11_SOAP_ENVELOPE_NAMESPACE_URI or AXIOM_SOAP12_SOAP_ENVELOPE_NAMESPACE_URI </td></tr>
  </table>
</dl>
<dl class="return" compact><dt><b>Returns:</b></dt><dd>AXIS2_SUCCESS on success, else AXIS2_FAILURE </dd></dl>

</div>
</div><p>
<a class="anchor" name="g08d3a84142e28bf18609aa127f5e43da"></a><!-- doxytag: member="axis2_options.h::axis2_options_set_test_http_auth" ref="g08d3a84142e28bf18609aa127f5e43da" args="(axis2_options_t *options, const axutil_env_t *env, const axis2_bool_t test_http_auth)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">AXIS2_EXTERN axis2_status_t axis2_options_set_test_http_auth           </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="group__axis2__options.html#g26794bbdc46cdd3481c7e9079c0d6094">axis2_options_t</a> *&nbsp;</td>
          <td class="paramname"> <em>options</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const <a class="el" href="structaxutil__env.html">axutil_env_t</a> *&nbsp;</td>
          <td class="paramname"> <em>env</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const axis2_bool_t&nbsp;</td>
          <td class="paramname"> <em>test_http_auth</em></td><td>&nbsp;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td><td width="100%"></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
Sets the bool value indicating whether to test whether HTTP Authentication is required or not. <dl compact><dt><b>Parameters:</b></dt><dd>
  <table border="0" cellspacing="2" cellpadding="0">
    <tr><td valign="top"></td><td valign="top"><em>options</em>&nbsp;</td><td>pointer to options struct </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>env</em>&nbsp;</td><td>pointer to environment struct </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>test_http_auth</em>&nbsp;</td><td>bool value indicating whether to test or not, AXIS2_TRUE to enable, AXIS2_FALSE to disable </td></tr>
  </table>
</dl>
<dl class="return" compact><dt><b>Returns:</b></dt><dd>AXIS2_SUCCESS on success, else AXIS2_FAILURE </dd></dl>

</div>
</div><p>
<a class="anchor" name="gb5f388b034b9c34825711fd8fef977e9"></a><!-- doxytag: member="axis2_options.h::axis2_options_set_test_proxy_auth" ref="gb5f388b034b9c34825711fd8fef977e9" args="(axis2_options_t *options, const axutil_env_t *env, const axis2_bool_t test_proxy_auth)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">AXIS2_EXTERN axis2_status_t axis2_options_set_test_proxy_auth           </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="group__axis2__options.html#g26794bbdc46cdd3481c7e9079c0d6094">axis2_options_t</a> *&nbsp;</td>
          <td class="paramname"> <em>options</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const <a class="el" href="structaxutil__env.html">axutil_env_t</a> *&nbsp;</td>
          <td class="paramname"> <em>env</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const axis2_bool_t&nbsp;</td>
          <td class="paramname"> <em>test_proxy_auth</em></td><td>&nbsp;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td><td width="100%"></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
Sets the bool value indicating whether to test whether Proxy Authentication is required or not. <dl compact><dt><b>Parameters:</b></dt><dd>
  <table border="0" cellspacing="2" cellpadding="0">
    <tr><td valign="top"></td><td valign="top"><em>options</em>&nbsp;</td><td>pointer to options struct </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>env</em>&nbsp;</td><td>pointer to environment struct </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>test_proxy_auth</em>&nbsp;</td><td>bool value indicating whether to test or not, AXIS2_TRUE to enable, AXIS2_FALSE to disable </td></tr>
  </table>
</dl>
<dl class="return" compact><dt><b>Returns:</b></dt><dd>AXIS2_SUCCESS on success, else AXIS2_FAILURE </dd></dl>

</div>
</div><p>
<a class="anchor" name="gb75870ba3c356a79e749135f32e2971c"></a><!-- doxytag: member="axis2_options.h::axis2_options_set_timeout_in_milli_seconds" ref="gb75870ba3c356a79e749135f32e2971c" args="(axis2_options_t *options, const axutil_env_t *env, const long timeout_in_milli_seconds)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">AXIS2_EXTERN axis2_status_t axis2_options_set_timeout_in_milli_seconds           </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="group__axis2__options.html#g26794bbdc46cdd3481c7e9079c0d6094">axis2_options_t</a> *&nbsp;</td>
          <td class="paramname"> <em>options</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const <a class="el" href="structaxutil__env.html">axutil_env_t</a> *&nbsp;</td>
          <td class="paramname"> <em>env</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const long&nbsp;</td>
          <td class="paramname"> <em>timeout_in_milli_seconds</em></td><td>&nbsp;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td><td width="100%"></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
Sets timeout in Milli seconds. <dl compact><dt><b>Parameters:</b></dt><dd>
  <table border="0" cellspacing="2" cellpadding="0">
    <tr><td valign="top"></td><td valign="top"><em>options</em>&nbsp;</td><td>pointer to options struct </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>env</em>&nbsp;</td><td>pointer to environment struct </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>timeout_in_milli_seconds</em>&nbsp;</td><td>timeout in milli seconds </td></tr>
  </table>
</dl>
<dl class="return" compact><dt><b>Returns:</b></dt><dd>AXIS2_SUCCESS on success, else AXIS2_FAILURE </dd></dl>

</div>
</div><p>
<a class="anchor" name="geb3c591479ec264bd1e36221d22e31c7"></a><!-- doxytag: member="axis2_options.h::axis2_options_set_to" ref="geb3c591479ec264bd1e36221d22e31c7" args="(axis2_options_t *options, const axutil_env_t *env, axis2_endpoint_ref_t *to)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">AXIS2_EXTERN axis2_status_t axis2_options_set_to           </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="group__axis2__options.html#g26794bbdc46cdd3481c7e9079c0d6094">axis2_options_t</a> *&nbsp;</td>
          <td class="paramname"> <em>options</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const <a class="el" href="structaxutil__env.html">axutil_env_t</a> *&nbsp;</td>
          <td class="paramname"> <em>env</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype"><a class="el" href="group__axis2__endpoint__ref.html#gf6e89c83a6b553e7e3f11e787b3fecd4">axis2_endpoint_ref_t</a> *&nbsp;</td>
          <td class="paramname"> <em>to</em></td><td>&nbsp;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td><td width="100%"></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
sets from address. <dl compact><dt><b>Parameters:</b></dt><dd>
  <table border="0" cellspacing="2" cellpadding="0">
    <tr><td valign="top"></td><td valign="top"><em>options</em>&nbsp;</td><td>pointer to options struct </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>env</em>&nbsp;</td><td>pointer to environment struct </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>to</em>&nbsp;</td><td>pointer to endpoint reference struct representing to address. Options takes over the ownership of the struct. </td></tr>
  </table>
</dl>
<dl class="return" compact><dt><b>Returns:</b></dt><dd>AXIS2_SUCCESS on success, else AXIS2_FAILURE </dd></dl>

</div>
</div><p>
<a class="anchor" name="g7adae8ea3c133854375e0a0dc02a2446"></a><!-- doxytag: member="axis2_options.h::axis2_options_set_transport_in" ref="g7adae8ea3c133854375e0a0dc02a2446" args="(axis2_options_t *options, const axutil_env_t *env, axis2_transport_in_desc_t *transport_in)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">AXIS2_EXTERN axis2_status_t axis2_options_set_transport_in           </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="group__axis2__options.html#g26794bbdc46cdd3481c7e9079c0d6094">axis2_options_t</a> *&nbsp;</td>
          <td class="paramname"> <em>options</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const <a class="el" href="structaxutil__env.html">axutil_env_t</a> *&nbsp;</td>
          <td class="paramname"> <em>env</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype"><a class="el" href="group__axis2__transport__in__desc.html#g9185c8c5307454b74f49523666f7bda6">axis2_transport_in_desc_t</a> *&nbsp;</td>
          <td class="paramname"> <em>transport_in</em></td><td>&nbsp;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td><td width="100%"></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
Sets transport in description. <dl compact><dt><b>Parameters:</b></dt><dd>
  <table border="0" cellspacing="2" cellpadding="0">
    <tr><td valign="top"></td><td valign="top"><em>options</em>&nbsp;</td><td>pointer to options struct </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>env</em>&nbsp;</td><td>pointer to environment struct </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>transport_in</em>&nbsp;</td><td>pointer to transport_in struct. options takes over the ownership of the struct. </td></tr>
  </table>
</dl>
<dl class="return" compact><dt><b>Returns:</b></dt><dd>AXIS2_SUCCESS on success, else AXIS2_FAILURE </dd></dl>

</div>
</div><p>
<a class="anchor" name="g23c960bfdb5ace4fce7997b3d00be21d"></a><!-- doxytag: member="axis2_options.h::axis2_options_set_transport_in_protocol" ref="g23c960bfdb5ace4fce7997b3d00be21d" args="(axis2_options_t *options, const axutil_env_t *env, const AXIS2_TRANSPORT_ENUMS transport_in_protocol)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">AXIS2_EXTERN axis2_status_t axis2_options_set_transport_in_protocol           </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="group__axis2__options.html#g26794bbdc46cdd3481c7e9079c0d6094">axis2_options_t</a> *&nbsp;</td>
          <td class="paramname"> <em>options</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const <a class="el" href="structaxutil__env.html">axutil_env_t</a> *&nbsp;</td>
          <td class="paramname"> <em>env</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const AXIS2_TRANSPORT_ENUMS&nbsp;</td>
          <td class="paramname"> <em>transport_in_protocol</em></td><td>&nbsp;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td><td width="100%"></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
Sets transport in protocol. <dl compact><dt><b>Parameters:</b></dt><dd>
  <table border="0" cellspacing="2" cellpadding="0">
    <tr><td valign="top"></td><td valign="top"><em>options</em>&nbsp;</td><td>pointer to options struct </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>env</em>&nbsp;</td><td>pointer to environment struct </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>in_protocol</em>&nbsp;</td><td>pointer to in_protocol struct </td></tr>
  </table>
</dl>
<dl class="return" compact><dt><b>Returns:</b></dt><dd>AXIS2_SUCCESS on success, else AXIS2_FAILURE </dd></dl>

</div>
</div><p>
<a class="anchor" name="ga80d984e3d86b89084d9aefd0da22196"></a><!-- doxytag: member="axis2_options.h::axis2_options_set_transport_info" ref="ga80d984e3d86b89084d9aefd0da22196" args="(axis2_options_t *options, const axutil_env_t *env, const AXIS2_TRANSPORT_ENUMS sender_transport, const AXIS2_TRANSPORT_ENUMS receiver_transport, const axis2_bool_t use_separate_listener)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">AXIS2_EXTERN axis2_status_t axis2_options_set_transport_info           </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="group__axis2__options.html#g26794bbdc46cdd3481c7e9079c0d6094">axis2_options_t</a> *&nbsp;</td>
          <td class="paramname"> <em>options</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const <a class="el" href="structaxutil__env.html">axutil_env_t</a> *&nbsp;</td>
          <td class="paramname"> <em>env</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const AXIS2_TRANSPORT_ENUMS&nbsp;</td>
          <td class="paramname"> <em>sender_transport</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const AXIS2_TRANSPORT_ENUMS&nbsp;</td>
          <td class="paramname"> <em>receiver_transport</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const axis2_bool_t&nbsp;</td>
          <td class="paramname"> <em>use_separate_listener</em></td><td>&nbsp;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td><td width="100%"></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
Sets transport information. Transport information includes the name of the sender transport, name of the receiver transport and if a separate listener to be used to receive response. <dl compact><dt><b>Parameters:</b></dt><dd>
  <table border="0" cellspacing="2" cellpadding="0">
    <tr><td valign="top"></td><td valign="top"><em>options</em>&nbsp;</td><td>pointer to options struct </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>env</em>&nbsp;</td><td>pointer to environment struct </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>sender_transport</em>&nbsp;</td><td>name of sender transport to be used </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>receiver_transport</em>&nbsp;</td><td>name of receiver transport to be used </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>use_separate_listener</em>&nbsp;</td><td>bool value indicating whether to use a separate listener or not. </td></tr>
  </table>
</dl>
<dl class="return" compact><dt><b>Returns:</b></dt><dd>AXIS2_SUCCESS on success, else AXIS2_FAILURE </dd></dl>

</div>
</div><p>
<a class="anchor" name="gfa5e260c38cf75997d4ae2b58517166d"></a><!-- doxytag: member="axis2_options.h::axis2_options_set_transport_out" ref="gfa5e260c38cf75997d4ae2b58517166d" args="(axis2_options_t *options, const axutil_env_t *env, axis2_transport_out_desc_t *transport_out)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">AXIS2_EXTERN axis2_status_t axis2_options_set_transport_out           </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="group__axis2__options.html#g26794bbdc46cdd3481c7e9079c0d6094">axis2_options_t</a> *&nbsp;</td>
          <td class="paramname"> <em>options</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const <a class="el" href="structaxutil__env.html">axutil_env_t</a> *&nbsp;</td>
          <td class="paramname"> <em>env</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype"><a class="el" href="group__axis2__transport__out__desc.html#g30caf90fd8fb7b0c89700bcb12e250df">axis2_transport_out_desc_t</a> *&nbsp;</td>
          <td class="paramname"> <em>transport_out</em></td><td>&nbsp;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td><td width="100%"></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
Sets the transport out description. <dl compact><dt><b>Parameters:</b></dt><dd>
  <table border="0" cellspacing="2" cellpadding="0">
    <tr><td valign="top"></td><td valign="top"><em>options</em>&nbsp;</td><td>pointer to options struct </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>env</em>&nbsp;</td><td>pointer to environment struct </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>transport_out</em>&nbsp;</td><td>pointer to transport out description struct. options takes over the ownership of the struct. </td></tr>
  </table>
</dl>
<dl class="return" compact><dt><b>Returns:</b></dt><dd>AXIS2_SUCCESS on success, else AXIS2_FAILURE </dd></dl>

</div>
</div><p>
<a class="anchor" name="g3b599f4516c8eb809d9c957f79e3b348"></a><!-- doxytag: member="axis2_options.h::axis2_options_set_transport_receiver" ref="g3b599f4516c8eb809d9c957f79e3b348" args="(axis2_options_t *options, const axutil_env_t *env, axis2_transport_receiver_t *receiver)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">AXIS2_EXTERN axis2_status_t axis2_options_set_transport_receiver           </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="group__axis2__options.html#g26794bbdc46cdd3481c7e9079c0d6094">axis2_options_t</a> *&nbsp;</td>
          <td class="paramname"> <em>options</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const <a class="el" href="structaxutil__env.html">axutil_env_t</a> *&nbsp;</td>
          <td class="paramname"> <em>env</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype"><a class="el" href="structaxis2__transport__receiver.html">axis2_transport_receiver_t</a> *&nbsp;</td>
          <td class="paramname"> <em>receiver</em></td><td>&nbsp;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td><td width="100%"></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
Sets transport receiver. <dl compact><dt><b>Parameters:</b></dt><dd>
  <table border="0" cellspacing="2" cellpadding="0">
    <tr><td valign="top"></td><td valign="top"><em>options</em>&nbsp;</td><td>pointer to options struct </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>env</em>&nbsp;</td><td>pointer to environment struct </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>receiver</em>&nbsp;</td><td>pointer to transport receiver struct. options takes over the ownership of the struct. </td></tr>
  </table>
</dl>
<dl class="return" compact><dt><b>Returns:</b></dt><dd>AXIS2_SUCCESS on success, else AXIS2_FAILURE </dd></dl>

</div>
</div><p>
<a class="anchor" name="g4d51e41495fd13829711123fc1c66179"></a><!-- doxytag: member="axis2_options.h::axis2_options_set_use_separate_listener" ref="g4d51e41495fd13829711123fc1c66179" args="(axis2_options_t *options, const axutil_env_t *env, const axis2_bool_t use_separate_listener)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">AXIS2_EXTERN axis2_status_t axis2_options_set_use_separate_listener           </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="group__axis2__options.html#g26794bbdc46cdd3481c7e9079c0d6094">axis2_options_t</a> *&nbsp;</td>
          <td class="paramname"> <em>options</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const <a class="el" href="structaxutil__env.html">axutil_env_t</a> *&nbsp;</td>
          <td class="paramname"> <em>env</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const axis2_bool_t&nbsp;</td>
          <td class="paramname"> <em>use_separate_listener</em></td><td>&nbsp;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td><td width="100%"></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
Sets the bool value indicating whether to use a separate listener or not. <dl compact><dt><b>Parameters:</b></dt><dd>
  <table border="0" cellspacing="2" cellpadding="0">
    <tr><td valign="top"></td><td valign="top"><em>options</em>&nbsp;</td><td>pointer to options struct </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>env</em>&nbsp;</td><td>pointer to environment struct </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>use_separate_listener</em>&nbsp;</td><td>bool value indicating whether to use a separate listener or not. </td></tr>
  </table>
</dl>
<dl class="return" compact><dt><b>Returns:</b></dt><dd>AXIS2_SUCCESS on success, else AXIS2_FAILURE </dd></dl>

</div>
</div><p>
<a class="anchor" name="gcb471f91a48af04d45ee124f341e98ba"></a><!-- doxytag: member="axis2_options.h::axis2_options_set_xml_parser_reset" ref="gcb471f91a48af04d45ee124f341e98ba" args="(axis2_options_t *options, const axutil_env_t *env, const axis2_bool_t paser_reset_flag)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">AXIS2_EXTERN axis2_status_t axis2_options_set_xml_parser_reset           </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="group__axis2__options.html#g26794bbdc46cdd3481c7e9079c0d6094">axis2_options_t</a> *&nbsp;</td>
          <td class="paramname"> <em>options</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const <a class="el" href="structaxutil__env.html">axutil_env_t</a> *&nbsp;</td>
          <td class="paramname"> <em>env</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const axis2_bool_t&nbsp;</td>
          <td class="paramname"> <em>paser_reset_flag</em></td><td>&nbsp;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td><td width="100%"></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
Sets xml parser reset <dl compact><dt><b>Parameters:</b></dt><dd>
  <table border="0" cellspacing="2" cellpadding="0">
    <tr><td valign="top"></td><td valign="top"><em>options</em>&nbsp;</td><td>pointer to options struct </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>env</em>&nbsp;</td><td>pointer to environment struct </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>reset</em>&nbsp;</td><td>flag is a boolean value </td></tr>
  </table>
</dl>
<dl class="return" compact><dt><b>Returns:</b></dt><dd>AXIS2_SUCCESS on success, else AXIS2_FAILURE </dd></dl>

</div>
</div><p>
<hr size="1"><address style="text-align: right;"><small>Generated on Fri Apr 17 11:49:45 2009 for Axis2/C by&nbsp;
<a href="http://www.doxygen.org/index.html">
<img src="doxygen.png" alt="doxygen" align="middle" border="0"></a> 1.5.3 </small></address>
</body>
</html>


<|start_filename|>util/src/stream.c<|end_filename|>
/*
 * 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.
 */

#include <string.h>
#include <stdlib.h>
#include <axutil_stream.h>
#include <platforms/axutil_platform_auto_sense.h>

/** basic stream operatons **/
int AXIS2_CALL axutil_stream_write_basic(
    axutil_stream_t *stream,
    const axutil_env_t *env,
    const void *buffer,
    size_t count);

int AXIS2_CALL axutil_stream_read_basic(
    axutil_stream_t *stream,
    const axutil_env_t *env,
    void *buffer,
    size_t count);

int AXIS2_CALL axutil_stream_skip_basic(
    axutil_stream_t *stream,
    const axutil_env_t *env,
    int count);

/** file stream operations **/
int AXIS2_CALL axutil_stream_write_file(
    axutil_stream_t *stream,
    const axutil_env_t *env,
    const void *buffer,
    size_t count);

int AXIS2_CALL axutil_stream_read_file(
    axutil_stream_t *stream,
    const axutil_env_t *env,
    void *buffer,
    size_t count);

int AXIS2_CALL axutil_stream_skip_file(
    axutil_stream_t *stream,
    const axutil_env_t *env,
    int count);

/** socket stream operations **/
int AXIS2_CALL axutil_stream_write_socket(
    axutil_stream_t *stream,
    const axutil_env_t *env,
    const void *buffer,
    size_t count);

int AXIS2_CALL axutil_stream_read_socket(
    axutil_stream_t *stream,
    const axutil_env_t *env,
    void *buffer,
    size_t count);

int AXIS2_CALL axutil_stream_skip_socket(
    axutil_stream_t *stream,
    const axutil_env_t *env,
    int count);

AXIS2_EXTERN axutil_stream_t *AXIS2_CALL
axutil_stream_create_internal(
    const axutil_env_t *env)
{
    axutil_stream_t *stream = NULL;
    AXIS2_ENV_CHECK(env, NULL);

    stream =
        (axutil_stream_t *) AXIS2_MALLOC(env->allocator,
                                         sizeof(axutil_stream_t));

    if (!stream)
    {
        AXIS2_ERROR_SET(env->error, AXIS2_ERROR_NO_MEMORY, AXIS2_FAILURE);
        AXIS2_LOG_ERROR(env->log, AXIS2_LOG_SI, "Out of memory");
        return NULL;
    }
    stream->buffer = NULL;
    stream->buffer_head = NULL;
    stream->fp = NULL;
    stream->socket = -1;
    stream->len = -1;
    stream->max_len = -1;
    stream->axis2_eof = EOF;

    return stream;
}

void AXIS2_CALL
axutil_stream_free(
    axutil_stream_t *stream,
    const axutil_env_t *env)
{
    AXIS2_ENV_CHECK(env, AXIS2_FAILURE);

    switch (stream->stream_type)
    {
    case AXIS2_STREAM_BASIC:
        {
            if (stream->buffer_head)
            {
                AXIS2_FREE(env->allocator, stream->buffer_head);
            }
            stream->buffer = NULL;
            stream->len = -1;
            break;
        }
    case AXIS2_STREAM_FILE:
        {
            stream->fp = NULL;
            stream->len = -1;
            break;
        }
    case AXIS2_STREAM_SOCKET:
        {
            if (stream->fp)
            {
                fclose(stream->fp);
            }
            stream->socket = -1;
            stream->len = -1;
            break;
        }
    default:
        break;
    }

    AXIS2_FREE(env->allocator, stream);

    return;
}

void AXIS2_CALL
axutil_stream_free_void_arg(
    void *stream,
    const axutil_env_t *env)
{
    axutil_stream_t *stream_l = NULL;

    stream_l = (axutil_stream_t *) stream;
    axutil_stream_free(stream_l, env);
    return;
}

AXIS2_EXTERN axis2_status_t AXIS2_CALL
axutil_stream_flush(
    axutil_stream_t *stream,
    const axutil_env_t *env)
{
    if (stream->fp)
    {
        if (fflush(stream->fp))
        {
            return AXIS2_FAILURE;
        }
    }
    return AXIS2_SUCCESS;
}

AXIS2_EXTERN axis2_status_t AXIS2_CALL
axutil_stream_close(
    axutil_stream_t *stream,
    const axutil_env_t *env)
{
    switch (stream->stream_type)
    {
    case AXIS2_STREAM_BASIC:
        {
            if (stream->buffer_head)
            {
                AXIS2_FREE(env->allocator, stream->buffer_head);
            }
            stream->buffer = NULL;
            stream->len = -1;
            break;
        }
    case AXIS2_STREAM_FILE:
        {
            if (stream->fp)
            {
                if (fclose(stream->fp))
                {
                    return AXIS2_FAILURE;
                }
            }
            stream->fp = NULL;
            stream->len = -1;
            break;
        }
    case AXIS2_STREAM_SOCKET:
        {
            if (stream->fp)
            {
                if (fclose(stream->fp))
                {
                    return AXIS2_FAILURE;
                }
            }
            stream->socket = -1;
            stream->len = -1;
            break;
        }
    default:
        break;
    }

    return AXIS2_SUCCESS;
}

/************************ Basic Stream Operations *****************************/
AXIS2_EXTERN axutil_stream_t *AXIS2_CALL
axutil_stream_create_basic(
    const axutil_env_t *env)
{
    axutil_stream_t *stream = NULL;

    AXIS2_ENV_CHECK(env, NULL);
    stream = axutil_stream_create_internal(env);
    if (!stream)
    {
        /*
         * We leave the error returned by the 
         * axutil_stream_create_internal intact
         */
        return NULL;
    }
    stream->stream_type = AXIS2_STREAM_BASIC;
    stream->read = axutil_stream_read_basic;
    stream->write = axutil_stream_write_basic;
    stream->skip = axutil_stream_skip_basic;
    stream->buffer =
        (axis2_char_t *) AXIS2_MALLOC(env->allocator,
                                      AXIS2_STREAM_DEFAULT_BUF_SIZE *
                                      sizeof(axis2_char_t));
    stream->buffer_head = stream->buffer;
    stream->len = 0;
    stream->max_len = AXIS2_STREAM_DEFAULT_BUF_SIZE;

    if (!stream->buffer)
    {
        axutil_stream_free(stream, env);
        return NULL;
    }
    return stream;
}

int AXIS2_CALL
axutil_stream_read_basic(
    axutil_stream_t *stream,
    const axutil_env_t *env,
    void *buffer,
    size_t count)
{
    int len = 0;
    char *buf = NULL;

    buf = stream->buffer;
    if (!buf)
    {
        return -1;
    }
    if (!buffer)
    {
        return -1;
    }
    if ((int)(count - 1) > stream->len)
    /* We are sure that the difference lies within the int range */
    {
        len = stream->len;
    }
    else
    {
        len = (int)(count - 1);
        /* We are sure that the difference lies within the int range */
    }
    memcpy(buffer, buf, len);
    /*
     * Finally we need to remove the read bytes from the stream
     * adjust the length of the stream.
     */
    stream->len -= len;
    stream->buffer = buf + len;
    ((axis2_char_t *) buffer)[len] = '\0';
    return len;
}

int AXIS2_CALL
axutil_stream_write_basic(
    axutil_stream_t *stream,
    const axutil_env_t *env,
    const void *buffer,
    size_t count)
{
    int new_len = 0;

    if (!buffer)
        return -1;

    new_len = (int)(stream->len + count);
    /* We are sure that the difference lies within the int range */
    if (new_len > stream->max_len)
    {
        axis2_char_t *tmp = (axis2_char_t *) AXIS2_MALLOC(env->allocator,
                                                          sizeof(axis2_char_t) *
                                                          (new_len +
                                                           AXIS2_STREAM_DEFAULT_BUF_SIZE));
        if (!tmp)
        {
            AXIS2_ERROR_SET(env->error, AXIS2_ERROR_NO_MEMORY, AXIS2_FAILURE);
            return -1;
        }
        /*
         * pre allocation: extra AXIS2_STREAM_DEFAULT_BUF_SIZE more bytes 
         * allocated 
         */
        stream->max_len = new_len + AXIS2_STREAM_DEFAULT_BUF_SIZE;
        memcpy(tmp, stream->buffer, sizeof(axis2_char_t) * stream->len);
        AXIS2_FREE(env->allocator, stream->buffer_head);
        stream->buffer = tmp;
        stream->buffer_head = tmp;
    }
    memcpy(stream->buffer + (stream->len * sizeof(axis2_char_t)), buffer,
           count);
    stream->len += (int)count;
    /* We are sure that the difference lies within the int range */
    return (int)count;
}

int AXIS2_CALL
axutil_stream_get_len(
    axutil_stream_t *stream,
    const axutil_env_t *env)
{
    return stream->len;
}

int AXIS2_CALL
axutil_stream_skip_basic(
    axutil_stream_t *stream,
    const axutil_env_t *env,
    int count)
{
    int del_len = 0;

    if (count > 0)
    {
        if (count <= stream->len)
        {
            del_len = count;
        }
        else
        {
            del_len = stream->len;
        }
        stream->len -= del_len;
        stream->buffer += del_len;
        return del_len;
    }
    return -1;
}

AXIS2_EXTERN axis2_char_t *AXIS2_CALL
axutil_stream_get_buffer(
    const axutil_stream_t *stream,
    const axutil_env_t *env)
{
    return stream->buffer;
}

AXIS2_EXTERN axis2_status_t AXIS2_CALL
axutil_stream_flush_buffer(
    axutil_stream_t *stream,
    const axutil_env_t *env)
{
    stream->len = 0;
    return AXIS2_SUCCESS;
}

/********************* End of Basic Stream Operations *************************/

/************************** File Stream Operations ****************************/
AXIS2_EXTERN axutil_stream_t *AXIS2_CALL
axutil_stream_create_file(
    const axutil_env_t *env,
    FILE * fp)
{
    axutil_stream_t *stream = NULL;

    AXIS2_ENV_CHECK(env, NULL);
    stream = axutil_stream_create_internal(env);
    if (!stream)
    {
        /*
         * We leave the error returned by the 
         * axutil_stream_create_internal intact
         */
        return NULL;
    }
    stream->stream_type = AXIS2_STREAM_FILE;
    stream->fp = fp;

    stream->read = axutil_stream_read_file;
    stream->write = axutil_stream_write_file;
    stream->skip = axutil_stream_skip_file;

    return stream;
}

int AXIS2_CALL
axutil_stream_read_file(
    axutil_stream_t *stream,
    const axutil_env_t *env,
    void *buffer,
    size_t count)
{
    FILE *fp = NULL;

    if (!stream->fp)
    {
        AXIS2_ERROR_SET(env->error, AXIS2_ERROR_INVALID_FD, AXIS2_FAILURE);
        AXIS2_LOG_ERROR(env->log, AXIS2_LOG_SI,
                        "Trying to do operation on invalid file descriptor");

        return -1;
    }
    fp = stream->fp;
    if (!buffer)
    {
        return -1;
    }
    return (int)fread(buffer, sizeof(axis2_char_t), count, fp);
    /* We are sure that the difference lies within the int range */
}

int AXIS2_CALL
axutil_stream_write_file(
    axutil_stream_t *stream,
    const axutil_env_t *env,
    const void *buffer,
    size_t count)
{
    int len = 0;
    FILE *fp = NULL;

    if (!(stream->fp))
    {
        AXIS2_ERROR_SET(env->error, AXIS2_ERROR_INVALID_FD, AXIS2_FAILURE);
        AXIS2_LOG_ERROR(env->log, AXIS2_LOG_SI,
                        "Trying to do operation on invalid file descriptor");

        return -1;
    }
    fp = stream->fp;
    if (!buffer)
        return -1;
    len = (int)fwrite(buffer, sizeof(axis2_char_t), count, fp);
    /* We are sure that the difference lies within the int range */
    return len;
}

int AXIS2_CALL
axutil_stream_skip_file(
    axutil_stream_t *stream,
    const axutil_env_t *env,
    int count)
{
    int c = -1;
    int i = count;
    if (!(stream->fp))
    {
        AXIS2_ERROR_SET(env->error, AXIS2_ERROR_INVALID_FD, AXIS2_FAILURE);
        AXIS2_LOG_ERROR(env->log, AXIS2_LOG_SI,
                        "Trying to do operation on invalid file descriptor");
        return -1;
    }
    while (EOF != (c = fgetc(stream->fp)) && i > 0)
    {
        i--;
    }
    return count - i;
}

/********************** End of File Stream Operations *************************/

/************************** Socket Stream Operations **************************/
AXIS2_EXTERN axutil_stream_t *AXIS2_CALL
axutil_stream_create_socket(
    const axutil_env_t *env,
    int socket)
{
    axutil_stream_t *stream = NULL;

    AXIS2_ENV_CHECK(env, NULL);
    stream = axutil_stream_create_internal(env);
    if (!stream)
    {
        /*
         * We leave the error returned by the 
         * axutil_stream_create_internal intact
         */
        return NULL;
    }

    stream->read = axutil_stream_read_socket;
    stream->write = axutil_stream_write_socket;
    stream->skip = axutil_stream_skip_socket;

    stream->stream_type = AXIS2_STREAM_SOCKET;
    stream->socket = socket;
    stream->fp = NULL;

    return stream;
}

int AXIS2_CALL
axutil_stream_read_socket(
    axutil_stream_t *stream,
    const axutil_env_t *env,
    void *buffer,
    size_t count)
{
    int len = 0;
#ifdef AXIS2_TCPMON
    axis2_char_t *temp = NULL;
#endif

    if (-1 == stream->socket)
    {
        AXIS2_ERROR_SET(env->error, AXIS2_ERROR_INVALID_SOCKET, AXIS2_FAILURE);
        AXIS2_LOG_ERROR(env->log, AXIS2_LOG_SI,
                        "Trying to do operation on closed/not-opened socket");
        return -1;
    }
    if (!buffer)
    {
        return -1;
    }

    len = (int)recv(stream->socket, buffer, (int)count, 0);
    /* We are sure that the difference lies within the int range */
#ifdef AXIS2_TCPMON
    if (len > 1)
    {
        temp =
            (axis2_char_t *) AXIS2_MALLOC(env->allocator,
                                          (len + 1) * sizeof(axis2_char_t));
        if (temp)
        {
            memcpy(temp, buffer, len * sizeof(axis2_char_t));
            temp[len] = '\0';
            fprintf(stderr, "%s", temp);
            AXIS2_FREE(env->allocator, temp);
        }
    }
#endif
    return len;
}

int AXIS2_CALL
axutil_stream_write_socket(
    axutil_stream_t *stream,
    const axutil_env_t *env,
    const void *buffer,
    size_t count)
{
    int len = 0;
#ifdef AXIS2_TCPMON
    axis2_char_t *temp = NULL;
#endif

    if (-1 == stream->socket)
    {
        AXIS2_ERROR_SET(env->error, AXIS2_ERROR_INVALID_SOCKET, AXIS2_FAILURE);
        AXIS2_LOG_ERROR(env->log, AXIS2_LOG_SI,
                        "Trying to do operation on closed/not-opened socket");
        return -1;
    }
    if (!buffer)
        return -1;
    len = (int)send(stream->socket, buffer, (int)count, 0);
    /* We are sure that the difference lies within the int range */
#ifdef AXIS2_TCPMON
    if (len > 0)
    {
        temp =
            (axis2_char_t *) AXIS2_MALLOC(env->allocator,
                                          (len + 1) * sizeof(axis2_char_t));
        if (temp)
        {
            memcpy(temp, buffer, len * sizeof(axis2_char_t));
            temp[len] = '\0';
            fprintf(stderr, "%s", temp);
            AXIS2_FREE(env->allocator, temp);
        }
    }
#endif
    return len;

}

int AXIS2_CALL
axutil_stream_skip_socket(
    axutil_stream_t *stream,
    const axutil_env_t *env,
    int count)
{
    int len = 0;
	int received = 0;
    char buffer[2];

    if (-1 == stream->socket)
    {
        AXIS2_ERROR_SET(env->error, AXIS2_ERROR_INVALID_SOCKET, AXIS2_FAILURE);
        AXIS2_LOG_ERROR(env->log, AXIS2_LOG_SI,
                        "Trying to do operation on closed/not-opened socket");
        return -1;
    }
    while (len < count)
    {
        received = recv(stream->socket, buffer, 1, 0);
		if (received == 0)
		{
			AXIS2_ERROR_SET(env->error, AXIS2_ERROR_SOCKET_ERROR, AXIS2_FAILURE);
			AXIS2_LOG_ERROR(env->log, AXIS2_LOG_SI,
                        "Socket has being shutdown");
			return -1;
		}
		if (received < 0)
		{
			AXIS2_ERROR_SET(env->error, AXIS2_ERROR_SOCKET_ERROR, AXIS2_FAILURE);
			AXIS2_LOG_ERROR(env->log, AXIS2_LOG_SI,
                        "Error while trying to read the socke");        
			return -1;
		}
		len += received;
    }
    return len;
}

AXIS2_EXTERN int AXIS2_CALL
axutil_stream_peek_socket(
    axutil_stream_t *stream,
    const axutil_env_t *env,
    void *buffer,
    size_t count)
{
    int len = 0;

    /* Added to prevent a segfault */
    AXIS2_PARAM_CHECK(env->error, stream, -1);

    if (-1 == stream->socket)
    {
        AXIS2_ERROR_SET(env->error, AXIS2_ERROR_INVALID_SOCKET, AXIS2_FAILURE);
        AXIS2_LOG_ERROR(env->log, AXIS2_LOG_SI,
                        "Trying to do operation on closed/not-opened socket");
        return -1;
    }
    if (!buffer)
    {
        return -1;
    }

    len = (int)recv(stream->socket, buffer, (int)count, MSG_PEEK);
    /* We are sure that the difference lies within the int range */

    return len;
}

/********************** End of Socket Stream Operations ***********************/

AXIS2_EXTERN axis2_status_t AXIS2_CALL
axutil_stream_set_read(
    axutil_stream_t *stream,
    const axutil_env_t *env,
    AXUTIL_STREAM_READ func)
{
    stream->read = func;
    return AXIS2_SUCCESS;
}

AXIS2_EXTERN axis2_status_t AXIS2_CALL
axutil_stream_set_write(
    axutil_stream_t *stream,
    const axutil_env_t *env,
    AXUTIL_STREAM_WRITE func)
{
    stream->write = func;
    return AXIS2_SUCCESS;
}

AXIS2_EXTERN axis2_status_t AXIS2_CALL
axutil_stream_set_skip(
    axutil_stream_t *stream,
    const axutil_env_t *env,
    AXUTIL_STREAM_SKIP func)
{
    stream->skip = func;
    return AXIS2_SUCCESS;
}

AXIS2_EXTERN int AXIS2_CALL
axutil_stream_read(
    axutil_stream_t *stream,
    const axutil_env_t *env,
    void *buffer,
    size_t count)
{
    return stream->read(stream, env, buffer, count);
}

AXIS2_EXTERN int AXIS2_CALL
axutil_stream_write(
    axutil_stream_t *stream,
    const axutil_env_t *env,
    const void *buffer,
    size_t count)
{
    return stream->write(stream, env, buffer, count);
}

AXIS2_EXTERN int AXIS2_CALL
axutil_stream_skip(
    axutil_stream_t *stream,
    const axutil_env_t *env,
    int count)
{
    return stream->skip(stream, env, count);
}


<|start_filename|>src/core/transport/amqp/receiver/axis2_amqp_receiver.c<|end_filename|>
/*
* 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.
*/

#include <axis2_amqp_util.h>
#include <axis2_amqp_defines.h>
#include <axis2_amqp_receiver.h>

static const axis2_transport_receiver_ops_t amqp_receiver_ops = {
    axis2_amqp_receiver_init,
    axis2_amqp_receiver_start,
    axis2_amqp_receiver_get_reply_to_epr,
    axis2_amqp_receiver_get_conf_ctx,
    axis2_amqp_receiver_is_running,
    axis2_amqp_receiver_stop,
    axis2_amqp_receiver_free};


AXIS2_EXTERN axis2_transport_receiver_t* AXIS2_CALL
axis2_amqp_receiver_create(
	const axutil_env_t* env,
	const axis2_char_t* repo,
	const axis2_char_t* qpid_broker_ip,
	int qpid_broker_port)
{
    AXIS2_ENV_CHECK (env, NULL);
    
	axis2_amqp_receiver_resource_pack_t* receiver_resource_pack = NULL;

    receiver_resource_pack = (axis2_amqp_receiver_resource_pack_t*)
							  AXIS2_MALLOC(env->allocator, 
									  	   sizeof(axis2_amqp_receiver_resource_pack_t));

    if (!receiver_resource_pack)
    {
        AXIS2_ERROR_SET(env->error, AXIS2_ERROR_NO_MEMORY, AXIS2_FAILURE);
        return NULL;
    }

    receiver_resource_pack->receiver.ops = &amqp_receiver_ops;
    receiver_resource_pack->qpid_receiver = NULL;
    receiver_resource_pack->conf_ctx = NULL;
    receiver_resource_pack->conf_ctx_private = NULL;

	if (repo)
    {
        /**
         * 1. We first create a private conf ctx which is owned by this server
         * 	  we only free this private conf context. We should never free the
         *    receiver_impl->conf_ctx because it may be owned by any other object which
         *    may lead to double free.
		 *
		 * 2. The Qpid broker IP and port are set in conf_ctx at two different places.
		 * 	  If the repo is specified, they are set here. Otherwise, they are set
		 * 	  in axis2_amqp_receiver_init method.
         */
		axutil_property_t* property = NULL;
		const axis2_char_t* broker_ip = NULL;
		int* broker_port = (int*)AXIS2_MALLOC(env->allocator, sizeof(int));
		*broker_port = AXIS2_QPID_NULL_CONF_INT;

        receiver_resource_pack->conf_ctx_private = axis2_build_conf_ctx(env, repo);
        if (!receiver_resource_pack->conf_ctx_private)
        {
            axis2_amqp_receiver_free((axis2_transport_receiver_t *)receiver_resource_pack, env);
            return NULL;
        }

		/* Set broker IP */
		broker_ip = qpid_broker_ip ? qpid_broker_ip : AXIS2_QPID_DEFAULT_BROKER_IP;
		property = axutil_property_create_with_args(env, AXIS2_SCOPE_APPLICATION, 0, 0, (void*)broker_ip);
		axis2_conf_ctx_set_property(receiver_resource_pack->conf_ctx_private, env, 
				AXIS2_AMQP_CONF_CTX_PROPERTY_BROKER_IP, property);

		/* Set broker port */
    	*broker_port = (qpid_broker_port != AXIS2_QPID_NULL_CONF_INT) ? 
			qpid_broker_port : AXIS2_QPID_DEFAULT_BROKER_PORT;
		property = axutil_property_create_with_args(env, AXIS2_SCOPE_APPLICATION, 0, 0, (void*)broker_port);
		axis2_conf_ctx_set_property(receiver_resource_pack->conf_ctx_private, env,
				AXIS2_AMQP_CONF_CTX_PROPERTY_BROKER_PORT, property);

        receiver_resource_pack->conf_ctx = receiver_resource_pack->conf_ctx_private;
    }

    return &(receiver_resource_pack->receiver);
}


AXIS2_EXTERN axis2_status_t AXIS2_CALL 
axis2_amqp_receiver_init(
	axis2_transport_receiver_t* receiver,
	const axutil_env_t* env,
	axis2_conf_ctx_t* conf_ctx,
	axis2_transport_in_desc_t* in_desc)
{
	axis2_amqp_receiver_resource_pack_t* receiver_resource_pack = NULL;
	axutil_property_t* property = NULL;
	const axis2_char_t* broker_ip = NULL;
	int* broker_port = (int*)AXIS2_MALLOC(env->allocator, sizeof(int));
	*broker_port = AXIS2_QPID_NULL_CONF_INT;

	AXIS2_ENV_CHECK(env, AXIS2_FAILURE);

	receiver_resource_pack = AXIS2_AMQP_RECEIVER_TO_RESOURCE_PACK(receiver);
	receiver_resource_pack->conf_ctx = conf_ctx;
	
	/* Set broker IP */
	broker_ip = axis2_amqp_util_get_in_desc_conf_value_string(
			in_desc, env, AXIS2_AMQP_CONF_QPID_BROKER_IP); 
	if (!broker_ip)
	{
		broker_ip = AXIS2_QPID_DEFAULT_BROKER_IP;
	}
	property = axutil_property_create_with_args(
			env, AXIS2_SCOPE_APPLICATION, 0, 0, (void*)broker_ip);
	axis2_conf_ctx_set_property(receiver_resource_pack->conf_ctx, env, 
			AXIS2_AMQP_CONF_CTX_PROPERTY_BROKER_IP, property);

	/* Set broker port */
	*broker_port = axis2_amqp_util_get_in_desc_conf_value_int(
			in_desc, env, AXIS2_AMQP_CONF_QPID_BROKER_PORT);
    if (*broker_port == AXIS2_QPID_NULL_CONF_INT)
	{
		*broker_port = AXIS2_QPID_DEFAULT_BROKER_PORT;
	}
	property = axutil_property_create_with_args(
			env, AXIS2_SCOPE_APPLICATION, 0, 0, (void*)broker_port);
	axis2_conf_ctx_set_property(receiver_resource_pack->conf_ctx, env,
			AXIS2_AMQP_CONF_CTX_PROPERTY_BROKER_PORT, property);
	
	return AXIS2_SUCCESS;
}


AXIS2_EXTERN axis2_status_t AXIS2_CALL 
axis2_amqp_receiver_start(
	axis2_transport_receiver_t* receiver,
	const axutil_env_t* env)
{
	AXIS2_ENV_CHECK(env, AXIS2_FAILURE);

	axis2_status_t status = AXIS2_FAILURE;

	axis2_amqp_receiver_resource_pack_t* amqp_receiver_resource_pack = NULL;
	axis2_qpid_receiver_resource_pack_t* qpid_receiver_resource_pack = NULL;
	
	amqp_receiver_resource_pack = AXIS2_AMQP_RECEIVER_TO_RESOURCE_PACK(receiver);

	/* Create Qpid Receiver */
	qpid_receiver_resource_pack = axis2_qpid_receiver_create(env,
															 amqp_receiver_resource_pack->conf_ctx);

	if (qpid_receiver_resource_pack)
	{
		amqp_receiver_resource_pack->qpid_receiver = qpid_receiver_resource_pack;

		status = axis2_qpid_receiver_start(qpid_receiver_resource_pack, env);
	}

	return status;
}


AXIS2_EXTERN axis2_endpoint_ref_t* AXIS2_CALL 
axis2_amqp_receiver_get_reply_to_epr(
	axis2_transport_receiver_t* receiver,
	const axutil_env_t* env,
	const axis2_char_t* svc_name)
{
	return NULL;
}


AXIS2_EXTERN axis2_conf_ctx_t* AXIS2_CALL 
axis2_amqp_receiver_get_conf_ctx(
	axis2_transport_receiver_t* receiver,
	const axutil_env_t* env)
{
	AXIS2_ENV_CHECK(env, NULL);

	return AXIS2_AMQP_RECEIVER_TO_RESOURCE_PACK(receiver)->conf_ctx;
}


AXIS2_EXTERN axis2_bool_t AXIS2_CALL 
axis2_amqp_receiver_is_running(
	axis2_transport_receiver_t* receiver,
	const axutil_env_t* env)
{
	return AXIS2_TRUE;
}


AXIS2_EXTERN axis2_status_t AXIS2_CALL 
axis2_amqp_receiver_stop(
	axis2_transport_receiver_t* receiver,
	const axutil_env_t* env)
{
	return AXIS2_SUCCESS;
}


AXIS2_EXTERN void AXIS2_CALL 
axis2_amqp_receiver_free(
	axis2_transport_receiver_t* receiver,
	const axutil_env_t* env)
{
	AXIS2_ENV_CHECK(env, void);

	axis2_amqp_receiver_resource_pack_t* receiver_resource_pack = NULL;
    receiver_resource_pack = AXIS2_AMQP_RECEIVER_TO_RESOURCE_PACK(receiver);
    
	if (receiver_resource_pack->qpid_receiver)
    {
        axis2_qpid_receiver_free(receiver_resource_pack->qpid_receiver, env);
        receiver_resource_pack->qpid_receiver = NULL;
    }

    if (receiver_resource_pack->conf_ctx_private)
    {
        axis2_conf_ctx_free(receiver_resource_pack->conf_ctx_private, env);
        receiver_resource_pack->conf_ctx_private = NULL;
    }

    receiver_resource_pack->conf_ctx = NULL; /* Do not free this. It may be owned by some other object */
  
	AXIS2_FREE(env->allocator, receiver_resource_pack);
}


/* Library Exports */

AXIS2_EXPORT int
#ifndef AXIS2_STATIC_DEPLOY
axis2_get_instance(
#else
axis2_amqp_receiver_get_instance(
#endif
	struct axis2_transport_receiver** inst,
	const axutil_env_t* env)
{
	int status = AXIS2_SUCCESS;

	*inst = axis2_amqp_receiver_create(env, NULL, NULL, AXIS2_QPID_NULL_CONF_INT);
	if (!(*inst))
	{
		status = AXIS2_FAILURE;
	}

	return status;
}


AXIS2_EXPORT int
#ifndef AXIS2_STATIC_DEPLOY
axis2_remove_instance(
#else
axis2_amqp_receiver_remove_instance(
#endif
	axis2_transport_receiver_t* inst,
	const axutil_env_t* env)
{
	if (inst)
	{
		axis2_transport_receiver_free(inst, env);
	}
	
	return AXIS2_SUCCESS;
}


<|start_filename|>xdocs/api/html/group__axutil__stream.html<|end_filename|>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html><head><meta http-equiv="Content-Type" content="text/html;charset=UTF-8">
<title>Axis2/C: stream</title>
<link href="doxygen.css" rel="stylesheet" type="text/css">
<link href="tabs.css" rel="stylesheet" type="text/css">
</head><body>
<!-- Generated by Doxygen 1.5.3 -->
<div class="tabs">
  <ul>
    <li><a href="index.html"><span>Main&nbsp;Page</span></a></li>
    <li><a href="modules.html"><span>Modules</span></a></li>
    <li><a href="annotated.html"><span>Classes</span></a></li>
    <li><a href="files.html"><span>Files</span></a></li>
    <li><a href="dirs.html"><span>Directories</span></a></li>
    <li><a href="pages.html"><span>Related&nbsp;Pages</span></a></li>
    <li><a href="examples.html"><span>Examples</span></a></li>
    <li>
      <form action="search.php" method="get">
        <table cellspacing="0" cellpadding="0" border="0">
          <tr>
            <td><label>&nbsp;<u>S</u>earch&nbsp;for&nbsp;</label></td>
            <td><input type="text" name="query" value="" size="20" accesskey="s"/></td>
          </tr>
        </table>
      </form>
    </li>
  </ul>
</div>
<h1>stream<br>
<small>
[<a class="el" href="group__axis2__util.html">utilities</a>]</small>
</h1><table border="0" cellpadding="0" cellspacing="0">
<tr><td></td></tr>
<tr><td colspan="2"><br><h2>Classes</h2></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top">struct &nbsp;</td><td class="memItemRight" valign="bottom"><b>axutil_stream</b></td></tr>

<tr><td colspan="2"><br><h2>Typedefs</h2></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="ga0eb15ae916c41040bcb3525527b474a"></a><!-- doxytag: member="axutil_stream::axutil_stream_type_t" ref="ga0eb15ae916c41040bcb3525527b474a" args="" -->
typedef enum <br>
<a class="el" href="group__axutil__stream.html#g8646e3e161857a70ec20d7e85bfb6cf4">axutil_stream_type</a>&nbsp;</td><td class="memItemRight" valign="bottom"><b>axutil_stream_type_t</b></td></tr>

<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="g70a7c590d98289bc5424dd7ef50ec797"></a><!-- doxytag: member="axutil_stream::axutil_stream_t" ref="g70a7c590d98289bc5424dd7ef50ec797" args="" -->
typedef struct <br>
axutil_stream&nbsp;</td><td class="memItemRight" valign="bottom"><b>axutil_stream_t</b></td></tr>

<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="g1824c88043f979af6234d114dad75343"></a><!-- doxytag: member="axutil_stream::AXUTIL_STREAM_READ" ref="g1824c88043f979af6234d114dad75343" args=")(axutil_stream_t *stream, const axutil_env_t *env, void *buffer, size_t count)" -->
typedef int(*&nbsp;</td><td class="memItemRight" valign="bottom"><b>AXUTIL_STREAM_READ</b> )(axutil_stream_t *stream, const <a class="el" href="structaxutil__env.html">axutil_env_t</a> *env, void *buffer, size_t count)</td></tr>

<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="g97c45523dc792211cdccafcfbf61cbb4"></a><!-- doxytag: member="axutil_stream::AXUTIL_STREAM_WRITE" ref="g97c45523dc792211cdccafcfbf61cbb4" args=")(axutil_stream_t *stream, const axutil_env_t *env, const void *buffer, size_t count)" -->
typedef int(*&nbsp;</td><td class="memItemRight" valign="bottom"><b>AXUTIL_STREAM_WRITE</b> )(axutil_stream_t *stream, const <a class="el" href="structaxutil__env.html">axutil_env_t</a> *env, const void *buffer, size_t count)</td></tr>

<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="gb35a064efb3ec7962b8bc225f5d9ec6e"></a><!-- doxytag: member="axutil_stream::AXUTIL_STREAM_SKIP" ref="gb35a064efb3ec7962b8bc225f5d9ec6e" args=")(axutil_stream_t *stream, const axutil_env_t *env, int count)" -->
typedef int(*&nbsp;</td><td class="memItemRight" valign="bottom"><b>AXUTIL_STREAM_SKIP</b> )(axutil_stream_t *stream, const <a class="el" href="structaxutil__env.html">axutil_env_t</a> *env, int count)</td></tr>

<tr><td colspan="2"><br><h2>Enumerations</h2></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top">enum &nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__axutil__stream.html#g8646e3e161857a70ec20d7e85bfb6cf4">axutil_stream_type</a> { <b>AXIS2_STREAM_BASIC</b> =  0, 
<b>AXIS2_STREAM_FILE</b>, 
<b>AXIS2_STREAM_SOCKET</b>, 
<b>AXIS2_STREAM_MANAGED</b>
 }</td></tr>

<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Axis2 stream types.  <a href="group__axutil__stream.html#g8646e3e161857a70ec20d7e85bfb6cf4">More...</a><br></td></tr>
<tr><td colspan="2"><br><h2>Functions</h2></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top">AXIS2_EXTERN void&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__axutil__stream.html#gd327ed3142060fe3ccaae3bdc74af6b5">axutil_stream_free</a> (axutil_stream_t *stream, const <a class="el" href="structaxutil__env.html">axutil_env_t</a> *env)</td></tr>

<tr><td class="memItemLeft" nowrap align="right" valign="top">AXIS2_EXTERN void&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__axutil__stream.html#g35645c14df7fdd3c4d61b381a543f9ed">axutil_stream_free_void_arg</a> (void *stream, const <a class="el" href="structaxutil__env.html">axutil_env_t</a> *env)</td></tr>

<tr><td class="memItemLeft" nowrap align="right" valign="top">AXIS2_EXTERN int&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__axutil__stream.html#g50c7a90bb8fd3b6d3655c50e82120a0b">axutil_stream_read</a> (axutil_stream_t *stream, const <a class="el" href="structaxutil__env.html">axutil_env_t</a> *env, void *buffer, size_t count)</td></tr>

<tr><td class="memItemLeft" nowrap align="right" valign="top">AXIS2_EXTERN int&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__axutil__stream.html#g535e43c801c4c0531429c580e96846b6">axutil_stream_write</a> (axutil_stream_t *stream, const <a class="el" href="structaxutil__env.html">axutil_env_t</a> *env, const void *buffer, size_t count)</td></tr>

<tr><td class="memItemLeft" nowrap align="right" valign="top">AXIS2_EXTERN int&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__axutil__stream.html#g0fbee1c75bbcf404dc9a58366ab1d1b7">axutil_stream_skip</a> (axutil_stream_t *stream, const <a class="el" href="structaxutil__env.html">axutil_env_t</a> *env, int count)</td></tr>

<tr><td class="memItemLeft" nowrap align="right" valign="top">AXIS2_EXTERN int&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__axutil__stream.html#g614ce1d0378d9e899d65e738dfe05e09">axutil_stream_get_len</a> (axutil_stream_t *stream, const <a class="el" href="structaxutil__env.html">axutil_env_t</a> *env)</td></tr>

<tr><td class="memItemLeft" nowrap align="right" valign="top">AXIS2_EXTERN <br>
axutil_stream_t *&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__axutil__stream.html#g0eaf7a2ca366ab5e01ce5d71072f8702">axutil_stream_create_basic</a> (const <a class="el" href="structaxutil__env.html">axutil_env_t</a> *env)</td></tr>

<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Constructor for creating an in memory stream.  <a href="#g0eaf7a2ca366ab5e01ce5d71072f8702"></a><br></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top">AXIS2_EXTERN <br>
axutil_stream_t *&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__axutil__stream.html#g1c531cc65e9cf1a2f652795d5846ff1f">axutil_stream_create_file</a> (const <a class="el" href="structaxutil__env.html">axutil_env_t</a> *env, FILE *fp)</td></tr>

<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Constructor for creating a file stream.  <a href="#g1c531cc65e9cf1a2f652795d5846ff1f"></a><br></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top">AXIS2_EXTERN <br>
axutil_stream_t *&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__axutil__stream.html#g86be0e77c1793480716cd0de34e8fe6b">axutil_stream_create_socket</a> (const <a class="el" href="structaxutil__env.html">axutil_env_t</a> *env, int socket)</td></tr>

<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Constructor for creating a file stream.  <a href="#g86be0e77c1793480716cd0de34e8fe6b"></a><br></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top">AXIS2_EXTERN <br>
axis2_char_t *&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__axutil__stream.html#gb95c687ddd6d6b1a4d3dd37ca3e00a34">axutil_stream_get_buffer</a> (const axutil_stream_t *stream, const <a class="el" href="structaxutil__env.html">axutil_env_t</a> *env)</td></tr>

<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="g3a61760fb34a0757eb9189c12b09b548"></a><!-- doxytag: member="axutil_stream::axutil_stream_flush_buffer" ref="g3a61760fb34a0757eb9189c12b09b548" args="(axutil_stream_t *stream, const axutil_env_t *env)" -->
AXIS2_EXTERN <br>
axis2_status_t&nbsp;</td><td class="memItemRight" valign="bottom"><b>axutil_stream_flush_buffer</b> (axutil_stream_t *stream, const <a class="el" href="structaxutil__env.html">axutil_env_t</a> *env)</td></tr>

<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="g30497ea005593e5bb0e43ca5ecddd84a"></a><!-- doxytag: member="axutil_stream::axutil_stream_peek_socket" ref="g30497ea005593e5bb0e43ca5ecddd84a" args="(axutil_stream_t *stream, const axutil_env_t *env, void *buffer, size_t count)" -->
AXIS2_EXTERN int&nbsp;</td><td class="memItemRight" valign="bottom"><b>axutil_stream_peek_socket</b> (axutil_stream_t *stream, const <a class="el" href="structaxutil__env.html">axutil_env_t</a> *env, void *buffer, size_t count)</td></tr>

<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="g59565fe2351e9ac672d0a669a1f49138"></a><!-- doxytag: member="axutil_stream::axutil_stream_flush" ref="g59565fe2351e9ac672d0a669a1f49138" args="(axutil_stream_t *stream, const axutil_env_t *env)" -->
AXIS2_EXTERN <br>
axis2_status_t&nbsp;</td><td class="memItemRight" valign="bottom"><b>axutil_stream_flush</b> (axutil_stream_t *stream, const <a class="el" href="structaxutil__env.html">axutil_env_t</a> *env)</td></tr>

<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="ga07a32f5cfba4129e4fbe856c6460baf"></a><!-- doxytag: member="axutil_stream::axutil_stream_close" ref="ga07a32f5cfba4129e4fbe856c6460baf" args="(axutil_stream_t *stream, const axutil_env_t *env)" -->
AXIS2_EXTERN <br>
axis2_status_t&nbsp;</td><td class="memItemRight" valign="bottom"><b>axutil_stream_close</b> (axutil_stream_t *stream, const <a class="el" href="structaxutil__env.html">axutil_env_t</a> *env)</td></tr>

<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="g19ba77c09c2185f1e5d732dbc578bfda"></a><!-- doxytag: member="axutil_stream::axutil_stream_set_read" ref="g19ba77c09c2185f1e5d732dbc578bfda" args="(axutil_stream_t *stream, const axutil_env_t *env, AXUTIL_STREAM_READ func)" -->
AXIS2_EXTERN <br>
axis2_status_t&nbsp;</td><td class="memItemRight" valign="bottom"><b>axutil_stream_set_read</b> (axutil_stream_t *stream, const <a class="el" href="structaxutil__env.html">axutil_env_t</a> *env, AXUTIL_STREAM_READ func)</td></tr>

<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="g62f7fcaec850dd761a8ff587a7f4005f"></a><!-- doxytag: member="axutil_stream::axutil_stream_set_write" ref="g62f7fcaec850dd761a8ff587a7f4005f" args="(axutil_stream_t *stream, const axutil_env_t *env, AXUTIL_STREAM_WRITE func)" -->
AXIS2_EXTERN <br>
axis2_status_t&nbsp;</td><td class="memItemRight" valign="bottom"><b>axutil_stream_set_write</b> (axutil_stream_t *stream, const <a class="el" href="structaxutil__env.html">axutil_env_t</a> *env, AXUTIL_STREAM_WRITE func)</td></tr>

<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="g4f950f4757470df7781a2d2c6075dd30"></a><!-- doxytag: member="axutil_stream::axutil_stream_set_skip" ref="g4f950f4757470df7781a2d2c6075dd30" args="(axutil_stream_t *stream, const axutil_env_t *env, AXUTIL_STREAM_SKIP func)" -->
AXIS2_EXTERN <br>
axis2_status_t&nbsp;</td><td class="memItemRight" valign="bottom"><b>axutil_stream_set_skip</b> (axutil_stream_t *stream, const <a class="el" href="structaxutil__env.html">axutil_env_t</a> *env, AXUTIL_STREAM_SKIP func)</td></tr>

</table>
<hr><h2>Enumeration Type Documentation</h2>
<a class="anchor" name="g8646e3e161857a70ec20d7e85bfb6cf4"></a><!-- doxytag: member="axutil_stream.h::axutil_stream_type" ref="g8646e3e161857a70ec20d7e85bfb6cf4" args="" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">enum <a class="el" href="group__axutil__stream.html#g8646e3e161857a70ec20d7e85bfb6cf4">axutil_stream_type</a>          </td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
Axis2 stream types. 
<p>
This is used to create a stream to correspond to particular i/o mtd 
</div>
</div><p>
<hr><h2>Function Documentation</h2>
<a class="anchor" name="g0eaf7a2ca366ab5e01ce5d71072f8702"></a><!-- doxytag: member="axutil_stream.h::axutil_stream_create_basic" ref="g0eaf7a2ca366ab5e01ce5d71072f8702" args="(const axutil_env_t *env)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">AXIS2_EXTERN axutil_stream_t* axutil_stream_create_basic           </td>
          <td>(</td>
          <td class="paramtype">const <a class="el" href="structaxutil__env.html">axutil_env_t</a> *&nbsp;</td>
          <td class="paramname"> <em>env</em>          </td>
          <td>&nbsp;)&nbsp;</td>
          <td width="100%"></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
Constructor for creating an in memory stream. 
<p>
<dl class="return" compact><dt><b>Returns:</b></dt><dd>axutil_stream (in memory) </dd></dl>

</div>
</div><p>
<a class="anchor" name="g1c531cc65e9cf1a2f652795d5846ff1f"></a><!-- doxytag: member="axutil_stream.h::axutil_stream_create_file" ref="g1c531cc65e9cf1a2f652795d5846ff1f" args="(const axutil_env_t *env, FILE *fp)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">AXIS2_EXTERN axutil_stream_t* axutil_stream_create_file           </td>
          <td>(</td>
          <td class="paramtype">const <a class="el" href="structaxutil__env.html">axutil_env_t</a> *&nbsp;</td>
          <td class="paramname"> <em>env</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">FILE *&nbsp;</td>
          <td class="paramname"> <em>fp</em></td><td>&nbsp;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td><td width="100%"></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
Constructor for creating a file stream. 
<p>
<dl compact><dt><b>Parameters:</b></dt><dd>
  <table border="0" cellspacing="2" cellpadding="0">
    <tr><td valign="top"></td><td valign="top"><em>valid</em>&nbsp;</td><td>file pointer (opened file) </td></tr>
  </table>
</dl>
<dl class="return" compact><dt><b>Returns:</b></dt><dd>axutil_stream (file) </dd></dl>

</div>
</div><p>
<a class="anchor" name="g86be0e77c1793480716cd0de34e8fe6b"></a><!-- doxytag: member="axutil_stream.h::axutil_stream_create_socket" ref="g86be0e77c1793480716cd0de34e8fe6b" args="(const axutil_env_t *env, int socket)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">AXIS2_EXTERN axutil_stream_t* axutil_stream_create_socket           </td>
          <td>(</td>
          <td class="paramtype">const <a class="el" href="structaxutil__env.html">axutil_env_t</a> *&nbsp;</td>
          <td class="paramname"> <em>env</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">int&nbsp;</td>
          <td class="paramname"> <em>socket</em></td><td>&nbsp;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td><td width="100%"></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
Constructor for creating a file stream. 
<p>
<dl compact><dt><b>Parameters:</b></dt><dd>
  <table border="0" cellspacing="2" cellpadding="0">
    <tr><td valign="top"></td><td valign="top"><em>valid</em>&nbsp;</td><td>socket (opened socket) </td></tr>
  </table>
</dl>
<dl class="return" compact><dt><b>Returns:</b></dt><dd>axutil_stream (socket) </dd></dl>

</div>
</div><p>
<a class="anchor" name="gd327ed3142060fe3ccaae3bdc74af6b5"></a><!-- doxytag: member="axutil_stream.h::axutil_stream_free" ref="gd327ed3142060fe3ccaae3bdc74af6b5" args="(axutil_stream_t *stream, const axutil_env_t *env)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">AXIS2_EXTERN void axutil_stream_free           </td>
          <td>(</td>
          <td class="paramtype">axutil_stream_t *&nbsp;</td>
          <td class="paramname"> <em>stream</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const <a class="el" href="structaxutil__env.html">axutil_env_t</a> *&nbsp;</td>
          <td class="paramname"> <em>env</em></td><td>&nbsp;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td><td width="100%"></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
Deletes the stream <dl class="return" compact><dt><b>Returns:</b></dt><dd>axis2_status_t AXIS2_SUCCESS on success else AXIS2_FAILURE</dd></dl>
Free stream 
</div>
</div><p>
<a class="anchor" name="g35645c14df7fdd3c4d61b381a543f9ed"></a><!-- doxytag: member="axutil_stream.h::axutil_stream_free_void_arg" ref="g35645c14df7fdd3c4d61b381a543f9ed" args="(void *stream, const axutil_env_t *env)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">AXIS2_EXTERN void axutil_stream_free_void_arg           </td>
          <td>(</td>
          <td class="paramtype">void *&nbsp;</td>
          <td class="paramname"> <em>stream</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const <a class="el" href="structaxutil__env.html">axutil_env_t</a> *&nbsp;</td>
          <td class="paramname"> <em>env</em></td><td>&nbsp;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td><td width="100%"></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
Free stream passed as void pointer. This will be cast into appropriate type and then pass the cast object into the module_desc structure's free method 
</div>
</div><p>
<a class="anchor" name="gb95c687ddd6d6b1a4d3dd37ca3e00a34"></a><!-- doxytag: member="axutil_stream.h::axutil_stream_get_buffer" ref="gb95c687ddd6d6b1a4d3dd37ca3e00a34" args="(const axutil_stream_t *stream, const axutil_env_t *env)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">AXIS2_EXTERN axis2_char_t* axutil_stream_get_buffer           </td>
          <td>(</td>
          <td class="paramtype">const axutil_stream_t *&nbsp;</td>
          <td class="paramname"> <em>stream</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const <a class="el" href="structaxutil__env.html">axutil_env_t</a> *&nbsp;</td>
          <td class="paramname"> <em>env</em></td><td>&nbsp;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td><td width="100%"></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
Gets the buffer 
</div>
</div><p>
<a class="anchor" name="g614ce1d0378d9e899d65e738dfe05e09"></a><!-- doxytag: member="axutil_stream.h::axutil_stream_get_len" ref="g614ce1d0378d9e899d65e738dfe05e09" args="(axutil_stream_t *stream, const axutil_env_t *env)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">AXIS2_EXTERN int axutil_stream_get_len           </td>
          <td>(</td>
          <td class="paramtype">axutil_stream_t *&nbsp;</td>
          <td class="paramname"> <em>stream</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const <a class="el" href="structaxutil__env.html">axutil_env_t</a> *&nbsp;</td>
          <td class="paramname"> <em>env</em></td><td>&nbsp;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td><td width="100%"></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
Returns the length of the stream (applicable only to basic stream) <dl class="return" compact><dt><b>Returns:</b></dt><dd>Length of the buffer if its type is basic, else -1 (we can't define a length of a stream unless it is just a buffer) </dd></dl>

</div>
</div><p>
<a class="anchor" name="g50c7a90bb8fd3b6d3655c50e82120a0b"></a><!-- doxytag: member="axutil_stream.h::axutil_stream_read" ref="g50c7a90bb8fd3b6d3655c50e82120a0b" args="(axutil_stream_t *stream, const axutil_env_t *env, void *buffer, size_t count)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">AXIS2_EXTERN int axutil_stream_read           </td>
          <td>(</td>
          <td class="paramtype">axutil_stream_t *&nbsp;</td>
          <td class="paramname"> <em>stream</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const <a class="el" href="structaxutil__env.html">axutil_env_t</a> *&nbsp;</td>
          <td class="paramname"> <em>env</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">void *&nbsp;</td>
          <td class="paramname"> <em>buffer</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">size_t&nbsp;</td>
          <td class="paramname"> <em>count</em></td><td>&nbsp;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td><td width="100%"></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
reads from stream <dl compact><dt><b>Parameters:</b></dt><dd>
  <table border="0" cellspacing="2" cellpadding="0">
    <tr><td valign="top"></td><td valign="top"><em>buffer</em>&nbsp;</td><td>buffer into which the content is to be read </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>count</em>&nbsp;</td><td>size of the buffer </td></tr>
  </table>
</dl>
<dl class="return" compact><dt><b>Returns:</b></dt><dd>no: of bytes read </dd></dl>

</div>
</div><p>
<a class="anchor" name="g0fbee1c75bbcf404dc9a58366ab1d1b7"></a><!-- doxytag: member="axutil_stream.h::axutil_stream_skip" ref="g0fbee1c75bbcf404dc9a58366ab1d1b7" args="(axutil_stream_t *stream, const axutil_env_t *env, int count)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">AXIS2_EXTERN int axutil_stream_skip           </td>
          <td>(</td>
          <td class="paramtype">axutil_stream_t *&nbsp;</td>
          <td class="paramname"> <em>stream</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const <a class="el" href="structaxutil__env.html">axutil_env_t</a> *&nbsp;</td>
          <td class="paramname"> <em>env</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">int&nbsp;</td>
          <td class="paramname"> <em>count</em></td><td>&nbsp;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td><td width="100%"></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
Skips over and discards n bytes of data from this input stream. <dl compact><dt><b>Parameters:</b></dt><dd>
  <table border="0" cellspacing="2" cellpadding="0">
    <tr><td valign="top"></td><td valign="top"><em>count</em>&nbsp;</td><td>number of bytes to be discarded </td></tr>
  </table>
</dl>
<dl class="return" compact><dt><b>Returns:</b></dt><dd>no: of bytes actually skipped </dd></dl>

</div>
</div><p>
<a class="anchor" name="g535e43c801c4c0531429c580e96846b6"></a><!-- doxytag: member="axutil_stream.h::axutil_stream_write" ref="g535e43c801c4c0531429c580e96846b6" args="(axutil_stream_t *stream, const axutil_env_t *env, const void *buffer, size_t count)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">AXIS2_EXTERN int axutil_stream_write           </td>
          <td>(</td>
          <td class="paramtype">axutil_stream_t *&nbsp;</td>
          <td class="paramname"> <em>stream</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const <a class="el" href="structaxutil__env.html">axutil_env_t</a> *&nbsp;</td>
          <td class="paramname"> <em>env</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const void *&nbsp;</td>
          <td class="paramname"> <em>buffer</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">size_t&nbsp;</td>
          <td class="paramname"> <em>count</em></td><td>&nbsp;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td><td width="100%"></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
writes into stream <dl compact><dt><b>Parameters:</b></dt><dd>
  <table border="0" cellspacing="2" cellpadding="0">
    <tr><td valign="top"></td><td valign="top"><em>buffer</em>&nbsp;</td><td>buffer to be written </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>count</em>&nbsp;</td><td>size of the buffer </td></tr>
  </table>
</dl>
<dl class="return" compact><dt><b>Returns:</b></dt><dd>no: of bytes actually written </dd></dl>

</div>
</div><p>
<hr size="1"><address style="text-align: right;"><small>Generated on Fri Apr 17 11:49:46 2009 for Axis2/C by&nbsp;
<a href="http://www.doxygen.org/index.html">
<img src="doxygen.png" alt="doxygen" align="middle" border="0"></a> 1.5.3 </small></address>
</body>
</html>


<|start_filename|>xdocs/api/html/axiom__soap__fault_8h.html<|end_filename|>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html><head><meta http-equiv="Content-Type" content="text/html;charset=UTF-8">
<title>Axis2/C: axiom_soap_fault.h File Reference</title>
<link href="doxygen.css" rel="stylesheet" type="text/css">
<link href="tabs.css" rel="stylesheet" type="text/css">
</head><body>
<!-- Generated by Doxygen 1.5.3 -->
<div class="tabs">
  <ul>
    <li><a href="index.html"><span>Main&nbsp;Page</span></a></li>
    <li><a href="modules.html"><span>Modules</span></a></li>
    <li><a href="annotated.html"><span>Classes</span></a></li>
    <li class="current"><a href="files.html"><span>Files</span></a></li>
    <li><a href="dirs.html"><span>Directories</span></a></li>
    <li><a href="pages.html"><span>Related&nbsp;Pages</span></a></li>
    <li><a href="examples.html"><span>Examples</span></a></li>
    <li>
      <form action="search.php" method="get">
        <table cellspacing="0" cellpadding="0" border="0">
          <tr>
            <td><label>&nbsp;<u>S</u>earch&nbsp;for&nbsp;</label></td>
            <td><input type="text" name="query" value="" size="20" accesskey="s"/></td>
          </tr>
        </table>
      </form>
    </li>
  </ul>
</div>
<div class="nav">
<a class="el" href="dir_f60961de8e5edc3b2658ef023e959e45.html">deploy</a>&nbsp;&raquo&nbsp;<a class="el" href="dir_6b4e91e54b7316b376882a6402adbf44.html">include</a>&nbsp;&raquo&nbsp;<a class="el" href="dir_df3a7695d5a9e696f30b948b566829e7.html">axis2-1.6.0</a></div>
<h1>axiom_soap_fault.h File Reference</h1>axiom_soap_fault struct <a href="#_details">More...</a>
<p>
<code>#include &lt;axiom_soap_const.h&gt;</code><br>
<code>#include &lt;<a class="el" href="axutil__env_8h-source.html">axutil_env.h</a>&gt;</code><br>
<code>#include &lt;<a class="el" href="axiom__node_8h-source.html">axiom_node.h</a>&gt;</code><br>
<code>#include &lt;axiom_element.h&gt;</code><br>

<p>
<a href="axiom__soap__fault_8h-source.html">Go to the source code of this file.</a><table border="0" cellpadding="0" cellspacing="0">
<tr><td></td></tr>
<tr><td colspan="2"><br><h2>Typedefs</h2></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="5ac54e3625d52416748068dd1e15baee"></a><!-- doxytag: member="axiom_soap_fault.h::axiom_soap_fault_t" ref="5ac54e3625d52416748068dd1e15baee" args="" -->
typedef struct <br>
axiom_soap_fault&nbsp;</td><td class="memItemRight" valign="bottom"><b>axiom_soap_fault_t</b></td></tr>

<tr><td colspan="2"><br><h2>Functions</h2></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top">AXIS2_EXTERN <br>
axiom_soap_fault_t *&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__axiom__soap__fault.html#g26600e5d6fad315500cad1752d60353d">axiom_soap_fault_create_with_parent</a> (const <a class="el" href="structaxutil__env.html">axutil_env_t</a> *env, struct axiom_soap_body *parent)</td></tr>

<tr><td class="memItemLeft" nowrap align="right" valign="top">AXIS2_EXTERN <br>
axiom_soap_fault_t *&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__axiom__soap__fault.html#gde9cbf2c313c0adeedea3ac60bf148b4">axiom_soap_fault_create_with_exception</a> (const <a class="el" href="structaxutil__env.html">axutil_env_t</a> *env, struct axiom_soap_body *parent, axis2_char_t *exception)</td></tr>

<tr><td class="memItemLeft" nowrap align="right" valign="top">AXIS2_EXTERN <br>
axiom_soap_fault_t *&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__axiom__soap__fault.html#ga4dfaa0b36503de97f4b4a6b9c1fce94">axiom_soap_fault_create_default_fault</a> (const <a class="el" href="structaxutil__env.html">axutil_env_t</a> *env, struct axiom_soap_body *parent, const axis2_char_t *code_value, const axis2_char_t *reason_text, const int soap_version)</td></tr>

<tr><td class="memItemLeft" nowrap align="right" valign="top">AXIS2_EXTERN void&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__axiom__soap__fault.html#g42e25abd4f06fe253fcb286cde0b2cb8">axiom_soap_fault_free</a> (axiom_soap_fault_t *fault, const <a class="el" href="structaxutil__env.html">axutil_env_t</a> *env)</td></tr>

<tr><td class="memItemLeft" nowrap align="right" valign="top">AXIS2_EXTERN struct <br>
axiom_soap_fault_code *&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__axiom__soap__fault.html#gdc09d5b63b273d0ad5ab13a1e6fed5c8">axiom_soap_fault_get_code</a> (axiom_soap_fault_t *fault, const <a class="el" href="structaxutil__env.html">axutil_env_t</a> *env)</td></tr>

<tr><td class="memItemLeft" nowrap align="right" valign="top">AXIS2_EXTERN struct <br>
axiom_soap_fault_reason *&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__axiom__soap__fault.html#g849b1969173ab4ff6394867262770179">axiom_soap_fault_get_reason</a> (axiom_soap_fault_t *fault, const <a class="el" href="structaxutil__env.html">axutil_env_t</a> *env)</td></tr>

<tr><td class="memItemLeft" nowrap align="right" valign="top">AXIS2_EXTERN struct <br>
axiom_soap_fault_node *&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__axiom__soap__fault.html#ga63629df8b84a56382c391e4fc0f30e1">axiom_soap_fault_get_node</a> (axiom_soap_fault_t *fault, const <a class="el" href="structaxutil__env.html">axutil_env_t</a> *env)</td></tr>

<tr><td class="memItemLeft" nowrap align="right" valign="top">AXIS2_EXTERN struct <br>
axiom_soap_fault_role *&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__axiom__soap__fault.html#gd83a049e57b3aec2aba62dd8d3349a94">axiom_soap_fault_get_role</a> (axiom_soap_fault_t *fault, const <a class="el" href="structaxutil__env.html">axutil_env_t</a> *env)</td></tr>

<tr><td class="memItemLeft" nowrap align="right" valign="top">AXIS2_EXTERN struct <br>
axiom_soap_fault_detail *&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__axiom__soap__fault.html#gefcbf6ce5d6408bc3f56da09ac2f9afa">axiom_soap_fault_get_detail</a> (axiom_soap_fault_t *fault, const <a class="el" href="structaxutil__env.html">axutil_env_t</a> *env)</td></tr>

<tr><td class="memItemLeft" nowrap align="right" valign="top">AXIS2_EXTERN <br>
axis2_char_t *&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__axiom__soap__fault.html#g09b8c77a2a3de953b14fa8a56a8ed11e">axiom_soap_fault_get_exception</a> (axiom_soap_fault_t *fault, const <a class="el" href="structaxutil__env.html">axutil_env_t</a> *env)</td></tr>

<tr><td class="memItemLeft" nowrap align="right" valign="top">AXIS2_EXTERN <br>
axis2_status_t&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__axiom__soap__fault.html#g0f64a1849d8b05a3281e6df8e1c0602b">axiom_soap_fault_set_exception</a> (axiom_soap_fault_t *fault, const <a class="el" href="structaxutil__env.html">axutil_env_t</a> *env, axis2_char_t *exception)</td></tr>

<tr><td class="memItemLeft" nowrap align="right" valign="top">AXIS2_EXTERN <br>
axiom_node_t *&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__axiom__soap__fault.html#g10bfdaaa36e70a7cab19f4d871cac698">axiom_soap_fault_get_base_node</a> (axiom_soap_fault_t *fault, const <a class="el" href="structaxutil__env.html">axutil_env_t</a> *env)</td></tr>

</table>
<hr><a name="_details"></a><h2>Detailed Description</h2>
axiom_soap_fault struct 
<p>
<hr size="1"><address style="text-align: right;"><small>Generated on Fri Apr 17 11:49:43 2009 for Axis2/C by&nbsp;
<a href="http://www.doxygen.org/index.html">
<img src="doxygen.png" alt="doxygen" align="middle" border="0"></a> 1.5.3 </small></address>
</body>
</html>


<|start_filename|>neethi/src/secpolicy/model/element.c<|end_filename|>

/*
 * 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.
 */

#include <rp_element.h>

struct rp_element_t
{
    axis2_char_t *name;
    axis2_char_t *nspace;
};

AXIS2_EXTERN rp_element_t *AXIS2_CALL
rp_element_create(
    const axutil_env_t * env)
{
    rp_element_t *element = NULL;

    AXIS2_ENV_CHECK(env, NULL);

    element = (rp_element_t *) AXIS2_MALLOC(env->allocator,
                                            sizeof(rp_element_t));

    if (element == NULL)
    {
        AXIS2_ERROR_SET(env->error, AXIS2_ERROR_NO_MEMORY, AXIS2_FAILURE);
        return NULL;
    }
    element->name = NULL;
    element->nspace = NULL;

    return element;

}

AXIS2_EXTERN void AXIS2_CALL
rp_element_free(
    rp_element_t * element,
    const axutil_env_t * env)
{
    AXIS2_ENV_CHECK(env, AXIS2_FAILURE);

    if (element)
    {
        AXIS2_FREE(env->allocator, element);
        element = NULL;
    }
    return;
}

/* Implementations */

AXIS2_EXTERN axis2_char_t *AXIS2_CALL
rp_element_get_name(
    rp_element_t * element,
    const axutil_env_t * env)
{
    AXIS2_ENV_CHECK(env, AXIS2_FAILURE);

    return element->name;
}

AXIS2_EXTERN axis2_status_t AXIS2_CALL
rp_element_set_name(
    rp_element_t * element,
    const axutil_env_t * env,
    axis2_char_t * name)
{
    AXIS2_ENV_CHECK(env, AXIS2_FAILURE);
    AXIS2_PARAM_CHECK(env->error, name, AXIS2_FAILURE);

    element->name = name;
    return AXIS2_SUCCESS;
}

AXIS2_EXTERN axis2_char_t *AXIS2_CALL
rp_element_get_namespace(
    rp_element_t * element,
    const axutil_env_t * env)
{
    AXIS2_ENV_CHECK(env, AXIS2_FAILURE);

    return element->nspace;

}

AXIS2_EXTERN axis2_status_t AXIS2_CALL
rp_element_set_namespace(
    rp_element_t * element,
    const axutil_env_t * env,
    axis2_char_t * nspace)
{
    AXIS2_ENV_CHECK(env, AXIS2_FAILURE);
    AXIS2_PARAM_CHECK(env->error, nspace, AXIS2_FAILURE);

    element->nspace = nspace;

    return AXIS2_SUCCESS;

}


<|start_filename|>axiom/src/soap/soap_fault_text.c<|end_filename|>

/*
 * 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.
 */

#include <axiom_soap_fault.h>
#include <axiom_element.h>
#include "_axiom_soap_fault_text.h"
#include "_axiom_soap_fault_reason.h"
#include <axiom_namespace.h>
#include <axutil_qname.h>

struct axiom_soap_fault_text
{
    axiom_attribute_t *lang_attribute;

    axiom_namespace_t *lang_namespace;

    axiom_node_t *om_ele_node;

    axis2_bool_t lang_ns_used;
};

AXIS2_EXTERN axiom_soap_fault_text_t *AXIS2_CALL
axiom_soap_fault_text_create(
    const axutil_env_t * env)
{
    axiom_soap_fault_text_t *fault_text = NULL;

    fault_text = (axiom_soap_fault_text_t *) AXIS2_MALLOC(env->allocator,
                                                          sizeof
                                                          (axiom_soap_fault_text_t));
    if (!fault_text)
    {
        AXIS2_ERROR_SET(env->error, AXIS2_ERROR_NO_MEMORY, AXIS2_FAILURE);
        AXIS2_LOG_ERROR(env->log, AXIS2_LOG_SI,
                          "No memory. Cannot create SOAP fault text");
        return NULL;
    }

    fault_text->om_ele_node = NULL;
    fault_text->lang_attribute = NULL;
    fault_text->lang_namespace = NULL;
    fault_text->lang_ns_used = AXIS2_FALSE;

    fault_text->lang_namespace = axiom_namespace_create(env,
                                                        AXIOM_SOAP12_SOAP_FAULT_TEXT_LANG_ATTR_NS_URI,
                                                        AXIOM_SOAP12_SOAP_FAULT_TEXT_LANG_ATTR_NS_PREFIX);

    if (!(fault_text->lang_namespace))
    {
        return NULL;
    }

    return fault_text;
}

AXIS2_EXTERN axiom_soap_fault_text_t *AXIS2_CALL
axiom_soap_fault_text_create_with_parent(
    const axutil_env_t * env,
    axiom_soap_fault_reason_t * parent)
{
    axiom_soap_fault_text_t *fault_text = NULL;
    axiom_element_t *this_ele = NULL;
	int soap_version = -1;
    axiom_node_t *this_node = NULL;
    axiom_namespace_t *parent_ns = NULL;
    axiom_node_t *parent_node = NULL;
    axiom_element_t *parent_ele = NULL;

    AXIS2_PARAM_CHECK(env->error, parent, NULL);

    fault_text = axiom_soap_fault_text_create(env);

    if (!fault_text)
    {
        return NULL;
    }

    parent_node = axiom_soap_fault_reason_get_base_node(parent, env);
    if (!parent_node)
    {
        axiom_soap_fault_text_free(fault_text, env);
        return NULL;
    }

    parent_ele = (axiom_element_t *)
        axiom_node_get_data_element(parent_node, env);
    if (!parent_ele)
    {
        axiom_soap_fault_text_free(fault_text, env);
        return NULL;
    }
    
	soap_version = axiom_soap_fault_reason_get_soap_version(parent, env);
	if (AXIOM_SOAP12 == soap_version)
    {
        parent_ns = axiom_element_get_namespace(parent_ele, env, parent_node);
    }
    this_ele = axiom_element_create(env,
                                    parent_node,
                                    AXIOM_SOAP12_SOAP_FAULT_TEXT_LOCAL_NAME,
                                    parent_ns, &this_node);

    if (!this_ele)
    {
        axiom_soap_fault_text_free(fault_text, env);
        return NULL;
    }

    fault_text->om_ele_node = this_node;

    axiom_soap_fault_reason_add_soap_fault_text(parent, env, fault_text);

    return fault_text;
}

AXIS2_EXTERN void AXIS2_CALL
axiom_soap_fault_text_free(
    axiom_soap_fault_text_t * fault_text,
    const axutil_env_t * env)
{

    if (fault_text->lang_ns_used == AXIS2_FALSE && fault_text->lang_namespace)
    {
        axiom_namespace_free(fault_text->lang_namespace, env);
        fault_text->lang_namespace = NULL;
    }
    AXIS2_FREE(env->allocator, fault_text);
    fault_text = NULL;
    return;
}

AXIS2_EXTERN axis2_status_t AXIS2_CALL
axiom_soap_fault_text_set_lang(
    axiom_soap_fault_text_t * fault_text,
    const axutil_env_t * env,
    const axis2_char_t * lang)
{
    int status = AXIS2_SUCCESS;
    axiom_element_t *om_ele = NULL;

    AXIS2_PARAM_CHECK(env->error, lang, AXIS2_FAILURE);

    if (fault_text->lang_attribute)
    {
        axis2_char_t *attr_lang = NULL;
        attr_lang = axiom_attribute_get_value(fault_text->lang_attribute, env);
        if (attr_lang)
        {
            if (axutil_strcmp(attr_lang, lang) == 0)
            {

                /** this attribute already exists */
                return AXIS2_SUCCESS;
            }
        }
        axiom_attribute_set_value(fault_text->lang_attribute, env, lang);
        return AXIS2_SUCCESS;
    }

    fault_text->lang_attribute = axiom_attribute_create(env,
                                                        AXIOM_SOAP12_SOAP_FAULT_TEXT_LANG_ATTR_LOCAL_NAME,
                                                        lang,
                                                        fault_text->
                                                        lang_namespace);
    if (!fault_text->lang_attribute)
    {
        return AXIS2_FAILURE;
    }

    if (!fault_text->om_ele_node)
    {
        return AXIS2_FAILURE;
    }
    om_ele =
        (axiom_element_t *) axiom_node_get_data_element(fault_text->om_ele_node,
                                                        env);
    if (!om_ele)
    {
        return AXIS2_FAILURE;
    }

    status =
        axiom_element_add_attribute(om_ele, env, fault_text->lang_attribute,
                                    fault_text->om_ele_node);

    if (status == AXIS2_SUCCESS)
    {
        fault_text->lang_ns_used = AXIS2_TRUE;
    }
    else
    {
        axiom_attribute_free(fault_text->lang_attribute, env);
        fault_text->lang_attribute = NULL;
    }
    return status;
}

AXIS2_EXTERN axis2_char_t *AXIS2_CALL
axiom_soap_fault_text_get_lang(
    axiom_soap_fault_text_t * fault_text,
    const axutil_env_t * env)
{
    axiom_element_t *om_ele = NULL;
    axutil_qname_t *tmp_qname = NULL;

    if (!fault_text->om_ele_node)
    {
        return NULL;
    }
    om_ele = (axiom_element_t *)
        axiom_node_get_data_element(fault_text->om_ele_node, env);
    if (!om_ele)
    {
        return NULL;
    }
    if (!(fault_text->lang_attribute))
    {

        /* this logic need to be rechecked */
        tmp_qname = axutil_qname_create(env,
                                        AXIOM_SOAP12_SOAP_FAULT_TEXT_LANG_ATTR_LOCAL_NAME,
                                        AXIOM_SOAP12_SOAP_FAULT_TEXT_LANG_ATTR_NS_URI,
                                        AXIOM_SOAP12_SOAP_FAULT_TEXT_LANG_ATTR_NS_PREFIX);

        fault_text->lang_attribute =
            axiom_element_get_attribute(om_ele, env, tmp_qname);
        axutil_qname_free(tmp_qname, env);
    }
    if (fault_text->lang_attribute)
    {
        return axiom_attribute_get_value(fault_text->lang_attribute, env);
    }
    else
        return NULL;
}

AXIS2_EXTERN axis2_status_t AXIS2_CALL
axiom_soap_fault_text_set_base_node(
    axiom_soap_fault_text_t * fault_text,
    const axutil_env_t * env,
    axiom_node_t * node)
{

    if (node && (axiom_node_get_node_type(node, env) != AXIOM_ELEMENT))
    {
        AXIS2_HANDLE_ERROR(env,
                        AXIS2_ERROR_INVALID_BASE_TYPE, AXIS2_FAILURE);
        return AXIS2_FAILURE;
    }
    fault_text->om_ele_node = node;
    return AXIS2_SUCCESS;
}

AXIS2_EXTERN axiom_node_t *AXIS2_CALL
axiom_soap_fault_text_get_base_node(
    axiom_soap_fault_text_t * fault_text,
    const axutil_env_t * env)
{
    return fault_text->om_ele_node;
}

AXIS2_EXTERN axis2_status_t AXIS2_CALL
axiom_soap_fault_text_set_text(
    axiom_soap_fault_text_t * fault_text,
    const axutil_env_t * env,
    axis2_char_t * value,
    axis2_char_t * lang)
{
    AXIS2_PARAM_CHECK(env->error, value, AXIS2_FAILURE);

    if (fault_text->om_ele_node)
    {
        axiom_element_t *text_ele = NULL;
        text_ele = (axiom_element_t *)
            axiom_node_get_data_element(fault_text->om_ele_node, env);
        if (text_ele)
        {
            axiom_element_set_text(text_ele, env, value,
                                   fault_text->om_ele_node);
            if (lang)
            {
                axiom_soap_fault_text_set_lang(fault_text, env, lang);
            }
            return AXIS2_SUCCESS;
        }
    }
    return AXIS2_FAILURE;
}

AXIS2_EXTERN axis2_char_t *AXIS2_CALL
axiom_soap_fault_text_get_text(
    axiom_soap_fault_text_t * fault_text,
    const axutil_env_t * env)
{
    axis2_char_t *text = NULL;

    if (fault_text->om_ele_node)
    {
        axiom_element_t *text_ele = NULL;
        text_ele = (axiom_element_t *)
            axiom_node_get_data_element(fault_text->om_ele_node, env);
        if (text_ele)
        {
            text = axiom_element_get_text(text_ele, env,
                                          fault_text->om_ele_node);
            return text;
        }
    }
    return NULL;
}


<|start_filename|>xdocs/api/html/axis2__http__sender_8h.html<|end_filename|>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html><head><meta http-equiv="Content-Type" content="text/html;charset=UTF-8">
<title>Axis2/C: axis2_http_sender.h File Reference</title>
<link href="doxygen.css" rel="stylesheet" type="text/css">
<link href="tabs.css" rel="stylesheet" type="text/css">
</head><body>
<!-- Generated by Doxygen 1.5.3 -->
<div class="tabs">
  <ul>
    <li><a href="index.html"><span>Main&nbsp;Page</span></a></li>
    <li><a href="modules.html"><span>Modules</span></a></li>
    <li><a href="annotated.html"><span>Classes</span></a></li>
    <li class="current"><a href="files.html"><span>Files</span></a></li>
    <li><a href="dirs.html"><span>Directories</span></a></li>
    <li><a href="pages.html"><span>Related&nbsp;Pages</span></a></li>
    <li><a href="examples.html"><span>Examples</span></a></li>
    <li>
      <form action="search.php" method="get">
        <table cellspacing="0" cellpadding="0" border="0">
          <tr>
            <td><label>&nbsp;<u>S</u>earch&nbsp;for&nbsp;</label></td>
            <td><input type="text" name="query" value="" size="20" accesskey="s"/></td>
          </tr>
        </table>
      </form>
    </li>
  </ul>
</div>
<div class="nav">
<a class="el" href="dir_f60961de8e5edc3b2658ef023e959e45.html">deploy</a>&nbsp;&raquo&nbsp;<a class="el" href="dir_6b4e91e54b7316b376882a6402adbf44.html">include</a>&nbsp;&raquo&nbsp;<a class="el" href="dir_df3a7695d5a9e696f30b948b566829e7.html">axis2-1.6.0</a></div>
<h1>axis2_http_sender.h File Reference</h1>axis2 SOAP over HTTP sender <a href="#_details">More...</a>
<p>
<code>#include &lt;axis2_const.h&gt;</code><br>
<code>#include &lt;<a class="el" href="axis2__defines_8h-source.html">axis2_defines.h</a>&gt;</code><br>
<code>#include &lt;<a class="el" href="axutil__env_8h-source.html">axutil_env.h</a>&gt;</code><br>
<code>#include &lt;<a class="el" href="axis2__msg__ctx_8h-source.html">axis2_msg_ctx.h</a>&gt;</code><br>
<code>#include &lt;axiom_output.h&gt;</code><br>
<code>#include &lt;axis2_http_simple_response.h&gt;</code><br>
<code>#include &lt;<a class="el" href="axiom__soap__envelope_8h-source.html">axiom_soap_envelope.h</a>&gt;</code><br>
<code>#include &lt;<a class="el" href="axis2__http__simple__request_8h-source.html">axis2_http_simple_request.h</a>&gt;</code><br>

<p>
<a href="axis2__http__sender_8h-source.html">Go to the source code of this file.</a><table border="0" cellpadding="0" cellspacing="0">
<tr><td></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top">#define&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="axis2__http__sender_8h.html#e502c287e52aae7ed166e6c60b1aee69">AXIS2_HTTP_SENDER_SEND</a>(sender, env, msg_ctx, output, url, soap_action)&nbsp;&nbsp;&nbsp;axis2_http_sender_send(sender, env, msg_ctx,output, url, soap_action)</td></tr>

<tr><td class="memItemLeft" nowrap align="right" valign="top">#define&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="axis2__http__sender_8h.html#930a9ebf0bb35f1ae076ddd63c580d50">AXIS2_HTTP_SENDER_SET_CHUNKED</a>(sender, env, chunked)&nbsp;&nbsp;&nbsp;axis2_http_sender_set_chunked(sender, env, chunked)</td></tr>

<tr><td class="memItemLeft" nowrap align="right" valign="top">#define&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="axis2__http__sender_8h.html#b122bd22cd8254b7b1b1b370505c62d8">AXIS2_HTTP_SENDER_SET_OM_OUTPUT</a>(sender, env, om_output)&nbsp;&nbsp;&nbsp;axis2_http_sender_set_om_output (sender, env, om_output)</td></tr>

<tr><td class="memItemLeft" nowrap align="right" valign="top">#define&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="axis2__http__sender_8h.html#270c3443efeed4c4400e446369834116">AXIS2_HTTP_SENDER_SET_HTTP_VERSION</a>(sender, env, version)&nbsp;&nbsp;&nbsp;axis2_http_sender_set_http_version (sender, env, version)</td></tr>

<tr><td class="memItemLeft" nowrap align="right" valign="top">#define&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="axis2__http__sender_8h.html#2409df19c0a6580a757dd966dc089b4d">AXIS2_HTTP_SENDER_FREE</a>(sender, env)&nbsp;&nbsp;&nbsp;axis2_http_sender_free(sender, env)</td></tr>

<tr><td class="memItemLeft" nowrap align="right" valign="top">typedef struct <br>
axis2_http_sender&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="axis2__http__sender_8h.html#6cd798fd88a2c7e86e4a93497b43fc50">axis2_http_sender_t</a></td></tr>

<tr><td class="memItemLeft" nowrap align="right" valign="top">AXIS2_EXTERN <br>
axis2_status_t&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="axis2__http__sender_8h.html#23a2300c0fe2f0b032d43946e17bdc08">axis2_http_sender_send</a> (<a class="el" href="axis2__http__sender_8h.html#6cd798fd88a2c7e86e4a93497b43fc50">axis2_http_sender_t</a> *sender, const <a class="el" href="structaxutil__env.html">axutil_env_t</a> *env, <a class="el" href="group__axis2__msg__ctx.html#g160acae289ac39cb49fa625ffd88e410">axis2_msg_ctx_t</a> *msg_ctx, axiom_soap_envelope_t *out, const axis2_char_t *str_url, const axis2_char_t *soap_action)</td></tr>

<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="06e60433b94944bbb134e4ea5aa8e877"></a><!-- doxytag: member="axis2_http_sender.h::axis2_http_sender_util_add_header" ref="06e60433b94944bbb134e4ea5aa8e877" args="(const axutil_env_t *env, axis2_http_simple_request_t *request, axis2_char_t *header_name, const axis2_char_t *header_value)" -->
void&nbsp;</td><td class="memItemRight" valign="bottom"><b>axis2_http_sender_util_add_header</b> (const <a class="el" href="structaxutil__env.html">axutil_env_t</a> *env, <a class="el" href="group__axis2__http__simple__request.html#g587c6b13c2e9b94b68e3a2a142cc3416">axis2_http_simple_request_t</a> *request, axis2_char_t *header_name, const axis2_char_t *header_value)</td></tr>

<tr><td class="memItemLeft" nowrap align="right" valign="top">AXIS2_EXTERN <br>
axis2_status_t&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="axis2__http__sender_8h.html#f0ef471e61eef4e81579b2c69317769b">axis2_http_sender_set_chunked</a> (<a class="el" href="axis2__http__sender_8h.html#6cd798fd88a2c7e86e4a93497b43fc50">axis2_http_sender_t</a> *sender, const <a class="el" href="structaxutil__env.html">axutil_env_t</a> *env, axis2_bool_t chunked)</td></tr>

<tr><td class="memItemLeft" nowrap align="right" valign="top">AXIS2_EXTERN <br>
axis2_status_t&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="axis2__http__sender_8h.html#4ed1abf9d12cdc4f38eda059dc874d28">axis2_http_sender_set_om_output</a> (<a class="el" href="axis2__http__sender_8h.html#6cd798fd88a2c7e86e4a93497b43fc50">axis2_http_sender_t</a> *sender, const <a class="el" href="structaxutil__env.html">axutil_env_t</a> *env, <a class="el" href="group__axiom__output.html#gfe1ea804d7a8179e85371f065cd9df09">axiom_output_t</a> *om_output)</td></tr>

<tr><td class="memItemLeft" nowrap align="right" valign="top">AXIS2_EXTERN <br>
axis2_status_t&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="axis2__http__sender_8h.html#eebaac858f5ef79d511a6c22222324fc">axis2_http_sender_set_http_version</a> (<a class="el" href="axis2__http__sender_8h.html#6cd798fd88a2c7e86e4a93497b43fc50">axis2_http_sender_t</a> *sender, const <a class="el" href="structaxutil__env.html">axutil_env_t</a> *env, axis2_char_t *version)</td></tr>

<tr><td class="memItemLeft" nowrap align="right" valign="top">AXIS2_EXTERN void&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="axis2__http__sender_8h.html#162893dae3afbc0fe252e4212c5b3041">axis2_http_sender_free</a> (<a class="el" href="axis2__http__sender_8h.html#6cd798fd88a2c7e86e4a93497b43fc50">axis2_http_sender_t</a> *sender, const <a class="el" href="structaxutil__env.html">axutil_env_t</a> *env)</td></tr>

<tr><td class="memItemLeft" nowrap align="right" valign="top">AXIS2_EXTERN <br>
axis2_status_t&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="axis2__http__sender_8h.html#22b551f3e5b5b6401bf0eb76d76d6dca">axis2_http_sender_get_header_info</a> (<a class="el" href="axis2__http__sender_8h.html#6cd798fd88a2c7e86e4a93497b43fc50">axis2_http_sender_t</a> *sender, const <a class="el" href="structaxutil__env.html">axutil_env_t</a> *env, <a class="el" href="group__axis2__msg__ctx.html#g160acae289ac39cb49fa625ffd88e410">axis2_msg_ctx_t</a> *msg_ctx, <a class="el" href="group__axis2__http__simple__response.html#g5ebc18702d80d368692d1922f9accb1f">axis2_http_simple_response_t</a> *response)</td></tr>

<tr><td class="memItemLeft" nowrap align="right" valign="top">AXIS2_EXTERN <br>
axis2_status_t&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="axis2__http__sender_8h.html#d59456a80bebf0481cd502c618943c67">axis2_http_sender_process_response</a> (<a class="el" href="axis2__http__sender_8h.html#6cd798fd88a2c7e86e4a93497b43fc50">axis2_http_sender_t</a> *sender, const <a class="el" href="structaxutil__env.html">axutil_env_t</a> *env, <a class="el" href="group__axis2__msg__ctx.html#g160acae289ac39cb49fa625ffd88e410">axis2_msg_ctx_t</a> *msg_ctx, <a class="el" href="group__axis2__http__simple__response.html#g5ebc18702d80d368692d1922f9accb1f">axis2_http_simple_response_t</a> *response)</td></tr>

<tr><td class="memItemLeft" nowrap align="right" valign="top">AXIS2_EXTERN <br>
axis2_status_t&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="axis2__http__sender_8h.html#d7fba5bcef2d635354c29dae74580748">axis2_http_sender_get_timeout_values</a> (<a class="el" href="axis2__http__sender_8h.html#6cd798fd88a2c7e86e4a93497b43fc50">axis2_http_sender_t</a> *sender, const <a class="el" href="structaxutil__env.html">axutil_env_t</a> *env, <a class="el" href="group__axis2__msg__ctx.html#g160acae289ac39cb49fa625ffd88e410">axis2_msg_ctx_t</a> *msg_ctx)</td></tr>

<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="0eb092e1b59bfa416aaabc74f833a8ff"></a><!-- doxytag: member="axis2_http_sender.h::axis2_http_sender_get_param_string" ref="0eb092e1b59bfa416aaabc74f833a8ff" args="(axis2_http_sender_t *sender, const axutil_env_t *env, axis2_msg_ctx_t *msg_ctx)" -->
AXIS2_EXTERN <br>
axis2_char_t *&nbsp;</td><td class="memItemRight" valign="bottom"><b>axis2_http_sender_get_param_string</b> (<a class="el" href="axis2__http__sender_8h.html#6cd798fd88a2c7e86e4a93497b43fc50">axis2_http_sender_t</a> *sender, const <a class="el" href="structaxutil__env.html">axutil_env_t</a> *env, <a class="el" href="group__axis2__msg__ctx.html#g160acae289ac39cb49fa625ffd88e410">axis2_msg_ctx_t</a> *msg_ctx)</td></tr>

<tr><td class="memItemLeft" nowrap align="right" valign="top">AXIS2_EXTERN <br>
<a class="el" href="axis2__http__sender_8h.html#6cd798fd88a2c7e86e4a93497b43fc50">axis2_http_sender_t</a> *&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="axis2__http__sender_8h.html#7b78151a46456e34ef5968a894108033">axis2_http_sender_create</a> (const <a class="el" href="structaxutil__env.html">axutil_env_t</a> *env)</td></tr>

</table>
<hr><a name="_details"></a><h2>Detailed Description</h2>
axis2 SOAP over HTTP sender 
<p>
<hr><h2>Define Documentation</h2>
<a class="anchor" name="2409df19c0a6580a757dd966dc089b4d"></a><!-- doxytag: member="axis2_http_sender.h::AXIS2_HTTP_SENDER_FREE" ref="2409df19c0a6580a757dd966dc089b4d" args="(sender, env)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">#define AXIS2_HTTP_SENDER_FREE          </td>
          <td>(</td>
          <td class="paramtype">sender,         <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">env&nbsp;</td>
          <td class="paramname">          </td>
          <td>&nbsp;)&nbsp;</td>
          <td width="100%">&nbsp;&nbsp;&nbsp;axis2_http_sender_free(sender, env)</td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
Frees the soap over http sender. 
</div>
</div><p>
<a class="anchor" name="e502c287e52aae7ed166e6c60b1aee69"></a><!-- doxytag: member="axis2_http_sender.h::AXIS2_HTTP_SENDER_SEND" ref="e502c287e52aae7ed166e6c60b1aee69" args="(sender, env, msg_ctx, output, url, soap_action)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">#define AXIS2_HTTP_SENDER_SEND          </td>
          <td>(</td>
          <td class="paramtype">sender,         <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">env,         <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">msg_ctx,         <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">output,         <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">url,         <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">soap_action&nbsp;</td>
          <td class="paramname">          </td>
          <td>&nbsp;)&nbsp;</td>
          <td width="100%">&nbsp;&nbsp;&nbsp;axis2_http_sender_send(sender, env, msg_ctx,output, url, soap_action)</td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
Send. 
</div>
</div><p>
<a class="anchor" name="930a9ebf0bb35f1ae076ddd63c580d50"></a><!-- doxytag: member="axis2_http_sender.h::AXIS2_HTTP_SENDER_SET_CHUNKED" ref="930a9ebf0bb35f1ae076ddd63c580d50" args="(sender, env, chunked)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">#define AXIS2_HTTP_SENDER_SET_CHUNKED          </td>
          <td>(</td>
          <td class="paramtype">sender,         <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">env,         <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">chunked&nbsp;</td>
          <td class="paramname">          </td>
          <td>&nbsp;)&nbsp;</td>
          <td width="100%">&nbsp;&nbsp;&nbsp;axis2_http_sender_set_chunked(sender, env, chunked)</td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
Set chunked. 
</div>
</div><p>
<a class="anchor" name="270c3443efeed4c4400e446369834116"></a><!-- doxytag: member="axis2_http_sender.h::AXIS2_HTTP_SENDER_SET_HTTP_VERSION" ref="270c3443efeed4c4400e446369834116" args="(sender, env, version)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">#define AXIS2_HTTP_SENDER_SET_HTTP_VERSION          </td>
          <td>(</td>
          <td class="paramtype">sender,         <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">env,         <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">version&nbsp;</td>
          <td class="paramname">          </td>
          <td>&nbsp;)&nbsp;</td>
          <td width="100%">&nbsp;&nbsp;&nbsp;axis2_http_sender_set_http_version (sender, env, version)</td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
Set http version. 
</div>
</div><p>
<a class="anchor" name="b122bd22cd8254b7b1b1b370505c62d8"></a><!-- doxytag: member="axis2_http_sender.h::AXIS2_HTTP_SENDER_SET_OM_OUTPUT" ref="b122bd22cd8254b7b1b1b370505c62d8" args="(sender, env, om_output)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">#define AXIS2_HTTP_SENDER_SET_OM_OUTPUT          </td>
          <td>(</td>
          <td class="paramtype">sender,         <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">env,         <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">om_output&nbsp;</td>
          <td class="paramname">          </td>
          <td>&nbsp;)&nbsp;</td>
          <td width="100%">&nbsp;&nbsp;&nbsp;axis2_http_sender_set_om_output (sender, env, om_output)</td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
Set om output. 
</div>
</div><p>
<hr><h2>Typedef Documentation</h2>
<a class="anchor" name="6cd798fd88a2c7e86e4a93497b43fc50"></a><!-- doxytag: member="axis2_http_sender.h::axis2_http_sender_t" ref="6cd798fd88a2c7e86e4a93497b43fc50" args="" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">typedef struct axis2_http_sender <a class="el" href="axis2__http__sender_8h.html#6cd798fd88a2c7e86e4a93497b43fc50">axis2_http_sender_t</a>          </td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
Type name for struct axis2_http_sender_ 
</div>
</div><p>
<hr><h2>Function Documentation</h2>
<a class="anchor" name="7b78151a46456e34ef5968a894108033"></a><!-- doxytag: member="axis2_http_sender.h::axis2_http_sender_create" ref="7b78151a46456e34ef5968a894108033" args="(const axutil_env_t *env)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">AXIS2_EXTERN <a class="el" href="axis2__http__sender_8h.html#6cd798fd88a2c7e86e4a93497b43fc50">axis2_http_sender_t</a>* axis2_http_sender_create           </td>
          <td>(</td>
          <td class="paramtype">const <a class="el" href="structaxutil__env.html">axutil_env_t</a> *&nbsp;</td>
          <td class="paramname"> <em>env</em>          </td>
          <td>&nbsp;)&nbsp;</td>
          <td width="100%"></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
<dl compact><dt><b>Parameters:</b></dt><dd>
  <table border="0" cellspacing="2" cellpadding="0">
    <tr><td valign="top"></td><td valign="top"><em>env</em>&nbsp;</td><td>pointer to environment struct </td></tr>
  </table>
</dl>

</div>
</div><p>
<a class="anchor" name="162893dae3afbc0fe252e4212c5b3041"></a><!-- doxytag: member="axis2_http_sender.h::axis2_http_sender_free" ref="162893dae3afbc0fe252e4212c5b3041" args="(axis2_http_sender_t *sender, const axutil_env_t *env)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">AXIS2_EXTERN void axis2_http_sender_free           </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="axis2__http__sender_8h.html#6cd798fd88a2c7e86e4a93497b43fc50">axis2_http_sender_t</a> *&nbsp;</td>
          <td class="paramname"> <em>sender</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const <a class="el" href="structaxutil__env.html">axutil_env_t</a> *&nbsp;</td>
          <td class="paramname"> <em>env</em></td><td>&nbsp;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td><td width="100%"></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
<dl compact><dt><b>Parameters:</b></dt><dd>
  <table border="0" cellspacing="2" cellpadding="0">
    <tr><td valign="top"></td><td valign="top"><em>sender</em>&nbsp;</td><td>sender </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>env</em>&nbsp;</td><td>pointer to environment struct </td></tr>
  </table>
</dl>
<dl class="return" compact><dt><b>Returns:</b></dt><dd>void </dd></dl>

</div>
</div><p>
<a class="anchor" name="22b551f3e5b5b6401bf0eb76d76d6dca"></a><!-- doxytag: member="axis2_http_sender.h::axis2_http_sender_get_header_info" ref="22b551f3e5b5b6401bf0eb76d76d6dca" args="(axis2_http_sender_t *sender, const axutil_env_t *env, axis2_msg_ctx_t *msg_ctx, axis2_http_simple_response_t *response)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">AXIS2_EXTERN axis2_status_t axis2_http_sender_get_header_info           </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="axis2__http__sender_8h.html#6cd798fd88a2c7e86e4a93497b43fc50">axis2_http_sender_t</a> *&nbsp;</td>
          <td class="paramname"> <em>sender</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const <a class="el" href="structaxutil__env.html">axutil_env_t</a> *&nbsp;</td>
          <td class="paramname"> <em>env</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype"><a class="el" href="group__axis2__msg__ctx.html#g160acae289ac39cb49fa625ffd88e410">axis2_msg_ctx_t</a> *&nbsp;</td>
          <td class="paramname"> <em>msg_ctx</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype"><a class="el" href="group__axis2__http__simple__response.html#g5ebc18702d80d368692d1922f9accb1f">axis2_http_simple_response_t</a> *&nbsp;</td>
          <td class="paramname"> <em>response</em></td><td>&nbsp;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td><td width="100%"></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
<dl compact><dt><b>Parameters:</b></dt><dd>
  <table border="0" cellspacing="2" cellpadding="0">
    <tr><td valign="top"></td><td valign="top"><em>sender</em>&nbsp;</td><td>soap over http sender </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>env</em>&nbsp;</td><td>pointer to environment struct </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>msg_ctx</em>&nbsp;</td><td>pointer to message context </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>response</em>&nbsp;</td><td>pointer to response </td></tr>
  </table>
</dl>

</div>
</div><p>
<a class="anchor" name="d7fba5bcef2d635354c29dae74580748"></a><!-- doxytag: member="axis2_http_sender.h::axis2_http_sender_get_timeout_values" ref="d7fba5bcef2d635354c29dae74580748" args="(axis2_http_sender_t *sender, const axutil_env_t *env, axis2_msg_ctx_t *msg_ctx)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">AXIS2_EXTERN axis2_status_t axis2_http_sender_get_timeout_values           </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="axis2__http__sender_8h.html#6cd798fd88a2c7e86e4a93497b43fc50">axis2_http_sender_t</a> *&nbsp;</td>
          <td class="paramname"> <em>sender</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const <a class="el" href="structaxutil__env.html">axutil_env_t</a> *&nbsp;</td>
          <td class="paramname"> <em>env</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype"><a class="el" href="group__axis2__msg__ctx.html#g160acae289ac39cb49fa625ffd88e410">axis2_msg_ctx_t</a> *&nbsp;</td>
          <td class="paramname"> <em>msg_ctx</em></td><td>&nbsp;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td><td width="100%"></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
<dl compact><dt><b>Parameters:</b></dt><dd>
  <table border="0" cellspacing="2" cellpadding="0">
    <tr><td valign="top"></td><td valign="top"><em>sender</em>&nbsp;</td><td>soap over http sender </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>env</em>&nbsp;</td><td>pointer to environment struct </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>msg_ctx</em>&nbsp;</td><td>pointer to message context </td></tr>
  </table>
</dl>

</div>
</div><p>
<a class="anchor" name="d59456a80bebf0481cd502c618943c67"></a><!-- doxytag: member="axis2_http_sender.h::axis2_http_sender_process_response" ref="d59456a80bebf0481cd502c618943c67" args="(axis2_http_sender_t *sender, const axutil_env_t *env, axis2_msg_ctx_t *msg_ctx, axis2_http_simple_response_t *response)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">AXIS2_EXTERN axis2_status_t axis2_http_sender_process_response           </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="axis2__http__sender_8h.html#6cd798fd88a2c7e86e4a93497b43fc50">axis2_http_sender_t</a> *&nbsp;</td>
          <td class="paramname"> <em>sender</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const <a class="el" href="structaxutil__env.html">axutil_env_t</a> *&nbsp;</td>
          <td class="paramname"> <em>env</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype"><a class="el" href="group__axis2__msg__ctx.html#g160acae289ac39cb49fa625ffd88e410">axis2_msg_ctx_t</a> *&nbsp;</td>
          <td class="paramname"> <em>msg_ctx</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype"><a class="el" href="group__axis2__http__simple__response.html#g5ebc18702d80d368692d1922f9accb1f">axis2_http_simple_response_t</a> *&nbsp;</td>
          <td class="paramname"> <em>response</em></td><td>&nbsp;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td><td width="100%"></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
<dl compact><dt><b>Parameters:</b></dt><dd>
  <table border="0" cellspacing="2" cellpadding="0">
    <tr><td valign="top"></td><td valign="top"><em>sender</em>&nbsp;</td><td>soap over http sender </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>env</em>&nbsp;</td><td>pointer to environment struct </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>msg_ctx</em>&nbsp;</td><td>pointer to message context </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>response</em>&nbsp;</td><td>pointer to response </td></tr>
  </table>
</dl>

</div>
</div><p>
<a class="anchor" name="23a2300c0fe2f0b032d43946e17bdc08"></a><!-- doxytag: member="axis2_http_sender.h::axis2_http_sender_send" ref="23a2300c0fe2f0b032d43946e17bdc08" args="(axis2_http_sender_t *sender, const axutil_env_t *env, axis2_msg_ctx_t *msg_ctx, axiom_soap_envelope_t *out, const axis2_char_t *str_url, const axis2_char_t *soap_action)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">AXIS2_EXTERN axis2_status_t axis2_http_sender_send           </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="axis2__http__sender_8h.html#6cd798fd88a2c7e86e4a93497b43fc50">axis2_http_sender_t</a> *&nbsp;</td>
          <td class="paramname"> <em>sender</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const <a class="el" href="structaxutil__env.html">axutil_env_t</a> *&nbsp;</td>
          <td class="paramname"> <em>env</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype"><a class="el" href="group__axis2__msg__ctx.html#g160acae289ac39cb49fa625ffd88e410">axis2_msg_ctx_t</a> *&nbsp;</td>
          <td class="paramname"> <em>msg_ctx</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">axiom_soap_envelope_t *&nbsp;</td>
          <td class="paramname"> <em>out</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const axis2_char_t *&nbsp;</td>
          <td class="paramname"> <em>str_url</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const axis2_char_t *&nbsp;</td>
          <td class="paramname"> <em>soap_action</em></td><td>&nbsp;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td><td width="100%"></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
<dl compact><dt><b>Parameters:</b></dt><dd>
  <table border="0" cellspacing="2" cellpadding="0">
    <tr><td valign="top"></td><td valign="top"><em>sender</em>&nbsp;</td><td>sender </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>env</em>&nbsp;</td><td>pointer to environment struct </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>msg_ctx</em>&nbsp;</td><td>pointer to message context </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>out</em>&nbsp;</td><td>out </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>str_url</em>&nbsp;</td><td>str url </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>soap_action</em>&nbsp;</td><td>pointer to soap action </td></tr>
  </table>
</dl>
<dl class="return" compact><dt><b>Returns:</b></dt><dd>AXIS2_SUCCESS on success, else AXIS2_FAILURE </dd></dl>

</div>
</div><p>
<a class="anchor" name="f0ef471e61eef4e81579b2c69317769b"></a><!-- doxytag: member="axis2_http_sender.h::axis2_http_sender_set_chunked" ref="f0ef471e61eef4e81579b2c69317769b" args="(axis2_http_sender_t *sender, const axutil_env_t *env, axis2_bool_t chunked)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">AXIS2_EXTERN axis2_status_t axis2_http_sender_set_chunked           </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="axis2__http__sender_8h.html#6cd798fd88a2c7e86e4a93497b43fc50">axis2_http_sender_t</a> *&nbsp;</td>
          <td class="paramname"> <em>sender</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const <a class="el" href="structaxutil__env.html">axutil_env_t</a> *&nbsp;</td>
          <td class="paramname"> <em>env</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">axis2_bool_t&nbsp;</td>
          <td class="paramname"> <em>chunked</em></td><td>&nbsp;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td><td width="100%"></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
<dl compact><dt><b>Parameters:</b></dt><dd>
  <table border="0" cellspacing="2" cellpadding="0">
    <tr><td valign="top"></td><td valign="top"><em>sender</em>&nbsp;</td><td>sender </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>env</em>&nbsp;</td><td>pointer to environment struct </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>chunked</em>&nbsp;</td><td>chunked </td></tr>
  </table>
</dl>
<dl class="return" compact><dt><b>Returns:</b></dt><dd>AXIS2_SUCCESS on success, else AXIS2_FAILURE </dd></dl>

</div>
</div><p>
<a class="anchor" name="eebaac858f5ef79d511a6c22222324fc"></a><!-- doxytag: member="axis2_http_sender.h::axis2_http_sender_set_http_version" ref="eebaac858f5ef79d511a6c22222324fc" args="(axis2_http_sender_t *sender, const axutil_env_t *env, axis2_char_t *version)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">AXIS2_EXTERN axis2_status_t axis2_http_sender_set_http_version           </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="axis2__http__sender_8h.html#6cd798fd88a2c7e86e4a93497b43fc50">axis2_http_sender_t</a> *&nbsp;</td>
          <td class="paramname"> <em>sender</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const <a class="el" href="structaxutil__env.html">axutil_env_t</a> *&nbsp;</td>
          <td class="paramname"> <em>env</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">axis2_char_t *&nbsp;</td>
          <td class="paramname"> <em>version</em></td><td>&nbsp;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td><td width="100%"></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
<dl compact><dt><b>Parameters:</b></dt><dd>
  <table border="0" cellspacing="2" cellpadding="0">
    <tr><td valign="top"></td><td valign="top"><em>sender</em>&nbsp;</td><td>sender </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>env</em>&nbsp;</td><td>pointer to environment struct </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>version</em>&nbsp;</td><td>pointer to version </td></tr>
  </table>
</dl>
<dl class="return" compact><dt><b>Returns:</b></dt><dd>AXIS2_SUCCESS on success, else AXIS2_FAILURE </dd></dl>

</div>
</div><p>
<a class="anchor" name="4ed1abf9d12cdc4f38eda059dc874d28"></a><!-- doxytag: member="axis2_http_sender.h::axis2_http_sender_set_om_output" ref="4ed1abf9d12cdc4f38eda059dc874d28" args="(axis2_http_sender_t *sender, const axutil_env_t *env, axiom_output_t *om_output)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">AXIS2_EXTERN axis2_status_t axis2_http_sender_set_om_output           </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="axis2__http__sender_8h.html#6cd798fd88a2c7e86e4a93497b43fc50">axis2_http_sender_t</a> *&nbsp;</td>
          <td class="paramname"> <em>sender</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const <a class="el" href="structaxutil__env.html">axutil_env_t</a> *&nbsp;</td>
          <td class="paramname"> <em>env</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype"><a class="el" href="group__axiom__output.html#gfe1ea804d7a8179e85371f065cd9df09">axiom_output_t</a> *&nbsp;</td>
          <td class="paramname"> <em>om_output</em></td><td>&nbsp;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td><td width="100%"></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
<dl compact><dt><b>Parameters:</b></dt><dd>
  <table border="0" cellspacing="2" cellpadding="0">
    <tr><td valign="top"></td><td valign="top"><em>sender</em>&nbsp;</td><td>sender </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>env</em>&nbsp;</td><td>pointer to environment struct </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>om_output</em>&nbsp;</td><td>om output </td></tr>
  </table>
</dl>
<dl class="return" compact><dt><b>Returns:</b></dt><dd>AXIS2_SUCCESS on success, else AXIS2_FAILURE </dd></dl>

</div>
</div><p>
<hr size="1"><address style="text-align: right;"><small>Generated on Fri Apr 17 11:49:43 2009 for Axis2/C by&nbsp;
<a href="http://www.doxygen.org/index.html">
<img src="doxygen.png" alt="doxygen" align="middle" border="0"></a> 1.5.3 </small></address>
</body>
</html>


<|start_filename|>util/test/duration/duration_test.c<|end_filename|>
#include <axutil_duration.h>
#include "../util/create_env.h"

/** @brief test duration
 *  create duration from values and retrieve values
 */
axis2_status_t test_duration(axutil_env_t *env)
{ 
    axis2_status_t status = AXIS2_FAILURE;
    axis2_char_t * duration_str = "P3Y12M23DT11H45M45.000000S";
    axis2_char_t * duration_str1 = "-P3Y12M23DT11H45M45.000000S";
    int year,month,day,hour,minute;
    double second;
    axutil_duration_t * duration;
    axutil_duration_t * duration_one;
    axutil_duration_t * duration_two;
    axutil_duration_t * duration_three;
    axutil_duration_t * duration_four;
    axis2_bool_t is_negative = AXIS2_FALSE;
    axis2_char_t * neg_str = "";

    duration = axutil_duration_create_from_values(env,AXIS2_TRUE,3,12,23,11,45,45.00);
    duration_one = axutil_duration_create_from_values(env,AXIS2_FALSE,7,11,2,23,11,50.00);
    duration_two = axutil_duration_create_from_string(env,duration_str);
    duration_three = axutil_duration_create(env);
    duration_four  = axutil_duration_create(env);

    year = axutil_duration_get_years(duration,env);
    month = axutil_duration_get_months(duration,env);
    day = axutil_duration_get_days(duration,env);
    hour = axutil_duration_get_hours(duration,env);
    minute = axutil_duration_get_mins(duration,env);
    second = axutil_duration_get_seconds(duration,env);
    is_negative = axutil_duration_get_is_negative(duration,env);

    status = axutil_duration_deserialize_duration(duration_three,env,duration_str);
    if (status == AXIS2_SUCCESS)
        printf("The test 1 is successful\n");
    else
        printf("The test 1 failed\n");
    status = axutil_duration_deserialize_duration(duration_four,env,duration_str1);
    if (status == AXIS2_SUCCESS)
        printf("The test 2 is successful\n");
    else
        printf("The test 2 failed\n");
    printf("Duration for test 3: %s\n", axutil_duration_serialize_duration(duration,env));
    printf("The test 3 is completed\n");
    status  = axutil_duration_set_duration(duration,env,AXIS2_TRUE,3,12,23,11,45,56.00);
    if (status == AXIS2_SUCCESS)
    {
        printf("The test 4 is successful\n");
    }
    else
    {
        printf("The test 4 failed\n");
    }
    axutil_duration_free(duration,env);
    axutil_duration_free(duration_one,env);
    axutil_duration_free(duration_two,env);
    axutil_duration_free(duration_three,env);
    axutil_duration_free(duration_four,env);
    if (is_negative)
        neg_str = "(-) ";
    printf("Duration for test 5: %s%d-%d-%d %d:%d:%.0f\n",neg_str,year,month,day,hour,minute,second);
    printf("The test 5 is completed\n");
    return AXIS2_SUCCESS;
}

/** @brief set values
 *  set values for the duration and get the values 
 */
axis2_status_t set_values(axutil_env_t *env)
{
    axutil_duration_t * duration;
    axutil_duration_t * duration_one;
    int get_year,get_month,get_day,get_hour,get_minute;
    axis2_bool_t is_negative;
    double get_second;

    duration  = axutil_duration_create(env);
    duration_one = axutil_duration_create_from_values(env,AXIS2_TRUE,5,9,29,59,21,49);

    if (axutil_duration_set_is_negative(duration,env,AXIS2_TRUE) != AXIS2_SUCCESS)
    {
        axutil_duration_free(duration,env);
        axutil_duration_free(duration_one,env);
        return AXIS2_FAILURE;
    }
    is_negative = axutil_duration_get_is_negative(duration,env);
    if (!is_negative)
    {
        axutil_duration_free(duration,env);
        axutil_duration_free(duration_one,env);
        return AXIS2_FAILURE;
    }

    if (axutil_duration_set_years(duration,env,5) != AXIS2_SUCCESS)
    {
        axutil_duration_free(duration,env);
        axutil_duration_free(duration_one,env);
        return AXIS2_FAILURE;
    }
    get_year = axutil_duration_get_years(duration,env);
    if (axutil_duration_set_months(duration,env,9) != AXIS2_SUCCESS)
    {
        axutil_duration_free(duration,env);
        axutil_duration_free(duration_one,env);
        return AXIS2_FAILURE;
    }
    get_month = axutil_duration_get_months(duration,env);
    if (axutil_duration_set_days(duration,env,29) != AXIS2_SUCCESS)
    {
        axutil_duration_free(duration,env);
        axutil_duration_free(duration_one,env);
        return AXIS2_FAILURE;
    }
    get_day = axutil_duration_get_days(duration,env);
    if (axutil_duration_set_hours(duration,env,59) != AXIS2_SUCCESS)
    {
        axutil_duration_free(duration,env);
        axutil_duration_free(duration_one,env);
        return AXIS2_FAILURE;
    }
    get_hour = axutil_duration_get_hours(duration,env);
    if (axutil_duration_set_mins(duration,env,21) !=  AXIS2_SUCCESS)
    {
        axutil_duration_free(duration,env);
        axutil_duration_free(duration_one,env);
        return AXIS2_FAILURE;
    }
    get_minute = axutil_duration_get_mins(duration,env);
    if (axutil_duration_set_seconds(duration,env,49) != AXIS2_SUCCESS)
    {
        axutil_duration_free(duration,env);
        axutil_duration_free(duration_one,env);
        return AXIS2_FAILURE;
    }
    get_second = axutil_duration_get_seconds(duration,env);
    printf("Duration for test 6: %d-%d-%d %d:%d:%.0f\n",get_year,get_month,get_day,get_hour,get_minute,get_second);
    printf("The test 6 is completed\n");
    if (!axutil_duration_compare(duration_one,duration,env))
    {
        printf("The test 7 failed\n");
        axutil_duration_free(duration,env);
        axutil_duration_free(duration_one,env);
        return AXIS2_FAILURE;
    }
    printf("The test 7 is successful\n");
    axutil_duration_free(duration,env);
    axutil_duration_free(duration_one,env);
    return AXIS2_SUCCESS;
}
int main()
{
    int status = AXIS2_SUCCESS;

    axutil_env_t *env = NULL;
    env = create_environment();

    status = test_duration(env);
    if(status == AXIS2_FAILURE)
    {
        printf("The test test_duration failed\n");
    }
    status = set_values(env);
    if(status == AXIS2_FAILURE)
    {
        printf("The test set_values failed\n");
    }
    axutil_env_free(env);
    return 0;
}


<|start_filename|>xdocs/api/html/group__axiom__soap__fault.html<|end_filename|>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html><head><meta http-equiv="Content-Type" content="text/html;charset=UTF-8">
<title>Axis2/C: soap fault</title>
<link href="doxygen.css" rel="stylesheet" type="text/css">
<link href="tabs.css" rel="stylesheet" type="text/css">
</head><body>
<!-- Generated by Doxygen 1.5.3 -->
<div class="tabs">
  <ul>
    <li><a href="index.html"><span>Main&nbsp;Page</span></a></li>
    <li><a href="modules.html"><span>Modules</span></a></li>
    <li><a href="annotated.html"><span>Classes</span></a></li>
    <li><a href="files.html"><span>Files</span></a></li>
    <li><a href="dirs.html"><span>Directories</span></a></li>
    <li><a href="pages.html"><span>Related&nbsp;Pages</span></a></li>
    <li><a href="examples.html"><span>Examples</span></a></li>
    <li>
      <form action="search.php" method="get">
        <table cellspacing="0" cellpadding="0" border="0">
          <tr>
            <td><label>&nbsp;<u>S</u>earch&nbsp;for&nbsp;</label></td>
            <td><input type="text" name="query" value="" size="20" accesskey="s"/></td>
          </tr>
        </table>
      </form>
    </li>
  </ul>
</div>
<h1>soap fault<br>
<small>
[<a class="el" href="group__axiom__soap.html">SOAP</a>]</small>
</h1><table border="0" cellpadding="0" cellspacing="0">
<tr><td></td></tr>
<tr><td colspan="2"><br><h2>Functions</h2></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top">AXIS2_EXTERN <br>
axiom_soap_fault_t *&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__axiom__soap__fault.html#g26600e5d6fad315500cad1752d60353d">axiom_soap_fault_create_with_parent</a> (const <a class="el" href="structaxutil__env.html">axutil_env_t</a> *env, struct axiom_soap_body *parent)</td></tr>

<tr><td class="memItemLeft" nowrap align="right" valign="top">AXIS2_EXTERN <br>
axiom_soap_fault_t *&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__axiom__soap__fault.html#gde9cbf2c313c0adeedea3ac60bf148b4">axiom_soap_fault_create_with_exception</a> (const <a class="el" href="structaxutil__env.html">axutil_env_t</a> *env, struct axiom_soap_body *parent, axis2_char_t *exception)</td></tr>

<tr><td class="memItemLeft" nowrap align="right" valign="top">AXIS2_EXTERN <br>
axiom_soap_fault_t *&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__axiom__soap__fault.html#ga4dfaa0b36503de97f4b4a6b9c1fce94">axiom_soap_fault_create_default_fault</a> (const <a class="el" href="structaxutil__env.html">axutil_env_t</a> *env, struct axiom_soap_body *parent, const axis2_char_t *code_value, const axis2_char_t *reason_text, const int soap_version)</td></tr>

<tr><td class="memItemLeft" nowrap align="right" valign="top">AXIS2_EXTERN void&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__axiom__soap__fault.html#g42e25abd4f06fe253fcb286cde0b2cb8">axiom_soap_fault_free</a> (axiom_soap_fault_t *fault, const <a class="el" href="structaxutil__env.html">axutil_env_t</a> *env)</td></tr>

<tr><td class="memItemLeft" nowrap align="right" valign="top">AXIS2_EXTERN struct <br>
axiom_soap_fault_code *&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__axiom__soap__fault.html#gdc09d5b63b273d0ad5ab13a1e6fed5c8">axiom_soap_fault_get_code</a> (axiom_soap_fault_t *fault, const <a class="el" href="structaxutil__env.html">axutil_env_t</a> *env)</td></tr>

<tr><td class="memItemLeft" nowrap align="right" valign="top">AXIS2_EXTERN struct <br>
axiom_soap_fault_reason *&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__axiom__soap__fault.html#g849b1969173ab4ff6394867262770179">axiom_soap_fault_get_reason</a> (axiom_soap_fault_t *fault, const <a class="el" href="structaxutil__env.html">axutil_env_t</a> *env)</td></tr>

<tr><td class="memItemLeft" nowrap align="right" valign="top">AXIS2_EXTERN struct <br>
axiom_soap_fault_node *&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__axiom__soap__fault.html#ga63629df8b84a56382c391e4fc0f30e1">axiom_soap_fault_get_node</a> (axiom_soap_fault_t *fault, const <a class="el" href="structaxutil__env.html">axutil_env_t</a> *env)</td></tr>

<tr><td class="memItemLeft" nowrap align="right" valign="top">AXIS2_EXTERN struct <br>
axiom_soap_fault_role *&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__axiom__soap__fault.html#gd83a049e57b3aec2aba62dd8d3349a94">axiom_soap_fault_get_role</a> (axiom_soap_fault_t *fault, const <a class="el" href="structaxutil__env.html">axutil_env_t</a> *env)</td></tr>

<tr><td class="memItemLeft" nowrap align="right" valign="top">AXIS2_EXTERN struct <br>
axiom_soap_fault_detail *&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__axiom__soap__fault.html#gefcbf6ce5d6408bc3f56da09ac2f9afa">axiom_soap_fault_get_detail</a> (axiom_soap_fault_t *fault, const <a class="el" href="structaxutil__env.html">axutil_env_t</a> *env)</td></tr>

<tr><td class="memItemLeft" nowrap align="right" valign="top">AXIS2_EXTERN <br>
axis2_char_t *&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__axiom__soap__fault.html#g09b8c77a2a3de953b14fa8a56a8ed11e">axiom_soap_fault_get_exception</a> (axiom_soap_fault_t *fault, const <a class="el" href="structaxutil__env.html">axutil_env_t</a> *env)</td></tr>

<tr><td class="memItemLeft" nowrap align="right" valign="top">AXIS2_EXTERN <br>
axis2_status_t&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__axiom__soap__fault.html#g0f64a1849d8b05a3281e6df8e1c0602b">axiom_soap_fault_set_exception</a> (axiom_soap_fault_t *fault, const <a class="el" href="structaxutil__env.html">axutil_env_t</a> *env, axis2_char_t *exception)</td></tr>

<tr><td class="memItemLeft" nowrap align="right" valign="top">AXIS2_EXTERN <br>
axiom_node_t *&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__axiom__soap__fault.html#g10bfdaaa36e70a7cab19f4d871cac698">axiom_soap_fault_get_base_node</a> (axiom_soap_fault_t *fault, const <a class="el" href="structaxutil__env.html">axutil_env_t</a> *env)</td></tr>

</table>
<hr><h2>Function Documentation</h2>
<a class="anchor" name="ga4dfaa0b36503de97f4b4a6b9c1fce94"></a><!-- doxytag: member="axiom_soap_fault.h::axiom_soap_fault_create_default_fault" ref="ga4dfaa0b36503de97f4b4a6b9c1fce94" args="(const axutil_env_t *env, struct axiom_soap_body *parent, const axis2_char_t *code_value, const axis2_char_t *reason_text, const int soap_version)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">AXIS2_EXTERN axiom_soap_fault_t* axiom_soap_fault_create_default_fault           </td>
          <td>(</td>
          <td class="paramtype">const <a class="el" href="structaxutil__env.html">axutil_env_t</a> *&nbsp;</td>
          <td class="paramname"> <em>env</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">struct axiom_soap_body *&nbsp;</td>
          <td class="paramname"> <em>parent</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const axis2_char_t *&nbsp;</td>
          <td class="paramname"> <em>code_value</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const axis2_char_t *&nbsp;</td>
          <td class="paramname"> <em>reason_text</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const int&nbsp;</td>
          <td class="paramname"> <em>soap_version</em></td><td>&nbsp;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td><td width="100%"></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
<dl compact><dt><b>Parameters:</b></dt><dd>
  <table border="0" cellspacing="2" cellpadding="0">
    <tr><td valign="top"></td><td valign="top"><em>env</em>&nbsp;</td><td>environment must not be NULL </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>parent</em>&nbsp;</td><td>soap body struct must not be NULL </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>code_value</em>&nbsp;</td><td></td></tr>
    <tr><td valign="top"></td><td valign="top"><em>reason_text</em>&nbsp;</td><td></td></tr>
    <tr><td valign="top"></td><td valign="top"><em>soap_version</em>&nbsp;</td><td></td></tr>
  </table>
</dl>
<dl class="return" compact><dt><b>Returns:</b></dt><dd>the created default OM SOAP fault </dd></dl>

</div>
</div><p>
<a class="anchor" name="gde9cbf2c313c0adeedea3ac60bf148b4"></a><!-- doxytag: member="axiom_soap_fault.h::axiom_soap_fault_create_with_exception" ref="gde9cbf2c313c0adeedea3ac60bf148b4" args="(const axutil_env_t *env, struct axiom_soap_body *parent, axis2_char_t *exception)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">AXIS2_EXTERN axiom_soap_fault_t* axiom_soap_fault_create_with_exception           </td>
          <td>(</td>
          <td class="paramtype">const <a class="el" href="structaxutil__env.html">axutil_env_t</a> *&nbsp;</td>
          <td class="paramname"> <em>env</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">struct axiom_soap_body *&nbsp;</td>
          <td class="paramname"> <em>parent</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">axis2_char_t *&nbsp;</td>
          <td class="paramname"> <em>exception</em></td><td>&nbsp;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td><td width="100%"></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
create an returns a axiom_soap_fault_t struct with a soap fault detail element and have this exceptio string as a text of a child of soap fault detail <dl compact><dt><b>Parameters:</b></dt><dd>
  <table border="0" cellspacing="2" cellpadding="0">
    <tr><td valign="top"></td><td valign="top"><em>env</em>&nbsp;</td><td>environment must not be NULL </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>parent</em>&nbsp;</td><td>soap body struct must not be NULL </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>exceptio</em>&nbsp;</td><td>an error string must not be NULL </td></tr>
  </table>
</dl>
<dl class="return" compact><dt><b>Returns:</b></dt><dd>pointer to axiom_soap_fault_t on success , otherwise return NULL </dd></dl>

</div>
</div><p>
<a class="anchor" name="g26600e5d6fad315500cad1752d60353d"></a><!-- doxytag: member="axiom_soap_fault.h::axiom_soap_fault_create_with_parent" ref="g26600e5d6fad315500cad1752d60353d" args="(const axutil_env_t *env, struct axiom_soap_body *parent)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">AXIS2_EXTERN axiom_soap_fault_t* axiom_soap_fault_create_with_parent           </td>
          <td>(</td>
          <td class="paramtype">const <a class="el" href="structaxutil__env.html">axutil_env_t</a> *&nbsp;</td>
          <td class="paramname"> <em>env</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">struct axiom_soap_body *&nbsp;</td>
          <td class="paramname"> <em>parent</em></td><td>&nbsp;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td><td width="100%"></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
creates a soap fault struct <dl compact><dt><b>Parameters:</b></dt><dd>
  <table border="0" cellspacing="2" cellpadding="0">
    <tr><td valign="top"></td><td valign="top"><em>env</em>&nbsp;</td><td>environment must not be NULL </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>parent</em>&nbsp;</td><td>soap body struct to which this soap fault is the child </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>env</em>&nbsp;</td><td>Environment. MUST NOT be NULL </td></tr>
  </table>
</dl>
<dl class="return" compact><dt><b>Returns:</b></dt><dd>pointer to axiom_soap_fault_t struct on success otherwise return NULL with error code set in environments error </dd></dl>

</div>
</div><p>
<a class="anchor" name="g42e25abd4f06fe253fcb286cde0b2cb8"></a><!-- doxytag: member="axiom_soap_fault.h::axiom_soap_fault_free" ref="g42e25abd4f06fe253fcb286cde0b2cb8" args="(axiom_soap_fault_t *fault, const axutil_env_t *env)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">AXIS2_EXTERN void axiom_soap_fault_free           </td>
          <td>(</td>
          <td class="paramtype">axiom_soap_fault_t *&nbsp;</td>
          <td class="paramname"> <em>fault</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const <a class="el" href="structaxutil__env.html">axutil_env_t</a> *&nbsp;</td>
          <td class="paramname"> <em>env</em></td><td>&nbsp;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td><td width="100%"></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
Free an axiom_soap_fault <dl compact><dt><b>Parameters:</b></dt><dd>
  <table border="0" cellspacing="2" cellpadding="0">
    <tr><td valign="top"></td><td valign="top"><em>fault</em>&nbsp;</td><td>pointer to soap_fault struct </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>env</em>&nbsp;</td><td>Environment. MUST NOT be NULL </td></tr>
  </table>
</dl>
<dl class="return" compact><dt><b>Returns:</b></dt><dd>status of the op. AXIS2_SUCCESS on success else AXIS2_FAILURE </dd></dl>

</div>
</div><p>
<a class="anchor" name="g10bfdaaa36e70a7cab19f4d871cac698"></a><!-- doxytag: member="axiom_soap_fault.h::axiom_soap_fault_get_base_node" ref="g10bfdaaa36e70a7cab19f4d871cac698" args="(axiom_soap_fault_t *fault, const axutil_env_t *env)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">AXIS2_EXTERN axiom_node_t* axiom_soap_fault_get_base_node           </td>
          <td>(</td>
          <td class="paramtype">axiom_soap_fault_t *&nbsp;</td>
          <td class="paramname"> <em>fault</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const <a class="el" href="structaxutil__env.html">axutil_env_t</a> *&nbsp;</td>
          <td class="paramname"> <em>env</em></td><td>&nbsp;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td><td width="100%"></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
returns the axiom_node_t struct which is wrapped by this soap fault struct <dl compact><dt><b>Parameters:</b></dt><dd>
  <table border="0" cellspacing="2" cellpadding="0">
    <tr><td valign="top"></td><td valign="top"><em>fault</em>&nbsp;</td><td>soap fault struct </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>env</em>&nbsp;</td><td>environment must not be NULL </td></tr>
  </table>
</dl>
<dl class="return" compact><dt><b>Returns:</b></dt><dd>a pointer to axiom_node_t struct if an om node is associated with this soap fault struct, otherwise return NULL </dd></dl>

</div>
</div><p>
<a class="anchor" name="gdc09d5b63b273d0ad5ab13a1e6fed5c8"></a><!-- doxytag: member="axiom_soap_fault.h::axiom_soap_fault_get_code" ref="gdc09d5b63b273d0ad5ab13a1e6fed5c8" args="(axiom_soap_fault_t *fault, const axutil_env_t *env)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">AXIS2_EXTERN struct axiom_soap_fault_code* axiom_soap_fault_get_code           </td>
          <td>(</td>
          <td class="paramtype">axiom_soap_fault_t *&nbsp;</td>
          <td class="paramname"> <em>fault</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const <a class="el" href="structaxutil__env.html">axutil_env_t</a> *&nbsp;</td>
          <td class="paramname"> <em>env</em></td><td>&nbsp;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td><td width="100%"><code> [read]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
this function returns a axiom_soap_fault_code struct if a fault code is associated with this soap fault only valid when called after building the soap fault <dl compact><dt><b>Parameters:</b></dt><dd>
  <table border="0" cellspacing="2" cellpadding="0">
    <tr><td valign="top"></td><td valign="top"><em>fault</em>&nbsp;</td><td>soap fault struct </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>env</em>&nbsp;</td><td>environment must not be NULL </td></tr>
  </table>
</dl>
<dl class="return" compact><dt><b>Returns:</b></dt><dd>pointer to soap_fault_code struct if one is associated with this soap_fault struct , NULL is returned otherwise </dd></dl>

</div>
</div><p>
<a class="anchor" name="gefcbf6ce5d6408bc3f56da09ac2f9afa"></a><!-- doxytag: member="axiom_soap_fault.h::axiom_soap_fault_get_detail" ref="gefcbf6ce5d6408bc3f56da09ac2f9afa" args="(axiom_soap_fault_t *fault, const axutil_env_t *env)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">AXIS2_EXTERN struct axiom_soap_fault_detail* axiom_soap_fault_get_detail           </td>
          <td>(</td>
          <td class="paramtype">axiom_soap_fault_t *&nbsp;</td>
          <td class="paramname"> <em>fault</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const <a class="el" href="structaxutil__env.html">axutil_env_t</a> *&nbsp;</td>
          <td class="paramname"> <em>env</em></td><td>&nbsp;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td><td width="100%"><code> [read]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
<dl compact><dt><b>Parameters:</b></dt><dd>
  <table border="0" cellspacing="2" cellpadding="0">
    <tr><td valign="top"></td><td valign="top"><em>fault</em>&nbsp;</td><td>soap fault struct </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>env</em>&nbsp;</td><td>environment must not be NULL </td></tr>
  </table>
</dl>
<dl class="return" compact><dt><b>Returns:</b></dt><dd>a pointer to soap_fault_code struct if one is associated with this soap_fault struct , NULL is returned otherwise </dd></dl>

</div>
</div><p>
<a class="anchor" name="g09b8c77a2a3de953b14fa8a56a8ed11e"></a><!-- doxytag: member="axiom_soap_fault.h::axiom_soap_fault_get_exception" ref="g09b8c77a2a3de953b14fa8a56a8ed11e" args="(axiom_soap_fault_t *fault, const axutil_env_t *env)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">AXIS2_EXTERN axis2_char_t* axiom_soap_fault_get_exception           </td>
          <td>(</td>
          <td class="paramtype">axiom_soap_fault_t *&nbsp;</td>
          <td class="paramname"> <em>fault</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const <a class="el" href="structaxutil__env.html">axutil_env_t</a> *&nbsp;</td>
          <td class="paramname"> <em>env</em></td><td>&nbsp;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td><td width="100%"></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
<dl compact><dt><b>Parameters:</b></dt><dd>
  <table border="0" cellspacing="2" cellpadding="0">
    <tr><td valign="top"></td><td valign="top"><em>fault</em>&nbsp;</td><td>soap fault struct </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>env</em>&nbsp;</td><td>enviroment must not be NULL </td></tr>
  </table>
</dl>
<dl class="return" compact><dt><b>Returns:</b></dt><dd>a pointer to soap_fault_code struct if one is associated with this soap_fault struct , NULL is returned otherwise </dd></dl>

</div>
</div><p>
<a class="anchor" name="ga63629df8b84a56382c391e4fc0f30e1"></a><!-- doxytag: member="axiom_soap_fault.h::axiom_soap_fault_get_node" ref="ga63629df8b84a56382c391e4fc0f30e1" args="(axiom_soap_fault_t *fault, const axutil_env_t *env)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">AXIS2_EXTERN struct axiom_soap_fault_node* axiom_soap_fault_get_node           </td>
          <td>(</td>
          <td class="paramtype">axiom_soap_fault_t *&nbsp;</td>
          <td class="paramname"> <em>fault</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const <a class="el" href="structaxutil__env.html">axutil_env_t</a> *&nbsp;</td>
          <td class="paramname"> <em>env</em></td><td>&nbsp;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td><td width="100%"><code> [read]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
<dl compact><dt><b>Parameters:</b></dt><dd>
  <table border="0" cellspacing="2" cellpadding="0">
    <tr><td valign="top"></td><td valign="top"><em>fault</em>&nbsp;</td><td>soap fault struct </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>env</em>&nbsp;</td><td>environment must not be NULL </td></tr>
  </table>
</dl>
<dl class="return" compact><dt><b>Returns:</b></dt><dd>pointer to soap_fault_node struct if one is associated with this soap_fault struct , NULL is returned otherwise </dd></dl>

</div>
</div><p>
<a class="anchor" name="g849b1969173ab4ff6394867262770179"></a><!-- doxytag: member="axiom_soap_fault.h::axiom_soap_fault_get_reason" ref="g849b1969173ab4ff6394867262770179" args="(axiom_soap_fault_t *fault, const axutil_env_t *env)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">AXIS2_EXTERN struct axiom_soap_fault_reason* axiom_soap_fault_get_reason           </td>
          <td>(</td>
          <td class="paramtype">axiom_soap_fault_t *&nbsp;</td>
          <td class="paramname"> <em>fault</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const <a class="el" href="structaxutil__env.html">axutil_env_t</a> *&nbsp;</td>
          <td class="paramname"> <em>env</em></td><td>&nbsp;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td><td width="100%"><code> [read]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
<dl compact><dt><b>Parameters:</b></dt><dd>
  <table border="0" cellspacing="2" cellpadding="0">
    <tr><td valign="top"></td><td valign="top"><em>fault</em>&nbsp;</td><td>soap fault struct </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>env</em>&nbsp;</td><td>environment must not be NULL </td></tr>
  </table>
</dl>
<dl class="return" compact><dt><b>Returns:</b></dt><dd>pointer to soap_fault_reason struct if one is associated with this soap_fault struct , NULL is returned otherwise </dd></dl>

</div>
</div><p>
<a class="anchor" name="gd83a049e57b3aec2aba62dd8d3349a94"></a><!-- doxytag: member="axiom_soap_fault.h::axiom_soap_fault_get_role" ref="gd83a049e57b3aec2aba62dd8d3349a94" args="(axiom_soap_fault_t *fault, const axutil_env_t *env)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">AXIS2_EXTERN struct axiom_soap_fault_role* axiom_soap_fault_get_role           </td>
          <td>(</td>
          <td class="paramtype">axiom_soap_fault_t *&nbsp;</td>
          <td class="paramname"> <em>fault</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const <a class="el" href="structaxutil__env.html">axutil_env_t</a> *&nbsp;</td>
          <td class="paramname"> <em>env</em></td><td>&nbsp;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td><td width="100%"><code> [read]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
<dl compact><dt><b>Parameters:</b></dt><dd>
  <table border="0" cellspacing="2" cellpadding="0">
    <tr><td valign="top"></td><td valign="top"><em>fault</em>&nbsp;</td><td>soap fault struct </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>env</em>&nbsp;</td><td>environment must not be NULL </td></tr>
  </table>
</dl>
<dl class="return" compact><dt><b>Returns:</b></dt><dd>pointer to soap_fault_code struct if one is associated with this soap_fault struct , NULL is returned otherwise </dd></dl>

</div>
</div><p>
<a class="anchor" name="g0f64a1849d8b05a3281e6df8e1c0602b"></a><!-- doxytag: member="axiom_soap_fault.h::axiom_soap_fault_set_exception" ref="g0f64a1849d8b05a3281e6df8e1c0602b" args="(axiom_soap_fault_t *fault, const axutil_env_t *env, axis2_char_t *exception)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">AXIS2_EXTERN axis2_status_t axiom_soap_fault_set_exception           </td>
          <td>(</td>
          <td class="paramtype">axiom_soap_fault_t *&nbsp;</td>
          <td class="paramname"> <em>fault</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const <a class="el" href="structaxutil__env.html">axutil_env_t</a> *&nbsp;</td>
          <td class="paramname"> <em>env</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">axis2_char_t *&nbsp;</td>
          <td class="paramname"> <em>exception</em></td><td>&nbsp;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td><td width="100%"></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
set an error string <dl compact><dt><b>Parameters:</b></dt><dd>
  <table border="0" cellspacing="2" cellpadding="0">
    <tr><td valign="top"></td><td valign="top"><em>fualt</em>&nbsp;</td><td>soap fault struct </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>env</em>&nbsp;</td><td>enviroment must not be NULL </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>exception</em>&nbsp;</td><td>error message to be stored on soap fault </td></tr>
  </table>
</dl>

</div>
</div><p>
<hr size="1"><address style="text-align: right;"><small>Generated on Fri Apr 17 11:49:44 2009 for Axis2/C by&nbsp;
<a href="http://www.doxygen.org/index.html">
<img src="doxygen.png" alt="doxygen" align="middle" border="0"></a> 1.5.3 </small></address>
</body>
</html>


<|start_filename|>xdocs/api/html/tcpmon__entry_8h-source.html<|end_filename|>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html><head><meta http-equiv="Content-Type" content="text/html;charset=UTF-8">
<title>Axis2/C: tcpmon_entry.h Source File</title>
<link href="doxygen.css" rel="stylesheet" type="text/css">
<link href="tabs.css" rel="stylesheet" type="text/css">
</head><body>
<!-- Generated by Doxygen 1.5.3 -->
<div class="tabs">
  <ul>
    <li><a href="index.html"><span>Main&nbsp;Page</span></a></li>
    <li><a href="modules.html"><span>Modules</span></a></li>
    <li><a href="annotated.html"><span>Classes</span></a></li>
    <li class="current"><a href="files.html"><span>Files</span></a></li>
    <li><a href="dirs.html"><span>Directories</span></a></li>
    <li><a href="pages.html"><span>Related&nbsp;Pages</span></a></li>
    <li><a href="examples.html"><span>Examples</span></a></li>
    <li>
      <form action="search.php" method="get">
        <table cellspacing="0" cellpadding="0" border="0">
          <tr>
            <td><label>&nbsp;<u>S</u>earch&nbsp;for&nbsp;</label></td>
            <td><input type="text" name="query" value="" size="20" accesskey="s"/></td>
          </tr>
        </table>
      </form>
    </li>
  </ul>
</div>
<div class="nav">
<a class="el" href="dir_f60961de8e5edc3b2658ef023e959e45.html">deploy</a>&nbsp;&raquo&nbsp;<a class="el" href="dir_6b4e91e54b7316b376882a6402adbf44.html">include</a>&nbsp;&raquo&nbsp;<a class="el" href="dir_df3a7695d5a9e696f30b948b566829e7.html">axis2-1.6.0</a></div>
<h1>tcpmon_entry.h</h1><a href="tcpmon__entry_8h.html">Go to the documentation of this file.</a><div class="fragment"><pre class="fragment"><a name="l00001"></a>00001 
<a name="l00002"></a>00002 <span class="comment">/*</span>
<a name="l00003"></a>00003 <span class="comment"> * Licensed to the Apache Software Foundation (ASF) under one or more</span>
<a name="l00004"></a>00004 <span class="comment"> * contributor license agreements.  See the NOTICE file distributed with</span>
<a name="l00005"></a>00005 <span class="comment"> * this work for additional information regarding copyright ownership.</span>
<a name="l00006"></a>00006 <span class="comment"> * The ASF licenses this file to You under the Apache License, Version 2.0</span>
<a name="l00007"></a>00007 <span class="comment"> * (the "License"); you may not use this file except in compliance with</span>
<a name="l00008"></a>00008 <span class="comment"> * the License.  You may obtain a copy of the License at</span>
<a name="l00009"></a>00009 <span class="comment"> *</span>
<a name="l00010"></a>00010 <span class="comment"> *      http://www.apache.org/licenses/LICENSE-2.0</span>
<a name="l00011"></a>00011 <span class="comment"> *</span>
<a name="l00012"></a>00012 <span class="comment"> * Unless required by applicable law or agreed to in writing, software</span>
<a name="l00013"></a>00013 <span class="comment"> * distributed under the License is distributed on an "AS IS" BASIS,</span>
<a name="l00014"></a>00014 <span class="comment"> * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.</span>
<a name="l00015"></a>00015 <span class="comment"> * See the License for the specific language governing permissions and</span>
<a name="l00016"></a>00016 <span class="comment"> * limitations under the License.</span>
<a name="l00017"></a>00017 <span class="comment"> */</span>
<a name="l00018"></a>00018 
<a name="l00019"></a>00019 <span class="preprocessor">#ifndef TCPMON_ENTRY_H</span>
<a name="l00020"></a>00020 <span class="preprocessor"></span><span class="preprocessor">#define TCPMON_ENTRY_H</span>
<a name="l00021"></a>00021 <span class="preprocessor"></span>
<a name="l00022"></a>00022 <span class="preprocessor">#include &lt;<a class="code" href="axutil__env_8h.html" title="Axis2 environment that acts as a container for error, log and memory allocator routines...">axutil_env.h</a>&gt;</span>
<a name="l00023"></a>00023 <span class="preprocessor">#include &lt;axutil_string.h&gt;</span>
<a name="l00024"></a>00024 
<a name="l00030"></a>00030 <span class="preprocessor">#ifdef __cplusplus</span>
<a name="l00031"></a>00031 <span class="preprocessor"></span><span class="keyword">extern</span> <span class="stringliteral">"C"</span>
<a name="l00032"></a>00032 {
<a name="l00033"></a>00033 <span class="preprocessor">#endif</span>
<a name="l00034"></a>00034 <span class="preprocessor"></span>
<a name="l00041"></a>00041     <span class="keyword">typedef</span> <span class="keyword">struct </span>tcpmon_entry_ops tcpmon_entry_ops_t;
<a name="l00042"></a>00042     <span class="keyword">typedef</span> <span class="keyword">struct </span>tcpmon_entry tcpmon_entry_t;
<a name="l00043"></a>00043 
<a name="l00044"></a>00044     <span class="keyword">struct </span>tcpmon_entry_ops
<a name="l00045"></a>00045     {
<a name="l00046"></a>00046 
<a name="l00053"></a>00053         axis2_status_t(
<a name="l00054"></a>00054             AXIS2_CALL
<a name="l00055"></a>00055             * free)(
<a name="l00056"></a>00056                 tcpmon_entry_t * entry,
<a name="l00057"></a>00057                 <span class="keyword">const</span> <a class="code" href="structaxutil__env.html" title="Axis2 Environment struct.">axutil_env_t</a> * env);
<a name="l00058"></a>00058 
<a name="l00064"></a>00064         axis2_char_t *(
<a name="l00065"></a>00065             AXIS2_CALL
<a name="l00066"></a>00066             * arrived_time)(
<a name="l00067"></a>00067                 tcpmon_entry_t * entry,
<a name="l00068"></a>00068                 <span class="keyword">const</span> <a class="code" href="structaxutil__env.html" title="Axis2 Environment struct.">axutil_env_t</a> * env);
<a name="l00069"></a>00069 
<a name="l00075"></a>00075         axis2_char_t *(
<a name="l00076"></a>00076             AXIS2_CALL
<a name="l00077"></a>00077             * sent_time)(
<a name="l00078"></a>00078                 tcpmon_entry_t * entry,
<a name="l00079"></a>00079                 <span class="keyword">const</span> <a class="code" href="structaxutil__env.html" title="Axis2 Environment struct.">axutil_env_t</a> * env);
<a name="l00080"></a>00080 
<a name="l00086"></a>00086         axis2_char_t *(
<a name="l00087"></a>00087             AXIS2_CALL
<a name="l00088"></a>00088             * time_diff)(
<a name="l00089"></a>00089                 tcpmon_entry_t * entry,
<a name="l00090"></a>00090                 <span class="keyword">const</span> <a class="code" href="structaxutil__env.html" title="Axis2 Environment struct.">axutil_env_t</a> * env);
<a name="l00091"></a>00091 
<a name="l00097"></a>00097         axis2_char_t *(
<a name="l00098"></a>00098             AXIS2_CALL
<a name="l00099"></a>00099             * sent_data)(
<a name="l00100"></a>00100                 tcpmon_entry_t * entry,
<a name="l00101"></a>00101                 <span class="keyword">const</span> <a class="code" href="structaxutil__env.html" title="Axis2 Environment struct.">axutil_env_t</a> * env);
<a name="l00102"></a>00102 
<a name="l00108"></a>00108         axis2_char_t *(
<a name="l00109"></a>00109             AXIS2_CALL
<a name="l00110"></a>00110             * arrived_data)(
<a name="l00111"></a>00111                 tcpmon_entry_t * entry,
<a name="l00112"></a>00112                 <span class="keyword">const</span> <a class="code" href="structaxutil__env.html" title="Axis2 Environment struct.">axutil_env_t</a> * env);
<a name="l00113"></a>00113 
<a name="l00119"></a>00119         axis2_char_t *(
<a name="l00120"></a>00120             AXIS2_CALL
<a name="l00121"></a>00121             * sent_headers)(
<a name="l00122"></a>00122                 tcpmon_entry_t * entry,
<a name="l00123"></a>00123                 <span class="keyword">const</span> <a class="code" href="structaxutil__env.html" title="Axis2 Environment struct.">axutil_env_t</a> * env);
<a name="l00124"></a>00124 
<a name="l00130"></a>00130         axis2_char_t *(
<a name="l00131"></a>00131             AXIS2_CALL
<a name="l00132"></a>00132             * arrived_headers)(
<a name="l00133"></a>00133                 tcpmon_entry_t * entry,
<a name="l00134"></a>00134                 <span class="keyword">const</span> <a class="code" href="structaxutil__env.html" title="Axis2 Environment struct.">axutil_env_t</a> * env);
<a name="l00135"></a>00135 
<a name="l00141"></a>00141         axis2_bool_t(
<a name="l00142"></a>00142             AXIS2_CALL
<a name="l00143"></a>00143             * is_success)(
<a name="l00144"></a>00144                 tcpmon_entry_t * entry,
<a name="l00145"></a>00145                 <span class="keyword">const</span> <a class="code" href="structaxutil__env.html" title="Axis2 Environment struct.">axutil_env_t</a> * env);
<a name="l00146"></a>00146 
<a name="l00147"></a>00147         int(
<a name="l00148"></a>00148             AXIS2_CALL
<a name="l00149"></a>00149             * get_format_bit)(
<a name="l00150"></a>00150                 tcpmon_entry_t * entry,
<a name="l00151"></a>00151                 <span class="keyword">const</span> <a class="code" href="structaxutil__env.html" title="Axis2 Environment struct.">axutil_env_t</a> * env);
<a name="l00152"></a>00152 
<a name="l00153"></a>00153         int(
<a name="l00154"></a>00154             AXIS2_CALL
<a name="l00155"></a>00155             * get_sent_data_length)(
<a name="l00156"></a>00156                 tcpmon_entry_t * entry,
<a name="l00157"></a>00157                 <span class="keyword">const</span> <a class="code" href="structaxutil__env.html" title="Axis2 Environment struct.">axutil_env_t</a> * env);
<a name="l00158"></a>00158 
<a name="l00159"></a>00159         int(
<a name="l00160"></a>00160             AXIS2_CALL
<a name="l00161"></a>00161             * get_arrived_data_length)(
<a name="l00162"></a>00162                 tcpmon_entry_t * entry,
<a name="l00163"></a>00163                 <span class="keyword">const</span> <a class="code" href="structaxutil__env.html" title="Axis2 Environment struct.">axutil_env_t</a> * env);
<a name="l00164"></a>00164 
<a name="l00165"></a>00165         axis2_status_t(
<a name="l00166"></a>00166             AXIS2_CALL
<a name="l00167"></a>00167             * set_format_bit)(
<a name="l00168"></a>00168                 tcpmon_entry_t * entry,
<a name="l00169"></a>00169                 <span class="keyword">const</span> <a class="code" href="structaxutil__env.html" title="Axis2 Environment struct.">axutil_env_t</a> * env,
<a name="l00170"></a>00170                 <span class="keywordtype">int</span> format_bit);
<a name="l00171"></a>00171     };
<a name="l00172"></a>00172 
<a name="l00173"></a>00173     <span class="keyword">struct </span>tcpmon_entry
<a name="l00174"></a>00174     {
<a name="l00175"></a>00175         tcpmon_entry_ops_t *ops;
<a name="l00176"></a>00176     };
<a name="l00177"></a>00177 
<a name="l00183"></a>00183     tcpmon_entry_t *AXIS2_CALL
<a name="l00184"></a>00184     <a class="code" href="group__represent.html#g04eb45ef20fbfd2007ee4cda3e887f7f">tcpmon_entry_create</a>(
<a name="l00185"></a>00185         <span class="keyword">const</span> <a class="code" href="structaxutil__env.html" title="Axis2 Environment struct.">axutil_env_t</a> * env);
<a name="l00186"></a>00186 
<a name="l00187"></a>00187     <span class="comment">/*************************** Function macros **********************************/</span>
<a name="l00188"></a>00188 
<a name="l00189"></a>00189 <span class="preprocessor">#define TCPMON_ENTRY_FREE(entry, env) \</span>
<a name="l00190"></a>00190 <span class="preprocessor">        ((entry)-&gt;ops-&gt;free (entry, env))</span>
<a name="l00191"></a>00191 <span class="preprocessor"></span>
<a name="l00192"></a>00192 <span class="preprocessor">#define TCPMON_ENTRY_ARRIVED_TIME(entry, env) \</span>
<a name="l00193"></a>00193 <span class="preprocessor">        ((entry)-&gt;ops-&gt;arrived_time(entry, env))</span>
<a name="l00194"></a>00194 <span class="preprocessor"></span>
<a name="l00195"></a>00195 <span class="preprocessor">#define TCPMON_ENTRY_SENT_TIME(entry, env) \</span>
<a name="l00196"></a>00196 <span class="preprocessor">        ((entry)-&gt;ops-&gt;sent_time(entry, env))</span>
<a name="l00197"></a>00197 <span class="preprocessor"></span>
<a name="l00198"></a>00198 <span class="preprocessor">#define TCPMON_ENTRY_TIME_DIFF(entry, env) \</span>
<a name="l00199"></a>00199 <span class="preprocessor">        ((entry)-&gt;ops-&gt;time_diff(entry, env))</span>
<a name="l00200"></a>00200 <span class="preprocessor"></span>
<a name="l00201"></a>00201 <span class="preprocessor">#define TCPMON_ENTRY_SENT_DATA(entry, env) \</span>
<a name="l00202"></a>00202 <span class="preprocessor">        ((entry)-&gt;ops-&gt;sent_data(entry, env))</span>
<a name="l00203"></a>00203 <span class="preprocessor"></span>
<a name="l00204"></a>00204 <span class="preprocessor">#define TCPMON_ENTRY_ARRIVED_DATA(entry, env) \</span>
<a name="l00205"></a>00205 <span class="preprocessor">        ((entry)-&gt;ops-&gt;arrived_data(entry, env))</span>
<a name="l00206"></a>00206 <span class="preprocessor"></span>
<a name="l00207"></a>00207 <span class="preprocessor">#define TCPMON_ENTRY_SENT_HEADERS(entry, env) \</span>
<a name="l00208"></a>00208 <span class="preprocessor">        ((entry)-&gt;ops-&gt;sent_headers(entry, env))</span>
<a name="l00209"></a>00209 <span class="preprocessor"></span>
<a name="l00210"></a>00210 <span class="preprocessor">#define TCPMON_ENTRY_ARRIVED_HEADERS(entry, env) \</span>
<a name="l00211"></a>00211 <span class="preprocessor">        ((entry)-&gt;ops-&gt;arrived_headers(entry, env))</span>
<a name="l00212"></a>00212 <span class="preprocessor"></span>
<a name="l00213"></a>00213 <span class="preprocessor">#define TCPMON_ENTRY_IS_SUCCESS(entry, env) \</span>
<a name="l00214"></a>00214 <span class="preprocessor">        ((entry)-&gt;ops-&gt;is_success(entry, env))</span>
<a name="l00215"></a>00215 <span class="preprocessor"></span>
<a name="l00216"></a>00216 <span class="preprocessor">#define TCPMON_ENTRY_SET_FORMAT_BIT(entry, env, format_bit) \</span>
<a name="l00217"></a>00217 <span class="preprocessor">        ((entry)-&gt;ops-&gt;set_format_bit(entry, env, format_bit))</span>
<a name="l00218"></a>00218 <span class="preprocessor"></span>
<a name="l00219"></a>00219 <span class="preprocessor">#define TCPMON_ENTRY_GET_FORMAT_BIT(entry, env) \</span>
<a name="l00220"></a>00220 <span class="preprocessor">        ((entry)-&gt;ops-&gt;get_format_bit(entry, env))</span>
<a name="l00221"></a>00221 <span class="preprocessor"></span>
<a name="l00222"></a>00222 <span class="preprocessor">#define TCPMON_ENTRY_GET_SENT_DATA_LENGTH(entry, env) \</span>
<a name="l00223"></a>00223 <span class="preprocessor">        ((entry)-&gt;ops-&gt;get_sent_data_length(entry, env))</span>
<a name="l00224"></a>00224 <span class="preprocessor"></span>
<a name="l00225"></a>00225 <span class="preprocessor">#define TCPMON_ENTRY_GET_ARRIVED_DATA_LENGTH(entry, env) \</span>
<a name="l00226"></a>00226 <span class="preprocessor">        ((entry)-&gt;ops-&gt;get_arrived_data_length(entry, env))</span>
<a name="l00227"></a>00227 <span class="preprocessor"></span>
<a name="l00230"></a>00230 <span class="preprocessor">#ifdef __cplusplus</span>
<a name="l00231"></a>00231 <span class="preprocessor"></span>}
<a name="l00232"></a>00232 <span class="preprocessor">#endif</span>
<a name="l00233"></a>00233 <span class="preprocessor"></span>
<a name="l00234"></a>00234 <span class="preprocessor">#endif                          </span><span class="comment">/* TCPMON_ENTRY_H */</span>
</pre></div><hr size="1"><address style="text-align: right;"><small>Generated on Thu Apr 16 11:31:21 2009 for Axis2/C by&nbsp;
<a href="http://www.doxygen.org/index.html">
<img src="doxygen.png" alt="doxygen" align="middle" border="0"></a> 1.5.3 </small></address>
</body>
</html>


<|start_filename|>test/core/transport/http/test_http_transport.c<|end_filename|>

/*
 * 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.
 */

#include <stdio.h>
#include <axis2_http_request_line.h>
#include <axis2_http_status_line.h>
#include <axis2_http_header.h>
#include <axutil_error_default.h>
#include <axutil_url.h>
#include <axis2_http_client.h>
#ifdef AXIS2_JSON_ENABLED
#include <axiom.h>
#include <axutil_utils.h>

#include <json.h>
#include <axis2_json_writer.h>
#include <axis2_json_reader.h>
#endif

typedef struct a
{
    axis2_char_t *value;
}
a;

axutil_env_t *
test_init(
    )
{
    axutil_allocator_t *allocator = axutil_allocator_init(NULL);
    axutil_error_t *error = axutil_error_create(allocator);
    axutil_env_t *env = axutil_env_create_with_error(allocator, error);
    return env;
}

void
test_http_request_line(
    const axutil_env_t * env)
{
    const char *request_line_str =
        "POST http://ws.apache.org/axis2/c/services/test_svc/test_op?x=1 HTTP/1.1\r\n";
    axis2_http_request_line_t *request_line;

    printf("Starting http_request_line tests\n");
    request_line = axis2_http_request_line_parse_line(env, request_line_str);
    printf("Method: %s|URI: %s|HTTP Version: %s|\n",
           axis2_http_request_line_get_method(request_line, env),
           axis2_http_request_line_get_uri(request_line, env),
           axis2_http_request_line_get_http_version(request_line, env));
    axis2_http_request_line_free(request_line, env);
    printf("Finished http_request_line tests ..........\n\n");
}

void
test_http_status_line(
    const axutil_env_t * env)
{
    const char *status_line_str = "HTTP/1.1 202 Accepted\r\n";
    axis2_http_status_line_t *status_line;

    printf("Starting http_status_line tests\n");
    status_line = axis2_http_status_line_create(env, status_line_str);
    printf("Staus Line starts with HTTP ? :%d\n",
           axis2_http_status_line_starts_with_http(status_line, env));
    printf("HTTP Version :%s|Status Code:%d|Reason Phrase:%s|\n",
           axis2_http_status_line_get_http_version(status_line, env),
           axis2_http_status_line_get_status_code(status_line, env),
           axis2_http_status_line_get_reason_phrase(status_line, env));
    printf("to_string :%s\n",
           axis2_http_status_line_to_string(status_line, env));
    axis2_http_status_line_free(status_line, env);
    printf("Finished http_status_line tests ..........\n\n");
}

void
test_http_header(
    const axutil_env_t * env)
{
    const char *header_name = "Content-Type";
    const char *header_value = "text/xml";
    const char *str_header = "Content-Type: text/xml; charset=UTF-8\r\n";
    axis2_http_header_t *http_header;
    axis2_char_t *external_form = NULL;

    printf("Starting http_header tests\n");
    http_header = axis2_http_header_create(env, header_name, header_value);
    external_form = axis2_http_header_to_external_form(http_header, env);
    printf("Heder Name :%s|Header Value:%s|External Form:%s\n",
           axis2_http_header_get_name(http_header, env),
           axis2_http_header_get_value(http_header, env), external_form);
    AXIS2_FREE(env->allocator, external_form);
    axis2_http_header_free(http_header, env);

    http_header = axis2_http_header_create_by_str(env, str_header);
    printf("Finished http_header tests ..........\n\n");
}

void
test_url(
    const axutil_env_t * env)
{
    const axis2_char_t *str_url = "http://ws.apache.org/axis2/";
    axutil_url_t *url = axutil_url_parse_string(env, str_url);
    if (!url)
    {
        printf("URL is NULL\n");
        return;
    }
    printf("Starting URL Test ....\n");
    printf
        ("Parsed URL : \n Protocol :%s|\n Host :%s|\n Port :%d|\n Path : %s|\n",
         axutil_url_get_protocol(url, env), axutil_url_get_host(url, env),
         axutil_url_get_port(url, env), axutil_url_get_path(url, env));
    printf("End of URL Test ... \n");
    axutil_url_free(url, env);
}

void
test_http_client(
    const axutil_env_t * env)
{
    axis2_http_client_t *client = NULL;
    axis2_http_simple_request_t *request = NULL;
    axis2_http_request_line_t *request_line = NULL;
    axutil_url_t *url = NULL;
    axis2_http_header_t *header = NULL;
    axutil_stream_t *request_body = NULL;
    axis2_http_simple_response_t *response = NULL;
    int status = 0;
    char *body_bytes = NULL;
    int body_bytes_len = 0;

    printf("Starting http_client tests\n");
    request_line = axis2_http_request_line_create(env, "GET",
                                                  "/axis2/services",
                                                  "HTTP/1.0");
    request_body = axutil_stream_create_basic(env);
    request = axis2_http_simple_request_create(env, request_line,
                                               NULL, 0, NULL);
    url = axutil_url_create(env, "http", "localhost", 80, NULL);
    header =
        axis2_http_header_create(env, "Host", axutil_url_get_host(url, env));
    axis2_http_simple_request_add_header(request, env, header);
    client = axis2_http_client_create(env, url);

    status = axis2_http_client_send(client, env, request, NULL);
    if (status < 0)
    {
        printf("Test FAILED .........Can't send the request. Status :%d\n",
               status);
        return;
    }
    status = axis2_http_client_recieve_header(client, env);
    if (status < 0)
    {
        printf("Test FAILED ......... Can't recieve. Status: %d\n", status);
        return;
    }
    response = axis2_http_client_get_response(client, env);
    if (!response)
    {
        printf("Test Failed : NULL response");
        return;
    }
    printf("Content Type :%s\n",
           axis2_http_simple_response_get_content_type(response, env));
    printf("Content Length :%d\n",
           axis2_http_simple_response_get_content_length(response, env));
    printf("Status code :%d\n", status);
    body_bytes_len =
        axis2_http_simple_response_get_body_bytes(response, env, &body_bytes);
    printf("body :%s\n", body_bytes);

    axis2_http_client_free(client, env);
    axis2_http_simple_request_free(request, env);
    axutil_stream_free(request_body, env);
    AXIS2_FREE(env->allocator, body_bytes);
    printf("Finished http_client tests ..........\n\n");
}

void
test_https_client(
    const axutil_env_t * env)
{
#ifndef AXIS2_SSL_ENABLED
    return;
#else
    axis2_http_client_t *client = NULL;
    axis2_http_simple_request_t *request = NULL;
    axis2_http_request_line_t *request_line = NULL;
    axutil_url_t *url = NULL;
    axis2_http_header_t *header = NULL;
    axutil_stream_t *request_body = NULL;
    axis2_http_simple_response_t *response = NULL;
    int status = 0;
    char *body_bytes = NULL;
    int body_bytes_len = 0;

    printf("Starting https_client tests\n");
    request_line = axis2_http_request_line_create(env, "GET", "/", "HTTP/1.0");
    request_body = axutil_stream_create_basic(env);
    request = axis2_http_simple_request_create(env, request_line,
                                               NULL, 0, NULL);
    url = axutil_url_create(env, "https", "localhost", 9090, NULL);

    header =
        axis2_http_header_create(env, "Host", axutil_url_get_host(url, env));
    axis2_http_simple_request_add_header(request, env, header);
    client = axis2_http_client_create(env, url);

    /* if you weant to test the proxy uncomment following */
    /*axis2_http_client_set_proxy(client, env, "127.0.0.1", 8080); */

    /* Add CA/Server certificate */
    status = axis2_http_client_set_server_cert(client, env,
                                               "/home/dummy/dummyCA/demoCA/cacert.pem");

    status = axis2_http_client_send(client, env, request, NULL);
    if (status < 0)
    {
        printf("Test FAILED .........Can't send the request. Status :%d\n",
               status);
        return;
    }
    status = axis2_http_client_recieve_header(client, env);
    if (status < 0)
    {
        printf("Test FAILED ......... Can't recieve. Status: %d\n", status);
        return;
    }
    response = axis2_http_client_get_response(client, env);
    if (!response)
    {
        printf("Test Failed : NULL response");
        return;
    }
    printf("Content Type :%s\n",
           axis2_http_simple_response_get_content_type(response, env));
    printf("Content Length :%d\n",
           axis2_http_simple_response_get_content_length(response, env));
    printf("Status code :%d\n", status);
    body_bytes_len =
        axis2_http_simple_response_get_body_bytes(response, env, &body_bytes);

    axis2_http_client_free(client, env);
    axis2_http_simple_request_free(request, env);
    axutil_stream_free(request_body, env);
    AXIS2_FREE(env->allocator, body_bytes);
    printf("Finished https_client tests ..........\n\n");
#endif
}

#ifdef AXIS2_JSON_ENABLED
void
test_json(
    const axutil_env_t * env)
{
    axiom_node_t* root_node = NULL;

    /* JSON_C */
    axis2_json_writer_t* json_writer;
    axis2_json_reader_t* json_reader;
    unsigned i;
    axis2_char_t* xml_str;
    const axis2_char_t* result_str;
    int passed = 0;
    int failed = 0;


    const char* xml_data[] =
    {
        "<root><child1>value 1</child1><child2>value 2</child2></root>",
        "<root> \t\r\n<child1>value 1</child1> <child2>value 2</child2>\n</root>",
        "<root><child1><sub>value 1</sub></child1><child2>value 2</child2></root>",
        "<root><child></child><ch>value 1</ch><ch>value 2</ch><ch>value 3</ch></root>",
        "<root><child></child><ch><sub>11</sub><sub>12</sub></ch><ch><sub>21</sub><sub>22</sub></ch></root>",
/*5*/   "<root xmlns:xsi=\"http://www.w3.org/2001/XMLSchema-instance\"><ch xsi:nil=\"true\"></ch></root>",
        "<root><ch xmlns:enc=\"http://schemas.xmlsoap.org/soap/encoding/\" enc:arrayType=\"string[2]\"><a>1</a><b>2</b></ch></root>",
        "<root><ch xmlns:enc=\"http://schemas.xmlsoap.org/soap/encoding/\" enc:arrayType=\"string[2]\"><item>1</item><item>2</item></ch></root>",
        "<root><ch xmlns:enc=\"http://schemas.xmlsoap.org/soap/encoding/\" enc:arrayType=\"null[0]\"></ch></root>",
        "<root><child></child><ch xmlns:enc=\"http://schemas.xmlsoap.org/soap/encoding/\" enc:arrayType=\"string[3]\"><item>value 1</item><item>value 2</item><item>value 3</item></ch></root>",
/*10*/  "<root><child></child><ch xmlns:enc=\"http://schemas.xmlsoap.org/soap/encoding/\" enc:arrayType=\"object[2]\"><item><sub enc:arrayType=\"string[2]\"><item>11</item><item>12</item></sub></item><item><sub enc:arrayType=\"string[2]\"><item>21</item><item>22</item></sub></item></ch></root>",
        "<root xmlns:xsi=\"http://www.w3.org/2001/XMLSchema-instance\"><ch xsi:type=\"boolean\">true</ch></root>",
        "<root xmlns:xsi=\"http://www.w3.org/2001/XMLSchema-instance\"><ch xsi:type=\"boolean\">false</ch></root>",
        "<root xmlns:xsi=\"http://www.w3.org/2001/XMLSchema-instance\"><ch xsi:type=\"int\">123</ch></root>",
        "<root xmlns:xsi=\"http://www.w3.org/2001/XMLSchema-instance\"><ch xsi:type=\"double\">123.456789</ch></root>",
        "<root xmlns:xsi=\"http://www.w3.org/2001/XMLSchema-instance\"><ch xmlns:enc=\"http://schemas.xmlsoap.org/soap/encoding/\" enc:arrayType=\"int[2]\"><item xsi:type=\"int\">1</item><item xsi:type=\"int\">2</item></ch></root>"
    };

    const char* json_data_mapped[] =
    {
        "{\"root\":{\"child1\":\"value 1\",\"child2\":\"value 2\"}}",
        "{\"root\":{\"child1\":{\"sub\":\"value 1\"},\"child2\":\"value 2\"}}",
        "{\"root\":{\"child\":\"\",\"ch\":[\"value 1\",\"value 2\",\"value 3\"]}}",
        "{\"root\":{\"child\":\"\",\"ch\":[{\"sub\":[\"11\",\"12\"]},{\"sub\":[\"21\",\"22\"]}]}}",
        "{\"root\":{\"ch\":null}}",
/*5*/   "{\"root\":{\"ch\":[\"1\",\"2\"]}}",
        "{\"root\":{\"ch\":[]}}",
        "{\"root\":{\"ch\":true}}",
        "{\"root\":{\"ch\":false}}",
        "{\"root\":{\"ch\":123}}",
/*10*/  "{\"root\":{\"ch\":123.456789}}",
        "{\"root\":{\"ch\":[1,2]}}",
    };

    int xml2mapped[sizeof(xml_data) / sizeof(xml_data[0])] =
    {
        0, 0, 1, 2, 3, 4, 5, 5, 6, 2, 3, 7, 8, 9, 10, 11
    };

    int mapped2xml[sizeof(json_data_mapped) / sizeof(json_data_mapped[0])] =
    {
        0, 2, 9, 10, 5, 7, 8, 11, 12, 13, 14, 15
    };

    printf(" ######################## testing xml -> json ########################## \n");

    for (i = 0; i < sizeof(xml_data) / sizeof(xml_data[0]); ++i)
    {
        const char* xml = xml_data[i];

        root_node = axiom_node_create_from_buffer(env, (axis2_char_t*)xml);

        xml_str = axiom_node_to_string(root_node, env);

        printf(" =============== source XML #%d ================\n%s\n"
               " ===========================================\n",
               i, xml_str);
        AXIS2_FREE(env->allocator, xml_str);

        json_writer = axis2_json_writer_create(env);
        axis2_json_writer_write(json_writer, root_node, env);

        result_str = axis2_json_writer_get_json_string(json_writer, env, 0);
        printf(" ============= resulting JSON ==============\n%s\n"
               " ===========================================\n",
               result_str);

        if (strcmp(result_str, json_data_mapped[xml2mapped[i]]))
        {
            ++failed;
            printf("\e[31;1mTEST FAILED\nexpected result #%d:\n %s\e[0m\n",
                   xml2mapped[i], json_data_mapped[xml2mapped[i]]);
        }
        else
        {
            ++passed;
            printf("test passed\n\n");
        }

        axis2_json_writer_free(json_writer, env);

        axiom_node_free_tree(root_node, env);
    }


    printf(" ######################## testing json -> xml ########################## \n");

    for (i = 0; i < sizeof(json_data_mapped) / sizeof(json_data_mapped[0]); ++i)
    {
        const char* json = json_data_mapped[i];
        int length = strlen(json);

        json_reader = axis2_json_reader_create_for_memory(env, json, length);
        if (!json_reader)
        {
            printf("Failed to create json_reader");
            return;
        }

        if (axis2_json_reader_read(json_reader, env) != AXIS2_SUCCESS)
        {
            printf("Failed to axis2_json_reader_read");
            return;
        }

        root_node = axis2_json_reader_get_root_node(json_reader, env);
        if (!root_node)
        {
            printf("Failed to get root_node");
            return;
        }


        printf(" =============== source JSON #%d ================\n%s\n"
               " ===========================================\n",
               i, json);


        xml_str = axiom_node_to_string(root_node, env);

        printf(" =============== resulting XML ================\n%s\n"
               " ===========================================\n",
               xml_str);

        if (strcmp(xml_str, xml_data[mapped2xml[i]]))
        {
            ++failed;
            printf("\e[31;1mTEST FAILED\nExpected result #%d:\n%s\e[0m\n",
                   mapped2xml[i], xml_data[mapped2xml[i]]);
        }
        else
        {
            ++passed;
            printf("test passed\n\n");
        }
        AXIS2_FREE(env->allocator, xml_str);

        axis2_json_reader_free(json_reader, env);
        axiom_node_free_tree(root_node, env);
    }

    printf("JSON tests passed: %d, failed: %d\n", passed, failed);
}
#endif


int
main(
    void)
{
    axutil_env_t *env = test_init();
    test_http_request_line(env);
    test_http_status_line(env);
    test_http_header(env);
    test_http_client(env);
    test_https_client(env);
    test_url(env);
#ifdef AXIS2_JSON_ENABLED
    test_json(env);
#endif

    axutil_env_free(env);
    return 0;
}


<|start_filename|>neethi/src/secpolicy/builder/token_identifier.c<|end_filename|>
/*
 * 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.
 */

#include <rp_token_identifier.h>
#include <neethi_operator.h>
#include <neethi_policy.h>
#include <neethi_assertion.h>
#include <neethi_exactlyone.h>
#include <neethi_all.h>
#include <neethi_engine.h>

/*private functions*/

/***********************************/

AXIS2_EXTERN axis2_status_t AXIS2_CALL
rp_token_identifier_set_token(
    rp_property_t *token,
    neethi_assertion_t *assertion,
    const axutil_env_t *env)
{
    void *value = NULL;
    neethi_assertion_type_t type;

    value = neethi_assertion_get_value(assertion, env);
    type = neethi_assertion_get_type(assertion, env);

    if (value)
    {
        if (type == ASSERTION_TYPE_USERNAME_TOKEN)
        {
            rp_username_token_t *username_token = NULL;
            username_token = (rp_username_token_t *) value;
            rp_property_set_value(token, env, username_token,
                                  RP_PROPERTY_USERNAME_TOKEN);
            return AXIS2_SUCCESS;
        }
        else if (type == ASSERTION_TYPE_X509_TOKEN)
        {
            rp_x509_token_t *x509_token = NULL;
            x509_token = (rp_x509_token_t *) value;
            rp_property_set_value(token, env, x509_token,
                                  RP_PROPERTY_X509_TOKEN);
            return AXIS2_SUCCESS;
        }
        else if (type == ASSERTION_TYPE_SAML_TOKEN)
        {
            rp_saml_token_t *saml_token = NULL;
            saml_token = (rp_saml_token_t *) value;
            rp_property_set_value(token, env, saml_token, RP_PROPERTY_SAML_TOKEN);
            return AXIS2_SUCCESS;
        }
        else if (type == ASSERTION_TYPE_ISSUED_TOKEN)
        {
            rp_issued_token_t *issued_token = NULL;
            issued_token = (rp_issued_token_t *) value;
            rp_property_set_value(token, env, issued_token, RP_PROPERTY_ISSUED_TOKEN);
            return AXIS2_SUCCESS;
        }
        else
            return AXIS2_FAILURE;
    }
        
	return AXIS2_FAILURE;
}



<|start_filename|>include/axis2_addr.h<|end_filename|>

/*
 * 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 AXIS2_ADDR_H
#define AXIS2_ADDR_H

#ifdef __cplusplus
extern "C"
{
#endif

    /**
      * @defgroup axis2_addr WS-Addressing
      * @ingroup axis2
      * @{
      * @}
      */

    /**
      * @defgroup axis2_addr_consts WS-Addressing related constants
      * @ingroup axis2_addr
      * @{
      */

    /** @file axis2_addr.h */

    /* ====================== Common Message Addressing Properties =========== */
 
    /** WS-Addressing Message ID */
#define AXIS2_WSA_MESSAGE_ID "MessageID"

    /** WS-Addressing Relates To */
#define AXIS2_WSA_RELATES_TO "RelatesTo"

    /** WS-Addressing Relates To Relationship Type */
#define AXIS2_WSA_RELATES_TO_RELATIONSHIP_TYPE "RelationshipType"

    /** WS-Addressing To */
#define AXIS2_WSA_TO "To"

    /** WS-Addressing From */
#define AXIS2_WSA_FROM "From"

    /** WS-Addressing Reply To */
#define AXIS2_WSA_REPLY_TO "ReplyTo"

    /** WS-Addressing Fault To */
#define AXIS2_WSA_FAULT_TO "FaultTo"

    /** WS-Addressing Action */
#define AXIS2_WSA_ACTION "Action"

    /** WS-Addressing Mapping */
#define AXIS2_WSA_MAPPING "wsamapping"

    /* ====================== Common EPR Elements ============================ */

    /** End Pointer Reference Address */
#define EPR_ADDRESS "Address"

    /** End Pointer Reference Reference Parameters */
#define EPR_REFERENCE_PARAMETERS "ReferenceParameters"

    /** End Pointer Reference Service Name */
#define EPR_SERVICE_NAME "ServiceName"

    /** End Pointer Reference Reference Properties */
#define EPR_REFERENCE_PROPERTIES "ReferenceProperties"

    /** End Pointer Reference Port Type */
#define EPR_PORT_TYPE "PortType"

    /** End Pointer Reference Port Name */
#define EPR_SERVICE_NAME_PORT_NAME "PortName"

    /* ====================== Addressing Submission Version Constants ======== */

    /** WS-Addressing Namespace for Submission Version */
#define AXIS2_WSA_NAMESPACE_SUBMISSION "http://schemas.xmlsoap.org/ws/2004/08/addressing"

    /** WS-Addressing Relates To Relationship Type Default Value for Submission Version */
#define AXIS2_WSA_RELATES_TO_RELATIONSHIP_TYPE_DEFAULT_VALUE_SUBMISSION "wsa:Reply"

    /** WS-Addressing Anonymous URL for Submission Version */
#define AXIS2_WSA_ANONYMOUS_URL_SUBMISSION "http://schemas.xmlsoap.org/ws/2004/08/addressing/role/anonymous"

    /** WS-Addressing None URL for Submission Version */
#define AXIS2_WSA_NONE_URL_SUBMISSION "http://schemas.xmlsoap.org/ws/2004/08/addressing/role/none"

    /* =====================Addressing 1.0 Final Version Constants =========== */

    /** WS-Addressing Namespace for 1.0 Final Version */
#define AXIS2_WSA_NAMESPACE "http://www.w3.org/2005/08/addressing"

    /** WS-Addressing Relates To Relationship Type Default Value for 1.0 Final Version */
#define AXIS2_WSA_RELATES_TO_RELATIONSHIP_TYPE_DEFAULT_VALUE "http://www.w3.org/2005/08/addressing/reply"

    /** WS-Addressing Anonymous URL for 1.0 Final Version */
#define AXIS2_WSA_ANONYMOUS_URL "http://www.w3.org/2005/08/addressing/anonymous"

    /** WS-Addressing None URL for 1.0 Final Version */
#define AXIS2_WSA_NONE_URL "http://www.w3.org/2005/08/addressing/none"

    /* ======================================================================= */

    /** WS-Addressing Is Reference Parameter Attribute */
#define AXIS2_WSA_IS_REFERENCE_PARAMETER_ATTRIBUTE "IsReferenceParameter"

    /** WS-Addressing Type Attribute Value */
#define AXIS2_WSA_TYPE_ATTRIBUTE_VALUE "true"

    /** WS-Addressing Interface Name */
#define AXIS2_WSA_INTERFACE_NAME "InterfaceName"

    /** WS-Addressing Service/Endpoint Name */
#define AXIS2_WSA_SERVICE_NAME_ENDPOINT_NAME "EndpointName"

    /** WS-Addressing Policies */
#define AXIS2_WSA_POLICIES "Policies"

    /** WS-Addressing Metadata */
#define AXIS2_WSA_METADATA "Metadata"

    /* ======================================================================= */

    /** WS-Addressing Version */
#define AXIS2_WSA_VERSION "WSAddressingVersion"

    /** WS-Addressing Default Prefix */
#define AXIS2_WSA_DEFAULT_PREFIX "wsa"

    /** WS-Addressing Prefixes for faults*/
#define AXIS2_WSA_PREFIX_FAULT_TO AXIS2_WSA_DEFAULT_PREFIX":"AXIS2_WSA_FAULT_TO

    /** WS-Addressing Prefixes for faults*/
#define AXIS2_WSA_PREFIX_REPLY_TO AXIS2_WSA_DEFAULT_PREFIX":"AXIS2_WSA_REPLY_TO

    /** WS-Addressing Prefixes for faults*/
#define AXIS2_WSA_PREFIX_TO AXIS2_WSA_DEFAULT_PREFIX":"AXIS2_WSA_TO 

    /** WS-Addressing Prefixes for faults*/
#define AXIS2_WSA_PREFIX_MESSAGE_ID AXIS2_WSA_DEFAULT_PREFIX":"AXIS2_WSA_MESSAGE_ID

    /** WS-Addressing Prefixes for faults*/
#define AXIS2_WSA_PREFIX_ACTION AXIS2_WSA_DEFAULT_PREFIX":"AXIS2_WSA_ACTION 

    /* ======================================================================= */

    /** WS-Addressing Param Service Group Context ID */
#define PARAM_SERVICE_GROUP_CONTEXT_ID "ServiceGroupContextIdFromAddressing"

    /** @} */

#ifdef __cplusplus
}
#endif

#endif                          /* AXIS2_ADDR_H */


<|start_filename|>xdocs/api/html/group__axis2__module.html<|end_filename|>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html><head><meta http-equiv="Content-Type" content="text/html;charset=UTF-8">
<title>Axis2/C: module</title>
<link href="doxygen.css" rel="stylesheet" type="text/css">
<link href="tabs.css" rel="stylesheet" type="text/css">
</head><body>
<!-- Generated by Doxygen 1.5.3 -->
<div class="tabs">
  <ul>
    <li><a href="index.html"><span>Main&nbsp;Page</span></a></li>
    <li><a href="modules.html"><span>Modules</span></a></li>
    <li><a href="annotated.html"><span>Classes</span></a></li>
    <li><a href="files.html"><span>Files</span></a></li>
    <li><a href="dirs.html"><span>Directories</span></a></li>
    <li><a href="pages.html"><span>Related&nbsp;Pages</span></a></li>
    <li><a href="examples.html"><span>Examples</span></a></li>
    <li>
      <form action="search.php" method="get">
        <table cellspacing="0" cellpadding="0" border="0">
          <tr>
            <td><label>&nbsp;<u>S</u>earch&nbsp;for&nbsp;</label></td>
            <td><input type="text" name="query" value="" size="20" accesskey="s"/></td>
          </tr>
        </table>
      </form>
    </li>
  </ul>
</div>
<h1>module<br>
<small>
[<a class="el" href="group__axis2__desc.html">description</a>]</small>
</h1><table border="0" cellpadding="0" cellspacing="0">
<tr><td></td></tr>
<tr><td colspan="2"><br><h2>Files</h2></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top">file &nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="axis2__module_8h.html">axis2_module.h</a></td></tr>

<tr><td colspan="2"><br><h2>Classes</h2></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top">struct &nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="structaxis2__module__ops.html">axis2_module_ops</a></td></tr>

<tr><td class="memItemLeft" nowrap align="right" valign="top">struct &nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="structaxis2__module.html">axis2_module</a></td></tr>

<tr><td colspan="2"><br><h2>Defines</h2></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top">#define&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__axis2__module.html#g9ca78c64c10ccef1c279b93faf24d2a8">axis2_module_init</a>(module, env, conf_ctx, module_desc)&nbsp;&nbsp;&nbsp;((module)-&gt;ops-&gt;init (module, env, conf_ctx, module_desc))</td></tr>

<tr><td class="memItemLeft" nowrap align="right" valign="top">#define&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__axis2__module.html#g387fcdad65e41987b62d36fd4ac4bdf2">axis2_module_shutdown</a>(module, env)&nbsp;&nbsp;&nbsp;((module)-&gt;ops-&gt;shutdown (module, env))</td></tr>

<tr><td class="memItemLeft" nowrap align="right" valign="top">#define&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__axis2__module.html#g1b38c2e3368e87c2309a12ea71e96177">axis2_module_fill_handler_create_func_map</a>(module, env)&nbsp;&nbsp;&nbsp;((module)-&gt;ops-&gt;fill_handler_create_func_map (module, env))</td></tr>

<tr><td colspan="2"><br><h2>Typedefs</h2></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top">typedef struct <br>
<a class="el" href="structaxis2__module__ops.html">axis2_module_ops</a>&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__axis2__module.html#gd48171d2877468bdaca74a22473c9c09">axis2_module_ops_t</a></td></tr>

<tr><td class="memItemLeft" nowrap align="right" valign="top">typedef struct <br>
<a class="el" href="structaxis2__module.html">axis2_module</a>&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__axis2__module.html#gd7178056a81383c23d68a1ec747a90e5">axis2_module_t</a></td></tr>

<tr><td colspan="2"><br><h2>Functions</h2></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top">AXIS2_EXTERN <br>
<a class="el" href="structaxis2__module.html">axis2_module_t</a> *&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__axis2__module.html#gbbf3d0b019a87d06a865131d41d57fc4">axis2_module_create</a> (const <a class="el" href="structaxutil__env.html">axutil_env_t</a> *env)</td></tr>

</table>
<hr><a name="_details"></a><h2>Detailed Description</h2>
Every module provides an implementation of struct interface. Modules are in one of two states: "available" or "initialized". All modules that the run-time detects (from the repository modules directory) are said to be in the "available" state. If some service indicates a dependency on this module then the module is initialized (once for the life time of the system) and the state changes to "initialized". Any module which is in the "initialized" state can be engaged as needed by the engine to respond to a message. Module engagement is done by deployment engine using module.xml. <hr><h2>Define Documentation</h2>
<a class="anchor" name="g1b38c2e3368e87c2309a12ea71e96177"></a><!-- doxytag: member="axis2_module.h::axis2_module_fill_handler_create_func_map" ref="g1b38c2e3368e87c2309a12ea71e96177" args="(module, env)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">#define axis2_module_fill_handler_create_func_map          </td>
          <td>(</td>
          <td class="paramtype">module,         <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">env&nbsp;</td>
          <td class="paramname">          </td>
          <td>&nbsp;)&nbsp;</td>
          <td width="100%">&nbsp;&nbsp;&nbsp;((module)-&gt;ops-&gt;fill_handler_create_func_map (module, env))</td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
Fills handler create function map. <dl class="see" compact><dt><b>See also:</b></dt><dd><a class="el" href="structaxis2__module__ops.html#f2b6df61735d015d43b1f4956ae48817">axis2_module_ops::fill_handler_create_func_map</a> </dd></dl>

</div>
</div><p>
<a class="anchor" name="g9ca78c64c10ccef1c279b93faf24d2a8"></a><!-- doxytag: member="axis2_module.h::axis2_module_init" ref="g9ca78c64c10ccef1c279b93faf24d2a8" args="(module, env, conf_ctx, module_desc)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">#define axis2_module_init          </td>
          <td>(</td>
          <td class="paramtype">module,         <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">env,         <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">conf_ctx,         <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">module_desc&nbsp;</td>
          <td class="paramname">          </td>
          <td>&nbsp;)&nbsp;</td>
          <td width="100%">&nbsp;&nbsp;&nbsp;((module)-&gt;ops-&gt;init (module, env, conf_ctx, module_desc))</td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
Initializes module. <dl class="see" compact><dt><b>See also:</b></dt><dd><a class="el" href="structaxis2__module__ops.html#38448a11b9ccf9d0f9c53102fa12423e">axis2_module_ops::init</a> </dd></dl>

</div>
</div><p>
<a class="anchor" name="g387fcdad65e41987b62d36fd4ac4bdf2"></a><!-- doxytag: member="axis2_module.h::axis2_module_shutdown" ref="g387fcdad65e41987b62d36fd4ac4bdf2" args="(module, env)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">#define axis2_module_shutdown          </td>
          <td>(</td>
          <td class="paramtype">module,         <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">env&nbsp;</td>
          <td class="paramname">          </td>
          <td>&nbsp;)&nbsp;</td>
          <td width="100%">&nbsp;&nbsp;&nbsp;((module)-&gt;ops-&gt;shutdown (module, env))</td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
Shutdowns module. <dl class="see" compact><dt><b>See also:</b></dt><dd><a class="el" href="structaxis2__module__ops.html#30119dd5c051394e42cb2f7b5fbd8bbd">axis2_module_ops::shutdown</a> </dd></dl>

</div>
</div><p>
<hr><h2>Typedef Documentation</h2>
<a class="anchor" name="gd48171d2877468bdaca74a22473c9c09"></a><!-- doxytag: member="axis2_module.h::axis2_module_ops_t" ref="gd48171d2877468bdaca74a22473c9c09" args="" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">typedef struct <a class="el" href="structaxis2__module__ops.html">axis2_module_ops</a> <a class="el" href="structaxis2__module__ops.html">axis2_module_ops_t</a>          </td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
Type name for <a class="el" href="structaxis2__module__ops.html">axis2_module_ops</a> 
</div>
</div><p>
<a class="anchor" name="gd7178056a81383c23d68a1ec747a90e5"></a><!-- doxytag: member="axis2_module.h::axis2_module_t" ref="gd7178056a81383c23d68a1ec747a90e5" args="" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">typedef struct <a class="el" href="structaxis2__module.html">axis2_module</a> <a class="el" href="structaxis2__module.html">axis2_module_t</a>          </td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
Type name for <a class="el" href="structaxis2__module__ops.html">axis2_module_ops</a> 
</div>
</div><p>
<hr><h2>Function Documentation</h2>
<a class="anchor" name="gbbf3d0b019a87d06a865131d41d57fc4"></a><!-- doxytag: member="axis2_module.h::axis2_module_create" ref="gbbf3d0b019a87d06a865131d41d57fc4" args="(const axutil_env_t *env)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">AXIS2_EXTERN <a class="el" href="structaxis2__module.html">axis2_module_t</a>* axis2_module_create           </td>
          <td>(</td>
          <td class="paramtype">const <a class="el" href="structaxutil__env.html">axutil_env_t</a> *&nbsp;</td>
          <td class="paramname"> <em>env</em>          </td>
          <td>&nbsp;)&nbsp;</td>
          <td width="100%"></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
Creates module struct. <dl compact><dt><b>Parameters:</b></dt><dd>
  <table border="0" cellspacing="2" cellpadding="0">
    <tr><td valign="top"></td><td valign="top"><em>env</em>&nbsp;</td><td>pointer to environment struct </td></tr>
  </table>
</dl>
<dl class="return" compact><dt><b>Returns:</b></dt><dd>pointer to newly created module </dd></dl>

</div>
</div><p>
<hr size="1"><address style="text-align: right;"><small>Generated on Fri Apr 17 11:49:45 2009 for Axis2/C by&nbsp;
<a href="http://www.doxygen.org/index.html">
<img src="doxygen.png" alt="doxygen" align="middle" border="0"></a> 1.5.3 </small></address>
</body>
</html>


<|start_filename|>util/include/axutil_log.h<|end_filename|>

/*
 * 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_LOG_H
#define AXUTIL_LOG_H

#include <axutil_allocator.h>

#ifdef __cplusplus
extern "C"
{
#endif

    typedef struct axutil_log_ops axutil_log_ops_t;
    typedef struct axutil_log axutil_log_t;

#define AXIS2_LOG_SI __FILE__,__LINE__

    /**
     * @defgroup axutil_log log
     * @ingroup axis2_util
     * @{
     */

    /**
      *Examples
      *To write debug information to log
      *AXIS2_LOG_DEBUG(log,AXIS2_LOG_SI,"log this %s %d","test",123);
      *This would log
      *"log this test 123" into the log file
      *
      *similar macros are defined for different log levels: CRITICAL,ERROR,WARNING and INFO
      * and SERVICE
      *
      *CRITICAL and ERROR logs are always written to file and other logs are written 
      *depending on the log level set (log->level)
      */

    /**
      * \brief Axis2 log levels
      */
    typedef enum axutil_log_levels
    {

        /** Critical level, logs only critical errors */
        AXIS2_LOG_LEVEL_CRITICAL = 0,

        /** Error level, logs only errors */
        AXIS2_LOG_LEVEL_ERROR,

        /** Warning level, logs only warnings */
        AXIS2_LOG_LEVEL_WARNING,

        /** Info level, logs information */
        AXIS2_LOG_LEVEL_INFO,

        /** Debug level, logs everything */
        AXIS2_LOG_LEVEL_DEBUG,
        
        /** User level, logs only user level debug messages */
        AXIS2_LOG_LEVEL_USER,

        /** Trace level, Enable with compiler time option AXIS2_TRACE */
        AXIS2_LOG_LEVEL_TRACE
        
    } axutil_log_levels_t;

    /**
      * \brief Axis2 log ops struct
      *
      * Encapsulator struct for ops of axutil_log
      */
    struct axutil_log_ops
    {

        /**
         * deletes the log
         * @return axis2_status_t AXIS2_SUCCESS on success else AXIS2_FAILURE
         */

        void(
            AXIS2_CALL
            * free)(
                axutil_allocator_t * allocator,
                struct axutil_log * log);

        /**
          * writes to the log
          * @param buffer buffer to be written to log
          * @param size size of the buffer to be written to log
          * @return satus of the op. AXIS2_SUCCESS on success else AXIS2_FAILURE
          */
        void(
            AXIS2_CALL
            * write)(
                axutil_log_t * log,
                const axis2_char_t * buffer,
                axutil_log_levels_t level,
                const axis2_char_t * file,
                const int line);
    };

    /**
      * \brief Axis2 Log struct
      *
      * Log is the encapsulating struct for all log related data and ops
      */
    struct axutil_log
    {

        /** Log related ops */
        const axutil_log_ops_t *ops;

        /** Log level */
        axutil_log_levels_t level;
        
        /** Maximum log file size */
        int size;

        /** Is logging enabled? */
        axis2_bool_t enabled;

    };

    AXIS2_EXTERN void AXIS2_CALL
    axutil_log_impl_log_critical(
        axutil_log_t * log,
        const axis2_char_t * filename,
        const int linenumber,
        const axis2_char_t * format,
        ...);

    AXIS2_EXTERN void AXIS2_CALL
    axutil_log_impl_log_error(
        axutil_log_t * log,
        const axis2_char_t * filename,
        const int linenumber,
        const axis2_char_t * format,
        ...);

    AXIS2_EXTERN void AXIS2_CALL
    axutil_log_impl_log_warning(
        axutil_log_t * log,
        const axis2_char_t * filename,
        const int linenumber,
        const axis2_char_t * format,
        ...);

    AXIS2_EXTERN void AXIS2_CALL
    axutil_log_impl_log_info(
        axutil_log_t * log,
        const axis2_char_t * format,
        ...);

    AXIS2_EXTERN void AXIS2_CALL
    axutil_log_impl_log_user(
        axutil_log_t * log,
        const axis2_char_t * filename,
        const int linenumber,
        const axis2_char_t * format,
        ...);

    AXIS2_EXTERN void AXIS2_CALL
    axutil_log_impl_log_debug(
        axutil_log_t * log,
        const axis2_char_t * filename,
        const int linenumber,
        const axis2_char_t * format,
        ...);

    AXIS2_EXTERN void AXIS2_CALL
    axutil_log_impl_log_trace(
        axutil_log_t * log,
        const axis2_char_t * filename,
        const int linenumber,
        const axis2_char_t * format,
        ...);

    AXIS2_EXTERN void AXIS2_CALL
    axutil_log_free(
        axutil_allocator_t * allocator,
        struct axutil_log *log);

    AXIS2_EXTERN void AXIS2_CALL
    axutil_log_write(
        axutil_log_t * log,
        const axis2_char_t * buffer,
        axutil_log_levels_t level,
        const axis2_char_t * file,
        const int line);


#define AXIS2_LOG_FREE(allocator, log) \
      axutil_log_free(allocator, log)

#define AXIS2_LOG_WRITE(log, buffer, level, file) \
      axutil_log_write(log, buffer, level, file, AXIS2_LOG_SI)

#define AXIS2_LOG_USER axutil_log_impl_log_user
#define AXIS2_LOG_DEBUG axutil_log_impl_log_debug
#define AXIS2_LOG_INFO axutil_log_impl_log_info
#define AXIS2_LOG_WARNING axutil_log_impl_log_warning
#define AXIS2_LOG_ERROR axutil_log_impl_log_error
#define AXIS2_LOG_CRITICAL axutil_log_impl_log_critical

#ifdef AXIS2_TRACE
#define AXIS2_LOG_TRACE axutil_log_impl_log_trace
#else
# ifdef HAVE_GNUC_VARARGS
#  define AXIS2_LOG_TRACE(params, args ...)
# elif defined HAVE_ISO_VARARGS
#  define AXIS2_LOG_TRACE(params, ...)
# elif __STDC__ && __STDC_VERSION > 199901L
#  define AXIS2_LOG_TRACE(params, ...)
# else
#  define AXIS2_LOG_TRACE axutil_log_impl_log_trace
# endif
#endif

#ifndef AXIS2_LOG_PROJECT_PREFIX
    /** Each module/project should undef and define the following.. */
#define AXIS2_LOG_PROJECT_PREFIX "[axis2c]"
#endif 

#define AXIS2_LOG_USER_MSG(log, msg) AXIS2_LOG_USER (log, AXIS2_LOG_SI, "%s %s", AXIS2_LOG_PROJECT_PREFIX, msg)
#define AXIS2_LOG_DEBUG_MSG(log, msg) AXIS2_LOG_DEBUG (log, AXIS2_LOG_SI, "%s %s", AXIS2_LOG_PROJECT_PREFIX, msg)
#define AXIS2_LOG_INFO_MSG(log, msg) AXIS2_LOG_INFO (log, "%s %s", AXIS2_LOG_PROJECT_PREFIX, msg)
#define AXIS2_LOG_WARNING_MSG(log, msg) AXIS2_LOG_WARNING (log, AXIS2_LOG_SI, "%s %s", AXIS2_LOG_PROJECT_PREFIX, msg)
#define AXIS2_LOG_ERROR_MSG(log, msg) AXIS2_LOG_ERROR (log, AXIS2_LOG_SI, "%s %s", AXIS2_LOG_PROJECT_PREFIX, msg)
#define AXIS2_LOG_CRITICAL_MSG(log, msg) AXIS2_LOG_CRITICAL (log, AXIS2_LOG_SI, "%s %s", AXIS2_LOG_PROJECT_PREFIX, msg)
#define AXIS2_LOG_TRACE_MSG(log, msg) AXIS2_LOG_TRACE (log, AXIS2_LOG_SI, "%s %s", AXIS2_LOG_PROJECT_PREFIX, msg)

    /** @} */

#ifdef __cplusplus
}
#endif

#endif                          /* AXIS2_LOG_H */


<|start_filename|>axiom/src/xpath/xpath_streaming.c<|end_filename|>

/*
 * 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.
 */

#include <axiom_xpath.h>
#include "xpath_streaming.h"
#include "xpath_internals.h"
#include "xpath_internals_engine.h"

axiom_xpath_streaming_t axiom_xpath_streaming_check_operation(
    const axutil_env_t *env,
    axiom_xpath_expression_t* expr,
    int op_p)
{
    axiom_xpath_operation_t *op;

    if (op_p == AXIOM_XPATH_PARSE_END)
    {
        return AXIOM_XPATH_STREAMING_CONSTANT;
    }

    op = AXIOM_XPATH_OPR_EXPR_GET(op_p);

    switch (op->opr)
    {
        case AXIOM_XPATH_OPERATION_CONTEXT_NODE:
        case AXIOM_XPATH_OPERATION_ROOT_NODE:
            return axiom_xpath_streaming_combine_dependent(
                        AXIOM_XPATH_CHECK(op->op1),
                        AXIOM_XPATH_STREAMING_CONSTANT);

        case AXIOM_XPATH_OPERATION_STEP:
            return axiom_xpath_streaming_combine_dependent(
                        AXIOM_XPATH_CHECK(op->op1),
                        AXIOM_XPATH_CHECK(op->op2));

        case AXIOM_XPATH_OPERATION_RESULT:
            return AXIOM_XPATH_STREAMING_CONSTANT;

        case AXIOM_XPATH_OPERATION_UNION:
            return axiom_xpath_streaming_combine_independent(
                        AXIOM_XPATH_CHECK(op->op1),
                        AXIOM_XPATH_CHECK(op->op2));

        case AXIOM_XPATH_OPERATION_EQUAL_EXPR:
            return axiom_xpath_streaming_combine_independent(
                        AXIOM_XPATH_CHECK(op->op1),
                        AXIOM_XPATH_CHECK(op->op2));

        case AXIOM_XPATH_OPERATION_LITERAL:
            return AXIOM_XPATH_STREAMING_CONSTANT;

        case AXIOM_XPATH_OPERATION_NUMBER:
            return AXIOM_XPATH_STREAMING_CONSTANT;

        case AXIOM_XPATH_OPERATION_PATH_EXPRESSION:
            return axiom_xpath_streaming_combine_dependent(
                        AXIOM_XPATH_CHECK(op->op1),
                        AXIOM_XPATH_CHECK(op->op2));

        case AXIOM_XPATH_OPERATION_NODE_TEST:
            return axiom_xpath_streaming_check_node_test(env, expr, op);

        case AXIOM_XPATH_OPERATION_PREDICATE:
            return axiom_xpath_streaming_check_predicate(env, expr, op_p);

        default:
#ifdef AXIOM_XPATH_DEBUG
            printf("Unidentified operation.\n");
#endif

            return AXIOM_XPATH_STREAMING_NOT_SUPPORTED;
    }
}

axiom_xpath_streaming_t axiom_xpath_streaming_check_predicate(
    const axutil_env_t *env,
    axiom_xpath_expression_t* expr,
    int op_p)
{
    axiom_xpath_operation_t *op;

    if (op_p == AXIOM_XPATH_PARSE_END)
    {
        return AXIOM_XPATH_STREAMING_CONSTANT;
    }

    op = AXIOM_XPATH_OPR_EXPR_GET(op_p);

    return axiom_xpath_streaming_combine_dependent(
                AXIOM_XPATH_CHECK(op->op1),
                AXIOM_XPATH_CHECK(op->op2));
}

axiom_xpath_streaming_t axiom_xpath_streaming_check_node_test(
    const axutil_env_t *env,
    axiom_xpath_expression_t* expr,
    axiom_xpath_operation_t *op)
{
    axiom_xpath_axis_t axis = AXIOM_XPATH_AXIS_NONE;
    axiom_xpath_streaming_t r;

    if (!op->par2)
    {
#ifdef AXIOM_XPATH_DEBUG
        printf("axis is NULL in the step operator\n");
#endif
        return AXIOM_XPATH_STREAMING_NOT_SUPPORTED;
    }

    axis = *((axiom_xpath_axis_t *)op->par2);

    switch (axis)
    {
        case AXIOM_XPATH_AXIS_ATTRIBUTE:
        case AXIOM_XPATH_AXIS_CHILD:
            break;

        default:
            return AXIOM_XPATH_STREAMING_NOT_SUPPORTED;
    }

    r = axiom_xpath_streaming_check_predicate(env, expr, op->op1);

    if (r != AXIOM_XPATH_STREAMING_ATTRIBUTE
            && r != AXIOM_XPATH_STREAMING_CONSTANT)
    {
        return AXIOM_XPATH_STREAMING_NOT_SUPPORTED;
    }

    if (axis == AXIOM_XPATH_AXIS_ATTRIBUTE)
    {
        return AXIOM_XPATH_STREAMING_ATTRIBUTE;
    }
    else
    {
        return AXIOM_XPATH_STREAMING_SUPPORTED;
    }
}

axiom_xpath_streaming_t axiom_xpath_streaming_combine_dependent(
    axiom_xpath_streaming_t r1,
    axiom_xpath_streaming_t r2)
{
    if (r1 == AXIOM_XPATH_STREAMING_NOT_SUPPORTED
            || r2 == AXIOM_XPATH_STREAMING_NOT_SUPPORTED)
    {
        return AXIOM_XPATH_STREAMING_NOT_SUPPORTED;
    }
    else if (r1 == AXIOM_XPATH_STREAMING_SUPPORTED
            || r2 == AXIOM_XPATH_STREAMING_SUPPORTED)
    {
        return AXIOM_XPATH_STREAMING_SUPPORTED;
    }
    else if (r1 == AXIOM_XPATH_STREAMING_ATTRIBUTE
            || r2 == AXIOM_XPATH_STREAMING_ATTRIBUTE)
    {
        return AXIOM_XPATH_STREAMING_ATTRIBUTE;
    }
    else
    {
        return AXIOM_XPATH_STREAMING_CONSTANT;
    }
}

axiom_xpath_streaming_t axiom_xpath_streaming_combine_independent(
    axiom_xpath_streaming_t r1,
    axiom_xpath_streaming_t r2)
{
    if (r1 == AXIOM_XPATH_STREAMING_NOT_SUPPORTED
            || r2 == AXIOM_XPATH_STREAMING_NOT_SUPPORTED)
    {
        return AXIOM_XPATH_STREAMING_NOT_SUPPORTED;
    }
    else if (r1 == AXIOM_XPATH_STREAMING_CONSTANT
            || r2 == AXIOM_XPATH_STREAMING_CONSTANT)
    {
        if (r1 == AXIOM_XPATH_STREAMING_SUPPORTED
                || r2 == AXIOM_XPATH_STREAMING_SUPPORTED)
        {
            return AXIOM_XPATH_STREAMING_SUPPORTED;
        }
        else if (r1 == AXIOM_XPATH_STREAMING_ATTRIBUTE
                || r2 == AXIOM_XPATH_STREAMING_ATTRIBUTE)
        {
            return AXIOM_XPATH_STREAMING_ATTRIBUTE;
        }
        else
        {
            return AXIOM_XPATH_STREAMING_CONSTANT;
        }
    }
    else if (r1 == AXIOM_XPATH_STREAMING_ATTRIBUTE
            || r2 == AXIOM_XPATH_STREAMING_ATTRIBUTE)
    {
        if (r1 == AXIOM_XPATH_STREAMING_SUPPORTED
                || r2 == AXIOM_XPATH_STREAMING_SUPPORTED)
        {
            return AXIOM_XPATH_STREAMING_SUPPORTED;
        }
        else
        {
            return AXIOM_XPATH_STREAMING_ATTRIBUTE;
        }
    }
    else
    {
        return AXIOM_XPATH_STREAMING_NOT_SUPPORTED;
    }
}



<|start_filename|>axiom/src/soap/soap_fault_value.c<|end_filename|>

/*
 * 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.
 */
#include <axiom_soap_fault_value.h>
#include "_axiom_soap_fault_sub_code.h"
#include "_axiom_soap_fault_code.h"
#include <axiom_element.h>
#include <axiom_text.h>

struct axiom_soap_fault_value
{

    /** store om element node */
    axiom_node_t *om_ele_node;
};

AXIS2_EXTERN axiom_soap_fault_value_t *AXIS2_CALL
axiom_soap_fault_value_create(
    const axutil_env_t * env)
{
    axiom_soap_fault_value_t *fault_value = NULL;

    fault_value = (axiom_soap_fault_value_t *) AXIS2_MALLOC(env->allocator,
                                                            sizeof
                                                            (axiom_soap_fault_value_t));

    if (!fault_value)
    {
        AXIS2_ERROR_SET(env->error, AXIS2_ERROR_NO_MEMORY, AXIS2_FAILURE);
        AXIS2_LOG_ERROR(env->log, AXIS2_LOG_SI,
                          "No memory. Cannot create SOAP fault value");
        return NULL;
    }

    fault_value->om_ele_node = NULL;

    return fault_value;
}

AXIS2_EXTERN axiom_soap_fault_value_t *AXIS2_CALL
axiom_soap_fault_value_create_with_subcode(
    const axutil_env_t * env,
    axiom_soap_fault_sub_code_t * parent)
{
    axiom_soap_fault_value_t *fault_value = NULL;

    axiom_element_t *this_ele = NULL;
    axiom_node_t *this_node = NULL;
    axiom_namespace_t *parent_ns = NULL;
    axiom_node_t *parent_node = NULL;
    axiom_element_t *parent_ele = NULL;
    int soap_version = -1;

    AXIS2_PARAM_CHECK(env->error, parent, NULL);

    fault_value = axiom_soap_fault_value_create(env);

    if (!fault_value)
    {
        return NULL;
    }

    parent_node = axiom_soap_fault_sub_code_get_base_node(parent, env);

    if (!parent_node)
    {
        axiom_soap_fault_value_free(fault_value, env);
        return NULL;
    }

    parent_ele = (axiom_element_t *)
        axiom_node_get_data_element(parent_node, env);

    if (!parent_ele)
    {
        axiom_soap_fault_value_free(fault_value, env);
        return NULL;
    }
    soap_version = axiom_soap_fault_sub_code_get_soap_version(parent, env);
    if (soap_version == AXIOM_SOAP12)
    {
        parent_ns = axiom_element_get_namespace(parent_ele, env, parent_node);
    }

    this_ele = axiom_element_create(env,
                                    parent_node,
                                    AXIOM_SOAP12_SOAP_FAULT_VALUE_LOCAL_NAME,
                                    parent_ns, &this_node);

    if (!this_ele)
    {
        axiom_soap_fault_value_free(fault_value, env);
        return NULL;
    }

    fault_value->om_ele_node = this_node;

    axiom_soap_fault_sub_code_set_value(parent, env, fault_value);

    return fault_value;
}

AXIS2_EXTERN axiom_soap_fault_value_t *AXIS2_CALL
axiom_soap_fault_value_create_with_code(
    const axutil_env_t * env,
    axiom_soap_fault_code_t * parent)
{
    axiom_soap_fault_value_t *fault_value = NULL;
    int soap_version = -1;
    axiom_element_t *this_ele = NULL;
    axiom_node_t *this_node = NULL;
    axiom_namespace_t *parent_ns = NULL;
    axiom_node_t *parent_node = NULL;
    axiom_element_t *parent_ele = NULL;

    AXIS2_PARAM_CHECK(env->error, parent, NULL);

    fault_value = axiom_soap_fault_value_create(env);

    if (!fault_value)
    {
        return NULL;
    }

    parent_node = axiom_soap_fault_code_get_base_node(parent, env);
    if (!parent_node)
    {
        axiom_soap_fault_value_free(fault_value, env);
        return NULL;
    }
    parent_ele = (axiom_element_t *)
        axiom_node_get_data_element(parent_node, env);
    if (!parent_ele)
    {
        axiom_soap_fault_value_free(fault_value, env);
        return NULL;
    }
    soap_version = axiom_soap_fault_code_get_soap_version(parent, env);
    if (soap_version == AXIOM_SOAP12)
    {
        parent_ns = axiom_element_get_namespace(parent_ele, env, parent_node);
    }
    this_ele = axiom_element_create(env,
                                    parent_node,
                                    AXIOM_SOAP12_SOAP_FAULT_VALUE_LOCAL_NAME,
                                    parent_ns, &this_node);

    if (!this_ele)
    {
        axiom_soap_fault_value_free(fault_value, env);
        return NULL;
    }
    fault_value->om_ele_node = this_node;

    axiom_soap_fault_code_set_value(parent, env, fault_value);

    return fault_value;
}

AXIS2_EXTERN void AXIS2_CALL
axiom_soap_fault_value_free(
    axiom_soap_fault_value_t * fault_value,
    const axutil_env_t * env)
{
    AXIS2_FREE(env->allocator, fault_value);
    return;
}

AXIS2_EXTERN axis2_status_t AXIS2_CALL
axiom_soap_fault_value_set_base_node(
    axiom_soap_fault_value_t * fault_value,
    const axutil_env_t * env,
    axiom_node_t * node)
{

    if (node && (axiom_node_get_node_type(node, env) != AXIOM_ELEMENT))
    {
        AXIS2_HANDLE_ERROR(env,
                        AXIS2_ERROR_INVALID_BASE_TYPE, AXIS2_FAILURE);
        return AXIS2_FAILURE;
    }

    fault_value->om_ele_node = node;
    return AXIS2_SUCCESS;
}

AXIS2_EXTERN axiom_node_t *AXIS2_CALL
axiom_soap_fault_value_get_base_node(
    axiom_soap_fault_value_t * fault_value,
    const axutil_env_t * env)
{
    return fault_value->om_ele_node;
}

AXIS2_EXTERN axis2_char_t *AXIS2_CALL
axiom_soap_fault_value_get_text(
    axiom_soap_fault_value_t * fault_value,
    const axutil_env_t * env)
{
    axiom_node_t *value_node = NULL;
    axiom_element_t *value_element = NULL;

    value_node = axiom_soap_fault_value_get_base_node(fault_value, env);

    if (!value_node)
    {
        return NULL;
    }
    value_element =
        (axiom_element_t *) axiom_node_get_data_element(value_node, env);

    if (!value_element)
    {
        return NULL;
    }
    return axiom_element_get_text(value_element, env, value_node);
}

AXIS2_EXTERN axis2_status_t AXIS2_CALL
axiom_soap_fault_value_set_text(
    axiom_soap_fault_value_t * fault_value,
    const axutil_env_t * env,
    axis2_char_t * text)
{
    AXIS2_PARAM_CHECK(env->error, text, AXIS2_FAILURE);
    if (fault_value->om_ele_node &&
        axiom_node_get_node_type(fault_value->om_ele_node,
                                 env) == AXIOM_ELEMENT)
    {
        axiom_element_t *om_ele = NULL;
        om_ele = (axiom_element_t *)
            axiom_node_get_data_element(fault_value->om_ele_node, env);
        return axiom_element_set_text(om_ele, env, text,
                                      fault_value->om_ele_node);
    }
    return AXIS2_FAILURE;
}


<|start_filename|>xdocs/api/html/neethi__constants_8h-source.html<|end_filename|>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html><head><meta http-equiv="Content-Type" content="text/html;charset=UTF-8">
<title>Axis2/C: neethi_constants.h Source File</title>
<link href="doxygen.css" rel="stylesheet" type="text/css">
<link href="tabs.css" rel="stylesheet" type="text/css">
</head><body>
<!-- Generated by Doxygen 1.5.3 -->
<div class="tabs">
  <ul>
    <li><a href="index.html"><span>Main&nbsp;Page</span></a></li>
    <li><a href="modules.html"><span>Modules</span></a></li>
    <li><a href="annotated.html"><span>Classes</span></a></li>
    <li class="current"><a href="files.html"><span>Files</span></a></li>
    <li><a href="dirs.html"><span>Directories</span></a></li>
    <li><a href="pages.html"><span>Related&nbsp;Pages</span></a></li>
    <li><a href="examples.html"><span>Examples</span></a></li>
    <li>
      <form action="search.php" method="get">
        <table cellspacing="0" cellpadding="0" border="0">
          <tr>
            <td><label>&nbsp;<u>S</u>earch&nbsp;for&nbsp;</label></td>
            <td><input type="text" name="query" value="" size="20" accesskey="s"/></td>
          </tr>
        </table>
      </form>
    </li>
  </ul>
</div>
<div class="nav">
<a class="el" href="dir_f60961de8e5edc3b2658ef023e959e45.html">deploy</a>&nbsp;&raquo&nbsp;<a class="el" href="dir_6b4e91e54b7316b376882a6402adbf44.html">include</a>&nbsp;&raquo&nbsp;<a class="el" href="dir_df3a7695d5a9e696f30b948b566829e7.html">axis2-1.6.0</a></div>
<h1>neethi_constants.h</h1><a href="neethi__constants_8h.html">Go to the documentation of this file.</a><div class="fragment"><pre class="fragment"><a name="l00001"></a>00001 
<a name="l00002"></a>00002 <span class="comment">/*</span>
<a name="l00003"></a>00003 <span class="comment"> * Licensed to the Apache Software Foundation (ASF) under one or more</span>
<a name="l00004"></a>00004 <span class="comment"> * contributor license agreements.  See the NOTICE file distributed with</span>
<a name="l00005"></a>00005 <span class="comment"> * this work for additional information regarding copyright ownership.</span>
<a name="l00006"></a>00006 <span class="comment"> * The ASF licenses this file to You under the Apache License, Version 2.0</span>
<a name="l00007"></a>00007 <span class="comment"> * (the "License"); you may not use this file except in compliance with</span>
<a name="l00008"></a>00008 <span class="comment"> * the License.  You may obtain a copy of the License at</span>
<a name="l00009"></a>00009 <span class="comment"> *</span>
<a name="l00010"></a>00010 <span class="comment"> *      http://www.apache.org/licenses/LICENSE-2.0</span>
<a name="l00011"></a>00011 <span class="comment"> *</span>
<a name="l00012"></a>00012 <span class="comment"> * Unless required by applicable law or agreed to in writing, software</span>
<a name="l00013"></a>00013 <span class="comment"> * distributed under the License is distributed on an "AS IS" BASIS,</span>
<a name="l00014"></a>00014 <span class="comment"> * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.</span>
<a name="l00015"></a>00015 <span class="comment"> * See the License for the specific language governing permissions and</span>
<a name="l00016"></a>00016 <span class="comment"> * limitations under the License.</span>
<a name="l00017"></a>00017 <span class="comment"> */</span>
<a name="l00018"></a>00018 
<a name="l00019"></a>00019 <span class="preprocessor">#ifndef NEETHI_CONSTANTS_H</span>
<a name="l00020"></a>00020 <span class="preprocessor"></span><span class="preprocessor">#define NEETHI_CONSTANTS_H</span>
<a name="l00021"></a>00021 <span class="preprocessor"></span>
<a name="l00022"></a>00022 <span class="preprocessor">#define NEETHI_EXACTLYONE "ExactlyOne"</span>
<a name="l00023"></a>00023 <span class="preprocessor"></span><span class="preprocessor">#define NEETHI_ALL "All"</span>
<a name="l00024"></a>00024 <span class="preprocessor"></span><span class="preprocessor">#define NEETHI_POLICY "Policy"</span>
<a name="l00025"></a>00025 <span class="preprocessor"></span><span class="preprocessor">#define NEETHI_REFERENCE "PolicyReference"</span>
<a name="l00026"></a>00026 <span class="preprocessor"></span><span class="preprocessor">#define NEETHI_URI "URI"</span>
<a name="l00027"></a>00027 <span class="preprocessor"></span><span class="preprocessor">#define NEETHI_NAMESPACE "http://schemas.xmlsoap.org/ws/2004/09/policy"</span>
<a name="l00028"></a>00028 <span class="preprocessor"></span><span class="preprocessor">#define NEETHI_POLICY_15_NAMESPACE "http://www.w3.org/ns/ws-policy"</span>
<a name="l00029"></a>00029 <span class="preprocessor"></span><span class="preprocessor">#define NEETHI_PREFIX "wsp"</span>
<a name="l00030"></a>00030 <span class="preprocessor"></span><span class="preprocessor">#define NEETHI_WSU_NS "http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-wssecurity-utility-1.0.xsd"</span>
<a name="l00031"></a>00031 <span class="preprocessor"></span><span class="preprocessor">#define NEETHI_ID "Id"</span>
<a name="l00032"></a>00032 <span class="preprocessor"></span><span class="preprocessor">#define NEETHI_WSU_NS_PREFIX "wsu"</span>
<a name="l00033"></a>00033 <span class="preprocessor"></span><span class="preprocessor">#define NEETHI_NAME "Name"</span>
<a name="l00034"></a>00034 <span class="preprocessor"></span><span class="preprocessor">#define AXIS2_OPTIMIZED_MIME_SERIALIZATION "OptimizedMimeSerialization"</span>
<a name="l00035"></a>00035 <span class="preprocessor"></span><span class="preprocessor">#define AXIS2_MTOM_POLICY_NS "http://schemas.xmlsoap.org/ws/2004/09/policy/optimizedmimeserialization"</span>
<a name="l00036"></a>00036 <span class="preprocessor"></span><span class="preprocessor">#define AXIS2_RM_POLICY_10_NS "http://schemas.xmlsoap.org/ws/2005/02/rm/policy"</span>
<a name="l00037"></a>00037 <span class="preprocessor"></span><span class="preprocessor">#define AXIS2_RM_POLICY_11_NS "http://docs.oasis-open.org/ws-rx/wsrmp/200702"</span>
<a name="l00038"></a>00038 <span class="preprocessor"></span><span class="preprocessor">#define AXIS2_SANDESHA2_NS "http://ws.apache.org/sandesha2/c/policy"</span>
<a name="l00039"></a>00039 <span class="preprocessor"></span>
<a name="l00040"></a>00040 <span class="comment">/* Reliable messaging related constatnts */</span>
<a name="l00041"></a>00041 
<a name="l00042"></a>00042 <span class="comment">/* RMPolicy 1.0 */</span>
<a name="l00043"></a>00043 
<a name="l00044"></a>00044 <span class="preprocessor">#define AXIS2_RM_RMASSERTION "RMAssertion"</span>
<a name="l00045"></a>00045 <span class="preprocessor"></span><span class="preprocessor">#define AXIS2_RM_INACTIVITY_TIMEOUT "InactivityTimeout"</span>
<a name="l00046"></a>00046 <span class="preprocessor"></span><span class="preprocessor">#define AXIS2_RM_BASE_RETRANSMISSION_INTERVAL "BaseRetransmissionInterval"</span>
<a name="l00047"></a>00047 <span class="preprocessor"></span><span class="preprocessor">#define AXIS2_RM_EXPONENTIAL_BACK_OFF "ExponentialBackoff"</span>
<a name="l00048"></a>00048 <span class="preprocessor"></span><span class="preprocessor">#define AXIS2_RM_ACKNOWLEDGEMENT_INTERVAL "AcknowledgementInterval"</span>
<a name="l00049"></a>00049 <span class="preprocessor"></span>
<a name="l00050"></a>00050 <span class="comment">/* RM policy 1.1 */</span>
<a name="l00051"></a>00051 
<a name="l00052"></a>00052 <span class="preprocessor">#define AXIS2_RM_SEQUENCE_STR "SequenceSTR"</span>
<a name="l00053"></a>00053 <span class="preprocessor"></span><span class="preprocessor">#define AXIS2_RM_SEQUENCE_TRANSPORT_SECURITY "SequenceTransportSecurity"</span>
<a name="l00054"></a>00054 <span class="preprocessor"></span><span class="preprocessor">#define AXIS2_RM_DELIVERY_ASSURANCE "DeliveryAssurance"</span>
<a name="l00055"></a>00055 <span class="preprocessor"></span><span class="preprocessor">#define AXIS2_RM_EXACTLY_ONCE "ExactlyOnce"</span>
<a name="l00056"></a>00056 <span class="preprocessor"></span><span class="preprocessor">#define AXIS2_RM_AT_LEAST_ONCE "AtLeastOnce"</span>
<a name="l00057"></a>00057 <span class="preprocessor"></span><span class="preprocessor">#define AXIS2_RM_AT_MOST_ONCE "AtMostOnce"</span>
<a name="l00058"></a>00058 <span class="preprocessor"></span><span class="preprocessor">#define AXIS2_RM_IN_ORDER "InOrder"</span>
<a name="l00059"></a>00059 <span class="preprocessor"></span>
<a name="l00060"></a>00060 <span class="comment">/* Sandesha2/C specific */</span>
<a name="l00061"></a>00061 
<a name="l00062"></a>00062 <span class="preprocessor">#define AXIS2_RM_SANDESHA2_DB "sandesha2_db"</span>
<a name="l00063"></a>00063 <span class="preprocessor"></span><span class="preprocessor">#define AXIS2_RM_STORAGE_MANAGER "StorageManager"</span>
<a name="l00064"></a>00064 <span class="preprocessor"></span><span class="preprocessor">#define AXIS2_RM_MESSAGE_TYPES_TO_DROP "MessageTypesToDrop"</span>
<a name="l00065"></a>00065 <span class="preprocessor"></span><span class="preprocessor">#define AXIS2_RM_MAX_RETRANS_COUNT "MaxRetransCount"</span>
<a name="l00066"></a>00066 <span class="preprocessor"></span><span class="preprocessor">#define AXIS2_RM_SENDER_SLEEP_TIME "SenderSleepTime"</span>
<a name="l00067"></a>00067 <span class="preprocessor"></span><span class="preprocessor">#define AXIS2_RM_INVOKER_SLEEP_TIME "InvokerSleepTime"</span>
<a name="l00068"></a>00068 <span class="preprocessor"></span><span class="preprocessor">#define AXIS2_RM_POLLING_WAIT_TIME "PollingWaitTime"</span>
<a name="l00069"></a>00069 <span class="preprocessor"></span><span class="preprocessor">#define AXIS2_RM_TERMINATE_DELAY "TerminateDelay"</span>
<a name="l00070"></a>00070 <span class="preprocessor"></span>
<a name="l00071"></a>00071 
<a name="l00076"></a>00076 <span class="preprocessor">#ifdef __cplusplus</span>
<a name="l00077"></a>00077 <span class="preprocessor"></span><span class="keyword">extern</span> <span class="stringliteral">"C"</span>
<a name="l00078"></a>00078 {
<a name="l00079"></a>00079 <span class="preprocessor">#endif</span>
<a name="l00080"></a>00080 <span class="preprocessor"></span>
<a name="l00083"></a>00083 <span class="preprocessor">#ifdef __cplusplus</span>
<a name="l00084"></a>00084 <span class="preprocessor"></span>}
<a name="l00085"></a>00085 <span class="preprocessor">#endif</span>
<a name="l00086"></a>00086 <span class="preprocessor"></span>
<a name="l00087"></a>00087 <span class="preprocessor">#endif                          </span><span class="comment">/*NEETHI_INCLUDES_H */</span>
</pre></div><hr size="1"><address style="text-align: right;"><small>Generated on Fri Apr 17 11:49:43 2009 for Axis2/C by&nbsp;
<a href="http://www.doxygen.org/index.html">
<img src="doxygen.png" alt="doxygen" align="middle" border="0"></a> 1.5.3 </small></address>
</body>
</html>


<|start_filename|>util/include/axutil_date_time.h<|end_filename|>

/*
 * 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_DATE_TIME_H
#define AXUTIL_DATE_TIME_H

#include <axutil_utils_defines.h>
#include <axutil_env.h>

/**
 * @file axutil_date_time.h
 * @brief axis2-util
 */

#ifdef __cplusplus
extern "C"
{
#endif

    /**
     * @defgroup axutil_date_time
     * @ingroup axis2_util
     * @{
     */

    typedef struct axutil_date_time axutil_date_time_t;

    typedef enum
    {
        AXIS2_DATE_TIME_COMP_RES_FAILURE = -1,
        AXIS2_DATE_TIME_COMP_RES_UNKNOWN,
        AXIS2_DATE_TIME_COMP_RES_EXPIRED,
        AXIS2_DATE_TIME_COMP_RES_EQUAL,
        AXIS2_DATE_TIME_COMP_RES_NOT_EXPIRED
    } axutil_date_time_comp_result_t;

    /**
     * Creates axutil_date_time struct with current date time
     * @param env double pointer to environment struct. MUST NOT be NULL
     * @return pointer to newly created axutil_date_time struct
     */
    AXIS2_EXTERN axutil_date_time_t *AXIS2_CALL
    axutil_date_time_create(
        const axutil_env_t * env);

    /*
     * Creates axutil_date_time struct with an additional offset value
     * If the offset is a positive value then the time will be in the future
     *        offset is 0, then the time will be the current time
     *        offset is a negative value then the time is in the past.
     * @param env double pointer to environment struct. MUST NOT be NULL
     * @param offset the offset from the current time in seconds
     * @return pointer to newly created axutil_date_time struct
     **/
    AXIS2_EXTERN axutil_date_time_t *AXIS2_CALL

    axutil_date_time_create_with_offset(
        const axutil_env_t * env,
        int offset);

    /**
     * free the axutil_date_time.
     * @param date_time represet the type object
     * @param env pointer to environment struct. MUST NOT be NULL
     * @return AXIS2_SUCCESS on success, else AXIS2_FAILURE
     */
    AXIS2_EXTERN void AXIS2_CALL
    axutil_date_time_free(
        axutil_date_time_t * date_time,
        const axutil_env_t * env);

    /**
     * store the time value from plain text.
     * @param date_time represet the type object
     * @param env pointer to environment struct. MUST NOT be NULL
     * @param time time as a string format HH:MM:TTZ
     * @return AXIS2_SUCCESS on success, else AXIS2_FAILURE
     */
    AXIS2_EXTERN axis2_status_t AXIS2_CALL
    axutil_date_time_deserialize_time(
        axutil_date_time_t * date_time,
        const axutil_env_t * env,
        const axis2_char_t * time_str);

    /**
     * store the date value from plain text.
     * @param date_time represet the type object
     * @param env pointer to environment struct. MUST NOT be NULL
     * @param date date as a string format YYYY-MM-DD
     * @return AXIS2_SUCCESS on success, else AXIS2_FAILURE
     */
    AXIS2_EXTERN axis2_status_t AXIS2_CALL
    axutil_date_time_deserialize_date(
        axutil_date_time_t * date_time,
        const axutil_env_t * env,
        const axis2_char_t * date_str);

    /**
     * store the date value from plain text.
     * @param date_time represet the type object
     * @param env pointer to environment struct. MUST NOT be NULL
     * @param date_time string format YYYY-MM-DDTHH:MM:SSZ
     * @return AXIS2_SUCCESS on success, else AXIS2_FAILURE
     */
    AXIS2_EXTERN axis2_status_t AXIS2_CALL

    axutil_date_time_deserialize_date_time(
        axutil_date_time_t * date_time,
        const axutil_env_t * env,
        const axis2_char_t * date_time_str);

    /**
     * store the date value from set of values
     * @param date_time represet the type object
     * @param env pointer to environment struct. MUST NOT be NULL
     * @param year Integer -1 can be used to ignore
     * @param month Integer -1 can be used to ignore
     * @param date Integer -1 can be used to ignore
     * @param hour Integer -1 can be used to ignore
     * @param min Integer -1 can be used to ignore
     * @param second Integer -1 can be used to ignore
     * @return AXIS2_SUCCESS on success, else AXIS2_FAILURE
     */
    AXIS2_EXTERN axis2_status_t AXIS2_CALL
    axutil_date_time_set_date_time(
        axutil_date_time_t * date_time,
        const axutil_env_t * env,
        int year,
        int month,
        int date,
        int hour,
        int min,
        int second,
        int milliseconds);

    /**
     * retrive the stored time  as a string
     * @param date_time represet the type object
     * @param env pointer to environment struct. MUST NOT be NULL
     * @return time as a string format HH:MM:SSZ
     */
    AXIS2_EXTERN axis2_char_t *AXIS2_CALL
    axutil_date_time_serialize_time(
        axutil_date_time_t * date_time,
        const axutil_env_t * env);

    /**
     * retrive the stored date as a string
     * @param date_time represet the type object
     * @param env pointer to environment struct. MUST NOT be NULL
     * @return date as a string  format YYYY-MM-DD
     */
    AXIS2_EXTERN axis2_char_t *AXIS2_CALL
    axutil_date_time_serialize_date(
        axutil_date_time_t * date_time,
        const axutil_env_t * env);

    /**
     * retrive the stored date time  as a string with millisecond precision
     * @param date_time represet the type object
     * @param env pointer to environment struct. MUST NOT be NULL
     * @return time as a string format YYYY-MM-DDTHH:MM:SS.msZ
     */
    AXIS2_EXTERN axis2_char_t *AXIS2_CALL

    axutil_date_time_serialize_date_time(
        axutil_date_time_t * date_time,
        const axutil_env_t * env);

    /**
     * retrive the stored date time  as a string without millisecond
     * @param date_time represet the type object
     * @param env pointer to environment struct. MUST NOT be NULL
     * @return time as a string format YYYY-MM-DDTHH:MM:SSZ
     */
    AXIS2_EXTERN axis2_char_t *AXIS2_CALL
    axutil_date_time_serialize_date_time_without_millisecond(
        axutil_date_time_t * date_time,
        const axutil_env_t * env);

    /**
     * retrieve the year of the date time
     * @param date_time represet the type object
     * @param env pointer to environment struct. MUST NOT be NULL
     * @return year as an integer 
     */
    AXIS2_EXTERN int AXIS2_CALL
    axutil_date_time_get_year(
        axutil_date_time_t * date_time,
        const axutil_env_t * env);

    /**
     * retrieve the month of the date time
     * @param date_time represet the type object
     * @param env pointer to environment struct. MUST NOT be NULL
     * @return month as an integer 
     */
    AXIS2_EXTERN int AXIS2_CALL
    axutil_date_time_get_month(
        axutil_date_time_t * date_time,
        const axutil_env_t * env);

    /**
     * retrieve the date of the date time
     * @param date_time represet the type object
     * @param env pointer to environment struct. MUST NOT be NULL
     * @return date as an integer 
     */
    AXIS2_EXTERN int AXIS2_CALL
    axutil_date_time_get_date(
        axutil_date_time_t * date_time,
        const axutil_env_t * env);

    /**
     * retrieve the hour of the date time
     * @param date_time represet the type object
     * @param env pointer to environment struct. MUST NOT be NULL
     * @return hour as an integer 
     */
    AXIS2_EXTERN int AXIS2_CALL
    axutil_date_time_get_hour(
        axutil_date_time_t * date_time,
        const axutil_env_t * env);

    /**
     * retrieve the minute of the date time
     * @param date_time represet the type object
     * @param env pointer to environment struct. MUST NOT be NULL
     * @return minute as an integer 
     */
    AXIS2_EXTERN int AXIS2_CALL
    axutil_date_time_get_minute(
        axutil_date_time_t * date_time,
        const axutil_env_t * env);

    /**
     * retrieve the second of the date time
     * @param date_time represet the type object
     * @param env pointer to environment struct. MUST NOT be NULL
     * @return second as an integer 
     */
    AXIS2_EXTERN int AXIS2_CALL
    axutil_date_time_get_second(
        axutil_date_time_t * date_time,
        const axutil_env_t * env);

    AXIS2_EXTERN int AXIS2_CALL
    axutil_date_time_get_msec(
        axutil_date_time_t * date_time,
        const axutil_env_t * env);

    /**
     * Compare the date and time of @date_time with the reference @ref.
     * If the @date_time < @ref this returns NOT_EXPIRED.
     * If the @date_time > @ref this returns EXPIRED.
     * If the @date_time = @ref this returns EQUAL.
     * @param date_time the date time to be compared
     * @param env pointer to environment struct. MUST NOT be NULL
     * @ref the reference date time
     * @return NOT_EXPIRED/EXPIRED/EQUAL if valid otherwise return FAILURE
     */
    AXIS2_EXTERN axutil_date_time_comp_result_t AXIS2_CALL
    axutil_date_time_compare(
        axutil_date_time_t * date_time,
        const axutil_env_t * env,
        axutil_date_time_t * ref);

    AXIS2_EXTERN axutil_date_time_t *AXIS2_CALL
    axutil_date_time_utc_to_local(
        axutil_date_time_t * date_time,
        const axutil_env_t * env,
        axis2_bool_t is_positive,
        int hour,
        int min);

    AXIS2_EXTERN axutil_date_time_t *AXIS2_CALL
    axutil_date_time_local_to_utc(
        axutil_date_time_t * date_time,
        const axutil_env_t * env);

    AXIS2_EXTERN int AXIS2_CALL
    axutil_date_time_get_time_zone_hour(
        axutil_date_time_t * date_time,
        const axutil_env_t * env);

    AXIS2_EXTERN int AXIS2_CALL
    axutil_date_time_get_time_zone_minute(
        axutil_date_time_t * date_time,
        const axutil_env_t * env);

    AXIS2_EXTERN axis2_bool_t AXIS2_CALL
    axutil_date_time_is_time_zone_positive(
        axutil_date_time_t * date_time,
        const axutil_env_t * env);

    AXIS2_EXTERN axis2_status_t AXIS2_CALL
    axutil_date_time_set_time_zone(
        axutil_date_time_t * date_time,
        const axutil_env_t * env,
        axis2_bool_t is_positive,
        int hour,
        int min);

    AXIS2_EXTERN axis2_status_t AXIS2_CALL
    axutil_date_time_deserialize_date_time_with_time_zone(
        axutil_date_time_t * date_time,
        const axutil_env_t * env,
        const axis2_char_t * date_time_str);

    AXIS2_EXTERN axis2_status_t AXIS2_CALL
    axutil_date_time_deserialize_time_with_time_zone(
        axutil_date_time_t * date_time,
        const axutil_env_t * env,
        const axis2_char_t * time_str);

    AXIS2_EXTERN axis2_char_t *AXIS2_CALL
    axutil_date_time_serialize_date_time_with_time_zone(
        axutil_date_time_t * date_time,
        const axutil_env_t * env);

    AXIS2_EXTERN axis2_char_t *AXIS2_CALL
    axutil_date_time_serialize_time_with_time_zone(
        axutil_date_time_t * date_time,
        const axutil_env_t * env);

    AXIS2_EXTERN axis2_bool_t AXIS2_CALL
    axutil_date_time_is_utc(
        axutil_date_time_t * date_time,
        const axutil_env_t * env);

#ifdef __cplusplus
}
#endif

#endif                          /* AXIS2_DATE_TIME_H */


<|start_filename|>xdocs/api/html/group__axis2__transport__out__desc.html<|end_filename|>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html><head><meta http-equiv="Content-Type" content="text/html;charset=UTF-8">
<title>Axis2/C: transport out description</title>
<link href="doxygen.css" rel="stylesheet" type="text/css">
<link href="tabs.css" rel="stylesheet" type="text/css">
</head><body>
<!-- Generated by Doxygen 1.5.3 -->
<div class="tabs">
  <ul>
    <li><a href="index.html"><span>Main&nbsp;Page</span></a></li>
    <li><a href="modules.html"><span>Modules</span></a></li>
    <li><a href="annotated.html"><span>Classes</span></a></li>
    <li><a href="files.html"><span>Files</span></a></li>
    <li><a href="dirs.html"><span>Directories</span></a></li>
    <li><a href="pages.html"><span>Related&nbsp;Pages</span></a></li>
    <li><a href="examples.html"><span>Examples</span></a></li>
    <li>
      <form action="search.php" method="get">
        <table cellspacing="0" cellpadding="0" border="0">
          <tr>
            <td><label>&nbsp;<u>S</u>earch&nbsp;for&nbsp;</label></td>
            <td><input type="text" name="query" value="" size="20" accesskey="s"/></td>
          </tr>
        </table>
      </form>
    </li>
  </ul>
</div>
<h1>transport out description<br>
<small>
[<a class="el" href="group__axis2__desc.html">description</a>]</small>
</h1><table border="0" cellpadding="0" cellspacing="0">
<tr><td></td></tr>
<tr><td colspan="2"><br><h2>Files</h2></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top">file &nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="axis2__transport__out__desc_8h.html">axis2_transport_out_desc.h</a></td></tr>

<tr><td colspan="2"><br><h2>Typedefs</h2></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top">typedef struct <br>
axis2_transport_out_desc&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__axis2__transport__out__desc.html#g30caf90fd8fb7b0c89700bcb12e250df">axis2_transport_out_desc_t</a></td></tr>

<tr><td colspan="2"><br><h2>Functions</h2></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top">AXIS2_EXTERN void&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__axis2__transport__out__desc.html#g17a66a405da41dd82b2dc42b730179ea">axis2_transport_out_desc_free</a> (<a class="el" href="group__axis2__transport__out__desc.html#g30caf90fd8fb7b0c89700bcb12e250df">axis2_transport_out_desc_t</a> *transport_out_desc, const <a class="el" href="structaxutil__env.html">axutil_env_t</a> *env)</td></tr>

<tr><td class="memItemLeft" nowrap align="right" valign="top">AXIS2_EXTERN void&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__axis2__transport__out__desc.html#gf4917e987d796cc459ef55d00047fe33">axis2_transport_out_desc_free_void_arg</a> (void *transport_out, const <a class="el" href="structaxutil__env.html">axutil_env_t</a> *env)</td></tr>

<tr><td class="memItemLeft" nowrap align="right" valign="top">AXIS2_EXTERN <br>
AXIS2_TRANSPORT_ENUMS&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__axis2__transport__out__desc.html#gc56b3eb46671968107d9f6e2a8421c66">axis2_transport_out_desc_get_enum</a> (const <a class="el" href="group__axis2__transport__out__desc.html#g30caf90fd8fb7b0c89700bcb12e250df">axis2_transport_out_desc_t</a> *transport_out, const <a class="el" href="structaxutil__env.html">axutil_env_t</a> *env)</td></tr>

<tr><td class="memItemLeft" nowrap align="right" valign="top">AXIS2_EXTERN <br>
axis2_status_t&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__axis2__transport__out__desc.html#g3f8f58f6a90b6edc394949481eb2fe04">axis2_transport_out_desc_set_enum</a> (struct axis2_transport_out_desc *transport_out, const <a class="el" href="structaxutil__env.html">axutil_env_t</a> *env, const AXIS2_TRANSPORT_ENUMS trans_enum)</td></tr>

<tr><td class="memItemLeft" nowrap align="right" valign="top">AXIS2_EXTERN struct <br>
axis2_flow *&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__axis2__transport__out__desc.html#g2e7d8904b18d357a6b73f7b8cf301460">axis2_transport_out_desc_get_out_flow</a> (const <a class="el" href="group__axis2__transport__out__desc.html#g30caf90fd8fb7b0c89700bcb12e250df">axis2_transport_out_desc_t</a> *transport_out, const <a class="el" href="structaxutil__env.html">axutil_env_t</a> *env)</td></tr>

<tr><td class="memItemLeft" nowrap align="right" valign="top">AXIS2_EXTERN <br>
axis2_status_t&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__axis2__transport__out__desc.html#ga6d6933bd2681ae8f703e6081b63ef64">axis2_transport_out_desc_set_out_flow</a> (struct axis2_transport_out_desc *transport_out, const <a class="el" href="structaxutil__env.html">axutil_env_t</a> *env, struct axis2_flow *out_flow)</td></tr>

<tr><td class="memItemLeft" nowrap align="right" valign="top">AXIS2_EXTERN struct <br>
axis2_flow *&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__axis2__transport__out__desc.html#g36e3acc53b29852e92ad318de26ac385">axis2_transport_out_desc_get_fault_out_flow</a> (const <a class="el" href="group__axis2__transport__out__desc.html#g30caf90fd8fb7b0c89700bcb12e250df">axis2_transport_out_desc_t</a> *transport_out, const <a class="el" href="structaxutil__env.html">axutil_env_t</a> *env)</td></tr>

<tr><td class="memItemLeft" nowrap align="right" valign="top">AXIS2_EXTERN <br>
axis2_status_t&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__axis2__transport__out__desc.html#ga3a191a5b9b362398741b8fd7c5fbadb">axis2_transport_out_desc_set_fault_out_flow</a> (struct axis2_transport_out_desc *transport_out, const <a class="el" href="structaxutil__env.html">axutil_env_t</a> *env, struct axis2_flow *fault_out_flow)</td></tr>

<tr><td class="memItemLeft" nowrap align="right" valign="top">AXIS2_EXTERN <br>
<a class="el" href="structaxis2__transport__sender.html">axis2_transport_sender_t</a> *&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__axis2__transport__out__desc.html#g4e924632fe992d0be5e5ba163636a301">axis2_transport_out_desc_get_sender</a> (const <a class="el" href="group__axis2__transport__out__desc.html#g30caf90fd8fb7b0c89700bcb12e250df">axis2_transport_out_desc_t</a> *transport_out, const <a class="el" href="structaxutil__env.html">axutil_env_t</a> *env)</td></tr>

<tr><td class="memItemLeft" nowrap align="right" valign="top">AXIS2_EXTERN <br>
axis2_status_t&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__axis2__transport__out__desc.html#g945e1f92bebe27aa180358eb7eaaf126">axis2_transport_out_desc_set_sender</a> (struct axis2_transport_out_desc *transport_out, const <a class="el" href="structaxutil__env.html">axutil_env_t</a> *env, <a class="el" href="structaxis2__transport__sender.html">axis2_transport_sender_t</a> *sender)</td></tr>

<tr><td class="memItemLeft" nowrap align="right" valign="top">AXIS2_EXTERN struct <br>
axis2_phase *&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__axis2__transport__out__desc.html#gc6f65f940c3d5fa1f37f4ce4f2b8cf35">axis2_transport_out_desc_get_out_phase</a> (const <a class="el" href="group__axis2__transport__out__desc.html#g30caf90fd8fb7b0c89700bcb12e250df">axis2_transport_out_desc_t</a> *transport_out, const <a class="el" href="structaxutil__env.html">axutil_env_t</a> *env)</td></tr>

<tr><td class="memItemLeft" nowrap align="right" valign="top">AXIS2_EXTERN <br>
axis2_status_t&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__axis2__transport__out__desc.html#ga7e6529ba14d6223e216a338d0d21737">axis2_transport_out_desc_set_out_phase</a> (struct axis2_transport_out_desc *transport_out, const <a class="el" href="structaxutil__env.html">axutil_env_t</a> *env, struct axis2_phase *out_phase)</td></tr>

<tr><td class="memItemLeft" nowrap align="right" valign="top">AXIS2_EXTERN struct <br>
axis2_phase *&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__axis2__transport__out__desc.html#g494cdcb339e8e0790b9856d84445c81f">axis2_transport_out_desc_get_fault_phase</a> (const <a class="el" href="group__axis2__transport__out__desc.html#g30caf90fd8fb7b0c89700bcb12e250df">axis2_transport_out_desc_t</a> *transport_out, const <a class="el" href="structaxutil__env.html">axutil_env_t</a> *env)</td></tr>

<tr><td class="memItemLeft" nowrap align="right" valign="top">AXIS2_EXTERN <br>
axis2_status_t&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__axis2__transport__out__desc.html#gc40075ffa1f0d29c109d9b7e87a4dc1c">axis2_transport_out_desc_set_fault_phase</a> (struct axis2_transport_out_desc *transport_out, const <a class="el" href="structaxutil__env.html">axutil_env_t</a> *env, struct axis2_phase *fault_phase)</td></tr>

<tr><td class="memItemLeft" nowrap align="right" valign="top">AXIS2_EXTERN <br>
axis2_status_t&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__axis2__transport__out__desc.html#g8621dd5272956b27dea575d3faea7661">axis2_transport_out_desc_add_param</a> (<a class="el" href="group__axis2__transport__out__desc.html#g30caf90fd8fb7b0c89700bcb12e250df">axis2_transport_out_desc_t</a> *transport_out_desc, const <a class="el" href="structaxutil__env.html">axutil_env_t</a> *env, axutil_param_t *param)</td></tr>

<tr><td class="memItemLeft" nowrap align="right" valign="top">AXIS2_EXTERN <br>
axutil_param_t *&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__axis2__transport__out__desc.html#gff44a8c8a8cc57ca618f6c84c18e322e">axis2_transport_out_desc_get_param</a> (const <a class="el" href="group__axis2__transport__out__desc.html#g30caf90fd8fb7b0c89700bcb12e250df">axis2_transport_out_desc_t</a> *transport_out_desc, const <a class="el" href="structaxutil__env.html">axutil_env_t</a> *env, const axis2_char_t *param_name)</td></tr>

<tr><td class="memItemLeft" nowrap align="right" valign="top">AXIS2_EXTERN axis2_bool_t&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__axis2__transport__out__desc.html#g7a1d79a2e07e83772081c39aeaae5abc">axis2_transport_out_desc_is_param_locked</a> (<a class="el" href="group__axis2__transport__out__desc.html#g30caf90fd8fb7b0c89700bcb12e250df">axis2_transport_out_desc_t</a> *transport_out_desc, const <a class="el" href="structaxutil__env.html">axutil_env_t</a> *env, const axis2_char_t *param_name)</td></tr>

<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="g95608d7aa5b139240847799013fd8e2a"></a><!-- doxytag: member="axis2_transport_out_desc::axis2_transport_out_desc_param_container" ref="g95608d7aa5b139240847799013fd8e2a" args="(const axis2_transport_out_desc_t *transport_out_desc, const axutil_env_t *env)" -->
AXIS2_EXTERN <br>
axutil_param_container_t *&nbsp;</td><td class="memItemRight" valign="bottom"><b>axis2_transport_out_desc_param_container</b> (const <a class="el" href="group__axis2__transport__out__desc.html#g30caf90fd8fb7b0c89700bcb12e250df">axis2_transport_out_desc_t</a> *transport_out_desc, const <a class="el" href="structaxutil__env.html">axutil_env_t</a> *env)</td></tr>

<tr><td class="memItemLeft" nowrap align="right" valign="top">AXIS2_EXTERN <br>
<a class="el" href="group__axis2__transport__out__desc.html#g30caf90fd8fb7b0c89700bcb12e250df">axis2_transport_out_desc_t</a> *&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__axis2__transport__out__desc.html#g7f4ccfe57406b9e031c12ec4c0fe84ab">axis2_transport_out_desc_create</a> (const <a class="el" href="structaxutil__env.html">axutil_env_t</a> *env, const AXIS2_TRANSPORT_ENUMS trans_enum)</td></tr>

</table>
<hr><a name="_details"></a><h2>Detailed Description</h2>
transport out description represents a transport sender configured in Axis2 configuration. There can be multiple transport senders configured in axis2.xml file and each of them will be represented with a transport out description instance. deployment engine takes care of creating and instantiating transport out descriptions. transport out description encapsulates flows related to the transport out and also holds a reference to related transport sender. <hr><h2>Typedef Documentation</h2>
<a class="anchor" name="g30caf90fd8fb7b0c89700bcb12e250df"></a><!-- doxytag: member="axis2_transport_out_desc.h::axis2_transport_out_desc_t" ref="g30caf90fd8fb7b0c89700bcb12e250df" args="" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">typedef struct axis2_transport_out_desc <a class="el" href="group__axis2__transport__out__desc.html#g30caf90fd8fb7b0c89700bcb12e250df">axis2_transport_out_desc_t</a>          </td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
Type name for struct axis2_transport_out_desc 
</div>
</div><p>
<hr><h2>Function Documentation</h2>
<a class="anchor" name="g8621dd5272956b27dea575d3faea7661"></a><!-- doxytag: member="axis2_transport_out_desc.h::axis2_transport_out_desc_add_param" ref="g8621dd5272956b27dea575d3faea7661" args="(axis2_transport_out_desc_t *transport_out_desc, const axutil_env_t *env, axutil_param_t *param)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">AXIS2_EXTERN axis2_status_t axis2_transport_out_desc_add_param           </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="group__axis2__transport__out__desc.html#g30caf90fd8fb7b0c89700bcb12e250df">axis2_transport_out_desc_t</a> *&nbsp;</td>
          <td class="paramname"> <em>transport_out_desc</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const <a class="el" href="structaxutil__env.html">axutil_env_t</a> *&nbsp;</td>
          <td class="paramname"> <em>env</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">axutil_param_t *&nbsp;</td>
          <td class="paramname"> <em>param</em></td><td>&nbsp;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td><td width="100%"></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
Adds parameter. <dl compact><dt><b>Parameters:</b></dt><dd>
  <table border="0" cellspacing="2" cellpadding="0">
    <tr><td valign="top"></td><td valign="top"><em>transport_out_desc</em>&nbsp;</td><td>pointer to tarn sport out description </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>env</em>&nbsp;</td><td>pointer to environment struct </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>param</em>&nbsp;</td><td>pointer to parameter, transport out description assumes ownership of parameter </td></tr>
  </table>
</dl>
<dl class="return" compact><dt><b>Returns:</b></dt><dd>AXIS2_SUCCESS on success, else AXIS2_FAILURE </dd></dl>

</div>
</div><p>
<a class="anchor" name="g7f4ccfe57406b9e031c12ec4c0fe84ab"></a><!-- doxytag: member="axis2_transport_out_desc.h::axis2_transport_out_desc_create" ref="g7f4ccfe57406b9e031c12ec4c0fe84ab" args="(const axutil_env_t *env, const AXIS2_TRANSPORT_ENUMS trans_enum)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">AXIS2_EXTERN <a class="el" href="group__axis2__transport__out__desc.html#g30caf90fd8fb7b0c89700bcb12e250df">axis2_transport_out_desc_t</a>* axis2_transport_out_desc_create           </td>
          <td>(</td>
          <td class="paramtype">const <a class="el" href="structaxutil__env.html">axutil_env_t</a> *&nbsp;</td>
          <td class="paramname"> <em>env</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const AXIS2_TRANSPORT_ENUMS&nbsp;</td>
          <td class="paramname"> <em>trans_enum</em></td><td>&nbsp;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td><td width="100%"></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
Creates transport out description with given transport enum. <dl compact><dt><b>Parameters:</b></dt><dd>
  <table border="0" cellspacing="2" cellpadding="0">
    <tr><td valign="top"></td><td valign="top"><em>env</em>&nbsp;</td><td>pointer to environment struct </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>trans_enum</em>&nbsp;</td><td>pointer to transport enum </td></tr>
  </table>
</dl>
<dl class="return" compact><dt><b>Returns:</b></dt><dd>pointer to newly created transport out </dd></dl>

</div>
</div><p>
<a class="anchor" name="g17a66a405da41dd82b2dc42b730179ea"></a><!-- doxytag: member="axis2_transport_out_desc.h::axis2_transport_out_desc_free" ref="g17a66a405da41dd82b2dc42b730179ea" args="(axis2_transport_out_desc_t *transport_out_desc, const axutil_env_t *env)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">AXIS2_EXTERN void axis2_transport_out_desc_free           </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="group__axis2__transport__out__desc.html#g30caf90fd8fb7b0c89700bcb12e250df">axis2_transport_out_desc_t</a> *&nbsp;</td>
          <td class="paramname"> <em>transport_out_desc</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const <a class="el" href="structaxutil__env.html">axutil_env_t</a> *&nbsp;</td>
          <td class="paramname"> <em>env</em></td><td>&nbsp;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td><td width="100%"></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
Frees transport out description. <dl compact><dt><b>Parameters:</b></dt><dd>
  <table border="0" cellspacing="2" cellpadding="0">
    <tr><td valign="top"></td><td valign="top"><em>transport_out_dec</em>&nbsp;</td><td>pointer to transport out description </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>env</em>&nbsp;</td><td>pointer to environment struct </td></tr>
  </table>
</dl>
<dl class="return" compact><dt><b>Returns:</b></dt><dd>void </dd></dl>

</div>
</div><p>
<a class="anchor" name="gf4917e987d796cc459ef55d00047fe33"></a><!-- doxytag: member="axis2_transport_out_desc.h::axis2_transport_out_desc_free_void_arg" ref="gf4917e987d796cc459ef55d00047fe33" args="(void *transport_out, const axutil_env_t *env)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">AXIS2_EXTERN void axis2_transport_out_desc_free_void_arg           </td>
          <td>(</td>
          <td class="paramtype">void *&nbsp;</td>
          <td class="paramname"> <em>transport_out</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const <a class="el" href="structaxutil__env.html">axutil_env_t</a> *&nbsp;</td>
          <td class="paramname"> <em>env</em></td><td>&nbsp;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td><td width="100%"></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
Frees transport out description given as a void pointer. <dl compact><dt><b>Parameters:</b></dt><dd>
  <table border="0" cellspacing="2" cellpadding="0">
    <tr><td valign="top"></td><td valign="top"><em>transport_out_dec</em>&nbsp;</td><td>pointer to transport out description as a void pointer </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>env</em>&nbsp;</td><td>pointer to environment struct </td></tr>
  </table>
</dl>
<dl class="return" compact><dt><b>Returns:</b></dt><dd>void </dd></dl>

</div>
</div><p>
<a class="anchor" name="gc56b3eb46671968107d9f6e2a8421c66"></a><!-- doxytag: member="axis2_transport_out_desc.h::axis2_transport_out_desc_get_enum" ref="gc56b3eb46671968107d9f6e2a8421c66" args="(const axis2_transport_out_desc_t *transport_out, const axutil_env_t *env)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">AXIS2_EXTERN AXIS2_TRANSPORT_ENUMS axis2_transport_out_desc_get_enum           </td>
          <td>(</td>
          <td class="paramtype">const <a class="el" href="group__axis2__transport__out__desc.html#g30caf90fd8fb7b0c89700bcb12e250df">axis2_transport_out_desc_t</a> *&nbsp;</td>
          <td class="paramname"> <em>transport_out</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const <a class="el" href="structaxutil__env.html">axutil_env_t</a> *&nbsp;</td>
          <td class="paramname"> <em>env</em></td><td>&nbsp;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td><td width="100%"></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
Gets transport enum. <dl compact><dt><b>Parameters:</b></dt><dd>
  <table border="0" cellspacing="2" cellpadding="0">
    <tr><td valign="top"></td><td valign="top"><em>transport_out</em>&nbsp;</td><td>pointer to transport_out </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>env</em>&nbsp;</td><td>pointer to environment struct </td></tr>
  </table>
</dl>
<dl class="return" compact><dt><b>Returns:</b></dt><dd>transport enum </dd></dl>

</div>
</div><p>
<a class="anchor" name="g36e3acc53b29852e92ad318de26ac385"></a><!-- doxytag: member="axis2_transport_out_desc.h::axis2_transport_out_desc_get_fault_out_flow" ref="g36e3acc53b29852e92ad318de26ac385" args="(const axis2_transport_out_desc_t *transport_out, const axutil_env_t *env)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">AXIS2_EXTERN struct axis2_flow* axis2_transport_out_desc_get_fault_out_flow           </td>
          <td>(</td>
          <td class="paramtype">const <a class="el" href="group__axis2__transport__out__desc.html#g30caf90fd8fb7b0c89700bcb12e250df">axis2_transport_out_desc_t</a> *&nbsp;</td>
          <td class="paramname"> <em>transport_out</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const <a class="el" href="structaxutil__env.html">axutil_env_t</a> *&nbsp;</td>
          <td class="paramname"> <em>env</em></td><td>&nbsp;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td><td width="100%"><code> [read]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
Gets fault out flow. Fault out flow represents the list of phases invoked along the sender path if a fault happens. <dl compact><dt><b>Parameters:</b></dt><dd>
  <table border="0" cellspacing="2" cellpadding="0">
    <tr><td valign="top"></td><td valign="top"><em>transport_out</em>&nbsp;</td><td>pointer to transport_out </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>env</em>&nbsp;</td><td>pointer to environment struct </td></tr>
  </table>
</dl>
<dl class="return" compact><dt><b>Returns:</b></dt><dd>pointer to flow representing fault out flow </dd></dl>

</div>
</div><p>
<a class="anchor" name="g494cdcb339e8e0790b9856d84445c81f"></a><!-- doxytag: member="axis2_transport_out_desc.h::axis2_transport_out_desc_get_fault_phase" ref="g494cdcb339e8e0790b9856d84445c81f" args="(const axis2_transport_out_desc_t *transport_out, const axutil_env_t *env)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">AXIS2_EXTERN struct axis2_phase* axis2_transport_out_desc_get_fault_phase           </td>
          <td>(</td>
          <td class="paramtype">const <a class="el" href="group__axis2__transport__out__desc.html#g30caf90fd8fb7b0c89700bcb12e250df">axis2_transport_out_desc_t</a> *&nbsp;</td>
          <td class="paramname"> <em>transport_out</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const <a class="el" href="structaxutil__env.html">axutil_env_t</a> *&nbsp;</td>
          <td class="paramname"> <em>env</em></td><td>&nbsp;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td><td width="100%"><code> [read]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
Gets fault phase. <dl compact><dt><b>Parameters:</b></dt><dd>
  <table border="0" cellspacing="2" cellpadding="0">
    <tr><td valign="top"></td><td valign="top"><em>transport_out</em>&nbsp;</td><td>pointer to transport_out </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>env</em>&nbsp;</td><td>pointer to environment struct </td></tr>
  </table>
</dl>
<dl class="return" compact><dt><b>Returns:</b></dt><dd>pointer to phase representing fault phase, returns a reference, not a cloned copy </dd></dl>

</div>
</div><p>
<a class="anchor" name="g2e7d8904b18d357a6b73f7b8cf301460"></a><!-- doxytag: member="axis2_transport_out_desc.h::axis2_transport_out_desc_get_out_flow" ref="g2e7d8904b18d357a6b73f7b8cf301460" args="(const axis2_transport_out_desc_t *transport_out, const axutil_env_t *env)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">AXIS2_EXTERN struct axis2_flow* axis2_transport_out_desc_get_out_flow           </td>
          <td>(</td>
          <td class="paramtype">const <a class="el" href="group__axis2__transport__out__desc.html#g30caf90fd8fb7b0c89700bcb12e250df">axis2_transport_out_desc_t</a> *&nbsp;</td>
          <td class="paramname"> <em>transport_out</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const <a class="el" href="structaxutil__env.html">axutil_env_t</a> *&nbsp;</td>
          <td class="paramname"> <em>env</em></td><td>&nbsp;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td><td width="100%"><code> [read]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
Gets out flow. Out flow represents the list of phases invoked along the sender path. <dl compact><dt><b>Parameters:</b></dt><dd>
  <table border="0" cellspacing="2" cellpadding="0">
    <tr><td valign="top"></td><td valign="top"><em>transport_out</em>&nbsp;</td><td>pointer to transport_out </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>env</em>&nbsp;</td><td>pointer to environment struct </td></tr>
  </table>
</dl>
<dl class="return" compact><dt><b>Returns:</b></dt><dd>pointer to flow representing out flow, returns a reference, not a cloned copy </dd></dl>

</div>
</div><p>
<a class="anchor" name="gc6f65f940c3d5fa1f37f4ce4f2b8cf35"></a><!-- doxytag: member="axis2_transport_out_desc.h::axis2_transport_out_desc_get_out_phase" ref="gc6f65f940c3d5fa1f37f4ce4f2b8cf35" args="(const axis2_transport_out_desc_t *transport_out, const axutil_env_t *env)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">AXIS2_EXTERN struct axis2_phase* axis2_transport_out_desc_get_out_phase           </td>
          <td>(</td>
          <td class="paramtype">const <a class="el" href="group__axis2__transport__out__desc.html#g30caf90fd8fb7b0c89700bcb12e250df">axis2_transport_out_desc_t</a> *&nbsp;</td>
          <td class="paramname"> <em>transport_out</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const <a class="el" href="structaxutil__env.html">axutil_env_t</a> *&nbsp;</td>
          <td class="paramname"> <em>env</em></td><td>&nbsp;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td><td width="100%"><code> [read]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
Gets transport out phase. <dl compact><dt><b>Parameters:</b></dt><dd>
  <table border="0" cellspacing="2" cellpadding="0">
    <tr><td valign="top"></td><td valign="top"><em>transport_out</em>&nbsp;</td><td>pointer to transport_out </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>env</em>&nbsp;</td><td>pointer to environment struct </td></tr>
  </table>
</dl>
<dl class="return" compact><dt><b>Returns:</b></dt><dd>pointer to phase representing transport out phase, returns a reference, not a cloned copy </dd></dl>

</div>
</div><p>
<a class="anchor" name="gff44a8c8a8cc57ca618f6c84c18e322e"></a><!-- doxytag: member="axis2_transport_out_desc.h::axis2_transport_out_desc_get_param" ref="gff44a8c8a8cc57ca618f6c84c18e322e" args="(const axis2_transport_out_desc_t *transport_out_desc, const axutil_env_t *env, const axis2_char_t *param_name)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">AXIS2_EXTERN axutil_param_t* axis2_transport_out_desc_get_param           </td>
          <td>(</td>
          <td class="paramtype">const <a class="el" href="group__axis2__transport__out__desc.html#g30caf90fd8fb7b0c89700bcb12e250df">axis2_transport_out_desc_t</a> *&nbsp;</td>
          <td class="paramname"> <em>transport_out_desc</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const <a class="el" href="structaxutil__env.html">axutil_env_t</a> *&nbsp;</td>
          <td class="paramname"> <em>env</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const axis2_char_t *&nbsp;</td>
          <td class="paramname"> <em>param_name</em></td><td>&nbsp;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td><td width="100%"></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
Gets named parameter. <dl compact><dt><b>Parameters:</b></dt><dd>
  <table border="0" cellspacing="2" cellpadding="0">
    <tr><td valign="top"></td><td valign="top"><em>transport_out_desc</em>&nbsp;</td><td>pointer to transport out description </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>env</em>&nbsp;</td><td>pointer to environment struct </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>param_name</em>&nbsp;</td><td>parameter name string </td></tr>
  </table>
</dl>

</div>
</div><p>
<a class="anchor" name="g4e924632fe992d0be5e5ba163636a301"></a><!-- doxytag: member="axis2_transport_out_desc.h::axis2_transport_out_desc_get_sender" ref="g4e924632fe992d0be5e5ba163636a301" args="(const axis2_transport_out_desc_t *transport_out, const axutil_env_t *env)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">AXIS2_EXTERN <a class="el" href="structaxis2__transport__sender.html">axis2_transport_sender_t</a>* axis2_transport_out_desc_get_sender           </td>
          <td>(</td>
          <td class="paramtype">const <a class="el" href="group__axis2__transport__out__desc.html#g30caf90fd8fb7b0c89700bcb12e250df">axis2_transport_out_desc_t</a> *&nbsp;</td>
          <td class="paramname"> <em>transport_out</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const <a class="el" href="structaxutil__env.html">axutil_env_t</a> *&nbsp;</td>
          <td class="paramname"> <em>env</em></td><td>&nbsp;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td><td width="100%"></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
Gets transport sender. <dl compact><dt><b>Parameters:</b></dt><dd>
  <table border="0" cellspacing="2" cellpadding="0">
    <tr><td valign="top"></td><td valign="top"><em>transport_out</em>&nbsp;</td><td>pointer to transport_out </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>env</em>&nbsp;</td><td>pointer to environment struct </td></tr>
  </table>
</dl>
<dl class="return" compact><dt><b>Returns:</b></dt><dd>pointer to transport sender associated wit the transport out description, returns a reference, not a cloned copy </dd></dl>

</div>
</div><p>
<a class="anchor" name="g7a1d79a2e07e83772081c39aeaae5abc"></a><!-- doxytag: member="axis2_transport_out_desc.h::axis2_transport_out_desc_is_param_locked" ref="g7a1d79a2e07e83772081c39aeaae5abc" args="(axis2_transport_out_desc_t *transport_out_desc, const axutil_env_t *env, const axis2_char_t *param_name)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">AXIS2_EXTERN axis2_bool_t axis2_transport_out_desc_is_param_locked           </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="group__axis2__transport__out__desc.html#g30caf90fd8fb7b0c89700bcb12e250df">axis2_transport_out_desc_t</a> *&nbsp;</td>
          <td class="paramname"> <em>transport_out_desc</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const <a class="el" href="structaxutil__env.html">axutil_env_t</a> *&nbsp;</td>
          <td class="paramname"> <em>env</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const axis2_char_t *&nbsp;</td>
          <td class="paramname"> <em>param_name</em></td><td>&nbsp;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td><td width="100%"></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
Checks if the named parameter is locked. <dl compact><dt><b>Parameters:</b></dt><dd>
  <table border="0" cellspacing="2" cellpadding="0">
    <tr><td valign="top"></td><td valign="top"><em>transport_out_desc</em>&nbsp;</td><td>pointer to transport out description </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>env</em>&nbsp;</td><td>pointer to environment struct </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>param_name</em>&nbsp;</td><td>pointer to parameter name </td></tr>
  </table>
</dl>

</div>
</div><p>
<a class="anchor" name="g3f8f58f6a90b6edc394949481eb2fe04"></a><!-- doxytag: member="axis2_transport_out_desc.h::axis2_transport_out_desc_set_enum" ref="g3f8f58f6a90b6edc394949481eb2fe04" args="(struct axis2_transport_out_desc *transport_out, const axutil_env_t *env, const AXIS2_TRANSPORT_ENUMS trans_enum)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">AXIS2_EXTERN axis2_status_t axis2_transport_out_desc_set_enum           </td>
          <td>(</td>
          <td class="paramtype">struct axis2_transport_out_desc *&nbsp;</td>
          <td class="paramname"> <em>transport_out</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const <a class="el" href="structaxutil__env.html">axutil_env_t</a> *&nbsp;</td>
          <td class="paramname"> <em>env</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const AXIS2_TRANSPORT_ENUMS&nbsp;</td>
          <td class="paramname"> <em>trans_enum</em></td><td>&nbsp;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td><td width="100%"></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
Sets transport enum. <dl compact><dt><b>Parameters:</b></dt><dd>
  <table border="0" cellspacing="2" cellpadding="0">
    <tr><td valign="top"></td><td valign="top"><em>transport_out</em>&nbsp;</td><td>pointer to transport_out </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>env</em>&nbsp;</td><td>pointer to environment struct </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>trans_enum</em>&nbsp;</td><td>transport enum </td></tr>
  </table>
</dl>
<dl class="return" compact><dt><b>Returns:</b></dt><dd>AXIS2_SUCCESS on success, else AXIS2_FAILURE </dd></dl>

</div>
</div><p>
<a class="anchor" name="ga3a191a5b9b362398741b8fd7c5fbadb"></a><!-- doxytag: member="axis2_transport_out_desc.h::axis2_transport_out_desc_set_fault_out_flow" ref="ga3a191a5b9b362398741b8fd7c5fbadb" args="(struct axis2_transport_out_desc *transport_out, const axutil_env_t *env, struct axis2_flow *fault_out_flow)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">AXIS2_EXTERN axis2_status_t axis2_transport_out_desc_set_fault_out_flow           </td>
          <td>(</td>
          <td class="paramtype">struct axis2_transport_out_desc *&nbsp;</td>
          <td class="paramname"> <em>transport_out</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const <a class="el" href="structaxutil__env.html">axutil_env_t</a> *&nbsp;</td>
          <td class="paramname"> <em>env</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">struct axis2_flow *&nbsp;</td>
          <td class="paramname"> <em>fault_out_flow</em></td><td>&nbsp;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td><td width="100%"></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
Sets fault out flow. Fault out flow represents the list of phases invoked along the sender path if a fault happens. <dl compact><dt><b>Parameters:</b></dt><dd>
  <table border="0" cellspacing="2" cellpadding="0">
    <tr><td valign="top"></td><td valign="top"><em>transport_out</em>&nbsp;</td><td>pointer to transport_out </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>env</em>&nbsp;</td><td>pointer to environment struct </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>fault_out_flow</em>&nbsp;</td><td>pointer to fault_out_flow </td></tr>
  </table>
</dl>
<dl class="return" compact><dt><b>Returns:</b></dt><dd>AXIS2_SUCCESS on success, else AXIS2_FAILURE </dd></dl>

</div>
</div><p>
<a class="anchor" name="gc40075ffa1f0d29c109d9b7e87a4dc1c"></a><!-- doxytag: member="axis2_transport_out_desc.h::axis2_transport_out_desc_set_fault_phase" ref="gc40075ffa1f0d29c109d9b7e87a4dc1c" args="(struct axis2_transport_out_desc *transport_out, const axutil_env_t *env, struct axis2_phase *fault_phase)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">AXIS2_EXTERN axis2_status_t axis2_transport_out_desc_set_fault_phase           </td>
          <td>(</td>
          <td class="paramtype">struct axis2_transport_out_desc *&nbsp;</td>
          <td class="paramname"> <em>transport_out</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const <a class="el" href="structaxutil__env.html">axutil_env_t</a> *&nbsp;</td>
          <td class="paramname"> <em>env</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">struct axis2_phase *&nbsp;</td>
          <td class="paramname"> <em>fault_phase</em></td><td>&nbsp;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td><td width="100%"></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
Sets fault phase. <dl compact><dt><b>Parameters:</b></dt><dd>
  <table border="0" cellspacing="2" cellpadding="0">
    <tr><td valign="top"></td><td valign="top"><em>transport_out</em>&nbsp;</td><td>pointer to transport_out </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>env</em>&nbsp;</td><td>pointer to environment struct </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>fault_phase</em>&nbsp;</td><td>pointer to phase representing fault phase, transport description assumes ownership of phase </td></tr>
  </table>
</dl>
<dl class="return" compact><dt><b>Returns:</b></dt><dd>AXIS2_SUCCESS on success, else AXIS2_FAILURE </dd></dl>

</div>
</div><p>
<a class="anchor" name="ga6d6933bd2681ae8f703e6081b63ef64"></a><!-- doxytag: member="axis2_transport_out_desc.h::axis2_transport_out_desc_set_out_flow" ref="ga6d6933bd2681ae8f703e6081b63ef64" args="(struct axis2_transport_out_desc *transport_out, const axutil_env_t *env, struct axis2_flow *out_flow)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">AXIS2_EXTERN axis2_status_t axis2_transport_out_desc_set_out_flow           </td>
          <td>(</td>
          <td class="paramtype">struct axis2_transport_out_desc *&nbsp;</td>
          <td class="paramname"> <em>transport_out</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const <a class="el" href="structaxutil__env.html">axutil_env_t</a> *&nbsp;</td>
          <td class="paramname"> <em>env</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">struct axis2_flow *&nbsp;</td>
          <td class="paramname"> <em>out_flow</em></td><td>&nbsp;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td><td width="100%"></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
Sets out flow. Out flow represents the list of phases invoked along the sender path. <dl compact><dt><b>Parameters:</b></dt><dd>
  <table border="0" cellspacing="2" cellpadding="0">
    <tr><td valign="top"></td><td valign="top"><em>transport_out</em>&nbsp;</td><td>pointer to transport_out </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>env</em>&nbsp;</td><td>pointer to environment struct </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>out_flow</em>&nbsp;</td><td>pointer to out flow, transport out description assumes ownership of flow </td></tr>
  </table>
</dl>
<dl class="return" compact><dt><b>Returns:</b></dt><dd>AXIS2_SUCCESS on success, else AXIS2_FAILURE </dd></dl>

</div>
</div><p>
<a class="anchor" name="ga7e6529ba14d6223e216a338d0d21737"></a><!-- doxytag: member="axis2_transport_out_desc.h::axis2_transport_out_desc_set_out_phase" ref="ga7e6529ba14d6223e216a338d0d21737" args="(struct axis2_transport_out_desc *transport_out, const axutil_env_t *env, struct axis2_phase *out_phase)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">AXIS2_EXTERN axis2_status_t axis2_transport_out_desc_set_out_phase           </td>
          <td>(</td>
          <td class="paramtype">struct axis2_transport_out_desc *&nbsp;</td>
          <td class="paramname"> <em>transport_out</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const <a class="el" href="structaxutil__env.html">axutil_env_t</a> *&nbsp;</td>
          <td class="paramname"> <em>env</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">struct axis2_phase *&nbsp;</td>
          <td class="paramname"> <em>out_phase</em></td><td>&nbsp;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td><td width="100%"></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
Sets transport out phase. <dl compact><dt><b>Parameters:</b></dt><dd>
  <table border="0" cellspacing="2" cellpadding="0">
    <tr><td valign="top"></td><td valign="top"><em>transport_out</em>&nbsp;</td><td>pointer to transport_out </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>env</em>&nbsp;</td><td>pointer to environment struct </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>out_phase</em>&nbsp;</td><td>pointer to phase representing transport out phase, transport out description assumes ownership of phase </td></tr>
  </table>
</dl>
<dl class="return" compact><dt><b>Returns:</b></dt><dd>AXIS2_SUCCESS on success, else AXIS2_FAILURE </dd></dl>

</div>
</div><p>
<a class="anchor" name="g945e1f92bebe27aa180358eb7eaaf126"></a><!-- doxytag: member="axis2_transport_out_desc.h::axis2_transport_out_desc_set_sender" ref="g945e1f92bebe27aa180358eb7eaaf126" args="(struct axis2_transport_out_desc *transport_out, const axutil_env_t *env, axis2_transport_sender_t *sender)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">AXIS2_EXTERN axis2_status_t axis2_transport_out_desc_set_sender           </td>
          <td>(</td>
          <td class="paramtype">struct axis2_transport_out_desc *&nbsp;</td>
          <td class="paramname"> <em>transport_out</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const <a class="el" href="structaxutil__env.html">axutil_env_t</a> *&nbsp;</td>
          <td class="paramname"> <em>env</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype"><a class="el" href="structaxis2__transport__sender.html">axis2_transport_sender_t</a> *&nbsp;</td>
          <td class="paramname"> <em>sender</em></td><td>&nbsp;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td><td width="100%"></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
Sets transport sender. <dl compact><dt><b>Parameters:</b></dt><dd>
  <table border="0" cellspacing="2" cellpadding="0">
    <tr><td valign="top"></td><td valign="top"><em>transport_out</em>&nbsp;</td><td>pointer to transport_out </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>env</em>&nbsp;</td><td>pointer to environment struct </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>sender</em>&nbsp;</td><td>pointer to transport sender, transport description assumes ownership of sender </td></tr>
  </table>
</dl>
<dl class="return" compact><dt><b>Returns:</b></dt><dd>AXIS2_SUCCESS on success, else AXIS2_FAILURE </dd></dl>

</div>
</div><p>
<hr size="1"><address style="text-align: right;"><small>Generated on Fri Apr 17 11:49:45 2009 for Axis2/C by&nbsp;
<a href="http://www.doxygen.org/index.html">
<img src="doxygen.png" alt="doxygen" align="middle" border="0"></a> 1.5.3 </small></address>
</body>
</html>


<|start_filename|>util/src/digest_calc.c<|end_filename|>

/*
 * 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.
 */

#include <axutil_string.h>
#include <axutil_md5.h>
#include <axutil_digest_calc.h>

void AXIS2_CALL convert_to_hex(
    axutil_digest_hash_t bin,
    axutil_digest_hash_hex_t hex);

AXIS2_EXTERN axis2_status_t AXIS2_CALL
axutil_digest_calc_get_h_a1(
    const axutil_env_t *env,
    char *algorithm,                      
    char *user_name,                      
    char *realm,                          
    char *password,                       
    char *nonce,                          
    char *cnonce,                         
    axutil_digest_hash_hex_t session_key)
{
    axutil_md5_ctx_t *ctx;
    axutil_digest_hash_t ha1;

    ctx = axutil_md5_ctx_create(env);
    if (!ctx)
        return AXIS2_FAILURE;
    axutil_md5_update(ctx, env, user_name, strlen(user_name));
    axutil_md5_update(ctx, env, ":", 1);
    axutil_md5_update(ctx, env, realm, strlen(realm));
    axutil_md5_update(ctx, env, ":", 1);
    axutil_md5_update(ctx, env, password, strlen(password));
    axutil_md5_final(ctx, env, ha1);
    axutil_md5_ctx_free(ctx, env);
    if (!axutil_strcasecmp(algorithm, "md5-sess"))
    {
        ctx = axutil_md5_ctx_create(env);
        if (!ctx)
            return AXIS2_FAILURE;
        axutil_md5_update(ctx, env, ha1, AXIS2_DIGEST_HASH_LEN);
        axutil_md5_update(ctx, env, ":", 1);
        axutil_md5_update(ctx, env, nonce, strlen(nonce));
        axutil_md5_update(ctx, env, ":", 1);
        axutil_md5_update(ctx, env, cnonce, strlen(cnonce));
        axutil_md5_final(ctx, env, ha1);
        axutil_md5_ctx_free(ctx, env);
    }
    convert_to_hex(ha1, session_key);
    return AXIS2_SUCCESS;
} 

AXIS2_EXTERN axis2_status_t AXIS2_CALL
axutil_digest_calc_get_response(
    const axutil_env_t *env,
    axutil_digest_hash_hex_t h_a1,                       
    char *nonce,                       
    char *nonce_count,                 
    char *cnonce,                      
    char *qop,                         
    char *method,                      
    char *digest_uri,                  
    axutil_digest_hash_hex_t h_entity,  
    axutil_digest_hash_hex_t response)
{
    axutil_md5_ctx_t *ctx;
    axutil_digest_hash_t ha2;
    axutil_digest_hash_t resp_hash;
    axutil_digest_hash_hex_t ha2_hex;

    ctx = axutil_md5_ctx_create(env);
    if (!ctx)
        return AXIS2_FAILURE;
    axutil_md5_update(ctx, env, method, strlen(method));
    axutil_md5_update(ctx, env, ":", 1);
    axutil_md5_update(ctx, env, digest_uri, strlen(digest_uri));
    if (!axutil_strcasecmp(qop, "auth-int"))
    {
        axutil_md5_update(ctx, env, ":", 1);
        axutil_md5_update(ctx, env, h_entity, AXIS2_DIGEST_HASH_HEX_LEN);
    };
    axutil_md5_final(ctx, env, ha2);
    axutil_md5_ctx_free(ctx, env);
    convert_to_hex(ha2, ha2_hex);

    ctx = axutil_md5_ctx_create(env);
    if (!ctx)
        return AXIS2_FAILURE;
    axutil_md5_update(ctx, env, h_a1, AXIS2_DIGEST_HASH_HEX_LEN);
    axutil_md5_update(ctx, env, ":", 1);
    axutil_md5_update(ctx, env, nonce, strlen(nonce));
    axutil_md5_update(ctx, env, ":", 1);
    if (*qop)
    {
        axutil_md5_update(ctx, env, nonce_count, strlen(nonce_count));
        axutil_md5_update(ctx, env, ":", 1);
        axutil_md5_update(ctx, env, cnonce, strlen(cnonce));
        axutil_md5_update(ctx, env, ":", 1);
        axutil_md5_update(ctx, env, qop, strlen(qop));
        axutil_md5_update(ctx, env, ":", 1);
    };
    axutil_md5_update(ctx, env, ha2_hex, AXIS2_DIGEST_HASH_HEX_LEN);
    axutil_md5_final(ctx, env, resp_hash);
    axutil_md5_ctx_free(ctx, env);
    convert_to_hex(resp_hash, response);
    return AXIS2_SUCCESS;
}

void AXIS2_CALL convert_to_hex(
    axutil_digest_hash_t bin,
    axutil_digest_hash_hex_t hex)
{
    unsigned short i;
    unsigned char j;

    for (i = 0; i < AXIS2_DIGEST_HASH_LEN; i++)
    {
        j = (bin[i] >> 4) & 0xf;
        if (j <= 9)
            hex[i*2] = (j + '0');
         else
            hex[i*2] = (j + 'a' - 10);
        j = bin[i] & 0xf;
        if (j <= 9)
            hex[i*2+1] = (j + '0');
         else
            hex[i*2+1] = (j + 'a' - 10);
    }
    hex[AXIS2_DIGEST_HASH_HEX_LEN] = '\0';
}


<|start_filename|>xdocs/api/html/structaxis2__transport__receiver__ops.html<|end_filename|>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html><head><meta http-equiv="Content-Type" content="text/html;charset=UTF-8">
<title>Axis2/C: axis2_transport_receiver_ops Struct Reference</title>
<link href="doxygen.css" rel="stylesheet" type="text/css">
<link href="tabs.css" rel="stylesheet" type="text/css">
</head><body>
<!-- Generated by Doxygen 1.5.3 -->
<div class="tabs">
  <ul>
    <li><a href="index.html"><span>Main&nbsp;Page</span></a></li>
    <li><a href="modules.html"><span>Modules</span></a></li>
    <li class="current"><a href="annotated.html"><span>Classes</span></a></li>
    <li><a href="files.html"><span>Files</span></a></li>
    <li><a href="dirs.html"><span>Directories</span></a></li>
    <li><a href="pages.html"><span>Related&nbsp;Pages</span></a></li>
    <li><a href="examples.html"><span>Examples</span></a></li>
    <li>
      <form action="search.php" method="get">
        <table cellspacing="0" cellpadding="0" border="0">
          <tr>
            <td><label>&nbsp;<u>S</u>earch&nbsp;for&nbsp;</label></td>
            <td><input type="text" name="query" value="" size="20" accesskey="s"/></td>
          </tr>
        </table>
      </form>
    </li>
  </ul>
</div>
<div class="tabs">
  <ul>
    <li><a href="annotated.html"><span>Class&nbsp;List</span></a></li>
    <li><a href="functions.html"><span>Class&nbsp;Members</span></a></li>
  </ul>
</div>
<h1>axis2_transport_receiver_ops Struct Reference<br>
<small>
[<a class="el" href="group__axis2__transport__receiver.html">transport receiver</a>]</small>
</h1><!-- doxytag: class="axis2_transport_receiver_ops" -->Description Transport Receiver ops struct Encapsulator struct for ops of <a class="el" href="structaxis2__transport__receiver.html" title="Transport Reciever struct.">axis2_transport_receiver</a>.  
<a href="#_details">More...</a>
<p>
<code>#include &lt;<a class="el" href="axis2__transport__receiver_8h-source.html">axis2_transport_receiver.h</a>&gt;</code>
<p>

<p>
<a href="structaxis2__transport__receiver__ops-members.html">List of all members.</a><table border="0" cellpadding="0" cellspacing="0">
<tr><td></td></tr>
<tr><td colspan="2"><br><h2>Public Attributes</h2></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top">axis2_status_t(*&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="structaxis2__transport__receiver__ops.html#885be2bbdb84dd0733ee6b746a06135a">init</a> )(<a class="el" href="structaxis2__transport__receiver.html">axis2_transport_receiver_t</a> *transport_receiver, const <a class="el" href="structaxutil__env.html">axutil_env_t</a> *env, struct axis2_conf_ctx *conf_ctx, struct axis2_transport_in_desc *transport_in)</td></tr>

<tr><td class="memItemLeft" nowrap align="right" valign="top">axis2_status_t(*&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="structaxis2__transport__receiver__ops.html#1c192e805fc0f8bc17c03320bd4c6db5">start</a> )(<a class="el" href="structaxis2__transport__receiver.html">axis2_transport_receiver_t</a> *transport_receiver, const <a class="el" href="structaxutil__env.html">axutil_env_t</a> *env)</td></tr>

<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="el" href="group__axis2__endpoint__ref.html#gf6e89c83a6b553e7e3f11e787b3fecd4">axis2_endpoint_ref_t</a> *(*&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="structaxis2__transport__receiver__ops.html#46c5e7de76ce872bb45c0262a637ce24">get_reply_to_epr</a> )(<a class="el" href="structaxis2__transport__receiver.html">axis2_transport_receiver_t</a> *transport_receiver, const <a class="el" href="structaxutil__env.html">axutil_env_t</a> *env, const axis2_char_t *svc_name)</td></tr>

<tr><td class="memItemLeft" nowrap align="right" valign="top">struct axis2_conf_ctx *(*&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="structaxis2__transport__receiver__ops.html#c7cdf3c0d65565e17f021ad3a6f2f191">get_conf_ctx</a> )(<a class="el" href="structaxis2__transport__receiver.html">axis2_transport_receiver_t</a> *server, const <a class="el" href="structaxutil__env.html">axutil_env_t</a> *env)</td></tr>

<tr><td class="memItemLeft" nowrap align="right" valign="top">axis2_bool_t(*&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="structaxis2__transport__receiver__ops.html#ded8017d792312c9ddcef119c2ffaeb4">is_running</a> )(<a class="el" href="structaxis2__transport__receiver.html">axis2_transport_receiver_t</a> *server, const <a class="el" href="structaxutil__env.html">axutil_env_t</a> *env)</td></tr>

<tr><td class="memItemLeft" nowrap align="right" valign="top">axis2_status_t(*&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="structaxis2__transport__receiver__ops.html#1d77c3de28af26ef0962dab95f179bcf">stop</a> )(<a class="el" href="structaxis2__transport__receiver.html">axis2_transport_receiver_t</a> *transport_receiver, const <a class="el" href="structaxutil__env.html">axutil_env_t</a> *env)</td></tr>

<tr><td class="memItemLeft" nowrap align="right" valign="top">void(*&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="structaxis2__transport__receiver__ops.html#7994fd305b8424911cb4bbb0c6fd0245">free</a> )(<a class="el" href="structaxis2__transport__receiver.html">axis2_transport_receiver_t</a> *transport_receiver, const <a class="el" href="structaxutil__env.html">axutil_env_t</a> *env)</td></tr>

</table>
<hr><a name="_details"></a><h2>Detailed Description</h2>
Description Transport Receiver ops struct Encapsulator struct for ops of <a class="el" href="structaxis2__transport__receiver.html" title="Transport Reciever struct.">axis2_transport_receiver</a>. <hr><h2>Member Data Documentation</h2>
<a class="anchor" name="885be2bbdb84dd0733ee6b746a06135a"></a><!-- doxytag: member="axis2_transport_receiver_ops::init" ref="885be2bbdb84dd0733ee6b746a06135a" args=")(axis2_transport_receiver_t *transport_receiver, const axutil_env_t *env, struct axis2_conf_ctx *conf_ctx, struct axis2_transport_in_desc *transport_in)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">axis2_status_t( *  <a class="el" href="structaxis2__transport__receiver__ops.html#885be2bbdb84dd0733ee6b746a06135a">axis2_transport_receiver_ops::init</a>)(<a class="el" href="structaxis2__transport__receiver.html">axis2_transport_receiver_t</a> *transport_receiver, const <a class="el" href="structaxutil__env.html">axutil_env_t</a> *env, struct axis2_conf_ctx *conf_ctx, struct axis2_transport_in_desc *transport_in)          </td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
<dl compact><dt><b>Parameters:</b></dt><dd>
  <table border="0" cellspacing="2" cellpadding="0">
    <tr><td valign="top"></td><td valign="top"><em>transport_receiver</em>&nbsp;</td><td>pointer to transport receiver </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>env</em>&nbsp;</td><td>pointer to environment struct </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>conf_ctx</em>&nbsp;</td><td>pointer to configuratoin context </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>intrasport_in</em>&nbsp;</td><td>pointer to transport_in </td></tr>
  </table>
</dl>

</div>
</div><p>
<a class="anchor" name="1c192e805fc0f8bc17c03320bd4c6db5"></a><!-- doxytag: member="axis2_transport_receiver_ops::start" ref="1c192e805fc0f8bc17c03320bd4c6db5" args=")(axis2_transport_receiver_t *transport_receiver, const axutil_env_t *env)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">axis2_status_t( *  <a class="el" href="structaxis2__transport__receiver__ops.html#1c192e805fc0f8bc17c03320bd4c6db5">axis2_transport_receiver_ops::start</a>)(<a class="el" href="structaxis2__transport__receiver.html">axis2_transport_receiver_t</a> *transport_receiver, const <a class="el" href="structaxutil__env.html">axutil_env_t</a> *env)          </td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
<dl compact><dt><b>Parameters:</b></dt><dd>
  <table border="0" cellspacing="2" cellpadding="0">
    <tr><td valign="top"></td><td valign="top"><em>transport_receiver</em>&nbsp;</td><td></td></tr>
    <tr><td valign="top"></td><td valign="top"><em>env</em>&nbsp;</td><td>pointer to environmnet struct </td></tr>
  </table>
</dl>

</div>
</div><p>
<a class="anchor" name="46c5e7de76ce872bb45c0262a637ce24"></a><!-- doxytag: member="axis2_transport_receiver_ops::get_reply_to_epr" ref="46c5e7de76ce872bb45c0262a637ce24" args=")(axis2_transport_receiver_t *transport_receiver, const axutil_env_t *env, const axis2_char_t *svc_name)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="group__axis2__endpoint__ref.html#gf6e89c83a6b553e7e3f11e787b3fecd4">axis2_endpoint_ref_t</a>*( *  <a class="el" href="structaxis2__transport__receiver__ops.html#46c5e7de76ce872bb45c0262a637ce24">axis2_transport_receiver_ops::get_reply_to_epr</a>)(<a class="el" href="structaxis2__transport__receiver.html">axis2_transport_receiver_t</a> *transport_receiver, const <a class="el" href="structaxutil__env.html">axutil_env_t</a> *env, const axis2_char_t *svc_name)          </td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
<dl compact><dt><b>Parameters:</b></dt><dd>
  <table border="0" cellspacing="2" cellpadding="0">
    <tr><td valign="top"></td><td valign="top"><em>tranport_receiver</em>&nbsp;</td><td>pointer to transport receiver </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>env</em>&nbsp;</td><td>pointer to environmnet struct </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>svc_name</em>&nbsp;</td><td>pointer to service name </td></tr>
  </table>
</dl>

</div>
</div><p>
<a class="anchor" name="c7cdf3c0d65565e17f021ad3a6f2f191"></a><!-- doxytag: member="axis2_transport_receiver_ops::get_conf_ctx" ref="c7cdf3c0d65565e17f021ad3a6f2f191" args=")(axis2_transport_receiver_t *server, const axutil_env_t *env)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">struct axis2_conf_ctx*( *  <a class="el" href="structaxis2__transport__receiver__ops.html#c7cdf3c0d65565e17f021ad3a6f2f191">axis2_transport_receiver_ops::get_conf_ctx</a>)(<a class="el" href="structaxis2__transport__receiver.html">axis2_transport_receiver_t</a> *server, const <a class="el" href="structaxutil__env.html">axutil_env_t</a> *env)<code> [read]</code>          </td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
<dl compact><dt><b>Parameters:</b></dt><dd>
  <table border="0" cellspacing="2" cellpadding="0">
    <tr><td valign="top"></td><td valign="top"><em>server</em>&nbsp;</td><td>pointer to server </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>env</em>&nbsp;</td><td>pointer to environment struct </td></tr>
  </table>
</dl>

</div>
</div><p>
<a class="anchor" name="ded8017d792312c9ddcef119c2ffaeb4"></a><!-- doxytag: member="axis2_transport_receiver_ops::is_running" ref="ded8017d792312c9ddcef119c2ffaeb4" args=")(axis2_transport_receiver_t *server, const axutil_env_t *env)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">axis2_bool_t( *  <a class="el" href="structaxis2__transport__receiver__ops.html#ded8017d792312c9ddcef119c2ffaeb4">axis2_transport_receiver_ops::is_running</a>)(<a class="el" href="structaxis2__transport__receiver.html">axis2_transport_receiver_t</a> *server, const <a class="el" href="structaxutil__env.html">axutil_env_t</a> *env)          </td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
<dl compact><dt><b>Parameters:</b></dt><dd>
  <table border="0" cellspacing="2" cellpadding="0">
    <tr><td valign="top"></td><td valign="top"><em>server</em>&nbsp;</td><td>pointer to server </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>env</em>&nbsp;</td><td>pointer to environment struct </td></tr>
  </table>
</dl>

</div>
</div><p>
<a class="anchor" name="<KEY>"></a><!-- doxytag: member="axis2_transport_receiver_ops::stop" ref="<KEY>" args=")(axis2_transport_receiver_t *transport_receiver, const axutil_env_t *env)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">axis2_status_t( *  <a class="el" href="structaxis2__transport__receiver__ops.html#1d77c3de28af26ef0962dab95f179bcf">axis2_transport_receiver_ops::stop</a>)(<a class="el" href="structaxis2__transport__receiver.html">axis2_transport_receiver_t</a> *transport_receiver, const <a class="el" href="structaxutil__env.html">axutil_env_t</a> *env)          </td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
<dl compact><dt><b>Parameters:</b></dt><dd>
  <table border="0" cellspacing="2" cellpadding="0">
    <tr><td valign="top"></td><td valign="top"><em>transport_receiver</em>&nbsp;</td><td>pointer to transport receiver </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>env</em>&nbsp;</td><td>pointer to environment struct </td></tr>
  </table>
</dl>

</div>
</div><p>
<a class="anchor" name="7994fd305b8424911cb4bbb0c6fd0245"></a><!-- doxytag: member="axis2_transport_receiver_ops::free" ref="7994fd305b8424911cb4bbb0c6fd0245" args=")(axis2_transport_receiver_t *transport_receiver, const axutil_env_t *env)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">void( *  <a class="el" href="structaxis2__transport__receiver__ops.html#7994fd305b8424911cb4bbb0c6fd0245">axis2_transport_receiver_ops::free</a>)(<a class="el" href="structaxis2__transport__receiver.html">axis2_transport_receiver_t</a> *transport_receiver, const <a class="el" href="structaxutil__env.html">axutil_env_t</a> *env)          </td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
De-allocate memory <dl compact><dt><b>Parameters:</b></dt><dd>
  <table border="0" cellspacing="2" cellpadding="0">
    <tr><td valign="top"></td><td valign="top"><em>transport_receiver</em>&nbsp;</td><td>pointer to transport receiver </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>env</em>&nbsp;</td><td>pointer to environment struct </td></tr>
  </table>
</dl>

</div>
</div><p>
<hr>The documentation for this struct was generated from the following file:<ul>
<li><a class="el" href="axis2__transport__receiver_8h-source.html">axis2_transport_receiver.h</a></ul>
<hr size="1"><address style="text-align: right;"><small>Generated on Fri Apr 17 11:49:48 2009 for Axis2/C by&nbsp;
<a href="http://www.doxygen.org/index.html">
<img src="doxygen.png" alt="doxygen" align="middle" border="0"></a> 1.5.3 </small></address>
</body>
</html>


<|start_filename|>src/core/transport/http/server/IIS/iis_iaspi_plugin_51/axis2_isapi_51.c<|end_filename|>

/*
 * 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.
 */  
    
#include <windows.h>
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include <httpfilt.h>
    
#include <axis2_const.h>
#include <axis2_defines.h>
#include <axutil_env.h>
#include <axutil_stream.h>

#include "..\\axis2_iis_constants.h"

#define REGISTRY_LOC			 "Software\\Apache Axis2c\\IIS ISAPI Redirector"
#define AXIS2_IIS_AXIS2_LOC		 "axis2_location" 
static char *axis2_loc = "/axis2";

static axis2_char_t redirect_word[INTERNET_MAX_URL_LENGTH] = "/axis2/mod_axis2_IIS.dll\?";
/*
 * Search a given uri to find weather it matches a uri for the axis2
 * The uri format for axis2 is of the form
 * scheme://server:port/axis2/other_parts
 * This function search  a give uri for the /axis2/. If a match
 * is found it will replace the /axis2 part of the url with /axis2/mod_iis.dll?
*/
axis2_bool_t AXIS2_CALL 
get_extension_url(char url[], char ret_url[]);

/*
 * This function is called by the IIS server at the server 
 * initialization. So this is the ideal plcae for initializing 
 * axis2c.
*/ 
BOOL WINAPI GetFilterVersion(PHTTP_FILTER_VERSION pVer) 
{
	DWORD type = 0, size = 0;
    LONG lrc = 0;
	char tmpbuf[INTERNET_MAX_URL_LENGTH];
	HKEY hkey;
	ULONG http_filter_revision = HTTP_FILTER_REVISION;
	pVer->dwFilterVersion = pVer->dwServerFilterVersion;
	if (pVer->dwFilterVersion > http_filter_revision)
	{
		pVer->dwFilterVersion = http_filter_revision;
	}

	/*
	Receive notifictions when
	1. Server preprocessed the headers.
	2. Log 
	3. All the request coming in secure and none secure ports.
	*/ 
	pVer->dwFlags =
		(SF_NOTIFY_ORDER_HIGH | 
		SF_NOTIFY_PREPROC_HEADERS |
		SF_NOTIFY_SECURE_PORT | 
		SF_NOTIFY_NONSECURE_PORT |
		SF_NOTIFY_AUTH_COMPLETE 
		);

	/* Give a short discription about the module.*/
	strcpy(pVer->lpszFilterDesc, "axis2c filter");
	/* Get the axis2 location from the registry configuration */
	lrc = RegOpenKeyEx(HKEY_LOCAL_MACHINE, REGISTRY_LOC, (DWORD) 0, KEY_READ, &hkey);
    if (ERROR_SUCCESS != lrc)
    {
        return FALSE;
    }
	size = INTERNET_MAX_URL_LENGTH;
    lrc = RegQueryValueEx(hkey, AXIS2_IIS_AXIS2_LOC, (LPDWORD) 0, &type, (LPBYTE) tmpbuf, &size);
    if ((ERROR_SUCCESS == lrc) && (type == REG_SZ))
    {
        tmpbuf[size] = '\0';
		axis2_loc = _strdup(tmpbuf);
    } 
	RegCloseKey(hkey);
	return TRUE;
}

/*
When a notification happens this function is called by the IIS.
*/ 
DWORD WINAPI HttpFilterProc(
		PHTTP_FILTER_CONTEXT pfc,
		DWORD notificationType,
		LPVOID pvNotification) 
{
	DWORD bufferLength = INTERNET_MAX_URL_LENGTH;
	char url[INTERNET_MAX_URL_LENGTH];
	char modified_url[INTERNET_MAX_URL_LENGTH];

	if (notificationType == SF_NOTIFY_PREPROC_HEADERS)
	{
		pfc->GetServerVariable(pfc, "HTTP_URL", url, &bufferLength);
		if (get_extension_url(url, modified_url))
		{
			((PHTTP_FILTER_PREPROC_HEADERS) pvNotification)->SetHeader(pfc,
				"url",
				modified_url);
			return SF_STATUS_REQ_HANDLED_NOTIFICATION;
		}
	}
	return SF_STATUS_REQ_NEXT_NOTIFICATION;
}

axis2_bool_t AXIS2_CALL 
get_extension_url(char url[], char ret_url[]) 
{
	axis2_bool_t is_for_us = AXIS2_FALSE;
	int i = 0;
    /* Should contain "/axis2/"*/
    ret_url[0] = '\0';	
	if (strlen(url) >= strlen(axis2_loc))
    {
		is_for_us = AXIS2_TRUE;	
		while (axis2_loc[i] != '\0')
		{
			if (axis2_loc[i] != (url)[i]) {
				is_for_us = AXIS2_FALSE;
				break;
			}
			i++;
		}
		if (url[i] != '/' && url[i] != '\0')
		{
			is_for_us = AXIS2_FALSE;
		}
	}
	if (is_for_us)
	{
		strcpy(ret_url, redirect_word);
		strcat(ret_url, &url[i]);
	}
    return is_for_us;
}

<|start_filename|>xdocs/api/html/group__axiom__soap__fault__sub__code.html<|end_filename|>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html><head><meta http-equiv="Content-Type" content="text/html;charset=UTF-8">
<title>Axis2/C: soap fault sub code</title>
<link href="doxygen.css" rel="stylesheet" type="text/css">
<link href="tabs.css" rel="stylesheet" type="text/css">
</head><body>
<!-- Generated by Doxygen 1.5.3 -->
<div class="tabs">
  <ul>
    <li><a href="index.html"><span>Main&nbsp;Page</span></a></li>
    <li><a href="modules.html"><span>Modules</span></a></li>
    <li><a href="annotated.html"><span>Classes</span></a></li>
    <li><a href="files.html"><span>Files</span></a></li>
    <li><a href="dirs.html"><span>Directories</span></a></li>
    <li><a href="pages.html"><span>Related&nbsp;Pages</span></a></li>
    <li><a href="examples.html"><span>Examples</span></a></li>
    <li>
      <form action="search.php" method="get">
        <table cellspacing="0" cellpadding="0" border="0">
          <tr>
            <td><label>&nbsp;<u>S</u>earch&nbsp;for&nbsp;</label></td>
            <td><input type="text" name="query" value="" size="20" accesskey="s"/></td>
          </tr>
        </table>
      </form>
    </li>
  </ul>
</div>
<h1>soap fault sub code<br>
<small>
[<a class="el" href="group__axiom__soap.html">SOAP</a>]</small>
</h1><table border="0" cellpadding="0" cellspacing="0">
<tr><td></td></tr>
<tr><td colspan="2"><br><h2>Functions</h2></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top">AXIS2_EXTERN <br>
axiom_soap_fault_sub_code_t *&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__axiom__soap__fault__sub__code.html#g5145cc80fe64551473e01a1520454182">axiom_soap_fault_sub_code_create_with_parent</a> (const <a class="el" href="structaxutil__env.html">axutil_env_t</a> *env, axiom_soap_fault_code_t *fault_code)</td></tr>

<tr><td class="memItemLeft" nowrap align="right" valign="top">AXIS2_EXTERN <br>
axiom_soap_fault_sub_code_t *&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__axiom__soap__fault__sub__code.html#g14d4c68d8cf092dc1b3da0342d6c85f7">axiom_soap_fault_sub_code_create_with_parent_value</a> (const <a class="el" href="structaxutil__env.html">axutil_env_t</a> *env, axiom_soap_fault_code_t *fault_code, axis2_char_t *value)</td></tr>

<tr><td class="memItemLeft" nowrap align="right" valign="top">AXIS2_EXTERN void&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__axiom__soap__fault__sub__code.html#g141061c23cdbbbaa96d6badc6d548a00">axiom_soap_fault_sub_code_free</a> (axiom_soap_fault_sub_code_t *fault_sub_code, const <a class="el" href="structaxutil__env.html">axutil_env_t</a> *env)</td></tr>

<tr><td class="memItemLeft" nowrap align="right" valign="top">AXIS2_EXTERN <br>
axiom_soap_fault_sub_code_t *&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__axiom__soap__fault__sub__code.html#gd34ca96ee79733b00b3d2d143e9b9702">axiom_soap_fault_sub_code_get_sub_code</a> (axiom_soap_fault_sub_code_t *fault_sub_code, const <a class="el" href="structaxutil__env.html">axutil_env_t</a> *env)</td></tr>

<tr><td class="memItemLeft" nowrap align="right" valign="top">AXIS2_EXTERN struct <br>
axiom_soap_fault_value *&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__axiom__soap__fault__sub__code.html#g9c4864e1ac6156b4ef1cce4b4e81cfde">axiom_soap_fault_sub_code_get_value</a> (axiom_soap_fault_sub_code_t *fault_sub_code, const <a class="el" href="structaxutil__env.html">axutil_env_t</a> *env)</td></tr>

<tr><td class="memItemLeft" nowrap align="right" valign="top">AXIS2_EXTERN <br>
axiom_node_t *&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__axiom__soap__fault__sub__code.html#gfd47ab5044ec19f802569ba9a5555031">axiom_soap_fault_sub_code_get_base_node</a> (axiom_soap_fault_sub_code_t *fault_sub_code, const <a class="el" href="structaxutil__env.html">axutil_env_t</a> *env)</td></tr>

</table>
<hr><h2>Function Documentation</h2>
<a class="anchor" name="g5145cc80fe64551473e01a1520454182"></a><!-- doxytag: member="axiom_soap_fault_sub_code.h::axiom_soap_fault_sub_code_create_with_parent" ref="g5145cc80fe64551473e01a1520454182" args="(const axutil_env_t *env, axiom_soap_fault_code_t *fault_code)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">AXIS2_EXTERN axiom_soap_fault_sub_code_t* axiom_soap_fault_sub_code_create_with_parent           </td>
          <td>(</td>
          <td class="paramtype">const <a class="el" href="structaxutil__env.html">axutil_env_t</a> *&nbsp;</td>
          <td class="paramname"> <em>env</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">axiom_soap_fault_code_t *&nbsp;</td>
          <td class="paramname"> <em>fault_code</em></td><td>&nbsp;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td><td width="100%"></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
creates a soap struct <dl compact><dt><b>Parameters:</b></dt><dd>
  <table border="0" cellspacing="2" cellpadding="0">
    <tr><td valign="top"></td><td valign="top"><em>env</em>&nbsp;</td><td>Environment. MUST NOT be NULL </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>fault_code</em>&nbsp;</td><td>SOAP fault code</td></tr>
  </table>
</dl>
<dl class="return" compact><dt><b>Returns:</b></dt><dd>Created SOAP fault sub code </dd></dl>

</div>
</div><p>
<a class="anchor" name="g14d4c68d8cf092dc1b3da0342d6c85f7"></a><!-- doxytag: member="axiom_soap_fault_sub_code.h::axiom_soap_fault_sub_code_create_with_parent_value" ref="g14d4c68d8cf092dc1b3da0342d6c85f7" args="(const axutil_env_t *env, axiom_soap_fault_code_t *fault_code, axis2_char_t *value)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">AXIS2_EXTERN axiom_soap_fault_sub_code_t* axiom_soap_fault_sub_code_create_with_parent_value           </td>
          <td>(</td>
          <td class="paramtype">const <a class="el" href="structaxutil__env.html">axutil_env_t</a> *&nbsp;</td>
          <td class="paramname"> <em>env</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">axiom_soap_fault_code_t *&nbsp;</td>
          <td class="paramname"> <em>fault_code</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">axis2_char_t *&nbsp;</td>
          <td class="paramname"> <em>value</em></td><td>&nbsp;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td><td width="100%"></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
Create a SOAP fault sub code from the given SOAP fault and value <dl compact><dt><b>Parameters:</b></dt><dd>
  <table border="0" cellspacing="2" cellpadding="0">
    <tr><td valign="top"></td><td valign="top"><em>fault_sub_code</em>&nbsp;</td><td>pointer to soap_fault_sub_code struct </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>env</em>&nbsp;</td><td>Environment. MUST NOT be NULL </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>value</em>&nbsp;</td><td>the value to be set to the SOAP fault</td></tr>
  </table>
</dl>
<dl class="return" compact><dt><b>Returns:</b></dt><dd>Created SOAP sub code </dd></dl>

</div>
</div><p>
<a class="anchor" name="g141061c23cdbbbaa96d6badc6d548a00"></a><!-- doxytag: member="axiom_soap_fault_sub_code.h::axiom_soap_fault_sub_code_free" ref="g141061c23cdbbbaa96d6badc6d548a00" args="(axiom_soap_fault_sub_code_t *fault_sub_code, const axutil_env_t *env)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">AXIS2_EXTERN void axiom_soap_fault_sub_code_free           </td>
          <td>(</td>
          <td class="paramtype">axiom_soap_fault_sub_code_t *&nbsp;</td>
          <td class="paramname"> <em>fault_sub_code</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const <a class="el" href="structaxutil__env.html">axutil_env_t</a> *&nbsp;</td>
          <td class="paramname"> <em>env</em></td><td>&nbsp;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td><td width="100%"></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
Free an axiom_soap_fault_sub_code <dl compact><dt><b>Parameters:</b></dt><dd>
  <table border="0" cellspacing="2" cellpadding="0">
    <tr><td valign="top"></td><td valign="top"><em>fault_sub_code</em>&nbsp;</td><td>pointer to soap_fault_sub_code struct </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>env</em>&nbsp;</td><td>Environment. MUST NOT be NULL </td></tr>
  </table>
</dl>
<dl class="return" compact><dt><b>Returns:</b></dt><dd>VOID </dd></dl>

</div>
</div><p>
<a class="anchor" name="gfd47ab5044ec19f802569ba9a5555031"></a><!-- doxytag: member="axiom_soap_fault_sub_code.h::axiom_soap_fault_sub_code_get_base_node" ref="gfd47ab5044ec19f802569ba9a5555031" args="(axiom_soap_fault_sub_code_t *fault_sub_code, const axutil_env_t *env)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">AXIS2_EXTERN axiom_node_t* axiom_soap_fault_sub_code_get_base_node           </td>
          <td>(</td>
          <td class="paramtype">axiom_soap_fault_sub_code_t *&nbsp;</td>
          <td class="paramname"> <em>fault_sub_code</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const <a class="el" href="structaxutil__env.html">axutil_env_t</a> *&nbsp;</td>
          <td class="paramname"> <em>env</em></td><td>&nbsp;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td><td width="100%"></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
Get the base node of the SOAP fault sub code <dl compact><dt><b>Parameters:</b></dt><dd>
  <table border="0" cellspacing="2" cellpadding="0">
    <tr><td valign="top"></td><td valign="top"><em>fault_sub_code</em>&nbsp;</td><td>pointer to soap_fault_sub_code struct </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>env</em>&nbsp;</td><td>Environment. MUST NOT be NULL</td></tr>
  </table>
</dl>
<dl class="return" compact><dt><b>Returns:</b></dt><dd>the base node of the SOAP fault sub code as OM node </dd></dl>

</div>
</div><p>
<a class="anchor" name="gd34ca96ee79733b00b3d2d143e9b9702"></a><!-- doxytag: member="axiom_soap_fault_sub_code.h::axiom_soap_fault_sub_code_get_sub_code" ref="gd34ca96ee79733b00b3d2d143e9b9702" args="(axiom_soap_fault_sub_code_t *fault_sub_code, const axutil_env_t *env)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">AXIS2_EXTERN axiom_soap_fault_sub_code_t* axiom_soap_fault_sub_code_get_sub_code           </td>
          <td>(</td>
          <td class="paramtype">axiom_soap_fault_sub_code_t *&nbsp;</td>
          <td class="paramname"> <em>fault_sub_code</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const <a class="el" href="structaxutil__env.html">axutil_env_t</a> *&nbsp;</td>
          <td class="paramname"> <em>env</em></td><td>&nbsp;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td><td width="100%"></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
Get the SOAP fault sub code <dl compact><dt><b>Parameters:</b></dt><dd>
  <table border="0" cellspacing="2" cellpadding="0">
    <tr><td valign="top"></td><td valign="top"><em>fault_sub_code</em>&nbsp;</td><td>pointer to soap_fault_sub_code struct </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>env</em>&nbsp;</td><td>Environment. MUST NOT be NULL</td></tr>
  </table>
</dl>
<dl class="return" compact><dt><b>Returns:</b></dt><dd>the SOAP fault sub code </dd></dl>

</div>
</div><p>
<a class="anchor" name="g9c4864e1ac6156b4ef1cce4b4e81cfde"></a><!-- doxytag: member="axiom_soap_fault_sub_code.h::axiom_soap_fault_sub_code_get_value" ref="g9c4864e1ac6156b4ef1cce4b4e81cfde" args="(axiom_soap_fault_sub_code_t *fault_sub_code, const axutil_env_t *env)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">AXIS2_EXTERN struct axiom_soap_fault_value* axiom_soap_fault_sub_code_get_value           </td>
          <td>(</td>
          <td class="paramtype">axiom_soap_fault_sub_code_t *&nbsp;</td>
          <td class="paramname"> <em>fault_sub_code</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const <a class="el" href="structaxutil__env.html">axutil_env_t</a> *&nbsp;</td>
          <td class="paramname"> <em>env</em></td><td>&nbsp;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td><td width="100%"><code> [read]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
Get the value of the SOAP fault sub code <dl compact><dt><b>Parameters:</b></dt><dd>
  <table border="0" cellspacing="2" cellpadding="0">
    <tr><td valign="top"></td><td valign="top"><em>fault_sub_code</em>&nbsp;</td><td>pointer to soap_fault_sub_code struct </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>env</em>&nbsp;</td><td>Environment. MUST NOT be NULL</td></tr>
  </table>
</dl>
<dl class="return" compact><dt><b>Returns:</b></dt><dd>the SOAP fault value </dd></dl>

</div>
</div><p>
<hr size="1"><address style="text-align: right;"><small>Generated on Fri Apr 17 11:49:44 2009 for Axis2/C by&nbsp;
<a href="http://www.doxygen.org/index.html">
<img src="doxygen.png" alt="doxygen" align="middle" border="0"></a> 1.5.3 </small></address>
</body>
</html>


<|start_filename|>neethi/src/secpolicy/builder/signed_encrypted_parts_builder.c<|end_filename|>
/*
 * 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.
 */

#include <rp_signed_encrypted_parts_builder.h>
#include <neethi_operator.h>
#include <neethi_policy.h>
#include <neethi_exactlyone.h>
#include <neethi_all.h>
#include <neethi_engine.h>

static rp_header_t *AXIS2_CALL rp_signed_encrypted_parts_builder_build_header(
    axiom_element_t *element,
    const axutil_env_t *env);

static axis2_status_t AXIS2_CALL rp_signed_encrypted_parts_builder_set_properties(
    axiom_node_t *node,
    axiom_element_t *element,
    axis2_char_t *local_name,
    rp_signed_encrypted_parts_t *signed_encrypted_parts,
    const axutil_env_t *env);

/**
 * Builts EncryptedParts or SignedParts assertion
 * @param env Pointer to environment struct
 * @param node Assertion node
 * @param element Assertion element
 * @param is_signed boolean showing whether signing or encryption
 * @returns neethi assertion created. NULL if failure.
 */
AXIS2_EXTERN neethi_assertion_t *AXIS2_CALL
rp_signed_encrypted_parts_builder_build(
    const axutil_env_t *env,
    axiom_node_t *parts,
    axiom_element_t *parts_ele, 
    axis2_bool_t is_signed)
{
    rp_signed_encrypted_parts_t *signed_encrypted_parts = NULL;
    axiom_children_iterator_t *children_iter = NULL;
    neethi_assertion_t *assertion = NULL;
    axis2_status_t status = AXIS2_SUCCESS;

    signed_encrypted_parts = rp_signed_encrypted_parts_create(env);
    if (!signed_encrypted_parts)
    {
        AXIS2_LOG_ERROR(env->log, AXIS2_LOG_SI, 
            "[neethi] Cannot create signed_encrypted_parts.");
        return NULL;
    }

    rp_signed_encrypted_parts_set_signedparts(signed_encrypted_parts, env, is_signed);

    children_iter = axiom_element_get_children(parts_ele, env, parts);
    if (children_iter)
    {
        while (axiom_children_iterator_has_next(children_iter, env))
        {
            axiom_node_t *node = NULL;
            axiom_element_t *ele = NULL;
            axis2_char_t *local_name = NULL;
            node = axiom_children_iterator_next(children_iter, env);
            if (node)
            {
                if (axiom_node_get_node_type(node, env) == AXIOM_ELEMENT)
                {
                    ele = (axiom_element_t *) axiom_node_get_data_element(node, env);
                    if (ele)
                    {
                        local_name = axiom_element_get_localname(ele, env);
                        if (local_name)
                        {
                            status = rp_signed_encrypted_parts_builder_set_properties
                                (node, ele, local_name, signed_encrypted_parts, env);
                            if (status != AXIS2_SUCCESS)
                            {
                                rp_signed_encrypted_parts_free (signed_encrypted_parts, env);
                                signed_encrypted_parts = NULL;
                                AXIS2_LOG_ERROR(env->log, AXIS2_LOG_SI, 
                                    "[neethi] Cannot create signed_encrypted_parts. "
                                    "Error in processing child element %s", local_name);
                                    return NULL;
                            }
                        }
                    }
                }
            }
        }
    }
    assertion = neethi_assertion_create_with_args(
        env, (AXIS2_FREE_VOID_ARG)rp_signed_encrypted_parts_free, 
        signed_encrypted_parts, ASSERTION_TYPE_SIGNED_ENCRYPTED_PARTS);
    return assertion;
}

static axis2_status_t AXIS2_CALL
rp_signed_encrypted_parts_builder_set_properties(
    axiom_node_t *node,
    axiom_element_t *element,
    axis2_char_t *local_name,
    rp_signed_encrypted_parts_t * signed_encrypted_parts,
    const axutil_env_t *env)
{
    axis2_char_t *ns = NULL;
    axutil_qname_t *node_qname = NULL;

    node_qname = axiom_element_get_qname(element, env, node);
    if(!node_qname)
    {
        AXIS2_LOG_ERROR(env->log, AXIS2_LOG_SI, 
            "[neethi] Cannot get qname from element %s.", local_name);
        return AXIS2_FAILURE;
    }

    ns = axutil_qname_get_uri(node_qname, env);
    if(!ns)
    {
        AXIS2_LOG_ERROR(env->log, AXIS2_LOG_SI, 
            "[neethi] Cannot get namespace from element %s.", local_name);
        return AXIS2_FAILURE;
    }

    /* process assertions common for WS-SecPolicy 1.1 and 1.2 */
    if(!(axutil_strcmp(ns, RP_SP_NS_11) && axutil_strcmp(ns, RP_SP_NS_12)))
    {
        /* this assertion is in WS-SecurityPolicy namespace */
        if(!strcmp(local_name, RP_BODY))
        {
            rp_signed_encrypted_parts_set_body(signed_encrypted_parts, env, AXIS2_TRUE);
            return AXIS2_SUCCESS;
        }
        else if(!strcmp(local_name, RP_HEADER))
        {
            rp_header_t *header = NULL;
            header = rp_signed_encrypted_parts_builder_build_header(element, env);
            if(!header)
            {
                AXIS2_LOG_ERROR(env->log, AXIS2_LOG_SI, 
                    "[neethi] Failed to process Header Assertion.");
                return AXIS2_FAILURE;
            }

            return rp_signed_encrypted_parts_add_header(signed_encrypted_parts, env, header);
        }
    }

    /* process assertions specific to WS-SecPolicy 1.2 */
    if(!axutil_strcmp(ns, RP_SP_NS_12))
    {
        if(!strcmp(local_name, RP_ATTACHMENTS))
        {
            rp_signed_encrypted_parts_set_attachments(signed_encrypted_parts, env, AXIS2_TRUE);
            return AXIS2_SUCCESS;
        }
    }
    
    /* either namespace or assertion is not understood */
    AXIS2_LOG_ERROR(env->log, AXIS2_LOG_SI, 
        "[neethi] Unknown Assertion %s with namespace %s", local_name, ns);
    return AXIS2_FAILURE;
}

static rp_header_t *AXIS2_CALL
rp_signed_encrypted_parts_builder_build_header(
    axiom_element_t *element,
    const axutil_env_t *env)
{
    rp_header_t *header = NULL;
    axis2_char_t *name = NULL;
    axis2_char_t *nspace = NULL;

    name = axiom_element_get_attribute_value_by_name(element, env, RP_NAME);
    nspace = axiom_element_get_attribute_value_by_name(element, env, RP_NAMESPACE);
    if (!nspace)
    {
        AXIS2_LOG_ERROR(env->log, AXIS2_LOG_SI, 
            "[neethi] Header assertion should have namespace associated with it.");
        return NULL;
    }

    header = rp_header_create(env);
    if (!header)
    {
        AXIS2_LOG_ERROR(env->log, AXIS2_LOG_SI, 
            "[neethi] Cannot create rp_header structure. Insufficient memory.");
        return NULL;
    }

    if (name)
    {
        rp_header_set_name(header, env, name);
    }

    rp_header_set_namespace(header, env, nspace);
    return header;
}


<|start_filename|>test/core/clientapi/test_svc_client_handler_count.c<|end_filename|>
#include <stdio.h>
#include <axis2_util.h>
#include <axis2_client.h>

int
main(
    )
{
    axutil_env_t *env =
        axutil_env_create_all("hello_client.log", AXIS2_LOG_LEVEL_TRACE);
    const int TIMES = 1000;
    int i;
    for (i = 1; i <= TIMES; ++i)
    {
        printf("%d\n", i);
        axis2_svc_client_t *svc_client =
            axis2_svc_client_create(env, AXIS2_GETENV("AXIS2C_HOME"));
        axis2_svc_client_free(svc_client, env);
    }
    axutil_env_free(env);
    return 0;
}


<|start_filename|>xdocs/api/html/guththila__attribute_8h-source.html<|end_filename|>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html><head><meta http-equiv="Content-Type" content="text/html;charset=UTF-8">
<title>Axis2/C: guththila_attribute.h Source File</title>
<link href="doxygen.css" rel="stylesheet" type="text/css">
<link href="tabs.css" rel="stylesheet" type="text/css">
</head><body>
<!-- Generated by Doxygen 1.5.3 -->
<div class="tabs">
  <ul>
    <li><a href="index.html"><span>Main&nbsp;Page</span></a></li>
    <li><a href="modules.html"><span>Modules</span></a></li>
    <li><a href="annotated.html"><span>Classes</span></a></li>
    <li class="current"><a href="files.html"><span>Files</span></a></li>
    <li><a href="dirs.html"><span>Directories</span></a></li>
    <li><a href="pages.html"><span>Related&nbsp;Pages</span></a></li>
    <li><a href="examples.html"><span>Examples</span></a></li>
    <li>
      <form action="search.php" method="get">
        <table cellspacing="0" cellpadding="0" border="0">
          <tr>
            <td><label>&nbsp;<u>S</u>earch&nbsp;for&nbsp;</label></td>
            <td><input type="text" name="query" value="" size="20" accesskey="s"/></td>
          </tr>
        </table>
      </form>
    </li>
  </ul>
</div>
<div class="nav">
<a class="el" href="dir_f60961de8e5edc3b2658ef023e959e45.html">deploy</a>&nbsp;&raquo&nbsp;<a class="el" href="dir_6b4e91e54b7316b376882a6402adbf44.html">include</a>&nbsp;&raquo&nbsp;<a class="el" href="dir_df3a7695d5a9e696f30b948b566829e7.html">axis2-1.6.0</a></div>
<h1>guththila_attribute.h</h1><div class="fragment"><pre class="fragment"><a name="l00001"></a>00001 
<a name="l00002"></a>00002 <span class="comment">/*</span>
<a name="l00003"></a>00003 <span class="comment"> * Licensed to the Apache Software Foundation (ASF) under one or more</span>
<a name="l00004"></a>00004 <span class="comment"> * contributor license agreements.  See the NOTICE file distributed with</span>
<a name="l00005"></a>00005 <span class="comment"> * this work for additional information regarding copyright ownership.</span>
<a name="l00006"></a>00006 <span class="comment"> * The ASF licenses this file to You under the Apache License, Version 2.0</span>
<a name="l00007"></a>00007 <span class="comment"> * (the "License"); you may not use this file except in compliance with</span>
<a name="l00008"></a>00008 <span class="comment"> * the License.  You may obtain a copy of the License at</span>
<a name="l00009"></a>00009 <span class="comment"> *</span>
<a name="l00010"></a>00010 <span class="comment"> *      http://www.apache.org/licenses/LICENSE-2.0</span>
<a name="l00011"></a>00011 <span class="comment"> *</span>
<a name="l00012"></a>00012 <span class="comment"> * Unless required by applicable law or agreed to in writing, software</span>
<a name="l00013"></a>00013 <span class="comment"> * distributed under the License is distributed on an "AS IS" BASIS,</span>
<a name="l00014"></a>00014 <span class="comment"> * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.</span>
<a name="l00015"></a>00015 <span class="comment"> * See the License for the specific language governing permissions and</span>
<a name="l00016"></a>00016 <span class="comment"> * limitations under the License.</span>
<a name="l00017"></a>00017 <span class="comment"> */</span>
<a name="l00018"></a>00018 <span class="preprocessor">#ifndef GUTHTHILA_ATTRIBUTE_H</span>
<a name="l00019"></a>00019 <span class="preprocessor"></span><span class="preprocessor">#define GUTHTHILA_ATTRIBUTE_H</span>
<a name="l00020"></a>00020 <span class="preprocessor"></span>
<a name="l00021"></a>00021 <span class="preprocessor">#include &lt;guththila_defines.h&gt;</span>
<a name="l00022"></a>00022 <span class="preprocessor">#include &lt;guththila_token.h&gt;</span>
<a name="l00023"></a>00023 <span class="preprocessor">#include &lt;<a class="code" href="axutil__utils_8h.html">axutil_utils.h</a>&gt;</span>
<a name="l00024"></a>00024 
<a name="l00025"></a>00025 EXTERN_C_START() 
<a name="l00026"></a>00026 
<a name="l00027"></a>00027 <span class="preprocessor">#ifndef GUTHTHILA_ATTR_DEF_SIZE</span>
<a name="l00028"></a>00028 <span class="preprocessor"></span><span class="preprocessor">#define GUTHTHILA_ATTR_DEF_SIZE 16</span>
<a name="l00029"></a>00029 <span class="preprocessor"></span><span class="preprocessor">#endif  </span>
<a name="l00030"></a>00030 <span class="preprocessor"></span>
<a name="l00031"></a>00031 <span class="comment">/* Representation of an attribute */</span>
<a name="l00032"></a>00032 <span class="keyword">typedef</span> <span class="keyword">struct </span>guththila_attr_s
<a name="l00033"></a>00033 {
<a name="l00034"></a>00034     guththila_token_t *pref; <span class="comment">/* Prefix */</span>
<a name="l00035"></a>00035     guththila_token_t *name; <span class="comment">/* Name */</span>
<a name="l00036"></a>00036     guththila_token_t *val;  <span class="comment">/* Value */</span> 
<a name="l00037"></a>00037 } guththila_attr_t;
<a name="l00038"></a>00038 
<a name="l00039"></a>00039 <span class="keyword">typedef</span> <span class="keyword">struct </span>guththila_attr_list_s
<a name="l00040"></a>00040 {
<a name="l00041"></a>00041     guththila_attr_t *list;
<a name="l00042"></a>00042     guththila_stack_t fr_stack;
<a name="l00043"></a>00043     <span class="keywordtype">int</span> size;
<a name="l00044"></a>00044     <span class="keywordtype">int</span> capacity;
<a name="l00045"></a>00045 } guththila_attr_list_t;
<a name="l00046"></a>00046 
<a name="l00053"></a>00053 guththila_attr_list_t *
<a name="l00054"></a>00054 GUTHTHILA_CALL guththila_attr_list_create(<span class="keyword">const</span> <a class="code" href="structaxutil__env.html" title="Axis2 Environment struct.">axutil_env_t</a> * env);
<a name="l00055"></a>00055 
<a name="l00065"></a>00065 <span class="keywordtype">int</span> GUTHTHILA_CALL
<a name="l00066"></a>00066 guththila_attr_list_init(
<a name="l00067"></a>00067     guththila_attr_list_t * at_list,
<a name="l00068"></a>00068     <span class="keyword">const</span> <a class="code" href="structaxutil__env.html" title="Axis2 Environment struct.">axutil_env_t</a> * env);
<a name="l00069"></a>00069 
<a name="l00076"></a>00076 guththila_attr_t *
<a name="l00077"></a>00077 GUTHTHILA_CALL guththila_attr_list_get(guththila_attr_list_t * at_list,
<a name="l00078"></a>00078         <span class="keyword">const</span> <a class="code" href="structaxutil__env.html" title="Axis2 Environment struct.">axutil_env_t</a> * env);
<a name="l00079"></a>00079 
<a name="l00080"></a>00080 
<a name="l00091"></a>00091 <span class="keywordtype">int</span> GUTHTHILA_CALL
<a name="l00092"></a>00092 guththila_attr_list_release(
<a name="l00093"></a>00093     guththila_attr_list_t * at_list,
<a name="l00094"></a>00094     guththila_attr_t * attr,
<a name="l00095"></a>00095     <span class="keyword">const</span> <a class="code" href="structaxutil__env.html" title="Axis2 Environment struct.">axutil_env_t</a> * env);
<a name="l00096"></a>00096 
<a name="l00106"></a>00106 <span class="keywordtype">void</span> GUTHTHILA_CALL
<a name="l00107"></a>00107 msuila_attr_list_free_data(
<a name="l00108"></a>00108     guththila_attr_list_t * at_list,
<a name="l00109"></a>00109     <span class="keyword">const</span> <a class="code" href="structaxutil__env.html" title="Axis2 Environment struct.">axutil_env_t</a> * env);
<a name="l00110"></a>00110 
<a name="l00120"></a>00120 <span class="keywordtype">void</span> GUTHTHILA_CALL
<a name="l00121"></a>00121 guththila_attr_list_free(
<a name="l00122"></a>00122     guththila_attr_list_t * at_list,
<a name="l00123"></a>00123     <span class="keyword">const</span> <a class="code" href="structaxutil__env.html" title="Axis2 Environment struct.">axutil_env_t</a> * env);
<a name="l00124"></a>00124 
<a name="l00125"></a>00125 EXTERN_C_END() 
<a name="l00126"></a>00126 <span class="preprocessor">#endif  </span><span class="comment">/*  */</span>
<a name="l00127"></a>00127 
</pre></div><hr size="1"><address style="text-align: right;"><small>Generated on Fri Apr 17 11:49:43 2009 for Axis2/C by&nbsp;
<a href="http://www.doxygen.org/index.html">
<img src="doxygen.png" alt="doxygen" align="middle" border="0"></a> 1.5.3 </small></address>
</body>
</html>


<|start_filename|>xdocs/docs/hello/service/hello_svc.c<|end_filename|>

/*
 * Copyright 2004,2005 The Apache Software Foundation.
 *
 * Licensed 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.
 */
#include <axis2_svc_skeleton.h>
#include <axutil_log_default.h>
#include <axutil_error_default.h>
#include <axutil_array_list.h>
#include <axiom_text.h>
#include <axiom_node.h>
#include <axiom_element.h>
#include <stdio.h>

axiom_node_t *axis2_hello_greet(
    const axutil_env_t * env,
    axiom_node_t * node);

int AXIS2_CALL hello_free(
    axis2_svc_skeleton_t * svc_skeleton,
    const axutil_env_t * env);

axiom_node_t *AXIS2_CALL hello_invoke(
    axis2_svc_skeleton_t * svc_skeleton,
    const axutil_env_t * env,
    axiom_node_t * node,
    axis2_msg_ctx_t * msg_ctx);

int AXIS2_CALL hello_init(
    axis2_svc_skeleton_t * svc_skeleton,
    const axutil_env_t * env);

axiom_node_t *AXIS2_CALL hello_on_fault(
    axis2_svc_skeleton_t * svc_skeli,
    const axutil_env_t * env,
    axiom_node_t * node);

axiom_node_t *build_greeting_response(
    const axutil_env_t * env,
    axis2_char_t * greeting);

axiom_node_t *
axis2_hello_greet(
    const axutil_env_t * env,
    axiom_node_t * node)
{
    axiom_node_t *client_greeting_node = NULL;
    axiom_node_t *return_node = NULL;

    AXIS2_ENV_CHECK(env, NULL);

    if (node)
    {
        client_greeting_node = axiom_node_get_first_child(node, env);
        if (client_greeting_node &&
            axiom_node_get_node_type(client_greeting_node, env) == AXIOM_TEXT)
        {
            axiom_text_t *greeting =
                (axiom_text_t *)
                axiom_node_get_data_element(client_greeting_node, env);
            if (greeting && axiom_text_get_value(greeting, env))
            {
                const axis2_char_t *greeting_str =
                    axiom_text_get_value(greeting, env);
                printf("Client greeted saying \"%s\" \n", greeting_str);
                return_node = build_greeting_response(env, "Hello Client!");
            }
        }
    }
    else
    {
        AXIS2_ERROR_SET(env->error,
                        AXIS2_ERROR_SVC_SKEL_INVALID_XML_FORMAT_IN_REQUEST,
                        AXIS2_FAILURE);
        printf("ERROR: invalid XML in request\n");
        return_node = build_greeting_response(env, "Client! Who are you?");
    }

    return return_node;
}

axiom_node_t *
build_greeting_response(
    const axutil_env_t * env,
    axis2_char_t * greeting)
{
    axiom_node_t *greeting_om_node = NULL;
    axiom_element_t *greeting_om_ele = NULL;

    greeting_om_ele =
        axiom_element_create(env, NULL, "greetResponse", NULL,
                             &greeting_om_node);

    axiom_element_set_text(greeting_om_ele, env, greeting, greeting_om_node);

    return greeting_om_node;
}

static const axis2_svc_skeleton_ops_t hello_svc_skeleton_ops_var = {
    hello_init,
    hello_invoke,
    hello_on_fault,
    hello_free
};

axis2_svc_skeleton_t *
axis2_hello_create(
    const axutil_env_t * env)
{
    axis2_svc_skeleton_t *svc_skeleton = NULL;
    svc_skeleton = AXIS2_MALLOC(env->allocator, sizeof(axis2_svc_skeleton_t));

    svc_skeleton->ops = &hello_svc_skeleton_ops_var;

    svc_skeleton->func_array = NULL;

    return svc_skeleton;
}

int AXIS2_CALL
hello_init(
    axis2_svc_skeleton_t * svc_skeleton,
    const axutil_env_t * env)
{
    svc_skeleton->func_array = axutil_array_list_create(env, 0);
    axutil_array_list_add(svc_skeleton->func_array, env, "helloString");
    return AXIS2_SUCCESS;
}

axiom_node_t *AXIS2_CALL
hello_invoke(
    axis2_svc_skeleton_t * svc_skeleton,
    const axutil_env_t * env,
    axiom_node_t * node,
    axis2_msg_ctx_t * msg_ctx)
{
    return axis2_hello_greet(env, node);
}

axiom_node_t *AXIS2_CALL
hello_on_fault(
    axis2_svc_skeleton_t * svc_skeli,
    const axutil_env_t * env,
    axiom_node_t * node)
{
    axiom_node_t *error_node = NULL;
    axiom_node_t *text_node = NULL;
    axiom_element_t *error_ele = NULL;
    error_ele = axiom_element_create(env, node, "EchoServiceError", NULL,
                                     &error_node);
    axiom_element_set_text(error_ele, env, "Echo service failed ", text_node);
    return error_node;
}

int AXIS2_CALL
hello_free(
    axis2_svc_skeleton_t * svc_skeleton,
    const axutil_env_t * env)
{
    if (svc_skeleton->func_array)
    {
        axutil_array_list_free(svc_skeleton->func_array, env);
        svc_skeleton->func_array = NULL;
    }

    if (svc_skeleton)
    {
        AXIS2_FREE(env->allocator, svc_skeleton);
        svc_skeleton = NULL;
    }

    return AXIS2_SUCCESS;
}

AXIS2_EXPORT int
axis2_get_instance(
    axis2_svc_skeleton_t ** inst,
    const axutil_env_t * env)
{
    *inst = axis2_hello_create(env);
    if (!(*inst))
    {
        return AXIS2_FAILURE;
    }

    return AXIS2_SUCCESS;
}

AXIS2_EXPORT int
axis2_remove_instance(
    axis2_svc_skeleton_t * inst,
    const axutil_env_t * env)
{
    axis2_status_t status = AXIS2_FAILURE;
    if (inst)
    {
        status = AXIS2_SVC_SKELETON_FREE(inst, env);
    }
    return status;
}


<|start_filename|>xdocs/api/html/axiom__node_8h-source.html<|end_filename|>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html><head><meta http-equiv="Content-Type" content="text/html;charset=UTF-8">
<title>Axis2/C: axiom_node.h Source File</title>
<link href="doxygen.css" rel="stylesheet" type="text/css">
<link href="tabs.css" rel="stylesheet" type="text/css">
</head><body>
<!-- Generated by Doxygen 1.5.3 -->
<div class="tabs">
  <ul>
    <li><a href="index.html"><span>Main&nbsp;Page</span></a></li>
    <li><a href="modules.html"><span>Modules</span></a></li>
    <li><a href="annotated.html"><span>Classes</span></a></li>
    <li class="current"><a href="files.html"><span>Files</span></a></li>
    <li><a href="dirs.html"><span>Directories</span></a></li>
    <li><a href="pages.html"><span>Related&nbsp;Pages</span></a></li>
    <li><a href="examples.html"><span>Examples</span></a></li>
    <li>
      <form action="search.php" method="get">
        <table cellspacing="0" cellpadding="0" border="0">
          <tr>
            <td><label>&nbsp;<u>S</u>earch&nbsp;for&nbsp;</label></td>
            <td><input type="text" name="query" value="" size="20" accesskey="s"/></td>
          </tr>
        </table>
      </form>
    </li>
  </ul>
</div>
<div class="nav">
<a class="el" href="dir_f60961de8e5edc3b2658ef023e959e45.html">deploy</a>&nbsp;&raquo&nbsp;<a class="el" href="dir_6b4e91e54b7316b376882a6402adbf44.html">include</a>&nbsp;&raquo&nbsp;<a class="el" href="dir_df3a7695d5a9e696f30b948b566829e7.html">axis2-1.6.0</a></div>
<h1>axiom_node.h</h1><a href="axiom__node_8h.html">Go to the documentation of this file.</a><div class="fragment"><pre class="fragment"><a name="l00001"></a>00001 
<a name="l00002"></a>00002 <span class="comment">/*</span>
<a name="l00003"></a>00003 <span class="comment"> * Licensed to the Apache Software Foundation (ASF) under one or more</span>
<a name="l00004"></a>00004 <span class="comment"> * contributor license agreements.  See the NOTICE file distributed with</span>
<a name="l00005"></a>00005 <span class="comment"> * this work for additional information regarding copyright ownership.</span>
<a name="l00006"></a>00006 <span class="comment"> * The ASF licenses this file to You under the Apache License, Version 2.0</span>
<a name="l00007"></a>00007 <span class="comment"> * (the "License"); you may not use this file except in compliance with</span>
<a name="l00008"></a>00008 <span class="comment"> * the License.  You may obtain a copy of the License at</span>
<a name="l00009"></a>00009 <span class="comment"> *</span>
<a name="l00010"></a>00010 <span class="comment"> *      http://www.apache.org/licenses/LICENSE-2.0</span>
<a name="l00011"></a>00011 <span class="comment"> *</span>
<a name="l00012"></a>00012 <span class="comment"> * Unless required by applicable law or agreed to in writing, software</span>
<a name="l00013"></a>00013 <span class="comment"> * distributed under the License is distributed on an "AS IS" BASIS,</span>
<a name="l00014"></a>00014 <span class="comment"> * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.</span>
<a name="l00015"></a>00015 <span class="comment"> * See the License for the specific language governing permissions and</span>
<a name="l00016"></a>00016 <span class="comment"> * limitations under the License.</span>
<a name="l00017"></a>00017 <span class="comment"> */</span>
<a name="l00018"></a>00018 
<a name="l00019"></a>00019 <span class="preprocessor">#ifndef AXIOM_NODE_H</span>
<a name="l00020"></a>00020 <span class="preprocessor"></span><span class="preprocessor">#define AXIOM_NODE_H</span>
<a name="l00021"></a>00021 <span class="preprocessor"></span>
<a name="l00039"></a>00039 <span class="preprocessor">#include &lt;<a class="code" href="axutil__env_8h.html" title="Axis2 environment that acts as a container for error, log and memory allocator routines...">axutil_env.h</a>&gt;</span>
<a name="l00040"></a>00040 <span class="preprocessor">#include &lt;<a class="code" href="axutil__utils_8h.html">axutil_utils.h</a>&gt;</span>
<a name="l00041"></a>00041 
<a name="l00042"></a>00042 <span class="preprocessor">#ifdef __cplusplus</span>
<a name="l00043"></a>00043 <span class="preprocessor"></span><span class="keyword">extern</span> <span class="stringliteral">"C"</span>
<a name="l00044"></a>00044 {
<a name="l00045"></a>00045 <span class="preprocessor">#endif</span>
<a name="l00046"></a>00046 <span class="preprocessor"></span>
<a name="l00047"></a>00047     <span class="keyword">typedef</span> <span class="keyword">struct </span>axiom_node axiom_node_t;
<a name="l00048"></a>00048     <span class="keyword">struct </span>axiom_output;
<a name="l00049"></a>00049     <span class="keyword">struct </span>axiom_document;
<a name="l00050"></a>00050     <span class="keyword">struct </span>axiom_stax_builder;
<a name="l00051"></a>00051 
<a name="l00061"></a><a class="code" href="group__axiom__node.html#g1d63f86448ef155d8b2baa77ef7ae2ab">00061</a>     <span class="keyword">typedef</span> <span class="keyword">enum</span> <a class="code" href="group__axiom__node.html#g1d63f86448ef155d8b2baa77ef7ae2ab" title="AXIOM types.">axiom_types_t</a>
<a name="l00062"></a>00062     {
<a name="l00063"></a>00063 
<a name="l00065"></a><a class="code" href="group__axiom__node.html#gg1d63f86448ef155d8b2baa77ef7ae2ab8095bbfed954c5b83f7cb2b9be88b424">00065</a>         <a class="code" href="group__axiom__node.html#gg1d63f86448ef155d8b2baa77ef7ae2ab8095bbfed954c5b83f7cb2b9be88b424">AXIOM_INVALID</a> = 0,
<a name="l00066"></a>00066 
<a name="l00068"></a><a class="code" href="group__axiom__node.html#gg1d63f86448ef155d8b2baa77ef7ae2ab7d1cd7babba0b26f356b3551f3928137">00068</a>         <a class="code" href="group__axiom__node.html#gg1d63f86448ef155d8b2baa77ef7ae2ab7d1cd7babba0b26f356b3551f3928137">AXIOM_DOCUMENT</a>,
<a name="l00069"></a>00069 
<a name="l00071"></a><a class="code" href="group__axiom__node.html#gg1d63f86448ef155d8b2baa77ef7ae2ab8f302659663027c648d09c5f7639e258">00071</a>         <a class="code" href="group__axiom__node.html#gg1d63f86448ef155d8b2baa77ef7ae2ab8f302659663027c648d09c5f7639e258">AXIOM_ELEMENT</a>,
<a name="l00072"></a>00072 
<a name="l00074"></a><a class="code" href="group__axiom__node.html#gg1d63f86448ef155d8b2baa77ef7ae2abb7b1deecbd2a868300f609d0fed32b03">00074</a>         <a class="code" href="group__axiom__node.html#gg1d63f86448ef155d8b2baa77ef7ae2abb7b1deecbd2a868300f609d0fed32b03">AXIOM_DOCTYPE</a>,
<a name="l00075"></a>00075 
<a name="l00077"></a><a class="code" href="group__axiom__node.html#gg1d63f86448ef155d8b2baa77ef7ae2ab0dc6b4983ac7bf72b34cc272c8b2992d">00077</a>         <a class="code" href="group__axiom__node.html#gg1d63f86448ef155d8b2baa77ef7ae2ab0dc6b4983ac7bf72b34cc272c8b2992d">AXIOM_COMMENT</a>,
<a name="l00078"></a>00078 
<a name="l00080"></a><a class="code" href="group__axiom__node.html#gg1d63f86448ef155d8b2baa77ef7ae2ab58d53d51f1f6b2c316e3566b2c7ba6b2">00080</a>         <a class="code" href="group__axiom__node.html#gg1d63f86448ef155d8b2baa77ef7ae2ab58d53d51f1f6b2c316e3566b2c7ba6b2">AXIOM_ATTRIBUTE</a>,
<a name="l00081"></a>00081 
<a name="l00083"></a><a class="code" href="group__axiom__node.html#gg1d63f86448ef155d8b2baa77ef7ae2ab0e3fa55c496c56b36ecb55b60221890d">00083</a>         <a class="code" href="group__axiom__node.html#gg1d63f86448ef155d8b2baa77ef7ae2ab0e3fa55c496c56b36ecb55b60221890d">AXIOM_NAMESPACE</a>,
<a name="l00084"></a>00084 
<a name="l00086"></a><a class="code" href="group__axiom__node.html#gg1d63f86448ef155d8b2baa77ef7ae2ab008f7c2f34ead9d68d3e3f0f6612f547">00086</a>         <a class="code" href="group__axiom__node.html#gg1d63f86448ef155d8b2baa77ef7ae2ab008f7c2f34ead9d68d3e3f0f6612f547">AXIOM_PROCESSING_INSTRUCTION</a>,
<a name="l00087"></a>00087 
<a name="l00089"></a><a class="code" href="group__axiom__node.html#gg1d63f86448ef155d8b2baa77ef7ae2ab8a11b652dbc4165765d21d3652b186d5">00089</a>         <a class="code" href="group__axiom__node.html#gg1d63f86448ef155d8b2baa77ef7ae2ab8a11b652dbc4165765d21d3652b186d5">AXIOM_TEXT</a>,
<a name="l00090"></a>00090 
<a name="l00092"></a><a class="code" href="group__axiom__node.html#gg1d63f86448ef155d8b2baa77ef7ae2ab32efd4c02439b7c8314fcd8a4a4ae417">00092</a>         <a class="code" href="group__axiom__node.html#gg1d63f86448ef155d8b2baa77ef7ae2ab32efd4c02439b7c8314fcd8a4a4ae417">AXIOM_DATA_SOURCE</a>
<a name="l00093"></a>00093     } <a class="code" href="group__axiom__node.html#g1d63f86448ef155d8b2baa77ef7ae2ab" title="AXIOM types.">axiom_types_t</a>;
<a name="l00094"></a>00094 
<a name="l00100"></a>00100     AXIS2_EXTERN axiom_node_t *AXIS2_CALL
<a name="l00101"></a>00101     <a class="code" href="group__axiom__node.html#g1558b403be5c6339997a7730596337bb">axiom_node_create</a>(
<a name="l00102"></a>00102         <span class="keyword">const</span> <a class="code" href="structaxutil__env.html" title="Axis2 Environment struct.">axutil_env_t</a> * env);
<a name="l00103"></a>00103 
<a name="l00110"></a>00110     AXIS2_EXTERN axiom_node_t* AXIS2_CALL
<a name="l00111"></a>00111     <a class="code" href="group__axiom__node.html#gaf55148ae4b5101b0688900819eb6823">axiom_node_create_from_buffer</a>(    
<a name="l00112"></a>00112         <span class="keyword">const</span> <a class="code" href="structaxutil__env.html" title="Axis2 Environment struct.">axutil_env_t</a> * env,
<a name="l00113"></a>00113         axis2_char_t *buffer);
<a name="l00114"></a>00114 
<a name="l00115"></a>00115 
<a name="l00124"></a>00124     AXIS2_EXTERN <span class="keywordtype">void</span> AXIS2_CALL
<a name="l00125"></a>00125     <a class="code" href="group__axiom__node.html#g934d857b13c36866a6c85078f156bc82">axiom_node_free_tree</a>(
<a name="l00126"></a>00126         axiom_node_t * om_node,
<a name="l00127"></a>00127         <span class="keyword">const</span> <a class="code" href="structaxutil__env.html" title="Axis2 Environment struct.">axutil_env_t</a> * env);
<a name="l00128"></a>00128 
<a name="l00137"></a>00137     AXIS2_EXTERN axis2_status_t AXIS2_CALL
<a name="l00138"></a>00138     <a class="code" href="group__axiom__node.html#gd0406c625e1dbde273a6010cf8bab38c">axiom_node_add_child</a>(
<a name="l00139"></a>00139         axiom_node_t * om_node,
<a name="l00140"></a>00140         <span class="keyword">const</span> <a class="code" href="structaxutil__env.html" title="Axis2 Environment struct.">axutil_env_t</a> * env,
<a name="l00141"></a>00141         axiom_node_t * child);
<a name="l00142"></a>00142 
<a name="l00150"></a>00150     AXIS2_EXTERN axiom_node_t *AXIS2_CALL
<a name="l00151"></a>00151     <a class="code" href="group__axiom__node.html#g8b581d1db9d2a0f80abe5aa3bf6cae2d">axiom_node_detach</a>(
<a name="l00152"></a>00152         axiom_node_t * om_node,
<a name="l00153"></a>00153         <span class="keyword">const</span> <a class="code" href="structaxutil__env.html" title="Axis2 Environment struct.">axutil_env_t</a> * env);
<a name="l00154"></a>00154 
<a name="l00162"></a>00162     AXIS2_EXTERN axis2_status_t AXIS2_CALL
<a name="l00163"></a>00163     <a class="code" href="group__axiom__node.html#gd3f52c5c7c9886cc3dc3483c26919e72">axiom_node_insert_sibling_after</a>(
<a name="l00164"></a>00164         axiom_node_t * om_node,
<a name="l00165"></a>00165         <span class="keyword">const</span> <a class="code" href="structaxutil__env.html" title="Axis2 Environment struct.">axutil_env_t</a> * env,
<a name="l00166"></a>00166         axiom_node_t * node_to_insert);
<a name="l00167"></a>00167 
<a name="l00175"></a>00175     AXIS2_EXTERN axis2_status_t AXIS2_CALL
<a name="l00176"></a>00176     <a class="code" href="group__axiom__node.html#ged3250c790969964a948b0469207a735">axiom_node_insert_sibling_before</a>(
<a name="l00177"></a>00177         axiom_node_t * om_node,
<a name="l00178"></a>00178         <span class="keyword">const</span> <a class="code" href="structaxutil__env.html" title="Axis2 Environment struct.">axutil_env_t</a> * env,
<a name="l00179"></a>00179         axiom_node_t * node_to_insert);
<a name="l00180"></a>00180 
<a name="l00189"></a>00189     AXIS2_EXTERN axis2_status_t AXIS2_CALL
<a name="l00190"></a>00190     <a class="code" href="group__axiom__node.html#g1936a8e535927d9726d804092ad9d4d3">axiom_node_serialize</a>(
<a name="l00191"></a>00191         axiom_node_t * om_node,
<a name="l00192"></a>00192         <span class="keyword">const</span> <a class="code" href="structaxutil__env.html" title="Axis2 Environment struct.">axutil_env_t</a> * env,
<a name="l00193"></a>00193         <span class="keyword">struct</span> axiom_output *om_output);
<a name="l00194"></a>00194 
<a name="l00202"></a>00202     AXIS2_EXTERN axiom_node_t *AXIS2_CALL
<a name="l00203"></a>00203     <a class="code" href="group__axiom__node.html#g95cc9c4355bfab75e03ad61014b72075">axiom_node_get_parent</a>(
<a name="l00204"></a>00204         axiom_node_t * om_node,
<a name="l00205"></a>00205         <span class="keyword">const</span> <a class="code" href="structaxutil__env.html" title="Axis2 Environment struct.">axutil_env_t</a> * env);
<a name="l00206"></a>00206 
<a name="l00214"></a>00214     AXIS2_EXTERN axiom_node_t *AXIS2_CALL
<a name="l00215"></a>00215     <a class="code" href="group__axiom__node.html#gfc7806095f1e72667a49eab5945b66e3">axiom_node_get_first_child</a>(
<a name="l00216"></a>00216         axiom_node_t * om_node,
<a name="l00217"></a>00217         <span class="keyword">const</span> <a class="code" href="structaxutil__env.html" title="Axis2 Environment struct.">axutil_env_t</a> * env);
<a name="l00218"></a>00218 
<a name="l00225"></a>00225     AXIS2_EXTERN axiom_node_t *AXIS2_CALL
<a name="l00226"></a>00226     <a class="code" href="group__axiom__node.html#g2c569263c409668ff1b653aeb7712bb5">axiom_node_get_first_element</a>(
<a name="l00227"></a>00227         axiom_node_t * om_node,
<a name="l00228"></a>00228         <span class="keyword">const</span> <a class="code" href="structaxutil__env.html" title="Axis2 Environment struct.">axutil_env_t</a> * env);
<a name="l00229"></a>00229 
<a name="l00236"></a>00236     AXIS2_EXTERN axiom_node_t *AXIS2_CALL
<a name="l00237"></a>00237     <a class="code" href="group__axiom__node.html#g9f55bfff8ac1c89995dfc93d47ddcd0a">axiom_node_get_last_child</a>(
<a name="l00238"></a>00238         axiom_node_t * om_node,
<a name="l00239"></a>00239         <span class="keyword">const</span> <a class="code" href="structaxutil__env.html" title="Axis2 Environment struct.">axutil_env_t</a> * env);
<a name="l00240"></a>00240 
<a name="l00248"></a>00248     AXIS2_EXTERN axiom_node_t *AXIS2_CALL
<a name="l00249"></a>00249     <a class="code" href="group__axiom__node.html#g39a92d131beb6295b849d9853ee89db7">axiom_node_get_previous_sibling</a>(
<a name="l00250"></a>00250         axiom_node_t * om_node,
<a name="l00251"></a>00251         <span class="keyword">const</span> <a class="code" href="structaxutil__env.html" title="Axis2 Environment struct.">axutil_env_t</a> * env);
<a name="l00252"></a>00252 
<a name="l00259"></a>00259     AXIS2_EXTERN axiom_node_t *AXIS2_CALL
<a name="l00260"></a>00260     <a class="code" href="group__axiom__node.html#g6d91d78cb733d34724901e75887e85c9">axiom_node_get_next_sibling</a>(
<a name="l00261"></a>00261         axiom_node_t * om_node,
<a name="l00262"></a>00262         <span class="keyword">const</span> <a class="code" href="structaxutil__env.html" title="Axis2 Environment struct.">axutil_env_t</a> * env);
<a name="l00263"></a>00263 
<a name="l00272"></a>00272     AXIS2_EXTERN <a class="code" href="group__axiom__node.html#g1d63f86448ef155d8b2baa77ef7ae2ab" title="AXIOM types.">axiom_types_t</a> AXIS2_CALL
<a name="l00273"></a>00273     <a class="code" href="group__axiom__node.html#g5f0287bd7a7487da62528717787b69b4">axiom_node_get_node_type</a>(
<a name="l00274"></a>00274         axiom_node_t * om_node,
<a name="l00275"></a>00275         <span class="keyword">const</span> <a class="code" href="structaxutil__env.html" title="Axis2 Environment struct.">axutil_env_t</a> * env);
<a name="l00276"></a>00276 
<a name="l00286"></a>00286     AXIS2_EXTERN <span class="keywordtype">void</span> *AXIS2_CALL
<a name="l00287"></a>00287     <a class="code" href="group__axiom__node.html#geb488e8c836956940ea4c01b92a0c421">axiom_node_get_data_element</a>(
<a name="l00288"></a>00288         axiom_node_t * om_node,
<a name="l00289"></a>00289         <span class="keyword">const</span> <a class="code" href="structaxutil__env.html" title="Axis2 Environment struct.">axutil_env_t</a> * env);
<a name="l00290"></a>00290 
<a name="l00298"></a>00298     AXIS2_EXTERN axis2_bool_t AXIS2_CALL
<a name="l00299"></a>00299     <a class="code" href="group__axiom__node.html#g94ec253a7993a968b8a2e5fc80c7f5f3">axiom_node_is_complete</a>(
<a name="l00300"></a>00300         axiom_node_t * om_node,
<a name="l00301"></a>00301         <span class="keyword">const</span> <a class="code" href="structaxutil__env.html" title="Axis2 Environment struct.">axutil_env_t</a> * env);
<a name="l00302"></a>00302 
<a name="l00313"></a>00313     AXIS2_EXTERN <span class="keyword">struct </span>axiom_document *AXIS2_CALL
<a name="l00314"></a>00314                 <a class="code" href="group__axiom__node.html#g2bdaabafdd623955d2837ad00e536603">axiom_node_get_document</a>(
<a name="l00315"></a>00315                     axiom_node_t * om_node,
<a name="l00316"></a>00316                     <span class="keyword">const</span> <a class="code" href="structaxutil__env.html" title="Axis2 Environment struct.">axutil_env_t</a> * env);
<a name="l00317"></a>00317 
<a name="l00325"></a>00325     AXIS2_EXTERN axis2_char_t *AXIS2_CALL
<a name="l00326"></a>00326     <a class="code" href="group__axiom__node.html#g0cf9fdca65f2b7c5ab0e485cf21bc3ba">axiom_node_to_string</a>(
<a name="l00327"></a>00327         axiom_node_t * om_node,
<a name="l00328"></a>00328         <span class="keyword">const</span> <a class="code" href="structaxutil__env.html" title="Axis2 Environment struct.">axutil_env_t</a> * env);
<a name="l00329"></a>00329 
<a name="l00338"></a>00338     AXIS2_EXTERN axis2_status_t AXIS2_CALL
<a name="l00339"></a>00339     <a class="code" href="group__axiom__node.html#ga5e126b3d2462d4569e0d4b0a9bcd80e">axiom_node_serialize_sub_tree</a>(
<a name="l00340"></a>00340         axiom_node_t * om_node,
<a name="l00341"></a>00341         <span class="keyword">const</span> <a class="code" href="structaxutil__env.html" title="Axis2 Environment struct.">axutil_env_t</a> * env,
<a name="l00342"></a>00342         <span class="keyword">struct</span> axiom_output *om_output);
<a name="l00343"></a>00343 
<a name="l00351"></a>00351     AXIS2_EXTERN axis2_char_t *AXIS2_CALL
<a name="l00352"></a>00352     <a class="code" href="group__axiom__node.html#g7fa2bbf70033a1eb6943a9b2c1c4de59">axiom_node_sub_tree_to_string</a>(
<a name="l00353"></a>00353         axiom_node_t * om_node,
<a name="l00354"></a>00354         <span class="keyword">const</span> <a class="code" href="structaxutil__env.html" title="Axis2 Environment struct.">axutil_env_t</a> * env);
<a name="l00355"></a>00355 
<a name="l00364"></a>00364     AXIS2_EXTERN axis2_char_t *AXIS2_CALL
<a name="l00365"></a>00365     <a class="code" href="group__axiom__node.html#g9f6d265d8c276d0925aef199396cda0a">axiom_node_to_string_non_optimized</a>(
<a name="l00366"></a>00366         axiom_node_t * om_node,
<a name="l00367"></a>00367         <span class="keyword">const</span> <a class="code" href="structaxutil__env.html" title="Axis2 Environment struct.">axutil_env_t</a> * env);
<a name="l00370"></a>00370 <span class="preprocessor">#ifdef __cplusplus</span>
<a name="l00371"></a>00371 <span class="preprocessor"></span>}
<a name="l00372"></a>00372 <span class="preprocessor">#endif</span>
<a name="l00373"></a>00373 <span class="preprocessor"></span>
<a name="l00374"></a>00374 <span class="preprocessor">#endif                          </span><span class="comment">/* AXIOM_NODE_H */</span>
</pre></div><hr size="1"><address style="text-align: right;"><small>Generated on Fri Apr 17 11:49:42 2009 for Axis2/C by&nbsp;
<a href="http://www.doxygen.org/index.html">
<img src="doxygen.png" alt="doxygen" align="middle" border="0"></a> 1.5.3 </small></address>
</body>
</html>


<|start_filename|>util/include/axutil_network_handler.h<|end_filename|>

/*
 * Copyright 2004,2005 The Apache Software Foundation.
 *
 * Licensed under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License.
 * You may obtain count 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_NETWORK_HANDLER_H
#define AXUTIL_NETWORK_HANDLER_H

#include <axutil_utils.h>
#include <axutil_utils_defines.h>
#include <axutil_env.h>
#include <sys/types.h>
#include <platforms/axutil_platform_auto_sense.h>

#ifdef __cplusplus
extern "C"
{
#endif

    /**
     * @defgroup axutil_network_handler network handler
     * @ingroup axis2_util
     * @{
     */

    /**
     * open a socket for a given server
     * @param server ip address or the fqn of the server
     * @param port port of the service
     * @return opened socket
     */
    AXIS2_EXTERN axis2_socket_t AXIS2_CALL

    axutil_network_handler_open_socket(
        const axutil_env_t * env,
        char *server,
        int port);

    /**
     * creates a server socket for a given port
     * @param port port of the socket to be bound
     * @return creates server socket
     */
    AXIS2_EXTERN axis2_socket_t AXIS2_CALL

    axutil_network_handler_create_server_socket(
        const axutil_env_t * env,
        int port);

    /**
     * closes a socket
     * @param opened socket that need to be closed
     * @return status code
     */
    AXIS2_EXTERN axis2_status_t AXIS2_CALL

    axutil_network_handler_close_socket(
        const axutil_env_t * env,
        axis2_socket_t socket);

    /**
     * used to set up socket options such as timeouts, non-blocking ..etc
     * @param socket valid socket (obtained by socket() or similar call)
     * @param option the name of the option
     * @param value Value to be set
     * @return status of the operations as axis2_status_t
     */
    AXIS2_EXTERN axis2_status_t AXIS2_CALL

    axutil_network_handler_set_sock_option(
        const axutil_env_t * env,
        axis2_socket_t socket,
        int option,
        int value);

    /**
     * Accepts remote connections for a server socket
     * @param socket valid server socket (obtained by socket() or similar call)
     * @return created socket to handle the incoming client connection
     */
    AXIS2_EXTERN axis2_socket_t AXIS2_CALL

    axutil_network_handler_svr_socket_accept(
        const axutil_env_t * env,
        axis2_socket_t socket);

    /**
     * Returns the ip address of the server associated with the socket
     * @param socket valid socket (obtained by accept() or similar call)
     * @return ip address asoociated with the socket or NULL
     */
    AXIS2_EXTERN axis2_char_t *AXIS2_CALL
    axutil_network_handler_get_svr_ip(
        const axutil_env_t * env,
        axis2_socket_t socket);

    AXIS2_EXTERN axis2_char_t *AXIS2_CALL
    axutil_network_handler_get_peer_ip(
        const axutil_env_t * env,
        axis2_socket_t socket);

	/* 
	 * Create a datagram socket. 
	 * @param env pointer to env
	 * @return a datagram socket
	 */
	AXIS2_EXTERN axis2_socket_t AXIS2_CALL
	axutil_network_handler_open_dgram_socket(const axutil_env_t *env);

	/*
	 * Send a UDP packet to the given source and port address.
	 * Read a incoming UDP packet from the port and server address.
	 * @param env pointer to the env structure
	 * @param socket a datagram socket
	 * @param buffer a buffer containing the data to be sent
	 * @param buf_len length of the buffer
	 * @param addr address of the source field
	 * @param port udp port number
	 * @return success if everything goes well
	 */
	AXIS2_EXTERN axis2_status_t AXIS2_CALL 
	axutil_network_handler_send_dgram(const axutil_env_t *env, axis2_socket_t socket, 
								 axis2_char_t *buff, int *buf_len, 
								 axis2_char_t *addr, int dest_port, int *source_port);

	/* 
	 * Read a incoming UDP packet from the port and server address.
	 * @param env pointer to the env structure
	 * @param socket a datagram socket
	 * @param buffer a buffer allocated and passed to be filled
	 * @param buf_len length of the buffer allocated. In return buffer len 
	                  contains the length of the data read
	 * @param addr address of the sender. This is a return value.
	 * @param port senders port address. Return value
	 * @return if everything goes well return success 
	 */
	AXIS2_EXTERN axis2_status_t AXIS2_CALL
	axutil_network_handler_read_dgram(const axutil_env_t *env, axis2_socket_t socket, 
									 axis2_char_t *buffer, int *buf_len,
									 axis2_char_t **addr, int *port);

	/* 
	 * Create a datagram socket to receive incoming UDP packets.
	 * @param env a pointer to the env structure
	 * @param port udp port to listen
	 * @return AXIS2_SUCCESS if everything goes well
	 */
	AXIS2_EXTERN axis2_socket_t AXIS2_CALL
	axutil_network_handler_create_dgram_svr_socket(
									const axutil_env_t *env, 
									int port);

	/* 
	 * Bind a socket to the specified address
	 * @param env a pointer to the env structure
	 * @param sock socket
	 * @param port port number to bind to
	 * @return AXIS2_SUCCESS if binding is performed
	 */
	AXIS2_EXTERN axis2_status_t AXIS2_CALL
	axutil_network_handler_bind_socket(const axutil_env_t *env, 
									axis2_socket_t sock, int port);

	/* 
	 * Create a multicast socket for listening on the given port. 
	 * @param env a pointer to the env structure
	 * @param port udp port to listen
	 * @param mul_addr multicast address to join. The address should be valid and in dotted format.
	 * @param ttl TTL value. 
	 * @return AXIS2_SUCCESS if everything goes well.s
	 */
	AXIS2_EXTERN axis2_socket_t AXIS2_CALL
	axutil_network_hadler_create_multicast_svr_socket(const axutil_env_t *env, 
									int port, axis2_char_t *mul_addr);

    /** @} */

#ifdef __cplusplus
}
#endif

#endif                          /* AXIS2_NETWORK_HANDLER_H */


<|start_filename|>xdocs/api/html/group__axis2__endpoint__ref.html<|end_filename|>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html><head><meta http-equiv="Content-Type" content="text/html;charset=UTF-8">
<title>Axis2/C: endpoint reference</title>
<link href="doxygen.css" rel="stylesheet" type="text/css">
<link href="tabs.css" rel="stylesheet" type="text/css">
</head><body>
<!-- Generated by Doxygen 1.5.3 -->
<div class="tabs">
  <ul>
    <li><a href="index.html"><span>Main&nbsp;Page</span></a></li>
    <li><a href="modules.html"><span>Modules</span></a></li>
    <li><a href="annotated.html"><span>Classes</span></a></li>
    <li><a href="files.html"><span>Files</span></a></li>
    <li><a href="dirs.html"><span>Directories</span></a></li>
    <li><a href="pages.html"><span>Related&nbsp;Pages</span></a></li>
    <li><a href="examples.html"><span>Examples</span></a></li>
    <li>
      <form action="search.php" method="get">
        <table cellspacing="0" cellpadding="0" border="0">
          <tr>
            <td><label>&nbsp;<u>S</u>earch&nbsp;for&nbsp;</label></td>
            <td><input type="text" name="query" value="" size="20" accesskey="s"/></td>
          </tr>
        </table>
      </form>
    </li>
  </ul>
</div>
<h1>endpoint reference<br>
<small>
[<a class="el" href="group__axis2__addr.html">WS-Addressing</a>]</small>
</h1><table border="0" cellpadding="0" cellspacing="0">
<tr><td></td></tr>
<tr><td colspan="2"><br><h2>Files</h2></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top">file &nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="axis2__endpoint__ref_8h.html">axis2_endpoint_ref.h</a></td></tr>

<tr><td colspan="2"><br><h2>Typedefs</h2></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top">typedef struct <br>
axis2_endpoint_ref&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__axis2__endpoint__ref.html#gf6e89c83a6b553e7e3f11e787b3fecd4">axis2_endpoint_ref_t</a></td></tr>

<tr><td colspan="2"><br><h2>Functions</h2></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top">AXIS2_EXTERN <br>
<a class="el" href="group__axis2__endpoint__ref.html#gf6e89c83a6b553e7e3f11e787b3fecd4">axis2_endpoint_ref_t</a> *&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__axis2__endpoint__ref.html#g693024d7cd181441f76eda5023b775de">axis2_endpoint_ref_create</a> (const <a class="el" href="structaxutil__env.html">axutil_env_t</a> *env, const axis2_char_t *address)</td></tr>

<tr><td class="memItemLeft" nowrap align="right" valign="top">void&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__axis2__endpoint__ref.html#ge08a42ff4f8c7c14db52be97ef6c75c8">axis2_endpoint_ref_free_void_arg</a> (void *endpoint_ref, const <a class="el" href="structaxutil__env.html">axutil_env_t</a> *env)</td></tr>

<tr><td class="memItemLeft" nowrap align="right" valign="top">AXIS2_EXTERN const <br>
axis2_char_t *&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__axis2__endpoint__ref.html#g4bc3d165549d17b00a56119c340d0eab">axis2_endpoint_ref_get_address</a> (const <a class="el" href="group__axis2__endpoint__ref.html#gf6e89c83a6b553e7e3f11e787b3fecd4">axis2_endpoint_ref_t</a> *endpoint_ref, const <a class="el" href="structaxutil__env.html">axutil_env_t</a> *env)</td></tr>

<tr><td class="memItemLeft" nowrap align="right" valign="top">AXIS2_EXTERN <br>
axis2_status_t&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__axis2__endpoint__ref.html#g9b3f69452fdb8c38b9c505e56f80914c">axis2_endpoint_ref_set_address</a> (<a class="el" href="group__axis2__endpoint__ref.html#gf6e89c83a6b553e7e3f11e787b3fecd4">axis2_endpoint_ref_t</a> *endpoint_ref, const <a class="el" href="structaxutil__env.html">axutil_env_t</a> *env, const axis2_char_t *address)</td></tr>

<tr><td class="memItemLeft" nowrap align="right" valign="top">AXIS2_EXTERN const <br>
axutil_qname_t *&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__axis2__endpoint__ref.html#gecddf65a57bf6a269b8d31ea99165049">axis2_endpoint_ref_get_interface_qname</a> (const <a class="el" href="group__axis2__endpoint__ref.html#gf6e89c83a6b553e7e3f11e787b3fecd4">axis2_endpoint_ref_t</a> *endpoint_ref, const <a class="el" href="structaxutil__env.html">axutil_env_t</a> *env)</td></tr>

<tr><td class="memItemLeft" nowrap align="right" valign="top">AXIS2_EXTERN <br>
axis2_status_t&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__axis2__endpoint__ref.html#g1a0f57e4779a0a9beb7133b0dc6932c5">axis2_endpoint_ref_set_interface_qname</a> (<a class="el" href="group__axis2__endpoint__ref.html#gf6e89c83a6b553e7e3f11e787b3fecd4">axis2_endpoint_ref_t</a> *endpoint_ref, const <a class="el" href="structaxutil__env.html">axutil_env_t</a> *env, const axutil_qname_t *interface_qname)</td></tr>

<tr><td class="memItemLeft" nowrap align="right" valign="top">AXIS2_EXTERN <br>
<a class="el" href="group__axutil__array__list.html#g1a6a89777db876cfa0cc86787b7be6a0">axutil_array_list_t</a> *&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__axis2__endpoint__ref.html#g53737580ff3a85142e9a5360726e0175">axis2_endpoint_ref_get_ref_param_list</a> (const <a class="el" href="group__axis2__endpoint__ref.html#gf6e89c83a6b553e7e3f11e787b3fecd4">axis2_endpoint_ref_t</a> *endpoint_ref, const <a class="el" href="structaxutil__env.html">axutil_env_t</a> *env)</td></tr>

<tr><td class="memItemLeft" nowrap align="right" valign="top">AXIS2_EXTERN <br>
<a class="el" href="group__axutil__array__list.html#g1a6a89777db876cfa0cc86787b7be6a0">axutil_array_list_t</a> *&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__axis2__endpoint__ref.html#g5ff6d5d4e9bd5d346ed1652c3f0a9566">axis2_endpoint_ref_get_metadata_list</a> (const <a class="el" href="group__axis2__endpoint__ref.html#gf6e89c83a6b553e7e3f11e787b3fecd4">axis2_endpoint_ref_t</a> *endpoint_ref, const <a class="el" href="structaxutil__env.html">axutil_env_t</a> *env)</td></tr>

<tr><td class="memItemLeft" nowrap align="right" valign="top">AXIS2_EXTERN <br>
<a class="el" href="group__axutil__array__list.html#g1a6a89777db876cfa0cc86787b7be6a0">axutil_array_list_t</a> *&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__axis2__endpoint__ref.html#g3708574ea51cc3ef8c93209a2d7d482a">axis2_endpoint_ref_get_ref_attribute_list</a> (const <a class="el" href="group__axis2__endpoint__ref.html#gf6e89c83a6b553e7e3f11e787b3fecd4">axis2_endpoint_ref_t</a> *endpoint_ref, const <a class="el" href="structaxutil__env.html">axutil_env_t</a> *env)</td></tr>

<tr><td class="memItemLeft" nowrap align="right" valign="top">AXIS2_EXTERN <br>
<a class="el" href="group__axutil__array__list.html#g1a6a89777db876cfa0cc86787b7be6a0">axutil_array_list_t</a> *&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__axis2__endpoint__ref.html#gc58bdf7baf4dfc5a9f2e15bd2b40061e">axis2_endpoint_ref_get_metadata_attribute_list</a> (const <a class="el" href="group__axis2__endpoint__ref.html#gf6e89c83a6b553e7e3f11e787b3fecd4">axis2_endpoint_ref_t</a> *endpoint_ref, const <a class="el" href="structaxutil__env.html">axutil_env_t</a> *env)</td></tr>

<tr><td class="memItemLeft" nowrap align="right" valign="top">AXIS2_EXTERN <br>
<a class="el" href="group__axutil__array__list.html#g1a6a89777db876cfa0cc86787b7be6a0">axutil_array_list_t</a> *&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__axis2__endpoint__ref.html#gb68c9bf3c7b34f5f7b5f2228de5e9a2e">axis2_endpoint_ref_get_extension_list</a> (const <a class="el" href="group__axis2__endpoint__ref.html#gf6e89c83a6b553e7e3f11e787b3fecd4">axis2_endpoint_ref_t</a> *endpoint_ref, const <a class="el" href="structaxutil__env.html">axutil_env_t</a> *env)</td></tr>

<tr><td class="memItemLeft" nowrap align="right" valign="top">AXIS2_EXTERN <br>
axis2_status_t&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__axis2__endpoint__ref.html#g0c88ce2256c5379a21cc3a881b9131ac">axis2_endpoint_ref_add_ref_param</a> (<a class="el" href="group__axis2__endpoint__ref.html#gf6e89c83a6b553e7e3f11e787b3fecd4">axis2_endpoint_ref_t</a> *endpoint_ref, const <a class="el" href="structaxutil__env.html">axutil_env_t</a> *env, axiom_node_t *ref_param_node)</td></tr>

<tr><td class="memItemLeft" nowrap align="right" valign="top">AXIS2_EXTERN <br>
axis2_status_t&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__axis2__endpoint__ref.html#g7a2002fe15ecff7ca9ccf00e0289d8d4">axis2_endpoint_ref_add_metadata</a> (<a class="el" href="group__axis2__endpoint__ref.html#gf6e89c83a6b553e7e3f11e787b3fecd4">axis2_endpoint_ref_t</a> *endpoint_ref, const <a class="el" href="structaxutil__env.html">axutil_env_t</a> *env, axiom_node_t *metadata_node)</td></tr>

<tr><td class="memItemLeft" nowrap align="right" valign="top">AXIS2_EXTERN <br>
axis2_status_t&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__axis2__endpoint__ref.html#g354234bb6da2cdecae159fa2045c904a">axis2_endpoint_ref_add_ref_attribute</a> (<a class="el" href="group__axis2__endpoint__ref.html#gf6e89c83a6b553e7e3f11e787b3fecd4">axis2_endpoint_ref_t</a> *endpoint_ref, const <a class="el" href="structaxutil__env.html">axutil_env_t</a> *env, axiom_attribute_t *attr)</td></tr>

<tr><td class="memItemLeft" nowrap align="right" valign="top">AXIS2_EXTERN <br>
axis2_status_t&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__axis2__endpoint__ref.html#g67bc0356744635c35d3d6bb7755dcbfb">axis2_endpoint_ref_add_metadata_attribute</a> (<a class="el" href="group__axis2__endpoint__ref.html#gf6e89c83a6b553e7e3f11e787b3fecd4">axis2_endpoint_ref_t</a> *endpoint_ref, const <a class="el" href="structaxutil__env.html">axutil_env_t</a> *env, axiom_attribute_t *attr)</td></tr>

<tr><td class="memItemLeft" nowrap align="right" valign="top">AXIS2_EXTERN <br>
axis2_status_t&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__axis2__endpoint__ref.html#gffa43060be66bdfec2e88f007a5efece">axis2_endpoint_ref_add_extension</a> (<a class="el" href="group__axis2__endpoint__ref.html#gf6e89c83a6b553e7e3f11e787b3fecd4">axis2_endpoint_ref_t</a> *endpoint_ref, const <a class="el" href="structaxutil__env.html">axutil_env_t</a> *env, axiom_node_t *extension_node)</td></tr>

<tr><td class="memItemLeft" nowrap align="right" valign="top">AXIS2_EXTERN <br>
<a class="el" href="group__axis2__svc__name.html#gf3d9c6a25fce098b03819d1ac546270c">axis2_svc_name_t</a> *&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__axis2__endpoint__ref.html#g392b8ac3572d5a3b905b407dbf9c9936">axis2_endpoint_ref_get_svc_name</a> (const <a class="el" href="group__axis2__endpoint__ref.html#gf6e89c83a6b553e7e3f11e787b3fecd4">axis2_endpoint_ref_t</a> *endpoint_ref, const <a class="el" href="structaxutil__env.html">axutil_env_t</a> *env)</td></tr>

<tr><td class="memItemLeft" nowrap align="right" valign="top">AXIS2_EXTERN <br>
axis2_status_t&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__axis2__endpoint__ref.html#g0a8954c0a595aa9016d125b1c171bcda">axis2_endpoint_ref_set_svc_name</a> (<a class="el" href="group__axis2__endpoint__ref.html#gf6e89c83a6b553e7e3f11e787b3fecd4">axis2_endpoint_ref_t</a> *endpoint_ref, const <a class="el" href="structaxutil__env.html">axutil_env_t</a> *env, <a class="el" href="group__axis2__svc__name.html#gf3d9c6a25fce098b03819d1ac546270c">axis2_svc_name_t</a> *svc_name)</td></tr>

<tr><td class="memItemLeft" nowrap align="right" valign="top">AXIS2_EXTERN void&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__axis2__endpoint__ref.html#g4bae551a22a4afaa171d2eb69373cfb0">axis2_endpoint_ref_free</a> (<a class="el" href="group__axis2__endpoint__ref.html#gf6e89c83a6b553e7e3f11e787b3fecd4">axis2_endpoint_ref_t</a> *endpoint_ref, const <a class="el" href="structaxutil__env.html">axutil_env_t</a> *env)</td></tr>

</table>
<hr><a name="_details"></a><h2>Detailed Description</h2>
endpoint reference represent an endpoint address in WS-Addressing. In addition to the endpoint address, it also encapsulates meta data, reference attributes and the service hosted at the given endpoint. In addition to the addressing related implementation, the endpoint reference struct is used across core code-base to represent endpoints. <hr><h2>Typedef Documentation</h2>
<a class="anchor" name="gf6e89c83a6b553e7e3f11e787b3fecd4"></a><!-- doxytag: member="axis2_endpoint_ref.h::axis2_endpoint_ref_t" ref="gf6e89c83a6b553e7e3f11e787b3fecd4" args="" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">typedef struct axis2_endpoint_ref <a class="el" href="group__axis2__endpoint__ref.html#gf6e89c83a6b553e7e3f11e787b3fecd4">axis2_endpoint_ref_t</a>          </td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
Type name for struct axis2_endpoint_ref 
</div>
</div><p>
<hr><h2>Function Documentation</h2>
<a class="anchor" name="gffa43060be66bdfec2e88f007a5efece"></a><!-- doxytag: member="axis2_endpoint_ref.h::axis2_endpoint_ref_add_extension" ref="gffa43060be66bdfec2e88f007a5efece" args="(axis2_endpoint_ref_t *endpoint_ref, const axutil_env_t *env, axiom_node_t *extension_node)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">AXIS2_EXTERN axis2_status_t axis2_endpoint_ref_add_extension           </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="group__axis2__endpoint__ref.html#gf6e89c83a6b553e7e3f11e787b3fecd4">axis2_endpoint_ref_t</a> *&nbsp;</td>
          <td class="paramname"> <em>endpoint_ref</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const <a class="el" href="structaxutil__env.html">axutil_env_t</a> *&nbsp;</td>
          <td class="paramname"> <em>env</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">axiom_node_t *&nbsp;</td>
          <td class="paramname"> <em>extension_node</em></td><td>&nbsp;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td><td width="100%"></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
Adds an extension in the form of an AXIOM node. <dl compact><dt><b>Parameters:</b></dt><dd>
  <table border="0" cellspacing="2" cellpadding="0">
    <tr><td valign="top"></td><td valign="top"><em>endpoint_ref</em>&nbsp;</td><td>pointer to endpoint reference struct </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>env</em>&nbsp;</td><td>pointer to environment struct </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>extension_node</em>&nbsp;</td><td>pointer to AXIOM node representing extension, endpoint reference does not assume the ownership of the node </td></tr>
  </table>
</dl>
<dl class="return" compact><dt><b>Returns:</b></dt><dd>AXIS2_SUCCESS on success, else AXIS2_FAILURE </dd></dl>

</div>
</div><p>
<a class="anchor" name="g7a2002fe15ecff7ca9ccf00e0289d8d4"></a><!-- doxytag: member="axis2_endpoint_ref.h::axis2_endpoint_ref_add_metadata" ref="g7a2002fe15ecff7ca9ccf00e0289d8d4" args="(axis2_endpoint_ref_t *endpoint_ref, const axutil_env_t *env, axiom_node_t *metadata_node)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">AXIS2_EXTERN axis2_status_t axis2_endpoint_ref_add_metadata           </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="group__axis2__endpoint__ref.html#gf6e89c83a6b553e7e3f11e787b3fecd4">axis2_endpoint_ref_t</a> *&nbsp;</td>
          <td class="paramname"> <em>endpoint_ref</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const <a class="el" href="structaxutil__env.html">axutil_env_t</a> *&nbsp;</td>
          <td class="paramname"> <em>env</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">axiom_node_t *&nbsp;</td>
          <td class="paramname"> <em>metadata_node</em></td><td>&nbsp;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td><td width="100%"></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
Adds metadata in the form of an AXIOM node. An endpoint can have different associated metadata such as WSDL, XML Schema and WS-Policy policies. <dl compact><dt><b>Parameters:</b></dt><dd>
  <table border="0" cellspacing="2" cellpadding="0">
    <tr><td valign="top"></td><td valign="top"><em>endpoint_ref</em>&nbsp;</td><td>pointer to endpoint reference struct </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>env</em>&nbsp;</td><td>pointer to environment struct </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>metadata_node</em>&nbsp;</td><td>AXIOM node representing metadata, endpoint reference does not assume the ownership of the node </td></tr>
  </table>
</dl>
<dl class="return" compact><dt><b>Returns:</b></dt><dd>AXIS2_SUCCESS on success, else AXIS2_FAILURE </dd></dl>

</div>
</div><p>
<a class="anchor" name="g67bc0356744635c35d3d6bb7755dcbfb"></a><!-- doxytag: member="axis2_endpoint_ref.h::axis2_endpoint_ref_add_metadata_attribute" ref="g67bc0356744635c35d3d6bb7755dcbfb" args="(axis2_endpoint_ref_t *endpoint_ref, const axutil_env_t *env, axiom_attribute_t *attr)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">AXIS2_EXTERN axis2_status_t axis2_endpoint_ref_add_metadata_attribute           </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="group__axis2__endpoint__ref.html#gf6e89c83a6b553e7e3f11e787b3fecd4">axis2_endpoint_ref_t</a> *&nbsp;</td>
          <td class="paramname"> <em>endpoint_ref</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const <a class="el" href="structaxutil__env.html">axutil_env_t</a> *&nbsp;</td>
          <td class="paramname"> <em>env</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">axiom_attribute_t *&nbsp;</td>
          <td class="paramname"> <em>attr</em></td><td>&nbsp;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td><td width="100%"></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
Adds a meta attribute in the form of an AXIOM attribute. <dl compact><dt><b>Parameters:</b></dt><dd>
  <table border="0" cellspacing="2" cellpadding="0">
    <tr><td valign="top"></td><td valign="top"><em>endpoint_ref</em>&nbsp;</td><td>pointer to endpoint reference struct </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>env</em>&nbsp;</td><td>pointer to environment struct </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>attr</em>&nbsp;</td><td>AXIOM attribute representing meta attribute, endpoint reference does not assume the ownership of the attribute </td></tr>
  </table>
</dl>
<dl class="return" compact><dt><b>Returns:</b></dt><dd>AXIS2_SUCCESS on success, else AXIS2_FAILURE </dd></dl>

</div>
</div><p>
<a class="anchor" name="g354234bb6da2cdecae159fa2045c904a"></a><!-- doxytag: member="axis2_endpoint_ref.h::axis2_endpoint_ref_add_ref_attribute" ref="g354234bb6da2cdecae159fa2045c904a" args="(axis2_endpoint_ref_t *endpoint_ref, const axutil_env_t *env, axiom_attribute_t *attr)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">AXIS2_EXTERN axis2_status_t axis2_endpoint_ref_add_ref_attribute           </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="group__axis2__endpoint__ref.html#gf6e89c83a6b553e7e3f11e787b3fecd4">axis2_endpoint_ref_t</a> *&nbsp;</td>
          <td class="paramname"> <em>endpoint_ref</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const <a class="el" href="structaxutil__env.html">axutil_env_t</a> *&nbsp;</td>
          <td class="paramname"> <em>env</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">axiom_attribute_t *&nbsp;</td>
          <td class="paramname"> <em>attr</em></td><td>&nbsp;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td><td width="100%"></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
Adds a reference attribute in the form of an AXIOM attribute. <dl compact><dt><b>Parameters:</b></dt><dd>
  <table border="0" cellspacing="2" cellpadding="0">
    <tr><td valign="top"></td><td valign="top"><em>endpoint_ref</em>&nbsp;</td><td>pointer to endpoint reference struct </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>env</em>&nbsp;</td><td>pointer to environment struct </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>attr</em>&nbsp;</td><td>AXIOM attribute representing reference attribute, endpoint reference does not assume the ownership of the attribute </td></tr>
  </table>
</dl>
<dl class="return" compact><dt><b>Returns:</b></dt><dd>AXIS2_SUCCESS on success, else AXIS2_FAILURE </dd></dl>

</div>
</div><p>
<a class="anchor" name="g0c88ce2256c5379a21cc3a881b9131ac"></a><!-- doxytag: member="axis2_endpoint_ref.h::axis2_endpoint_ref_add_ref_param" ref="g0c88ce2256c5379a21cc3a881b9131ac" args="(axis2_endpoint_ref_t *endpoint_ref, const axutil_env_t *env, axiom_node_t *ref_param_node)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">AXIS2_EXTERN axis2_status_t axis2_endpoint_ref_add_ref_param           </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="group__axis2__endpoint__ref.html#gf6e89c83a6b553e7e3f11e787b3fecd4">axis2_endpoint_ref_t</a> *&nbsp;</td>
          <td class="paramname"> <em>endpoint_ref</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const <a class="el" href="structaxutil__env.html">axutil_env_t</a> *&nbsp;</td>
          <td class="paramname"> <em>env</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">axiom_node_t *&nbsp;</td>
          <td class="paramname"> <em>ref_param_node</em></td><td>&nbsp;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td><td width="100%"></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
Adds a reference parameter in the form of an AXIOM node. <dl compact><dt><b>Parameters:</b></dt><dd>
  <table border="0" cellspacing="2" cellpadding="0">
    <tr><td valign="top"></td><td valign="top"><em>endpoint_ref</em>&nbsp;</td><td>pointer to endpoint reference struct </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>env</em>&nbsp;</td><td>pointer to environment struct </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>ref_param_node</em>&nbsp;</td><td>pointer to AXIOM node representing reference parameter, endpoint reference does not assume the ownership of the node </td></tr>
  </table>
</dl>
<dl class="return" compact><dt><b>Returns:</b></dt><dd>AXIS2_SUCCESS on success, else AXIS2_FAILURE </dd></dl>

</div>
</div><p>
<a class="anchor" name="g693024d7cd181441f76eda5023b775de"></a><!-- doxytag: member="axis2_endpoint_ref.h::axis2_endpoint_ref_create" ref="g693024d7cd181441f76eda5023b775de" args="(const axutil_env_t *env, const axis2_char_t *address)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">AXIS2_EXTERN <a class="el" href="group__axis2__endpoint__ref.html#gf6e89c83a6b553e7e3f11e787b3fecd4">axis2_endpoint_ref_t</a>* axis2_endpoint_ref_create           </td>
          <td>(</td>
          <td class="paramtype">const <a class="el" href="structaxutil__env.html">axutil_env_t</a> *&nbsp;</td>
          <td class="paramname"> <em>env</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const axis2_char_t *&nbsp;</td>
          <td class="paramname"> <em>address</em></td><td>&nbsp;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td><td width="100%"></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
Creates endpoint reference struct. <dl compact><dt><b>Parameters:</b></dt><dd>
  <table border="0" cellspacing="2" cellpadding="0">
    <tr><td valign="top"></td><td valign="top"><em>env</em>&nbsp;</td><td>pointer to environment struct </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>address</em>&nbsp;</td><td>endpoint address string </td></tr>
  </table>
</dl>
<dl class="return" compact><dt><b>Returns:</b></dt><dd>pointer to newly created endpoint reference </dd></dl>

</div>
</div><p>
<a class="anchor" name="g4bae551a22a4afaa171d2eb69373cfb0"></a><!-- doxytag: member="axis2_endpoint_ref.h::axis2_endpoint_ref_free" ref="g4bae551a22a4afaa171d2eb69373cfb0" args="(axis2_endpoint_ref_t *endpoint_ref, const axutil_env_t *env)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">AXIS2_EXTERN void axis2_endpoint_ref_free           </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="group__axis2__endpoint__ref.html#gf6e89c83a6b553e7e3f11e787b3fecd4">axis2_endpoint_ref_t</a> *&nbsp;</td>
          <td class="paramname"> <em>endpoint_ref</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const <a class="el" href="structaxutil__env.html">axutil_env_t</a> *&nbsp;</td>
          <td class="paramname"> <em>env</em></td><td>&nbsp;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td><td width="100%"></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
Frees endpoint reference struct. <dl compact><dt><b>Parameters:</b></dt><dd>
  <table border="0" cellspacing="2" cellpadding="0">
    <tr><td valign="top"></td><td valign="top"><em>endpoint_ref</em>&nbsp;</td><td>pointer to endpoint reference struct </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>env</em>&nbsp;</td><td>pointer to environment struct </td></tr>
  </table>
</dl>
<dl class="return" compact><dt><b>Returns:</b></dt><dd>AXIS2_SUCCESS on success, else AXIS2_FAILURE </dd></dl>

</div>
</div><p>
<a class="anchor" name="ge08a42ff4f8c7c14db52be97ef6c75c8"></a><!-- doxytag: member="axis2_endpoint_ref.h::axis2_endpoint_ref_free_void_arg" ref="ge08a42ff4f8c7c14db52be97ef6c75c8" args="(void *endpoint_ref, const axutil_env_t *env)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">void axis2_endpoint_ref_free_void_arg           </td>
          <td>(</td>
          <td class="paramtype">void *&nbsp;</td>
          <td class="paramname"> <em>endpoint_ref</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const <a class="el" href="structaxutil__env.html">axutil_env_t</a> *&nbsp;</td>
          <td class="paramname"> <em>env</em></td><td>&nbsp;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td><td width="100%"></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
Frees the endpoint_ref given as a void pointer. This method would cast the void parameter to an endpoint_ref pointer and then call free method. <dl compact><dt><b>Parameters:</b></dt><dd>
  <table border="0" cellspacing="2" cellpadding="0">
    <tr><td valign="top"></td><td valign="top"><em>endpoint_ref</em>&nbsp;</td><td>pointer to endpoint_ref as a void pointer </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>env</em>&nbsp;</td><td>pointer to environment struct </td></tr>
  </table>
</dl>
<dl class="return" compact><dt><b>Returns:</b></dt><dd>AXIS2_SUCCESS on success, else AXIS2_FAILURE </dd></dl>

</div>
</div><p>
<a class="anchor" name="g4bc3d165549d17b00a56119c340d0eab"></a><!-- doxytag: member="axis2_endpoint_ref.h::axis2_endpoint_ref_get_address" ref="g4bc3d165549d17b00a56119c340d0eab" args="(const axis2_endpoint_ref_t *endpoint_ref, const axutil_env_t *env)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">AXIS2_EXTERN const axis2_char_t* axis2_endpoint_ref_get_address           </td>
          <td>(</td>
          <td class="paramtype">const <a class="el" href="group__axis2__endpoint__ref.html#gf6e89c83a6b553e7e3f11e787b3fecd4">axis2_endpoint_ref_t</a> *&nbsp;</td>
          <td class="paramname"> <em>endpoint_ref</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const <a class="el" href="structaxutil__env.html">axutil_env_t</a> *&nbsp;</td>
          <td class="paramname"> <em>env</em></td><td>&nbsp;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td><td width="100%"></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
Gets endpoint address. Address URI identifies the endpoint. This may be a network address or a logical address. <dl compact><dt><b>Parameters:</b></dt><dd>
  <table border="0" cellspacing="2" cellpadding="0">
    <tr><td valign="top"></td><td valign="top"><em>endpoint_ref</em>&nbsp;</td><td>pointer to endpoint reference struct </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>env</em>&nbsp;</td><td>pointer to environment struct </td></tr>
  </table>
</dl>
<dl class="return" compact><dt><b>Returns:</b></dt><dd>endpoint address string </dd></dl>

</div>
</div><p>
<a class="anchor" name="gb68c9bf3c7b34f5f7b5f2228de5e9a2e"></a><!-- doxytag: member="axis2_endpoint_ref.h::axis2_endpoint_ref_get_extension_list" ref="gb68c9bf3c7b34f5f7b5f2228de5e9a2e" args="(const axis2_endpoint_ref_t *endpoint_ref, const axutil_env_t *env)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">AXIS2_EXTERN <a class="el" href="group__axutil__array__list.html#g1a6a89777db876cfa0cc86787b7be6a0">axutil_array_list_t</a>* axis2_endpoint_ref_get_extension_list           </td>
          <td>(</td>
          <td class="paramtype">const <a class="el" href="group__axis2__endpoint__ref.html#gf6e89c83a6b553e7e3f11e787b3fecd4">axis2_endpoint_ref_t</a> *&nbsp;</td>
          <td class="paramname"> <em>endpoint_ref</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const <a class="el" href="structaxutil__env.html">axutil_env_t</a> *&nbsp;</td>
          <td class="paramname"> <em>env</em></td><td>&nbsp;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td><td width="100%"></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
Gets the list of extensions. Extensions are a mechanism to allow additional elements to be specified in association with the endpoint. <dl compact><dt><b>Parameters:</b></dt><dd>
  <table border="0" cellspacing="2" cellpadding="0">
    <tr><td valign="top"></td><td valign="top"><em>endpoint_ref</em>&nbsp;</td><td>pointer to endpoint reference struct </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>env</em>&nbsp;</td><td>pointer to environment struct </td></tr>
  </table>
</dl>
<dl class="return" compact><dt><b>Returns:</b></dt><dd>pointer to array list containing extensions, returns a reference, not a cloned copy </dd></dl>

</div>
</div><p>
<a class="anchor" name="gecddf65a57bf6a269b8d31ea99165049"></a><!-- doxytag: member="axis2_endpoint_ref.h::axis2_endpoint_ref_get_interface_qname" ref="gecddf65a57bf6a269b8d31ea99165049" args="(const axis2_endpoint_ref_t *endpoint_ref, const axutil_env_t *env)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">AXIS2_EXTERN const axutil_qname_t* axis2_endpoint_ref_get_interface_qname           </td>
          <td>(</td>
          <td class="paramtype">const <a class="el" href="group__axis2__endpoint__ref.html#gf6e89c83a6b553e7e3f11e787b3fecd4">axis2_endpoint_ref_t</a> *&nbsp;</td>
          <td class="paramname"> <em>endpoint_ref</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const <a class="el" href="structaxutil__env.html">axutil_env_t</a> *&nbsp;</td>
          <td class="paramname"> <em>env</em></td><td>&nbsp;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td><td width="100%"></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
Gets interface QName. QName represents the primary portType of the endpoint being conveyed. <dl compact><dt><b>Parameters:</b></dt><dd>
  <table border="0" cellspacing="2" cellpadding="0">
    <tr><td valign="top"></td><td valign="top"><em>endpoint_ref</em>&nbsp;</td><td>pointer to endpoint reference struct </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>env</em>&nbsp;</td><td>pointer to environment struct </td></tr>
  </table>
</dl>
<dl class="return" compact><dt><b>Returns:</b></dt><dd>pointer to interface QName, returns a reference, not a cloned copy </dd></dl>

</div>
</div><p>
<a class="anchor" name="gc58bdf7baf4dfc5a9f2e15bd2b40061e"></a><!-- doxytag: member="axis2_endpoint_ref.h::axis2_endpoint_ref_get_metadata_attribute_list" ref="gc58bdf7baf4dfc5a9f2e15bd2b40061e" args="(const axis2_endpoint_ref_t *endpoint_ref, const axutil_env_t *env)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">AXIS2_EXTERN <a class="el" href="group__axutil__array__list.html#g1a6a89777db876cfa0cc86787b7be6a0">axutil_array_list_t</a>* axis2_endpoint_ref_get_metadata_attribute_list           </td>
          <td>(</td>
          <td class="paramtype">const <a class="el" href="group__axis2__endpoint__ref.html#gf6e89c83a6b553e7e3f11e787b3fecd4">axis2_endpoint_ref_t</a> *&nbsp;</td>
          <td class="paramname"> <em>endpoint_ref</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const <a class="el" href="structaxutil__env.html">axutil_env_t</a> *&nbsp;</td>
          <td class="paramname"> <em>env</em></td><td>&nbsp;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td><td width="100%"></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
Gets the list of metadata attributes. <dl compact><dt><b>Parameters:</b></dt><dd>
  <table border="0" cellspacing="2" cellpadding="0">
    <tr><td valign="top"></td><td valign="top"><em>endpoint_ref</em>&nbsp;</td><td>pointer to endpoint reference struct </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>env</em>&nbsp;</td><td>pointer to environment struct </td></tr>
  </table>
</dl>
<dl class="return" compact><dt><b>Returns:</b></dt><dd>pointer to array list containing metadata attributes, returns a reference, not a cloned copy </dd></dl>

</div>
</div><p>
<a class="anchor" name="g5ff6d5d4e9bd5d346ed1652c3f0a9566"></a><!-- doxytag: member="axis2_endpoint_ref.h::axis2_endpoint_ref_get_metadata_list" ref="g5ff6d5d4e9bd5d346ed1652c3f0a9566" args="(const axis2_endpoint_ref_t *endpoint_ref, const axutil_env_t *env)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">AXIS2_EXTERN <a class="el" href="group__axutil__array__list.html#g1a6a89777db876cfa0cc86787b7be6a0">axutil_array_list_t</a>* axis2_endpoint_ref_get_metadata_list           </td>
          <td>(</td>
          <td class="paramtype">const <a class="el" href="group__axis2__endpoint__ref.html#gf6e89c83a6b553e7e3f11e787b3fecd4">axis2_endpoint_ref_t</a> *&nbsp;</td>
          <td class="paramname"> <em>endpoint_ref</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const <a class="el" href="structaxutil__env.html">axutil_env_t</a> *&nbsp;</td>
          <td class="paramname"> <em>env</em></td><td>&nbsp;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td><td width="100%"></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
Gets the list of metadata. An endpoint can have different associated metadata such as WSDL, XML Schema, and WS-Policy policies. <dl compact><dt><b>Parameters:</b></dt><dd>
  <table border="0" cellspacing="2" cellpadding="0">
    <tr><td valign="top"></td><td valign="top"><em>endpoint_ref</em>&nbsp;</td><td>pointer to endpoint reference struct </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>env</em>&nbsp;</td><td>pointer to environment struct </td></tr>
  </table>
</dl>
<dl class="return" compact><dt><b>Returns:</b></dt><dd>pointer to array list containing metadata, returns a reference, not a cloned copy </dd></dl>

</div>
</div><p>
<a class="anchor" name="g3708574ea51cc3ef8c93209a2d7d482a"></a><!-- doxytag: member="axis2_endpoint_ref.h::axis2_endpoint_ref_get_ref_attribute_list" ref="g3708574ea51cc3ef8c93209a2d7d482a" args="(const axis2_endpoint_ref_t *endpoint_ref, const axutil_env_t *env)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">AXIS2_EXTERN <a class="el" href="group__axutil__array__list.html#g1a6a89777db876cfa0cc86787b7be6a0">axutil_array_list_t</a>* axis2_endpoint_ref_get_ref_attribute_list           </td>
          <td>(</td>
          <td class="paramtype">const <a class="el" href="group__axis2__endpoint__ref.html#gf6e89c83a6b553e7e3f11e787b3fecd4">axis2_endpoint_ref_t</a> *&nbsp;</td>
          <td class="paramname"> <em>endpoint_ref</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const <a class="el" href="structaxutil__env.html">axutil_env_t</a> *&nbsp;</td>
          <td class="paramname"> <em>env</em></td><td>&nbsp;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td><td width="100%"></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
Gets the list of reference attributes. <dl compact><dt><b>Parameters:</b></dt><dd>
  <table border="0" cellspacing="2" cellpadding="0">
    <tr><td valign="top"></td><td valign="top"><em>endpoint_ref</em>&nbsp;</td><td>pointer to endpoint reference struct </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>env</em>&nbsp;</td><td>pointer to environment struct </td></tr>
  </table>
</dl>
<dl class="return" compact><dt><b>Returns:</b></dt><dd>pointer to array list containing reference attributes, returns a reference, not a cloned copy </dd></dl>

</div>
</div><p>
<a class="anchor" name="g53737580ff3a85142e9a5360726e0175"></a><!-- doxytag: member="axis2_endpoint_ref.h::axis2_endpoint_ref_get_ref_param_list" ref="g53737580ff3a85142e9a5360726e0175" args="(const axis2_endpoint_ref_t *endpoint_ref, const axutil_env_t *env)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">AXIS2_EXTERN <a class="el" href="group__axutil__array__list.html#g1a6a89777db876cfa0cc86787b7be6a0">axutil_array_list_t</a>* axis2_endpoint_ref_get_ref_param_list           </td>
          <td>(</td>
          <td class="paramtype">const <a class="el" href="group__axis2__endpoint__ref.html#gf6e89c83a6b553e7e3f11e787b3fecd4">axis2_endpoint_ref_t</a> *&nbsp;</td>
          <td class="paramname"> <em>endpoint_ref</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const <a class="el" href="structaxutil__env.html">axutil_env_t</a> *&nbsp;</td>
          <td class="paramname"> <em>env</em></td><td>&nbsp;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td><td width="100%"></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
Gets reference parameter list. A reference may contain a number of individual parameters which are associated with the endpoint to facilitate a particular interaction. Reference parameters are element information items that are named by QName and are required to properly interact with the endpoint. <dl compact><dt><b>Parameters:</b></dt><dd>
  <table border="0" cellspacing="2" cellpadding="0">
    <tr><td valign="top"></td><td valign="top"><em>endpoint_ref</em>&nbsp;</td><td>pointer to endpoint reference struct </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>env</em>&nbsp;</td><td>pointer to environment struct </td></tr>
  </table>
</dl>
<dl class="return" compact><dt><b>Returns:</b></dt><dd>pointer to array list containing all reference parameters, returns a reference, not a cloned copy </dd></dl>

</div>
</div><p>
<a class="anchor" name="g392b8ac3572d5a3b905b407dbf9c9936"></a><!-- doxytag: member="axis2_endpoint_ref.h::axis2_endpoint_ref_get_svc_name" ref="g392b8ac3572d5a3b905b407dbf9c9936" args="(const axis2_endpoint_ref_t *endpoint_ref, const axutil_env_t *env)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">AXIS2_EXTERN <a class="el" href="group__axis2__svc__name.html#gf3d9c6a25fce098b03819d1ac546270c">axis2_svc_name_t</a>* axis2_endpoint_ref_get_svc_name           </td>
          <td>(</td>
          <td class="paramtype">const <a class="el" href="group__axis2__endpoint__ref.html#gf6e89c83a6b553e7e3f11e787b3fecd4">axis2_endpoint_ref_t</a> *&nbsp;</td>
          <td class="paramname"> <em>endpoint_ref</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const <a class="el" href="structaxutil__env.html">axutil_env_t</a> *&nbsp;</td>
          <td class="paramname"> <em>env</em></td><td>&nbsp;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td><td width="100%"></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
Gets service name. An endpoint in WS-Addressing has a QName identifying the WSDL service element that contains the definition of the endpoint being conveyed. The service name provides a link to a full description of the service endpoint. <dl compact><dt><b>Parameters:</b></dt><dd>
  <table border="0" cellspacing="2" cellpadding="0">
    <tr><td valign="top"></td><td valign="top"><em>endpoint_ref</em>&nbsp;</td><td>pointer to endpoint reference struct </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>env</em>&nbsp;</td><td>pointer to environment struct </td></tr>
  </table>
</dl>
<dl class="return" compact><dt><b>Returns:</b></dt><dd>pointer to service name struct, returns a reference, not a cloned copy </dd></dl>

</div>
</div><p>
<a class="anchor" name="g9b3f69452fdb8c38b9c505e56f80914c"></a><!-- doxytag: member="axis2_endpoint_ref.h::axis2_endpoint_ref_set_address" ref="g9b3f69452fdb8c38b9c505e56f80914c" args="(axis2_endpoint_ref_t *endpoint_ref, const axutil_env_t *env, const axis2_char_t *address)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">AXIS2_EXTERN axis2_status_t axis2_endpoint_ref_set_address           </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="group__axis2__endpoint__ref.html#gf6e89c83a6b553e7e3f11e787b3fecd4">axis2_endpoint_ref_t</a> *&nbsp;</td>
          <td class="paramname"> <em>endpoint_ref</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const <a class="el" href="structaxutil__env.html">axutil_env_t</a> *&nbsp;</td>
          <td class="paramname"> <em>env</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const axis2_char_t *&nbsp;</td>
          <td class="paramname"> <em>address</em></td><td>&nbsp;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td><td width="100%"></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
Sets endpoint address. Address URI identifies the endpoint. This may be a network address or a logical address. <dl compact><dt><b>Parameters:</b></dt><dd>
  <table border="0" cellspacing="2" cellpadding="0">
    <tr><td valign="top"></td><td valign="top"><em>endpoint_ref</em>&nbsp;</td><td>pointer to endpoint reference struct </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>env</em>&nbsp;</td><td>pointer to environment struct </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>address</em>&nbsp;</td><td>address string </td></tr>
  </table>
</dl>
<dl class="return" compact><dt><b>Returns:</b></dt><dd>AXIS2_SUCCESS on success, else AXIS2_FAILURE </dd></dl>

</div>
</div><p>
<a class="anchor" name="g1a0f57e4779a0a9beb7133b0dc6932c5"></a><!-- doxytag: member="axis2_endpoint_ref.h::axis2_endpoint_ref_set_interface_qname" ref="g1a0f57e4779a0a9beb7133b0dc6932c5" args="(axis2_endpoint_ref_t *endpoint_ref, const axutil_env_t *env, const axutil_qname_t *interface_qname)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">AXIS2_EXTERN axis2_status_t axis2_endpoint_ref_set_interface_qname           </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="group__axis2__endpoint__ref.html#gf6e89c83a6b553e7e3f11e787b3fecd4">axis2_endpoint_ref_t</a> *&nbsp;</td>
          <td class="paramname"> <em>endpoint_ref</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const <a class="el" href="structaxutil__env.html">axutil_env_t</a> *&nbsp;</td>
          <td class="paramname"> <em>env</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const axutil_qname_t *&nbsp;</td>
          <td class="paramname"> <em>interface_qname</em></td><td>&nbsp;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td><td width="100%"></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
Sets interface QName. QName represents the primary portType of the endpoint being conveyed. <dl compact><dt><b>Parameters:</b></dt><dd>
  <table border="0" cellspacing="2" cellpadding="0">
    <tr><td valign="top"></td><td valign="top"><em>endpoint_ref</em>&nbsp;</td><td>pointer to endpoint reference struct </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>env</em>&nbsp;</td><td>pointer to environment struct </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>interface_qname</em>&nbsp;</td><td>pointer to interface QName, this method creates a clone of the QName </td></tr>
  </table>
</dl>
<dl class="return" compact><dt><b>Returns:</b></dt><dd>AXIS2_SUCCESS on success, else AXIS2_FAILURE </dd></dl>

</div>
</div><p>
<a class="anchor" name="g0a8954c0a595aa9016d125b1c171bcda"></a><!-- doxytag: member="axis2_endpoint_ref.h::axis2_endpoint_ref_set_svc_name" ref="g0a8954c0a595aa9016d125b1c171bcda" args="(axis2_endpoint_ref_t *endpoint_ref, const axutil_env_t *env, axis2_svc_name_t *svc_name)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">AXIS2_EXTERN axis2_status_t axis2_endpoint_ref_set_svc_name           </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="group__axis2__endpoint__ref.html#gf6e89c83a6b553e7e3f11e787b3fecd4">axis2_endpoint_ref_t</a> *&nbsp;</td>
          <td class="paramname"> <em>endpoint_ref</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const <a class="el" href="structaxutil__env.html">axutil_env_t</a> *&nbsp;</td>
          <td class="paramname"> <em>env</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype"><a class="el" href="group__axis2__svc__name.html#gf3d9c6a25fce098b03819d1ac546270c">axis2_svc_name_t</a> *&nbsp;</td>
          <td class="paramname"> <em>svc_name</em></td><td>&nbsp;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td><td width="100%"></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
Sets service name. An endpoint in WS-Addressing has a QName identifying the WSDL service element that contains the definition of the endpoint being conveyed. The service name provides a link to a full description of the service endpoint. <dl compact><dt><b>Parameters:</b></dt><dd>
  <table border="0" cellspacing="2" cellpadding="0">
    <tr><td valign="top"></td><td valign="top"><em>endpoint_ref</em>&nbsp;</td><td>pointer to endpoint reference struct </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>env</em>&nbsp;</td><td>pointer to environment struct </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>svc_name</em>&nbsp;</td><td>pointer to service name struct, endpoint assumes ownership of the struct </td></tr>
  </table>
</dl>
<dl class="return" compact><dt><b>Returns:</b></dt><dd>AXIS2_SUCCESS on success, else AXIS2_FAILURE </dd></dl>

</div>
</div><p>
<hr size="1"><address style="text-align: right;"><small>Generated on Fri Apr 17 11:49:44 2009 for Axis2/C by&nbsp;
<a href="http://www.doxygen.org/index.html">
<img src="doxygen.png" alt="doxygen" align="middle" border="0"></a> 1.5.3 </small></address>
</body>
</html>


<|start_filename|>xdocs/api/html/group__axutil__allocator.html<|end_filename|>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html><head><meta http-equiv="Content-Type" content="text/html;charset=UTF-8">
<title>Axis2/C: allocator</title>
<link href="doxygen.css" rel="stylesheet" type="text/css">
<link href="tabs.css" rel="stylesheet" type="text/css">
</head><body>
<!-- Generated by Doxygen 1.5.3 -->
<div class="tabs">
  <ul>
    <li><a href="index.html"><span>Main&nbsp;Page</span></a></li>
    <li><a href="modules.html"><span>Modules</span></a></li>
    <li><a href="annotated.html"><span>Classes</span></a></li>
    <li><a href="files.html"><span>Files</span></a></li>
    <li><a href="dirs.html"><span>Directories</span></a></li>
    <li><a href="pages.html"><span>Related&nbsp;Pages</span></a></li>
    <li><a href="examples.html"><span>Examples</span></a></li>
    <li>
      <form action="search.php" method="get">
        <table cellspacing="0" cellpadding="0" border="0">
          <tr>
            <td><label>&nbsp;<u>S</u>earch&nbsp;for&nbsp;</label></td>
            <td><input type="text" name="query" value="" size="20" accesskey="s"/></td>
          </tr>
        </table>
      </form>
    </li>
  </ul>
</div>
<h1>allocator<br>
<small>
[<a class="el" href="group__axis2__util.html">utilities</a>]</small>
</h1><table border="0" cellpadding="0" cellspacing="0">
<tr><td></td></tr>
<tr><td colspan="2"><br><h2>Classes</h2></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top">struct &nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="structaxutil__allocator.html">axutil_allocator</a></td></tr>

<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Axis2 memory allocator.  <a href="structaxutil__allocator.html#_details">More...</a><br></td></tr>
<tr><td colspan="2"><br><h2>Defines</h2></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="g75454cdc276a059934e8e4872e3d251c"></a><!-- doxytag: member="axutil_allocator::AXIS2_MALLOC" ref="g75454cdc276a059934e8e4872e3d251c" args="(allocator, size)" -->
#define&nbsp;</td><td class="memItemRight" valign="bottom"><b>AXIS2_MALLOC</b>(allocator, size)&nbsp;&nbsp;&nbsp;((allocator)-&gt;malloc_fn(allocator, size))</td></tr>

<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="g9126622fd049275a6ac0d5d4641ea02d"></a><!-- doxytag: member="axutil_allocator::AXIS2_REALLOC" ref="g9126622fd049275a6ac0d5d4641ea02d" args="(allocator, ptr, size)" -->
#define&nbsp;</td><td class="memItemRight" valign="bottom"><b>AXIS2_REALLOC</b>(allocator, ptr, size)&nbsp;&nbsp;&nbsp;((allocator)-&gt;realloc(allocator, ptr, size))</td></tr>

<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="gbdd0a8a66ad0e49b2f99e07244ccaa2f"></a><!-- doxytag: member="axutil_allocator::AXIS2_FREE" ref="gbdd0a8a66ad0e49b2f99e07244ccaa2f" args="(allocator, ptr)" -->
#define&nbsp;</td><td class="memItemRight" valign="bottom"><b>AXIS2_FREE</b>(allocator, ptr)&nbsp;&nbsp;&nbsp;((allocator)-&gt;free_fn(allocator, ptr))</td></tr>

<tr><td colspan="2"><br><h2>Typedefs</h2></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top">typedef struct <br>
<a class="el" href="structaxutil__allocator.html">axutil_allocator</a>&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__axutil__allocator.html#g24403baa66b6208837ff50b46f8ba930">axutil_allocator_t</a></td></tr>

<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Axis2 memory allocator.  <a href="#g24403baa66b6208837ff50b46f8ba930"></a><br></td></tr>
<tr><td colspan="2"><br><h2>Functions</h2></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top">AXIS2_EXTERN <br>
<a class="el" href="structaxutil__allocator.html">axutil_allocator_t</a> *&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__axutil__allocator.html#g102e762ca4def99ded7ef3f0244f2f88">axutil_allocator_init</a> (<a class="el" href="structaxutil__allocator.html">axutil_allocator_t</a> *allocator)</td></tr>

<tr><td class="memItemLeft" nowrap align="right" valign="top">AXIS2_EXTERN void&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__axutil__allocator.html#g5e629bf41638a6df23793dbefb542f5b">axutil_allocator_free</a> (<a class="el" href="structaxutil__allocator.html">axutil_allocator_t</a> *allocator)</td></tr>

<tr><td class="memItemLeft" nowrap align="right" valign="top">AXIS2_EXTERN void&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__axutil__allocator.html#g7c4b9b9277c33abdfbd7f5838c1482da">axutil_allocator_switch_to_global_pool</a> (<a class="el" href="structaxutil__allocator.html">axutil_allocator_t</a> *allocator)</td></tr>

<tr><td class="memItemLeft" nowrap align="right" valign="top">AXIS2_EXTERN void&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__axutil__allocator.html#g84fcfb6c00bfaf95d676a8cc98c2ac33">axutil_allocator_switch_to_local_pool</a> (<a class="el" href="structaxutil__allocator.html">axutil_allocator_t</a> *allocator)</td></tr>

</table>
<hr><h2>Typedef Documentation</h2>
<a class="anchor" name="g24403baa66b6208837ff50b46f8ba930"></a><!-- doxytag: member="axutil_allocator.h::axutil_allocator_t" ref="g24403baa66b6208837ff50b46f8ba930" args="" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">typedef struct <a class="el" href="structaxutil__allocator.html">axutil_allocator</a>
     <a class="el" href="structaxutil__allocator.html">axutil_allocator_t</a>          </td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
Axis2 memory allocator. 
<p>
Encapsulator for memory allocating routines 
</div>
</div><p>
<hr><h2>Function Documentation</h2>
<a class="anchor" name="g5e629bf41638a6df23793dbefb542f5b"></a><!-- doxytag: member="axutil_allocator.h::axutil_allocator_free" ref="g5e629bf41638a6df23793dbefb542f5b" args="(axutil_allocator_t *allocator)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">AXIS2_EXTERN void axutil_allocator_free           </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="structaxutil__allocator.html">axutil_allocator_t</a> *&nbsp;</td>
          <td class="paramname"> <em>allocator</em>          </td>
          <td>&nbsp;)&nbsp;</td>
          <td width="100%"></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
This function should be used to deallocate memory if the default allocator was provided by the <a class="el" href="group__axutil__allocator.html#g102e762ca4def99ded7ef3f0244f2f88">axutil_allocator_init()</a> call. <dl compact><dt><b>Parameters:</b></dt><dd>
  <table border="0" cellspacing="2" cellpadding="0">
    <tr><td valign="top"></td><td valign="top"><em>allocator</em>&nbsp;</td><td>allocator struct to be freed </td></tr>
  </table>
</dl>
<dl class="return" compact><dt><b>Returns:</b></dt><dd>void </dd></dl>

</div>
</div><p>
<a class="anchor" name="g102e762ca4def99ded7ef3f0244f2f88"></a><!-- doxytag: member="axutil_allocator.h::axutil_allocator_init" ref="g102e762ca4def99ded7ef3f0244f2f88" args="(axutil_allocator_t *allocator)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">AXIS2_EXTERN <a class="el" href="structaxutil__allocator.html">axutil_allocator_t</a>* axutil_allocator_init           </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="structaxutil__allocator.html">axutil_allocator_t</a> *&nbsp;</td>
          <td class="paramname"> <em>allocator</em>          </td>
          <td>&nbsp;)&nbsp;</td>
          <td width="100%"></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
Initializes (creates) a memory allocator. <dl compact><dt><b>Parameters:</b></dt><dd>
  <table border="0" cellspacing="2" cellpadding="0">
    <tr><td valign="top"></td><td valign="top"><em>allocator</em>&nbsp;</td><td>user defined allocator. If NULL, a default allocator will be returned. </td></tr>
  </table>
</dl>
<dl class="return" compact><dt><b>Returns:</b></dt><dd>initialized allocator. NULL on error. </dd></dl>

</div>
</div><p>
<a class="anchor" name="g7c4b9b9277c33abdfbd7f5838c1482da"></a><!-- doxytag: member="axutil_allocator.h::axutil_allocator_switch_to_global_pool" ref="g7c4b9b9277c33abdfbd7f5838c1482da" args="(axutil_allocator_t *allocator)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">AXIS2_EXTERN void axutil_allocator_switch_to_global_pool           </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="structaxutil__allocator.html">axutil_allocator_t</a> *&nbsp;</td>
          <td class="paramname"> <em>allocator</em>          </td>
          <td>&nbsp;)&nbsp;</td>
          <td width="100%"></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
Swaps the local_pool and global_pool and makes the global pool the current pool. In case of using pools, local_pool is supposed to hold the pool out of which local values are allocated. In case of values that live beyond a request global pool should be used, hence this method has to be called to switch to global pool for allocation. <dl compact><dt><b>Parameters:</b></dt><dd>
  <table border="0" cellspacing="2" cellpadding="0">
    <tr><td valign="top"></td><td valign="top"><em>allocator</em>&nbsp;</td><td>allocator whose memory pools are to be switched </td></tr>
  </table>
</dl>
<dl class="return" compact><dt><b>Returns:</b></dt><dd>void </dd></dl>

</div>
</div><p>
<a class="anchor" name="g84fcfb6c00bfaf95d676a8cc98c2ac33"></a><!-- doxytag: member="axutil_allocator.h::axutil_allocator_switch_to_local_pool" ref="g84fcfb6c00bfaf95d676a8cc98c2ac33" args="(axutil_allocator_t *allocator)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">AXIS2_EXTERN void axutil_allocator_switch_to_local_pool           </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="structaxutil__allocator.html">axutil_allocator_t</a> *&nbsp;</td>
          <td class="paramname"> <em>allocator</em>          </td>
          <td>&nbsp;)&nbsp;</td>
          <td width="100%"></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
Swaps the local_pool and global_pool and makes the local pool the current pool. In case of using pools, local_pool is supposed to hold the pool out of which local values are allocated. In case of values that live beyond a request global pool should be used. This method can be used to inverse the switching done by axutil_allocator_switch_to_global_pool, to start using the local pool again. <dl compact><dt><b>Parameters:</b></dt><dd>
  <table border="0" cellspacing="2" cellpadding="0">
    <tr><td valign="top"></td><td valign="top"><em>allocator</em>&nbsp;</td><td>allocator whose memory pools are to be switched </td></tr>
  </table>
</dl>
<dl class="return" compact><dt><b>Returns:</b></dt><dd>void </dd></dl>

</div>
</div><p>
<hr size="1"><address style="text-align: right;"><small>Generated on Fri Apr 17 11:49:45 2009 for Axis2/C by&nbsp;
<a href="http://www.doxygen.org/index.html">
<img src="doxygen.png" alt="doxygen" align="middle" border="0"></a> 1.5.3 </small></address>
</body>
</html>


<|start_filename|>xdocs/api/html/group__axis2__stub.html<|end_filename|>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html><head><meta http-equiv="Content-Type" content="text/html;charset=UTF-8">
<title>Axis2/C: stub</title>
<link href="doxygen.css" rel="stylesheet" type="text/css">
<link href="tabs.css" rel="stylesheet" type="text/css">
</head><body>
<!-- Generated by Doxygen 1.5.3 -->
<div class="tabs">
  <ul>
    <li><a href="index.html"><span>Main&nbsp;Page</span></a></li>
    <li><a href="modules.html"><span>Modules</span></a></li>
    <li><a href="annotated.html"><span>Classes</span></a></li>
    <li><a href="files.html"><span>Files</span></a></li>
    <li><a href="dirs.html"><span>Directories</span></a></li>
    <li><a href="pages.html"><span>Related&nbsp;Pages</span></a></li>
    <li><a href="examples.html"><span>Examples</span></a></li>
    <li>
      <form action="search.php" method="get">
        <table cellspacing="0" cellpadding="0" border="0">
          <tr>
            <td><label>&nbsp;<u>S</u>earch&nbsp;for&nbsp;</label></td>
            <td><input type="text" name="query" value="" size="20" accesskey="s"/></td>
          </tr>
        </table>
      </form>
    </li>
  </ul>
</div>
<h1>stub<br>
<small>
[<a class="el" href="group__axis2__client__api.html">client API</a>]</small>
</h1><table border="0" cellpadding="0" cellspacing="0">
<tr><td></td></tr>
<tr><td colspan="2"><br><h2>Files</h2></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top">file &nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="axis2__stub_8h.html">axis2_stub.h</a></td></tr>

<tr><td colspan="2"><br><h2>Defines</h2></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top">#define&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__axis2__stub.html#g474df5196c2a46015268b108ce2dde5c">AXIOM_SOAP_11</a>&nbsp;&nbsp;&nbsp;1</td></tr>

<tr><td class="memItemLeft" nowrap align="right" valign="top">#define&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__axis2__stub.html#ga869c2c88438ec26ab81a36b8727ac80">AXIOM_SOAP_12</a>&nbsp;&nbsp;&nbsp;2</td></tr>

<tr><td colspan="2"><br><h2>Typedefs</h2></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top">typedef struct axis2_stub&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__axis2__stub.html#g8ffbf8bf99ffec0caa07cf7aacf17281">axis2_stub_t</a></td></tr>

<tr><td colspan="2"><br><h2>Functions</h2></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top">AXIS2_EXTERN void&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__axis2__stub.html#gfc147a4a3fbdadfd5d92051fd7be69e5">axis2_stub_free</a> (<a class="el" href="group__axis2__stub.html#g8ffbf8bf99ffec0caa07cf7aacf17281">axis2_stub_t</a> *stub, const <a class="el" href="structaxutil__env.html">axutil_env_t</a> *env)</td></tr>

<tr><td class="memItemLeft" nowrap align="right" valign="top">AXIS2_EXTERN <br>
axis2_status_t&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__axis2__stub.html#gf746e816fb986b581bc2d3859bb097aa">axis2_stub_set_endpoint_ref</a> (<a class="el" href="group__axis2__stub.html#g8ffbf8bf99ffec0caa07cf7aacf17281">axis2_stub_t</a> *stub, const <a class="el" href="structaxutil__env.html">axutil_env_t</a> *env, <a class="el" href="group__axis2__endpoint__ref.html#gf6e89c83a6b553e7e3f11e787b3fecd4">axis2_endpoint_ref_t</a> *endpoint_ref)</td></tr>

<tr><td class="memItemLeft" nowrap align="right" valign="top">AXIS2_EXTERN <br>
axis2_status_t&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__axis2__stub.html#g175f162d0a5a7901f49f882bde4105ee">axis2_stub_set_endpoint_uri</a> (<a class="el" href="group__axis2__stub.html#g8ffbf8bf99ffec0caa07cf7aacf17281">axis2_stub_t</a> *stub, const <a class="el" href="structaxutil__env.html">axutil_env_t</a> *env, const axis2_char_t *endpoint_uri)</td></tr>

<tr><td class="memItemLeft" nowrap align="right" valign="top">AXIS2_EXTERN <br>
axis2_status_t&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__axis2__stub.html#gf3fdc7a48ad18635e54089e1e7e9d416">axis2_stub_set_use_separate_listener</a> (<a class="el" href="group__axis2__stub.html#g8ffbf8bf99ffec0caa07cf7aacf17281">axis2_stub_t</a> *stub, const <a class="el" href="structaxutil__env.html">axutil_env_t</a> *env, const axis2_bool_t use_separate_listener)</td></tr>

<tr><td class="memItemLeft" nowrap align="right" valign="top">AXIS2_EXTERN <br>
axis2_status_t&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__axis2__stub.html#gcffd202b2340ff245a1c972669b8ad39">axis2_stub_set_soap_version</a> (<a class="el" href="group__axis2__stub.html#g8ffbf8bf99ffec0caa07cf7aacf17281">axis2_stub_t</a> *stub, const <a class="el" href="structaxutil__env.html">axutil_env_t</a> *env, const int soap_version)</td></tr>

<tr><td class="memItemLeft" nowrap align="right" valign="top">AXIS2_EXTERN const <br>
axis2_char_t *&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__axis2__stub.html#gc313e3c8e03ada17a04e4049121d41d7">axis2_stub_get_svc_ctx_id</a> (const <a class="el" href="group__axis2__stub.html#g8ffbf8bf99ffec0caa07cf7aacf17281">axis2_stub_t</a> *stub, const <a class="el" href="structaxutil__env.html">axutil_env_t</a> *env)</td></tr>

<tr><td class="memItemLeft" nowrap align="right" valign="top">AXIS2_EXTERN <br>
axis2_status_t&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__axis2__stub.html#gb1137e8b1493ebfbecb29e81b6554974">axis2_stub_engage_module</a> (<a class="el" href="group__axis2__stub.html#g8ffbf8bf99ffec0caa07cf7aacf17281">axis2_stub_t</a> *stub, const <a class="el" href="structaxutil__env.html">axutil_env_t</a> *env, const axis2_char_t *module_name)</td></tr>

<tr><td class="memItemLeft" nowrap align="right" valign="top">AXIS2_EXTERN <br>
<a class="el" href="group__axis2__svc__client.html#g09ddaee99db86733d6550231293be4e7">axis2_svc_client_t</a> *&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__axis2__stub.html#g2d32f2fc661d49f68c8d144ada54acd8">axis2_stub_get_svc_client</a> (const <a class="el" href="group__axis2__stub.html#g8ffbf8bf99ffec0caa07cf7aacf17281">axis2_stub_t</a> *stub, const <a class="el" href="structaxutil__env.html">axutil_env_t</a> *env)</td></tr>

<tr><td class="memItemLeft" nowrap align="right" valign="top">AXIS2_EXTERN <br>
<a class="el" href="group__axis2__options.html#g26794bbdc46cdd3481c7e9079c0d6094">axis2_options_t</a> *&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__axis2__stub.html#ge0caef65d517bbde1018db927bbf2e27">axis2_stub_get_options</a> (const <a class="el" href="group__axis2__stub.html#g8ffbf8bf99ffec0caa07cf7aacf17281">axis2_stub_t</a> *stub, const <a class="el" href="structaxutil__env.html">axutil_env_t</a> *env)</td></tr>

<tr><td class="memItemLeft" nowrap align="right" valign="top">AXIS2_EXTERN <br>
<a class="el" href="group__axis2__stub.html#g8ffbf8bf99ffec0caa07cf7aacf17281">axis2_stub_t</a> *&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__axis2__stub.html#g1ed17d951b3cca323b94074a747fbac7">axis2_stub_create_with_endpoint_ref_and_client_home</a> (const <a class="el" href="structaxutil__env.html">axutil_env_t</a> *env, <a class="el" href="group__axis2__endpoint__ref.html#gf6e89c83a6b553e7e3f11e787b3fecd4">axis2_endpoint_ref_t</a> *endpoint_ref, const axis2_char_t *client_home)</td></tr>

<tr><td class="memItemLeft" nowrap align="right" valign="top">AXIS2_EXTERN <br>
<a class="el" href="group__axis2__stub.html#g8ffbf8bf99ffec0caa07cf7aacf17281">axis2_stub_t</a> *&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__axis2__stub.html#gb7634341e5e96506963b79ac3b5ebe6e">axis2_stub_create_with_endpoint_uri_and_client_home</a> (const <a class="el" href="structaxutil__env.html">axutil_env_t</a> *env, const axis2_char_t *endpoint_uri, const axis2_char_t *client_home)</td></tr>

</table>
<hr><a name="_details"></a><h2>Detailed Description</h2>
stub is a wrapper API for service client that helps users to use client API easily. <dl class="see" compact><dt><b>See also:</b></dt><dd><a class="el" href="group__axis2__svc__client.html">service client</a> </dd></dl>
<hr><h2>Define Documentation</h2>
<a class="anchor" name="g474df5196c2a46015268b108ce2dde5c"></a><!-- doxytag: member="axis2_stub.h::AXIOM_SOAP_11" ref="g474df5196c2a46015268b108ce2dde5c" args="" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">#define AXIOM_SOAP_11&nbsp;&nbsp;&nbsp;1          </td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
DEPRECATED: Please use AXIOM_SOAP11 instead. Constant value representing SOAP version 1.1 
</div>
</div><p>
<a class="anchor" name="ga869c2c88438ec26ab81a36b8727ac80"></a><!-- doxytag: member="axis2_stub.h::AXIOM_SOAP_12" ref="ga869c2c88438ec26ab81a36b8727ac80" args="" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">#define AXIOM_SOAP_12&nbsp;&nbsp;&nbsp;2          </td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
DEPRECATED: Please use AXIOM_SOAP12 instead. Constant value representing SOAP version 1.2 
</div>
</div><p>
<hr><h2>Typedef Documentation</h2>
<a class="anchor" name="g8ffbf8bf99ffec0caa07cf7aacf17281"></a><!-- doxytag: member="axis2_stub.h::axis2_stub_t" ref="g8ffbf8bf99ffec0caa07cf7aacf17281" args="" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">typedef struct axis2_stub <a class="el" href="group__axis2__stub.html#g8ffbf8bf99ffec0caa07cf7aacf17281">axis2_stub_t</a>          </td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
Type name for struct axis2_stub 
</div>
</div><p>
<hr><h2>Function Documentation</h2>
<a class="anchor" name="g1ed17d951b3cca323b94074a747fbac7"></a><!-- doxytag: member="axis2_stub.h::axis2_stub_create_with_endpoint_ref_and_client_home" ref="g1ed17d951b3cca323b94074a747fbac7" args="(const axutil_env_t *env, axis2_endpoint_ref_t *endpoint_ref, const axis2_char_t *client_home)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">AXIS2_EXTERN <a class="el" href="group__axis2__stub.html#g8ffbf8bf99ffec0caa07cf7aacf17281">axis2_stub_t</a>* axis2_stub_create_with_endpoint_ref_and_client_home           </td>
          <td>(</td>
          <td class="paramtype">const <a class="el" href="structaxutil__env.html">axutil_env_t</a> *&nbsp;</td>
          <td class="paramname"> <em>env</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype"><a class="el" href="group__axis2__endpoint__ref.html#gf6e89c83a6b553e7e3f11e787b3fecd4">axis2_endpoint_ref_t</a> *&nbsp;</td>
          <td class="paramname"> <em>endpoint_ref</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const axis2_char_t *&nbsp;</td>
          <td class="paramname"> <em>client_home</em></td><td>&nbsp;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td><td width="100%"></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
Creates a stub instance. <dl compact><dt><b>Parameters:</b></dt><dd>
  <table border="0" cellspacing="2" cellpadding="0">
    <tr><td valign="top"></td><td valign="top"><em>env</em>&nbsp;</td><td>pointer to environment struct </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>endpoint_ref</em>&nbsp;</td><td>pointer to endpoint reference struct representing the stub endpoint. Newly created stub assumes ownership of the endpoint </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>client_home</em>&nbsp;</td><td>name of the directory that contains the Axis2/C repository </td></tr>
  </table>
</dl>
<dl class="return" compact><dt><b>Returns:</b></dt><dd>pointer to newly created axis2_stub struct </dd></dl>

</div>
</div><p>
<a class="anchor" name="gb7634341e5e96506963b79ac3b5ebe6e"></a><!-- doxytag: member="axis2_stub.h::axis2_stub_create_with_endpoint_uri_and_client_home" ref="gb7634341e5e96506963b79ac3b5ebe6e" args="(const axutil_env_t *env, const axis2_char_t *endpoint_uri, const axis2_char_t *client_home)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">AXIS2_EXTERN <a class="el" href="group__axis2__stub.html#g8ffbf8bf99ffec0caa07cf7aacf17281">axis2_stub_t</a>* axis2_stub_create_with_endpoint_uri_and_client_home           </td>
          <td>(</td>
          <td class="paramtype">const <a class="el" href="structaxutil__env.html">axutil_env_t</a> *&nbsp;</td>
          <td class="paramname"> <em>env</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const axis2_char_t *&nbsp;</td>
          <td class="paramname"> <em>endpoint_uri</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const axis2_char_t *&nbsp;</td>
          <td class="paramname"> <em>client_home</em></td><td>&nbsp;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td><td width="100%"></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
Creates a stub instance. <dl compact><dt><b>Parameters:</b></dt><dd>
  <table border="0" cellspacing="2" cellpadding="0">
    <tr><td valign="top"></td><td valign="top"><em>env</em>&nbsp;</td><td>pointer to environment struct </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>endpoint_uri</em>&nbsp;</td><td>string representing the endpoint reference </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>client_home</em>&nbsp;</td><td>name of the directory that contains the Axis2/C repository </td></tr>
  </table>
</dl>
<dl class="return" compact><dt><b>Returns:</b></dt><dd>pointer to newly created axis2_stub struct </dd></dl>

</div>
</div><p>
<a class="anchor" name="gb1137e8b1493ebfbecb29e81b6554974"></a><!-- doxytag: member="axis2_stub.h::axis2_stub_engage_module" ref="gb1137e8b1493ebfbecb29e81b6554974" args="(axis2_stub_t *stub, const axutil_env_t *env, const axis2_char_t *module_name)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">AXIS2_EXTERN axis2_status_t axis2_stub_engage_module           </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="group__axis2__stub.html#g8ffbf8bf99ffec0caa07cf7aacf17281">axis2_stub_t</a> *&nbsp;</td>
          <td class="paramname"> <em>stub</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const <a class="el" href="structaxutil__env.html">axutil_env_t</a> *&nbsp;</td>
          <td class="paramname"> <em>env</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const axis2_char_t *&nbsp;</td>
          <td class="paramname"> <em>module_name</em></td><td>&nbsp;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td><td width="100%"></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
Engages the named module. <dl compact><dt><b>Parameters:</b></dt><dd>
  <table border="0" cellspacing="2" cellpadding="0">
    <tr><td valign="top"></td><td valign="top"><em>stub</em>&nbsp;</td><td>pointer to stub struct </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>env</em>&nbsp;</td><td>pointer to environment struct </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>module_name</em>&nbsp;</td><td>string representing the name of the module </td></tr>
  </table>
</dl>
<dl class="return" compact><dt><b>Returns:</b></dt><dd>AXIS2_SUCCESS on success, else AXIS2_FAILURE </dd></dl>

</div>
</div><p>
<a class="anchor" name="gfc147a4a3fbdadfd5d92051fd7be69e5"></a><!-- doxytag: member="axis2_stub.h::axis2_stub_free" ref="gfc147a4a3fbdadfd5d92051fd7be69e5" args="(axis2_stub_t *stub, const axutil_env_t *env)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">AXIS2_EXTERN void axis2_stub_free           </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="group__axis2__stub.html#g8ffbf8bf99ffec0caa07cf7aacf17281">axis2_stub_t</a> *&nbsp;</td>
          <td class="paramname"> <em>stub</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const <a class="el" href="structaxutil__env.html">axutil_env_t</a> *&nbsp;</td>
          <td class="paramname"> <em>env</em></td><td>&nbsp;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td><td width="100%"></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
Frees stub struct. <dl compact><dt><b>Parameters:</b></dt><dd>
  <table border="0" cellspacing="2" cellpadding="0">
    <tr><td valign="top"></td><td valign="top"><em>stub</em>&nbsp;</td><td>pointer to stub struct </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>env</em>&nbsp;</td><td>pointer to environment struct </td></tr>
  </table>
</dl>
<dl class="return" compact><dt><b>Returns:</b></dt><dd>void </dd></dl>

</div>
</div><p>
<a class="anchor" name="ge0caef65d517bbde1018db927bbf2e27"></a><!-- doxytag: member="axis2_stub.h::axis2_stub_get_options" ref="ge0caef65d517bbde1018db927bbf2e27" args="(const axis2_stub_t *stub, const axutil_env_t *env)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">AXIS2_EXTERN <a class="el" href="group__axis2__options.html#g26794bbdc46cdd3481c7e9079c0d6094">axis2_options_t</a>* axis2_stub_get_options           </td>
          <td>(</td>
          <td class="paramtype">const <a class="el" href="group__axis2__stub.html#g8ffbf8bf99ffec0caa07cf7aacf17281">axis2_stub_t</a> *&nbsp;</td>
          <td class="paramname"> <em>stub</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const <a class="el" href="structaxutil__env.html">axutil_env_t</a> *&nbsp;</td>
          <td class="paramname"> <em>env</em></td><td>&nbsp;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td><td width="100%"></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
Gets the options used on top of the service client used by this stub. <dl compact><dt><b>Parameters:</b></dt><dd>
  <table border="0" cellspacing="2" cellpadding="0">
    <tr><td valign="top"></td><td valign="top"><em>stub</em>&nbsp;</td><td>pointer to stub struct </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>env</em>&nbsp;</td><td>pointer to environment struct </td></tr>
  </table>
</dl>
<dl class="return" compact><dt><b>Returns:</b></dt><dd>pointer to options used by the service client of this stub </dd></dl>

</div>
</div><p>
<a class="anchor" name="g2d32f2fc661d49f68c8d144ada54acd8"></a><!-- doxytag: member="axis2_stub.h::axis2_stub_get_svc_client" ref="g2d32f2fc661d49f68c8d144ada54acd8" args="(const axis2_stub_t *stub, const axutil_env_t *env)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">AXIS2_EXTERN <a class="el" href="group__axis2__svc__client.html#g09ddaee99db86733d6550231293be4e7">axis2_svc_client_t</a>* axis2_stub_get_svc_client           </td>
          <td>(</td>
          <td class="paramtype">const <a class="el" href="group__axis2__stub.html#g8ffbf8bf99ffec0caa07cf7aacf17281">axis2_stub_t</a> *&nbsp;</td>
          <td class="paramname"> <em>stub</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const <a class="el" href="structaxutil__env.html">axutil_env_t</a> *&nbsp;</td>
          <td class="paramname"> <em>env</em></td><td>&nbsp;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td><td width="100%"></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
Gets the service client instance used by this stub. <dl compact><dt><b>Parameters:</b></dt><dd>
  <table border="0" cellspacing="2" cellpadding="0">
    <tr><td valign="top"></td><td valign="top"><em>stub</em>&nbsp;</td><td>pointer to stub struct </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>env</em>&nbsp;</td><td>pointer to environment struct </td></tr>
  </table>
</dl>
<dl class="return" compact><dt><b>Returns:</b></dt><dd>pointer to service client struct used by the stub </dd></dl>

</div>
</div><p>
<a class="anchor" name="gc313e3c8e03ada17a04e4049121d41d7"></a><!-- doxytag: member="axis2_stub.h::axis2_stub_get_svc_ctx_id" ref="gc313e3c8e03ada17a04e4049121d41d7" args="(const axis2_stub_t *stub, const axutil_env_t *env)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">AXIS2_EXTERN const axis2_char_t* axis2_stub_get_svc_ctx_id           </td>
          <td>(</td>
          <td class="paramtype">const <a class="el" href="group__axis2__stub.html#g8ffbf8bf99ffec0caa07cf7aacf17281">axis2_stub_t</a> *&nbsp;</td>
          <td class="paramname"> <em>stub</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const <a class="el" href="structaxutil__env.html">axutil_env_t</a> *&nbsp;</td>
          <td class="paramname"> <em>env</em></td><td>&nbsp;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td><td width="100%"></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
Gets the service context ID. <dl compact><dt><b>Parameters:</b></dt><dd>
  <table border="0" cellspacing="2" cellpadding="0">
    <tr><td valign="top"></td><td valign="top"><em>stub</em>&nbsp;</td><td>pointer to stub struct </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>env</em>&nbsp;</td><td>pointer to environment struct </td></tr>
  </table>
</dl>
<dl class="return" compact><dt><b>Returns:</b></dt><dd>service context ID if set, else NULL </dd></dl>

</div>
</div><p>
<a class="anchor" name="gf746e816fb986b581bc2d3859bb097aa"></a><!-- doxytag: member="axis2_stub.h::axis2_stub_set_endpoint_ref" ref="gf746e816fb986b581bc2d3859bb097aa" args="(axis2_stub_t *stub, const axutil_env_t *env, axis2_endpoint_ref_t *endpoint_ref)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">AXIS2_EXTERN axis2_status_t axis2_stub_set_endpoint_ref           </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="group__axis2__stub.html#g8ffbf8bf99ffec0caa07cf7aacf17281">axis2_stub_t</a> *&nbsp;</td>
          <td class="paramname"> <em>stub</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const <a class="el" href="structaxutil__env.html">axutil_env_t</a> *&nbsp;</td>
          <td class="paramname"> <em>env</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype"><a class="el" href="group__axis2__endpoint__ref.html#gf6e89c83a6b553e7e3f11e787b3fecd4">axis2_endpoint_ref_t</a> *&nbsp;</td>
          <td class="paramname"> <em>endpoint_ref</em></td><td>&nbsp;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td><td width="100%"></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
Sets the endpoint reference. <dl compact><dt><b>Parameters:</b></dt><dd>
  <table border="0" cellspacing="2" cellpadding="0">
    <tr><td valign="top"></td><td valign="top"><em>stub</em>&nbsp;</td><td>pointer to stub struct </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>env</em>&nbsp;</td><td>pointer to environment struct </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>endpoint_ref</em>&nbsp;</td><td>pointer to endpoint reference. stub assumes the ownership of the endpoint reference struct </td></tr>
  </table>
</dl>
<dl class="return" compact><dt><b>Returns:</b></dt><dd>AXIS2_SUCCESS on success, else AXIS2_FAILURE </dd></dl>

</div>
</div><p>
<a class="anchor" name="g175f162d0a5a7901f49f882bde4105ee"></a><!-- doxytag: member="axis2_stub.h::axis2_stub_set_endpoint_uri" ref="g175f162d0a5a7901f49f882bde4105ee" args="(axis2_stub_t *stub, const axutil_env_t *env, const axis2_char_t *endpoint_uri)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">AXIS2_EXTERN axis2_status_t axis2_stub_set_endpoint_uri           </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="group__axis2__stub.html#g8ffbf8bf99ffec0caa07cf7aacf17281">axis2_stub_t</a> *&nbsp;</td>
          <td class="paramname"> <em>stub</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const <a class="el" href="structaxutil__env.html">axutil_env_t</a> *&nbsp;</td>
          <td class="paramname"> <em>env</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const axis2_char_t *&nbsp;</td>
          <td class="paramname"> <em>endpoint_uri</em></td><td>&nbsp;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td><td width="100%"></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
Sets the endpoint reference, represented by a string. <dl compact><dt><b>Parameters:</b></dt><dd>
  <table border="0" cellspacing="2" cellpadding="0">
    <tr><td valign="top"></td><td valign="top"><em>stub</em>&nbsp;</td><td>pointer to stub struct </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>env</em>&nbsp;</td><td>pointer to environment struct </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>endpoint_uri</em>&nbsp;</td><td>pointer to endpoint uri string </td></tr>
  </table>
</dl>
<dl class="return" compact><dt><b>Returns:</b></dt><dd>AXIS2_SUCCESS on success, else AXIS2_FAILURE </dd></dl>

</div>
</div><p>
<a class="anchor" name="gcffd202b2340ff245a1c972669b8ad39"></a><!-- doxytag: member="axis2_stub.h::axis2_stub_set_soap_version" ref="gcffd202b2340ff245a1c972669b8ad39" args="(axis2_stub_t *stub, const axutil_env_t *env, const int soap_version)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">AXIS2_EXTERN axis2_status_t axis2_stub_set_soap_version           </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="group__axis2__stub.html#g8ffbf8bf99ffec0caa07cf7aacf17281">axis2_stub_t</a> *&nbsp;</td>
          <td class="paramname"> <em>stub</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const <a class="el" href="structaxutil__env.html">axutil_env_t</a> *&nbsp;</td>
          <td class="paramname"> <em>env</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const int&nbsp;</td>
          <td class="paramname"> <em>soap_version</em></td><td>&nbsp;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td><td width="100%"></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
Sets the SOAP version. <dl compact><dt><b>Parameters:</b></dt><dd>
  <table border="0" cellspacing="2" cellpadding="0">
    <tr><td valign="top"></td><td valign="top"><em>stub</em>&nbsp;</td><td>pointer to stub struct </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>env</em>&nbsp;</td><td>pointer to environment struct </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>soap_version</em>&nbsp;</td><td>int value representing the SOAP version </td></tr>
  </table>
</dl>
<dl class="return" compact><dt><b>Returns:</b></dt><dd>AXIS2_SUCCESS on success, else AXIS2_FAILURE </dd></dl>

</div>
</div><p>
<a class="anchor" name="gf3fdc7a48ad18635e54089e1e7e9d416"></a><!-- doxytag: member="axis2_stub.h::axis2_stub_set_use_separate_listener" ref="gf3fdc7a48ad18635e54089e1e7e9d416" args="(axis2_stub_t *stub, const axutil_env_t *env, const axis2_bool_t use_separate_listener)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">AXIS2_EXTERN axis2_status_t axis2_stub_set_use_separate_listener           </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="group__axis2__stub.html#g8ffbf8bf99ffec0caa07cf7aacf17281">axis2_stub_t</a> *&nbsp;</td>
          <td class="paramname"> <em>stub</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const <a class="el" href="structaxutil__env.html">axutil_env_t</a> *&nbsp;</td>
          <td class="paramname"> <em>env</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const axis2_bool_t&nbsp;</td>
          <td class="paramname"> <em>use_separate_listener</em></td><td>&nbsp;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td><td width="100%"></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
Sets the bool value specifying whether to use a separate listener for receive channel. <dl compact><dt><b>Parameters:</b></dt><dd>
  <table border="0" cellspacing="2" cellpadding="0">
    <tr><td valign="top"></td><td valign="top"><em>stub</em>&nbsp;</td><td>pointer to stub struct </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>env</em>&nbsp;</td><td>pointer to environment struct </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>use_separate</em>&nbsp;</td><td>whether to use a separate listener </td></tr>
  </table>
</dl>
<dl class="return" compact><dt><b>Returns:</b></dt><dd>AXIS2_SUCCESS on success, else AXIS2_FAILURE </dd></dl>

</div>
</div><p>
<hr size="1"><address style="text-align: right;"><small>Generated on Fri Apr 17 11:49:45 2009 for Axis2/C by&nbsp;
<a href="http://www.doxygen.org/index.html">
<img src="doxygen.png" alt="doxygen" align="middle" border="0"></a> 1.5.3 </small></address>
</body>
</html>


<|start_filename|>axiom/src/soap/soap_fault.c<|end_filename|>

/*
 * 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.
 */
#include "_axiom_soap_fault.h"
#include <axiom_soap_const.h>
#include "_axiom_soap_body.h"
#include <axiom_node.h>
#include <axiom_element.h>
#include <axiom_soap_fault_code.h>
#include <axiom_soap_fault_detail.h>
#include <axiom_soap_fault_value.h>
#include <axiom_soap_fault_text.h>
#include <axiom_soap_fault_reason.h>
#include <axiom_soap_fault_role.h>
#include <axiom_soap_fault_node.h>
#include <axiom_soap_builder.h>

struct axiom_soap_fault
{
    /* om element node corresponding to soap soap_fault */
    axiom_node_t *om_ele_node;

    /* soap soap_fault code sub element */
    axiom_soap_fault_code_t *fcode;
    /* soap soap_fault reason sub element */
    axiom_soap_fault_reason_t *freason;
    /* soap soap_fault node sub element */
    axiom_soap_fault_node_t *fnode;
    /* soap soap_fault role sub element */
    axiom_soap_fault_role_t *frole;
    /* soap soap_fault detail sub element */
    axiom_soap_fault_detail_t *fdetail;

    axis2_char_t *exception;
    /* reference to soap builder */
    axiom_soap_builder_t *soap_builder;

    int soap_version;
};

AXIS2_EXTERN axiom_soap_fault_t *AXIS2_CALL
axiom_soap_fault_create(
    const axutil_env_t * env)
{
    axiom_soap_fault_t *soap_fault = NULL;
    soap_fault = (axiom_soap_fault_t *) AXIS2_MALLOC(env->allocator,
                                                     sizeof
                                                     (axiom_soap_fault_t));
    if (!soap_fault)
    {
        AXIS2_ERROR_SET(env->error, AXIS2_ERROR_NO_MEMORY, AXIS2_FAILURE);
        AXIS2_LOG_ERROR(env->log, AXIS2_LOG_SI,
                          "No memory. Cannot create a SOAP fault");
        return NULL;
    }
    soap_fault->exception = NULL;
    soap_fault->fcode = NULL;
    soap_fault->fdetail = NULL;
    soap_fault->fnode = NULL;
    soap_fault->freason = NULL;
    soap_fault->frole = NULL;
    soap_fault->om_ele_node = NULL;
    soap_fault->soap_builder = NULL;
	soap_fault->soap_version = -1;
    return soap_fault;
}

AXIS2_EXTERN axiom_soap_fault_t *AXIS2_CALL
axiom_soap_fault_create_with_parent(
    const axutil_env_t * env,
    axiom_soap_body_t * body)
{
    axiom_soap_fault_t *soap_fault = NULL;
    axiom_element_t *this_ele = NULL;
    axiom_node_t *this_node = NULL;
    axiom_node_t *parent_node = NULL;
    axiom_element_t *parent_ele = NULL;
    axiom_namespace_t *parent_ns = NULL;

    AXIS2_PARAM_CHECK(env->error, body, NULL);

    soap_fault = axiom_soap_fault_create(env);
    if (!soap_fault)
    {
        return NULL;
    }
    parent_node = axiom_soap_body_get_base_node(body, env);
    if (!parent_node)
    {
        AXIS2_FREE(env->allocator, soap_fault);
        return NULL;
    }
    soap_fault->soap_version = axiom_soap_body_get_soap_version(body, env);

    parent_ele =
        (axiom_element_t *) axiom_node_get_data_element(parent_node, env);
    if (!parent_ele)
    {
        AXIS2_FREE(env->allocator, soap_fault);
        return NULL;
    }
    parent_ns = axiom_element_get_namespace(parent_ele, env, parent_node);

    this_ele = axiom_element_create(env,
                                    parent_node,
                                    AXIOM_SOAP_FAULT_LOCAL_NAME,
                                    parent_ns, &this_node);
    if (!this_ele)
    {
        AXIS2_FREE(env->allocator, soap_fault);
        return NULL;
    }

    soap_fault->om_ele_node = this_node;
    axiom_soap_body_set_fault(body, env, soap_fault);
    return soap_fault;
}

AXIS2_EXTERN axiom_soap_fault_t *AXIS2_CALL
axiom_soap_fault_create_with_exception(
    const axutil_env_t * env,
    axiom_soap_body_t * body,
    axis2_char_t * exception)
{
    axiom_soap_fault_t *soap_fault = NULL;
    axis2_status_t status = AXIS2_SUCCESS;
    AXIS2_PARAM_CHECK(env->error, body, NULL);
    AXIS2_PARAM_CHECK(env->error, exception, NULL);
    soap_fault = axiom_soap_fault_create_with_parent(env, body);
    if (!soap_fault)
    {
        return NULL;
    }
    status = axiom_soap_fault_set_exception(soap_fault, env, exception);
    if (status == AXIS2_FAILURE)
    {
        axiom_soap_fault_free(soap_fault, env);
        return NULL;
    }
    return soap_fault;
}

AXIS2_EXTERN void AXIS2_CALL
axiom_soap_fault_free(
    axiom_soap_fault_t * soap_fault,
    const axutil_env_t * env)
{

    if (soap_fault->fcode)
    {
        axiom_soap_fault_code_free(soap_fault->fcode, env);
        soap_fault->fcode = NULL;
    }
    if (soap_fault->fdetail)
    {
        axiom_soap_fault_detail_free(soap_fault->fdetail, env);
        soap_fault->fdetail = NULL;
    }
    if (soap_fault->fnode)
    {
        axiom_soap_fault_node_free(soap_fault->fnode, env);
        soap_fault->fnode = NULL;
    }
    if (soap_fault->freason)
    {
        axiom_soap_fault_reason_free(soap_fault->freason, env);
        soap_fault->freason = NULL;
    }
    if (soap_fault->frole)
    {
        axiom_soap_fault_role_free(soap_fault->frole, env);
        soap_fault->frole = NULL;
    }
    AXIS2_FREE(env->allocator, soap_fault);
    soap_fault = NULL;
    return;
}

AXIS2_EXTERN axis2_status_t AXIS2_CALL
axiom_soap_fault_set_code(
    axiom_soap_fault_t * soap_fault,
    const axutil_env_t * env,
    axiom_soap_fault_code_t * code)
{
    AXIS2_PARAM_CHECK(env->error, code, AXIS2_FAILURE);
    if (!(soap_fault->fcode))
    {
        soap_fault->fcode = code;
        return AXIS2_SUCCESS;
    }
    else
    {
        AXIS2_LOG_DEBUG(env->log,
                        AXIS2_LOG_SI,
                        "tring to set multiple code elements to soap_fault ");

    }
    return AXIS2_SUCCESS;
}

AXIS2_EXTERN axiom_soap_fault_code_t *AXIS2_CALL
axiom_soap_fault_get_code(
    axiom_soap_fault_t * soap_fault,
    const axutil_env_t * env)
{
    int status = AXIS2_SUCCESS;
    if (soap_fault->fcode)
    {
        return soap_fault->fcode;
    }
    else if (soap_fault->soap_builder)
    {
        while (!(soap_fault->fcode) &&
               !(axiom_node_is_complete(soap_fault->om_ele_node, env)))
        {
            status = axiom_soap_builder_next(soap_fault->soap_builder, env);
            if (status == AXIS2_FAILURE)
            {
                break;
            }
        }
    }
    return soap_fault->fcode;
}

AXIS2_EXTERN axis2_status_t AXIS2_CALL
axiom_soap_fault_set_reason(
    axiom_soap_fault_t * soap_fault,
    const axutil_env_t * env,
    axiom_soap_fault_reason_t * reason)
{
    AXIS2_PARAM_CHECK(env->error, reason, AXIS2_FAILURE);
    if (!(soap_fault->freason))
    {
        soap_fault->freason = reason;
        return AXIS2_SUCCESS;
    }
    else
    {
        AXIS2_LOG_DEBUG(env->log,
                        AXIS2_LOG_SI, "tring to set soap_fault reason twice");
    }
    return AXIS2_FAILURE;
}

AXIS2_EXTERN axiom_soap_fault_reason_t *AXIS2_CALL
axiom_soap_fault_get_reason(
    axiom_soap_fault_t * soap_fault,
    const axutil_env_t * env)
{
    int status = AXIS2_SUCCESS;
    if (soap_fault->freason)
    {
        return soap_fault->freason;
    }
    else if (soap_fault->soap_builder)
    {
        while (!(soap_fault->freason) &&
               !(axiom_node_is_complete(soap_fault->om_ele_node, env)))
        {
            status = axiom_soap_builder_next(soap_fault->soap_builder, env);
            if (status == AXIS2_FAILURE)
            {
                break;
            }
        }
    }
    return soap_fault->freason;
}

AXIS2_EXTERN axis2_status_t AXIS2_CALL
axiom_soap_fault_set_node(
    axiom_soap_fault_t * soap_fault,
    const axutil_env_t * env,
    axiom_soap_fault_node_t * node)
{
    AXIS2_PARAM_CHECK(env->error, node, AXIS2_FAILURE);
    if (!(soap_fault->fnode))
    {
        soap_fault->fnode = node;
        return AXIS2_SUCCESS;
    }
    else
    {
        AXIS2_LOG_DEBUG(env->log,
                        AXIS2_LOG_SI,
                        "tring to set soap_fault node more than once");
    }
    return AXIS2_FAILURE;
}

AXIS2_EXTERN axiom_soap_fault_node_t *AXIS2_CALL
axiom_soap_fault_get_node(
    axiom_soap_fault_t * soap_fault,
    const axutil_env_t * env)
{
    int status = AXIS2_SUCCESS;

    if (soap_fault->fnode)
    {
        return soap_fault->fnode;
    }
    else if (soap_fault->soap_builder)
    {
        while (!(soap_fault->fnode) &&
               !(axiom_node_is_complete(soap_fault->om_ele_node, env)))
        {
            status = axiom_soap_builder_next(soap_fault->soap_builder, env);
            if (status == AXIS2_FAILURE)
            {
                break;
            }
        }
    }
    return soap_fault->fnode;
}

AXIS2_EXTERN axis2_status_t AXIS2_CALL
axiom_soap_fault_set_role(
    axiom_soap_fault_t * soap_fault,
    const axutil_env_t * env,
    axiom_soap_fault_role_t * role)
{
    AXIS2_PARAM_CHECK(env->error, role, AXIS2_FAILURE);

    if (!(soap_fault->frole))
    {
        soap_fault->frole = role;
        return AXIS2_FAILURE;
    }
    else
    {
        AXIS2_LOG_DEBUG(env->log,
                        AXIS2_LOG_SI,
                        "tring to set soap_fault role more than once ");
    }
    return AXIS2_FAILURE;

}

AXIS2_EXTERN axiom_soap_fault_role_t *AXIS2_CALL
axiom_soap_fault_get_role(
    axiom_soap_fault_t * soap_fault,
    const axutil_env_t * env)
{
    int status = AXIS2_SUCCESS;
    if (soap_fault->frole)
    {
        return soap_fault->frole;
    }
    else if (soap_fault->soap_builder)
    {
        while (!(soap_fault->frole) &&
               !(axiom_node_is_complete(soap_fault->om_ele_node, env)))
        {
            status = axiom_soap_builder_next(soap_fault->soap_builder, env);
            if (status == AXIS2_FAILURE)
            {
                break;
            }
        }
    }
    return soap_fault->frole;
}

AXIS2_EXTERN axis2_status_t AXIS2_CALL
axiom_soap_fault_set_detail(
    axiom_soap_fault_t * soap_fault,
    const axutil_env_t * env,
    axiom_soap_fault_detail_t * detail)
{
    AXIS2_PARAM_CHECK(env->error, detail, AXIS2_FAILURE);

    if (!(soap_fault->fdetail))
    {
        soap_fault->fdetail = detail;
        return AXIS2_SUCCESS;
    }
    else
    {
        AXIS2_LOG_DEBUG(env->log,
                        AXIS2_LOG_SI,
                        " tring to set soap_fault detail more than once");

    }
    return AXIS2_FAILURE;
}

AXIS2_EXTERN axiom_soap_fault_detail_t *AXIS2_CALL
axiom_soap_fault_get_detail(
    axiom_soap_fault_t * soap_fault,
    const axutil_env_t * env)
{
    int status = AXIS2_SUCCESS;
    if (soap_fault->fdetail)
    {
        return soap_fault->fdetail;
    }
    else if (soap_fault->soap_builder)
    {
        while (!(soap_fault->fdetail) &&
               !(axiom_node_is_complete(soap_fault->om_ele_node, env)))
        {
            status = axiom_soap_builder_next(soap_fault->soap_builder, env);
            if (status == AXIS2_FAILURE)
            {
                break;
            }
        }
    }
    return soap_fault->fdetail;
}

AXIS2_EXTERN axis2_status_t AXIS2_CALL
axiom_soap_fault_set_base_node(
    axiom_soap_fault_t * soap_fault,
    const axutil_env_t * env,
    axiom_node_t * node)
{
    AXIS2_PARAM_CHECK(env->error, node, AXIS2_FAILURE);

    if (axiom_node_get_node_type(node, env) != AXIOM_ELEMENT)
    {
        AXIS2_HANDLE_ERROR(env, AXIS2_ERROR_INVALID_BASE_TYPE,
                        AXIS2_FAILURE);
        return AXIS2_FAILURE;
    }
    soap_fault->om_ele_node = node;
    return AXIS2_SUCCESS;

}

AXIS2_EXTERN axiom_node_t *AXIS2_CALL
axiom_soap_fault_get_base_node(
    axiom_soap_fault_t * soap_fault,
    const axutil_env_t * env)
{
    return soap_fault->om_ele_node;
}

AXIS2_EXTERN axis2_char_t *AXIS2_CALL
axiom_soap_fault_get_exception(
    axiom_soap_fault_t * soap_fault,
    const axutil_env_t * env)
{
    axiom_soap_fault_detail_t *detail = NULL;
    axiom_node_t *detail_node = NULL;
    axiom_element_t *detail_ele = NULL;
    axiom_node_t *exception_node = NULL;
    axiom_element_t *exception_ele = NULL;
    axutil_qname_t *qn = NULL;
    axis2_char_t *excep = NULL;

    detail = axiom_soap_fault_get_detail(soap_fault, env);
    if (!detail)
    {
        return NULL;
    }
    detail_node = axiom_soap_fault_detail_get_base_node(detail, env);
    if (detail_node)
    {
        detail_ele =
            (axiom_element_t *) axiom_node_get_data_element(detail_node, env);

        qn = axutil_qname_create(env,
                                 AXIOM_SOAP_FAULT_DETAIL_EXCEPTION_ENTRY, NULL,
                                 NULL);
        if (qn)
        {
            exception_ele =
                axiom_element_get_first_child_with_qname(detail_ele, env, qn,
                                                         detail_node,
                                                         &exception_node);
            axutil_qname_free(qn, env);
            if (exception_ele)
            {
                excep =
                    axiom_element_get_text(exception_ele, env, exception_node);
            }
            return excep;
        }
    }
    return NULL;
}

AXIS2_EXTERN axis2_status_t AXIS2_CALL
axiom_soap_fault_set_exception(
    axiom_soap_fault_t * soap_fault,
    const axutil_env_t * env,
    axis2_char_t * exception)
{
    axiom_soap_fault_detail_t *detail = NULL;
    axiom_node_t *fault_detail_entry_node = NULL;
    axiom_element_t *fault_detail_ele = NULL;


    AXIS2_PARAM_CHECK(env->error, exception, AXIS2_FAILURE);

    detail = axiom_soap_fault_get_detail(soap_fault, env);

    if (!detail)
    {
        detail = axiom_soap_fault_detail_create_with_parent(env, soap_fault);
        if (!detail)
        {
            return AXIS2_FAILURE;
        }
    }

    /** create an om element with the exception enrty */

    fault_detail_ele = axiom_element_create(env, NULL,
                                            AXIOM_SOAP_FAULT_DETAIL_EXCEPTION_ENTRY,
                                            NULL, &fault_detail_entry_node);
    if (!fault_detail_ele)
    {
        return AXIS2_FAILURE;
    }

    /** set the exception string as a text node of newly created om element */
    axiom_element_set_text(fault_detail_ele,
                           env, exception, fault_detail_entry_node);

    /** now add this om element as a child of soap soap_fault detail om element node */
    return axiom_soap_fault_detail_add_detail_entry(detail, env,
                                                    fault_detail_entry_node);
}

AXIS2_EXTERN axis2_status_t AXIS2_CALL
axiom_soap_fault_set_builder(
    axiom_soap_fault_t * soap_fault,
    const axutil_env_t * env,
    axiom_soap_builder_t * builder)
{
    AXIS2_PARAM_CHECK(env->error, builder, AXIS2_FAILURE);
    soap_fault->soap_builder = builder;
    return AXIS2_SUCCESS;
}

AXIS2_EXTERN axiom_soap_fault_t *AXIS2_CALL
axiom_soap_fault_create_default_fault(
    const axutil_env_t * env,
    struct axiom_soap_body * parent,
    const axis2_char_t * code_value,
    const axis2_char_t * reason_text,
    const int soap_version)
{
    axiom_soap_fault_t *soap_fault = NULL;
    axiom_node_t *fault_node = NULL;

    axiom_soap_fault_code_t *soap_fault_code = NULL;
    axiom_soap_fault_value_t *soap_fault_value = NULL;

    axiom_soap_fault_reason_t *soap_fault_reason = NULL;
    axiom_soap_fault_text_t *soap_fault_text = NULL;

    axiom_node_t *value_node = NULL;
    axiom_element_t *value_ele = NULL;

    axiom_node_t *text_node = NULL;
    axiom_element_t *text_ele = NULL;

    AXIS2_PARAM_CHECK(env->error, code_value, NULL);
    AXIS2_PARAM_CHECK(env->error, reason_text, NULL);

    soap_fault = axiom_soap_fault_create_with_parent(env, parent);
    if (!soap_fault)
    {
        return NULL;
    }
    fault_node = axiom_soap_fault_get_base_node(soap_fault, env);
    if (!fault_node)
    {
        axiom_soap_fault_free(soap_fault, env);
        return NULL;
    }

    soap_fault_code = axiom_soap_fault_code_create_with_parent(env, soap_fault);
    if (!soap_fault_code)
    {
        axiom_soap_fault_free(soap_fault, env);
        axiom_node_free_tree(fault_node, env);
        return NULL;
    }
    soap_fault_reason =
        axiom_soap_fault_reason_create_with_parent(env, soap_fault);
    if (!soap_fault_reason)
    {
        axiom_soap_fault_free(soap_fault, env);
        axiom_node_free_tree(fault_node, env);
        return NULL;
    }

    soap_fault_value =
        axiom_soap_fault_value_create_with_code(env, soap_fault_code);
    if (!soap_fault_value)
    {
        axiom_soap_fault_free(soap_fault, env);
        axiom_node_free_tree(fault_node, env);
        return NULL;
    }

    value_node = axiom_soap_fault_value_get_base_node(soap_fault_value, env);
    if (!value_node)
    {
        return NULL;
    }
    value_ele =
        (axiom_element_t *) axiom_node_get_data_element(value_node, env);

    axiom_element_set_text(value_ele, env, code_value, value_node);

    soap_fault_text =
        axiom_soap_fault_text_create_with_parent(env, soap_fault_reason);
    if (!soap_fault_text)
    {
        axiom_soap_fault_free(soap_fault, env);
        axiom_node_free_tree(fault_node, env);
        return NULL;
    }
    axiom_soap_fault_text_set_lang(soap_fault_text, env, "en");

    text_node = axiom_soap_fault_text_get_base_node(soap_fault_text, env);
    if (!text_node)
    {
        return NULL;
    }
    text_ele = (axiom_element_t *) axiom_node_get_data_element(text_node, env);

    axiom_element_set_text(text_ele, env, reason_text, text_node);

    return soap_fault;
}

AXIS2_EXTERN axis2_status_t AXIS2_CALL
axiom_soap_fault_set_soap_version(
    axiom_soap_fault_t * soap_fault,
    const axutil_env_t * env,
    int soap_version)
{
    soap_fault->soap_version = soap_version;
    return AXIS2_SUCCESS;
}

AXIS2_EXTERN int AXIS2_CALL
axiom_soap_fault_get_soap_version(
    axiom_soap_fault_t * soap_fault,
    const axutil_env_t * env)
{
    return soap_fault->soap_version;
}


<|start_filename|>xdocs/api/html/group__rp__transport__binding.html<|end_filename|>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html><head><meta http-equiv="Content-Type" content="text/html;charset=UTF-8">
<title>Axis2/C: Rp_transport_binding</title>
<link href="doxygen.css" rel="stylesheet" type="text/css">
<link href="tabs.css" rel="stylesheet" type="text/css">
</head><body>
<!-- Generated by Doxygen 1.5.3 -->
<div class="tabs">
  <ul>
    <li><a href="index.html"><span>Main&nbsp;Page</span></a></li>
    <li><a href="modules.html"><span>Modules</span></a></li>
    <li><a href="annotated.html"><span>Classes</span></a></li>
    <li><a href="files.html"><span>Files</span></a></li>
    <li><a href="dirs.html"><span>Directories</span></a></li>
    <li><a href="pages.html"><span>Related&nbsp;Pages</span></a></li>
    <li><a href="examples.html"><span>Examples</span></a></li>
    <li>
      <form action="search.php" method="get">
        <table cellspacing="0" cellpadding="0" border="0">
          <tr>
            <td><label>&nbsp;<u>S</u>earch&nbsp;for&nbsp;</label></td>
            <td><input type="text" name="query" value="" size="20" accesskey="s"/></td>
          </tr>
        </table>
      </form>
    </li>
  </ul>
</div>
<h1>Rp_transport_binding</h1><table border="0" cellpadding="0" cellspacing="0">
<tr><td></td></tr>
<tr><td colspan="2"><br><h2>Typedefs</h2></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="g7450f1b044ab391238a9a425635afc49"></a><!-- doxytag: member="rp_transport_binding::rp_transport_binding_t" ref="g7450f1b044ab391238a9a425635afc49" args="" -->
typedef struct <br>
rp_transport_binding_t&nbsp;</td><td class="memItemRight" valign="bottom"><b>rp_transport_binding_t</b></td></tr>

<tr><td colspan="2"><br><h2>Functions</h2></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="gb1c73ce8894f5a541ccd26f18779707e"></a><!-- doxytag: member="rp_transport_binding::rp_transport_binding_create" ref="gb1c73ce8894f5a541ccd26f18779707e" args="(const axutil_env_t *env)" -->
AXIS2_EXTERN <br>
rp_transport_binding_t *&nbsp;</td><td class="memItemRight" valign="bottom"><b>rp_transport_binding_create</b> (const <a class="el" href="structaxutil__env.html">axutil_env_t</a> *env)</td></tr>

<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="g09ff70f1f1d9ac895863d387eead27bd"></a><!-- doxytag: member="rp_transport_binding::rp_transport_binding_free" ref="g09ff70f1f1d9ac895863d387eead27bd" args="(rp_transport_binding_t *transport_binding, const axutil_env_t *env)" -->
AXIS2_EXTERN void&nbsp;</td><td class="memItemRight" valign="bottom"><b>rp_transport_binding_free</b> (rp_transport_binding_t *transport_binding, const <a class="el" href="structaxutil__env.html">axutil_env_t</a> *env)</td></tr>

<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="g902d7ebf985db6e0184782014590ec46"></a><!-- doxytag: member="rp_transport_binding::rp_transport_binding_get_binding_commons" ref="g902d7ebf985db6e0184782014590ec46" args="(rp_transport_binding_t *transport_binding, const axutil_env_t *env)" -->
AXIS2_EXTERN <br>
rp_binding_commons_t *&nbsp;</td><td class="memItemRight" valign="bottom"><b>rp_transport_binding_get_binding_commons</b> (rp_transport_binding_t *transport_binding, const <a class="el" href="structaxutil__env.html">axutil_env_t</a> *env)</td></tr>

<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="gefd044aecea7a83404a2aac21e5052cc"></a><!-- doxytag: member="rp_transport_binding::rp_transport_binding_set_binding_commons" ref="gefd044aecea7a83404a2aac21e5052cc" args="(rp_transport_binding_t *transport_binding, const axutil_env_t *env, rp_binding_commons_t *binding_commons)" -->
AXIS2_EXTERN <br>
axis2_status_t&nbsp;</td><td class="memItemRight" valign="bottom"><b>rp_transport_binding_set_binding_commons</b> (rp_transport_binding_t *transport_binding, const <a class="el" href="structaxutil__env.html">axutil_env_t</a> *env, rp_binding_commons_t *binding_commons)</td></tr>

<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="g4874b5ac8783298164b4882819d40655"></a><!-- doxytag: member="rp_transport_binding::rp_transport_binding_set_transport_token" ref="g4874b5ac8783298164b4882819d40655" args="(rp_transport_binding_t *transport_binding, const axutil_env_t *env, rp_property_t *transport_token)" -->
AXIS2_EXTERN <br>
axis2_status_t&nbsp;</td><td class="memItemRight" valign="bottom"><b>rp_transport_binding_set_transport_token</b> (rp_transport_binding_t *transport_binding, const <a class="el" href="structaxutil__env.html">axutil_env_t</a> *env, rp_property_t *transport_token)</td></tr>

<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="g30d67ebb0ea5fd1b7277cc0d843cb51e"></a><!-- doxytag: member="rp_transport_binding::rp_transport_binding_get_transport_token" ref="g30d67ebb0ea5fd1b7277cc0d843cb51e" args="(rp_transport_binding_t *transport_binding, const axutil_env_t *env)" -->
AXIS2_EXTERN <br>
rp_property_t *&nbsp;</td><td class="memItemRight" valign="bottom"><b>rp_transport_binding_get_transport_token</b> (rp_transport_binding_t *transport_binding, const <a class="el" href="structaxutil__env.html">axutil_env_t</a> *env)</td></tr>

<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="ge158dc3bd43c65e953f98d698454c83c"></a><!-- doxytag: member="rp_transport_binding::rp_transport_binding_increment_ref" ref="ge158dc3bd43c65e953f98d698454c83c" args="(rp_transport_binding_t *tansport_binding, const axutil_env_t *env)" -->
AXIS2_EXTERN <br>
axis2_status_t&nbsp;</td><td class="memItemRight" valign="bottom"><b>rp_transport_binding_increment_ref</b> (rp_transport_binding_t *tansport_binding, const <a class="el" href="structaxutil__env.html">axutil_env_t</a> *env)</td></tr>

</table>
<hr size="1"><address style="text-align: right;"><small>Generated on Fri Apr 17 11:49:47 2009 for Axis2/C by&nbsp;
<a href="http://www.doxygen.org/index.html">
<img src="doxygen.png" alt="doxygen" align="middle" border="0"></a> 1.5.3 </small></address>
</body>
</html>


<|start_filename|>xdocs/api/html/group__axis2__policy__include.html<|end_filename|>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html><head><meta http-equiv="Content-Type" content="text/html;charset=UTF-8">
<title>Axis2/C: policy include</title>
<link href="doxygen.css" rel="stylesheet" type="text/css">
<link href="tabs.css" rel="stylesheet" type="text/css">
</head><body>
<!-- Generated by Doxygen 1.5.3 -->
<div class="tabs">
  <ul>
    <li><a href="index.html"><span>Main&nbsp;Page</span></a></li>
    <li><a href="modules.html"><span>Modules</span></a></li>
    <li><a href="annotated.html"><span>Classes</span></a></li>
    <li><a href="files.html"><span>Files</span></a></li>
    <li><a href="dirs.html"><span>Directories</span></a></li>
    <li><a href="pages.html"><span>Related&nbsp;Pages</span></a></li>
    <li><a href="examples.html"><span>Examples</span></a></li>
    <li>
      <form action="search.php" method="get">
        <table cellspacing="0" cellpadding="0" border="0">
          <tr>
            <td><label>&nbsp;<u>S</u>earch&nbsp;for&nbsp;</label></td>
            <td><input type="text" name="query" value="" size="20" accesskey="s"/></td>
          </tr>
        </table>
      </form>
    </li>
  </ul>
</div>
<h1>policy include<br>
<small>
[<a class="el" href="group__axis2__desc.html">description</a>]</small>
</h1><table border="0" cellpadding="0" cellspacing="0">
<tr><td></td></tr>
<tr><td colspan="2"><br><h2>Typedefs</h2></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top">typedef struct <br>
axis2_policy_include&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__axis2__policy__include.html#gb5e52f7f3e7c7736ee9b658f58ab6106">axis2_policy_include_t</a></td></tr>

<tr><td colspan="2"><br><h2>Enumerations</h2></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top">enum &nbsp;</td><td class="memItemRight" valign="bottom"><b>axis2_policy_types</b> { <br>
&nbsp;&nbsp;<b>AXIS2_POLICY</b> =  0, 
<b>AXIS2_MODULE_POLICY</b>, 
<b>AXIS2_SERVICE_POLICY</b>, 
<b>AXIS2_OPERATION_POLICY</b>, 
<br>
&nbsp;&nbsp;<b>AXIS2_MESSAGE_POLICY</b>, 
<b>AXIS2_PORT_POLICY</b>, 
<b>AXIS2_PORT_TYPE_POLICY</b>, 
<b>AXIS2_BINDING_POLICY</b>, 
<br>
&nbsp;&nbsp;<b>AXIS2_BINDING_OPERATION_POLICY</b>, 
<b>AXIS2_INPUT_POLICY</b>, 
<b>AXIS2_OUTPUT_POLICY</b>, 
<b>AXIS2_BINDING_INPUT_POLICY</b>, 
<br>
&nbsp;&nbsp;<b>AXIS2_BINDING_OUTPUT_POLICY</b>, 
<b>AXIS2_MODULE_OPERATION_POLICY</b>, 
<b>AXIS2_POLICY_REF</b>, 
<b>AXIS2_ANON_POLICY</b>
<br>
 }</td></tr>

<tr><td colspan="2"><br><h2>Functions</h2></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top">AXIS2_EXTERN <br>
<a class="el" href="group__axis2__policy__include.html#gb5e52f7f3e7c7736ee9b658f58ab6106">axis2_policy_include_t</a> *&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__axis2__policy__include.html#g2c111101ec579191588807b7668123aa">axis2_policy_include_create</a> (const <a class="el" href="structaxutil__env.html">axutil_env_t</a> *env)</td></tr>

<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="gd1e15e759b63a9ffeeef0204840e5f68"></a><!-- doxytag: member="axis2_policy_include::axis2_policy_include_create_with_desc" ref="gd1e15e759b63a9ffeeef0204840e5f68" args="(const axutil_env_t *env, axis2_desc_t *desc)" -->
AXIS2_EXTERN <br>
<a class="el" href="group__axis2__policy__include.html#gb5e52f7f3e7c7736ee9b658f58ab6106">axis2_policy_include_t</a> *&nbsp;</td><td class="memItemRight" valign="bottom"><b>axis2_policy_include_create_with_desc</b> (const <a class="el" href="structaxutil__env.html">axutil_env_t</a> *env, <a class="el" href="group__axis2__description.html#g9bbf771ae43a8364c5f453c7077f0f1e">axis2_desc_t</a> *desc)</td></tr>

<tr><td class="memItemLeft" nowrap align="right" valign="top">AXIS2_EXTERN void&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__axis2__policy__include.html#g491a884eab1c3783e77a70dd1ca84eff">axis2_policy_include_free</a> (<a class="el" href="group__axis2__policy__include.html#gb5e52f7f3e7c7736ee9b658f58ab6106">axis2_policy_include_t</a> *policy_include, const <a class="el" href="structaxutil__env.html">axutil_env_t</a> *env)</td></tr>

<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="g4faeec17b7e678fb8270cce468a82a6e"></a><!-- doxytag: member="axis2_policy_include::axis2_policy_include_set_registry" ref="g4faeec17b7e678fb8270cce468a82a6e" args="(axis2_policy_include_t *policy_include, const axutil_env_t *env, neethi_registry_t *registry)" -->
AXIS2_EXTERN <br>
axis2_status_t&nbsp;</td><td class="memItemRight" valign="bottom"><b>axis2_policy_include_set_registry</b> (<a class="el" href="group__axis2__policy__include.html#gb5e52f7f3e7c7736ee9b658f58ab6106">axis2_policy_include_t</a> *policy_include, const <a class="el" href="structaxutil__env.html">axutil_env_t</a> *env, neethi_registry_t *registry)</td></tr>

<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="g96eb428aa54bcddbabf6845ef42c2309"></a><!-- doxytag: member="axis2_policy_include::axis2_policy_include_get_registry" ref="g96eb428aa54bcddbabf6845ef42c2309" args="(axis2_policy_include_t *policy_include, const axutil_env_t *env)" -->
AXIS2_EXTERN <br>
neethi_registry_t *&nbsp;</td><td class="memItemRight" valign="bottom"><b>axis2_policy_include_get_registry</b> (<a class="el" href="group__axis2__policy__include.html#gb5e52f7f3e7c7736ee9b658f58ab6106">axis2_policy_include_t</a> *policy_include, const <a class="el" href="structaxutil__env.html">axutil_env_t</a> *env)</td></tr>

<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="g33f8fd9e2b35216264f0260bac19249c"></a><!-- doxytag: member="axis2_policy_include::axis2_policy_include_set_policy" ref="g33f8fd9e2b35216264f0260bac19249c" args="(axis2_policy_include_t *policy_include, const axutil_env_t *env, neethi_policy_t *policy)" -->
AXIS2_EXTERN <br>
axis2_status_t&nbsp;</td><td class="memItemRight" valign="bottom"><b>axis2_policy_include_set_policy</b> (<a class="el" href="group__axis2__policy__include.html#gb5e52f7f3e7c7736ee9b658f58ab6106">axis2_policy_include_t</a> *policy_include, const <a class="el" href="structaxutil__env.html">axutil_env_t</a> *env, neethi_policy_t *policy)</td></tr>

<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="g98e06942554456a1e3e97c8f634782ce"></a><!-- doxytag: member="axis2_policy_include::axis2_policy_include_update_policy" ref="g98e06942554456a1e3e97c8f634782ce" args="(axis2_policy_include_t *policy_include, const axutil_env_t *env, neethi_policy_t *policy)" -->
AXIS2_EXTERN <br>
axis2_status_t&nbsp;</td><td class="memItemRight" valign="bottom"><b>axis2_policy_include_update_policy</b> (<a class="el" href="group__axis2__policy__include.html#gb5e52f7f3e7c7736ee9b658f58ab6106">axis2_policy_include_t</a> *policy_include, const <a class="el" href="structaxutil__env.html">axutil_env_t</a> *env, neethi_policy_t *policy)</td></tr>

<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="ge60afd09f21dd190afc42dd5e10980b3"></a><!-- doxytag: member="axis2_policy_include::axis2_policy_include_set_effective_policy" ref="ge60afd09f21dd190afc42dd5e10980b3" args="(axis2_policy_include_t *policy_include, const axutil_env_t *env, neethi_policy_t *effective_policy)" -->
AXIS2_EXTERN <br>
axis2_status_t&nbsp;</td><td class="memItemRight" valign="bottom"><b>axis2_policy_include_set_effective_policy</b> (<a class="el" href="group__axis2__policy__include.html#gb5e52f7f3e7c7736ee9b658f58ab6106">axis2_policy_include_t</a> *policy_include, const <a class="el" href="structaxutil__env.html">axutil_env_t</a> *env, neethi_policy_t *effective_policy)</td></tr>

<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="g74ece6e400cf08be2b48c0248a55a53c"></a><!-- doxytag: member="axis2_policy_include::axis2_policy_include_set_desc" ref="g74ece6e400cf08be2b48c0248a55a53c" args="(axis2_policy_include_t *policy_include, const axutil_env_t *env, axis2_desc_t *desc)" -->
AXIS2_EXTERN <br>
axis2_status_t&nbsp;</td><td class="memItemRight" valign="bottom"><b>axis2_policy_include_set_desc</b> (<a class="el" href="group__axis2__policy__include.html#gb5e52f7f3e7c7736ee9b658f58ab6106">axis2_policy_include_t</a> *policy_include, const <a class="el" href="structaxutil__env.html">axutil_env_t</a> *env, <a class="el" href="group__axis2__description.html#g9bbf771ae43a8364c5f453c7077f0f1e">axis2_desc_t</a> *desc)</td></tr>

<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="g62d08920cfb650a0721c52dd10db56bf"></a><!-- doxytag: member="axis2_policy_include::axis2_policy_include_get_desc" ref="g62d08920cfb650a0721c52dd10db56bf" args="(axis2_policy_include_t *policy_include, const axutil_env_t *env)" -->
AXIS2_EXTERN <br>
<a class="el" href="group__axis2__description.html#g9bbf771ae43a8364c5f453c7077f0f1e">axis2_desc_t</a> *&nbsp;</td><td class="memItemRight" valign="bottom"><b>axis2_policy_include_get_desc</b> (<a class="el" href="group__axis2__policy__include.html#gb5e52f7f3e7c7736ee9b658f58ab6106">axis2_policy_include_t</a> *policy_include, const <a class="el" href="structaxutil__env.html">axutil_env_t</a> *env)</td></tr>

<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="gd25c0fdf48600247429665ed40f07220"></a><!-- doxytag: member="axis2_policy_include::axis2_policy_include_get_parent" ref="gd25c0fdf48600247429665ed40f07220" args="(axis2_policy_include_t *policy_include, const axutil_env_t *env)" -->
AXIS2_EXTERN <br>
<a class="el" href="group__axis2__policy__include.html#gb5e52f7f3e7c7736ee9b658f58ab6106">axis2_policy_include_t</a> *&nbsp;</td><td class="memItemRight" valign="bottom"><b>axis2_policy_include_get_parent</b> (<a class="el" href="group__axis2__policy__include.html#gb5e52f7f3e7c7736ee9b658f58ab6106">axis2_policy_include_t</a> *policy_include, const <a class="el" href="structaxutil__env.html">axutil_env_t</a> *env)</td></tr>

<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="g58c8662b6086a3bd3b9b89be604f6a79"></a><!-- doxytag: member="axis2_policy_include::axis2_policy_include_get_policy" ref="g58c8662b6086a3bd3b9b89be604f6a79" args="(axis2_policy_include_t *policy_include, const axutil_env_t *env)" -->
AXIS2_EXTERN <br>
neethi_policy_t *&nbsp;</td><td class="memItemRight" valign="bottom"><b>axis2_policy_include_get_policy</b> (<a class="el" href="group__axis2__policy__include.html#gb5e52f7f3e7c7736ee9b658f58ab6106">axis2_policy_include_t</a> *policy_include, const <a class="el" href="structaxutil__env.html">axutil_env_t</a> *env)</td></tr>

<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="g91990578717b1504852e62f78179ee48"></a><!-- doxytag: member="axis2_policy_include::axis2_policy_include_get_effective_policy" ref="g91990578717b1504852e62f78179ee48" args="(axis2_policy_include_t *policy_include, const axutil_env_t *env)" -->
AXIS2_EXTERN <br>
neethi_policy_t *&nbsp;</td><td class="memItemRight" valign="bottom"><b>axis2_policy_include_get_effective_policy</b> (<a class="el" href="group__axis2__policy__include.html#gb5e52f7f3e7c7736ee9b658f58ab6106">axis2_policy_include_t</a> *policy_include, const <a class="el" href="structaxutil__env.html">axutil_env_t</a> *env)</td></tr>

<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="g18de6c808a308e7396935642dc0d1df2"></a><!-- doxytag: member="axis2_policy_include::axis2_policy_include_get_policy_elements" ref="g18de6c808a308e7396935642dc0d1df2" args="(axis2_policy_include_t *policy_include, const axutil_env_t *env)" -->
AXIS2_EXTERN <br>
<a class="el" href="group__axutil__array__list.html#g1a6a89777db876cfa0cc86787b7be6a0">axutil_array_list_t</a> *&nbsp;</td><td class="memItemRight" valign="bottom"><b>axis2_policy_include_get_policy_elements</b> (<a class="el" href="group__axis2__policy__include.html#gb5e52f7f3e7c7736ee9b658f58ab6106">axis2_policy_include_t</a> *policy_include, const <a class="el" href="structaxutil__env.html">axutil_env_t</a> *env)</td></tr>

<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="g50e638614fd18069ee9cae3fd9ace82c"></a><!-- doxytag: member="axis2_policy_include::axis2_policy_include_get_policy_elements_with_type" ref="g50e638614fd18069ee9cae3fd9ace82c" args="(axis2_policy_include_t *policy_include, const axutil_env_t *env, int type)" -->
AXIS2_EXTERN <br>
<a class="el" href="group__axutil__array__list.html#g1a6a89777db876cfa0cc86787b7be6a0">axutil_array_list_t</a> *&nbsp;</td><td class="memItemRight" valign="bottom"><b>axis2_policy_include_get_policy_elements_with_type</b> (<a class="el" href="group__axis2__policy__include.html#gb5e52f7f3e7c7736ee9b658f58ab6106">axis2_policy_include_t</a> *policy_include, const <a class="el" href="structaxutil__env.html">axutil_env_t</a> *env, int type)</td></tr>

<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="g0b43923c8bdb7e33cdd95ba3787312a2"></a><!-- doxytag: member="axis2_policy_include::axis2_policy_include_register_policy" ref="g0b43923c8bdb7e33cdd95ba3787312a2" args="(axis2_policy_include_t *policy_include, const axutil_env_t *env, axis2_char_t *key, neethi_policy_t *effective_policy)" -->
AXIS2_EXTERN <br>
axis2_status_t&nbsp;</td><td class="memItemRight" valign="bottom"><b>axis2_policy_include_register_policy</b> (<a class="el" href="group__axis2__policy__include.html#gb5e52f7f3e7c7736ee9b658f58ab6106">axis2_policy_include_t</a> *policy_include, const <a class="el" href="structaxutil__env.html">axutil_env_t</a> *env, axis2_char_t *key, neethi_policy_t *effective_policy)</td></tr>

<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="g6a247e40a974fd84871c7a26acc14d61"></a><!-- doxytag: member="axis2_policy_include::axis2_policy_include_get_policy_with_key" ref="g6a247e40a974fd84871c7a26acc14d61" args="(axis2_policy_include_t *policy_include, const axutil_env_t *env, axis2_char_t *key)" -->
AXIS2_EXTERN <br>
neethi_policy_t *&nbsp;</td><td class="memItemRight" valign="bottom"><b>axis2_policy_include_get_policy_with_key</b> (<a class="el" href="group__axis2__policy__include.html#gb5e52f7f3e7c7736ee9b658f58ab6106">axis2_policy_include_t</a> *policy_include, const <a class="el" href="structaxutil__env.html">axutil_env_t</a> *env, axis2_char_t *key)</td></tr>

<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="ga0251ea676df200e02b78b66471e0394"></a><!-- doxytag: member="axis2_policy_include::axis2_policy_include_add_policy_element" ref="ga0251ea676df200e02b78b66471e0394" args="(axis2_policy_include_t *policy_include, const axutil_env_t *env, int type, neethi_policy_t *policy)" -->
AXIS2_EXTERN <br>
axis2_status_t&nbsp;</td><td class="memItemRight" valign="bottom"><b>axis2_policy_include_add_policy_element</b> (<a class="el" href="group__axis2__policy__include.html#gb5e52f7f3e7c7736ee9b658f58ab6106">axis2_policy_include_t</a> *policy_include, const <a class="el" href="structaxutil__env.html">axutil_env_t</a> *env, int type, neethi_policy_t *policy)</td></tr>

<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="g02393d023d95c5682c6de4c594cd5515"></a><!-- doxytag: member="axis2_policy_include::axis2_policy_include_add_policy_reference_element" ref="g02393d023d95c5682c6de4c594cd5515" args="(axis2_policy_include_t *policy_include, const axutil_env_t *env, int type, neethi_reference_t *reference)" -->
AXIS2_EXTERN <br>
axis2_status_t&nbsp;</td><td class="memItemRight" valign="bottom"><b>axis2_policy_include_add_policy_reference_element</b> (<a class="el" href="group__axis2__policy__include.html#gb5e52f7f3e7c7736ee9b658f58ab6106">axis2_policy_include_t</a> *policy_include, const <a class="el" href="structaxutil__env.html">axutil_env_t</a> *env, int type, neethi_reference_t *reference)</td></tr>

<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="g1262bf59204bfca211f7e2c5c8993600"></a><!-- doxytag: member="axis2_policy_include::axis2_policy_include_remove_policy_element" ref="g1262bf59204bfca211f7e2c5c8993600" args="(axis2_policy_include_t *policy_include, const axutil_env_t *env, axis2_char_t *policy_uri)" -->
AXIS2_EXTERN <br>
axis2_status_t&nbsp;</td><td class="memItemRight" valign="bottom"><b>axis2_policy_include_remove_policy_element</b> (<a class="el" href="group__axis2__policy__include.html#gb5e52f7f3e7c7736ee9b658f58ab6106">axis2_policy_include_t</a> *policy_include, const <a class="el" href="structaxutil__env.html">axutil_env_t</a> *env, axis2_char_t *policy_uri)</td></tr>

<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="g294f37ee0b2109338ceb97765b341dd6"></a><!-- doxytag: member="axis2_policy_include::axis2_policy_include_remove_all_policy_element" ref="g294f37ee0b2109338ceb97765b341dd6" args="(axis2_policy_include_t *policy_include, const axutil_env_t *env)" -->
AXIS2_EXTERN <br>
axis2_status_t&nbsp;</td><td class="memItemRight" valign="bottom"><b>axis2_policy_include_remove_all_policy_element</b> (<a class="el" href="group__axis2__policy__include.html#gb5e52f7f3e7c7736ee9b658f58ab6106">axis2_policy_include_t</a> *policy_include, const <a class="el" href="structaxutil__env.html">axutil_env_t</a> *env)</td></tr>

</table>
<hr><h2>Typedef Documentation</h2>
<a class="anchor" name="gb5e52f7f3e7c7736ee9b658f58ab6106"></a><!-- doxytag: member="axis2_policy_include.h::axis2_policy_include_t" ref="gb5e52f7f3e7c7736ee9b658f58ab6106" args="" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">typedef struct axis2_policy_include <a class="el" href="group__axis2__policy__include.html#gb5e52f7f3e7c7736ee9b658f58ab6106">axis2_policy_include_t</a>          </td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
Type name for struct axis2_policy_include 
</div>
</div><p>
<hr><h2>Function Documentation</h2>
<a class="anchor" name="g2c111101ec579191588807b7668123aa"></a><!-- doxytag: member="axis2_policy_include.h::axis2_policy_include_create" ref="g2c111101ec579191588807b7668123aa" args="(const axutil_env_t *env)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">AXIS2_EXTERN <a class="el" href="group__axis2__policy__include.html#gb5e52f7f3e7c7736ee9b658f58ab6106">axis2_policy_include_t</a>* axis2_policy_include_create           </td>
          <td>(</td>
          <td class="paramtype">const <a class="el" href="structaxutil__env.html">axutil_env_t</a> *&nbsp;</td>
          <td class="paramname"> <em>env</em>          </td>
          <td>&nbsp;)&nbsp;</td>
          <td width="100%"></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
Creates policy include struct. <dl compact><dt><b>Parameters:</b></dt><dd>
  <table border="0" cellspacing="2" cellpadding="0">
    <tr><td valign="top"></td><td valign="top"><em>env</em>&nbsp;</td><td>pointer to environment struct </td></tr>
  </table>
</dl>
<dl class="return" compact><dt><b>Returns:</b></dt><dd>pointer to newly created policy include </dd></dl>

</div>
</div><p>
<a class="anchor" name="g491a884eab1c3783e77a70dd1ca84eff"></a><!-- doxytag: member="axis2_policy_include.h::axis2_policy_include_free" ref="g491a884eab1c3783e77a70dd1ca84eff" args="(axis2_policy_include_t *policy_include, const axutil_env_t *env)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">AXIS2_EXTERN void axis2_policy_include_free           </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="group__axis2__policy__include.html#gb5e52f7f3e7c7736ee9b658f58ab6106">axis2_policy_include_t</a> *&nbsp;</td>
          <td class="paramname"> <em>policy_include</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const <a class="el" href="structaxutil__env.html">axutil_env_t</a> *&nbsp;</td>
          <td class="paramname"> <em>env</em></td><td>&nbsp;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td><td width="100%"></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
Frees policy include. <dl compact><dt><b>Parameters:</b></dt><dd>
  <table border="0" cellspacing="2" cellpadding="0">
    <tr><td valign="top"></td><td valign="top"><em>policy_include</em>&nbsp;</td><td>pointer to policy include </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>env</em>&nbsp;</td><td>pointer to environment struct </td></tr>
  </table>
</dl>
<dl class="return" compact><dt><b>Returns:</b></dt><dd>void </dd></dl>

</div>
</div><p>
<hr size="1"><address style="text-align: right;"><small>Generated on Fri Apr 17 11:49:45 2009 for Axis2/C by&nbsp;
<a href="http://www.doxygen.org/index.html">
<img src="doxygen.png" alt="doxygen" align="middle" border="0"></a> 1.5.3 </small></address>
</body>
</html>


<|start_filename|>util/test/stack/stack_test.c<|end_filename|>
#include "../util/create_env.h"
#include <axutil_stack.h>

axis2_status_t test_stack(axutil_env_t * env, char * value)
{
    axutil_stack_t * stack = NULL;
    axis2_status_t status = AXIS2_FAILURE;
    stack = axutil_stack_create(env);
    void * get_value = NULL;
    if (!stack)
    {
        printf("Creation of stack failed");
        return AXIS2_FAILURE;
    }
    status = axutil_stack_push(stack,env,(void *)value);
    if (status != AXIS2_SUCCESS)
    {
        printf("Adding value to stack failed");
        axutil_stack_free(stack,env);
        return AXIS2_FAILURE;
    }
    if (axutil_stack_size(stack,env) != 1)
    {
        printf("Incorrect size of stack is reported");
        axutil_stack_free(stack,env);
        return AXIS2_FAILURE;
    }
    if (value != (char *)axutil_stack_get(stack,env))
    {
        printf("Stack returns incorrect object");
        axutil_stack_free(stack,env);
        return AXIS2_FAILURE;
    }
    get_value = axutil_stack_get_at(stack,env,0);
    printf("The value of stack is %s",(char *)get_value);
    if (value != (char *)axutil_stack_pop(stack,env))
    {
        printf("Stack returns incorrect object");
        axutil_stack_free(stack,env);
        return AXIS2_FAILURE;
    }
    if (axutil_stack_size(stack,env) != 0)
    {
        printf("Incorrect size of stack is reported");
        axutil_stack_free(stack,env);
        return AXIS2_FAILURE;
    }
    if(stack)
    {
        axutil_stack_free(stack,env);
        printf("The test is SUCCESSFUL\n");
        return AXIS2_SUCCESS;
    }
    
    return AXIS2_FAILURE;
}
int main()
{
    char value[10] = "test\n";
    int status = AXIS2_SUCCESS;
    axutil_env_t *env = NULL;
    env = create_environment();
    status = test_stack(env,value);
    if(status != AXIS2_SUCCESS)
    {
        printf("The test failed");
    }
    axutil_env_free(env);
    return 0;
}



<|start_filename|>xdocs/api/html/axutil__utils_8h-source.html<|end_filename|>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html><head><meta http-equiv="Content-Type" content="text/html;charset=UTF-8">
<title>Axis2/C: axutil_utils.h Source File</title>
<link href="doxygen.css" rel="stylesheet" type="text/css">
<link href="tabs.css" rel="stylesheet" type="text/css">
</head><body>
<!-- Generated by Doxygen 1.5.3 -->
<div class="tabs">
  <ul>
    <li><a href="index.html"><span>Main&nbsp;Page</span></a></li>
    <li><a href="modules.html"><span>Modules</span></a></li>
    <li><a href="annotated.html"><span>Classes</span></a></li>
    <li class="current"><a href="files.html"><span>Files</span></a></li>
    <li><a href="dirs.html"><span>Directories</span></a></li>
    <li><a href="pages.html"><span>Related&nbsp;Pages</span></a></li>
    <li><a href="examples.html"><span>Examples</span></a></li>
    <li>
      <form action="search.php" method="get">
        <table cellspacing="0" cellpadding="0" border="0">
          <tr>
            <td><label>&nbsp;<u>S</u>earch&nbsp;for&nbsp;</label></td>
            <td><input type="text" name="query" value="" size="20" accesskey="s"/></td>
          </tr>
        </table>
      </form>
    </li>
  </ul>
</div>
<div class="nav">
<a class="el" href="dir_f60961de8e5edc3b2658ef023e959e45.html">deploy</a>&nbsp;&raquo&nbsp;<a class="el" href="dir_6b4e91e54b7316b376882a6402adbf44.html">include</a>&nbsp;&raquo&nbsp;<a class="el" href="dir_df3a7695d5a9e696f30b948b566829e7.html">axis2-1.6.0</a></div>
<h1>axutil_utils.h</h1><a href="axutil__utils_8h.html">Go to the documentation of this file.</a><div class="fragment"><pre class="fragment"><a name="l00001"></a>00001 
<a name="l00002"></a>00002 <span class="comment">/*</span>
<a name="l00003"></a>00003 <span class="comment"> * Licensed to the Apache Software Foundation (ASF) under one or more</span>
<a name="l00004"></a>00004 <span class="comment"> * contributor license agreements.  See the NOTICE file distributed with</span>
<a name="l00005"></a>00005 <span class="comment"> * this work for additional information regarding copyright ownership.</span>
<a name="l00006"></a>00006 <span class="comment"> * The ASF licenses this file to You under the Apache License, Version 2.0</span>
<a name="l00007"></a>00007 <span class="comment"> * (the "License"); you may not use this file except in compliance with</span>
<a name="l00008"></a>00008 <span class="comment"> * the License.  You may obtain a copy of the License at</span>
<a name="l00009"></a>00009 <span class="comment"> *</span>
<a name="l00010"></a>00010 <span class="comment"> *      http://www.apache.org/licenses/LICENSE-2.0</span>
<a name="l00011"></a>00011 <span class="comment"> *</span>
<a name="l00012"></a>00012 <span class="comment"> * Unless required by applicable law or agreed to in writing, software</span>
<a name="l00013"></a>00013 <span class="comment"> * distributed under the License is distributed on an "AS IS" BASIS,</span>
<a name="l00014"></a>00014 <span class="comment"> * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.</span>
<a name="l00015"></a>00015 <span class="comment"> * See the License for the specific language governing permissions and</span>
<a name="l00016"></a>00016 <span class="comment"> * limitations under the License.</span>
<a name="l00017"></a>00017 <span class="comment"> */</span>
<a name="l00018"></a>00018 
<a name="l00019"></a>00019 <span class="preprocessor">#ifndef AXUTIL_UTILS_H</span>
<a name="l00020"></a>00020 <span class="preprocessor"></span><span class="preprocessor">#define AXUTIL_UTILS_H</span>
<a name="l00021"></a>00021 <span class="preprocessor"></span>
<a name="l00022"></a>00022 <span class="preprocessor">#include &lt;axutil_utils_defines.h&gt;</span>
<a name="l00023"></a>00023 <span class="preprocessor">#include &lt;axutil_error.h&gt;</span>
<a name="l00024"></a>00024 <span class="preprocessor">#include &lt;<a class="code" href="axutil__env_8h.html" title="Axis2 environment that acts as a container for error, log and memory allocator routines...">axutil_env.h</a>&gt;</span>
<a name="l00025"></a>00025 <span class="preprocessor">#include &lt;<a class="code" href="axutil__date__time_8h.html" title="axis2-util">axutil_date_time.h</a>&gt;</span>
<a name="l00026"></a>00026 <span class="preprocessor">#include &lt;<a class="code" href="axutil__base64__binary_8h.html" title="axis2-util base64 encoding holder">axutil_base64_binary.h</a>&gt;</span>
<a name="l00027"></a>00027 
<a name="l00028"></a>00028 <span class="preprocessor">#ifdef __cplusplus</span>
<a name="l00029"></a>00029 <span class="preprocessor"></span><span class="keyword">extern</span> <span class="stringliteral">"C"</span>
<a name="l00030"></a>00030 {
<a name="l00031"></a>00031 <span class="preprocessor">#endif</span>
<a name="l00032"></a>00032 <span class="preprocessor"></span>
<a name="l00043"></a>00043 <span class="preprocessor">#define AXUTIL_LOG_FILE_SIZE 1024 * 1024 * 32</span>
<a name="l00044"></a>00044 <span class="preprocessor"></span><span class="preprocessor">#define AXUTIL_LOG_FILE_NAME_SIZE 512</span>
<a name="l00045"></a>00045 <span class="preprocessor"></span>
<a name="l00056"></a><a class="code" href="group__axutil__utils.html#gc166237d0def75b6826516f64acffbef">00056</a> <span class="preprocessor">#define AXIS2_FUNC_PARAM_CHECK(object, env, error_return)               \</span>
<a name="l00057"></a>00057 <span class="preprocessor">    if (!object)                                                        \</span>
<a name="l00058"></a>00058 <span class="preprocessor">    {                                                                   \</span>
<a name="l00059"></a>00059 <span class="preprocessor">        AXIS2_ERROR_SET_ERROR_NUMBER(env-&gt;error, AXIS2_ERROR_INVALID_NULL_PARAM); \</span>
<a name="l00060"></a>00060 <span class="preprocessor">        AXIS2_ERROR_SET_STATUS_CODE(env-&gt;error, AXIS2_FAILURE);         \</span>
<a name="l00061"></a>00061 <span class="preprocessor">        return error_return;                                            \</span>
<a name="l00062"></a>00062 <span class="preprocessor">    }                                                                   \</span>
<a name="l00063"></a>00063 <span class="preprocessor">    else                                                                \</span>
<a name="l00064"></a>00064 <span class="preprocessor">    {                                                                   \</span>
<a name="l00065"></a>00065 <span class="preprocessor">        AXIS2_ERROR_SET_STATUS_CODE(env-&gt;error, AXIS2_SUCCESS);              \</span>
<a name="l00066"></a>00066 <span class="preprocessor">    }</span>
<a name="l00067"></a>00067 <span class="preprocessor"></span>
<a name="l00068"></a>00068 
<a name="l00078"></a><a class="code" href="group__axutil__utils.html#g991e733569102d01d912614940aca452">00078</a> <span class="preprocessor">#define AXIS2_PARAM_CHECK(error, object, error_return)                  \</span>
<a name="l00079"></a>00079 <span class="preprocessor">    if (!object)                                                        \</span>
<a name="l00080"></a>00080 <span class="preprocessor">    {                                                                   \</span>
<a name="l00081"></a>00081 <span class="preprocessor">        AXIS2_ERROR_SET_ERROR_NUMBER(error, AXIS2_ERROR_INVALID_NULL_PARAM); \</span>
<a name="l00082"></a>00082 <span class="preprocessor">        AXIS2_ERROR_SET_STATUS_CODE(error, AXIS2_FAILURE);              \</span>
<a name="l00083"></a>00083 <span class="preprocessor">        return error_return;                                            \</span>
<a name="l00084"></a>00084 <span class="preprocessor">    }                                                                   \</span>
<a name="l00085"></a>00085 <span class="preprocessor">    else                                                                \</span>
<a name="l00086"></a>00086 <span class="preprocessor">    {                                                                   \</span>
<a name="l00087"></a>00087 <span class="preprocessor">        AXIS2_ERROR_SET_STATUS_CODE(error, AXIS2_SUCCESS);              \</span>
<a name="l00088"></a>00088 <span class="preprocessor">    }</span>
<a name="l00089"></a>00089 <span class="preprocessor"></span>
<a name="l00090"></a>00090 
<a name="l00091"></a>00091 
<a name="l00092"></a>00092 <span class="preprocessor">#define AXIS2_PARAM_CHECK_VOID(error, object)                           \</span>
<a name="l00093"></a>00093 <span class="preprocessor">    if (!object)                                                        \</span>
<a name="l00094"></a>00094 <span class="preprocessor">    {                                                                   \</span>
<a name="l00095"></a>00095 <span class="preprocessor">        AXIS2_ERROR_SET_ERROR_NUMBER(error, AXIS2_ERROR_INVALID_NULL_PARAM); \</span>
<a name="l00096"></a>00096 <span class="preprocessor">        AXIS2_ERROR_SET_STATUS_CODE(error, AXIS2_FAILURE);              \</span>
<a name="l00097"></a>00097 <span class="preprocessor">        return;                                                         \</span>
<a name="l00098"></a>00098 <span class="preprocessor">    }</span>
<a name="l00099"></a>00099 <span class="preprocessor"></span>
<a name="l00100"></a>00100 
<a name="l00101"></a>00101 
<a name="l00110"></a><a class="code" href="group__axutil__utils.html#gacaecc9520a0470ee32e6100942c4088">00110</a> <span class="preprocessor">#define AXIS2_ERROR_SET(error, error_number, status_code)   \</span>
<a name="l00111"></a>00111 <span class="preprocessor">    {                                                       \</span>
<a name="l00112"></a>00112 <span class="preprocessor">        AXIS2_ERROR_SET_ERROR_NUMBER(error, error_number);  \</span>
<a name="l00113"></a>00113 <span class="preprocessor">        AXIS2_ERROR_SET_STATUS_CODE(error, status_code);    \</span>
<a name="l00114"></a>00114 <span class="preprocessor">    }</span>
<a name="l00115"></a>00115 <span class="preprocessor"></span>
<a name="l00124"></a>00124 <span class="preprocessor">#define AXIS2_HANDLE_ERROR_WITH_FILE(env, error_number,          \</span>
<a name="l00125"></a><a class="code" href="group__axutil__utils.html#gd604b1a4dd6fa46d73119de36a43b23f">00125</a> <span class="preprocessor">            status_code, file_name_line_no)                      \</span>
<a name="l00126"></a>00126 <span class="preprocessor">    {                                                            \</span>
<a name="l00127"></a>00127 <span class="preprocessor">        AXIS2_ERROR_SET(env-&gt;error, error_number, status_code);  \</span>
<a name="l00128"></a>00128 <span class="preprocessor">        AXIS2_LOG_ERROR(env-&gt;log, file_name_line_no,             \</span>
<a name="l00129"></a>00129 <span class="preprocessor">            AXIS2_ERROR_GET_MESSAGE(env-&gt;error));                \</span>
<a name="l00130"></a>00130 <span class="preprocessor">    } </span>
<a name="l00131"></a>00131 <span class="preprocessor"></span>
<a name="l00138"></a><a class="code" href="group__axutil__utils.html#g90cce8a56477673e8a291103addcf6c7">00138</a> <span class="preprocessor">#define AXIS2_HANDLE_ERROR(env, error_number, status_code)               \</span>
<a name="l00139"></a>00139 <span class="preprocessor">            AXIS2_HANDLE_ERROR_WITH_FILE(env, error_number, status_code, \</span>
<a name="l00140"></a>00140 <span class="preprocessor">            AXIS2_LOG_SI)                                                \</span>
<a name="l00141"></a>00141 <span class="preprocessor"></span>
<a name="l00142"></a>00142 <span class="preprocessor"></span>
<a name="l00144"></a><a class="code" href="group__axutil__utils.html#gdf04006f325f60c4a2de4404b68a5b3c">00144</a> <span class="preprocessor">#define AXIS2_CREATE_FUNCTION "axis2_get_instance"</span>
<a name="l00145"></a>00145 <span class="preprocessor"></span><span class="preprocessor">#define AXIS2_DELETE_FUNCTION "axis2_remove_instance"</span>
<a name="l00146"></a>00146 <span class="preprocessor"></span>
<a name="l00147"></a>00147     <span class="keyword">typedef</span> void(
<a name="l00148"></a>00148         AXIS2_CALL
<a name="l00149"></a>00149         * AXIS2_FREE_VOID_ARG)(
<a name="l00150"></a>00150             <span class="keywordtype">void</span> *obj_to_be_freed,
<a name="l00151"></a>00151             <span class="keyword">const</span> <a class="code" href="structaxutil__env.html" title="Axis2 Environment struct.">axutil_env_t</a> * env);
<a name="l00152"></a>00152 
<a name="l00153"></a>00153     <span class="comment">/* Function pointer typedef for read callback */</span>
<a name="l00154"></a>00154     <span class="keyword">typedef</span> int(
<a name="l00155"></a>00155         AXIS2_CALL
<a name="l00156"></a>00156         * AXIS2_READ_INPUT_CALLBACK)(
<a name="l00157"></a>00157             <span class="keywordtype">char</span> *buffer,
<a name="l00158"></a>00158             <span class="keywordtype">int</span> size,
<a name="l00159"></a>00159             <span class="keywordtype">void</span> *ctx);
<a name="l00160"></a>00160 
<a name="l00161"></a>00161     <span class="comment">/* Function pointer typedef for close callback */</span>
<a name="l00162"></a>00162     <span class="keyword">typedef</span> int(
<a name="l00163"></a>00163         AXIS2_CALL
<a name="l00164"></a>00164         * AXIS2_CLOSE_INPUT_CALLBACK)(
<a name="l00165"></a>00165             <span class="keywordtype">void</span> *ctx);
<a name="l00166"></a>00166 
<a name="l00172"></a><a class="code" href="group__axutil__utils.html#g102944cbbb59586e2d48aa4a95a55f64">00172</a>     <span class="keyword">enum</span> <a class="code" href="group__axutil__utils.html#g102944cbbb59586e2d48aa4a95a55f64" title="Axis2 scopes.">axis2_scopes</a>
<a name="l00173"></a>00173     {
<a name="l00174"></a>00174 
<a name="l00176"></a><a class="code" href="group__axutil__utils.html#gg102944cbbb59586e2d48aa4a95a55f64cc1ec46379b5a425419e5c7865cb3a5e">00176</a>         <a class="code" href="group__axutil__utils.html#gg102944cbbb59586e2d48aa4a95a55f64cc1ec46379b5a425419e5c7865cb3a5e">AXIS2_SCOPE_REQUEST</a> = 0,
<a name="l00177"></a>00177 
<a name="l00179"></a><a class="code" href="group__axutil__utils.html#gg102944cbbb59586e2d48aa4a95a55f642d266cec752e517e50f5063d9680043e">00179</a>         <a class="code" href="group__axutil__utils.html#gg102944cbbb59586e2d48aa4a95a55f642d266cec752e517e50f5063d9680043e">AXIS2_SCOPE_SESSION</a>,
<a name="l00180"></a>00180 
<a name="l00182"></a><a class="code" href="group__axutil__utils.html#gg102944cbbb59586e2d48aa4a95a55f64211e1eee49971c621d7a894b4c6bdfda">00182</a>         <a class="code" href="group__axutil__utils.html#gg102944cbbb59586e2d48aa4a95a55f64211e1eee49971c621d7a894b4c6bdfda">AXIS2_SCOPE_APPLICATION</a>
<a name="l00183"></a>00183     };
<a name="l00184"></a>00184 
<a name="l00185"></a>00185 <span class="preprocessor">#define AXIS2_TARGET_EPR "target_epr"</span>
<a name="l00186"></a>00186 <span class="preprocessor"></span><span class="preprocessor">#define AXIS2_DUMP_INPUT_MSG_TRUE "dump"</span>
<a name="l00187"></a>00187 <span class="preprocessor"></span>
<a name="l00200"></a>00200     AXIS2_EXTERN axis2_status_t AXIS2_CALL
<a name="l00201"></a>00201     <a class="code" href="group__axutil__utils.html#g45760bfc8d8cf44f072c3a3fff0656db">axutil_parse_rest_url_for_params</a>(
<a name="l00202"></a>00202         <span class="keyword">const</span> <a class="code" href="structaxutil__env.html" title="Axis2 Environment struct.">axutil_env_t</a> * env,
<a name="l00203"></a>00203         <span class="keyword">const</span> axis2_char_t * tmpl,
<a name="l00204"></a>00204         <span class="keyword">const</span> axis2_char_t * url,
<a name="l00205"></a>00205         <span class="keywordtype">int</span> * match_count,
<a name="l00206"></a>00206         axis2_char_t **** matches);
<a name="l00207"></a>00207 
<a name="l00217"></a>00217     AXIS2_EXTERN axis2_char_t **AXIS2_CALL
<a name="l00218"></a>00218     <a class="code" href="group__axutil__utils.html#ge45e1f5b083cce22b4a19f2376ae534a">axutil_parse_request_url_for_svc_and_op</a>(
<a name="l00219"></a>00219         <span class="keyword">const</span> <a class="code" href="structaxutil__env.html" title="Axis2 Environment struct.">axutil_env_t</a> * env,
<a name="l00220"></a>00220         <span class="keyword">const</span> axis2_char_t * request);
<a name="l00221"></a>00221 
<a name="l00235"></a>00235     AXIS2_EXTERN axis2_char_t *AXIS2_CALL
<a name="l00236"></a>00236     <a class="code" href="group__axutil__utils.html#gdeee972b9ba0969828084e2000786873">axutil_xml_quote_string</a>(
<a name="l00237"></a>00237         <span class="keyword">const</span> <a class="code" href="structaxutil__env.html" title="Axis2 Environment struct.">axutil_env_t</a> * env,
<a name="l00238"></a>00238         <span class="keyword">const</span> axis2_char_t * s,
<a name="l00239"></a>00239         axis2_bool_t quotes);
<a name="l00240"></a>00240 
<a name="l00241"></a>00241     AXIS2_EXTERN <span class="keywordtype">int</span> AXIS2_CALL
<a name="l00242"></a>00242     axutil_hexit(axis2_char_t c);
<a name="l00243"></a>00243 
<a name="l00244"></a>00244     AXIS2_EXTERN axis2_status_t AXIS2_CALL
<a name="l00245"></a>00245     axutil_url_decode(
<a name="l00246"></a>00246         <span class="keyword">const</span> <a class="code" href="structaxutil__env.html" title="Axis2 Environment struct.">axutil_env_t</a> * env,
<a name="l00247"></a>00247         axis2_char_t * dest,
<a name="l00248"></a>00248         axis2_char_t * src);
<a name="l00249"></a>00249     
<a name="l00250"></a>00250     AXIS2_EXTERN axis2_status_t AXIS2_CALL
<a name="l00251"></a>00251     axis2_char_2_byte(
<a name="l00252"></a>00252         <span class="keyword">const</span> <a class="code" href="structaxutil__env.html" title="Axis2 Environment struct.">axutil_env_t</a> *env,
<a name="l00253"></a>00253         axis2_char_t *char_buffer,
<a name="l00254"></a>00254         axis2_byte_t **byte_buffer,
<a name="l00255"></a>00255         <span class="keywordtype">int</span> *byte_buffer_size);
<a name="l00256"></a>00256 
<a name="l00259"></a>00259 <span class="preprocessor">#ifdef __cplusplus</span>
<a name="l00260"></a>00260 <span class="preprocessor"></span>}
<a name="l00261"></a>00261 <span class="preprocessor">#endif</span>
<a name="l00262"></a>00262 <span class="preprocessor"></span>
<a name="l00263"></a>00263 <span class="preprocessor">#endif                          </span><span class="comment">/* AXIS2_UTILS_H */</span>
</pre></div><hr size="1"><address style="text-align: right;"><small>Generated on Fri Apr 17 11:49:43 2009 for Axis2/C by&nbsp;
<a href="http://www.doxygen.org/index.html">
<img src="doxygen.png" alt="doxygen" align="middle" border="0"></a> 1.5.3 </small></address>
</body>
</html>


<|start_filename|>xdocs/api/html/axutil__date__time_8h-source.html<|end_filename|>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html><head><meta http-equiv="Content-Type" content="text/html;charset=UTF-8">
<title>Axis2/C: axutil_date_time.h Source File</title>
<link href="doxygen.css" rel="stylesheet" type="text/css">
<link href="tabs.css" rel="stylesheet" type="text/css">
</head><body>
<!-- Generated by Doxygen 1.5.3 -->
<div class="tabs">
  <ul>
    <li><a href="index.html"><span>Main&nbsp;Page</span></a></li>
    <li><a href="modules.html"><span>Modules</span></a></li>
    <li><a href="annotated.html"><span>Classes</span></a></li>
    <li class="current"><a href="files.html"><span>Files</span></a></li>
    <li><a href="dirs.html"><span>Directories</span></a></li>
    <li><a href="pages.html"><span>Related&nbsp;Pages</span></a></li>
    <li><a href="examples.html"><span>Examples</span></a></li>
    <li>
      <form action="search.php" method="get">
        <table cellspacing="0" cellpadding="0" border="0">
          <tr>
            <td><label>&nbsp;<u>S</u>earch&nbsp;for&nbsp;</label></td>
            <td><input type="text" name="query" value="" size="20" accesskey="s"/></td>
          </tr>
        </table>
      </form>
    </li>
  </ul>
</div>
<div class="nav">
<a class="el" href="dir_f60961de8e5edc3b2658ef023e959e45.html">deploy</a>&nbsp;&raquo&nbsp;<a class="el" href="dir_6b4e91e54b7316b376882a6402adbf44.html">include</a>&nbsp;&raquo&nbsp;<a class="el" href="dir_df3a7695d5a9e696f30b948b566829e7.html">axis2-1.6.0</a></div>
<h1>axutil_date_time.h</h1><a href="axutil__date__time_8h.html">Go to the documentation of this file.</a><div class="fragment"><pre class="fragment"><a name="l00001"></a>00001 
<a name="l00002"></a>00002 <span class="comment">/*</span>
<a name="l00003"></a>00003 <span class="comment"> * Licensed to the Apache Software Foundation (ASF) under one or more</span>
<a name="l00004"></a>00004 <span class="comment"> * contributor license agreements.  See the NOTICE file distributed with</span>
<a name="l00005"></a>00005 <span class="comment"> * this work for additional information regarding copyright ownership.</span>
<a name="l00006"></a>00006 <span class="comment"> * The ASF licenses this file to You under the Apache License, Version 2.0</span>
<a name="l00007"></a>00007 <span class="comment"> * (the "License"); you may not use this file except in compliance with</span>
<a name="l00008"></a>00008 <span class="comment"> * the License.  You may obtain a copy of the License at</span>
<a name="l00009"></a>00009 <span class="comment"> *</span>
<a name="l00010"></a>00010 <span class="comment"> *      http://www.apache.org/licenses/LICENSE-2.0</span>
<a name="l00011"></a>00011 <span class="comment"> *</span>
<a name="l00012"></a>00012 <span class="comment"> * Unless required by applicable law or agreed to in writing, software</span>
<a name="l00013"></a>00013 <span class="comment"> * distributed under the License is distributed on an "AS IS" BASIS,</span>
<a name="l00014"></a>00014 <span class="comment"> * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.</span>
<a name="l00015"></a>00015 <span class="comment"> * See the License for the specific language governing permissions and</span>
<a name="l00016"></a>00016 <span class="comment"> * limitations under the License.</span>
<a name="l00017"></a>00017 <span class="comment"> */</span>
<a name="l00018"></a>00018 
<a name="l00019"></a>00019 <span class="preprocessor">#ifndef AXUTIL_DATE_TIME_H</span>
<a name="l00020"></a>00020 <span class="preprocessor"></span><span class="preprocessor">#define AXUTIL_DATE_TIME_H</span>
<a name="l00021"></a>00021 <span class="preprocessor"></span>
<a name="l00022"></a>00022 <span class="preprocessor">#include &lt;axutil_utils_defines.h&gt;</span>
<a name="l00023"></a>00023 <span class="preprocessor">#include &lt;<a class="code" href="axutil__env_8h.html" title="Axis2 environment that acts as a container for error, log and memory allocator routines...">axutil_env.h</a>&gt;</span>
<a name="l00024"></a>00024 
<a name="l00030"></a>00030 <span class="preprocessor">#ifdef __cplusplus</span>
<a name="l00031"></a>00031 <span class="preprocessor"></span><span class="keyword">extern</span> <span class="stringliteral">"C"</span>
<a name="l00032"></a>00032 {
<a name="l00033"></a>00033 <span class="preprocessor">#endif</span>
<a name="l00034"></a>00034 <span class="preprocessor"></span>
<a name="l00041"></a>00041     <span class="keyword">typedef</span> <span class="keyword">struct </span>axutil_date_time axutil_date_time_t;
<a name="l00042"></a>00042 
<a name="l00043"></a>00043     <span class="keyword">typedef</span> <span class="keyword">enum</span>
<a name="l00044"></a>00044     {
<a name="l00045"></a>00045         AXIS2_DATE_TIME_COMP_RES_FAILURE = -1,
<a name="l00046"></a>00046         AXIS2_DATE_TIME_COMP_RES_UNKNOWN,
<a name="l00047"></a>00047         AXIS2_DATE_TIME_COMP_RES_EXPIRED,
<a name="l00048"></a>00048         AXIS2_DATE_TIME_COMP_RES_EQUAL,
<a name="l00049"></a>00049         AXIS2_DATE_TIME_COMP_RES_NOT_EXPIRED
<a name="l00050"></a>00050     } axutil_date_time_comp_result_t;
<a name="l00051"></a>00051 
<a name="l00057"></a>00057     AXIS2_EXTERN axutil_date_time_t *AXIS2_CALL
<a name="l00058"></a>00058     <a class="code" href="group__axutil__date__time.html#g0ee93dfad91aee27df47dfea472273c8">axutil_date_time_create</a>(
<a name="l00059"></a>00059         <span class="keyword">const</span> <a class="code" href="structaxutil__env.html" title="Axis2 Environment struct.">axutil_env_t</a> * env);
<a name="l00060"></a>00060 
<a name="l00061"></a>00061     <span class="comment">/*</span>
<a name="l00062"></a>00062 <span class="comment">     * Creates axutil_date_time struct with an additional offset value</span>
<a name="l00063"></a>00063 <span class="comment">     * If the offset is a positive value then the time will be in the future</span>
<a name="l00064"></a>00064 <span class="comment">     *        offset is 0, then the time will be the current time</span>
<a name="l00065"></a>00065 <span class="comment">     *        offset is a negative value then the time is in the past.</span>
<a name="l00066"></a>00066 <span class="comment">     * @param env double pointer to environment struct. MUST NOT be NULL</span>
<a name="l00067"></a>00067 <span class="comment">     * @param offset the offset from the current time in seconds</span>
<a name="l00068"></a>00068 <span class="comment">     * @return pointer to newly created axutil_date_time struct</span>
<a name="l00069"></a>00069 <span class="comment">     **/</span>
<a name="l00070"></a>00070     AXIS2_EXTERN axutil_date_time_t *AXIS2_CALL
<a name="l00071"></a>00071 
<a name="l00072"></a>00072     axutil_date_time_create_with_offset(
<a name="l00073"></a>00073         <span class="keyword">const</span> <a class="code" href="structaxutil__env.html" title="Axis2 Environment struct.">axutil_env_t</a> * env,
<a name="l00074"></a>00074         <span class="keywordtype">int</span> offset);
<a name="l00075"></a>00075 
<a name="l00082"></a>00082     AXIS2_EXTERN <span class="keywordtype">void</span> AXIS2_CALL
<a name="l00083"></a>00083     <a class="code" href="group__axutil__date__time.html#gbb52288b98f13be3abf56d29248503cf">axutil_date_time_free</a>(
<a name="l00084"></a>00084         axutil_date_time_t * date_time,
<a name="l00085"></a>00085         <span class="keyword">const</span> <a class="code" href="structaxutil__env.html" title="Axis2 Environment struct.">axutil_env_t</a> * env);
<a name="l00086"></a>00086 
<a name="l00094"></a>00094     AXIS2_EXTERN axis2_status_t AXIS2_CALL
<a name="l00095"></a>00095     <a class="code" href="group__axutil__date__time.html#g7e5fb45f3ddfccdbb4a22f27d07f6c58">axutil_date_time_deserialize_time</a>(
<a name="l00096"></a>00096         axutil_date_time_t * date_time,
<a name="l00097"></a>00097         <span class="keyword">const</span> <a class="code" href="structaxutil__env.html" title="Axis2 Environment struct.">axutil_env_t</a> * env,
<a name="l00098"></a>00098         <span class="keyword">const</span> axis2_char_t * time_str);
<a name="l00099"></a>00099 
<a name="l00107"></a>00107     AXIS2_EXTERN axis2_status_t AXIS2_CALL
<a name="l00108"></a>00108     <a class="code" href="group__axutil__date__time.html#g41eaf8f9265a60efd098ac335e89cb0c">axutil_date_time_deserialize_date</a>(
<a name="l00109"></a>00109         axutil_date_time_t * date_time,
<a name="l00110"></a>00110         <span class="keyword">const</span> <a class="code" href="structaxutil__env.html" title="Axis2 Environment struct.">axutil_env_t</a> * env,
<a name="l00111"></a>00111         <span class="keyword">const</span> axis2_char_t * date_str);
<a name="l00112"></a>00112 
<a name="l00120"></a>00120     AXIS2_EXTERN axis2_status_t AXIS2_CALL
<a name="l00121"></a>00121 
<a name="l00122"></a>00122     <a class="code" href="group__axutil__date__time.html#g90dabd89b0fd6ecf8ea512d748276e25">axutil_date_time_deserialize_date_time</a>(
<a name="l00123"></a>00123         axutil_date_time_t * date_time,
<a name="l00124"></a>00124         <span class="keyword">const</span> <a class="code" href="structaxutil__env.html" title="Axis2 Environment struct.">axutil_env_t</a> * env,
<a name="l00125"></a>00125         <span class="keyword">const</span> axis2_char_t * date_time_str);
<a name="l00126"></a>00126 
<a name="l00139"></a>00139     AXIS2_EXTERN axis2_status_t AXIS2_CALL
<a name="l00140"></a>00140     <a class="code" href="group__axutil__date__time.html#g5f6d46804df89a05c8c4c6b5b97e47a3">axutil_date_time_set_date_time</a>(
<a name="l00141"></a>00141         axutil_date_time_t * date_time,
<a name="l00142"></a>00142         <span class="keyword">const</span> <a class="code" href="structaxutil__env.html" title="Axis2 Environment struct.">axutil_env_t</a> * env,
<a name="l00143"></a>00143         <span class="keywordtype">int</span> year,
<a name="l00144"></a>00144         <span class="keywordtype">int</span> month,
<a name="l00145"></a>00145         <span class="keywordtype">int</span> date,
<a name="l00146"></a>00146         <span class="keywordtype">int</span> hour,
<a name="l00147"></a>00147         <span class="keywordtype">int</span> min,
<a name="l00148"></a>00148         <span class="keywordtype">int</span> second,
<a name="l00149"></a>00149         <span class="keywordtype">int</span> milliseconds);
<a name="l00150"></a>00150 
<a name="l00157"></a>00157     AXIS2_EXTERN axis2_char_t *AXIS2_CALL
<a name="l00158"></a>00158     <a class="code" href="group__axutil__date__time.html#gad77bd48f8d22855617fc1678c08e8ad">axutil_date_time_serialize_time</a>(
<a name="l00159"></a>00159         axutil_date_time_t * date_time,
<a name="l00160"></a>00160         <span class="keyword">const</span> <a class="code" href="structaxutil__env.html" title="Axis2 Environment struct.">axutil_env_t</a> * env);
<a name="l00161"></a>00161 
<a name="l00168"></a>00168     AXIS2_EXTERN axis2_char_t *AXIS2_CALL
<a name="l00169"></a>00169     <a class="code" href="group__axutil__date__time.html#ga098865ec9b787dd25530c99f22b86e0">axutil_date_time_serialize_date</a>(
<a name="l00170"></a>00170         axutil_date_time_t * date_time,
<a name="l00171"></a>00171         <span class="keyword">const</span> <a class="code" href="structaxutil__env.html" title="Axis2 Environment struct.">axutil_env_t</a> * env);
<a name="l00172"></a>00172 
<a name="l00179"></a>00179     AXIS2_EXTERN axis2_char_t *AXIS2_CALL
<a name="l00180"></a>00180 
<a name="l00181"></a>00181     <a class="code" href="group__axutil__date__time.html#g23bc467a35485b46ccf1ae91a8f63016">axutil_date_time_serialize_date_time</a>(
<a name="l00182"></a>00182         axutil_date_time_t * date_time,
<a name="l00183"></a>00183         <span class="keyword">const</span> <a class="code" href="structaxutil__env.html" title="Axis2 Environment struct.">axutil_env_t</a> * env);
<a name="l00184"></a>00184 
<a name="l00191"></a>00191     AXIS2_EXTERN axis2_char_t *AXIS2_CALL
<a name="l00192"></a>00192     <a class="code" href="group__axutil__date__time.html#g13442224f7ef0eec0c3bc37f58abd3de">axutil_date_time_serialize_date_time_without_millisecond</a>(
<a name="l00193"></a>00193         axutil_date_time_t * date_time,
<a name="l00194"></a>00194         <span class="keyword">const</span> <a class="code" href="structaxutil__env.html" title="Axis2 Environment struct.">axutil_env_t</a> * env);
<a name="l00195"></a>00195 
<a name="l00202"></a>00202     AXIS2_EXTERN <span class="keywordtype">int</span> AXIS2_CALL
<a name="l00203"></a>00203     <a class="code" href="group__axutil__date__time.html#g0004b9c5cc5e1a1a5b3e3f517a7fcde5">axutil_date_time_get_year</a>(
<a name="l00204"></a>00204         axutil_date_time_t * date_time,
<a name="l00205"></a>00205         <span class="keyword">const</span> <a class="code" href="structaxutil__env.html" title="Axis2 Environment struct.">axutil_env_t</a> * env);
<a name="l00206"></a>00206 
<a name="l00213"></a>00213     AXIS2_EXTERN <span class="keywordtype">int</span> AXIS2_CALL
<a name="l00214"></a>00214     <a class="code" href="group__axutil__date__time.html#ga444d7cd64986d34e38f60f2e30aa67d">axutil_date_time_get_month</a>(
<a name="l00215"></a>00215         axutil_date_time_t * date_time,
<a name="l00216"></a>00216         <span class="keyword">const</span> <a class="code" href="structaxutil__env.html" title="Axis2 Environment struct.">axutil_env_t</a> * env);
<a name="l00217"></a>00217 
<a name="l00224"></a>00224     AXIS2_EXTERN <span class="keywordtype">int</span> AXIS2_CALL
<a name="l00225"></a>00225     <a class="code" href="group__axutil__date__time.html#g7f852dcbdfad79040077482406e5f0ad">axutil_date_time_get_date</a>(
<a name="l00226"></a>00226         axutil_date_time_t * date_time,
<a name="l00227"></a>00227         <span class="keyword">const</span> <a class="code" href="structaxutil__env.html" title="Axis2 Environment struct.">axutil_env_t</a> * env);
<a name="l00228"></a>00228 
<a name="l00235"></a>00235     AXIS2_EXTERN <span class="keywordtype">int</span> AXIS2_CALL
<a name="l00236"></a>00236     <a class="code" href="group__axutil__date__time.html#g709d3af760c962dc1e69b8e7f821ab70">axutil_date_time_get_hour</a>(
<a name="l00237"></a>00237         axutil_date_time_t * date_time,
<a name="l00238"></a>00238         <span class="keyword">const</span> <a class="code" href="structaxutil__env.html" title="Axis2 Environment struct.">axutil_env_t</a> * env);
<a name="l00239"></a>00239 
<a name="l00246"></a>00246     AXIS2_EXTERN <span class="keywordtype">int</span> AXIS2_CALL
<a name="l00247"></a>00247     <a class="code" href="group__axutil__date__time.html#gb90d270ad77e3ad9b2dd7ed4e0120a63">axutil_date_time_get_minute</a>(
<a name="l00248"></a>00248         axutil_date_time_t * date_time,
<a name="l00249"></a>00249         <span class="keyword">const</span> <a class="code" href="structaxutil__env.html" title="Axis2 Environment struct.">axutil_env_t</a> * env);
<a name="l00250"></a>00250 
<a name="l00257"></a>00257     AXIS2_EXTERN <span class="keywordtype">int</span> AXIS2_CALL
<a name="l00258"></a>00258     <a class="code" href="group__axutil__date__time.html#g36782202dd7f88a864f748649b3dff6b">axutil_date_time_get_second</a>(
<a name="l00259"></a>00259         axutil_date_time_t * date_time,
<a name="l00260"></a>00260         <span class="keyword">const</span> <a class="code" href="structaxutil__env.html" title="Axis2 Environment struct.">axutil_env_t</a> * env);
<a name="l00261"></a>00261 
<a name="l00262"></a>00262     AXIS2_EXTERN <span class="keywordtype">int</span> AXIS2_CALL
<a name="l00263"></a>00263     axutil_date_time_get_msec(
<a name="l00264"></a>00264         axutil_date_time_t * date_time,
<a name="l00265"></a>00265         <span class="keyword">const</span> <a class="code" href="structaxutil__env.html" title="Axis2 Environment struct.">axutil_env_t</a> * env);
<a name="l00266"></a>00266 
<a name="l00277"></a>00277     AXIS2_EXTERN axutil_date_time_comp_result_t AXIS2_CALL
<a name="l00278"></a>00278     <a class="code" href="group__axutil__date__time.html#g325f00cb4ca6034f6f5eb518d86e2762">axutil_date_time_compare</a>(
<a name="l00279"></a>00279         axutil_date_time_t * date_time,
<a name="l00280"></a>00280         <span class="keyword">const</span> <a class="code" href="structaxutil__env.html" title="Axis2 Environment struct.">axutil_env_t</a> * env,
<a name="l00281"></a>00281         axutil_date_time_t * ref);
<a name="l00282"></a>00282 
<a name="l00283"></a>00283     AXIS2_EXTERN axutil_date_time_t *AXIS2_CALL
<a name="l00284"></a>00284     axutil_date_time_utc_to_local(
<a name="l00285"></a>00285         axutil_date_time_t * date_time,
<a name="l00286"></a>00286         <span class="keyword">const</span> <a class="code" href="structaxutil__env.html" title="Axis2 Environment struct.">axutil_env_t</a> * env,
<a name="l00287"></a>00287         axis2_bool_t is_positive,
<a name="l00288"></a>00288         <span class="keywordtype">int</span> hour,
<a name="l00289"></a>00289         <span class="keywordtype">int</span> min);
<a name="l00290"></a>00290 
<a name="l00291"></a>00291     AXIS2_EXTERN axutil_date_time_t *AXIS2_CALL
<a name="l00292"></a>00292     axutil_date_time_local_to_utc(
<a name="l00293"></a>00293         axutil_date_time_t * date_time,
<a name="l00294"></a>00294         <span class="keyword">const</span> <a class="code" href="structaxutil__env.html" title="Axis2 Environment struct.">axutil_env_t</a> * env);
<a name="l00295"></a>00295 
<a name="l00296"></a>00296     AXIS2_EXTERN <span class="keywordtype">int</span> AXIS2_CALL
<a name="l00297"></a>00297     axutil_date_time_get_time_zone_hour(
<a name="l00298"></a>00298         axutil_date_time_t * date_time,
<a name="l00299"></a>00299         <span class="keyword">const</span> <a class="code" href="structaxutil__env.html" title="Axis2 Environment struct.">axutil_env_t</a> * env);
<a name="l00300"></a>00300 
<a name="l00301"></a>00301     AXIS2_EXTERN <span class="keywordtype">int</span> AXIS2_CALL
<a name="l00302"></a>00302     axutil_date_time_get_time_zone_minute(
<a name="l00303"></a>00303         axutil_date_time_t * date_time,
<a name="l00304"></a>00304         <span class="keyword">const</span> <a class="code" href="structaxutil__env.html" title="Axis2 Environment struct.">axutil_env_t</a> * env);
<a name="l00305"></a>00305 
<a name="l00306"></a>00306     AXIS2_EXTERN axis2_bool_t AXIS2_CALL
<a name="l00307"></a>00307     axutil_date_time_is_time_zone_positive(
<a name="l00308"></a>00308         axutil_date_time_t * date_time,
<a name="l00309"></a>00309         <span class="keyword">const</span> <a class="code" href="structaxutil__env.html" title="Axis2 Environment struct.">axutil_env_t</a> * env);
<a name="l00310"></a>00310 
<a name="l00311"></a>00311     AXIS2_EXTERN axis2_status_t AXIS2_CALL
<a name="l00312"></a>00312     axutil_date_time_set_time_zone(
<a name="l00313"></a>00313         axutil_date_time_t * date_time,
<a name="l00314"></a>00314         <span class="keyword">const</span> <a class="code" href="structaxutil__env.html" title="Axis2 Environment struct.">axutil_env_t</a> * env,
<a name="l00315"></a>00315         axis2_bool_t is_positive,
<a name="l00316"></a>00316         <span class="keywordtype">int</span> hour,
<a name="l00317"></a>00317         <span class="keywordtype">int</span> min);
<a name="l00318"></a>00318 
<a name="l00319"></a>00319     AXIS2_EXTERN axis2_status_t AXIS2_CALL
<a name="l00320"></a>00320     axutil_date_time_deserialize_date_time_with_time_zone(
<a name="l00321"></a>00321         axutil_date_time_t * date_time,
<a name="l00322"></a>00322         <span class="keyword">const</span> <a class="code" href="structaxutil__env.html" title="Axis2 Environment struct.">axutil_env_t</a> * env,
<a name="l00323"></a>00323         <span class="keyword">const</span> axis2_char_t * date_time_str);
<a name="l00324"></a>00324 
<a name="l00325"></a>00325     AXIS2_EXTERN axis2_status_t AXIS2_CALL
<a name="l00326"></a>00326     axutil_date_time_deserialize_time_with_time_zone(
<a name="l00327"></a>00327         axutil_date_time_t * date_time,
<a name="l00328"></a>00328         <span class="keyword">const</span> <a class="code" href="structaxutil__env.html" title="Axis2 Environment struct.">axutil_env_t</a> * env,
<a name="l00329"></a>00329         <span class="keyword">const</span> axis2_char_t * time_str);
<a name="l00330"></a>00330 
<a name="l00331"></a>00331     AXIS2_EXTERN axis2_char_t *AXIS2_CALL
<a name="l00332"></a>00332     axutil_date_time_serialize_date_time_with_time_zone(
<a name="l00333"></a>00333         axutil_date_time_t * date_time,
<a name="l00334"></a>00334         <span class="keyword">const</span> <a class="code" href="structaxutil__env.html" title="Axis2 Environment struct.">axutil_env_t</a> * env);
<a name="l00335"></a>00335 
<a name="l00336"></a>00336     AXIS2_EXTERN axis2_char_t *AXIS2_CALL
<a name="l00337"></a>00337     axutil_date_time_serialize_time_with_time_zone(
<a name="l00338"></a>00338         axutil_date_time_t * date_time,
<a name="l00339"></a>00339         <span class="keyword">const</span> <a class="code" href="structaxutil__env.html" title="Axis2 Environment struct.">axutil_env_t</a> * env);
<a name="l00340"></a>00340 
<a name="l00341"></a>00341     AXIS2_EXTERN axis2_bool_t AXIS2_CALL
<a name="l00342"></a>00342     axutil_date_time_is_utc(
<a name="l00343"></a>00343         axutil_date_time_t * date_time,
<a name="l00344"></a>00344         <span class="keyword">const</span> <a class="code" href="structaxutil__env.html" title="Axis2 Environment struct.">axutil_env_t</a> * env);
<a name="l00345"></a>00345 
<a name="l00346"></a>00346 <span class="preprocessor">#ifdef __cplusplus</span>
<a name="l00347"></a>00347 <span class="preprocessor"></span>}
<a name="l00348"></a>00348 <span class="preprocessor">#endif</span>
<a name="l00349"></a>00349 <span class="preprocessor"></span>
<a name="l00350"></a>00350 <span class="preprocessor">#endif                          </span><span class="comment">/* AXIS2_DATE_TIME_H */</span>
</pre></div><hr size="1"><address style="text-align: right;"><small>Generated on Fri Apr 17 11:49:42 2009 for Axis2/C by&nbsp;
<a href="http://www.doxygen.org/index.html">
<img src="doxygen.png" alt="doxygen" align="middle" border="0"></a> 1.5.3 </small></address>
</body>
</html>


<|start_filename|>xdocs/api/html/group__axutil__utils.html<|end_filename|>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html><head><meta http-equiv="Content-Type" content="text/html;charset=UTF-8">
<title>Axis2/C: utils</title>
<link href="doxygen.css" rel="stylesheet" type="text/css">
<link href="tabs.css" rel="stylesheet" type="text/css">
</head><body>
<!-- Generated by Doxygen 1.5.3 -->
<div class="tabs">
  <ul>
    <li><a href="index.html"><span>Main&nbsp;Page</span></a></li>
    <li><a href="modules.html"><span>Modules</span></a></li>
    <li><a href="annotated.html"><span>Classes</span></a></li>
    <li><a href="files.html"><span>Files</span></a></li>
    <li><a href="dirs.html"><span>Directories</span></a></li>
    <li><a href="pages.html"><span>Related&nbsp;Pages</span></a></li>
    <li><a href="examples.html"><span>Examples</span></a></li>
    <li>
      <form action="search.php" method="get">
        <table cellspacing="0" cellpadding="0" border="0">
          <tr>
            <td><label>&nbsp;<u>S</u>earch&nbsp;for&nbsp;</label></td>
            <td><input type="text" name="query" value="" size="20" accesskey="s"/></td>
          </tr>
        </table>
      </form>
    </li>
  </ul>
</div>
<h1>utils<br>
<small>
[<a class="el" href="group__axis2__util.html">utilities</a>]</small>
</h1><table border="0" cellpadding="0" cellspacing="0">
<tr><td></td></tr>
<tr><td colspan="2"><br><h2>Files</h2></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top">file &nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="axutil__utils_8h.html">axutil_utils.h</a></td></tr>

<tr><td colspan="2"><br><h2>Defines</h2></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="g7542cb7bd76de099e14c5b1e966b9d78"></a><!-- doxytag: member="axutil_utils::AXUTIL_LOG_FILE_SIZE" ref="g7542cb7bd76de099e14c5b1e966b9d78" args="" -->
#define&nbsp;</td><td class="memItemRight" valign="bottom"><b>AXUTIL_LOG_FILE_SIZE</b>&nbsp;&nbsp;&nbsp;1024 * 1024 * 32</td></tr>

<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="g887f4f3bae78c60b9b92756e4e2507fe"></a><!-- doxytag: member="axutil_utils::AXUTIL_LOG_FILE_NAME_SIZE" ref="g887f4f3bae78c60b9b92756e4e2507fe" args="" -->
#define&nbsp;</td><td class="memItemRight" valign="bottom"><b>AXUTIL_LOG_FILE_NAME_SIZE</b>&nbsp;&nbsp;&nbsp;512</td></tr>

<tr><td class="memItemLeft" nowrap align="right" valign="top">#define&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__axutil__utils.html#gc166237d0def75b6826516f64acffbef">AXIS2_FUNC_PARAM_CHECK</a>(object, env, error_return)</td></tr>

<tr><td class="memItemLeft" nowrap align="right" valign="top">#define&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__axutil__utils.html#g991e733569102d01d912614940aca452">AXIS2_PARAM_CHECK</a>(error, object, error_return)</td></tr>

<tr><td class="memItemLeft" nowrap align="right" valign="top">#define&nbsp;</td><td class="memItemRight" valign="bottom"><b>AXIS2_PARAM_CHECK_VOID</b>(error, object)</td></tr>

<tr><td class="memItemLeft" nowrap align="right" valign="top">#define&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__axutil__utils.html#gacaecc9520a0470ee32e6100942c4088">AXIS2_ERROR_SET</a>(error, error_number, status_code)</td></tr>

<tr><td class="memItemLeft" nowrap align="right" valign="top">#define&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__axutil__utils.html#gd604b1a4dd6fa46d73119de36a43b23f">AXIS2_HANDLE_ERROR_WITH_FILE</a>(env, error_number,status_code, file_name_line_no)</td></tr>

<tr><td class="memItemLeft" nowrap align="right" valign="top">#define&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__axutil__utils.html#g90cce8a56477673e8a291103addcf6c7">AXIS2_HANDLE_ERROR</a>(env, error_number, status_code)</td></tr>

<tr><td class="memItemLeft" nowrap align="right" valign="top">#define&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__axutil__utils.html#gdf04006f325f60c4a2de4404b68a5b3c">AXIS2_CREATE_FUNCTION</a>&nbsp;&nbsp;&nbsp;&quot;axis2_get_instance&quot;</td></tr>

<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="ge86646a079a6a5dbee0e087b31470d81"></a><!-- doxytag: member="axutil_utils::AXIS2_DELETE_FUNCTION" ref="ge86646a079a6a5dbee0e087b31470d81" args="" -->
#define&nbsp;</td><td class="memItemRight" valign="bottom"><b>AXIS2_DELETE_FUNCTION</b>&nbsp;&nbsp;&nbsp;&quot;axis2_remove_instance&quot;</td></tr>

<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="g9ab4342f2827e4d72898290fb3a1d4b3"></a><!-- doxytag: member="axutil_utils::AXIS2_TARGET_EPR" ref="g9ab4342f2827e4d72898290fb3a1d4b3" args="" -->
#define&nbsp;</td><td class="memItemRight" valign="bottom"><b>AXIS2_TARGET_EPR</b>&nbsp;&nbsp;&nbsp;&quot;target_epr&quot;</td></tr>

<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="g9a2ecb69f3dc20cdeef5667bf029a455"></a><!-- doxytag: member="axutil_utils::AXIS2_DUMP_INPUT_MSG_TRUE" ref="g9a2ecb69f3dc20cdeef5667bf029a455" args="" -->
#define&nbsp;</td><td class="memItemRight" valign="bottom"><b>AXIS2_DUMP_INPUT_MSG_TRUE</b>&nbsp;&nbsp;&nbsp;&quot;dump&quot;</td></tr>

<tr><td colspan="2"><br><h2>Typedefs</h2></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="gc9ac1d802046d30769ab1074c935e292"></a><!-- doxytag: member="axutil_utils::AXIS2_FREE_VOID_ARG" ref="gc9ac1d802046d30769ab1074c935e292" args=")(void *obj_to_be_freed, const axutil_env_t *env)" -->
typedef void(*&nbsp;</td><td class="memItemRight" valign="bottom"><b>AXIS2_FREE_VOID_ARG</b> )(void *obj_to_be_freed, const <a class="el" href="structaxutil__env.html">axutil_env_t</a> *env)</td></tr>

<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="gc9c223058db1f5e3669bfafb73f13fc8"></a><!-- doxytag: member="axutil_utils::AXIS2_READ_INPUT_CALLBACK" ref="gc9c223058db1f5e3669bfafb73f13fc8" args=")(char *buffer, int size, void *ctx)" -->
typedef int(*&nbsp;</td><td class="memItemRight" valign="bottom"><b>AXIS2_READ_INPUT_CALLBACK</b> )(char *buffer, int size, void *ctx)</td></tr>

<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="g6c389ab017cb07436a020fb223214c5a"></a><!-- doxytag: member="axutil_utils::AXIS2_CLOSE_INPUT_CALLBACK" ref="g6c389ab017cb07436a020fb223214c5a" args=")(void *ctx)" -->
typedef int(*&nbsp;</td><td class="memItemRight" valign="bottom"><b>AXIS2_CLOSE_INPUT_CALLBACK</b> )(void *ctx)</td></tr>

<tr><td colspan="2"><br><h2>Enumerations</h2></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top">enum &nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__axutil__utils.html#g102944cbbb59586e2d48aa4a95a55f64">axis2_scopes</a> { <a class="el" href="group__axutil__utils.html#gg102944cbbb59586e2d48aa4a95a55f64cc1ec46379b5a425419e5c7865cb3a5e">AXIS2_SCOPE_REQUEST</a> =  0, 
<a class="el" href="group__axutil__utils.html#gg102944cbbb59586e2d48aa4a95a55f642d266cec752e517e50f5063d9680043e">AXIS2_SCOPE_SESSION</a>, 
<a class="el" href="group__axutil__utils.html#gg102944cbbb59586e2d48aa4a95a55f64211e1eee49971c621d7a894b4c6bdfda">AXIS2_SCOPE_APPLICATION</a>
 }</td></tr>

<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Axis2 scopes.  <a href="group__axutil__utils.html#g102944cbbb59586e2d48aa4a95a55f64">More...</a><br></td></tr>
<tr><td colspan="2"><br><h2>Functions</h2></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top">AXIS2_EXTERN <br>
axis2_status_t&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__axutil__utils.html#g45760bfc8d8cf44f072c3a3fff0656db">axutil_parse_rest_url_for_params</a> (const <a class="el" href="structaxutil__env.html">axutil_env_t</a> *env, const axis2_char_t *tmpl, const axis2_char_t *url, int *match_count, axis2_char_t ****matches)</td></tr>

<tr><td class="memItemLeft" nowrap align="right" valign="top">AXIS2_EXTERN <br>
axis2_char_t **&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__axutil__utils.html#ge45e1f5b083cce22b4a19f2376ae534a">axutil_parse_request_url_for_svc_and_op</a> (const <a class="el" href="structaxutil__env.html">axutil_env_t</a> *env, const axis2_char_t *request)</td></tr>

<tr><td class="memItemLeft" nowrap align="right" valign="top">AXIS2_EXTERN <br>
axis2_char_t *&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__axutil__utils.html#gdeee972b9ba0969828084e2000786873">axutil_xml_quote_string</a> (const <a class="el" href="structaxutil__env.html">axutil_env_t</a> *env, const axis2_char_t *s, axis2_bool_t quotes)</td></tr>

<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="g09e633d0cb2c4acb0affc75c870646dc"></a><!-- doxytag: member="axutil_utils::axutil_hexit" ref="g09e633d0cb2c4acb0affc75c870646dc" args="(axis2_char_t c)" -->
AXIS2_EXTERN int&nbsp;</td><td class="memItemRight" valign="bottom"><b>axutil_hexit</b> (axis2_char_t c)</td></tr>

<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="g3f4e6e5f6cbe22739225e5c3b758df65"></a><!-- doxytag: member="axutil_utils::axutil_url_decode" ref="g3f4e6e5f6cbe22739225e5c3b758df65" args="(const axutil_env_t *env, axis2_char_t *dest, axis2_char_t *src)" -->
AXIS2_EXTERN <br>
axis2_status_t&nbsp;</td><td class="memItemRight" valign="bottom"><b>axutil_url_decode</b> (const <a class="el" href="structaxutil__env.html">axutil_env_t</a> *env, axis2_char_t *dest, axis2_char_t *src)</td></tr>

<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="g00c2171b534e916a7c6222c6bbfcda79"></a><!-- doxytag: member="axutil_utils::axis2_char_2_byte" ref="g00c2171b534e916a7c6222c6bbfcda79" args="(const axutil_env_t *env, axis2_char_t *char_buffer, axis2_byte_t **byte_buffer, int *byte_buffer_size)" -->
AXIS2_EXTERN <br>
axis2_status_t&nbsp;</td><td class="memItemRight" valign="bottom"><b>axis2_char_2_byte</b> (const <a class="el" href="structaxutil__env.html">axutil_env_t</a> *env, axis2_char_t *char_buffer, axis2_byte_t **byte_buffer, int *byte_buffer_size)</td></tr>

</table>
<hr><h2>Define Documentation</h2>
<a class="anchor" name="gdf04006f325f60c4a2de4404b68a5b3c"></a><!-- doxytag: member="axutil_utils.h::AXIS2_CREATE_FUNCTION" ref="gdf04006f325f60c4a2de4404b68a5b3c" args="" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">#define AXIS2_CREATE_FUNCTION&nbsp;&nbsp;&nbsp;&quot;axis2_get_instance&quot;          </td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
Method names in the loadable libraries 
</div>
</div><p>
<a class="anchor" name="gacaecc9520a0470ee32e6100942c4088"></a><!-- doxytag: member="axutil_utils.h::AXIS2_ERROR_SET" ref="gacaecc9520a0470ee32e6100942c4088" args="(error, error_number, status_code)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">#define AXIS2_ERROR_SET          </td>
          <td>(</td>
          <td class="paramtype">error,         <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">error_number,         <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">status_code&nbsp;</td>
          <td class="paramname">          </td>
          <td>&nbsp;)&nbsp;</td>
          <td width="100%"></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
<b>Value:</b><div class="fragment"><pre class="fragment">{                                                       \
        AXIS2_ERROR_SET_ERROR_NUMBER(error, error_number);  \
        AXIS2_ERROR_SET_STATUS_CODE(error, status_code);    \
    }
</pre></div>This macro is used to handle error situation. <dl compact><dt><b>Parameters:</b></dt><dd>
  <table border="0" cellspacing="2" cellpadding="0">
    <tr><td valign="top"></td><td valign="top"><em>error_number</em>&nbsp;</td><td>Error number for the error occured </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>error_return</em>&nbsp;</td><td>If function return a status it should pass here AXIS2_FAILURE. If function return a type pointer it should pass NULL </td></tr>
  </table>
</dl>
<dl class="return" compact><dt><b>Returns:</b></dt><dd>If function return a status code return AXIS2_SUCCESS. Else if function return a type pointer return NULL </dd></dl>

</div>
</div><p>
<a class="anchor" name="gc166237d0def75b6826516f64acffbef"></a><!-- doxytag: member="axutil_utils.h::AXIS2_FUNC_PARAM_CHECK" ref="gc166237d0def75b6826516f64acffbef" args="(object, env, error_return)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">#define AXIS2_FUNC_PARAM_CHECK          </td>
          <td>(</td>
          <td class="paramtype">object,         <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">env,         <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">error_return&nbsp;</td>
          <td class="paramname">          </td>
          <td>&nbsp;)&nbsp;</td>
          <td width="100%"></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
<b>Value:</b><div class="fragment"><pre class="fragment"><span class="keywordflow">if</span> (!<span class="keywordtype">object</span>)                                                        \
    {                                                                   \
        AXIS2_ERROR_SET_ERROR_NUMBER(env-&gt;error, AXIS2_ERROR_INVALID_NULL_PARAM); \
        AXIS2_ERROR_SET_STATUS_CODE(env-&gt;error, AXIS2_FAILURE);         \
        <span class="keywordflow">return</span> error_return;                                            \
    }                                                                   \
    <span class="keywordflow">else</span>                                                                \
    {                                                                   \
        AXIS2_ERROR_SET_STATUS_CODE(env-&gt;error, AXIS2_SUCCESS);              \
    }
</pre></div>This macro is called to check whether structure on which function is called is NULL and to check whether the environment structure passed is valid. <dl compact><dt><b>Parameters:</b></dt><dd>
  <table border="0" cellspacing="2" cellpadding="0">
    <tr><td valign="top"></td><td valign="top"><em>object</em>&nbsp;</td><td>structure on which function is called </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>env</em>&nbsp;</td><td>environment to be checked for validity </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>error_return</em>&nbsp;</td><td>If function return a status it should pass here AXIS2_FAILURE. If function return a type pointer it should pass NULL </td></tr>
  </table>
</dl>
<dl class="return" compact><dt><b>Returns:</b></dt><dd>If function return a status code return AXIS2_SUCCESS. Else if function return a type pointer return NULL </dd></dl>

</div>
</div><p>
<a class="anchor" name="g90cce8a56477673e8a291103addcf6c7"></a><!-- doxytag: member="axutil_utils.h::AXIS2_HANDLE_ERROR" ref="g90cce8a56477673e8a291103addcf6c7" args="(env, error_number, status_code)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">#define AXIS2_HANDLE_ERROR          </td>
          <td>(</td>
          <td class="paramtype">env,         <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">error_number,         <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">status_code&nbsp;</td>
          <td class="paramname">          </td>
          <td>&nbsp;)&nbsp;</td>
          <td width="100%"></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
<b>Value:</b><div class="fragment"><pre class="fragment"><a class="code" href="group__axutil__utils.html#gd604b1a4dd6fa46d73119de36a43b23f">AXIS2_HANDLE_ERROR_WITH_FILE</a>(env, error_number, status_code, \
            AXIS2_LOG_SI)                                                \
</pre></div>This macro is used to set and error, and log it <dl compact><dt><b>Parameters:</b></dt><dd>
  <table border="0" cellspacing="2" cellpadding="0">
    <tr><td valign="top"></td><td valign="top"><em>env</em>&nbsp;</td><td>Reference to env struct </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>error_number</em>&nbsp;</td><td>Error number for the error occured </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>status_code</em>&nbsp;</td><td>The Error Status to be set </td></tr>
  </table>
</dl>

</div>
</div><p>
<a class="anchor" name="gd604b1a4dd6fa46d73119de36a43b23f"></a><!-- doxytag: member="axutil_utils.h::AXIS2_HANDLE_ERROR_WITH_FILE" ref="gd604b1a4dd6fa46d73119de36a43b23f" args="(env, error_number,status_code, file_name_line_no)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">#define AXIS2_HANDLE_ERROR_WITH_FILE          </td>
          <td>(</td>
          <td class="paramtype">env,         <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">error_number,         <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">status_code,         <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">file_name_line_no&nbsp;</td>
          <td class="paramname">          </td>
          <td>&nbsp;)&nbsp;</td>
          <td width="100%"></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
<b>Value:</b><div class="fragment"><pre class="fragment">{                                                            \
        <a class="code" href="group__axutil__utils.html#gacaecc9520a0470ee32e6100942c4088">AXIS2_ERROR_SET</a>(env-&gt;error, error_number, status_code);  \
        AXIS2_LOG_ERROR(env-&gt;log, file_name_line_no,             \
            AXIS2_ERROR_GET_MESSAGE(env-&gt;error));                \
    }
</pre></div>This macro is used to set and error, and log it. In addition to that you are capable of specifying the file name and line number <dl compact><dt><b>Parameters:</b></dt><dd>
  <table border="0" cellspacing="2" cellpadding="0">
    <tr><td valign="top"></td><td valign="top"><em>env</em>&nbsp;</td><td>Reference to env struct </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>error_number</em>&nbsp;</td><td>Error number for the error occured </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>status_code</em>&nbsp;</td><td>The Error Status to be set </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>file_name_line_no</em>&nbsp;</td><td>File name and line number constant </td></tr>
  </table>
</dl>

</div>
</div><p>
<a class="anchor" name="g991e733569102d01d912614940aca452"></a><!-- doxytag: member="axutil_utils.h::AXIS2_PARAM_CHECK" ref="g991e733569102d01d912614940aca452" args="(error, object, error_return)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">#define AXIS2_PARAM_CHECK          </td>
          <td>(</td>
          <td class="paramtype">error,         <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">object,         <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">error_return&nbsp;</td>
          <td class="paramname">          </td>
          <td>&nbsp;)&nbsp;</td>
          <td width="100%"></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
<b>Value:</b><div class="fragment"><pre class="fragment"><span class="keywordflow">if</span> (!<span class="keywordtype">object</span>)                                                        \
    {                                                                   \
        AXIS2_ERROR_SET_ERROR_NUMBER(error, AXIS2_ERROR_INVALID_NULL_PARAM); \
        AXIS2_ERROR_SET_STATUS_CODE(error, AXIS2_FAILURE);              \
        <span class="keywordflow">return</span> error_return;                                            \
    }                                                                   \
    <span class="keywordflow">else</span>                                                                \
    {                                                                   \
        AXIS2_ERROR_SET_STATUS_CODE(error, AXIS2_SUCCESS);              \
    }
</pre></div>This macro is called to check whether an object is NULL. if object is NULL error number and status code is set <dl compact><dt><b>Parameters:</b></dt><dd>
  <table border="0" cellspacing="2" cellpadding="0">
    <tr><td valign="top"></td><td valign="top"><em>object</em>&nbsp;</td><td>object to be check for NULL </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>error_return</em>&nbsp;</td><td>If function return a status it should pass here AXIS2_FAILURE. If function return a type pointer it should pass NULL </td></tr>
  </table>
</dl>
<dl class="return" compact><dt><b>Returns:</b></dt><dd>If function return a status code return AXIS2_SUCCESS. Else if function return a type pointer return NULL </dd></dl>

</div>
</div><p>
<a class="anchor" name="ged65c0b44f912f6d2452bd0f5d458819"></a><!-- doxytag: member="axutil_utils.h::AXIS2_PARAM_CHECK_VOID" ref="ged65c0b44f912f6d2452bd0f5d458819" args="(error, object)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">#define AXIS2_PARAM_CHECK_VOID          </td>
          <td>(</td>
          <td class="paramtype">error,         <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">object&nbsp;</td>
          <td class="paramname">          </td>
          <td>&nbsp;)&nbsp;</td>
          <td width="100%"></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
<b>Value:</b><div class="fragment"><pre class="fragment"><span class="keywordflow">if</span> (!<span class="keywordtype">object</span>)                                                        \
    {                                                                   \
        AXIS2_ERROR_SET_ERROR_NUMBER(error, AXIS2_ERROR_INVALID_NULL_PARAM); \
        AXIS2_ERROR_SET_STATUS_CODE(error, AXIS2_FAILURE);              \
        <span class="keywordflow">return</span>;                                                         \
    }
</pre></div>
</div>
</div><p>
<hr><h2>Enumeration Type Documentation</h2>
<a class="anchor" name="g102944cbbb59586e2d48aa4a95a55f64"></a><!-- doxytag: member="axutil_utils.h::axis2_scopes" ref="g102944cbbb59586e2d48aa4a95a55f64" args="" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">enum <a class="el" href="group__axutil__utils.html#g102944cbbb59586e2d48aa4a95a55f64">axis2_scopes</a>          </td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
Axis2 scopes. 
<p>
Possible scope value for Axis2 <dl compact><dt><b>Enumerator: </b></dt><dd>
<table border="0" cellspacing="2" cellpadding="0">
<tr><td valign="top"><em><a class="anchor" name="gg102944cbbb59586e2d48aa4a95a55f64cc1ec46379b5a425419e5c7865cb3a5e"></a><!-- doxytag: member="AXIS2_SCOPE_REQUEST" ref="gg102944cbbb59586e2d48aa4a95a55f64cc1ec46379b5a425419e5c7865cb3a5e" args="" -->AXIS2_SCOPE_REQUEST</em>&nbsp;</td><td>
Request scope </td></tr>
<tr><td valign="top"><em><a class="anchor" name="gg102944cbbb59586e2d48aa4a95a55f642d266cec752e517e50f5063d9680043e"></a><!-- doxytag: member="AXIS2_SCOPE_SESSION" ref="gg102944cbbb59586e2d48aa4a95a55f642d266cec752e517e50f5063d9680043e" args="" -->AXIS2_SCOPE_SESSION</em>&nbsp;</td><td>
Session scope </td></tr>
<tr><td valign="top"><em><a class="anchor" name="gg102944cbbb59586e2d48aa4a95a55f64211e1eee49971c621d7a894b4c6bdfda"></a><!-- doxytag: member="AXIS2_SCOPE_APPLICATION" ref="gg102944cbbb59586e2d48aa4a95a55f64211e1eee49971c621d7a894b4c6bdfda" args="" -->AXIS2_SCOPE_APPLICATION</em>&nbsp;</td><td>
Application scope </td></tr>
</table>
</dl>

</div>
</div><p>
<hr><h2>Function Documentation</h2>
<a class="anchor" name="ge45e1f5b083cce22b4a19f2376ae534a"></a><!-- doxytag: member="axutil_utils.h::axutil_parse_request_url_for_svc_and_op" ref="ge45e1f5b083cce22b4a19f2376ae534a" args="(const axutil_env_t *env, const axis2_char_t *request)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">AXIS2_EXTERN axis2_char_t** axutil_parse_request_url_for_svc_and_op           </td>
          <td>(</td>
          <td class="paramtype">const <a class="el" href="structaxutil__env.html">axutil_env_t</a> *&nbsp;</td>
          <td class="paramname"> <em>env</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const axis2_char_t *&nbsp;</td>
          <td class="paramname"> <em>request</em></td><td>&nbsp;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td><td width="100%"></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
This function allows users to resolve the service and op from the url. It returns an array of 2 elements of axis2_char_t arrays (strings). The caller is responsible to free the memory allocated by the function for the return value. <dl compact><dt><b>Parameters:</b></dt><dd>
  <table border="0" cellspacing="2" cellpadding="0">
    <tr><td valign="top"></td><td valign="top"><em>env</em>&nbsp;</td><td>pointer to environment struct </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>request</em>&nbsp;</td><td>url </td></tr>
  </table>
</dl>
<dl class="return" compact><dt><b>Returns:</b></dt><dd>axis2_char_t ** <code>axis2_char_t **<code> </code></code></dd></dl>

</div>
</div><p>
<a class="anchor" name="g45760bfc8d8cf44f072c3a3fff0656db"></a><!-- doxytag: member="axutil_utils.h::axutil_parse_rest_url_for_params" ref="g45760bfc8d8cf44f072c3a3fff0656db" args="(const axutil_env_t *env, const axis2_char_t *tmpl, const axis2_char_t *url, int *match_count, axis2_char_t ****matches)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">AXIS2_EXTERN axis2_status_t axutil_parse_rest_url_for_params           </td>
          <td>(</td>
          <td class="paramtype">const <a class="el" href="structaxutil__env.html">axutil_env_t</a> *&nbsp;</td>
          <td class="paramname"> <em>env</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const axis2_char_t *&nbsp;</td>
          <td class="paramname"> <em>tmpl</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const axis2_char_t *&nbsp;</td>
          <td class="paramname"> <em>url</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">int *&nbsp;</td>
          <td class="paramname"> <em>match_count</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">axis2_char_t ****&nbsp;</td>
          <td class="paramname"> <em>matches</em></td><td>&nbsp;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td><td width="100%"></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
This function allows the user match a REST URL template with the Request URL. It returns a 3-dimensional array with pairs of elements of axis2_char_t arrays (strings). The caller is responsible to free the memory allocated by the function for the return value. <dl compact><dt><b>Parameters:</b></dt><dd>
  <table border="0" cellspacing="2" cellpadding="0">
    <tr><td valign="top"></td><td valign="top"><em>env</em>&nbsp;</td><td>pointer to environment struct </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>tmpl</em>&nbsp;</td><td>Template to Match </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>url</em>&nbsp;</td><td>Request URL </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>match_count</em>&nbsp;</td><td>variable to store match count </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>matches</em>&nbsp;</td><td>axis2_char_t *** <code>axis2_char_t ***<code> </code></code></td></tr>
  </table>
</dl>
<dl class="return" compact><dt><b>Returns:</b></dt><dd><code><code> AXIS2_SUCCESS if all matches were found or AXIS2_FAILURE. </code></code></dd></dl>

</div>
</div><p>
<a class="anchor" name="gdeee972b9ba0969828084e2000786873"></a><!-- doxytag: member="axutil_utils.h::axutil_xml_quote_string" ref="gdeee972b9ba0969828084e2000786873" args="(const axutil_env_t *env, const axis2_char_t *s, axis2_bool_t quotes)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">AXIS2_EXTERN axis2_char_t* axutil_xml_quote_string           </td>
          <td>(</td>
          <td class="paramtype">const <a class="el" href="structaxutil__env.html">axutil_env_t</a> *&nbsp;</td>
          <td class="paramname"> <em>env</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const axis2_char_t *&nbsp;</td>
          <td class="paramname"> <em>s</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">axis2_bool_t&nbsp;</td>
          <td class="paramname"> <em>quotes</em></td><td>&nbsp;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td><td width="100%"></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
Quotes an XML string. Replace '&lt;', '&gt;', and '&amp;' with '&lt;', '&gt;', and '&amp;'. If quotes is true, then replace '"' with '"'. <dl compact><dt><b>Parameters:</b></dt><dd>
  <table border="0" cellspacing="2" cellpadding="0">
    <tr><td valign="top"></td><td valign="top"><em>env</em>&nbsp;</td><td>pointer to environment struct </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>s</em>&nbsp;</td><td>string to be quoted </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>quotes</em>&nbsp;</td><td>if AXIS2_TRUE then replace '"' with '"'. quotes is typically set to true for XML strings that will occur within double quotes -- attribute values. </td></tr>
  </table>
</dl>
<dl class="return" compact><dt><b>Returns:</b></dt><dd>Encoded string if there are characters to be encoded, else NULL. The caller is responsible to free the memory allocated by the function for the return value </dd></dl>

</div>
</div><p>
<hr size="1"><address style="text-align: right;"><small>Generated on Fri Apr 17 11:49:46 2009 for Axis2/C by&nbsp;
<a href="http://www.doxygen.org/index.html">
<img src="doxygen.png" alt="doxygen" align="middle" border="0"></a> 1.5.3 </small></address>
</body>
</html>


<|start_filename|>xdocs/api/html/group__axis2__phase__rule.html<|end_filename|>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html><head><meta http-equiv="Content-Type" content="text/html;charset=UTF-8">
<title>Axis2/C: phase rule</title>
<link href="doxygen.css" rel="stylesheet" type="text/css">
<link href="tabs.css" rel="stylesheet" type="text/css">
</head><body>
<!-- Generated by Doxygen 1.5.3 -->
<div class="tabs">
  <ul>
    <li><a href="index.html"><span>Main&nbsp;Page</span></a></li>
    <li><a href="modules.html"><span>Modules</span></a></li>
    <li><a href="annotated.html"><span>Classes</span></a></li>
    <li><a href="files.html"><span>Files</span></a></li>
    <li><a href="dirs.html"><span>Directories</span></a></li>
    <li><a href="pages.html"><span>Related&nbsp;Pages</span></a></li>
    <li><a href="examples.html"><span>Examples</span></a></li>
    <li>
      <form action="search.php" method="get">
        <table cellspacing="0" cellpadding="0" border="0">
          <tr>
            <td><label>&nbsp;<u>S</u>earch&nbsp;for&nbsp;</label></td>
            <td><input type="text" name="query" value="" size="20" accesskey="s"/></td>
          </tr>
        </table>
      </form>
    </li>
  </ul>
</div>
<h1>phase rule<br>
<small>
[<a class="el" href="group__axis2__desc.html">description</a>]</small>
</h1><table border="0" cellpadding="0" cellspacing="0">
<tr><td></td></tr>
<tr><td colspan="2"><br><h2>Files</h2></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top">file &nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="axis2__phase__rule_8h.html">axis2_phase_rule.h</a></td></tr>

<tr><td colspan="2"><br><h2>Typedefs</h2></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top">typedef struct <br>
axis2_phase_rule&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__axis2__phase__rule.html#g9c63c3673a8a009300b1d5c6d89cc3f5">axis2_phase_rule_t</a></td></tr>

<tr><td colspan="2"><br><h2>Functions</h2></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top">AXIS2_EXTERN const <br>
axis2_char_t *&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__axis2__phase__rule.html#g74c03a05867ebf1ab9f697c7901d53b1">axis2_phase_rule_get_before</a> (const <a class="el" href="group__axis2__phase__rule.html#g9c63c3673a8a009300b1d5c6d89cc3f5">axis2_phase_rule_t</a> *phase_rule, const <a class="el" href="structaxutil__env.html">axutil_env_t</a> *env)</td></tr>

<tr><td class="memItemLeft" nowrap align="right" valign="top">AXIS2_EXTERN <br>
axis2_status_t&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__axis2__phase__rule.html#g03fadd5da8392e210b994cd5f425a92f">axis2_phase_rule_set_before</a> (<a class="el" href="group__axis2__phase__rule.html#g9c63c3673a8a009300b1d5c6d89cc3f5">axis2_phase_rule_t</a> *phase_rule, const <a class="el" href="structaxutil__env.html">axutil_env_t</a> *env, const axis2_char_t *before)</td></tr>

<tr><td class="memItemLeft" nowrap align="right" valign="top">AXIS2_EXTERN const <br>
axis2_char_t *&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__axis2__phase__rule.html#gc510de132f16f900e4d1ded091d70a1e">axis2_phase_rule_get_after</a> (const <a class="el" href="group__axis2__phase__rule.html#g9c63c3673a8a009300b1d5c6d89cc3f5">axis2_phase_rule_t</a> *phase_rule, const <a class="el" href="structaxutil__env.html">axutil_env_t</a> *env)</td></tr>

<tr><td class="memItemLeft" nowrap align="right" valign="top">AXIS2_EXTERN <br>
axis2_status_t&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__axis2__phase__rule.html#g5e8872d7d5383aaaaee7ac6d200a7303">axis2_phase_rule_set_after</a> (<a class="el" href="group__axis2__phase__rule.html#g9c63c3673a8a009300b1d5c6d89cc3f5">axis2_phase_rule_t</a> *phase_rule, const <a class="el" href="structaxutil__env.html">axutil_env_t</a> *env, const axis2_char_t *after)</td></tr>

<tr><td class="memItemLeft" nowrap align="right" valign="top">AXIS2_EXTERN const <br>
axis2_char_t *&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__axis2__phase__rule.html#g609ef9a04aebdd2af772f78cef7ce26d">axis2_phase_rule_get_name</a> (const <a class="el" href="group__axis2__phase__rule.html#g9c63c3673a8a009300b1d5c6d89cc3f5">axis2_phase_rule_t</a> *phase_rule, const <a class="el" href="structaxutil__env.html">axutil_env_t</a> *env)</td></tr>

<tr><td class="memItemLeft" nowrap align="right" valign="top">AXIS2_EXTERN <br>
axis2_status_t&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__axis2__phase__rule.html#g2b76a8aa8c2004573d01df1c95b74ee6">axis2_phase_rule_set_name</a> (<a class="el" href="group__axis2__phase__rule.html#g9c63c3673a8a009300b1d5c6d89cc3f5">axis2_phase_rule_t</a> *phase_rule, const <a class="el" href="structaxutil__env.html">axutil_env_t</a> *env, const axis2_char_t *name)</td></tr>

<tr><td class="memItemLeft" nowrap align="right" valign="top">AXIS2_EXTERN axis2_bool_t&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__axis2__phase__rule.html#g07d9af90e9929dfad686b7f3494912ad">axis2_phase_rule_is_first</a> (const <a class="el" href="group__axis2__phase__rule.html#g9c63c3673a8a009300b1d5c6d89cc3f5">axis2_phase_rule_t</a> *phase_rule, const <a class="el" href="structaxutil__env.html">axutil_env_t</a> *env)</td></tr>

<tr><td class="memItemLeft" nowrap align="right" valign="top">AXIS2_EXTERN <br>
axis2_status_t&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__axis2__phase__rule.html#ge2de00428e8ec57f9008d1180b0eac53">axis2_phase_rule_set_first</a> (<a class="el" href="group__axis2__phase__rule.html#g9c63c3673a8a009300b1d5c6d89cc3f5">axis2_phase_rule_t</a> *phase_rule, const <a class="el" href="structaxutil__env.html">axutil_env_t</a> *env, axis2_bool_t first)</td></tr>

<tr><td class="memItemLeft" nowrap align="right" valign="top">AXIS2_EXTERN axis2_bool_t&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__axis2__phase__rule.html#gc8418e7c4a81d34a72a1c421c014c953">axis2_phase_rule_is_last</a> (const <a class="el" href="group__axis2__phase__rule.html#g9c63c3673a8a009300b1d5c6d89cc3f5">axis2_phase_rule_t</a> *phase_rule, const <a class="el" href="structaxutil__env.html">axutil_env_t</a> *env)</td></tr>

<tr><td class="memItemLeft" nowrap align="right" valign="top">AXIS2_EXTERN <br>
axis2_status_t&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__axis2__phase__rule.html#g65020e799dcdc0bd401d1abc793ea18c">axis2_phase_rule_set_last</a> (<a class="el" href="group__axis2__phase__rule.html#g9c63c3673a8a009300b1d5c6d89cc3f5">axis2_phase_rule_t</a> *phase_rule, const <a class="el" href="structaxutil__env.html">axutil_env_t</a> *env, axis2_bool_t last)</td></tr>

<tr><td class="memItemLeft" nowrap align="right" valign="top">AXIS2_EXTERN void&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__axis2__phase__rule.html#g98314dfcdc4e33e9943a9b7649d231e4">axis2_phase_rule_free</a> (<a class="el" href="group__axis2__phase__rule.html#g9c63c3673a8a009300b1d5c6d89cc3f5">axis2_phase_rule_t</a> *phase_rule, const <a class="el" href="structaxutil__env.html">axutil_env_t</a> *env)</td></tr>

<tr><td class="memItemLeft" nowrap align="right" valign="top">AXIS2_EXTERN <br>
<a class="el" href="group__axis2__phase__rule.html#g9c63c3673a8a009300b1d5c6d89cc3f5">axis2_phase_rule_t</a> *&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__axis2__phase__rule.html#gdddf387d390d87edc5125127ae2ab3ed">axis2_phase_rule_clone</a> (<a class="el" href="group__axis2__phase__rule.html#g9c63c3673a8a009300b1d5c6d89cc3f5">axis2_phase_rule_t</a> *phase_rule, const <a class="el" href="structaxutil__env.html">axutil_env_t</a> *env)</td></tr>

<tr><td class="memItemLeft" nowrap align="right" valign="top">AXIS2_EXTERN <br>
<a class="el" href="group__axis2__phase__rule.html#g9c63c3673a8a009300b1d5c6d89cc3f5">axis2_phase_rule_t</a> *&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__axis2__phase__rule.html#gdb84f9ccb0bf175221c9265f148cd32c">axis2_phase_rule_create</a> (const <a class="el" href="structaxutil__env.html">axutil_env_t</a> *env, const axis2_char_t *name)</td></tr>

</table>
<hr><a name="_details"></a><h2>Detailed Description</h2>
phase rule encapsulates data and operations related to phase rules for a given handler. phase rule lives within a handler. phase rules of a handler specify the relative location of the handler within the phase to which it belongs, with respect to other handlers in the phase or first and last positions of the handler chain of the phase. <hr><h2>Typedef Documentation</h2>
<a class="anchor" name="g9c63c3673a8a009300b1d5c6d89cc3f5"></a><!-- doxytag: member="axis2_phase_rule.h::axis2_phase_rule_t" ref="g9c63c3673a8a009300b1d5c6d89cc3f5" args="" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">typedef struct axis2_phase_rule <a class="el" href="group__axis2__phase__rule.html#g9c63c3673a8a009300b1d5c6d89cc3f5">axis2_phase_rule_t</a>          </td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
Type name for struct axis2_phase_rule 
</div>
</div><p>
<hr><h2>Function Documentation</h2>
<a class="anchor" name="gdddf387d390d87edc5125127ae2ab3ed"></a><!-- doxytag: member="axis2_phase_rule.h::axis2_phase_rule_clone" ref="gdddf387d390d87edc5125127ae2ab3ed" args="(axis2_phase_rule_t *phase_rule, const axutil_env_t *env)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">AXIS2_EXTERN <a class="el" href="group__axis2__phase__rule.html#g9c63c3673a8a009300b1d5c6d89cc3f5">axis2_phase_rule_t</a>* axis2_phase_rule_clone           </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="group__axis2__phase__rule.html#g9c63c3673a8a009300b1d5c6d89cc3f5">axis2_phase_rule_t</a> *&nbsp;</td>
          <td class="paramname"> <em>phase_rule</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const <a class="el" href="structaxutil__env.html">axutil_env_t</a> *&nbsp;</td>
          <td class="paramname"> <em>env</em></td><td>&nbsp;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td><td width="100%"></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
Clones phase rule. <dl compact><dt><b>Parameters:</b></dt><dd>
  <table border="0" cellspacing="2" cellpadding="0">
    <tr><td valign="top"></td><td valign="top"><em>phase_rule</em>&nbsp;</td><td>pointer to phase rule </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>env</em>&nbsp;</td><td>pointer to environment struct </td></tr>
  </table>
</dl>
<dl class="return" compact><dt><b>Returns:</b></dt><dd>pointer to newly cloned phase rule </dd></dl>

</div>
</div><p>
<a class="anchor" name="gdb84f9ccb0bf175221c9265f148cd32c"></a><!-- doxytag: member="axis2_phase_rule.h::axis2_phase_rule_create" ref="gdb84f9ccb0bf175221c9265f148cd32c" args="(const axutil_env_t *env, const axis2_char_t *name)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">AXIS2_EXTERN <a class="el" href="group__axis2__phase__rule.html#g9c63c3673a8a009300b1d5c6d89cc3f5">axis2_phase_rule_t</a>* axis2_phase_rule_create           </td>
          <td>(</td>
          <td class="paramtype">const <a class="el" href="structaxutil__env.html">axutil_env_t</a> *&nbsp;</td>
          <td class="paramname"> <em>env</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const axis2_char_t *&nbsp;</td>
          <td class="paramname"> <em>name</em></td><td>&nbsp;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td><td width="100%"></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
Creates a phase rule struct instance. <dl compact><dt><b>Parameters:</b></dt><dd>
  <table border="0" cellspacing="2" cellpadding="0">
    <tr><td valign="top"></td><td valign="top"><em>env</em>&nbsp;</td><td>pointer to environment struct </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>phase_name</em>&nbsp;</td><td>name of the phase rule </td></tr>
  </table>
</dl>
<dl class="return" compact><dt><b>Returns:</b></dt><dd>pointer to newly created phase rule </dd></dl>

</div>
</div><p>
<a class="anchor" name="g98314dfcdc4e33e9943a9b7649d231e4"></a><!-- doxytag: member="axis2_phase_rule.h::axis2_phase_rule_free" ref="g98314dfcdc4e33e9943a9b7649d231e4" args="(axis2_phase_rule_t *phase_rule, const axutil_env_t *env)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">AXIS2_EXTERN void axis2_phase_rule_free           </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="group__axis2__phase__rule.html#g9c63c3673a8a009300b1d5c6d89cc3f5">axis2_phase_rule_t</a> *&nbsp;</td>
          <td class="paramname"> <em>phase_rule</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const <a class="el" href="structaxutil__env.html">axutil_env_t</a> *&nbsp;</td>
          <td class="paramname"> <em>env</em></td><td>&nbsp;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td><td width="100%"></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
Frees phase rule. <dl compact><dt><b>Parameters:</b></dt><dd>
  <table border="0" cellspacing="2" cellpadding="0">
    <tr><td valign="top"></td><td valign="top"><em>phase_rule</em>&nbsp;</td><td>pointer to phase rule </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>env</em>&nbsp;</td><td>pointer to environment struct </td></tr>
  </table>
</dl>
<dl class="return" compact><dt><b>Returns:</b></dt><dd>void </dd></dl>

</div>
</div><p>
<a class="anchor" name="gc510de132f16f900e4d1ded091d70a1e"></a><!-- doxytag: member="axis2_phase_rule.h::axis2_phase_rule_get_after" ref="gc510de132f16f900e4d1ded091d70a1e" args="(const axis2_phase_rule_t *phase_rule, const axutil_env_t *env)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">AXIS2_EXTERN const axis2_char_t* axis2_phase_rule_get_after           </td>
          <td>(</td>
          <td class="paramtype">const <a class="el" href="group__axis2__phase__rule.html#g9c63c3673a8a009300b1d5c6d89cc3f5">axis2_phase_rule_t</a> *&nbsp;</td>
          <td class="paramname"> <em>phase_rule</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const <a class="el" href="structaxutil__env.html">axutil_env_t</a> *&nbsp;</td>
          <td class="paramname"> <em>env</em></td><td>&nbsp;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td><td width="100%"></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
Gets the name of the handler after which the handler associated with this rule should be placed. <dl compact><dt><b>Parameters:</b></dt><dd>
  <table border="0" cellspacing="2" cellpadding="0">
    <tr><td valign="top"></td><td valign="top"><em>phase_rule</em>&nbsp;</td><td>pointer to phase rule </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>env</em>&nbsp;</td><td>pointer to environment struct </td></tr>
  </table>
</dl>
<dl class="return" compact><dt><b>Returns:</b></dt><dd>name of handler after which the handler should be placed </dd></dl>

</div>
</div><p>
<a class="anchor" name="g74c03a05867ebf1ab9f697c7901d53b1"></a><!-- doxytag: member="axis2_phase_rule.h::axis2_phase_rule_get_before" ref="g74c03a05867ebf1ab9f697c7901d53b1" args="(const axis2_phase_rule_t *phase_rule, const axutil_env_t *env)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">AXIS2_EXTERN const axis2_char_t* axis2_phase_rule_get_before           </td>
          <td>(</td>
          <td class="paramtype">const <a class="el" href="group__axis2__phase__rule.html#g9c63c3673a8a009300b1d5c6d89cc3f5">axis2_phase_rule_t</a> *&nbsp;</td>
          <td class="paramname"> <em>phase_rule</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const <a class="el" href="structaxutil__env.html">axutil_env_t</a> *&nbsp;</td>
          <td class="paramname"> <em>env</em></td><td>&nbsp;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td><td width="100%"></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
Gets the name of the handler before which the handler associated with this rule should be placed. <dl compact><dt><b>Parameters:</b></dt><dd>
  <table border="0" cellspacing="2" cellpadding="0">
    <tr><td valign="top"></td><td valign="top"><em>phase_rule</em>&nbsp;</td><td>pointer to phase rule </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>env</em>&nbsp;</td><td>pointer to environment struct </td></tr>
  </table>
</dl>
<dl class="return" compact><dt><b>Returns:</b></dt><dd>name of handler before which the handler should be placed </dd></dl>

</div>
</div><p>
<a class="anchor" name="g609ef9a04aebdd2af772f78cef7ce26d"></a><!-- doxytag: member="axis2_phase_rule.h::axis2_phase_rule_get_name" ref="g609ef9a04aebdd2af772f78cef7ce26d" args="(const axis2_phase_rule_t *phase_rule, const axutil_env_t *env)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">AXIS2_EXTERN const axis2_char_t* axis2_phase_rule_get_name           </td>
          <td>(</td>
          <td class="paramtype">const <a class="el" href="group__axis2__phase__rule.html#g9c63c3673a8a009300b1d5c6d89cc3f5">axis2_phase_rule_t</a> *&nbsp;</td>
          <td class="paramname"> <em>phase_rule</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const <a class="el" href="structaxutil__env.html">axutil_env_t</a> *&nbsp;</td>
          <td class="paramname"> <em>env</em></td><td>&nbsp;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td><td width="100%"></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
Gets name. <dl compact><dt><b>Parameters:</b></dt><dd>
  <table border="0" cellspacing="2" cellpadding="0">
    <tr><td valign="top"></td><td valign="top"><em>phase_rule</em>&nbsp;</td><td>pointer to phase rule </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>env</em>&nbsp;</td><td>pointer to environment struct </td></tr>
  </table>
</dl>
<dl class="return" compact><dt><b>Returns:</b></dt><dd>name string </dd></dl>

</div>
</div><p>
<a class="anchor" name="g07d9af90e9929dfad686b7f3494912ad"></a><!-- doxytag: member="axis2_phase_rule.h::axis2_phase_rule_is_first" ref="g07d9af90e9929dfad686b7f3494912ad" args="(const axis2_phase_rule_t *phase_rule, const axutil_env_t *env)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">AXIS2_EXTERN axis2_bool_t axis2_phase_rule_is_first           </td>
          <td>(</td>
          <td class="paramtype">const <a class="el" href="group__axis2__phase__rule.html#g9c63c3673a8a009300b1d5c6d89cc3f5">axis2_phase_rule_t</a> *&nbsp;</td>
          <td class="paramname"> <em>phase_rule</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const <a class="el" href="structaxutil__env.html">axutil_env_t</a> *&nbsp;</td>
          <td class="paramname"> <em>env</em></td><td>&nbsp;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td><td width="100%"></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
Checks if the handler is the first in phase. <dl compact><dt><b>Parameters:</b></dt><dd>
  <table border="0" cellspacing="2" cellpadding="0">
    <tr><td valign="top"></td><td valign="top"><em>phase_rule</em>&nbsp;</td><td>pointer to phase rule </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>env</em>&nbsp;</td><td>pointer to environment struct </td></tr>
  </table>
</dl>
<dl class="return" compact><dt><b>Returns:</b></dt><dd>AXIS2_TRUE if the handler associated with this rule is the first in phase, else AXIS2_FALSE </dd></dl>

</div>
</div><p>
<a class="anchor" name="gc8418e7c4a81d34a72a1c421c014c953"></a><!-- doxytag: member="axis2_phase_rule.h::axis2_phase_rule_is_last" ref="gc8418e7c4a81d34a72a1c421c014c953" args="(const axis2_phase_rule_t *phase_rule, const axutil_env_t *env)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">AXIS2_EXTERN axis2_bool_t axis2_phase_rule_is_last           </td>
          <td>(</td>
          <td class="paramtype">const <a class="el" href="group__axis2__phase__rule.html#g9c63c3673a8a009300b1d5c6d89cc3f5">axis2_phase_rule_t</a> *&nbsp;</td>
          <td class="paramname"> <em>phase_rule</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const <a class="el" href="structaxutil__env.html">axutil_env_t</a> *&nbsp;</td>
          <td class="paramname"> <em>env</em></td><td>&nbsp;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td><td width="100%"></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
Checks if the handler is the last in phase. <dl compact><dt><b>Parameters:</b></dt><dd>
  <table border="0" cellspacing="2" cellpadding="0">
    <tr><td valign="top"></td><td valign="top"><em>phase_rule</em>&nbsp;</td><td>pointer to phase rule </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>env</em>&nbsp;</td><td>pointer to environment struct </td></tr>
  </table>
</dl>
<dl class="return" compact><dt><b>Returns:</b></dt><dd>AXIS2_TRUE if the handler associated with this rule is the last in phase, else AXIS2_FALSE </dd></dl>

</div>
</div><p>
<a class="anchor" name="g5e8872d7d5383aaaaee7ac6d200a7303"></a><!-- doxytag: member="axis2_phase_rule.h::axis2_phase_rule_set_after" ref="g5e8872d7d5383aaaaee7ac6d200a7303" args="(axis2_phase_rule_t *phase_rule, const axutil_env_t *env, const axis2_char_t *after)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">AXIS2_EXTERN axis2_status_t axis2_phase_rule_set_after           </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="group__axis2__phase__rule.html#g9c63c3673a8a009300b1d5c6d89cc3f5">axis2_phase_rule_t</a> *&nbsp;</td>
          <td class="paramname"> <em>phase_rule</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const <a class="el" href="structaxutil__env.html">axutil_env_t</a> *&nbsp;</td>
          <td class="paramname"> <em>env</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const axis2_char_t *&nbsp;</td>
          <td class="paramname"> <em>after</em></td><td>&nbsp;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td><td width="100%"></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
Sets the name of the handler after which the handler associated with this rule should be placed. <dl compact><dt><b>Parameters:</b></dt><dd>
  <table border="0" cellspacing="2" cellpadding="0">
    <tr><td valign="top"></td><td valign="top"><em>phase_rule</em>&nbsp;</td><td>pointer to phase rule </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>env</em>&nbsp;</td><td>pointer to environment struct </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>after</em>&nbsp;</td><td>name of handler after which the handler should be placed </td></tr>
  </table>
</dl>
<dl class="return" compact><dt><b>Returns:</b></dt><dd>AXIS2_SUCCESS on success, else AXIS2_FAILURE </dd></dl>

</div>
</div><p>
<a class="anchor" name="g03fadd5da8392e210b994cd5f425a92f"></a><!-- doxytag: member="axis2_phase_rule.h::axis2_phase_rule_set_before" ref="g03fadd5da8392e210b994cd5f425a92f" args="(axis2_phase_rule_t *phase_rule, const axutil_env_t *env, const axis2_char_t *before)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">AXIS2_EXTERN axis2_status_t axis2_phase_rule_set_before           </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="group__axis2__phase__rule.html#g9c63c3673a8a009300b1d5c6d89cc3f5">axis2_phase_rule_t</a> *&nbsp;</td>
          <td class="paramname"> <em>phase_rule</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const <a class="el" href="structaxutil__env.html">axutil_env_t</a> *&nbsp;</td>
          <td class="paramname"> <em>env</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const axis2_char_t *&nbsp;</td>
          <td class="paramname"> <em>before</em></td><td>&nbsp;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td><td width="100%"></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
Sets the name of the handler before which the handler associated with this rule should be placed. <dl compact><dt><b>Parameters:</b></dt><dd>
  <table border="0" cellspacing="2" cellpadding="0">
    <tr><td valign="top"></td><td valign="top"><em>phase_rule</em>&nbsp;</td><td>pointer to phase rule </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>env</em>&nbsp;</td><td>pointer to environment struct </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>before</em>&nbsp;</td><td>name of handler before which the handler should be placed </td></tr>
  </table>
</dl>
<dl class="return" compact><dt><b>Returns:</b></dt><dd>AXIS2_SUCCESS on success, else AXIS2_FAILURE </dd></dl>

</div>
</div><p>
<a class="anchor" name="ge2de00428e8ec57f9008d1180b0eac53"></a><!-- doxytag: member="axis2_phase_rule.h::axis2_phase_rule_set_first" ref="ge2de00428e8ec57f9008d1180b0eac53" args="(axis2_phase_rule_t *phase_rule, const axutil_env_t *env, axis2_bool_t first)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">AXIS2_EXTERN axis2_status_t axis2_phase_rule_set_first           </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="group__axis2__phase__rule.html#g9c63c3673a8a009300b1d5c6d89cc3f5">axis2_phase_rule_t</a> *&nbsp;</td>
          <td class="paramname"> <em>phase_rule</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const <a class="el" href="structaxutil__env.html">axutil_env_t</a> *&nbsp;</td>
          <td class="paramname"> <em>env</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">axis2_bool_t&nbsp;</td>
          <td class="paramname"> <em>first</em></td><td>&nbsp;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td><td width="100%"></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
Sets handler to be the first in phase. <dl compact><dt><b>Parameters:</b></dt><dd>
  <table border="0" cellspacing="2" cellpadding="0">
    <tr><td valign="top"></td><td valign="top"><em>phase_rule</em>&nbsp;</td><td>pointer to phase rule </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>env</em>&nbsp;</td><td>pointer to environment struct </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>first</em>&nbsp;</td><td>AXIS2_TRUE if the handler associated with this rule is the first in phase, else AXIS2_FALSE </td></tr>
  </table>
</dl>
<dl class="return" compact><dt><b>Returns:</b></dt><dd>AXIS2_SUCCESS on success, else AXIS2_FAILURE </dd></dl>

</div>
</div><p>
<a class="anchor" name="g65020e799dcdc0bd401d1abc793ea18c"></a><!-- doxytag: member="axis2_phase_rule.h::axis2_phase_rule_set_last" ref="g65020e799dcdc0bd401d1abc793ea18c" args="(axis2_phase_rule_t *phase_rule, const axutil_env_t *env, axis2_bool_t last)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">AXIS2_EXTERN axis2_status_t axis2_phase_rule_set_last           </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="group__axis2__phase__rule.html#g9c63c3673a8a009300b1d5c6d89cc3f5">axis2_phase_rule_t</a> *&nbsp;</td>
          <td class="paramname"> <em>phase_rule</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const <a class="el" href="structaxutil__env.html">axutil_env_t</a> *&nbsp;</td>
          <td class="paramname"> <em>env</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">axis2_bool_t&nbsp;</td>
          <td class="paramname"> <em>last</em></td><td>&nbsp;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td><td width="100%"></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
Sets handler to be the last in phase. <dl compact><dt><b>Parameters:</b></dt><dd>
  <table border="0" cellspacing="2" cellpadding="0">
    <tr><td valign="top"></td><td valign="top"><em>phase_rule</em>&nbsp;</td><td>pointer to phase rule </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>env</em>&nbsp;</td><td>pointer to environment struct </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>last</em>&nbsp;</td><td>AXIS2_TRUE if the handler associated with this rule is the last in phase, else AXIS2_FALSE </td></tr>
  </table>
</dl>
<dl class="return" compact><dt><b>Returns:</b></dt><dd>AXIS2_SUCCESS on success, else AXIS2_FAILURE </dd></dl>

</div>
</div><p>
<a class="anchor" name="g2b76a8aa8c2004573d01df1c95b74ee6"></a><!-- doxytag: member="axis2_phase_rule.h::axis2_phase_rule_set_name" ref="g2b76a8aa8c2004573d01df1c95b74ee6" args="(axis2_phase_rule_t *phase_rule, const axutil_env_t *env, const axis2_char_t *name)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">AXIS2_EXTERN axis2_status_t axis2_phase_rule_set_name           </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="group__axis2__phase__rule.html#g9c63c3673a8a009300b1d5c6d89cc3f5">axis2_phase_rule_t</a> *&nbsp;</td>
          <td class="paramname"> <em>phase_rule</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const <a class="el" href="structaxutil__env.html">axutil_env_t</a> *&nbsp;</td>
          <td class="paramname"> <em>env</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const axis2_char_t *&nbsp;</td>
          <td class="paramname"> <em>name</em></td><td>&nbsp;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td><td width="100%"></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
Sets name. <dl compact><dt><b>Parameters:</b></dt><dd>
  <table border="0" cellspacing="2" cellpadding="0">
    <tr><td valign="top"></td><td valign="top"><em>phase_rule</em>&nbsp;</td><td>pointer to phase rule </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>env</em>&nbsp;</td><td>pointer to environment struct </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>name</em>&nbsp;</td><td>name string </td></tr>
  </table>
</dl>
<dl class="return" compact><dt><b>Returns:</b></dt><dd>AXIS2_SUCCESS on success, else AXIS2_FAILURE </dd></dl>

</div>
</div><p>
<hr size="1"><address style="text-align: right;"><small>Generated on Fri Apr 17 11:49:45 2009 for Axis2/C by&nbsp;
<a href="http://www.doxygen.org/index.html">
<img src="doxygen.png" alt="doxygen" align="middle" border="0"></a> 1.5.3 </small></address>
</body>
</html>


<|start_filename|>xdocs/api/html/axis2__simple__http__svr__conn_8h.html<|end_filename|>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html><head><meta http-equiv="Content-Type" content="text/html;charset=UTF-8">
<title>Axis2/C: axis2_simple_http_svr_conn.h File Reference</title>
<link href="doxygen.css" rel="stylesheet" type="text/css">
<link href="tabs.css" rel="stylesheet" type="text/css">
</head><body>
<!-- Generated by Doxygen 1.5.3 -->
<div class="tabs">
  <ul>
    <li><a href="index.html"><span>Main&nbsp;Page</span></a></li>
    <li><a href="modules.html"><span>Modules</span></a></li>
    <li><a href="annotated.html"><span>Classes</span></a></li>
    <li class="current"><a href="files.html"><span>Files</span></a></li>
    <li><a href="dirs.html"><span>Directories</span></a></li>
    <li><a href="pages.html"><span>Related&nbsp;Pages</span></a></li>
    <li><a href="examples.html"><span>Examples</span></a></li>
    <li>
      <form action="search.php" method="get">
        <table cellspacing="0" cellpadding="0" border="0">
          <tr>
            <td><label>&nbsp;<u>S</u>earch&nbsp;for&nbsp;</label></td>
            <td><input type="text" name="query" value="" size="20" accesskey="s"/></td>
          </tr>
        </table>
      </form>
    </li>
  </ul>
</div>
<div class="nav">
<a class="el" href="dir_f60961de8e5edc3b2658ef023e959e45.html">deploy</a>&nbsp;&raquo&nbsp;<a class="el" href="dir_6b4e91e54b7316b376882a6402adbf44.html">include</a>&nbsp;&raquo&nbsp;<a class="el" href="dir_df3a7695d5a9e696f30b948b566829e7.html">axis2-1.6.0</a></div>
<h1>axis2_simple_http_svr_conn.h File Reference</h1>Axis2 simple http server connection. <a href="#_details">More...</a>
<p>
<code>#include &lt;axis2_const.h&gt;</code><br>
<code>#include &lt;<a class="el" href="axis2__defines_8h-source.html">axis2_defines.h</a>&gt;</code><br>
<code>#include &lt;<a class="el" href="axutil__env_8h-source.html">axutil_env.h</a>&gt;</code><br>
<code>#include &lt;<a class="el" href="axis2__http__simple__request_8h-source.html">axis2_http_simple_request.h</a>&gt;</code><br>
<code>#include &lt;axis2_http_simple_response.h&gt;</code><br>
<code>#include &lt;<a class="el" href="axis2__http__response__writer_8h-source.html">axis2_http_response_writer.h</a>&gt;</code><br>

<p>
<a href="axis2__simple__http__svr__conn_8h-source.html">Go to the source code of this file.</a><table border="0" cellpadding="0" cellspacing="0">
<tr><td></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="b04bf2e277b8c0935e6322d72cf2c21b"></a><!-- doxytag: member="axis2_simple_http_svr_conn.h::axis2_simple_http_svr_conn_t" ref="b04bf2e277b8c0935e6322d72cf2c21b" args="" -->
typedef struct <br>
axis2_simple_http_svr_conn&nbsp;</td><td class="memItemRight" valign="bottom"><b>axis2_simple_http_svr_conn_t</b></td></tr>

<tr><td class="memItemLeft" nowrap align="right" valign="top">AXIS2_EXTERN <br>
axis2_status_t&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="axis2__simple__http__svr__conn_8h.html#8e73143cc65dc21245af0fd6135be2ad">axis2_simple_http_svr_conn_close</a> (axis2_simple_http_svr_conn_t *svr_conn, const <a class="el" href="structaxutil__env.html">axutil_env_t</a> *env)</td></tr>

<tr><td class="memItemLeft" nowrap align="right" valign="top">AXIS2_EXTERN axis2_bool_t&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="axis2__simple__http__svr__conn_8h.html#186ef9e05e9b1e7125ddf020412caa88">axis2_simple_http_svr_conn_is_open</a> (axis2_simple_http_svr_conn_t *svr_conn, const <a class="el" href="structaxutil__env.html">axutil_env_t</a> *env)</td></tr>

<tr><td class="memItemLeft" nowrap align="right" valign="top">AXIS2_EXTERN <br>
axis2_status_t&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="axis2__simple__http__svr__conn_8h.html#03a2d4fcb2b4fd8cbb7a5599d8017937">axis2_simple_http_svr_conn_set_keep_alive</a> (axis2_simple_http_svr_conn_t *svr_conn, const <a class="el" href="structaxutil__env.html">axutil_env_t</a> *env, axis2_bool_t keep_alive)</td></tr>

<tr><td class="memItemLeft" nowrap align="right" valign="top">AXIS2_EXTERN axis2_bool_t&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="axis2__simple__http__svr__conn_8h.html#6fac44d24157d8947ec27056b3e9d66e">axis2_simple_http_svr_conn_is_keep_alive</a> (axis2_simple_http_svr_conn_t *svr_conn, const <a class="el" href="structaxutil__env.html">axutil_env_t</a> *env)</td></tr>

<tr><td class="memItemLeft" nowrap align="right" valign="top">AXIS2_EXTERN <br>
axutil_stream_t *&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="axis2__simple__http__svr__conn_8h.html#ae980e99f336b1d6e33c8c33f857eabc">axis2_simple_http_svr_conn_get_stream</a> (const axis2_simple_http_svr_conn_t *svr_conn, const <a class="el" href="structaxutil__env.html">axutil_env_t</a> *env)</td></tr>

<tr><td class="memItemLeft" nowrap align="right" valign="top">AXIS2_EXTERN <br>
<a class="el" href="group__axis2__http__response__writer.html#g2259f3ec5abf54528a6b9797e8188771">axis2_http_response_writer_t</a> *&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="axis2__simple__http__svr__conn_8h.html#20ca807331098d9e762a931b0ada7921">axis2_simple_http_svr_conn_get_writer</a> (const axis2_simple_http_svr_conn_t *svr_conn, const <a class="el" href="structaxutil__env.html">axutil_env_t</a> *env)</td></tr>

<tr><td class="memItemLeft" nowrap align="right" valign="top">AXIS2_EXTERN <br>
<a class="el" href="group__axis2__http__simple__request.html#g587c6b13c2e9b94b68e3a2a142cc3416">axis2_http_simple_request_t</a> *&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="axis2__simple__http__svr__conn_8h.html#66c2425d7f064862abd57a3039214531">axis2_simple_http_svr_conn_read_request</a> (axis2_simple_http_svr_conn_t *svr_conn, const <a class="el" href="structaxutil__env.html">axutil_env_t</a> *env)</td></tr>

<tr><td class="memItemLeft" nowrap align="right" valign="top">AXIS2_EXTERN <br>
axis2_status_t&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="axis2__simple__http__svr__conn_8h.html#9c5f441d8ba42ed821177698719aae49">axis2_simple_http_svr_conn_write_response</a> (axis2_simple_http_svr_conn_t *svr_conn, const <a class="el" href="structaxutil__env.html">axutil_env_t</a> *env, <a class="el" href="group__axis2__http__simple__response.html#g5ebc18702d80d368692d1922f9accb1f">axis2_http_simple_response_t</a> *response)</td></tr>

<tr><td class="memItemLeft" nowrap align="right" valign="top">AXIS2_EXTERN <br>
axis2_status_t&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="axis2__simple__http__svr__conn_8h.html#29cb398cc123654c068598dfec057da7">axis2_simple_http_svr_conn_set_rcv_timeout</a> (axis2_simple_http_svr_conn_t *svr_conn, const <a class="el" href="structaxutil__env.html">axutil_env_t</a> *env, int timeout)</td></tr>

<tr><td class="memItemLeft" nowrap align="right" valign="top">AXIS2_EXTERN <br>
axis2_status_t&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="axis2__simple__http__svr__conn_8h.html#8c6523b52c1259a074454155d2518af5">axis2_simple_http_svr_conn_set_snd_timeout</a> (axis2_simple_http_svr_conn_t *svr_conn, const <a class="el" href="structaxutil__env.html">axutil_env_t</a> *env, int timeout)</td></tr>

<tr><td class="memItemLeft" nowrap align="right" valign="top">AXIS2_EXTERN <br>
axis2_char_t *&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="axis2__simple__http__svr__conn_8h.html#a77cb5a274e07015c40d81f352349b29">axis2_simple_http_svr_conn_get_svr_ip</a> (const axis2_simple_http_svr_conn_t *svr_conn, const <a class="el" href="structaxutil__env.html">axutil_env_t</a> *env)</td></tr>

<tr><td class="memItemLeft" nowrap align="right" valign="top">AXIS2_EXTERN <br>
axis2_char_t *&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="axis2__simple__http__svr__conn_8h.html#40d5571375a2c2cae2274d29760e3a49">axis2_simple_http_svr_conn_get_peer_ip</a> (const axis2_simple_http_svr_conn_t *svr_conn, const <a class="el" href="structaxutil__env.html">axutil_env_t</a> *env)</td></tr>

<tr><td class="memItemLeft" nowrap align="right" valign="top">AXIS2_EXTERN void&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="axis2__simple__http__svr__conn_8h.html#5718356edb01a8c6a62fc466e4ba5f35">axis2_simple_http_svr_conn_free</a> (axis2_simple_http_svr_conn_t *svr_conn, const <a class="el" href="structaxutil__env.html">axutil_env_t</a> *env)</td></tr>

<tr><td class="memItemLeft" nowrap align="right" valign="top">AXIS2_EXTERN <br>
axis2_simple_http_svr_conn_t *&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="axis2__simple__http__svr__conn_8h.html#4b1f415af7c9512db5e66d4eef1ba24c">axis2_simple_http_svr_conn_create</a> (const <a class="el" href="structaxutil__env.html">axutil_env_t</a> *env, int sockfd)</td></tr>

</table>
<hr><a name="_details"></a><h2>Detailed Description</h2>
Axis2 simple http server connection. 
<p>
<hr><h2>Function Documentation</h2>
<a class="anchor" name="8e73143cc65dc21245af0fd6135be2ad"></a><!-- doxytag: member="axis2_simple_http_svr_conn.h::axis2_simple_http_svr_conn_close" ref="8e73143cc65dc21245af0fd6135be2ad" args="(axis2_simple_http_svr_conn_t *svr_conn, const axutil_env_t *env)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">AXIS2_EXTERN axis2_status_t axis2_simple_http_svr_conn_close           </td>
          <td>(</td>
          <td class="paramtype">axis2_simple_http_svr_conn_t *&nbsp;</td>
          <td class="paramname"> <em>svr_conn</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const <a class="el" href="structaxutil__env.html">axutil_env_t</a> *&nbsp;</td>
          <td class="paramname"> <em>env</em></td><td>&nbsp;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td><td width="100%"></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
<dl compact><dt><b>Parameters:</b></dt><dd>
  <table border="0" cellspacing="2" cellpadding="0">
    <tr><td valign="top"></td><td valign="top"><em>svr_conn</em>&nbsp;</td><td>pointer to server connection struct </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>env</em>&nbsp;</td><td>pointer to environment struct </td></tr>
  </table>
</dl>
<dl class="return" compact><dt><b>Returns:</b></dt><dd>AXIS2_SUCCESS on success, else AXIS2_FAILURE </dd></dl>

</div>
</div><p>
<a class="anchor" name="4b1f415af7c9512db5e66d4eef1ba24c"></a><!-- doxytag: member="axis2_simple_http_svr_conn.h::axis2_simple_http_svr_conn_create" ref="4b1f415af7c9512db5e66d4eef1ba24c" args="(const axutil_env_t *env, int sockfd)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">AXIS2_EXTERN axis2_simple_http_svr_conn_t* axis2_simple_http_svr_conn_create           </td>
          <td>(</td>
          <td class="paramtype">const <a class="el" href="structaxutil__env.html">axutil_env_t</a> *&nbsp;</td>
          <td class="paramname"> <em>env</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">int&nbsp;</td>
          <td class="paramname"> <em>sockfd</em></td><td>&nbsp;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td><td width="100%"></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
creates axis2_simple_http_svr_conn struct <dl compact><dt><b>Parameters:</b></dt><dd>
  <table border="0" cellspacing="2" cellpadding="0">
    <tr><td valign="top"></td><td valign="top"><em>env</em>&nbsp;</td><td>pointer to environment struct </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>sockfd</em>&nbsp;</td><td>sockfd </td></tr>
  </table>
</dl>

</div>
</div><p>
<a class="anchor" name="5718356edb01a8c6a62fc466e4ba5f35"></a><!-- doxytag: member="axis2_simple_http_svr_conn.h::axis2_simple_http_svr_conn_free" ref="5718356edb01a8c6a62fc466e4ba5f35" args="(axis2_simple_http_svr_conn_t *svr_conn, const axutil_env_t *env)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">AXIS2_EXTERN void axis2_simple_http_svr_conn_free           </td>
          <td>(</td>
          <td class="paramtype">axis2_simple_http_svr_conn_t *&nbsp;</td>
          <td class="paramname"> <em>svr_conn</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const <a class="el" href="structaxutil__env.html">axutil_env_t</a> *&nbsp;</td>
          <td class="paramname"> <em>env</em></td><td>&nbsp;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td><td width="100%"></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
<dl compact><dt><b>Parameters:</b></dt><dd>
  <table border="0" cellspacing="2" cellpadding="0">
    <tr><td valign="top"></td><td valign="top"><em>svr_conn</em>&nbsp;</td><td>pointer to server connection struct </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>env</em>&nbsp;</td><td>pointer to environment struct </td></tr>
  </table>
</dl>
<dl class="return" compact><dt><b>Returns:</b></dt><dd>AXIS2_SUCCESS on success, else AXIS2_FAILURE </dd></dl>

</div>
</div><p>
<a class="anchor" name="40d5571375a2c2cae2274d29760e3a49"></a><!-- doxytag: member="axis2_simple_http_svr_conn.h::axis2_simple_http_svr_conn_get_peer_ip" ref="40d5571375a2c2cae2274d29760e3a49" args="(const axis2_simple_http_svr_conn_t *svr_conn, const axutil_env_t *env)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">AXIS2_EXTERN axis2_char_t* axis2_simple_http_svr_conn_get_peer_ip           </td>
          <td>(</td>
          <td class="paramtype">const axis2_simple_http_svr_conn_t *&nbsp;</td>
          <td class="paramname"> <em>svr_conn</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const <a class="el" href="structaxutil__env.html">axutil_env_t</a> *&nbsp;</td>
          <td class="paramname"> <em>env</em></td><td>&nbsp;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td><td width="100%"></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
<dl compact><dt><b>Parameters:</b></dt><dd>
  <table border="0" cellspacing="2" cellpadding="0">
    <tr><td valign="top"></td><td valign="top"><em>svr_conn</em>&nbsp;</td><td>pointer to server connection struct </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>env</em>&nbsp;</td><td>pointer to environment struct </td></tr>
  </table>
</dl>

</div>
</div><p>
<a class="anchor" name="ae980e99f336b1d6e33c8c33f857eabc"></a><!-- doxytag: member="axis2_simple_http_svr_conn.h::axis2_simple_http_svr_conn_get_stream" ref="ae980e99f336b1d6e33c8c33f857eabc" args="(const axis2_simple_http_svr_conn_t *svr_conn, const axutil_env_t *env)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">AXIS2_EXTERN axutil_stream_t* axis2_simple_http_svr_conn_get_stream           </td>
          <td>(</td>
          <td class="paramtype">const axis2_simple_http_svr_conn_t *&nbsp;</td>
          <td class="paramname"> <em>svr_conn</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const <a class="el" href="structaxutil__env.html">axutil_env_t</a> *&nbsp;</td>
          <td class="paramname"> <em>env</em></td><td>&nbsp;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td><td width="100%"></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
<dl compact><dt><b>Parameters:</b></dt><dd>
  <table border="0" cellspacing="2" cellpadding="0">
    <tr><td valign="top"></td><td valign="top"><em>svr_conn</em>&nbsp;</td><td>pointer to server connection struct </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>env</em>&nbsp;</td><td>pointer to environment struct </td></tr>
  </table>
</dl>

</div>
</div><p>
<a class="anchor" name="a77cb5a274e07015c40d81f352349b29"></a><!-- doxytag: member="axis2_simple_http_svr_conn.h::axis2_simple_http_svr_conn_get_svr_ip" ref="a77cb5a274e07015c40d81f352349b29" args="(const axis2_simple_http_svr_conn_t *svr_conn, const axutil_env_t *env)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">AXIS2_EXTERN axis2_char_t* axis2_simple_http_svr_conn_get_svr_ip           </td>
          <td>(</td>
          <td class="paramtype">const axis2_simple_http_svr_conn_t *&nbsp;</td>
          <td class="paramname"> <em>svr_conn</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const <a class="el" href="structaxutil__env.html">axutil_env_t</a> *&nbsp;</td>
          <td class="paramname"> <em>env</em></td><td>&nbsp;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td><td width="100%"></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
<dl compact><dt><b>Parameters:</b></dt><dd>
  <table border="0" cellspacing="2" cellpadding="0">
    <tr><td valign="top"></td><td valign="top"><em>svr_conn</em>&nbsp;</td><td>pointer to server connection struct </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>env</em>&nbsp;</td><td>pointer to environment struct </td></tr>
  </table>
</dl>

</div>
</div><p>
<a class="anchor" name="20ca807331098d9e762a931b0ada7921"></a><!-- doxytag: member="axis2_simple_http_svr_conn.h::axis2_simple_http_svr_conn_get_writer" ref="20ca807331098d9e762a931b0ada7921" args="(const axis2_simple_http_svr_conn_t *svr_conn, const axutil_env_t *env)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">AXIS2_EXTERN <a class="el" href="group__axis2__http__response__writer.html#g2259f3ec5abf54528a6b9797e8188771">axis2_http_response_writer_t</a>* axis2_simple_http_svr_conn_get_writer           </td>
          <td>(</td>
          <td class="paramtype">const axis2_simple_http_svr_conn_t *&nbsp;</td>
          <td class="paramname"> <em>svr_conn</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const <a class="el" href="structaxutil__env.html">axutil_env_t</a> *&nbsp;</td>
          <td class="paramname"> <em>env</em></td><td>&nbsp;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td><td width="100%"></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
<dl compact><dt><b>Parameters:</b></dt><dd>
  <table border="0" cellspacing="2" cellpadding="0">
    <tr><td valign="top"></td><td valign="top"><em>svr_conn</em>&nbsp;</td><td>pointer to server connection struct </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>env</em>&nbsp;</td><td>pointer to environment struct </td></tr>
  </table>
</dl>

</div>
</div><p>
<a class="anchor" name="6fac44d24157d8947ec27056b3e9d66e"></a><!-- doxytag: member="axis2_simple_http_svr_conn.h::axis2_simple_http_svr_conn_is_keep_alive" ref="6fac44d24157d8947ec27056b3e9d66e" args="(axis2_simple_http_svr_conn_t *svr_conn, const axutil_env_t *env)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">AXIS2_EXTERN axis2_bool_t axis2_simple_http_svr_conn_is_keep_alive           </td>
          <td>(</td>
          <td class="paramtype">axis2_simple_http_svr_conn_t *&nbsp;</td>
          <td class="paramname"> <em>svr_conn</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const <a class="el" href="structaxutil__env.html">axutil_env_t</a> *&nbsp;</td>
          <td class="paramname"> <em>env</em></td><td>&nbsp;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td><td width="100%"></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
<dl compact><dt><b>Parameters:</b></dt><dd>
  <table border="0" cellspacing="2" cellpadding="0">
    <tr><td valign="top"></td><td valign="top"><em>svr_conn</em>&nbsp;</td><td>pointer to server connection struct </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>env</em>&nbsp;</td><td>pointer to environment struct </td></tr>
  </table>
</dl>

</div>
</div><p>
<a class="anchor" name="186ef9e05e9b1e7125ddf020412caa88"></a><!-- doxytag: member="axis2_simple_http_svr_conn.h::axis2_simple_http_svr_conn_is_open" ref="186ef9e05e9b1e7125ddf020412caa88" args="(axis2_simple_http_svr_conn_t *svr_conn, const axutil_env_t *env)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">AXIS2_EXTERN axis2_bool_t axis2_simple_http_svr_conn_is_open           </td>
          <td>(</td>
          <td class="paramtype">axis2_simple_http_svr_conn_t *&nbsp;</td>
          <td class="paramname"> <em>svr_conn</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const <a class="el" href="structaxutil__env.html">axutil_env_t</a> *&nbsp;</td>
          <td class="paramname"> <em>env</em></td><td>&nbsp;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td><td width="100%"></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
<dl compact><dt><b>Parameters:</b></dt><dd>
  <table border="0" cellspacing="2" cellpadding="0">
    <tr><td valign="top"></td><td valign="top"><em>svr_conn</em>&nbsp;</td><td>pointer to server connection struct </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>env</em>&nbsp;</td><td>pointer to environment struct </td></tr>
  </table>
</dl>

</div>
</div><p>
<a class="anchor" name="66c2425d7f064862abd57a3039214531"></a><!-- doxytag: member="axis2_simple_http_svr_conn.h::axis2_simple_http_svr_conn_read_request" ref="66c2425d7f064862abd57a3039214531" args="(axis2_simple_http_svr_conn_t *svr_conn, const axutil_env_t *env)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">AXIS2_EXTERN <a class="el" href="group__axis2__http__simple__request.html#g587c6b13c2e9b94b68e3a2a142cc3416">axis2_http_simple_request_t</a>* axis2_simple_http_svr_conn_read_request           </td>
          <td>(</td>
          <td class="paramtype">axis2_simple_http_svr_conn_t *&nbsp;</td>
          <td class="paramname"> <em>svr_conn</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const <a class="el" href="structaxutil__env.html">axutil_env_t</a> *&nbsp;</td>
          <td class="paramname"> <em>env</em></td><td>&nbsp;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td><td width="100%"></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
<dl compact><dt><b>Parameters:</b></dt><dd>
  <table border="0" cellspacing="2" cellpadding="0">
    <tr><td valign="top"></td><td valign="top"><em>svr_conn</em>&nbsp;</td><td>pointer to server connection struct </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>env</em>&nbsp;</td><td>pointer to environment struct </td></tr>
  </table>
</dl>

</div>
</div><p>
<a class="anchor" name="03a2d4fcb2b4fd8cbb7a5599d8017937"></a><!-- doxytag: member="axis2_simple_http_svr_conn.h::axis2_simple_http_svr_conn_set_keep_alive" ref="03a2d4fcb2b4fd8cbb7a5599d8017937" args="(axis2_simple_http_svr_conn_t *svr_conn, const axutil_env_t *env, axis2_bool_t keep_alive)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">AXIS2_EXTERN axis2_status_t axis2_simple_http_svr_conn_set_keep_alive           </td>
          <td>(</td>
          <td class="paramtype">axis2_simple_http_svr_conn_t *&nbsp;</td>
          <td class="paramname"> <em>svr_conn</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const <a class="el" href="structaxutil__env.html">axutil_env_t</a> *&nbsp;</td>
          <td class="paramname"> <em>env</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">axis2_bool_t&nbsp;</td>
          <td class="paramname"> <em>keep_alive</em></td><td>&nbsp;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td><td width="100%"></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
<dl compact><dt><b>Parameters:</b></dt><dd>
  <table border="0" cellspacing="2" cellpadding="0">
    <tr><td valign="top"></td><td valign="top"><em>svr_conn</em>&nbsp;</td><td>pointer to server connection struct </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>env</em>&nbsp;</td><td>pointer to environment struct </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>keep_alive</em>&nbsp;</td><td></td></tr>
  </table>
</dl>
<dl class="return" compact><dt><b>Returns:</b></dt><dd>AXIS2_SUCCESS on success, else AXIS2_FAILURE </dd></dl>

</div>
</div><p>
<a class="anchor" name="29cb398cc123654c068598dfec057da7"></a><!-- doxytag: member="axis2_simple_http_svr_conn.h::axis2_simple_http_svr_conn_set_rcv_timeout" ref="29cb398cc123654c068598dfec057da7" args="(axis2_simple_http_svr_conn_t *svr_conn, const axutil_env_t *env, int timeout)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">AXIS2_EXTERN axis2_status_t axis2_simple_http_svr_conn_set_rcv_timeout           </td>
          <td>(</td>
          <td class="paramtype">axis2_simple_http_svr_conn_t *&nbsp;</td>
          <td class="paramname"> <em>svr_conn</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const <a class="el" href="structaxutil__env.html">axutil_env_t</a> *&nbsp;</td>
          <td class="paramname"> <em>env</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">int&nbsp;</td>
          <td class="paramname"> <em>timeout</em></td><td>&nbsp;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td><td width="100%"></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
<dl compact><dt><b>Parameters:</b></dt><dd>
  <table border="0" cellspacing="2" cellpadding="0">
    <tr><td valign="top"></td><td valign="top"><em>svr_conn</em>&nbsp;</td><td>pointer to server connection struct </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>env</em>&nbsp;</td><td>pointer to environment struct </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>timeout</em>&nbsp;</td><td>timeout </td></tr>
  </table>
</dl>
<dl class="return" compact><dt><b>Returns:</b></dt><dd>AXIS2_SUCCESS on success, else AXIS2_FAILURE </dd></dl>

</div>
</div><p>
<a class="anchor" name="8c6523b52c1259a074454155d2518af5"></a><!-- doxytag: member="axis2_simple_http_svr_conn.h::axis2_simple_http_svr_conn_set_snd_timeout" ref="8c6523b52c1259a074454155d2518af5" args="(axis2_simple_http_svr_conn_t *svr_conn, const axutil_env_t *env, int timeout)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">AXIS2_EXTERN axis2_status_t axis2_simple_http_svr_conn_set_snd_timeout           </td>
          <td>(</td>
          <td class="paramtype">axis2_simple_http_svr_conn_t *&nbsp;</td>
          <td class="paramname"> <em>svr_conn</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const <a class="el" href="structaxutil__env.html">axutil_env_t</a> *&nbsp;</td>
          <td class="paramname"> <em>env</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">int&nbsp;</td>
          <td class="paramname"> <em>timeout</em></td><td>&nbsp;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td><td width="100%"></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
<dl compact><dt><b>Parameters:</b></dt><dd>
  <table border="0" cellspacing="2" cellpadding="0">
    <tr><td valign="top"></td><td valign="top"><em>svr_conn</em>&nbsp;</td><td>pointer to server connection struct </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>env</em>&nbsp;</td><td>pointer to environment struct </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>timeout</em>&nbsp;</td><td>timeout </td></tr>
  </table>
</dl>
<dl class="return" compact><dt><b>Returns:</b></dt><dd>AXIS2_SUCCESS on success, else AXIS2_FAILURE </dd></dl>

</div>
</div><p>
<a class="anchor" name="9c5f441d8ba42ed821177698719aae49"></a><!-- doxytag: member="axis2_simple_http_svr_conn.h::axis2_simple_http_svr_conn_write_response" ref="9c5f441d8ba42ed821177698719aae49" args="(axis2_simple_http_svr_conn_t *svr_conn, const axutil_env_t *env, axis2_http_simple_response_t *response)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">AXIS2_EXTERN axis2_status_t axis2_simple_http_svr_conn_write_response           </td>
          <td>(</td>
          <td class="paramtype">axis2_simple_http_svr_conn_t *&nbsp;</td>
          <td class="paramname"> <em>svr_conn</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const <a class="el" href="structaxutil__env.html">axutil_env_t</a> *&nbsp;</td>
          <td class="paramname"> <em>env</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype"><a class="el" href="group__axis2__http__simple__response.html#g5ebc18702d80d368692d1922f9accb1f">axis2_http_simple_response_t</a> *&nbsp;</td>
          <td class="paramname"> <em>response</em></td><td>&nbsp;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td><td width="100%"></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
<dl compact><dt><b>Parameters:</b></dt><dd>
  <table border="0" cellspacing="2" cellpadding="0">
    <tr><td valign="top"></td><td valign="top"><em>svr_conn</em>&nbsp;</td><td>pointer to server connection struct </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>env</em>&nbsp;</td><td>pointer to environment struct </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>response</em>&nbsp;</td><td>response </td></tr>
  </table>
</dl>
<dl class="return" compact><dt><b>Returns:</b></dt><dd>AXIS2_SUCCESS on success, else AXIS2_FAILURE </dd></dl>

</div>
</div><p>
<hr size="1"><address style="text-align: right;"><small>Generated on Fri Apr 17 11:49:43 2009 for Axis2/C by&nbsp;
<a href="http://www.doxygen.org/index.html">
<img src="doxygen.png" alt="doxygen" align="middle" border="0"></a> 1.5.3 </small></address>
</body>
</html>


<|start_filename|>xdocs/api/html/group__axis2__msg__recv.html<|end_filename|>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html><head><meta http-equiv="Content-Type" content="text/html;charset=UTF-8">
<title>Axis2/C: message receiver</title>
<link href="doxygen.css" rel="stylesheet" type="text/css">
<link href="tabs.css" rel="stylesheet" type="text/css">
</head><body>
<!-- Generated by Doxygen 1.5.3 -->
<div class="tabs">
  <ul>
    <li><a href="index.html"><span>Main&nbsp;Page</span></a></li>
    <li><a href="modules.html"><span>Modules</span></a></li>
    <li><a href="annotated.html"><span>Classes</span></a></li>
    <li><a href="files.html"><span>Files</span></a></li>
    <li><a href="dirs.html"><span>Directories</span></a></li>
    <li><a href="pages.html"><span>Related&nbsp;Pages</span></a></li>
    <li><a href="examples.html"><span>Examples</span></a></li>
    <li>
      <form action="search.php" method="get">
        <table cellspacing="0" cellpadding="0" border="0">
          <tr>
            <td><label>&nbsp;<u>S</u>earch&nbsp;for&nbsp;</label></td>
            <td><input type="text" name="query" value="" size="20" accesskey="s"/></td>
          </tr>
        </table>
      </form>
    </li>
  </ul>
</div>
<h1>message receiver<br>
<small>
[<a class="el" href="group__axis2__receivers.html">receivers</a>]</small>
</h1><table border="0" cellpadding="0" cellspacing="0">
<tr><td></td></tr>
<tr><td colspan="2"><br><h2>Files</h2></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top">file &nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="axis2__msg__recv_8h.html">axis2_msg_recv.h</a></td></tr>

<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Axis Message Receiver interface. Message Receiver struct. This interface is extended by custom message receivers. <br></td></tr>

<p>
<tr><td colspan="2"><br><h2>Typedefs</h2></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top">typedef struct <br>
axis2_msg_recv&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__axis2__msg__recv.html#g7547da0893782e6165696315481247de">axis2_msg_recv_t</a></td></tr>

<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="g0a445de327b47b4cd88e5dabf610c810"></a><!-- doxytag: member="axis2_msg_recv::AXIS2_MSG_RECV_INVOKE_BUSINESS_LOGIC" ref="g0a445de327b47b4cd88e5dabf610c810" args=")(axis2_msg_recv_t *msg_recv, const axutil_env_t *env, struct axis2_msg_ctx *in_msg_ctx, struct axis2_msg_ctx *out_msg_ctx)" -->
typedef axis2_status_t(*&nbsp;</td><td class="memItemRight" valign="bottom"><b>AXIS2_MSG_RECV_INVOKE_BUSINESS_LOGIC</b> )(<a class="el" href="group__axis2__msg__recv.html#g7547da0893782e6165696315481247de">axis2_msg_recv_t</a> *msg_recv, const <a class="el" href="structaxutil__env.html">axutil_env_t</a> *env, struct axis2_msg_ctx *in_msg_ctx, struct axis2_msg_ctx *out_msg_ctx)</td></tr>

<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="gb34287c1340360777b91f6f8fb1a7103"></a><!-- doxytag: member="axis2_msg_recv::AXIS2_MSG_RECV_RECEIVE" ref="gb34287c1340360777b91f6f8fb1a7103" args=")(axis2_msg_recv_t *msg_recv, const axutil_env_t *env, struct axis2_msg_ctx *in_msg_ctx, void *callback_recv_param)" -->
typedef axis2_status_t(*&nbsp;</td><td class="memItemRight" valign="bottom"><b>AXIS2_MSG_RECV_RECEIVE</b> )(<a class="el" href="group__axis2__msg__recv.html#g7547da0893782e6165696315481247de">axis2_msg_recv_t</a> *msg_recv, const <a class="el" href="structaxutil__env.html">axutil_env_t</a> *env, struct axis2_msg_ctx *in_msg_ctx, void *callback_recv_param)</td></tr>

<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="g74593508310553ca87df6da9b3b50dda"></a><!-- doxytag: member="axis2_msg_recv::AXIS2_MSG_RECV_LOAD_AND_INIT_SVC" ref="g74593508310553ca87df6da9b3b50dda" args=")(axis2_msg_recv_t *msg_recv, const axutil_env_t *env, struct axis2_svc *svc)" -->
typedef axis2_status_t(*&nbsp;</td><td class="memItemRight" valign="bottom"><b>AXIS2_MSG_RECV_LOAD_AND_INIT_SVC</b> )(<a class="el" href="group__axis2__msg__recv.html#g7547da0893782e6165696315481247de">axis2_msg_recv_t</a> *msg_recv, const <a class="el" href="structaxutil__env.html">axutil_env_t</a> *env, struct axis2_svc *svc)</td></tr>

<tr><td colspan="2"><br><h2>Functions</h2></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top">AXIS2_EXTERN void&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__axis2__msg__recv.html#gb83887c699d1bf14afb27ad65cf9b8d4">axis2_msg_recv_free</a> (<a class="el" href="group__axis2__msg__recv.html#g7547da0893782e6165696315481247de">axis2_msg_recv_t</a> *msg_recv, const <a class="el" href="structaxutil__env.html">axutil_env_t</a> *env)</td></tr>

<tr><td class="memItemLeft" nowrap align="right" valign="top">AXIS2_EXTERN <br>
axis2_status_t&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__axis2__msg__recv.html#g7f214d78f066fe2c120652d2fce4b544">axis2_msg_recv_receive</a> (<a class="el" href="group__axis2__msg__recv.html#g7547da0893782e6165696315481247de">axis2_msg_recv_t</a> *msg_recv, const <a class="el" href="structaxutil__env.html">axutil_env_t</a> *env, struct axis2_msg_ctx *in_msg_ctx, void *callback_recv_param)</td></tr>

<tr><td class="memItemLeft" nowrap align="right" valign="top">AXIS2_EXTERN <br>
axis2_status_t&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__axis2__msg__recv.html#g4b958421f632a04e659883698ad70728">axis2_msg_recv_invoke_business_logic</a> (<a class="el" href="group__axis2__msg__recv.html#g7547da0893782e6165696315481247de">axis2_msg_recv_t</a> *msg_recv, const <a class="el" href="structaxutil__env.html">axutil_env_t</a> *env, struct axis2_msg_ctx *in_msg_ctx, struct axis2_msg_ctx *out_msg_ctx)</td></tr>

<tr><td class="memItemLeft" nowrap align="right" valign="top">AXIS2_EXTERN <br>
<a class="el" href="structaxis2__svc__skeleton.html">axis2_svc_skeleton_t</a> *&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__axis2__msg__recv.html#g0c811674ed07fe53ca54639291e0d001">axis2_msg_recv_make_new_svc_obj</a> (<a class="el" href="group__axis2__msg__recv.html#g7547da0893782e6165696315481247de">axis2_msg_recv_t</a> *msg_recv, const <a class="el" href="structaxutil__env.html">axutil_env_t</a> *env, struct axis2_msg_ctx *msg_ctx)</td></tr>

<tr><td class="memItemLeft" nowrap align="right" valign="top">AXIS2_EXTERN <br>
<a class="el" href="structaxis2__svc__skeleton.html">axis2_svc_skeleton_t</a> *&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__axis2__msg__recv.html#g428a780b155ad3d087c6222c1cbed978">axis2_msg_recv_get_impl_obj</a> (<a class="el" href="group__axis2__msg__recv.html#g7547da0893782e6165696315481247de">axis2_msg_recv_t</a> *msg_recv, const <a class="el" href="structaxutil__env.html">axutil_env_t</a> *env, struct axis2_msg_ctx *msg_ctx)</td></tr>

<tr><td class="memItemLeft" nowrap align="right" valign="top">AXIS2_EXTERN <br>
axis2_status_t&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__axis2__msg__recv.html#g7514db74a30752f14c1208adcabff8fc">axis2_msg_recv_set_scope</a> (<a class="el" href="group__axis2__msg__recv.html#g7547da0893782e6165696315481247de">axis2_msg_recv_t</a> *msg_recv, const <a class="el" href="structaxutil__env.html">axutil_env_t</a> *env, const axis2_char_t *scope)</td></tr>

<tr><td class="memItemLeft" nowrap align="right" valign="top">AXIS2_EXTERN <br>
axis2_char_t *&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__axis2__msg__recv.html#g8373c3b1dd3b4d774d6ecedd0993f4d5">axis2_msg_recv_get_scope</a> (<a class="el" href="group__axis2__msg__recv.html#g7547da0893782e6165696315481247de">axis2_msg_recv_t</a> *msg_recv, const <a class="el" href="structaxutil__env.html">axutil_env_t</a> *env)</td></tr>

<tr><td class="memItemLeft" nowrap align="right" valign="top">AXIS2_EXTERN <br>
axis2_status_t&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__axis2__msg__recv.html#gff566d302fe1980913798086325ec2a6">axis2_msg_recv_delete_svc_obj</a> (<a class="el" href="group__axis2__msg__recv.html#g7547da0893782e6165696315481247de">axis2_msg_recv_t</a> *msg_recv, const <a class="el" href="structaxutil__env.html">axutil_env_t</a> *env, <a class="el" href="group__axis2__msg__ctx.html#g160acae289ac39cb49fa625ffd88e410">axis2_msg_ctx_t</a> *msg_ctx)</td></tr>

<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="g16539b5323421debe6696589e5f1d9d0"></a><!-- doxytag: member="axis2_msg_recv::axis2_msg_recv_set_invoke_business_logic" ref="g16539b5323421debe6696589e5f1d9d0" args="(axis2_msg_recv_t *msg_recv, const axutil_env_t *env, AXIS2_MSG_RECV_INVOKE_BUSINESS_LOGIC func)" -->
AXIS2_EXPORT <br>
axis2_status_t&nbsp;</td><td class="memItemRight" valign="bottom"><b>axis2_msg_recv_set_invoke_business_logic</b> (<a class="el" href="group__axis2__msg__recv.html#g7547da0893782e6165696315481247de">axis2_msg_recv_t</a> *msg_recv, const <a class="el" href="structaxutil__env.html">axutil_env_t</a> *env, AXIS2_MSG_RECV_INVOKE_BUSINESS_LOGIC func)</td></tr>

<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="gcdc64450f40747240f24a4e40f053a5a"></a><!-- doxytag: member="axis2_msg_recv::axis2_msg_recv_set_derived" ref="gcdc64450f40747240f24a4e40f053a5a" args="(axis2_msg_recv_t *msg_recv, const axutil_env_t *env, void *derived)" -->
AXIS2_EXPORT <br>
axis2_status_t&nbsp;</td><td class="memItemRight" valign="bottom"><b>axis2_msg_recv_set_derived</b> (<a class="el" href="group__axis2__msg__recv.html#g7547da0893782e6165696315481247de">axis2_msg_recv_t</a> *msg_recv, const <a class="el" href="structaxutil__env.html">axutil_env_t</a> *env, void *derived)</td></tr>

<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="g30553acfda7bbb75d8031cc0843322c1"></a><!-- doxytag: member="axis2_msg_recv::axis2_msg_recv_get_derived" ref="g30553acfda7bbb75d8031cc0843322c1" args="(const axis2_msg_recv_t *msg_recv, const axutil_env_t *env)" -->
AXIS2_EXPORT void *&nbsp;</td><td class="memItemRight" valign="bottom"><b>axis2_msg_recv_get_derived</b> (const <a class="el" href="group__axis2__msg__recv.html#g7547da0893782e6165696315481247de">axis2_msg_recv_t</a> *msg_recv, const <a class="el" href="structaxutil__env.html">axutil_env_t</a> *env)</td></tr>

<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="gbac792c20ab498050143ac9046b0950a"></a><!-- doxytag: member="axis2_msg_recv::axis2_msg_recv_set_receive" ref="gbac792c20ab498050143ac9046b0950a" args="(axis2_msg_recv_t *msg_recv, const axutil_env_t *env, AXIS2_MSG_RECV_RECEIVE func)" -->
AXIS2_EXPORT <br>
axis2_status_t&nbsp;</td><td class="memItemRight" valign="bottom"><b>axis2_msg_recv_set_receive</b> (<a class="el" href="group__axis2__msg__recv.html#g7547da0893782e6165696315481247de">axis2_msg_recv_t</a> *msg_recv, const <a class="el" href="structaxutil__env.html">axutil_env_t</a> *env, AXIS2_MSG_RECV_RECEIVE func)</td></tr>

<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="g4fde87faee6913c5852a3866b877f22f"></a><!-- doxytag: member="axis2_msg_recv::axis2_msg_recv_set_load_and_init_svc" ref="g4fde87faee6913c5852a3866b877f22f" args="(axis2_msg_recv_t *msg_recv, const axutil_env_t *env, AXIS2_MSG_RECV_LOAD_AND_INIT_SVC func)" -->
AXIS2_EXPORT <br>
axis2_status_t&nbsp;</td><td class="memItemRight" valign="bottom"><b>axis2_msg_recv_set_load_and_init_svc</b> (<a class="el" href="group__axis2__msg__recv.html#g7547da0893782e6165696315481247de">axis2_msg_recv_t</a> *msg_recv, const <a class="el" href="structaxutil__env.html">axutil_env_t</a> *env, AXIS2_MSG_RECV_LOAD_AND_INIT_SVC func)</td></tr>

<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="gfdc9258a276b87b75c424abae5b80565"></a><!-- doxytag: member="axis2_msg_recv::axis2_msg_recv_load_and_init_svc" ref="gfdc9258a276b87b75c424abae5b80565" args="(axis2_msg_recv_t *msg_recv, const axutil_env_t *env, struct axis2_svc *svc)" -->
AXIS2_EXPORT <br>
axis2_status_t&nbsp;</td><td class="memItemRight" valign="bottom"><b>axis2_msg_recv_load_and_init_svc</b> (<a class="el" href="group__axis2__msg__recv.html#g7547da0893782e6165696315481247de">axis2_msg_recv_t</a> *msg_recv, const <a class="el" href="structaxutil__env.html">axutil_env_t</a> *env, struct axis2_svc *svc)</td></tr>

<tr><td class="memItemLeft" nowrap align="right" valign="top">AXIS2_EXTERN <br>
<a class="el" href="group__axis2__msg__recv.html#g7547da0893782e6165696315481247de">axis2_msg_recv_t</a> *&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__axis2__msg__recv.html#g42a2c7d0a184de466763b4502cf48897">axis2_msg_recv_create</a> (const <a class="el" href="structaxutil__env.html">axutil_env_t</a> *env)</td></tr>

</table>
<hr><a name="_details"></a><h2>Detailed Description</h2>
Description. <hr><h2>Typedef Documentation</h2>
<a class="anchor" name="g7547da0893782e6165696315481247de"></a><!-- doxytag: member="axis2_msg_recv.h::axis2_msg_recv_t" ref="g7547da0893782e6165696315481247de" args="" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">typedef struct axis2_msg_recv <a class="el" href="group__axis2__msg__recv.html#g7547da0893782e6165696315481247de">axis2_msg_recv_t</a>          </td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
Type name for struct axis2_msg_recv 
</div>
</div><p>
<hr><h2>Function Documentation</h2>
<a class="anchor" name="g42a2c7d0a184de466763b4502cf48897"></a><!-- doxytag: member="axis2_msg_recv.h::axis2_msg_recv_create" ref="g42a2c7d0a184de466763b4502cf48897" args="(const axutil_env_t *env)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">AXIS2_EXTERN <a class="el" href="group__axis2__msg__recv.html#g7547da0893782e6165696315481247de">axis2_msg_recv_t</a>* axis2_msg_recv_create           </td>
          <td>(</td>
          <td class="paramtype">const <a class="el" href="structaxutil__env.html">axutil_env_t</a> *&nbsp;</td>
          <td class="paramname"> <em>env</em>          </td>
          <td>&nbsp;)&nbsp;</td>
          <td width="100%"></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
Create new message receiver object. usually this will be called from the extended message receiver object. <dl class="see" compact><dt><b>See also:</b></dt><dd>create method of raw_xml_in_out_msg_recv </dd></dl>
<dl compact><dt><b>Parameters:</b></dt><dd>
  <table border="0" cellspacing="2" cellpadding="0">
    <tr><td valign="top"></td><td valign="top"><em>env</em>&nbsp;</td><td>pointer to environment struct </td></tr>
  </table>
</dl>
<dl class="return" compact><dt><b>Returns:</b></dt><dd>newly created message receiver object </dd></dl>

</div>
</div><p>
<a class="anchor" name="gff566d302fe1980913798086325ec2a6"></a><!-- doxytag: member="axis2_msg_recv.h::axis2_msg_recv_delete_svc_obj" ref="gff566d302fe1980913798086325ec2a6" args="(axis2_msg_recv_t *msg_recv, const axutil_env_t *env, axis2_msg_ctx_t *msg_ctx)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">AXIS2_EXTERN axis2_status_t axis2_msg_recv_delete_svc_obj           </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="group__axis2__msg__recv.html#g7547da0893782e6165696315481247de">axis2_msg_recv_t</a> *&nbsp;</td>
          <td class="paramname"> <em>msg_recv</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const <a class="el" href="structaxutil__env.html">axutil_env_t</a> *&nbsp;</td>
          <td class="paramname"> <em>env</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype"><a class="el" href="group__axis2__msg__ctx.html#g160acae289ac39cb49fa625ffd88e410">axis2_msg_ctx_t</a> *&nbsp;</td>
          <td class="paramname"> <em>msg_ctx</em></td><td>&nbsp;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td><td width="100%"></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
Delete the service skeleton object created by make_new_svc_obj <dl compact><dt><b>Parameters:</b></dt><dd>
  <table border="0" cellspacing="2" cellpadding="0">
    <tr><td valign="top"></td><td valign="top"><em>msg_recv</em>&nbsp;</td><td>pointer to message receiver  pointer to environment struct </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>msg_ctx</em>&nbsp;</td><td>pointer to message context </td></tr>
  </table>
</dl>
<dl class="return" compact><dt><b>Returns:</b></dt><dd>AXIS2_SUCCESS on success, else AXIS2_FAILURE </dd></dl>

</div>
</div><p>
<a class="anchor" name="gb83887c699d1bf14afb27ad65cf9b8d4"></a><!-- doxytag: member="axis2_msg_recv.h::axis2_msg_recv_free" ref="gb83887c699d1bf14afb27ad65cf9b8d4" args="(axis2_msg_recv_t *msg_recv, const axutil_env_t *env)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">AXIS2_EXTERN void axis2_msg_recv_free           </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="group__axis2__msg__recv.html#g7547da0893782e6165696315481247de">axis2_msg_recv_t</a> *&nbsp;</td>
          <td class="paramname"> <em>msg_recv</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const <a class="el" href="structaxutil__env.html">axutil_env_t</a> *&nbsp;</td>
          <td class="paramname"> <em>env</em></td><td>&nbsp;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td><td width="100%"></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
Deallocate memory <dl compact><dt><b>Parameters:</b></dt><dd>
  <table border="0" cellspacing="2" cellpadding="0">
    <tr><td valign="top"></td><td valign="top"><em>msg_recv</em>&nbsp;</td><td>pinter to message receiver </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>env</em>&nbsp;</td><td>pointer to environment struct </td></tr>
  </table>
</dl>
<dl class="return" compact><dt><b>Returns:</b></dt><dd>void </dd></dl>

</div>
</div><p>
<a class="anchor" name="g428a780b155ad3d087c6222c1cbed978"></a><!-- doxytag: member="axis2_msg_recv.h::axis2_msg_recv_get_impl_obj" ref="g428a780b155ad3d087c6222c1cbed978" args="(axis2_msg_recv_t *msg_recv, const axutil_env_t *env, struct axis2_msg_ctx *msg_ctx)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">AXIS2_EXTERN <a class="el" href="structaxis2__svc__skeleton.html">axis2_svc_skeleton_t</a>* axis2_msg_recv_get_impl_obj           </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="group__axis2__msg__recv.html#g7547da0893782e6165696315481247de">axis2_msg_recv_t</a> *&nbsp;</td>
          <td class="paramname"> <em>msg_recv</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const <a class="el" href="structaxutil__env.html">axutil_env_t</a> *&nbsp;</td>
          <td class="paramname"> <em>env</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">struct axis2_msg_ctx *&nbsp;</td>
          <td class="paramname"> <em>msg_ctx</em></td><td>&nbsp;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td><td width="100%"></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
This will return the service skeleton object <dl compact><dt><b>Parameters:</b></dt><dd>
  <table border="0" cellspacing="2" cellpadding="0">
    <tr><td valign="top"></td><td valign="top"><em>msg_recv</em>&nbsp;</td><td>pointer to message receiver </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>env</em>&nbsp;</td><td>pointer to environment struct </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>msg_ctx</em>&nbsp;</td><td>pointer to message context </td></tr>
  </table>
</dl>
<dl class="return" compact><dt><b>Returns:</b></dt><dd>service skeleton object </dd></dl>

</div>
</div><p>
<a class="anchor" name="g8373c3b1dd3b4d774d6ecedd0993f4d5"></a><!-- doxytag: member="axis2_msg_recv.h::axis2_msg_recv_get_scope" ref="g8373c3b1dd3b4d774d6ecedd0993f4d5" args="(axis2_msg_recv_t *msg_recv, const axutil_env_t *env)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">AXIS2_EXTERN axis2_char_t* axis2_msg_recv_get_scope           </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="group__axis2__msg__recv.html#g7547da0893782e6165696315481247de">axis2_msg_recv_t</a> *&nbsp;</td>
          <td class="paramname"> <em>msg_recv</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const <a class="el" href="structaxutil__env.html">axutil_env_t</a> *&nbsp;</td>
          <td class="paramname"> <em>env</em></td><td>&nbsp;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td><td width="100%"></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
Get the application scope <dl compact><dt><b>Parameters:</b></dt><dd>
  <table border="0" cellspacing="2" cellpadding="0">
    <tr><td valign="top"></td><td valign="top"><em>msg_recv</em>&nbsp;</td><td>pointer to message receiver  pointer to environment struct </td></tr>
  </table>
</dl>
<dl class="return" compact><dt><b>Returns:</b></dt><dd>scope </dd></dl>

</div>
</div><p>
<a class="anchor" name="g4b958421f632a04e659883698ad70728"></a><!-- doxytag: member="axis2_msg_recv.h::axis2_msg_recv_invoke_business_logic" ref="g4b958421f632a04e659883698ad70728" args="(axis2_msg_recv_t *msg_recv, const axutil_env_t *env, struct axis2_msg_ctx *in_msg_ctx, struct axis2_msg_ctx *out_msg_ctx)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">AXIS2_EXTERN axis2_status_t axis2_msg_recv_invoke_business_logic           </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="group__axis2__msg__recv.html#g7547da0893782e6165696315481247de">axis2_msg_recv_t</a> *&nbsp;</td>
          <td class="paramname"> <em>msg_recv</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const <a class="el" href="structaxutil__env.html">axutil_env_t</a> *&nbsp;</td>
          <td class="paramname"> <em>env</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">struct axis2_msg_ctx *&nbsp;</td>
          <td class="paramname"> <em>in_msg_ctx</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">struct axis2_msg_ctx *&nbsp;</td>
          <td class="paramname"> <em>out_msg_ctx</em></td><td>&nbsp;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td><td width="100%"></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
This contain in out synchronous business invoke logic <dl compact><dt><b>Parameters:</b></dt><dd>
  <table border="0" cellspacing="2" cellpadding="0">
    <tr><td valign="top"></td><td valign="top"><em>msg_recv</em>&nbsp;</td><td>pointer to message receiver </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>env</em>&nbsp;</td><td>pointer to environment struct </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>in_msg_ctx</em>&nbsp;</td><td>pointer to in message context </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>out_msg_ctx</em>&nbsp;</td><td>pointer to out message context </td></tr>
  </table>
</dl>
<dl class="return" compact><dt><b>Returns:</b></dt><dd>AXIS2_SUCCESS on success, else AXIS2_FAILURE </dd></dl>

</div>
</div><p>
<a class="anchor" name="g0c811674ed07fe53ca54639291e0d001"></a><!-- doxytag: member="axis2_msg_recv.h::axis2_msg_recv_make_new_svc_obj" ref="g0c811674ed07fe53ca54639291e0d001" args="(axis2_msg_recv_t *msg_recv, const axutil_env_t *env, struct axis2_msg_ctx *msg_ctx)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">AXIS2_EXTERN <a class="el" href="structaxis2__svc__skeleton.html">axis2_svc_skeleton_t</a>* axis2_msg_recv_make_new_svc_obj           </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="group__axis2__msg__recv.html#g7547da0893782e6165696315481247de">axis2_msg_recv_t</a> *&nbsp;</td>
          <td class="paramname"> <em>msg_recv</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const <a class="el" href="structaxutil__env.html">axutil_env_t</a> *&nbsp;</td>
          <td class="paramname"> <em>env</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">struct axis2_msg_ctx *&nbsp;</td>
          <td class="paramname"> <em>msg_ctx</em></td><td>&nbsp;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td><td width="100%"></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
this will create a new service skeleton object <dl compact><dt><b>Parameters:</b></dt><dd>
  <table border="0" cellspacing="2" cellpadding="0">
    <tr><td valign="top"></td><td valign="top"><em>msg_recv</em>&nbsp;</td><td>pointer to message receiver </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>env</em>&nbsp;</td><td>pointer to environment struct </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>msg_ctx</em>&nbsp;</td><td>pointer to message context </td></tr>
  </table>
</dl>
<dl class="return" compact><dt><b>Returns:</b></dt><dd>service skeleton object </dd></dl>

</div>
</div><p>
<a class="anchor" name="g7f214d78f066fe2c120652d2fce4b544"></a><!-- doxytag: member="axis2_msg_recv.h::axis2_msg_recv_receive" ref="g7f214d78f066fe2c120652d2fce4b544" args="(axis2_msg_recv_t *msg_recv, const axutil_env_t *env, struct axis2_msg_ctx *in_msg_ctx, void *callback_recv_param)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">AXIS2_EXTERN axis2_status_t axis2_msg_recv_receive           </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="group__axis2__msg__recv.html#g7547da0893782e6165696315481247de">axis2_msg_recv_t</a> *&nbsp;</td>
          <td class="paramname"> <em>msg_recv</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const <a class="el" href="structaxutil__env.html">axutil_env_t</a> *&nbsp;</td>
          <td class="paramname"> <em>env</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">struct axis2_msg_ctx *&nbsp;</td>
          <td class="paramname"> <em>in_msg_ctx</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">void *&nbsp;</td>
          <td class="paramname"> <em>callback_recv_param</em></td><td>&nbsp;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td><td width="100%"></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
This method is called from axis2_engine_receive method. This method's actual implementation is decided from the create method of the extended message receiver object. There depending on the synchronous or asynchronous type, receive method is assigned with the synchronous or asynchronous implementation of receive. <dl class="see" compact><dt><b>See also:</b></dt><dd>raw_xml_in_out_msg_recv_create method where receive is assigned to receive_sync </dd></dl>
<dl compact><dt><b>Parameters:</b></dt><dd>
  <table border="0" cellspacing="2" cellpadding="0">
    <tr><td valign="top"></td><td valign="top"><em>msg_recv</em>&nbsp;</td><td>pointer to message receiver </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>env</em>&nbsp;</td><td>pointer to environment struct </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>in_msg_ctx</em>&nbsp;</td><td>pointer to in message context </td></tr>
  </table>
</dl>
<dl class="return" compact><dt><b>Returns:</b></dt><dd>AXIS2_SUCCESS on success, else AXIS2_FAILURE </dd></dl>

</div>
</div><p>
<a class="anchor" name="g7514db74a30752f14c1208adcabff8fc"></a><!-- doxytag: member="axis2_msg_recv.h::axis2_msg_recv_set_scope" ref="g7514db74a30752f14c1208adcabff8fc" args="(axis2_msg_recv_t *msg_recv, const axutil_env_t *env, const axis2_char_t *scope)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">AXIS2_EXTERN axis2_status_t axis2_msg_recv_set_scope           </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="group__axis2__msg__recv.html#g7547da0893782e6165696315481247de">axis2_msg_recv_t</a> *&nbsp;</td>
          <td class="paramname"> <em>msg_recv</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const <a class="el" href="structaxutil__env.html">axutil_env_t</a> *&nbsp;</td>
          <td class="paramname"> <em>env</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const axis2_char_t *&nbsp;</td>
          <td class="paramname"> <em>scope</em></td><td>&nbsp;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td><td width="100%"></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
Set the application scope <dl compact><dt><b>Parameters:</b></dt><dd>
  <table border="0" cellspacing="2" cellpadding="0">
    <tr><td valign="top"></td><td valign="top"><em>msg_recv</em>&nbsp;</td><td>pointer to message receiver </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>env</em>&nbsp;</td><td>pointer to environment struct </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>scope</em>&nbsp;</td><td>pointer to scope </td></tr>
  </table>
</dl>
<dl class="return" compact><dt><b>Returns:</b></dt><dd>AXIS2_SUCCESS on success, else AXIS2_FAILURE </dd></dl>

</div>
</div><p>
<hr size="1"><address style="text-align: right;"><small>Generated on Fri Apr 17 11:49:45 2009 for Axis2/C by&nbsp;
<a href="http://www.doxygen.org/index.html">
<img src="doxygen.png" alt="doxygen" align="middle" border="0"></a> 1.5.3 </small></address>
</body>
</html>


<|start_filename|>axiom/src/om/om_element.c<|end_filename|>

/*
 * 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.
 */

#include <axiom_element.h>
#include "axiom_node_internal.h"
#include <axiom_attribute.h>
#include <axiom_namespace.h>
#include <axiom_xml_writer.h>
#include <axiom_stax_builder.h>
#include <string.h>
#include <stdio.h>

struct axiom_element
{

    /** Element's namespace */
    axiom_namespace_t *ns;

    /** Element's local name */
    axutil_string_t *localname;

    /** List of attributes */
    axutil_hash_t *attributes;

    /** List of namespaces */
    axutil_hash_t *namespaces;

    axutil_qname_t *qname;

    axiom_child_element_iterator_t *child_ele_iter;

    axiom_children_iterator_t *children_iter;

    axiom_children_qname_iterator_t *children_qname_iter;

    axis2_char_t *text_value;

    int next_ns_prefix_number;

    axis2_bool_t is_empty;

};

AXIS2_EXTERN axiom_element_t *AXIS2_CALL
axiom_element_create(
    const axutil_env_t * env,
    axiom_node_t * parent,
    const axis2_char_t * localname,
    axiom_namespace_t * ns,
    axiom_node_t ** node)
{
    axiom_element_t *element;
    AXIS2_ENV_CHECK(env, NULL);

    if (!localname || !node)
    {
        AXIS2_ERROR_SET(env->error, AXIS2_ERROR_INVALID_NULL_PARAM,
                        AXIS2_FAILURE);
        AXIS2_LOG_ERROR(env->log, AXIS2_LOG_SI, "localname or node is NULL");
        return NULL;
    }

    (*node) = axiom_node_create(env);
    if (!(*node))
    {
        AXIS2_ERROR_SET(env->error, AXIS2_ERROR_NO_MEMORY, AXIS2_FAILURE);
        AXIS2_LOG_ERROR(env->log, AXIS2_LOG_SI, "No Memory");
        return NULL;
    }
    element = (axiom_element_t *) AXIS2_MALLOC(env->allocator,
                                               sizeof(axiom_element_t));

    if (!element)
    {
        AXIS2_FREE(env->allocator, (*node));
        AXIS2_ERROR_SET(env->error, AXIS2_ERROR_NO_MEMORY, AXIS2_FAILURE);
        AXIS2_LOG_ERROR(env->log, AXIS2_LOG_SI, "No Memory");
        return NULL;
    }
    element->ns = NULL;
    element->localname = NULL;
    element->attributes = NULL;
    element->namespaces = NULL;
    element->qname = NULL;
    element->child_ele_iter = NULL;
    element->children_iter = NULL;
    element->children_qname_iter = NULL;
    element->text_value = NULL;
    element->next_ns_prefix_number = 0;
    element->is_empty = AXIS2_FALSE;

    element->localname = axutil_string_create(env, localname);
    if (!element->localname)
    {
        AXIS2_FREE(env->allocator, element);
        AXIS2_FREE(env->allocator, (*node));
        AXIS2_ERROR_SET(env->error, AXIS2_ERROR_NO_MEMORY, AXIS2_FAILURE);
        return NULL;
    }
    if (parent)
    {
        axiom_node_add_child(parent, env, (*node));
    }
    axiom_node_set_complete((*node), env, AXIS2_FALSE);
    axiom_node_set_node_type((*node), env, AXIOM_ELEMENT);
    axiom_node_set_data_element((*node), env, element);

    if (ns)
    {
        axis2_char_t *uri = NULL;
        axis2_char_t *prefix = NULL;

        uri = axiom_namespace_get_uri(ns, env);
        prefix = axiom_namespace_get_prefix(ns, env);

        /*
        if (prefix && axutil_strcmp(prefix, "") == 0)
        {
            element->ns = NULL;
            return element;
        }
        */
        element->ns = axiom_element_find_namespace(element,
                                                   env, *node, uri, prefix);

        if (element->ns)
        {
            if (ns != element->ns)
            {
                axiom_namespace_free(ns, env);
                ns = NULL;
            }
        }

        if (!(element->ns))
        {
            if (axiom_element_declare_namespace(element,
                                                env, *node,
                                                ns) == AXIS2_SUCCESS)
            {
                element->ns = ns;
            }
        }

        /*if (prefix && axutil_strcmp(prefix, "") == 0)
           {
           element->ns = NULL;
           }
         */
    }

    return element;
}

AXIS2_EXTERN axiom_element_t *AXIS2_CALL
axiom_element_create_with_qname(
    const axutil_env_t * env,
    axiom_node_t * parent,
    const axutil_qname_t * qname,
    axiom_node_t ** node)
{
    axiom_element_t *element = NULL;
    axis2_char_t *localpart = NULL;

    AXIS2_ENV_CHECK(env, NULL);
    if (!qname || !node)
    {
        AXIS2_ERROR_SET(env->error, AXIS2_ERROR_INVALID_NULL_PARAM,
                        AXIS2_FAILURE);
        AXIS2_LOG_ERROR(env->log, AXIS2_LOG_SI, "qname or node is NULL");
        return NULL;
    }
    localpart = axutil_qname_get_localpart(qname, env);
    if (!localpart)
    {
        AXIS2_ERROR_SET(env->error, AXIS2_ERROR_INVALID_NULL_PARAM,
                        AXIS2_FAILURE);
        AXIS2_LOG_ERROR(env->log, AXIS2_LOG_SI, "localpart is NULL");
        return NULL;
    }
    element = axiom_element_create(env, parent, localpart, NULL, node);
    if (!element)
    {
        return NULL;
    }

    if (*node)
    {
        axiom_element_t *om_element = NULL;
        axis2_char_t *temp_nsuri = NULL;
        axis2_char_t *temp_prefix = NULL;
        axiom_namespace_t *ns = NULL;

        om_element =
            ((axiom_element_t *) axiom_node_get_data_element((*node), env));
        temp_nsuri = axutil_qname_get_uri(qname, env);
        temp_prefix = axutil_qname_get_prefix(qname, env);
        if (!om_element)
        {
            return NULL;
        }

        if ((!temp_nsuri) || (axutil_strcmp(temp_nsuri, "") == 0))
        {

            /** no namespace uri is available in given qname
                no need to bother about it 
             */
            return om_element;
        }

        om_element->ns = axiom_element_find_namespace(om_element, env,
                                                      (*node), temp_nsuri,
                                                      temp_prefix);

        if (!(element->ns))
        {

            /** could not find a namespace so declare namespace */
            ns = axiom_namespace_create(env, temp_nsuri, temp_prefix);
            if (ns &&
                axiom_element_declare_namespace(om_element, env, *node, ns) ==
                AXIS2_SUCCESS)
            {
                (element->ns) = ns;
                return om_element;
            }
            else
            {
                if (ns)
                {
                    axiom_namespace_free(ns, env);
                }
                axiom_element_free(om_element, env);
                AXIS2_FREE(env->allocator, *node);
                return NULL;
            }
        }
    }
    return element;
}

AXIS2_EXTERN axiom_namespace_t *AXIS2_CALL
axiom_element_find_namespace(
    axiom_element_t * om_element,
    const axutil_env_t * env,
    axiom_node_t * element_node,
    const axis2_char_t * uri,
    const axis2_char_t * prefix)
{
    axiom_node_t *parent = NULL;
    AXIS2_ENV_CHECK(env, NULL);

    if (!element_node || !om_element)
    {
        AXIS2_ERROR_SET(env->error,
                        AXIS2_ERROR_INVALID_NULL_PARAM, AXIS2_FAILURE);
        AXIS2_LOG_ERROR(env->log, AXIS2_LOG_SI, 
            "element_node or om_element is NULL");
        return NULL;
    }
    if (!axiom_node_get_data_element(element_node, env) ||
        axiom_node_get_node_type(element_node, env) != AXIOM_ELEMENT)
    {
        /* wrong element type or null node */
        AXIS2_ERROR_SET(env->error, AXIS2_ERROR_INVALID_NULL_PARAM,
                        AXIS2_FAILURE);
        AXIS2_LOG_ERROR(env->log, AXIS2_LOG_SI, 
            "Wrong element type or null node");
        return NULL;
    }

    if (om_element->namespaces)
    {
        void *ns = NULL;

        if (uri && (!prefix || axutil_strcmp(prefix, "") == 0))
        {

            /** check for a default namepsace */
            axiom_namespace_t *default_ns = NULL;
            axutil_hash_index_t *hashindex;

            default_ns = axiom_element_get_default_namespace(om_element,
                                                             env, element_node);
            if (default_ns)
            {
                axis2_char_t *default_uri = NULL;
                default_uri = axiom_namespace_get_uri(default_ns, env);

                if (axutil_strcmp(uri, default_uri) == 0)
                {
                    return default_ns;
                }
                else
                {
                    return NULL;
                }
            }

            /** prefix is null , so iterate the namespaces hash to find the namespace */
            for (hashindex = axutil_hash_first(om_element->namespaces, env);
                 hashindex; hashindex = axutil_hash_next(env, hashindex))
            {
                axutil_hash_this(hashindex, NULL, NULL, &ns);
                if (ns)
                {
                    axiom_namespace_t *temp_ns = NULL;
                    axis2_char_t *temp_nsuri = NULL;
                    temp_ns = (axiom_namespace_t *) ns;
                    temp_nsuri = axiom_namespace_get_uri(temp_ns, env);

                    if (axutil_strcmp(temp_nsuri, uri) == 0)
                    {
                        /** namespace uri matches, so free hashindex and return ns*/
                        AXIS2_FREE(env->allocator, hashindex);
                        return (axiom_namespace_t *) (ns);
                    }
                    temp_ns = NULL;
                    temp_nsuri = NULL;
                    ns = NULL;
                }
            }
            ns = NULL;
        }
        else if (prefix)
        {

            /** prefix is not null get namespace directly if exist */
            ns = axutil_hash_get(om_element->namespaces, prefix,
                                 AXIS2_HASH_KEY_STRING);
            if (ns)
            {
                axiom_namespace_t *found_ns = NULL;
                axis2_char_t *found_uri = NULL;
                found_ns = (axiom_namespace_t *) ns;
                found_uri = axiom_namespace_get_uri(found_ns, env);
                if (uri)
                {
                    /* if uri provided, return found ns only if uri matches */
                    return (axutil_strcmp(found_uri, uri) == 0) ? found_ns : NULL;
                }
                return found_ns;
            }
        }
    }

    /** could not find the namespace in current element scope
        look in the parent */

    parent = axiom_node_get_parent(element_node, env);

    if (parent)
    {
        if (axiom_node_get_node_type(parent, env) == AXIOM_ELEMENT)
        {
            axiom_element_t *om_element = NULL;
            om_element =
                (axiom_element_t *) axiom_node_get_data_element(parent, env);
            if (om_element)

            {   /** parent exist, parent is om element so find in parent*/
                return axiom_element_find_namespace(om_element, env,
                                                    parent, uri, prefix);
            }
        }
    }
    return NULL;
}

AXIS2_EXTERN axis2_status_t AXIS2_CALL
axiom_element_declare_namespace_assume_param_ownership(
    axiom_element_t * om_element,
    const axutil_env_t * env,
    axiom_namespace_t * ns)
{
    axis2_char_t *prefix = NULL;
    axis2_char_t *uri = NULL;

    AXIS2_ENV_CHECK(env, AXIS2_FAILURE);

    if (!ns || !om_element)
    {
        AXIS2_ERROR_SET(env->error,
                        AXIS2_ERROR_INVALID_NULL_PARAM, AXIS2_FAILURE);
        AXIS2_LOG_ERROR(env->log, AXIS2_LOG_SI, 
            "namespace or om_element is NULL");
        return AXIS2_FAILURE;
    }

    uri = axiom_namespace_get_uri(ns, env);
    prefix = axiom_namespace_get_prefix(ns, env);

    if (!(om_element->namespaces))
    {
        om_element->namespaces = axutil_hash_make(env);
        if (!(om_element->namespaces))
        {
            return AXIS2_FAILURE;
        }
    }
    if (prefix)
    {
        axutil_hash_set(om_element->namespaces,
                        prefix, AXIS2_HASH_KEY_STRING, ns);
    }
    else
    {
        axis2_char_t *key = NULL;
        key = AXIS2_MALLOC(env->allocator, sizeof(char) * 10);
        memset(key, 0, sizeof(char) * 10);
        om_element->next_ns_prefix_number++;
        key[0] = '\0';
        axutil_hash_set(om_element->namespaces, key, AXIS2_HASH_KEY_STRING, ns);
    }
    axiom_namespace_increment_ref(ns, env);

    return AXIS2_SUCCESS;
}

AXIS2_EXTERN axis2_status_t AXIS2_CALL
axiom_element_declare_namespace(
    axiom_element_t * om_element,
    const axutil_env_t * env,
    axiom_node_t * node,
    axiom_namespace_t * ns)
{
    axiom_namespace_t *declared_ns = NULL;
    axis2_char_t *prefix = NULL;
    axis2_char_t *uri = NULL;

    AXIS2_ENV_CHECK(env, AXIS2_FAILURE);

    if (!node || !ns || !om_element)
    {
        AXIS2_ERROR_SET(env->error,
                        AXIS2_ERROR_INVALID_NULL_PARAM, AXIS2_FAILURE);
        AXIS2_LOG_ERROR(env->log, AXIS2_LOG_SI, 
            "node or namespace or om_element is NULL");
        return AXIS2_FAILURE;
    }

    uri = axiom_namespace_get_uri(ns, env);
    prefix = axiom_namespace_get_prefix(ns, env);

    declared_ns = axiom_element_find_namespace(om_element,
                                               env, node, uri, prefix);

    if (declared_ns)
    {
        if (axiom_namespace_equals(ns, env, declared_ns) == AXIS2_TRUE)
        {
            /*Namespace already declared, so return */
            return AXIS2_SUCCESS;
        }
    }

    if (!(om_element->namespaces))
    {
        om_element->namespaces = axutil_hash_make(env);
        if (!(om_element->namespaces))
        {
            return AXIS2_FAILURE;
        }
    }
    if (prefix)
    {
        axutil_hash_set(om_element->namespaces,
                        prefix, AXIS2_HASH_KEY_STRING, ns);
    }
    else
    {
        axis2_char_t *key = NULL;
        key = AXIS2_MALLOC(env->allocator, sizeof(char) * 10);
        memset(key, 0, sizeof(char) * 10);
        om_element->next_ns_prefix_number++;
        key[0] = '\0';
        axutil_hash_set(om_element->namespaces, key, AXIS2_HASH_KEY_STRING, ns);
    }
    axiom_namespace_increment_ref(ns, env);

    return AXIS2_SUCCESS;
}

AXIS2_EXTERN axiom_namespace_t *AXIS2_CALL
axiom_element_find_declared_namespace(
    axiom_element_t * om_element,
    const axutil_env_t * env,
    const axis2_char_t * uri,
    const axis2_char_t * prefix)
{
    axutil_hash_index_t *hash_index = NULL;
    void *ns = NULL;
    AXIS2_ENV_CHECK(env, NULL);
    AXIS2_PARAM_CHECK(env->error, om_element, NULL);

    if (!(om_element->namespaces))
    {
        return NULL;
    }
    if (uri && (!prefix || axutil_strcmp(prefix, "") == 0))
    {
        /** prefix null iterate the namespace hash for matching uri */
        for (hash_index = axutil_hash_first(om_element->namespaces, env);
             hash_index; hash_index = axutil_hash_next(env, hash_index))
        {
            axutil_hash_this(hash_index, NULL, NULL, &ns);
            if (ns)
            {
                axiom_namespace_t *temp_ns = NULL;
                axis2_char_t *temp_nsuri = NULL;
                temp_ns = (axiom_namespace_t *) (ns);
                temp_nsuri = axiom_namespace_get_uri(temp_ns, env);
                if (axutil_strcmp(temp_nsuri, uri) == 0)
                {
                    AXIS2_FREE(env->allocator, hash_index);
                    return temp_ns;
                }
                temp_ns = NULL;
                temp_nsuri = NULL;
            }
        }
        ns = NULL;
        return NULL;
    }
    else if (prefix)
    {
        axiom_namespace_t *found_ns = NULL;
        ns = axutil_hash_get(om_element->namespaces, prefix,
                             AXIS2_HASH_KEY_STRING);
        if (ns)
        {
            axis2_char_t *found_uri = NULL;
            found_ns = (axiom_namespace_t *) ns;
            found_uri = axiom_namespace_get_uri(found_ns, env);
            /* If uri provided, ensure this namespace found by prefix matches the uri */
            if (uri && axutil_strcmp(found_uri, uri) == 0)
            {
                return found_ns;
            }
        }
    }
    return NULL;
}

AXIS2_EXTERN axiom_namespace_t *AXIS2_CALL
axiom_element_find_namespace_with_qname(
    axiom_element_t * element,
    const axutil_env_t * env,
    axiom_node_t * node,
    axutil_qname_t * qname)
{
    AXIS2_ENV_CHECK(env, NULL);
    if (!element || !node || !qname)
    {
        AXIS2_ERROR_SET(env->error, AXIS2_ERROR_INVALID_NULL_PARAM,
                        AXIS2_FAILURE);
        AXIS2_LOG_ERROR(env->log, AXIS2_LOG_SI, 
            "element or node or qname is NULL");
        return NULL;
    }

    if (axutil_qname_get_uri(qname, env))
    {
        return axiom_element_find_namespace(element, env, node,
                                            axutil_qname_get_uri(qname, env),
                                            axutil_qname_get_prefix(qname,
                                                                    env));
    }
    else
    {
        return NULL;
    }
}

AXIS2_EXTERN axis2_status_t AXIS2_CALL
axiom_element_add_attribute(
    axiom_element_t * om_element,
    const axutil_env_t * env,
    axiom_attribute_t * attribute,
    axiom_node_t * element_node)
{

    axutil_qname_t *qname = NULL;
    axiom_namespace_t *om_namespace = NULL;
    axiom_namespace_t *temp_ns = NULL;
    AXIS2_ENV_CHECK(env, AXIS2_FAILURE);
    AXIS2_PARAM_CHECK(env->error, attribute, AXIS2_FAILURE);
    AXIS2_PARAM_CHECK(env->error, element_node, AXIS2_FAILURE);
    AXIS2_PARAM_CHECK(env->error, om_element, AXIS2_FAILURE);

    /* ensure the attribute's namespace structure is declared */
    om_namespace = axiom_attribute_get_namespace(attribute, env);
    if (om_namespace)
    {
        temp_ns = axiom_element_find_namespace(om_element, env,
                                               element_node,
                                               axiom_namespace_get_uri
                                               (om_namespace, env),
                                               axiom_namespace_get_prefix
                                               (om_namespace, env));
        if (temp_ns != om_namespace)
        {
            axis2_status_t status;
            /* as the attribute's namespace structure is not declared in scope,
               declare it here */
            status = axiom_element_declare_namespace_assume_param_ownership(om_element, env,
                                                                            om_namespace);
            if (status != AXIS2_SUCCESS)
            {
                return status;
            }
        }
    }

    if (!(om_element->attributes))
    {
        om_element->attributes = axutil_hash_make(env);
        if (!(om_element->attributes))
        {
            return AXIS2_FAILURE;
        }
    }

    qname = axiom_attribute_get_qname(attribute, env);
    if (qname)
    {
        axis2_char_t *name = axutil_qname_to_string(qname, env);
        axutil_hash_set(om_element->attributes,
                        name, AXIS2_HASH_KEY_STRING, attribute);
        axiom_attribute_increment_ref(attribute, env);
    }
    return ((qname) ? AXIS2_SUCCESS : AXIS2_FAILURE);
}

AXIS2_EXTERN axiom_attribute_t *AXIS2_CALL
axiom_element_get_attribute(
    axiom_element_t * om_element,
    const axutil_env_t * env,
    axutil_qname_t * qname)
{
    axis2_char_t *name = NULL;
    axiom_attribute_t *attr = NULL;
    AXIS2_ENV_CHECK(env, NULL);
    AXIS2_PARAM_CHECK(env->error, qname, NULL);
    AXIS2_PARAM_CHECK(env->error, om_element, NULL);

    name = axutil_qname_to_string(qname, env);

    if ((om_element->attributes) && name)
    {
        attr = (axiom_attribute_t *) (axutil_hash_get(om_element->attributes,
                                                      name,
                                                      AXIS2_HASH_KEY_STRING));
    }
    return attr;
}

AXIS2_EXTERN void AXIS2_CALL
axiom_element_free(
    axiom_element_t * om_element,
    const axutil_env_t * env)
{
    AXIS2_ENV_CHECK(env, AXIS2_FAILURE);
    if (!om_element)
    {
        return;
    }

    if (om_element->localname)
    {
        axutil_string_free(om_element->localname, env);
    }
    if (om_element->ns)
    {
        /* it is the responsibility of the element where the namespace is declared to free it */
    }
    if (om_element->attributes)
    {
        axutil_hash_index_t *hi;
        void *val = NULL;

        for (hi = axutil_hash_first(om_element->attributes, env); hi;
             hi = axutil_hash_next(env, hi))
        {
            axutil_hash_this(hi, NULL, NULL, &val);

            if (val)
            {
                axiom_attribute_free((axiom_attribute_t *) val, env);
            }
        }
        axutil_hash_free(om_element->attributes, env);
    }

    if (om_element->namespaces)
    {
        axutil_hash_index_t *hi;
        void *val = NULL;
        for (hi = axutil_hash_first(om_element->namespaces, env); hi;
             hi = axutil_hash_next(env, hi))
        {
            axutil_hash_this(hi, NULL, NULL, &val);
            if (val)
            {
                axiom_namespace_free((axiom_namespace_t *) val, env);
            }
        }
        axutil_hash_free(om_element->namespaces, env);
    }
    if (om_element->qname)
    {
        axutil_qname_free(om_element->qname, env);
    }
    if (om_element->children_iter)
    {
        axiom_children_iterator_free(om_element->children_iter, env);
    }
    if (om_element->child_ele_iter)
    {
        AXIOM_CHILD_ELEMENT_ITERATOR_FREE(om_element->child_ele_iter, env);
    }
    if (om_element->children_qname_iter)
    {
        axiom_children_qname_iterator_free(om_element->children_qname_iter,
                                           env);
    }
    if (om_element->text_value)
    {
        AXIS2_FREE(env->allocator, om_element->text_value);
    }
    AXIS2_FREE(env->allocator, om_element);

    return;
}

AXIS2_EXTERN axis2_status_t AXIS2_CALL
axiom_element_serialize_start_part(
    axiom_element_t * om_element,
    const axutil_env_t * env,
    axiom_output_t * om_output,
    axiom_node_t * ele_node)
{
    int status = AXIS2_SUCCESS;

    AXIS2_ENV_CHECK(env, AXIS2_FAILURE);
    AXIS2_PARAM_CHECK(env->error, om_output, AXIS2_FAILURE);
    AXIS2_PARAM_CHECK(env->error, om_element, AXIS2_FAILURE);

    if (om_element->is_empty)
    {
        if (om_element->ns)
        {
            axis2_char_t *uri = NULL;
            axis2_char_t *prefix = NULL;

            uri = axiom_namespace_get_uri(om_element->ns, env);
            prefix = axiom_namespace_get_prefix(om_element->ns, env);


            if ((uri) && (prefix) && (axutil_strcmp(prefix, "") != 0))
            {
                status = axiom_output_write(om_output, env,
                                            AXIOM_ELEMENT, 4,
                                            axutil_string_get_buffer(om_element->
                                                                     localname,
                                                                     env), uri,
                                            prefix, NULL);
            }
            else if (uri)
            {
                status = axiom_output_write(om_output, env,
                                            AXIOM_ELEMENT, 4,
                                            axutil_string_get_buffer(om_element->
                                                                     localname,
                                                                     env), uri,
                                            NULL, NULL);
            }
        }
        else
        {
            status = axiom_output_write(om_output, env,
                                        AXIOM_ELEMENT, 4,
                                        axutil_string_get_buffer(om_element->
                                                                 localname, env), NULL,
                                        NULL, NULL);
        }
    }
    else
    {
        if (om_element->ns)
        {
            axis2_char_t *uri = NULL;
            axis2_char_t *prefix = NULL;

            uri = axiom_namespace_get_uri(om_element->ns, env);
            prefix = axiom_namespace_get_prefix(om_element->ns, env);

            if ((uri) && (prefix) && (axutil_strcmp(prefix, "") != 0))
            {
                status = axiom_output_write(om_output, env,
                                            AXIOM_ELEMENT, 3,
                                            axutil_string_get_buffer(om_element->
                                                                     localname,
                                                                     env), uri,
                                            prefix);
            }
            else if (uri)
            {
                status = axiom_output_write(om_output, env,
                                            AXIOM_ELEMENT, 2,
                                            axutil_string_get_buffer(om_element->
                                                                     localname,
                                                                     env), uri);
            }
        }
        else
        {
            status = axiom_output_write(om_output, env,
                                        AXIOM_ELEMENT, 1,
                                        axutil_string_get_buffer(om_element->
                                                                 localname, env));
        }
    }
    if (om_element->attributes)
    {
        axutil_hash_index_t *hi;
        void *val;
        for (hi = axutil_hash_first(om_element->attributes, env); hi;
             hi = axutil_hash_next(env, hi))
        {
            axutil_hash_this(hi, NULL, NULL, &val);

            if (val)
            {
                status =
                    axiom_attribute_serialize((axiom_attribute_t *) val,
                                              env, om_output);
            }
            else
            {
                status = AXIS2_FAILURE;
            }
        }
    }

    if (om_element->namespaces)
    {
        axutil_hash_index_t *hi;
        void *val;
        for (hi = axutil_hash_first(om_element->namespaces, env); hi;
             hi = axutil_hash_next(env, hi))
        {
            axutil_hash_this(hi, NULL, NULL, &val);

            if (val)
            {
                status =
                    axiom_namespace_serialize((axiom_namespace_t *) val,
                                              env, om_output);
            }
            else
            {
                status = AXIS2_FAILURE;
            }
        }
    }

    return status;
}

AXIS2_EXTERN axis2_status_t AXIS2_CALL
axiom_element_serialize_end_part(
    axiom_element_t * om_element,
    const axutil_env_t * env,
    axiom_output_t * om_output)
{
    int status = AXIS2_SUCCESS;
    AXIS2_PARAM_CHECK(env->error, om_output, AXIS2_FAILURE);
    status = axiom_output_write(om_output, env, AXIOM_ELEMENT, 0);
    return status;
}

AXIS2_EXTERN axis2_char_t *AXIS2_CALL
axiom_element_get_localname(
    axiom_element_t * om_element,
    const axutil_env_t * env)
{
    AXIS2_PARAM_CHECK(env->error, om_element, NULL);
    if (om_element->localname)
        return (axis2_char_t *) axutil_string_get_buffer(om_element->localname,
                                                         env);
    else
        return NULL;
}

AXIS2_EXTERN axis2_status_t AXIS2_CALL
axiom_element_set_localname(
    axiom_element_t * om_element,
    const axutil_env_t * env,
    const axis2_char_t * localname)
{
    AXIS2_ENV_CHECK(env, AXIS2_FAILURE);
    AXIS2_PARAM_CHECK(env->error, localname, AXIS2_FAILURE);
    AXIS2_PARAM_CHECK(env->error, om_element, AXIS2_FAILURE);

    if (om_element->localname)
    {
        axutil_string_free(om_element->localname, env);
        om_element->localname = NULL;
    }
    om_element->localname = axutil_string_create(env, localname);
    if (!(om_element->localname))
    {
        return AXIS2_FAILURE;
    }
    return AXIS2_SUCCESS;
}

AXIS2_EXTERN axiom_namespace_t *AXIS2_CALL
axiom_element_get_namespace(
    axiom_element_t * om_element,
    const axutil_env_t * env,
    axiom_node_t * ele_node)
{
    axiom_namespace_t *ns = NULL;
    AXIS2_ENV_CHECK(env, NULL);
    AXIS2_PARAM_CHECK(env->error, om_element, NULL);

    if (om_element->ns)
    {
        ns = om_element->ns;
    }
    else
    {
        ns = axiom_element_get_default_namespace(om_element, env, ele_node);

    }
    return ns;
}

AXIS2_EXTERN axis2_status_t AXIS2_CALL
axiom_element_set_namespace(
    axiom_element_t * om_element,
    const axutil_env_t * env,
    axiom_namespace_t * ns,
    axiom_node_t * node)
{
    axiom_namespace_t *om_ns = NULL;
    axis2_status_t status = AXIS2_SUCCESS;
    AXIS2_ENV_CHECK(env, AXIS2_FAILURE);
    AXIS2_PARAM_CHECK(env->error, ns, AXIS2_FAILURE);
    AXIS2_PARAM_CHECK(env->error, om_element, AXIS2_FAILURE);

    om_ns = axiom_element_find_namespace(om_element, env, node,
                                         axiom_namespace_get_uri(ns, env),
                                         axiom_namespace_get_prefix(ns, env));
    if (!om_ns)
    {
        status = axiom_element_declare_namespace(om_element, env, node, ns);
        if (status == AXIS2_FAILURE)
        {
            return AXIS2_FAILURE;
        }
        om_element->ns = ns;
    }
    else
    {
        om_element->ns = om_ns;
    }
    return AXIS2_SUCCESS;
}

AXIS2_EXTERN axis2_status_t AXIS2_CALL
axiom_element_set_namespace_assume_param_ownership(
    axiom_element_t * om_element,
    const axutil_env_t * env,
    axiom_namespace_t * ns)
{
    AXIS2_PARAM_CHECK(env->error, om_element, AXIS2_FAILURE);
    om_element->ns = ns;
    return AXIS2_SUCCESS;
}

AXIS2_EXTERN axutil_hash_t *AXIS2_CALL
axiom_element_get_all_attributes(
    axiom_element_t * om_element,
    const axutil_env_t * env)
{
    AXIS2_PARAM_CHECK(env->error, om_element, NULL);
    return om_element->attributes;
}

AXIS2_EXTERN axutil_hash_t *AXIS2_CALL
axiom_element_get_namespaces(
    axiom_element_t * om_element,
    const axutil_env_t * env)
{
    AXIS2_PARAM_CHECK(env->error, om_element, NULL);
    return om_element->namespaces;
}

AXIS2_EXTERN axutil_qname_t *AXIS2_CALL
axiom_element_get_qname(
    axiom_element_t * om_element,
    const axutil_env_t * env,
    axiom_node_t * ele_node)
{
    axiom_namespace_t *ns = NULL;
    AXIS2_ENV_CHECK(env, NULL);
    AXIS2_PARAM_CHECK(env->error, om_element, NULL);

    if (om_element->qname)
    {
        return om_element->qname;
    }
    else
    {
        ns = axiom_element_get_namespace(om_element, env, ele_node);
        if (ns)
        {
            if (axiom_namespace_get_prefix(ns, env))
            {
                om_element->qname = axutil_qname_create(env,
                                                        axutil_string_get_buffer
                                                        (om_element->localname,
                                                         env),
                                                        axiom_namespace_get_uri
                                                        (ns, env),
                                                        axiom_namespace_get_prefix
                                                        (ns, env));
            }
            else
            {
                om_element->qname = axutil_qname_create(env,
                                                        axutil_string_get_buffer
                                                        (om_element->localname,
                                                         env),
                                                        axiom_namespace_get_uri
                                                        (ns, env), NULL);
            }
        }
        else
        {
            om_element->qname = axutil_qname_create(env,
                                                    axutil_string_get_buffer
                                                    (om_element->localname,
                                                     env), NULL, NULL);
        }
    }
    return om_element->qname;
}

AXIS2_EXTERN axiom_children_iterator_t *AXIS2_CALL
axiom_element_get_children(
    axiom_element_t * om_element,
    const axutil_env_t * env,
    axiom_node_t * element_node)
{
    AXIS2_PARAM_CHECK(env->error, element_node, NULL);
    AXIS2_PARAM_CHECK(env->error, om_element, NULL);

    if (!om_element->children_iter)
    {
        om_element->children_iter = axiom_children_iterator_create(env,
                                                                   axiom_node_get_first_child
                                                                   (element_node,
                                                                    env));
    }
    return om_element->children_iter;
}

AXIS2_EXTERN axiom_children_qname_iterator_t *AXIS2_CALL
axiom_element_get_children_with_qname(
    axiom_element_t * om_element,
    const axutil_env_t * env,
    axutil_qname_t * element_qname,
    axiom_node_t * element_node)
{
    AXIS2_PARAM_CHECK(env->error, element_node, NULL);
    AXIS2_PARAM_CHECK(env->error, om_element, NULL);

    if (om_element->children_qname_iter)
    {
        axiom_children_qname_iterator_free(om_element->children_qname_iter,
                                           env);
        om_element->children_qname_iter = NULL;
    }
    om_element->children_qname_iter = axiom_children_qname_iterator_create(env,
                                                                           axiom_node_get_first_child
                                                                           (element_node,
                                                                            env),
                                                                           element_qname);
    return om_element->children_qname_iter;
}

AXIS2_EXTERN axiom_element_t *AXIS2_CALL
axiom_element_get_first_child_with_qname(
    axiom_element_t * om_element,
    const axutil_env_t * env,
    axutil_qname_t * element_qname,
    axiom_node_t * element_node,
    axiom_node_t ** child_node)
{
    axiom_node_t *om_node = NULL;
    axiom_children_qname_iterator_t *children_iterator = NULL;

    AXIS2_PARAM_CHECK(env->error, element_qname, NULL);
    AXIS2_PARAM_CHECK(env->error, element_node, NULL);

    om_node = axiom_node_get_first_child(element_node, env);
    if (!om_node)
    {
        AXIS2_LOG_DEBUG(env->log, AXIS2_LOG_SI, "There are no child elements for the node");
        return NULL;
    }
    children_iterator = axiom_children_qname_iterator_create(env, om_node, 
                                                             element_qname);
    if (!children_iterator)
    {
        AXIS2_LOG_DEBUG(env->log, AXIS2_LOG_SI, "Could not create children qname iterator");
        return NULL;
    }
    om_node = NULL;
    if (axiom_children_qname_iterator_has_next(children_iterator, env))
    {
        om_node = axiom_children_qname_iterator_next(children_iterator, env);
    }
    if (om_node && (axiom_node_get_node_type(om_node, env) == AXIOM_ELEMENT))
    {
        axiom_children_qname_iterator_free(children_iterator, env);

        if (child_node)
        {
            *child_node = om_node;
        }
        return (axiom_element_t *) axiom_node_get_data_element(om_node, env);
    }

    axiom_children_qname_iterator_free(children_iterator, env);

    return NULL;
}

AXIS2_EXTERN axis2_status_t AXIS2_CALL
axiom_element_remove_attribute(
    axiom_element_t * om_element,
    const axutil_env_t * env,
    axiom_attribute_t * om_attribute)
{
    axutil_qname_t *qname = NULL;
    AXIS2_ENV_CHECK(env, AXIS2_FAILURE);
    AXIS2_PARAM_CHECK(env->error, om_attribute, AXIS2_FAILURE);

    qname = axiom_attribute_get_qname(om_attribute, env);
    if (qname && (om_element->attributes))
    {
        axis2_char_t *name = NULL;
        name = axutil_qname_to_string(qname, env);
        if (name)
        {
            axutil_hash_set(om_element->attributes, name,
                            AXIS2_HASH_KEY_STRING, NULL);
            return AXIS2_SUCCESS;
        }
    }
    return AXIS2_FAILURE;
}

AXIS2_EXTERN axiom_element_t *AXIS2_CALL
axiom_element_get_first_element(
    axiom_element_t * om_element,
    const axutil_env_t * env,
    axiom_node_t * element_node,
    axiom_node_t ** first_ele_node)
{
    axiom_node_t *temp_node = NULL;
    AXIS2_ENV_CHECK(env, NULL);
    AXIS2_PARAM_CHECK(env->error, element_node, NULL);

    temp_node = axiom_node_get_first_child(element_node, env);
    while (temp_node)
    {
        if (axiom_node_get_node_type(temp_node, env) == AXIOM_ELEMENT)
        {
            if (first_ele_node)
            {
                *first_ele_node = temp_node;
            }
            return (axiom_element_t *) axiom_node_get_data_element(temp_node,
                                                                   env);
        }
        else
        {
            temp_node = axiom_node_get_next_sibling(temp_node, env);
        }
    }
    return NULL;
}

AXIS2_EXTERN axis2_char_t *AXIS2_CALL
axiom_element_get_text(
    axiom_element_t * om_element,
    const axutil_env_t * env,
    axiom_node_t * element_node)
{
    axis2_char_t *dest = NULL;
    const axis2_char_t *temp_text = NULL;
    axiom_text_t *text_node = NULL;
    axiom_node_t *temp_node = NULL;

    AXIS2_ENV_CHECK(env, NULL);
    AXIS2_PARAM_CHECK(env->error, element_node, NULL);
    AXIS2_PARAM_CHECK(env->error, om_element, NULL);

    if (om_element->text_value)
    {
        AXIS2_FREE(env->allocator, om_element->text_value);
        om_element->text_value = NULL;
    }

    temp_node = axiom_node_get_first_child(element_node, env);

    while (temp_node)
    {
        if (axiom_node_get_node_type(temp_node, env) == AXIOM_TEXT)
        {
            int dest_len = 0;
            int curr_len = 0;
            axis2_char_t *temp_dest = NULL;

            text_node =
                (axiom_text_t *) axiom_node_get_data_element(temp_node, env);
            if (text_node)
            {
                temp_text = axiom_text_get_value(text_node, env);
                if (dest && temp_text && axutil_strcmp(temp_text, "") != 0)
                {
                    dest_len = axutil_strlen(dest);
                    curr_len = dest_len + axutil_strlen(temp_text);
                    temp_dest = AXIS2_MALLOC(env->allocator,
                                             (curr_len +
                                              1) * sizeof(axis2_char_t));

                    memcpy(temp_dest, dest, dest_len * sizeof(axis2_char_t));
                    memcpy((temp_dest + dest_len * sizeof(axis2_char_t)),
                           temp_text, curr_len - dest_len);

                    temp_dest[curr_len] = '\0';

                    AXIS2_FREE(env->allocator, dest);
                    dest = NULL;
                    dest = temp_dest;
                }
                else if (!dest && temp_text &&
                         axutil_strcmp(temp_text, "") != 0)
                {
                    dest = axutil_strdup(env, temp_text);
                }
            }
        }
        temp_node = axiom_node_get_next_sibling(temp_node, env);
    }

    om_element->text_value = dest;
    return om_element->text_value;
}

AXIS2_EXTERN axis2_status_t AXIS2_CALL
axiom_element_set_text(
    axiom_element_t * om_element,
    const axutil_env_t * env,
    const axis2_char_t * text,
    axiom_node_t * element_node)
{
    axiom_node_t *temp_node, *next_node;
    axiom_text_t *om_text = NULL;
    AXIS2_ENV_CHECK(env, AXIS2_FAILURE);
    AXIS2_PARAM_CHECK(env->error, text, AXIS2_FAILURE);
    AXIS2_PARAM_CHECK(env->error, element_node, AXIS2_FAILURE);

    next_node = axiom_node_get_first_child(element_node, env);
    while (next_node)
    {
        temp_node = next_node;
        next_node = axiom_node_get_next_sibling(temp_node, env);
        if (axiom_node_get_node_type(temp_node, env) == AXIOM_TEXT)
        {
            axiom_node_free_tree(temp_node, env);
        }
    }

    om_text = axiom_text_create(env, NULL, text, &temp_node);
    axiom_node_add_child(element_node, env, temp_node);
    return AXIS2_SUCCESS;
}

AXIS2_EXTERN axis2_char_t *AXIS2_CALL
axiom_element_to_string(
    axiom_element_t * om_element,
    const axutil_env_t * env,
    axiom_node_t * element_node)
{
    return axiom_node_to_string(element_node, env);
}

AXIS2_EXTERN axiom_child_element_iterator_t *AXIS2_CALL
axiom_element_get_child_elements(
    axiom_element_t * om_element,
    const axutil_env_t * env,
    axiom_node_t * element_node)
{
    axiom_node_t *first_node = NULL;
    axiom_element_t *ele = NULL;
    AXIS2_ENV_CHECK(env, NULL);
    AXIS2_PARAM_CHECK(env->error, element_node, NULL);
    AXIS2_PARAM_CHECK(env->error, om_element, NULL);

    ele =
        axiom_element_get_first_element(om_element, env, element_node,
                                        &first_node);
    if (om_element->child_ele_iter)
    {
        return om_element->child_ele_iter;
    }
    else if (ele && first_node)
    {
        om_element->child_ele_iter =
            axiom_child_element_iterator_create(env, first_node);
        return om_element->child_ele_iter;
    }
    return NULL;
}

AXIS2_EXTERN axis2_status_t AXIS2_CALL
axiom_element_build(
    axiom_element_t * om_element,
    const axutil_env_t * env,
    axiom_node_t * om_ele_node)
{
    axiom_stax_builder_t *builder = NULL;
    AXIS2_ENV_CHECK(env, AXIS2_FAILURE);

    AXIS2_PARAM_CHECK(env->error, om_ele_node, AXIS2_FAILURE);
    if (axiom_node_get_node_type(om_ele_node, env) != AXIOM_ELEMENT)
    {
        return AXIS2_FAILURE;
    }

    builder = axiom_node_get_builder(om_ele_node, env);
    if (!builder)
    {
        return AXIS2_FAILURE;
    }
    while (!axiom_node_is_complete(om_ele_node, env) &&
           !axiom_stax_builder_is_complete(builder, env))
    {
        void *value = NULL;
        value = axiom_stax_builder_next(builder, env);
        if (!value)
        {
            return AXIS2_FAILURE;
        }
    }
    return AXIS2_SUCCESS;
}

AXIS2_EXTERN axiom_namespace_t *AXIS2_CALL
axiom_element_get_default_namespace(
    axiom_element_t * om_element,
    const axutil_env_t * env,
    axiom_node_t * element_node)
{
    axiom_node_t *parent_node = NULL;
    axiom_namespace_t *default_ns = NULL;

    AXIS2_ENV_CHECK(env, NULL);
    AXIS2_PARAM_CHECK(env->error, element_node, NULL);
    AXIS2_PARAM_CHECK(env->error, om_element, NULL);

    if (om_element->namespaces)
    {
        default_ns = axutil_hash_get(om_element->namespaces, "",
                                     AXIS2_HASH_KEY_STRING);
        if (default_ns)
        {
            return default_ns;
        }
    }

    parent_node = axiom_node_get_parent(element_node, env);
    if ((parent_node) &&
        (axiom_node_get_node_type(parent_node, env) == AXIOM_ELEMENT))
    {
        axiom_element_t *parent_ele = NULL;
        parent_ele = (axiom_element_t *)
            axiom_node_get_data_element(parent_node, env);
        if (parent_ele)
        {
            return axiom_element_get_default_namespace(parent_ele, env,
                                                       parent_node);
        }
    }
    return NULL;
}

/**
* declared a default namespace explicitly
*/
AXIS2_EXTERN axiom_namespace_t *AXIS2_CALL
axiom_element_declare_default_namespace(
    axiom_element_t * om_element,
    const axutil_env_t * env,
    axis2_char_t * uri)
{
    axiom_namespace_t *default_ns = NULL;
    AXIS2_ENV_CHECK(env, NULL);
    AXIS2_PARAM_CHECK(env->error, uri, NULL);
    AXIS2_PARAM_CHECK(env->error, om_element, NULL);

    if (axutil_strcmp(uri, "") == 0)
    {
        return NULL;
    }

    default_ns = axiom_namespace_create(env, uri, "");
    if (!default_ns)
    {
        return NULL;
    }
    if (!om_element->namespaces)
    {
        om_element->namespaces = axutil_hash_make(env);
        if (!(om_element->namespaces))
        {
            axiom_namespace_free(default_ns, env);
            return NULL;
        }
    }

    axutil_hash_set(om_element->namespaces, "",
                    AXIS2_HASH_KEY_STRING, default_ns);
    axiom_namespace_increment_ref(default_ns, env);
    return default_ns;
}

/**
* checks for the namespace in the context of this element
* with the given prefix
*/

AXIS2_EXTERN axiom_namespace_t *AXIS2_CALL
axiom_element_find_namespace_uri(
    axiom_element_t * om_element,
    const axutil_env_t * env,
    const axis2_char_t * prefix,
    axiom_node_t * element_node)
{
    axiom_node_t *parent_node = NULL;
    axiom_namespace_t *ns = NULL;

    AXIS2_ENV_CHECK(env, NULL);
    AXIS2_PARAM_CHECK(env->error, element_node, NULL);
    AXIS2_PARAM_CHECK(env->error, prefix, NULL);
    AXIS2_PARAM_CHECK(env->error, om_element, NULL);

    if (om_element->namespaces)
    {
        ns = axutil_hash_get(om_element->namespaces, prefix,
                             AXIS2_HASH_KEY_STRING);
        if (ns)
        {
            return ns;
        }
    }

    parent_node = axiom_node_get_parent(element_node, env);
    if ((parent_node) &&
        (axiom_node_get_node_type(parent_node, env) == AXIOM_ELEMENT))
    {
        axiom_element_t *parent_ele = NULL;
        parent_ele = (axiom_element_t *)
            axiom_node_get_data_element(parent_node, env);
        if (parent_ele)
        {
            return axiom_element_find_namespace_uri(parent_ele, env, prefix,
                                                    parent_node);
        }
    }
    return NULL;
}

AXIS2_EXTERN axis2_char_t *AXIS2_CALL
axiom_element_get_attribute_value(
    axiom_element_t * om_element,
    const axutil_env_t * env,
    axutil_qname_t * qname)
{
    axis2_char_t *name = NULL;
    axiom_attribute_t *attr = NULL;
    AXIS2_ENV_CHECK(env, NULL);
    AXIS2_PARAM_CHECK(env->error, qname, NULL);
    AXIS2_PARAM_CHECK(env->error, om_element, NULL);

    name = axutil_qname_to_string(qname, env);

    if ((om_element->attributes) && (NULL != name))
    {
        attr = (axiom_attribute_t *) axutil_hash_get(om_element->attributes,
                                                     name,
                                                     AXIS2_HASH_KEY_STRING);
        if (attr)
        {
            return axiom_attribute_get_value(attr, env);
        }
    }
    return NULL;
}

AXIS2_EXTERN axis2_status_t AXIS2_CALL
axiom_element_set_namespace_with_no_find_in_current_scope(
    axiom_element_t * om_element,
    const axutil_env_t * env,
    axiom_namespace_t * om_ns)
{
    AXIS2_ENV_CHECK(env, AXIS2_FAILURE);
    AXIS2_PARAM_CHECK(env->error, om_ns, AXIS2_FAILURE);
    AXIS2_PARAM_CHECK(env->error, om_element, AXIS2_FAILURE);
    om_element->ns = om_ns;
    return AXIS2_SUCCESS;
}

AXIS2_EXTERN axutil_hash_t *AXIS2_CALL
axiom_element_extract_attributes(
    axiom_element_t * om_element,
    const axutil_env_t * env,
    axiom_node_t * ele_node)
{
    axutil_hash_index_t *hi = NULL;
    axutil_hash_t *ht_cloned = NULL;

    axiom_attribute_t *om_attr = NULL;
    axiom_attribute_t *cloned_attr = NULL;

    axiom_namespace_t *om_ns = NULL;
    /*axiom_namespace_t *cloned_ns = NULL; */

    axis2_char_t *key = NULL;
    axutil_qname_t *qn = NULL;

    AXIS2_PARAM_CHECK(env->error, ele_node, NULL);
    AXIS2_PARAM_CHECK(env->error, om_element, NULL);
    if (!om_element->attributes)
    {
        return NULL;
    }
    ht_cloned = axutil_hash_make(env);
    if (!ht_cloned)
    {
        AXIS2_ERROR_SET(env->error, AXIS2_ERROR_NO_MEMORY, AXIS2_FAILURE);
        return NULL;
    }

    for (hi = axutil_hash_first(om_element->attributes, env);
         hi; hi = axutil_hash_next(env, hi))
    {
        void *val = NULL;
        axutil_hash_this(hi, NULL, NULL, &val);
        if (val)
        {
            om_attr = (axiom_attribute_t *) val;
            cloned_attr = axiom_attribute_clone(om_attr, env);

            om_ns = axiom_attribute_get_namespace(om_attr, env);
            if (om_ns)
            {
                /*cloned_ns = axiom_namespace_clone(om_ns, env); */
                /*axiom_attribute_set_namespace(cloned_attr, env, cloned_ns); */
                axiom_attribute_set_namespace(cloned_attr, env, om_ns);
            }
            qn = axiom_attribute_get_qname(cloned_attr, env);
            key = axutil_qname_to_string(qn, env);
            axutil_hash_set(ht_cloned, key, AXIS2_HASH_KEY_STRING, cloned_attr);
        }
        val = NULL;
        key = NULL;
        qn = NULL;
        om_attr = NULL;
        cloned_attr = NULL;
        om_ns = NULL;
        /*cloned_ns = NULL; */
    }
    return ht_cloned;
}

AXIS2_EXTERN axis2_char_t *AXIS2_CALL
axiom_element_get_attribute_value_by_name(
    axiom_element_t * om_element,
    const axutil_env_t * env,
    axis2_char_t * attr_name)
{
    axutil_hash_index_t *hi = NULL;

    AXIS2_PARAM_CHECK(env->error, attr_name, NULL);
    AXIS2_PARAM_CHECK(env->error, om_element, NULL);
    if (!om_element->attributes)
    {
        return NULL;
    }
    for (hi = axutil_hash_first(om_element->attributes, env); hi;
         hi = axutil_hash_next(env, hi))
    {
        void *attr = NULL;
        axiom_attribute_t *om_attr = NULL;
        axutil_hash_this(hi, NULL, NULL, &attr);
        if (attr)
        {
            axis2_char_t *this_attr_name;
            axis2_char_t *this_attr_value;
            axis2_char_t *attr_qn_str = NULL;
            axiom_namespace_t *attr_ns = NULL;
            axis2_char_t *prefix = NULL;

            om_attr = (axiom_attribute_t *) attr;
            this_attr_name = axiom_attribute_get_localname(om_attr, env);
            this_attr_value = axiom_attribute_get_value(om_attr, env);
            attr_ns = axiom_attribute_get_namespace(om_attr, env);
            if (attr_ns)
            {
                prefix = axiom_namespace_get_prefix(attr_ns, env);
                if (prefix)
                {
                    axis2_char_t *tmp_val = NULL;
                    tmp_val = axutil_stracat(env, prefix, ":");
                    attr_qn_str = axutil_stracat(env, tmp_val, this_attr_name);
                    if (tmp_val)
                    {
                        AXIS2_FREE(env->allocator, tmp_val);
                        tmp_val = NULL;
                    }
                }
            }
            else
            {
                attr_qn_str = axutil_strdup(env, this_attr_name);
            }

            if (attr_qn_str && axutil_strcmp(attr_qn_str, attr_name) == 0)
            {
                AXIS2_FREE(env->allocator, attr_qn_str);
                attr_qn_str = NULL;
                AXIS2_FREE(env->allocator, hi);
                return this_attr_value;
            }

            AXIS2_FREE(env->allocator, attr_qn_str);
            attr_qn_str = NULL;
        }
    }
    return NULL;
}

AXIS2_EXTERN axiom_element_t *AXIS2_CALL
axiom_element_create_str(
    const axutil_env_t * env,
    axiom_node_t * parent,
    axutil_string_t * localname,
    axiom_namespace_t * ns,
    axiom_node_t ** node)
{
    axiom_element_t *element;
    AXIS2_ENV_CHECK(env, NULL);

    if (!localname || !node)
    {
        AXIS2_ERROR_SET(env->error, AXIS2_ERROR_INVALID_NULL_PARAM,
                        AXIS2_FAILURE);
        AXIS2_LOG_ERROR(env->log, AXIS2_LOG_SI, "localname or node is NULL");
        return NULL;
    }

    (*node) = axiom_node_create(env);
    if (!(*node))
    {
        AXIS2_ERROR_SET(env->error, AXIS2_ERROR_NO_MEMORY, AXIS2_FAILURE);
        return NULL;
    }
    element = (axiom_element_t *) AXIS2_MALLOC(env->allocator,
                                               sizeof(axiom_element_t));

    if (!element)
    {
        AXIS2_FREE(env->allocator, (*node));
        AXIS2_ERROR_SET(env->error, AXIS2_ERROR_NO_MEMORY, AXIS2_FAILURE);
        return NULL;
    }
    element->ns = NULL;
    element->localname = NULL;
    element->attributes = NULL;
    element->namespaces = NULL;
    element->qname = NULL;
    element->child_ele_iter = NULL;
    element->children_iter = NULL;
    element->children_qname_iter = NULL;
    element->text_value = NULL;
    element->next_ns_prefix_number = 0;
	element->is_empty = AXIS2_FALSE;

    element->localname = axutil_string_clone(localname, env);
    if (!element->localname)
    {
        AXIS2_FREE(env->allocator, element);
        AXIS2_FREE(env->allocator, (*node));
        AXIS2_ERROR_SET(env->error, AXIS2_ERROR_NO_MEMORY, AXIS2_FAILURE);
        return NULL;
    }
    if (parent)
    {
        axiom_node_add_child(parent, env, (*node));
    }
    axiom_node_set_complete((*node), env, AXIS2_FALSE);
    axiom_node_set_node_type((*node), env, AXIOM_ELEMENT);
    axiom_node_set_data_element((*node), env, element);

    if (ns)
    {
        axis2_char_t *uri = NULL;
        axis2_char_t *prefix = NULL;

        uri = axiom_namespace_get_uri(ns, env);
        prefix = axiom_namespace_get_prefix(ns, env);

        element->ns = axiom_element_find_namespace(element,
                                                   env, *node, uri, prefix);
        if (!(element->ns))
        {
            if (axiom_element_declare_namespace(element,
                                                env, *node,
                                                ns) == AXIS2_SUCCESS)
            {
                element->ns = ns;
            }
        }
        if (prefix && axutil_strcmp(prefix, "") == 0)
        {
            element->ns = NULL;
        }
    }

    return element;
}

AXIS2_EXTERN axutil_string_t *AXIS2_CALL
axiom_element_get_localname_str(
    axiom_element_t * om_element,
    const axutil_env_t * env)
{
    AXIS2_PARAM_CHECK(env->error, om_element, NULL);
    return om_element->localname;
}

AXIS2_EXTERN axis2_status_t AXIS2_CALL
axiom_element_set_localname_str(
    axiom_element_t * om_element,
    const axutil_env_t * env,
    axutil_string_t * localname)
{
    AXIS2_ENV_CHECK(env, AXIS2_FAILURE);
    AXIS2_PARAM_CHECK(env->error, localname, AXIS2_FAILURE);
    AXIS2_PARAM_CHECK(env->error, om_element, AXIS2_FAILURE);

    if (om_element->localname)
    {
        axutil_string_free(om_element->localname, env);
        om_element->localname = NULL;
    }

    om_element->localname = axutil_string_clone(localname, env);

    if (!(om_element->localname))
    {
        return AXIS2_FAILURE;
    }
    return AXIS2_SUCCESS;
}

AXIS2_EXTERN axis2_bool_t AXIS2_CALL
axiom_element_get_is_empty(
    axiom_element_t * om_element,
    const axutil_env_t * env)
{
    return om_element->is_empty;
}

AXIS2_EXTERN void AXIS2_CALL
axiom_element_set_is_empty(
    axiom_element_t * om_element,
    const axutil_env_t * env,
    axis2_bool_t is_empty)
{
    AXIS2_PARAM_CHECK_VOID(env->error, om_element);
    om_element->is_empty = is_empty;
}

/**
 * Scan the parents of the element, to determine which namespaces are inscope for the
 * the element and its children.
 */
AXIS2_EXTERN axutil_hash_t * AXIS2_CALL
axiom_element_gather_parent_namespaces(
    axiom_element_t * om_element,
    const axutil_env_t * env,
    axiom_node_t * om_node)
{
    axutil_hash_t *inscope_namespaces = NULL;
    axiom_node_t *parent_node = om_node;

    while ((parent_node = axiom_node_get_parent(parent_node, env)) &&
           (axiom_node_get_node_type(parent_node, env) == AXIOM_ELEMENT))
    {
        axiom_element_t *parent_element = (axiom_element_t *)axiom_node_get_data_element(parent_node, env);
        axutil_hash_t *parent_namespaces = axiom_element_get_namespaces(parent_element, env);
        if (parent_namespaces)
        {
            axutil_hash_index_t *hi;
            void *val;
            for (hi = axutil_hash_first(parent_namespaces, env); hi;
                 hi = axutil_hash_next(env, hi))
            {
                axutil_hash_this(hi, NULL, NULL, &val);
                if (val)
                {
                    /* Check if prefix is already associated with some namespace in node being detached */
                    if (!axiom_element_find_declared_namespace(om_element, env, NULL,
                                                               axiom_namespace_get_prefix((axiom_namespace_t *)val, env)))
                    {
                        axis2_char_t *key = axiom_namespace_get_prefix((axiom_namespace_t *)val, env);
                        if (!key)
                            key = "";
                        /* Check if prefix already associated with some namespace in a parent node */
                        if (!(inscope_namespaces && axutil_hash_get(inscope_namespaces, key, AXIS2_HASH_KEY_STRING)))
                        {
                            /* Remember this namespace as needing to be declared, if used */
                            if (!inscope_namespaces)
                                inscope_namespaces = axutil_hash_make(env);
                            if (inscope_namespaces)
                                axutil_hash_set(inscope_namespaces, key, AXIS2_HASH_KEY_STRING, val);
                        }
                    }
                }
            }
        }
    }

    return inscope_namespaces;
}

/**
 * Test if the provided namespace pointer is declared in a parent namespace
 * If so, redeclare it in the provided root element
 */
AXIS2_EXTERN void AXIS2_CALL
axiom_element_use_parent_namespace(
    axiom_element_t * om_element,
    const axutil_env_t * env,
    axiom_node_t * om_node,
    axiom_namespace_t *ns,
    axiom_element_t * root_element,
    axutil_hash_t *inscope_namespaces)
{
    if (ns && inscope_namespaces)
    {
        axiom_namespace_t *parent_ns;
        axis2_char_t *key = axiom_namespace_get_prefix(ns, env);
        if (!key)
            key = "";

        parent_ns = axutil_hash_get(inscope_namespaces, key, AXIS2_HASH_KEY_STRING);
        /* Check if namespace is a namespace declared in a parent and not also
           declared at an intermediate level */
        if (parent_ns && (parent_ns == ns) &&
            (ns != axiom_element_find_namespace(om_element, env, om_node,
                                                axiom_namespace_get_uri(ns, env),
                                                axiom_namespace_get_prefix(ns, env))))
        {
            /* Redeclare this parent namespace at the level of the element being detached */
            axiom_element_declare_namespace_assume_param_ownership(root_element, env, parent_ns);
            /* Remove the namespace from the inscope parent namespaces now that it has
               been redeclared. */
            axutil_hash_set(inscope_namespaces, key, AXIS2_HASH_KEY_STRING, NULL);
        }
    }
}

/**
 * For each child node, determine if it uses a namespace from a parent of the node being detached
 * If so, re-declare that namespace in the node being detached
 */
AXIS2_EXTERN void AXIS2_CALL
axiom_element_redeclare_parent_namespaces(
    axiom_element_t * om_element,
    const axutil_env_t * env,
    axiom_node_t * om_node,
    axiom_element_t * root_element,
    axutil_hash_t *inscope_namespaces)
{
    axiom_node_t *child_node;
    axutil_hash_t * attributes;

    if (!om_element || !om_node || !inscope_namespaces)
        return;

    /* ensure the element's namespace is declared */
    axiom_element_use_parent_namespace(om_element, env, om_node,
                                              om_element->ns, root_element, inscope_namespaces);

    /* for each attribute, ensure the attribute's namespace is declared */
    attributes = om_element->attributes;
    if (attributes)
    {
        axutil_hash_index_t *hi;
        void *val;
        for (hi = axutil_hash_first(attributes, env); hi;
             hi = axutil_hash_next(env, hi))
        {
            axutil_hash_this(hi, NULL, NULL, &val);
            if (val)
            {
                axiom_element_use_parent_namespace(om_element, env, om_node,
                                                   axiom_attribute_get_namespace((axiom_attribute_t *)val, env),
                                                   root_element, inscope_namespaces);
            }
        }
    }

    /* ensure the namespaces in all the children are declared */
    child_node = axiom_node_get_first_child(om_node, env);
    while (child_node && (axutil_hash_count(inscope_namespaces) > 0))
    {
        if (axiom_node_get_node_type(child_node, env) == AXIOM_ELEMENT)
        {
            axiom_element_redeclare_parent_namespaces(axiom_node_get_data_element(child_node, env),
                                                                     env, child_node, root_element, inscope_namespaces);
        }
        child_node = axiom_node_get_next_sibling(child_node, env);
    }
}


<|start_filename|>xdocs/api/html/axis2__http__client_8h-source.html<|end_filename|>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html><head><meta http-equiv="Content-Type" content="text/html;charset=UTF-8">
<title>Axis2/C: axis2_http_client.h Source File</title>
<link href="doxygen.css" rel="stylesheet" type="text/css">
<link href="tabs.css" rel="stylesheet" type="text/css">
</head><body>
<!-- Generated by Doxygen 1.5.3 -->
<div class="tabs">
  <ul>
    <li><a href="index.html"><span>Main&nbsp;Page</span></a></li>
    <li><a href="modules.html"><span>Modules</span></a></li>
    <li><a href="annotated.html"><span>Classes</span></a></li>
    <li class="current"><a href="files.html"><span>Files</span></a></li>
    <li><a href="dirs.html"><span>Directories</span></a></li>
    <li><a href="pages.html"><span>Related&nbsp;Pages</span></a></li>
    <li><a href="examples.html"><span>Examples</span></a></li>
    <li>
      <form action="search.php" method="get">
        <table cellspacing="0" cellpadding="0" border="0">
          <tr>
            <td><label>&nbsp;<u>S</u>earch&nbsp;for&nbsp;</label></td>
            <td><input type="text" name="query" value="" size="20" accesskey="s"/></td>
          </tr>
        </table>
      </form>
    </li>
  </ul>
</div>
<div class="nav">
<a class="el" href="dir_f60961de8e5edc3b2658ef023e959e45.html">deploy</a>&nbsp;&raquo&nbsp;<a class="el" href="dir_6b4e91e54b7316b376882a6402adbf44.html">include</a>&nbsp;&raquo&nbsp;<a class="el" href="dir_df3a7695d5a9e696f30b948b566829e7.html">axis2-1.6.0</a></div>
<h1>axis2_http_client.h</h1><a href="axis2__http__client_8h.html">Go to the documentation of this file.</a><div class="fragment"><pre class="fragment"><a name="l00001"></a>00001 
<a name="l00002"></a>00002 <span class="comment">/*</span>
<a name="l00003"></a>00003 <span class="comment">* Licensed to the Apache Software Foundation (ASF) under one or more</span>
<a name="l00004"></a>00004 <span class="comment">* contributor license agreements.  See the NOTICE file distributed with</span>
<a name="l00005"></a>00005 <span class="comment">* this work for additional information regarding copyright ownership.</span>
<a name="l00006"></a>00006 <span class="comment">* The ASF licenses this file to You under the Apache License, Version 2.0</span>
<a name="l00007"></a>00007 <span class="comment">* (the "License"); you may not use this file except in compliance with</span>
<a name="l00008"></a>00008 <span class="comment">* the License.  You may obtain a copy of the License at</span>
<a name="l00009"></a>00009 <span class="comment">*</span>
<a name="l00010"></a>00010 <span class="comment">*      http://www.apache.org/licenses/LICENSE-2.0</span>
<a name="l00011"></a>00011 <span class="comment">*</span>
<a name="l00012"></a>00012 <span class="comment">* Unless required by applicable law or agreed to in writing, software</span>
<a name="l00013"></a>00013 <span class="comment">* distributed under the License is distributed on an "AS IS" BASIS,</span>
<a name="l00014"></a>00014 <span class="comment">* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.</span>
<a name="l00015"></a>00015 <span class="comment">* See the License for the specific language governing permissions and</span>
<a name="l00016"></a>00016 <span class="comment">* limitations under the License.</span>
<a name="l00017"></a>00017 <span class="comment">*/</span>
<a name="l00018"></a>00018 
<a name="l00019"></a>00019 <span class="preprocessor">#ifndef AXIS2_HTTP_CLIENT_H</span>
<a name="l00020"></a>00020 <span class="preprocessor"></span><span class="preprocessor">#define AXIS2_HTTP_CLIENT_H</span>
<a name="l00021"></a>00021 <span class="preprocessor"></span>
<a name="l00034"></a>00034 <span class="preprocessor">#include &lt;axis2_const.h&gt;</span>
<a name="l00035"></a>00035 <span class="preprocessor">#include &lt;<a class="code" href="axis2__defines_8h.html" title="Useful definitions, which may have platform concerns.">axis2_defines.h</a>&gt;</span>
<a name="l00036"></a>00036 <span class="preprocessor">#include &lt;<a class="code" href="axutil__env_8h.html" title="Axis2 environment that acts as a container for error, log and memory allocator routines...">axutil_env.h</a>&gt;</span>
<a name="l00037"></a>00037 <span class="preprocessor">#include &lt;axis2_http_simple_response.h&gt;</span>
<a name="l00038"></a>00038 <span class="preprocessor">#include &lt;<a class="code" href="axis2__http__simple__request_8h.html" title="axis2 HTTP Simple Request">axis2_http_simple_request.h</a>&gt;</span>
<a name="l00039"></a>00039 <span class="preprocessor">#include &lt;<a class="code" href="axutil__url_8h.html" title="axis2 URL container implementation">axutil_url.h</a>&gt;</span>
<a name="l00040"></a>00040 
<a name="l00041"></a>00041 
<a name="l00042"></a>00042 
<a name="l00043"></a>00043 <span class="preprocessor">#ifdef __cplusplus</span>
<a name="l00044"></a>00044 <span class="preprocessor"></span><span class="keyword">extern</span> <span class="stringliteral">"C"</span>
<a name="l00045"></a>00045 {
<a name="l00046"></a>00046 <span class="preprocessor">#endif</span>
<a name="l00047"></a>00047 <span class="preprocessor"></span>
<a name="l00049"></a><a class="code" href="group__axis2__http__client.html#gdeeb1e1752239a9e3696e1aa75fe331d">00049</a>     <span class="keyword">typedef</span> <span class="keyword">struct </span>axis2_http_client <a class="code" href="group__axis2__http__client.html#gdeeb1e1752239a9e3696e1aa75fe331d">axis2_http_client_t</a>;
<a name="l00050"></a>00050 
<a name="l00057"></a>00057     AXIS2_EXTERN axis2_status_t AXIS2_CALL
<a name="l00058"></a>00058     <a class="code" href="group__axis2__http__client.html#g101755ba5822bee5f88615d18fa6259f">axis2_http_client_send</a>(
<a name="l00059"></a>00059         <a class="code" href="group__axis2__http__client.html#gdeeb1e1752239a9e3696e1aa75fe331d">axis2_http_client_t</a> * client,
<a name="l00060"></a>00060         <span class="keyword">const</span> <a class="code" href="structaxutil__env.html" title="Axis2 Environment struct.">axutil_env_t</a> * env,
<a name="l00061"></a>00061         <a class="code" href="group__axis2__http__simple__request.html#g587c6b13c2e9b94b68e3a2a142cc3416">axis2_http_simple_request_t</a> * request,
<a name="l00062"></a>00062         axis2_char_t * ssl_pp);
<a name="l00063"></a>00063 
<a name="l00068"></a>00068     AXIS2_EXTERN <span class="keywordtype">int</span> AXIS2_CALL
<a name="l00069"></a>00069     <a class="code" href="group__axis2__http__client.html#g5f5f7785804c35e3eb2adf658ac03343">axis2_http_client_recieve_header</a>(
<a name="l00070"></a>00070         <a class="code" href="group__axis2__http__client.html#gdeeb1e1752239a9e3696e1aa75fe331d">axis2_http_client_t</a> * client,
<a name="l00071"></a>00071         <span class="keyword">const</span> <a class="code" href="structaxutil__env.html" title="Axis2 Environment struct.">axutil_env_t</a> * env);
<a name="l00072"></a>00072 
<a name="l00077"></a>00077     AXIS2_EXTERN <a class="code" href="group__axis2__http__simple__response.html#g5ebc18702d80d368692d1922f9accb1f">axis2_http_simple_response_t</a> *AXIS2_CALL
<a name="l00078"></a>00078 
<a name="l00079"></a>00079     <a class="code" href="group__axis2__http__client.html#gd341b350cc543e7e7dbdba85c7ca952e">axis2_http_client_get_response</a>(
<a name="l00080"></a>00080         <span class="keyword">const</span> <a class="code" href="group__axis2__http__client.html#gdeeb1e1752239a9e3696e1aa75fe331d">axis2_http_client_t</a> * client,
<a name="l00081"></a>00081         <span class="keyword">const</span> <a class="code" href="structaxutil__env.html" title="Axis2 Environment struct.">axutil_env_t</a> * env);
<a name="l00082"></a>00082 
<a name="l00089"></a>00089     AXIS2_EXTERN axis2_status_t AXIS2_CALL
<a name="l00090"></a>00090     <a class="code" href="group__axis2__http__client.html#g66ab25088ee5cbc88dbe28e129711f5b">axis2_http_client_set_url</a>(
<a name="l00091"></a>00091         <a class="code" href="group__axis2__http__client.html#gdeeb1e1752239a9e3696e1aa75fe331d">axis2_http_client_t</a> * client,
<a name="l00092"></a>00092         <span class="keyword">const</span> <a class="code" href="structaxutil__env.html" title="Axis2 Environment struct.">axutil_env_t</a> * env,
<a name="l00093"></a>00093         axutil_url_t * url);
<a name="l00094"></a>00094 
<a name="l00099"></a>00099     AXIS2_EXTERN axutil_url_t *AXIS2_CALL
<a name="l00100"></a>00100     <a class="code" href="group__axis2__http__client.html#g703df971a6d10953a217b2aaa173a626">axis2_http_client_get_url</a>(
<a name="l00101"></a>00101         <span class="keyword">const</span> <a class="code" href="group__axis2__http__client.html#gdeeb1e1752239a9e3696e1aa75fe331d">axis2_http_client_t</a> * client,
<a name="l00102"></a>00102         <span class="keyword">const</span> <a class="code" href="structaxutil__env.html" title="Axis2 Environment struct.">axutil_env_t</a> * env);
<a name="l00103"></a>00103 
<a name="l00110"></a>00110     AXIS2_EXTERN axis2_status_t AXIS2_CALL
<a name="l00111"></a>00111     <a class="code" href="group__axis2__http__client.html#g7b4a59a173e56ce5e461a5e65e219def">axis2_http_client_set_timeout</a>(
<a name="l00112"></a>00112         <a class="code" href="group__axis2__http__client.html#gdeeb1e1752239a9e3696e1aa75fe331d">axis2_http_client_t</a> * client,
<a name="l00113"></a>00113         <span class="keyword">const</span> <a class="code" href="structaxutil__env.html" title="Axis2 Environment struct.">axutil_env_t</a> * env,
<a name="l00114"></a>00114         <span class="keywordtype">int</span> timeout_ms);
<a name="l00115"></a>00115 
<a name="l00120"></a>00120     AXIS2_EXTERN <span class="keywordtype">int</span> AXIS2_CALL
<a name="l00121"></a>00121     <a class="code" href="group__axis2__http__client.html#g32bb50461fab10fa658ac0d1c659e7da">axis2_http_client_get_timeout</a>(
<a name="l00122"></a>00122         <span class="keyword">const</span> <a class="code" href="group__axis2__http__client.html#gdeeb1e1752239a9e3696e1aa75fe331d">axis2_http_client_t</a> * client,
<a name="l00123"></a>00123         <span class="keyword">const</span> <a class="code" href="structaxutil__env.html" title="Axis2 Environment struct.">axutil_env_t</a> * env);
<a name="l00124"></a>00124 
<a name="l00132"></a>00132     AXIS2_EXTERN axis2_status_t AXIS2_CALL
<a name="l00133"></a>00133     <a class="code" href="group__axis2__http__client.html#gbbfff130bda80cf00cb020a08d92e900">axis2_http_client_set_proxy</a>(
<a name="l00134"></a>00134         <a class="code" href="group__axis2__http__client.html#gdeeb1e1752239a9e3696e1aa75fe331d">axis2_http_client_t</a> * client,
<a name="l00135"></a>00135         <span class="keyword">const</span> <a class="code" href="structaxutil__env.html" title="Axis2 Environment struct.">axutil_env_t</a> * env,
<a name="l00136"></a>00136         axis2_char_t * proxy_host,
<a name="l00137"></a>00137         <span class="keywordtype">int</span> proxy_port);
<a name="l00138"></a>00138 
<a name="l00143"></a>00143     AXIS2_EXTERN axis2_char_t *AXIS2_CALL
<a name="l00144"></a>00144     <a class="code" href="group__axis2__http__client.html#geafedbee3be84605e6872b2ba4ed7cb4">axis2_http_client_get_proxy</a>(
<a name="l00145"></a>00145         <span class="keyword">const</span> <a class="code" href="group__axis2__http__client.html#gdeeb1e1752239a9e3696e1aa75fe331d">axis2_http_client_t</a> * client,
<a name="l00146"></a>00146         <span class="keyword">const</span> <a class="code" href="structaxutil__env.html" title="Axis2 Environment struct.">axutil_env_t</a> * env);
<a name="l00147"></a>00147 
<a name="l00148"></a>00148     AXIS2_EXTERN axis2_status_t AXIS2_CALL
<a name="l00149"></a>00149 
<a name="l00150"></a>00150     axis2_http_client_connect_ssl_host(
<a name="l00151"></a>00151         <a class="code" href="group__axis2__http__client.html#gdeeb1e1752239a9e3696e1aa75fe331d">axis2_http_client_t</a> * client,
<a name="l00152"></a>00152         <span class="keyword">const</span> <a class="code" href="structaxutil__env.html" title="Axis2 Environment struct.">axutil_env_t</a> * env,
<a name="l00153"></a>00153         axis2_char_t * host,
<a name="l00154"></a>00154         <span class="keywordtype">int</span> port);
<a name="l00155"></a>00155 
<a name="l00156"></a>00156     AXIS2_EXTERN axis2_status_t AXIS2_CALL
<a name="l00157"></a>00157 
<a name="l00158"></a>00158     axis2_http_client_set_dump_input_msg(
<a name="l00159"></a>00159         <a class="code" href="group__axis2__http__client.html#gdeeb1e1752239a9e3696e1aa75fe331d">axis2_http_client_t</a> * client,
<a name="l00160"></a>00160         <span class="keyword">const</span> <a class="code" href="structaxutil__env.html" title="Axis2 Environment struct.">axutil_env_t</a> * env,
<a name="l00161"></a>00161         axis2_bool_t dump_input_msg);
<a name="l00162"></a>00162 
<a name="l00169"></a>00169     AXIS2_EXTERN axis2_status_t AXIS2_CALL
<a name="l00170"></a>00170     <a class="code" href="group__axis2__http__client.html#gb9f482d072c34edf2b8a6b901dcc52d2">axis2_http_client_set_server_cert</a>(
<a name="l00171"></a>00171         <a class="code" href="group__axis2__http__client.html#gdeeb1e1752239a9e3696e1aa75fe331d">axis2_http_client_t</a> * client,
<a name="l00172"></a>00172         <span class="keyword">const</span> <a class="code" href="structaxutil__env.html" title="Axis2 Environment struct.">axutil_env_t</a> * env,
<a name="l00173"></a>00173         axis2_char_t * server_cert);
<a name="l00174"></a>00174 
<a name="l00179"></a>00179     AXIS2_EXTERN axis2_char_t *AXIS2_CALL
<a name="l00180"></a>00180     <a class="code" href="group__axis2__http__client.html#g359e463dc9e7f0a7b33f2b3f91b1484e">axis2_http_client_get_server_cert</a>(
<a name="l00181"></a>00181         <span class="keyword">const</span> <a class="code" href="group__axis2__http__client.html#gdeeb1e1752239a9e3696e1aa75fe331d">axis2_http_client_t</a> * client,
<a name="l00182"></a>00182         <span class="keyword">const</span> <a class="code" href="structaxutil__env.html" title="Axis2 Environment struct.">axutil_env_t</a> * env);
<a name="l00183"></a>00183 
<a name="l00190"></a>00190     AXIS2_EXTERN axis2_status_t AXIS2_CALL
<a name="l00191"></a>00191     <a class="code" href="group__axis2__http__client.html#g90dd4214f012bb8f75c9dc572eb78945">axis2_http_client_set_key_file</a>(
<a name="l00192"></a>00192         <a class="code" href="group__axis2__http__client.html#gdeeb1e1752239a9e3696e1aa75fe331d">axis2_http_client_t</a> * client,
<a name="l00193"></a>00193         <span class="keyword">const</span> <a class="code" href="structaxutil__env.html" title="Axis2 Environment struct.">axutil_env_t</a> * env,
<a name="l00194"></a>00194         axis2_char_t * key_file);
<a name="l00195"></a>00195 
<a name="l00200"></a>00200     AXIS2_EXTERN axis2_char_t *AXIS2_CALL
<a name="l00201"></a>00201     <a class="code" href="group__axis2__http__client.html#g59c9e33acb7844f4b9613286e3dd5c98">axis2_http_client_get_key_file</a>(
<a name="l00202"></a>00202         <span class="keyword">const</span> <a class="code" href="group__axis2__http__client.html#gdeeb1e1752239a9e3696e1aa75fe331d">axis2_http_client_t</a> * client,
<a name="l00203"></a>00203         <span class="keyword">const</span> <a class="code" href="structaxutil__env.html" title="Axis2 Environment struct.">axutil_env_t</a> * env);
<a name="l00204"></a>00204 
<a name="l00210"></a>00210     AXIS2_EXTERN <span class="keywordtype">void</span> AXIS2_CALL
<a name="l00211"></a>00211     <a class="code" href="group__axis2__http__client.html#g201ef99f4cd3520db5d6d6dddb93dfad">axis2_http_client_free</a>(
<a name="l00212"></a>00212         <a class="code" href="group__axis2__http__client.html#gdeeb1e1752239a9e3696e1aa75fe331d">axis2_http_client_t</a> * client,
<a name="l00213"></a>00213         <span class="keyword">const</span> <a class="code" href="structaxutil__env.html" title="Axis2 Environment struct.">axutil_env_t</a> * env);
<a name="l00214"></a>00214 
<a name="l00219"></a>00219     AXIS2_EXTERN <a class="code" href="group__axis2__http__client.html#gdeeb1e1752239a9e3696e1aa75fe331d">axis2_http_client_t</a> *AXIS2_CALL
<a name="l00220"></a>00220     <a class="code" href="group__axis2__http__client.html#gfd79db7fb40936a06673e606771aa57d">axis2_http_client_create</a>(
<a name="l00221"></a>00221         <span class="keyword">const</span> <a class="code" href="structaxutil__env.html" title="Axis2 Environment struct.">axutil_env_t</a> * env,
<a name="l00222"></a>00222         axutil_url_t * url);
<a name="l00223"></a>00223 
<a name="l00231"></a>00231     AXIS2_EXTERN <span class="keywordtype">void</span> AXIS2_CALL
<a name="l00232"></a>00232     <a class="code" href="group__axis2__http__client.html#gc33e073ad963820ba18f7b255b060a53">axis2_http_client_free_void_arg</a>(
<a name="l00233"></a>00233         <span class="keywordtype">void</span> *client,
<a name="l00234"></a>00234         <span class="keyword">const</span> <a class="code" href="structaxutil__env.html" title="Axis2 Environment struct.">axutil_env_t</a> * env);
<a name="l00235"></a>00235 
<a name="l00236"></a>00236     AXIS2_EXTERN axis2_status_t AXIS2_CALL
<a name="l00237"></a>00237     axis2_http_client_set_mime_parts(
<a name="l00238"></a>00238         <a class="code" href="group__axis2__http__client.html#gdeeb1e1752239a9e3696e1aa75fe331d">axis2_http_client_t</a> * client,
<a name="l00239"></a>00239         <span class="keyword">const</span> <a class="code" href="structaxutil__env.html" title="Axis2 Environment struct.">axutil_env_t</a> * env,
<a name="l00240"></a>00240         <a class="code" href="group__axutil__array__list.html#g1a6a89777db876cfa0cc86787b7be6a0">axutil_array_list_t</a> *mime_parts);
<a name="l00241"></a>00241 
<a name="l00242"></a>00242     AXIS2_EXTERN <a class="code" href="group__axutil__array__list.html#g1a6a89777db876cfa0cc86787b7be6a0">axutil_array_list_t</a> *AXIS2_CALL
<a name="l00243"></a>00243     axis2_http_client_get_mime_parts(
<a name="l00244"></a>00244         <span class="keyword">const</span> <a class="code" href="group__axis2__http__client.html#gdeeb1e1752239a9e3696e1aa75fe331d">axis2_http_client_t</a> * client,
<a name="l00245"></a>00245         <span class="keyword">const</span> <a class="code" href="structaxutil__env.html" title="Axis2 Environment struct.">axutil_env_t</a> * env);
<a name="l00246"></a>00246 
<a name="l00247"></a>00247     AXIS2_EXTERN axis2_status_t AXIS2_CALL
<a name="l00248"></a>00248     axis2_http_client_set_doing_mtom(
<a name="l00249"></a>00249         <a class="code" href="group__axis2__http__client.html#gdeeb1e1752239a9e3696e1aa75fe331d">axis2_http_client_t</a> * client,
<a name="l00250"></a>00250         <span class="keyword">const</span> <a class="code" href="structaxutil__env.html" title="Axis2 Environment struct.">axutil_env_t</a> * env,
<a name="l00251"></a>00251         axis2_bool_t doing_mtom);
<a name="l00252"></a>00252 
<a name="l00253"></a>00253     AXIS2_EXTERN axis2_bool_t AXIS2_CALL
<a name="l00254"></a>00254     axis2_http_client_get_doing_mtom(
<a name="l00255"></a>00255         <span class="keyword">const</span> <a class="code" href="group__axis2__http__client.html#gdeeb1e1752239a9e3696e1aa75fe331d">axis2_http_client_t</a> * client,
<a name="l00256"></a>00256         <span class="keyword">const</span> <a class="code" href="structaxutil__env.html" title="Axis2 Environment struct.">axutil_env_t</a> * env);
<a name="l00257"></a>00257 
<a name="l00258"></a>00258     AXIS2_EXTERN axis2_status_t AXIS2_CALL
<a name="l00259"></a>00259     axis2_http_client_set_mtom_sending_callback_name(
<a name="l00260"></a>00260         <a class="code" href="group__axis2__http__client.html#gdeeb1e1752239a9e3696e1aa75fe331d">axis2_http_client_t</a> * client,
<a name="l00261"></a>00261         <span class="keyword">const</span> <a class="code" href="structaxutil__env.html" title="Axis2 Environment struct.">axutil_env_t</a> * env,
<a name="l00262"></a>00262         axis2_char_t *callback_name);
<a name="l00263"></a>00263 
<a name="l00264"></a>00264 
<a name="l00266"></a>00266 <span class="preprocessor">#ifdef __cplusplus</span>
<a name="l00267"></a>00267 <span class="preprocessor"></span>}
<a name="l00268"></a>00268 <span class="preprocessor">#endif</span>
<a name="l00269"></a>00269 <span class="preprocessor"></span>
<a name="l00270"></a>00270 <span class="preprocessor">#endif                          </span><span class="comment">/* AXIS2_HTTP_CLIENT_H */</span>
</pre></div><hr size="1"><address style="text-align: right;"><small>Generated on Fri Apr 17 11:49:42 2009 for Axis2/C by&nbsp;
<a href="http://www.doxygen.org/index.html">
<img src="doxygen.png" alt="doxygen" align="middle" border="0"></a> 1.5.3 </small></address>
</body>
</html>


<|start_filename|>xdocs/api/html/group__axiom__data__handler.html<|end_filename|>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html><head><meta http-equiv="Content-Type" content="text/html;charset=UTF-8">
<title>Axis2/C: Flow</title>
<link href="doxygen.css" rel="stylesheet" type="text/css">
<link href="tabs.css" rel="stylesheet" type="text/css">
</head><body>
<!-- Generated by Doxygen 1.5.3 -->
<div class="tabs">
  <ul>
    <li><a href="index.html"><span>Main&nbsp;Page</span></a></li>
    <li><a href="modules.html"><span>Modules</span></a></li>
    <li><a href="annotated.html"><span>Classes</span></a></li>
    <li><a href="files.html"><span>Files</span></a></li>
    <li><a href="dirs.html"><span>Directories</span></a></li>
    <li><a href="pages.html"><span>Related&nbsp;Pages</span></a></li>
    <li><a href="examples.html"><span>Examples</span></a></li>
    <li>
      <form action="search.php" method="get">
        <table cellspacing="0" cellpadding="0" border="0">
          <tr>
            <td><label>&nbsp;<u>S</u>earch&nbsp;for&nbsp;</label></td>
            <td><input type="text" name="query" value="" size="20" accesskey="s"/></td>
          </tr>
        </table>
      </form>
    </li>
  </ul>
</div>
<h1>Flow</h1><table border="0" cellpadding="0" cellspacing="0">
<tr><td></td></tr>
<tr><td colspan="2"><br><h2>Functions</h2></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top">AXIS2_EXTERN <br>
axis2_char_t *&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__axiom__data__handler.html#ga132e800329243265ca138c661fa34d5">axiom_data_handler_get_content_type</a> (axiom_data_handler_t *data_handler, const <a class="el" href="structaxutil__env.html">axutil_env_t</a> *env)</td></tr>

<tr><td class="memItemLeft" nowrap align="right" valign="top">AXIS2_EXTERN <br>
axis2_status_t&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__axiom__data__handler.html#gbd786bd0c93181d5232492e486d59799">axiom_data_handler_set_content_type</a> (axiom_data_handler_t *data_handler, const <a class="el" href="structaxutil__env.html">axutil_env_t</a> *env, const axis2_char_t *mime_type)</td></tr>

<tr><td class="memItemLeft" nowrap align="right" valign="top">AXIS2_EXTERN axis2_bool_t&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__axiom__data__handler.html#g12b16a32671739f4faa56c72ec99bc8c">axiom_data_handler_get_cached</a> (axiom_data_handler_t *data_handler, const <a class="el" href="structaxutil__env.html">axutil_env_t</a> *env)</td></tr>

<tr><td class="memItemLeft" nowrap align="right" valign="top">AXIS2_EXTERN void&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__axiom__data__handler.html#gc6da7f863c5e580fc47dcf6a380f4d57">axiom_data_handler_set_cached</a> (axiom_data_handler_t *data_handler, const <a class="el" href="structaxutil__env.html">axutil_env_t</a> *env, axis2_bool_t cached)</td></tr>

<tr><td class="memItemLeft" nowrap align="right" valign="top">AXIS2_EXTERN <br>
axis2_byte_t *&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__axiom__data__handler.html#g1fcb504cd3cdb758b5247066c1cb332c">axiom_data_handler_get_input_stream</a> (axiom_data_handler_t *data_handler, const <a class="el" href="structaxutil__env.html">axutil_env_t</a> *env)</td></tr>

<tr><td class="memItemLeft" nowrap align="right" valign="top">AXIS2_EXTERN int&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__axiom__data__handler.html#g2f9ba62f37963b8425b85710a1873845">axiom_data_handler_get_input_stream_len</a> (axiom_data_handler_t *data_handler, const <a class="el" href="structaxutil__env.html">axutil_env_t</a> *env)</td></tr>

<tr><td class="memItemLeft" nowrap align="right" valign="top">AXIS2_EXTERN <br>
axis2_status_t&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__axiom__data__handler.html#ge35b85ccac0a5bd5fd659124c75d5ca2">axiom_data_handler_read_from</a> (axiom_data_handler_t *data_handler, const <a class="el" href="structaxutil__env.html">axutil_env_t</a> *env, axis2_byte_t **output_stream, int *output_stream_size)</td></tr>

<tr><td class="memItemLeft" nowrap align="right" valign="top">AXIS2_EXTERN <br>
axis2_status_t&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__axiom__data__handler.html#gcdd5abcf6725059de9409e8ea486980b">axiom_data_handler_set_binary_data</a> (axiom_data_handler_t *data_handler, const <a class="el" href="structaxutil__env.html">axutil_env_t</a> *env, axis2_byte_t *input_stream, int input_stream_len)</td></tr>

<tr><td class="memItemLeft" nowrap align="right" valign="top">AXIS2_EXTERN <br>
axis2_status_t&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__axiom__data__handler.html#g47e0e307ecd1fc27223fb67f10e194ed">axiom_data_handler_write_to</a> (axiom_data_handler_t *data_handler, const <a class="el" href="structaxutil__env.html">axutil_env_t</a> *env)</td></tr>

<tr><td class="memItemLeft" nowrap align="right" valign="top">AXIS2_EXTERN <br>
axis2_status_t&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__axiom__data__handler.html#g5a80fd78e575238e58fc38062a689258">axiom_data_handler_set_file_name</a> (axiom_data_handler_t *data_handler, const <a class="el" href="structaxutil__env.html">axutil_env_t</a> *env, axis2_char_t *file_name)</td></tr>

<tr><td class="memItemLeft" nowrap align="right" valign="top">AXIS2_EXTERN <br>
axis2_char_t *&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__axiom__data__handler.html#g0eb87b388f6a8d1c8df21b685cea0161">axiom_data_handler_get_file_name</a> (axiom_data_handler_t *data_handler, const <a class="el" href="structaxutil__env.html">axutil_env_t</a> *env)</td></tr>

<tr><td class="memItemLeft" nowrap align="right" valign="top">AXIS2_EXTERN void&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__axiom__data__handler.html#g790d6d952b28f7aa0202216ef5074489">axiom_data_handler_free</a> (axiom_data_handler_t *data_handler, const <a class="el" href="structaxutil__env.html">axutil_env_t</a> *env)</td></tr>

<tr><td class="memItemLeft" nowrap align="right" valign="top">AXIS2_EXTERN <br>
axiom_data_handler_t *&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__axiom__data__handler.html#gf1a1862c29144a3234025b1218a83c97">axiom_data_handler_create</a> (const <a class="el" href="structaxutil__env.html">axutil_env_t</a> *env, const axis2_char_t *file_name, const axis2_char_t *mime_type)</td></tr>

<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="g59f350354c2e8ed104d5e2f1384552af"></a><!-- doxytag: member="axiom_data_handler::axiom_data_handler_add_binary_data" ref="g59f350354c2e8ed104d5e2f1384552af" args="(axiom_data_handler_t *data_handler, const axutil_env_t *env, axutil_array_list_t *list)" -->
AXIS2_EXTERN <br>
axis2_status_t&nbsp;</td><td class="memItemRight" valign="bottom"><b>axiom_data_handler_add_binary_data</b> (axiom_data_handler_t *data_handler, const <a class="el" href="structaxutil__env.html">axutil_env_t</a> *env, <a class="el" href="group__axutil__array__list.html#g1a6a89777db876cfa0cc86787b7be6a0">axutil_array_list_t</a> *list)</td></tr>

<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="g041b8d7d657f1d833ca29ce4b2ccf0ad"></a><!-- doxytag: member="axiom_data_handler::axiom_data_handler_get_mime_id" ref="g041b8d7d657f1d833ca29ce4b2ccf0ad" args="(axiom_data_handler_t *data_handler, const axutil_env_t *env)" -->
AXIS2_EXTERN <br>
axis2_char_t *&nbsp;</td><td class="memItemRight" valign="bottom"><b>axiom_data_handler_get_mime_id</b> (axiom_data_handler_t *data_handler, const <a class="el" href="structaxutil__env.html">axutil_env_t</a> *env)</td></tr>

<tr><td class="memItemLeft" nowrap align="right" valign="top">AXIS2_EXTERN <br>
axis2_status_t&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__axiom__data__handler.html#g276407df5df9bf7600ee499c4c2952ba">axiom_data_handler_set_mime_id</a> (axiom_data_handler_t *data_handler, const <a class="el" href="structaxutil__env.html">axutil_env_t</a> *env, const axis2_char_t *mime_id)</td></tr>

<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="gc95c723477124e5707df871340fbfb4e"></a><!-- doxytag: member="axiom_data_handler::axiom_data_handler_get_data_handler_type" ref="gc95c723477124e5707df871340fbfb4e" args="(axiom_data_handler_t *data_handler, const axutil_env_t *env)" -->
AXIS2_EXTERN <br>
axiom_data_handler_type_t&nbsp;</td><td class="memItemRight" valign="bottom"><b>axiom_data_handler_get_data_handler_type</b> (axiom_data_handler_t *data_handler, const <a class="el" href="structaxutil__env.html">axutil_env_t</a> *env)</td></tr>

<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="g0556858babbb3eb237490e1d515e6b72"></a><!-- doxytag: member="axiom_data_handler::axiom_data_handler_set_data_handler_type" ref="g0556858babbb3eb237490e1d515e6b72" args="(axiom_data_handler_t *data_handler, const axutil_env_t *env, axiom_data_handler_type_t data_handler_type)" -->
AXIS2_EXTERN void&nbsp;</td><td class="memItemRight" valign="bottom"><b>axiom_data_handler_set_data_handler_type</b> (axiom_data_handler_t *data_handler, const <a class="el" href="structaxutil__env.html">axutil_env_t</a> *env, axiom_data_handler_type_t data_handler_type)</td></tr>

<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="gc163510d1280fa477463c282863f85b5"></a><!-- doxytag: member="axiom_data_handler::axiom_data_handler_get_user_param" ref="gc163510d1280fa477463c282863f85b5" args="(axiom_data_handler_t *data_handler, const axutil_env_t *env)" -->
AXIS2_EXTERN void *&nbsp;</td><td class="memItemRight" valign="bottom"><b>axiom_data_handler_get_user_param</b> (axiom_data_handler_t *data_handler, const <a class="el" href="structaxutil__env.html">axutil_env_t</a> *env)</td></tr>

<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="g5460ac6ce9def711cfa29f631591620e"></a><!-- doxytag: member="axiom_data_handler::axiom_data_handler_set_user_param" ref="g5460ac6ce9def711cfa29f631591620e" args="(axiom_data_handler_t *data_handler, const axutil_env_t *env, void *user_param)" -->
AXIS2_EXTERN void&nbsp;</td><td class="memItemRight" valign="bottom"><b>axiom_data_handler_set_user_param</b> (axiom_data_handler_t *data_handler, const <a class="el" href="structaxutil__env.html">axutil_env_t</a> *env, void *user_param)</td></tr>

</table>
<hr><h2>Function Documentation</h2>
<a class="anchor" name="gf1a1862c29144a3234025b1218a83c97"></a><!-- doxytag: member="axiom_data_handler.h::axiom_data_handler_create" ref="gf1a1862c29144a3234025b1218a83c97" args="(const axutil_env_t *env, const axis2_char_t *file_name, const axis2_char_t *mime_type)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">AXIS2_EXTERN axiom_data_handler_t* axiom_data_handler_create           </td>
          <td>(</td>
          <td class="paramtype">const <a class="el" href="structaxutil__env.html">axutil_env_t</a> *&nbsp;</td>
          <td class="paramname"> <em>env</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const axis2_char_t *&nbsp;</td>
          <td class="paramname"> <em>file_name</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const axis2_char_t *&nbsp;</td>
          <td class="paramname"> <em>mime_type</em></td><td>&nbsp;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td><td width="100%"></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
Creates data_handler struct <dl class="return" compact><dt><b>Returns:</b></dt><dd>pointer to newly created data_handler </dd></dl>

</div>
</div><p>
<a class="anchor" name="g790d6d952b28f7aa0202216ef5074489"></a><!-- doxytag: member="axiom_data_handler.h::axiom_data_handler_free" ref="g790d6d952b28f7aa0202216ef5074489" args="(axiom_data_handler_t *data_handler, const axutil_env_t *env)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">AXIS2_EXTERN void axiom_data_handler_free           </td>
          <td>(</td>
          <td class="paramtype">axiom_data_handler_t *&nbsp;</td>
          <td class="paramname"> <em>data_handler</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const <a class="el" href="structaxutil__env.html">axutil_env_t</a> *&nbsp;</td>
          <td class="paramname"> <em>env</em></td><td>&nbsp;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td><td width="100%"></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
<dl compact><dt><b>Parameters:</b></dt><dd>
  <table border="0" cellspacing="2" cellpadding="0">
    <tr><td valign="top"></td><td valign="top"><em>data_handler,a</em>&nbsp;</td><td>pointer to data handler struct </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>env</em>&nbsp;</td><td>environment, MUST NOT be NULL. </td></tr>
  </table>
</dl>
<dl class="return" compact><dt><b>Returns:</b></dt><dd>status code, AXIS2_SUCCESS on success and AXIS2_FAILURE on error. </dd></dl>

</div>
</div><p>
<a class="anchor" name="g12b16a32671739f4faa56c72ec99bc8c"></a><!-- doxytag: member="axiom_data_handler.h::axiom_data_handler_get_cached" ref="g12b16a32671739f4faa56c72ec99bc8c" args="(axiom_data_handler_t *data_handler, const axutil_env_t *env)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">AXIS2_EXTERN axis2_bool_t axiom_data_handler_get_cached           </td>
          <td>(</td>
          <td class="paramtype">axiom_data_handler_t *&nbsp;</td>
          <td class="paramname"> <em>data_handler</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const <a class="el" href="structaxutil__env.html">axutil_env_t</a> *&nbsp;</td>
          <td class="paramname"> <em>env</em></td><td>&nbsp;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td><td width="100%"></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
<dl compact><dt><b>Parameters:</b></dt><dd>
  <table border="0" cellspacing="2" cellpadding="0">
    <tr><td valign="top"></td><td valign="top"><em>data_handler,a</em>&nbsp;</td><td>pointer to data handler struct </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>env</em>&nbsp;</td><td>environment, MUST NOT be NULL. </td></tr>
  </table>
</dl>
<dl class="return" compact><dt><b>Returns:</b></dt><dd>bool whether attachment is cached or not </dd></dl>

</div>
</div><p>
<a class="anchor" name="ga132e800329243265ca138c661fa34d5"></a><!-- doxytag: member="axiom_data_handler.h::axiom_data_handler_get_content_type" ref="ga132e800329243265ca138c661fa34d5" args="(axiom_data_handler_t *data_handler, const axutil_env_t *env)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">AXIS2_EXTERN axis2_char_t* axiom_data_handler_get_content_type           </td>
          <td>(</td>
          <td class="paramtype">axiom_data_handler_t *&nbsp;</td>
          <td class="paramname"> <em>data_handler</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const <a class="el" href="structaxutil__env.html">axutil_env_t</a> *&nbsp;</td>
          <td class="paramname"> <em>env</em></td><td>&nbsp;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td><td width="100%"></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
<dl compact><dt><b>Parameters:</b></dt><dd>
  <table border="0" cellspacing="2" cellpadding="0">
    <tr><td valign="top"></td><td valign="top"><em>data_handler,a</em>&nbsp;</td><td>pointer to data handler struct </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>env</em>&nbsp;</td><td>environment, MUST NOT be NULL. </td></tr>
  </table>
</dl>
<dl class="return" compact><dt><b>Returns:</b></dt><dd>status code, AXIS2_SUCCESS on success and AXIS2_FAILURE on error. </dd></dl>

</div>
</div><p>
<a class="anchor" name="g0eb87b388f6a8d1c8df21b685cea0161"></a><!-- doxytag: member="axiom_data_handler.h::axiom_data_handler_get_file_name" ref="g0eb87b388f6a8d1c8df21b685cea0161" args="(axiom_data_handler_t *data_handler, const axutil_env_t *env)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">AXIS2_EXTERN axis2_char_t* axiom_data_handler_get_file_name           </td>
          <td>(</td>
          <td class="paramtype">axiom_data_handler_t *&nbsp;</td>
          <td class="paramname"> <em>data_handler</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const <a class="el" href="structaxutil__env.html">axutil_env_t</a> *&nbsp;</td>
          <td class="paramname"> <em>env</em></td><td>&nbsp;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td><td width="100%"></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
<dl compact><dt><b>Parameters:</b></dt><dd>
  <table border="0" cellspacing="2" cellpadding="0">
    <tr><td valign="top"></td><td valign="top"><em>data_handler,a</em>&nbsp;</td><td>pointer to data handler struct </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>env</em>&nbsp;</td><td>environment, MUST NOT be NULL. </td></tr>
  </table>
</dl>
<dl class="return" compact><dt><b>Returns:</b></dt><dd>file name, in the case of file type data handler. </dd></dl>

</div>
</div><p>
<a class="anchor" name="g1fcb504cd3cdb758b5247066c1cb332c"></a><!-- doxytag: member="axiom_data_handler.h::axiom_data_handler_get_input_stream" ref="g1fcb504cd3cdb758b5247066c1cb332c" args="(axiom_data_handler_t *data_handler, const axutil_env_t *env)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">AXIS2_EXTERN axis2_byte_t* axiom_data_handler_get_input_stream           </td>
          <td>(</td>
          <td class="paramtype">axiom_data_handler_t *&nbsp;</td>
          <td class="paramname"> <em>data_handler</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const <a class="el" href="structaxutil__env.html">axutil_env_t</a> *&nbsp;</td>
          <td class="paramname"> <em>env</em></td><td>&nbsp;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td><td width="100%"></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
<dl compact><dt><b>Parameters:</b></dt><dd>
  <table border="0" cellspacing="2" cellpadding="0">
    <tr><td valign="top"></td><td valign="top"><em>data_handler,a</em>&nbsp;</td><td>pointer to data handler struct </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>env</em>&nbsp;</td><td>environment, MUST NOT be NULL. </td></tr>
  </table>
</dl>
<dl class="return" compact><dt><b>Returns:</b></dt><dd>status code, AXIS2_SUCCESS on success and AXIS2_FAILURE on error. </dd></dl>

</div>
</div><p>
<a class="anchor" name="g2f9ba62f37963b8425b85710a1873845"></a><!-- doxytag: member="axiom_data_handler.h::axiom_data_handler_get_input_stream_len" ref="g2f9ba62f37963b8425b85710a1873845" args="(axiom_data_handler_t *data_handler, const axutil_env_t *env)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">AXIS2_EXTERN int axiom_data_handler_get_input_stream_len           </td>
          <td>(</td>
          <td class="paramtype">axiom_data_handler_t *&nbsp;</td>
          <td class="paramname"> <em>data_handler</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const <a class="el" href="structaxutil__env.html">axutil_env_t</a> *&nbsp;</td>
          <td class="paramname"> <em>env</em></td><td>&nbsp;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td><td width="100%"></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
<dl compact><dt><b>Parameters:</b></dt><dd>
  <table border="0" cellspacing="2" cellpadding="0">
    <tr><td valign="top"></td><td valign="top"><em>data_handler,a</em>&nbsp;</td><td>pointer to data handler struct </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>env</em>&nbsp;</td><td>environment, MUST NOT be NULL. </td></tr>
  </table>
</dl>
<dl class="return" compact><dt><b>Returns:</b></dt><dd>status code, AXIS2_SUCCESS on success and AXIS2_FAILURE on error. </dd></dl>

</div>
</div><p>
<a class="anchor" name="ge35b85ccac0a5bd5fd659124c75d5ca2"></a><!-- doxytag: member="axiom_data_handler.h::axiom_data_handler_read_from" ref="ge35b85ccac0a5bd5fd659124c75d5ca2" args="(axiom_data_handler_t *data_handler, const axutil_env_t *env, axis2_byte_t **output_stream, int *output_stream_size)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">AXIS2_EXTERN axis2_status_t axiom_data_handler_read_from           </td>
          <td>(</td>
          <td class="paramtype">axiom_data_handler_t *&nbsp;</td>
          <td class="paramname"> <em>data_handler</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const <a class="el" href="structaxutil__env.html">axutil_env_t</a> *&nbsp;</td>
          <td class="paramname"> <em>env</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">axis2_byte_t **&nbsp;</td>
          <td class="paramname"> <em>output_stream</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">int *&nbsp;</td>
          <td class="paramname"> <em>output_stream_size</em></td><td>&nbsp;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td><td width="100%"></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
The data_handler is responsible for memory occupied by the stream returned <dl compact><dt><b>Parameters:</b></dt><dd>
  <table border="0" cellspacing="2" cellpadding="0">
    <tr><td valign="top"></td><td valign="top"><em>output_stream</em>&nbsp;</td><td>parameter to store reference to output byte stream. </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>output_stream_size</em>&nbsp;</td><td>parameter to store reference to output byte stream length </td></tr>
  </table>
</dl>

</div>
</div><p>
<a class="anchor" name="gcdd5abcf6725059de9409e8ea486980b"></a><!-- doxytag: member="axiom_data_handler.h::axiom_data_handler_set_binary_data" ref="gcdd5abcf6725059de9409e8ea486980b" args="(axiom_data_handler_t *data_handler, const axutil_env_t *env, axis2_byte_t *input_stream, int input_stream_len)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">AXIS2_EXTERN axis2_status_t axiom_data_handler_set_binary_data           </td>
          <td>(</td>
          <td class="paramtype">axiom_data_handler_t *&nbsp;</td>
          <td class="paramname"> <em>data_handler</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const <a class="el" href="structaxutil__env.html">axutil_env_t</a> *&nbsp;</td>
          <td class="paramname"> <em>env</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">axis2_byte_t *&nbsp;</td>
          <td class="paramname"> <em>input_stream</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">int&nbsp;</td>
          <td class="paramname"> <em>input_stream_len</em></td><td>&nbsp;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td><td width="100%"></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
<dl compact><dt><b>Parameters:</b></dt><dd>
  <table border="0" cellspacing="2" cellpadding="0">
    <tr><td valign="top"></td><td valign="top"><em>data_handler,a</em>&nbsp;</td><td>pointer to data handler struct </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>env</em>&nbsp;</td><td>environment, MUST NOT be NULL. </td></tr>
  </table>
</dl>
<dl class="return" compact><dt><b>Returns:</b></dt><dd>status code, AXIS2_SUCCESS on success and AXIS2_FAILURE on error. </dd></dl>

</div>
</div><p>
<a class="anchor" name="gc6da7f863c5e580fc47dcf6a380f4d57"></a><!-- doxytag: member="axiom_data_handler.h::axiom_data_handler_set_cached" ref="gc6da7f863c5e580fc47dcf6a380f4d57" args="(axiom_data_handler_t *data_handler, const axutil_env_t *env, axis2_bool_t cached)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">AXIS2_EXTERN void axiom_data_handler_set_cached           </td>
          <td>(</td>
          <td class="paramtype">axiom_data_handler_t *&nbsp;</td>
          <td class="paramname"> <em>data_handler</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const <a class="el" href="structaxutil__env.html">axutil_env_t</a> *&nbsp;</td>
          <td class="paramname"> <em>env</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">axis2_bool_t&nbsp;</td>
          <td class="paramname"> <em>cached</em></td><td>&nbsp;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td><td width="100%"></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
<dl compact><dt><b>Parameters:</b></dt><dd>
  <table border="0" cellspacing="2" cellpadding="0">
    <tr><td valign="top"></td><td valign="top"><em>data_handler,a</em>&nbsp;</td><td>pointer to data handler struct </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>env</em>&nbsp;</td><td>environment, MUST NOT be NULL. </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>cached,@return</em>&nbsp;</td><td>status code, AXIS2_SUCCESS on success and AXIS2_FAILURE on error. </td></tr>
  </table>
</dl>

</div>
</div><p>
<a class="anchor" name="gbd786bd0c93181d5232492e486d59799"></a><!-- doxytag: member="axiom_data_handler.h::axiom_data_handler_set_content_type" ref="gbd786bd0c93181d5232492e486d59799" args="(axiom_data_handler_t *data_handler, const axutil_env_t *env, const axis2_char_t *mime_type)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">AXIS2_EXTERN axis2_status_t axiom_data_handler_set_content_type           </td>
          <td>(</td>
          <td class="paramtype">axiom_data_handler_t *&nbsp;</td>
          <td class="paramname"> <em>data_handler</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const <a class="el" href="structaxutil__env.html">axutil_env_t</a> *&nbsp;</td>
          <td class="paramname"> <em>env</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const axis2_char_t *&nbsp;</td>
          <td class="paramname"> <em>mime_type</em></td><td>&nbsp;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td><td width="100%"></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
<dl compact><dt><b>Parameters:</b></dt><dd>
  <table border="0" cellspacing="2" cellpadding="0">
    <tr><td valign="top"></td><td valign="top"><em>data_handler,a</em>&nbsp;</td><td>pointer to data handler struct </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>env</em>&nbsp;</td><td>environment, MUST NOT be NULL. </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>mime</em>&nbsp;</td><td>type, </td></tr>
  </table>
</dl>
<dl class="return" compact><dt><b>Returns:</b></dt><dd>status code, AXIS2_SUCCESS on success and AXIS2_FAILURE on error. </dd></dl>

</div>
</div><p>
<a class="anchor" name="g5a80fd78e575238e58fc38062a689258"></a><!-- doxytag: member="axiom_data_handler.h::axiom_data_handler_set_file_name" ref="g5a80fd78e575238e58fc38062a689258" args="(axiom_data_handler_t *data_handler, const axutil_env_t *env, axis2_char_t *file_name)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">AXIS2_EXTERN axis2_status_t axiom_data_handler_set_file_name           </td>
          <td>(</td>
          <td class="paramtype">axiom_data_handler_t *&nbsp;</td>
          <td class="paramname"> <em>data_handler</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const <a class="el" href="structaxutil__env.html">axutil_env_t</a> *&nbsp;</td>
          <td class="paramname"> <em>env</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">axis2_char_t *&nbsp;</td>
          <td class="paramname"> <em>file_name</em></td><td>&nbsp;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td><td width="100%"></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
<dl compact><dt><b>Parameters:</b></dt><dd>
  <table border="0" cellspacing="2" cellpadding="0">
    <tr><td valign="top"></td><td valign="top"><em>data_handler,a</em>&nbsp;</td><td>pointer to data handler struct </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>env</em>&nbsp;</td><td>environment, MUST NOT be NULL. </td></tr>
  </table>
</dl>
<dl class="return" compact><dt><b>Returns:</b></dt><dd>status code, AXIS2_SUCCESS on success and AXIS2_FAILURE on error. </dd></dl>

</div>
</div><p>
<a class="anchor" name="g276407df5df9bf7600ee499c4c2952ba"></a><!-- doxytag: member="axiom_data_handler.h::axiom_data_handler_set_mime_id" ref="g276407df5df9bf7600ee499c4c2952ba" args="(axiom_data_handler_t *data_handler, const axutil_env_t *env, const axis2_char_t *mime_id)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">AXIS2_EXTERN axis2_status_t axiom_data_handler_set_mime_id           </td>
          <td>(</td>
          <td class="paramtype">axiom_data_handler_t *&nbsp;</td>
          <td class="paramname"> <em>data_handler</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const <a class="el" href="structaxutil__env.html">axutil_env_t</a> *&nbsp;</td>
          <td class="paramname"> <em>env</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const axis2_char_t *&nbsp;</td>
          <td class="paramname"> <em>mime_id</em></td><td>&nbsp;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td><td width="100%"></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
<dl compact><dt><b>Parameters:</b></dt><dd>
  <table border="0" cellspacing="2" cellpadding="0">
    <tr><td valign="top"></td><td valign="top"><em>data_handler,a</em>&nbsp;</td><td>pointer to data handler struct </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>env</em>&nbsp;</td><td>environment, MUST NOT be NULL. </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>mime</em>&nbsp;</td><td>id, </td></tr>
  </table>
</dl>
<dl class="return" compact><dt><b>Returns:</b></dt><dd>status code, AXIS2_SUCCESS on success and AXIS2_FAILURE on error. </dd></dl>

</div>
</div><p>
<a class="anchor" name="g47e0e307ecd1fc27223fb67f10e194ed"></a><!-- doxytag: member="axiom_data_handler.h::axiom_data_handler_write_to" ref="g47e0e307ecd1fc27223fb67f10e194ed" args="(axiom_data_handler_t *data_handler, const axutil_env_t *env)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">AXIS2_EXTERN axis2_status_t axiom_data_handler_write_to           </td>
          <td>(</td>
          <td class="paramtype">axiom_data_handler_t *&nbsp;</td>
          <td class="paramname"> <em>data_handler</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const <a class="el" href="structaxutil__env.html">axutil_env_t</a> *&nbsp;</td>
          <td class="paramname"> <em>env</em></td><td>&nbsp;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td><td width="100%"></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
<dl compact><dt><b>Parameters:</b></dt><dd>
  <table border="0" cellspacing="2" cellpadding="0">
    <tr><td valign="top"></td><td valign="top"><em>data_handler,a</em>&nbsp;</td><td>pointer to data handler struct </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>env</em>&nbsp;</td><td>environment, MUST NOT be NULL. </td></tr>
  </table>
</dl>
<dl class="return" compact><dt><b>Returns:</b></dt><dd>status code, AXIS2_SUCCESS on success and AXIS2_FAILURE on error. </dd></dl>

</div>
</div><p>
<hr size="1"><address style="text-align: right;"><small>Generated on Fri Apr 17 11:49:44 2009 for Axis2/C by&nbsp;
<a href="http://www.doxygen.org/index.html">
<img src="doxygen.png" alt="doxygen" align="middle" border="0"></a> 1.5.3 </small></address>
</body>
</html>


<|start_filename|>src/core/transport/http/receiver/http_receiver.c<|end_filename|>

/*
 * 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.
 */

#include <axis2_http_server.h>

#include <axis2_http_transport.h>
#include <axis2_http_svr_thread.h>
#include <axis2_transport_in_desc.h>
#include <axutil_param_container.h>
#include <axutil_url.h>
#include <axis2_conf_init.h>
#include <stdlib.h>

/**
 * @brief HTTP Client struct impl
 *   Axis2 HTTP Client impl
 */

typedef struct axis2_http_server_impl
{
    axis2_transport_receiver_t http_server;
    axis2_http_svr_thread_t *svr_thread;
    int port;
    axis2_conf_ctx_t *conf_ctx;
    axis2_conf_ctx_t *conf_ctx_private;
}
axis2_http_server_impl_t;

#define AXIS2_INTF_TO_IMPL(http_server) \
                ((axis2_http_server_impl_t *)(http_server))

/***************************** Function headers *******************************/

axis2_status_t AXIS2_CALL axis2_http_server_init(
    axis2_transport_receiver_t * server,
    const axutil_env_t * env,
    axis2_conf_ctx_t * conf_ctx,
    axis2_transport_in_desc_t * in_desc);

axis2_status_t AXIS2_CALL axis2_http_server_start(
    axis2_transport_receiver_t * server,
    const axutil_env_t * env);

axis2_status_t AXIS2_CALL axis2_http_server_stop(
    axis2_transport_receiver_t * server,
    const axutil_env_t * env);

axis2_conf_ctx_t *AXIS2_CALL axis2_http_server_get_conf_ctx(
    axis2_transport_receiver_t * server,
    const axutil_env_t * env);

axis2_endpoint_ref_t *AXIS2_CALL axis2_http_server_get_reply_to_epr(
    axis2_transport_receiver_t * server,
    const axutil_env_t * env,
    const axis2_char_t * svc_name);

axis2_bool_t AXIS2_CALL axis2_http_server_is_running(
    axis2_transport_receiver_t * server,
    const axutil_env_t * env);

void AXIS2_CALL axis2_http_server_free(
    axis2_transport_receiver_t * server,
    const axutil_env_t * env);

static const axis2_transport_receiver_ops_t http_transport_receiver_ops_var = {
    axis2_http_server_init,
    axis2_http_server_start,
    axis2_http_server_get_reply_to_epr,
    axis2_http_server_get_conf_ctx,
    axis2_http_server_is_running,
    axis2_http_server_stop,
    axis2_http_server_free
};

AXIS2_EXTERN axis2_transport_receiver_t *AXIS2_CALL
axis2_http_server_create(
    const axutil_env_t * env,
    const axis2_char_t * repo,
    const int port)
{
    axis2_http_server_impl_t *server_impl = NULL;

    server_impl = (axis2_http_server_impl_t *) AXIS2_MALLOC
        (env->allocator, sizeof(axis2_http_server_impl_t));

    if (!server_impl)
    {
        AXIS2_HANDLE_ERROR(env, AXIS2_ERROR_NO_MEMORY, AXIS2_FAILURE);
        return NULL;
    }

    server_impl->svr_thread = NULL;
    server_impl->conf_ctx = NULL;
    server_impl->conf_ctx_private = NULL;
    server_impl->port = port;

    server_impl->http_server.ops = &http_transport_receiver_ops_var;

    if (repo)
    {

        /**
         * We first create a private conf ctx which is owned by this server
         * we only free this private conf context. We should never free the
         * server_impl->conf_ctx because it may own to any other object which
         * may lead to double free
         */
        server_impl->conf_ctx_private = axis2_build_conf_ctx(env, repo);
        if (!server_impl->conf_ctx_private)
        {
            AXIS2_LOG_ERROR (env->log, AXIS2_LOG_SI, 
                             "unable to create private configuration context\
for repo path %s", repo);
            axis2_http_server_free((axis2_transport_receiver_t *) server_impl,
                                   env);
            return NULL;
        }
        server_impl->conf_ctx = server_impl->conf_ctx_private;
    }

    return &(server_impl->http_server);
}


AXIS2_EXTERN axis2_transport_receiver_t *AXIS2_CALL
axis2_http_server_create_with_file(
    const axutil_env_t * env,
    const axis2_char_t * file,
    const int port)
{
    axis2_http_server_impl_t *server_impl = NULL;

    server_impl = (axis2_http_server_impl_t *) AXIS2_MALLOC
        (env->allocator, sizeof(axis2_http_server_impl_t));

    if (!server_impl)
    {
        AXIS2_HANDLE_ERROR(env, AXIS2_ERROR_NO_MEMORY, AXIS2_FAILURE);
        return NULL;
    }

    server_impl->svr_thread = NULL;
    server_impl->conf_ctx = NULL;
    server_impl->conf_ctx_private = NULL;
    server_impl->port = port;

    server_impl->http_server.ops = &http_transport_receiver_ops_var;

    if (file)
    {

        /**
         * We first create a private conf ctx which is owned by this server
         * we only free this private conf context. We should never free the
         * server_impl->conf_ctx because it may own to any other object which
         * may lead to double free
         */
        server_impl->conf_ctx_private = 
			axis2_build_conf_ctx_with_file (env, file);
		
        if (!server_impl->conf_ctx_private)
        {
            axis2_http_server_free((axis2_transport_receiver_t *) server_impl,
                                   env);
            AXIS2_LOG_ERROR (env->log, AXIS2_LOG_SI, "unable to create\
configuration context for file %s", file);
            return NULL;
        }
        server_impl->conf_ctx = server_impl->conf_ctx_private;
    }

    return &(server_impl->http_server);
}


void AXIS2_CALL
axis2_http_server_free(
    axis2_transport_receiver_t * server,
    const axutil_env_t * env)
{
    axis2_http_server_impl_t *server_impl = NULL;

    if (!server)
    {
        AXIS2_LOG_ERROR (env->log, AXIS2_LOG_SI, 
                         "failure, server value is null , nothing to free");
        return;
    }

    server_impl = AXIS2_INTF_TO_IMPL(server);
    if (server_impl->svr_thread)
    {
        axis2_http_svr_thread_destroy(server_impl->svr_thread, env);
        axis2_http_svr_thread_free(server_impl->svr_thread, env);
        server_impl->svr_thread = NULL;
    }

    if (server_impl->conf_ctx_private)
    {
        axis2_conf_ctx_free(server_impl->conf_ctx_private, env);
        server_impl->conf_ctx_private = NULL;
    }

    /**
     * Do not free this. It may own to some other object
     */
    server_impl->conf_ctx = NULL;

    AXIS2_FREE(env->allocator, server_impl);
    return;
}


axis2_status_t AXIS2_CALL
axis2_http_server_init(
    axis2_transport_receiver_t * server,
    const axutil_env_t * env,
    axis2_conf_ctx_t * conf_ctx,
    axis2_transport_in_desc_t * in_desc)
{
    axis2_http_server_impl_t *server_impl = NULL;
    axis2_char_t *port_str = NULL;
    axutil_param_t *param = NULL;

    AXIS2_PARAM_CHECK (env->error, server, AXIS2_FAILURE);
    AXIS2_PARAM_CHECK (env->error, conf_ctx, AXIS2_FAILURE);
    AXIS2_PARAM_CHECK (env->error, in_desc, AXIS2_FAILURE);

    server_impl = AXIS2_INTF_TO_IMPL(server);

    server_impl->conf_ctx = conf_ctx;
    param =
        (axutil_param_t *)
        axutil_param_container_get_param(axis2_transport_in_desc_param_container
                                         (in_desc, env), env, AXIS2_PORT_STRING);
    if (param)
    {
        port_str = axutil_param_get_value(param, env);
    }

    if (port_str)
    {
        server_impl->port = atoi(port_str);
    }
    return AXIS2_SUCCESS;
}

axis2_status_t AXIS2_CALL
axis2_http_server_start(
    axis2_transport_receiver_t * server,
    const axutil_env_t * env)
{

    axis2_http_server_impl_t *server_impl = NULL;
    axis2_http_worker_t *worker = NULL;

    AXIS2_PARAM_CHECK (env->error, server, AXIS2_FAILURE);

    server_impl = AXIS2_INTF_TO_IMPL(server);
    server_impl->svr_thread = axis2_http_svr_thread_create(env,
                                                           server_impl->port);
    if (!server_impl->svr_thread)
    {
        AXIS2_LOG_ERROR (env->log, AXIS2_LOG_SI,
                         "unable to create server thread for port %d",
                         server_impl->port);

        return AXIS2_FAILURE;
    }

    worker = axis2_http_worker_create(env, server_impl->conf_ctx);
    if (!worker)
    {
        AXIS2_LOG_ERROR (env->log, AXIS2_LOG_SI,
                         "axis2 http worker creation failed");

        axis2_http_svr_thread_free(server_impl->svr_thread, env);
        return AXIS2_FAILURE;
    }
    axis2_http_worker_set_svr_port(worker, env, server_impl->port);
    AXIS2_LOG_INFO(env->log, "Starting HTTP server thread");
    axis2_http_svr_thread_set_worker(server_impl->svr_thread, env, worker);
    axis2_http_svr_thread_run(server_impl->svr_thread, env);
    return AXIS2_SUCCESS;
}

AXIS2_EXTERN axis2_status_t AXIS2_CALL
axis2_http_server_stop(
    axis2_transport_receiver_t * server,
    const axutil_env_t * env)
{

    AXIS2_PARAM_CHECK (env->error, server, AXIS2_FAILURE);
    AXIS2_LOG_INFO(env->log, "Terminating HTTP server thread");
    if (AXIS2_INTF_TO_IMPL(server)->svr_thread)
    {
        axis2_http_svr_thread_destroy(AXIS2_INTF_TO_IMPL(server)->svr_thread,
                                      env);
    }
    AXIS2_LOG_INFO(env->log, "Successfully terminated  HTTP server" " thread");
    return AXIS2_SUCCESS;
}

axis2_conf_ctx_t *AXIS2_CALL
axis2_http_server_get_conf_ctx(
    axis2_transport_receiver_t * server,
    const axutil_env_t * env)
{
    AXIS2_PARAM_CHECK (env->error, server, NULL);
    return AXIS2_INTF_TO_IMPL(server)->conf_ctx;
}

axis2_endpoint_ref_t *AXIS2_CALL
axis2_http_server_get_reply_to_epr(
    axis2_transport_receiver_t * server,
    const axutil_env_t * env,
    const axis2_char_t * svc_name)
{
    axis2_endpoint_ref_t *epr = NULL;
    const axis2_char_t *host_address = NULL;
    axis2_char_t *svc_path = NULL;
    axutil_url_t *url = NULL;

    AXIS2_PARAM_CHECK(env->error, svc_name, NULL);
    AXIS2_PARAM_CHECK(env->error, server, NULL);

    host_address = AXIS2_DEFAULT_HOST_ADDRESS; /* TODO : get from axis2.xml */
    svc_path = axutil_stracat(env, AXIS2_DEFAULT_SVC_PATH, svc_name);
    url = axutil_url_create(env, AXIS2_HTTP_PROTOCOL, host_address,
                            AXIS2_INTF_TO_IMPL(server)->port, svc_path);
    AXIS2_FREE(env->allocator, svc_path);
    if (!url)
    {
        return NULL;
    }
    epr = axis2_endpoint_ref_create(env, axutil_url_to_external_form(url, env));
    axutil_url_free(url, env);
    return epr;
}


axis2_bool_t AXIS2_CALL
axis2_http_server_is_running(
    axis2_transport_receiver_t * server,
    const axutil_env_t * env)
{
    axis2_http_server_impl_t *server_impl = NULL;
    AXIS2_PARAM_CHECK (env->error, server, AXIS2_FALSE);
    server_impl = AXIS2_INTF_TO_IMPL(server);
    if (server_impl->svr_thread)
    {
        return axis2_http_svr_thread_is_running(server_impl->svr_thread, env);
    }
    return AXIS2_FALSE;
}

/**
 * Following block distinguish the exposed part of the dll.
 */
AXIS2_EXPORT int
axis2_get_instance(
    struct axis2_transport_receiver **inst,
    const axutil_env_t * env)
{
    *inst = axis2_http_server_create(env, NULL, -1);
    if (!(*inst))
    {
        return AXIS2_FAILURE;
    }

    return AXIS2_SUCCESS;
}

AXIS2_EXPORT int
axis2_remove_instance(
    axis2_transport_receiver_t * inst,
    const axutil_env_t * env)
{
    if (inst)
    {
        axis2_transport_receiver_free(inst, env);
    }
    return AXIS2_SUCCESS;
}


<|start_filename|>include/axis2_options.h<|end_filename|>

/*
* 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 AXIS2_OPTIONS_H
#define AXIS2_OPTIONS_H

/** @defgroup axis2_options options
  * @ingroup axis2_client_api
  * The options struct holds user options to be used by client when invocation
  * services. In addition to the end point reference information, options
  * struct also hold addressing, transport and timeout related information.
  * User specific properties could also set on top of options.
  * @{
  */

/**
  * @file axis2_options.h
  */

#include <axis2_defines.h>
#include <axutil_env.h>
#include <axis2_transport_in_desc.h>
#include <axis2_endpoint_ref.h>
#include <axutil_hash.h>
#include <axis2_relates_to.h>
#include <axis2_transport_out_desc.h>
#include <axis2_transport_receiver.h>
#include <axiom_element.h>
#include <axis2_msg_info_headers.h>

/** Default timeout */
#define AXIS2_DEFAULT_TIMEOUT_MILLISECONDS 30000

/** Timeout in seconds waiting for a response envelope */
#define AXIS2_TIMEOUT_IN_SECONDS "time_out"

/** Copy properties */
#define AXIS2_COPY_PROPERTIES   "copy_properties"

#ifdef __cplusplus
extern "C"
{
#endif

    /** Type name for struct axis2_options */
    typedef struct axis2_options axis2_options_t;

    /**
     * Gets Web Services Addressing (WSA) action.
     * @param options pointer to options struct
     * @param env pointer to environment struct
     * @return WSA action string if set, else NULL
     */
    AXIS2_EXTERN const axis2_char_t *AXIS2_CALL
    axis2_options_get_action(
        const axis2_options_t * options,
        const axutil_env_t * env);

    /**
     * Gets WSA fault to address.
     * @param options pointer to options struct
     * @param env pointer to environment struct
     * @return pointer to endpoint reference struct representing fault to 
     * address if set, else NULL
     */
    AXIS2_EXTERN axis2_endpoint_ref_t *AXIS2_CALL
    axis2_options_get_fault_to(
        const axis2_options_t * options,
        const axutil_env_t * env);

    /**
     * Gets WSA from address.
     * @param options pointer to options struct
     * @param env pointer to environment struct
     * @return pointer to endpoint reference struct representing from 
     * address if set, else NULL
     */
    AXIS2_EXTERN axis2_endpoint_ref_t *AXIS2_CALL
    axis2_options_get_from(
        const axis2_options_t * options,
        const axutil_env_t * env);

    /**
     * Gets transport receiver.
     * @param options pointer to options struct
     * @param env pointer to environment struct
     * @return pointer to transport receiver struct if set, else NULL
     */
    AXIS2_EXTERN axis2_transport_receiver_t *AXIS2_CALL
    axis2_options_get_transport_receiver(
        const axis2_options_t * options,
        const axutil_env_t * env);

    /**
     * Gets transport in.
     * @param options pointer to options struct
     * @param env pointer to environment struct
     * @return pointer to transport in struct if set, else NULL
     */
    AXIS2_EXTERN axis2_transport_in_desc_t *AXIS2_CALL
    axis2_options_get_transport_in(
        const axis2_options_t * options,
        const axutil_env_t * env);

    /**
     * Gets transport in protocol.
     * @param options pointer to options struct
     * @param env pointer to environment struct
     * @return pointer to transport in protocol string if set, else NULL
     */
    AXIS2_EXTERN AXIS2_TRANSPORT_ENUMS AXIS2_CALL
    axis2_options_get_transport_in_protocol(
        const axis2_options_t * options,
        const axutil_env_t * env);

    /**
     * Gets message ID.
     * @param options pointer to options struct
     * @param env pointer to environment struct
     * @return pointer to message ID string if set, else NULL
     */
    AXIS2_EXTERN const axis2_char_t *AXIS2_CALL
    axis2_options_get_message_id(
        const axis2_options_t * options_t,
        const axutil_env_t * env);

    /**
     * Gets the properties hash map.
     * @param options pointer to options struct
     * @param env pointer to environment struct
     * @return pointer to properties hash map if set, else NULL
     */
    AXIS2_EXTERN axutil_hash_t *AXIS2_CALL
    axis2_options_get_properties(
        const axis2_options_t * options,
        const axutil_env_t * env);

    /**
     * Gets a property corresponding to the given key.
     * @param options pointer to options struct
     * @param env pointer to environment struct
     * @param key key of the property to be returned
     * @return value corresponding to the given key
     */
    AXIS2_EXTERN void *AXIS2_CALL
    axis2_options_get_property(
        const axis2_options_t * options,
        const axutil_env_t * env,
        const axis2_char_t * key);

    /**
     * Gets relates to information.
     * @param options pointer to options struct
     * @param env pointer to environment struct
     * @return pointer to relates to struct if set, else NULL
     */
    AXIS2_EXTERN axis2_relates_to_t *AXIS2_CALL
    axis2_options_get_relates_to(
        const axis2_options_t * options,
        const axutil_env_t * env);

    /**
     * Gets WSA reply to address.
     * @param options pointer to options struct
     * @param env pointer to environment struct
     * @return pointer to endpoint reference struct representing reply to
     * address if set, else NULL
     */
    AXIS2_EXTERN axis2_endpoint_ref_t *AXIS2_CALL
    axis2_options_get_reply_to(
        const axis2_options_t * options,
        const axutil_env_t * env);

    /**
     * Gets transport out.
     * @param options pointer to options struct
     * @param env pointer to environment struct
     * @return pointer to transport out struct if set, else NULL
     */
    AXIS2_EXTERN axis2_transport_out_desc_t *AXIS2_CALL
    axis2_options_get_transport_out(
        const axis2_options_t * options,
        const axutil_env_t * env);

    /**
     * Gets transport out protocol.
     * @param options pointer to options struct
     * @param env pointer to environment struct
     * @return pointer to transport out protocol string if set, else NULL
     */
    AXIS2_EXTERN AXIS2_TRANSPORT_ENUMS AXIS2_CALL
    axis2_options_get_sender_transport_protocol(
        const axis2_options_t * options,
        const axutil_env_t * env);

    /**
     * Gets SOAP version URI.
     * @param options pointer to options struct
     * @param env pointer to environment struct
     * @return string representing SOAP version URI
     */
    AXIS2_EXTERN const axis2_char_t *AXIS2_CALL
    axis2_options_get_soap_version_uri(
        const axis2_options_t * options,
        const axutil_env_t * env);

    /**
     * Gets the wait time after which a client times out in a blocking scenario.
     * The default is AXIS2_DEFAULT_TIMEOUT_MILLISECONDS.
     * @param options pointer to options struct
     * @param env pointer to environment struct
     * @return timeout in milliseconds
     */
    AXIS2_EXTERN long AXIS2_CALL
    axis2_options_get_timeout_in_milli_seconds(
        const axis2_options_t * options,
        const axutil_env_t * env);

    /**
     * Gets WSA to address.
     * @param options pointer to options struct
     * @param env pointer to environment struct
     * @return pointer to endpoint reference struct representing to
     * address if set, else NULL
     */
    AXIS2_EXTERN axis2_endpoint_ref_t *AXIS2_CALL
    axis2_options_get_to(
        const axis2_options_t * options,
        const axutil_env_t * env);

    /**
     * Gets use separate listener status.
     * @param options pointer to options struct 
     * @param env pointer to environment struct
     * @return AXIS2_TRUE if using separate listener, else AXIS2_FALSE
     */
    AXIS2_EXTERN axis2_bool_t AXIS2_CALL
    axis2_options_get_use_separate_listener(
        const axis2_options_t * options,
        const axutil_env_t * env);

    /**
     * Gets the parent options.
     * @param options pointer to options struct
     * @param env pointer to environment struct
     * @return pointer to the parent options struct if set, else NULL
     */
    AXIS2_EXTERN axis2_options_t *AXIS2_CALL
    axis2_options_get_parent(
        const axis2_options_t * options,
        const axutil_env_t * env);

    /**
     * Sets the parent options.
     * @param options pointer to options struct
     * @param env pointer to environment struct
     * @param parent pointer to parent options struct
     * @return AXIS2_SUCCESS on success, else AXIS2_FAILURE
     */
    AXIS2_EXTERN axis2_status_t AXIS2_CALL
    axis2_options_set_parent(
        axis2_options_t * options,
        const axutil_env_t * env,
        const axis2_options_t * parent);

    /**
     * Sets WSA action
     * @param options pointer to options struct
     * @param env pointer to environment struct
     * @param action pointer to action string
     * @return AXIS2_SUCCESS on success, else AXIS2_FAILURE
     */
    AXIS2_EXTERN axis2_status_t AXIS2_CALL
    axis2_options_set_action(
        axis2_options_t * options,
        const axutil_env_t * env,
        const axis2_char_t * action);

    /**
     * Sets fault to address.
     * @param options pointer to options struct
     * @param env pointer to environment struct
     * @param fault_to pointer to endpoint reference struct representing
     * fault to address. options takes over the ownership of the struct.
     * @return AXIS2_SUCCESS on success, else AXIS2_FAILURE
     */
    AXIS2_EXTERN axis2_status_t AXIS2_CALL
    axis2_options_set_fault_to(
        axis2_options_t * options,
        const axutil_env_t * env,
        axis2_endpoint_ref_t * fault_to);

    /**
     * Sets from address.
     * @param options pointer to options struct
     * @param env pointer to environment struct
     * @param from pointer to endpoint reference struct representing
     * from to address. options takes over the ownership of the struct.
     * @return AXIS2_SUCCESS on success, else AXIS2_FAILURE
     */
    AXIS2_EXTERN axis2_status_t AXIS2_CALL
    axis2_options_set_from(
        axis2_options_t * options,
        const axutil_env_t * env,
        axis2_endpoint_ref_t * from);

    /**
     * sets from address.
     * @param options pointer to options struct
     * @param env pointer to environment struct
     * @param to pointer to endpoint reference struct representing
     * to address. Options takes over the ownership of the struct.
     * @return AXIS2_SUCCESS on success, else AXIS2_FAILURE
     */
    AXIS2_EXTERN axis2_status_t AXIS2_CALL
    axis2_options_set_to(
        axis2_options_t * options,
        const axutil_env_t * env,
        axis2_endpoint_ref_t * to);

    /**
     * Sets transport receiver.
     * @param options pointer to options struct
     * @param env pointer to environment struct
     * @param receiver pointer to transport receiver struct. options takes 
     * over the ownership of the struct.
     * @return AXIS2_SUCCESS on success, else AXIS2_FAILURE
     */
    AXIS2_EXTERN axis2_status_t AXIS2_CALL
    axis2_options_set_transport_receiver(
        axis2_options_t * options,
        const axutil_env_t * env,
        axis2_transport_receiver_t * receiver);

    /**
     * Sets transport in description.
     * @param options pointer to options struct
     * @param env pointer to environment struct
     * @param transport_in pointer to transport_in struct. options takes 
     * over the ownership of the struct.
     * @return AXIS2_SUCCESS on success, else AXIS2_FAILURE
     */
    AXIS2_EXTERN axis2_status_t AXIS2_CALL
    axis2_options_set_transport_in(
        axis2_options_t * options,
        const axutil_env_t * env,
        axis2_transport_in_desc_t * transport_in);

    /**
     * Sets transport in protocol.
     * @param options pointer to options struct
     * @param env pointer to environment struct
     * @param in_protocol pointer to in_protocol struct
     * @return AXIS2_SUCCESS on success, else AXIS2_FAILURE
     */
    AXIS2_EXTERN axis2_status_t AXIS2_CALL
    axis2_options_set_transport_in_protocol(
        axis2_options_t * options,
        const axutil_env_t * env,
        const AXIS2_TRANSPORT_ENUMS transport_in_protocol);

    /**
     * Sets message ID.
     * @param options pointer to options struct
     * @param env pointer to environment struct
     * @param message_id pointer to message_id struct
     * @return AXIS2_SUCCESS on success, else AXIS2_FAILURE
     */
    AXIS2_EXTERN axis2_status_t AXIS2_CALL
    axis2_options_set_message_id(
        axis2_options_t * options,
        const axutil_env_t * env,
        const axis2_char_t * message_id);

    /**
     * Sets the properties hash map. 
     * @param options pointer to options struct
     * @param env pointer to environment struct
     * @param properties pointer to properties hash map. options takes 
     * over the ownership of the hash struct.
     * @return AXIS2_SUCCESS on success, else AXIS2_FAILURE
     */
    AXIS2_EXTERN axis2_status_t AXIS2_CALL
    axis2_options_set_properties(
        axis2_options_t * options,
        const axutil_env_t * env,
        axutil_hash_t * properties);

    /**
     * Sets a property with the given key value.
     * @param options pointer to options struct
     * @param env pointer to environment struct
     * @param property_key property key string
     * @param property pointer to property to be set
     * @return AXIS2_SUCCESS on success, else AXIS2_FAILURE
     */
    AXIS2_EXTERN axis2_status_t AXIS2_CALL
    axis2_options_set_property(
        axis2_options_t * options,
        const axutil_env_t * env,
        const axis2_char_t * property_key,
        const void *property);

    /**
     * Sets relates to.
     * @param options pointer to options struct
     * @param env pointer to environment struct
     * @param relates_to pointer to relates_to struct. options takes 
     * over the ownership of the struct.
     * @return AXIS2_SUCCESS on success, else AXIS2_FAILURE
     */
    AXIS2_EXTERN axis2_status_t AXIS2_CALL
    axis2_options_set_relates_to(
        axis2_options_t * options,
        const axutil_env_t * env,
        axis2_relates_to_t * relates_to);

    /**
     * Sets reply to address.
     * @param options pointer to options struct
     * @param env pointer to environment struct
     * @param reply_to pointer to endpoint reference struct representing 
     * reply to address. options takes over the ownership of the struct.
     * @return AXIS2_SUCCESS on success, else AXIS2_FAILURE
     */
    AXIS2_EXTERN axis2_status_t AXIS2_CALL
    axis2_options_set_reply_to(
        axis2_options_t * options,
        const axutil_env_t * env,
        axis2_endpoint_ref_t * reply_to);

    /**
     * Sets the transport out description.
     * @param options pointer to options struct
     * @param env pointer to environment struct
     * @param transport_out pointer to transport out description struct. 
     * options takes over the ownership of the struct.
     * @return AXIS2_SUCCESS on success, else AXIS2_FAILURE 
     */
    AXIS2_EXTERN axis2_status_t AXIS2_CALL
    axis2_options_set_transport_out(
        axis2_options_t * options,
        const axutil_env_t * env,
        axis2_transport_out_desc_t * transport_out);

    /**
     * Sets the sender transport.
     * @param options pointer to options struct
     * @param env pointer to environment struct
     * @param sender_transport name of the sender transport to be set
     * @param conf pointer to conf struct, it is from the conf that the 
     * transport is picked with the given name
     * @return AXIS2_SUCCESS on success, else AXIS2_FAILURE
     */
    AXIS2_EXTERN axis2_status_t AXIS2_CALL
    axis2_options_set_sender_transport(
        axis2_options_t * options,
        const axutil_env_t * env,
        const AXIS2_TRANSPORT_ENUMS sender_transport,
        axis2_conf_t * conf);

    /**
     * Sets the SOAP version URI.
     * @param options pointer to options struct
     * @param env pointer to environment struct
     * @param soap_version_uri URI of the SOAP version to be set, can be 
     * either AXIOM_SOAP11_SOAP_ENVELOPE_NAMESPACE_URI or 
     * AXIOM_SOAP12_SOAP_ENVELOPE_NAMESPACE_URI
     * @return AXIS2_SUCCESS on success, else AXIS2_FAILURE
     */
    AXIS2_EXTERN axis2_status_t AXIS2_CALL
    axis2_options_set_soap_version_uri(
        axis2_options_t * options,
        const axutil_env_t * env,
        const axis2_char_t * soap_version_uri);

    /**
     * Sets timeout in Milli seconds.
     * @param options pointer to options struct
     * @param env pointer to environment struct
     * @param timeout_in_milli_seconds timeout in milli seconds
     * @return AXIS2_SUCCESS on success, else AXIS2_FAILURE
     */
    AXIS2_EXTERN axis2_status_t AXIS2_CALL
    axis2_options_set_timeout_in_milli_seconds(
        axis2_options_t * options,
        const axutil_env_t * env,
        const long timeout_in_milli_seconds);

    /**
     * Sets transport information. Transport information includes the name 
     * of the sender transport, name of the receiver transport and if a 
     * separate listener to be used to receive response. 
     * @param options pointer to options struct
     * @param env pointer to environment struct
     * @param sender_transport name of sender transport to be used
     * @param receiver_transport name of receiver transport to be used
     * @param use_separate_listener bool value indicating whether to use
     * a separate listener or not.
     * @return AXIS2_SUCCESS on success, else AXIS2_FAILURE
     */
    AXIS2_EXTERN axis2_status_t AXIS2_CALL
    axis2_options_set_transport_info(
        axis2_options_t * options,
        const axutil_env_t * env,
        const AXIS2_TRANSPORT_ENUMS sender_transport,
        const AXIS2_TRANSPORT_ENUMS receiver_transport,
        const axis2_bool_t use_separate_listener);

    /**
     * Sets the bool value indicating whether to use a separate listener or not.
     * @param options pointer to options struct
     * @param env pointer to environment struct
     * @param use_separate_listener bool value indicating whether to use
     * a separate listener or not.
     * @return AXIS2_SUCCESS on success, else AXIS2_FAILURE
     */
    AXIS2_EXTERN axis2_status_t AXIS2_CALL
    axis2_options_set_use_separate_listener(
        axis2_options_t * options,
        const axutil_env_t * env,
        const axis2_bool_t use_separate_listener);

    /**
     * Adds a WSA reference parameter.
     * @param options pointer to options struct
     * @param env pointer to environment struct
     * @param reference_parameter pointer to reference parameter in the form 
     * of an AXIOM tree. options takes over the ownership of the struct.
     * @return AXIS2_SUCCESS on success, else AXIS2_FAILURE
     */
    AXIS2_EXTERN axis2_status_t AXIS2_CALL
    axis2_options_add_reference_parameter(
        axis2_options_t * options,
        const axutil_env_t * env,
        axiom_node_t * reference_parameter);

    /**
     * Gets manage session bool value.
     * @param options pointer to options struct
     * @param env pointer to environment struct
     * @return AXIS2_TRUE if session is managed, else AXIS2_FALSE
     */
    AXIS2_EXTERN axis2_bool_t AXIS2_CALL
    axis2_options_get_manage_session(
        const axis2_options_t * options,
        const axutil_env_t * env);

    /**
     * Sets manage session bool value.
     * @param options pointer to options struct
     * @param env pointer to environment struct
     * @param manage_session manage session bool value
     * @return AXIS2_SUCCESS on success, else AXIS2_FAILURE
     */
    AXIS2_EXTERN axis2_status_t AXIS2_CALL
    axis2_options_set_manage_session(
        axis2_options_t * options,
        const axutil_env_t * env,
        const axis2_bool_t manage_session);

    /**
     * Sets WSA message information headers.
     * @param options pointer to options struct
     * @param env pointer to environment struct
     * @param pointer to message information headers struct
     * @return AXIS2_SUCCESS on success, else AXIS2_FAILURE
     */
    AXIS2_EXTERN axis2_status_t AXIS2_CALL
    axis2_options_set_msg_info_headers(
        axis2_options_t * options,
        const axutil_env_t * env,
        axis2_msg_info_headers_t * msg_info_headers);

    /**
     * Gets WSA message information headers.
     * @param options pointer to options struct
     * @param env pointer to environment struct
     * @return pointer to message information headers struct if set, 
     * else NULL
     */
    AXIS2_EXTERN axis2_msg_info_headers_t *AXIS2_CALL
    axis2_options_get_msg_info_headers(
        const axis2_options_t * options,
        const axutil_env_t * env);

    /**
     * Gets SOAP version.
     * @param options pointer to options struct
     * @param env pointer to environment struct
     * @return AXIOM_SOAP11 if SOAP version 1.1 is in use, else AXIOM_SOAP12
     */
    AXIS2_EXTERN int AXIS2_CALL
    axis2_options_get_soap_version(
        const axis2_options_t * options,
        const axutil_env_t * env);

    /**
     * Sets SOAP version.
     * @param options pointer to options struct
     * @param env pointer to environment struct
     * @param soap_version soap version, either AXIOM_SOAP11 or AXIOM_SOAP12
     * @return AXIS2_SUCCESS on success, else AXIS2_FAILURE
     */
    AXIS2_EXTERN axis2_status_t AXIS2_CALL
    axis2_options_set_soap_version(
        axis2_options_t * options,
        const axutil_env_t * env,
        const int soap_version);

    /**
     * Enable/disable MTOM handling.
     * @param options pointer to options struct
     * @param env pointer to environment struct
     * @param enable_mtom AXIS2_TRUE if MTOM is to be enabled, AXIS2_FALSE
     * @return AXIS2_SUCCESS on success, else AXIS2_FAILURE
     */

    AXIS2_EXTERN axis2_status_t AXIS2_CALL
    axis2_options_set_enable_mtom(
        axis2_options_t * options,
        const axutil_env_t * env,
        axis2_bool_t enable_mtom);

    /**
     * Gets Enable/disable MTOM status.
     * @param options pointer to options struct
     * @param env pointer to environment struct
     * @return AXIS2_TRUE if MTOM enabled, else AXIS2_FALSE
     */
    AXIS2_EXTERN axis2_bool_t AXIS2_CALL
    axis2_options_get_enable_mtom(
        const axis2_options_t * options,
        const axutil_env_t * env);

    /**
     * Gets SOAP action.
     * @param options pointer to options struct
     * @param env pointer to environment struct
     * @return SOAP Action string if set, else NULL
     */
    AXIS2_EXTERN axutil_string_t *AXIS2_CALL
    axis2_options_get_soap_action(
        const axis2_options_t * options,
        const axutil_env_t * env);

    /**
     * Sets SOAP action
     * @param options pointer to options struct
     * @param env pointer to environment struct
     * @param action pointer to SOAP action string
     * @return AXIS2_SUCCESS on success, else AXIS2_FAILURE
     */
    AXIS2_EXTERN axis2_status_t AXIS2_CALL
    axis2_options_set_soap_action(
        axis2_options_t * options,
        const axutil_env_t * env,
        axutil_string_t * soap_action);

    /**
     * Sets xml parser reset
     * @param options pointer to options struct
     * @param env pointer to environment struct
     * @param reset flag is a boolean value
     * @return AXIS2_SUCCESS on success, else AXIS2_FAILURE
     */
    AXIS2_EXTERN axis2_status_t AXIS2_CALL
    axis2_options_set_xml_parser_reset(
        axis2_options_t * options,
        const axutil_env_t * env,
        const axis2_bool_t paser_reset_flag);

    /**
     * Gets xml parser reset value,
     * @param options pointer to options struct
     * @param env pointer to environment struct
     * @return xml parser reset boolean value
     */
    AXIS2_EXTERN axis2_bool_t AXIS2_CALL
    axis2_options_get_xml_parser_reset(
        const axis2_options_t * options,
        const axutil_env_t * env);

    /**
     * Frees options struct.
     * @param options pointer to options struct
     * @param env pointer to environment struct
     * @return void
     */
    AXIS2_EXTERN void AXIS2_CALL
    axis2_options_free(
        axis2_options_t * options,
        const axutil_env_t * env);

    /**
     * Sets the bool value indicating whether to enable REST or not.
     * @param options pointer to options struct
     * @param env pointer to environment struct
     * @param enable_rest bool value indicating whether to enable REST 
     * or not, AXIS2_TRUE to enable, AXIS2_FALSE to disable
     * @return AXIS2_SUCCESS on success, else AXIS2_FAILURE
     */
    AXIS2_EXTERN axis2_status_t AXIS2_CALL
    axis2_options_set_enable_rest(
        axis2_options_t * options,
        const axutil_env_t * env,
        const axis2_bool_t enable_rest);

    /**
     * Sets the bool value indicating whether to test whether HTTP
     * Authentication is required or not.
     * @param options pointer to options struct
     * @param env pointer to environment struct
     * @param test_http_auth bool value indicating whether to test
     * or not, AXIS2_TRUE to enable, AXIS2_FALSE to disable
     * @return AXIS2_SUCCESS on success, else AXIS2_FAILURE
     */
    AXIS2_EXTERN axis2_status_t AXIS2_CALL
    axis2_options_set_test_http_auth(
        axis2_options_t * options,
        const axutil_env_t * env,
        const axis2_bool_t test_http_auth);

    /**
     * Sets the bool value indicating whether to test whether Proxy
     * Authentication is required or not.
     * @param options pointer to options struct
     * @param env pointer to environment struct
     * @param test_proxy_auth bool value indicating whether to test
     * or not, AXIS2_TRUE to enable, AXIS2_FALSE to disable
     * @return AXIS2_SUCCESS on success, else AXIS2_FAILURE
     */
    AXIS2_EXTERN axis2_status_t AXIS2_CALL
    axis2_options_set_test_proxy_auth(
        axis2_options_t * options,
        const axutil_env_t * env,
        const axis2_bool_t test_proxy_auth);
    
    /**
     * Sets the HTTP method to be used
     * @param options pointer to options struct
     * @param env pointer to environment struct
     * @param http_method string representing HTTP method to use, 
     * can be either AXIS2_HTTP_GET or AXIS2_HTTP_POST
     * @return AXIS2_SUCCESS on success, else AXIS2_FAILURE
     */
    AXIS2_EXTERN axis2_status_t AXIS2_CALL
    axis2_options_set_http_method(
        axis2_options_t * options,
        const axutil_env_t * env,
        const axis2_char_t * http_method);

    /**
     * Sets the Additional HTTP Headers to be sent.
     * @param options pointer to options struct
     * @param env pointer to environment struct
     * @param http_header_list array list containing
     * HTTP Headers.
     * @return AXIS2_SUCCESS on success, else AXIS2_FAILURE
     */
    AXIS2_EXTERN axis2_status_t AXIS2_CALL
    axis2_options_set_http_headers(
        axis2_options_t * options,
        const axutil_env_t * env,
        axutil_array_list_t * http_header_list);

    /**
     * Creates the options struct.
     * @param env pointer to environment struct
     * @return a pointer to newly created options struct, or NULL on error 
     * with error code set in environment's error.
     */
    AXIS2_EXTERN axis2_options_t *AXIS2_CALL
    axis2_options_create(
        const axutil_env_t * env);

    /**
     * Creates the options struct with given parent.
     * @param env pointer to environment struct
     * @param parent pointer to parent struct
     * @return a pointer to newly created options struct. Newly created options 
     * assumes ownership of the parent 
     * or NULL on error with error code set in environment's error.
     */
    AXIS2_EXTERN axis2_options_t *AXIS2_CALL
    axis2_options_create_with_parent(
        const axutil_env_t * env,
        axis2_options_t * parent);

    /**
     * Sets HTTP authentication information.
     * @param env pointer to environment struct
     * @param parent pointer to parent struct
     * @param username string representing username
     * @param password string representing password
     * @param auth_type use "Basic" to force basic authentication
     * and "Digest" to force digest authentication or NULL for not
     * forcing authentication
     * @return AXIS2_SUCCESS on success, else AXIS2_FAILURE
     */
    AXIS2_EXTERN axis2_status_t AXIS2_CALL
    axis2_options_set_http_auth_info(
        axis2_options_t * options,
        const axutil_env_t * env,
        const axis2_char_t * username,
        const axis2_char_t * password,
        const axis2_char_t * auth_type);

    /**
      * Sets proxy authentication information.
      * @param env pointer to environment struct
      * @param parent pointer to parent struct
      * @param username string representing username
      * @param password string representing password
      * @param auth_type use "Basic" to force basic authentication
      * and "Digest" to force digest authentication or NULL for not
      * forcing authentication
      * @return AXIS2_SUCCESS on success, else AXIS2_FAILURE
      */
    AXIS2_EXTERN axis2_status_t AXIS2_CALL
    axis2_options_set_proxy_auth_info(
        axis2_options_t * options,
        const axutil_env_t * env,
        const axis2_char_t * username,
        const axis2_char_t * password,
        const axis2_char_t * auth_type);

    /**
      * Sets ntlm http authentication information.
      * @param env pointer to environment struct
      * @param parent pointer to parent struct
      * @param username string representing username
      * @param password string representing password
      * @param flags int representing flags
      * @param domain string representing domain
      * @param workstation string representing workstation
      * @param auth_type use "NTLM" to force ntlm http authentication
      * or NULL for not forcing authentication
      * @return AXIS2_SUCCESS on success, else AXIS2_FAILURE
      */
    AXIS2_EXTERN axis2_status_t AXIS2_CALL
    axis2_options_set_ntlm_http_auth_info(
        axis2_options_t * options,
        const axutil_env_t * env,
        const axis2_char_t * username,
        const axis2_char_t * password,
        const int flags,
        const axis2_char_t * domain,
        const axis2_char_t * workstation,
        const axis2_char_t * auth_type);

    /**
      * Sets ntlm proxy authentication information.
      * @param env pointer to environment struct
      * @param parent pointer to parent struct
      * @param username string representing username
      * @param password string representing password
      * @param flags int representing flags
      * @param domain string representing domain
      * @param workstation string representing workstation
      * @param auth_type use "NTLM" to force ntlm proxy authentication
      * or NULL for not forcing authentication
      * @return AXIS2_SUCCESS on success, else AXIS2_FAILURE
      */
    AXIS2_EXTERN axis2_status_t AXIS2_CALL
    axis2_options_set_ntlm_proxy_auth_info(
        axis2_options_t * options,
        const axutil_env_t * env,
        const axis2_char_t * username,
        const axis2_char_t * password,
        const int flags,
        const axis2_char_t * domain,
        const axis2_char_t * workstation,
        const axis2_char_t * auth_type);


    /** @} */
#ifdef __cplusplus
}
#endif

#endif                          /* AXIS2_OPTIONS_H */


<|start_filename|>guththila/include/guththila_defines.h<|end_filename|>

/*
 * 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 GUTHTHILA_DEFINES_H
#define GUTHTHILA_DEFINES_H

#if defined(WIN32)
#define	GUTHTHILA_EXPORT  __declspec(dllexport)
#else
#define GUTHTHILA_EXPORT
#endif

#if defined(__GNUC__)
#if defined(__i386)
#define GUTHTHILA_CALL __attribute__((cdecl))
#else
#define GUTHTHILA_CALL
#endif
#else
#if defined(__unix)
#define GUTHTHILA_CALL
#else
#define GUTHTHILA_CALL _cdecl
#endif
#endif

#ifndef guththila_char_t
#define guththila_char_t char
#endif

#ifndef GUTHTHILA_SUCCESS
#define GUTHTHILA_SUCCESS	1
#endif

#ifndef GUTHTHILA_FAILURE
#define GUTHTHILA_FAILURE	0
#endif

#ifdef __cplusplus
#define EXTERN_C_START() extern "C" {
#define EXTERN_C_END() }
#else
#define EXTERN_C_START()
#define EXTERN_C_END()
#endif

#ifndef GUTHTHILA_EOF
#define GUTHTHILA_EOF	(-1)
#endif

#ifndef GUTHTHILA_FALSE
#define GUTHTHILA_FALSE	0
#endif

#ifndef GUTHTHILA_TRUE
#define GUTHTHILA_TRUE		1
#endif

#endif


<|start_filename|>axiom/src/soap/soap_builder.c<|end_filename|>

/*
 * 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.
 */

#include <axiom_soap_builder.h>
#include "_axiom_soap_envelope.h"
#include "_axiom_soap_header.h"
#include "axiom_soap11_builder_helper.h"
#include "axiom_soap12_builder_helper.h"
#include <axiom_soap_const.h>
#include "_axiom_soap_body.h"
#include "_axiom_soap_header_block.h"
#include <axiom_stax_builder_internal.h>
#include "_axiom_soap_fault.h"
#include <axutil_http_chunked_stream.h>

axis2_status_t axiom_soap_builder_create_om_element(
    axiom_soap_builder_t * soap_builder,
    const axutil_env_t * env,
    axiom_node_t * current_node,
    int current_event);

static axis2_status_t axiom_soap_builder_construct_node(
    axiom_soap_builder_t * soap_builder,
    const axutil_env_t * env,
    axiom_node_t * parent,
    axiom_node_t * om_element_node,
    axis2_bool_t is_soap_envelope);

static axis2_status_t axiom_soap_builder_identify_soap_version(
    axiom_soap_builder_t * soap_builder,
    const axutil_env_t * env,
    const axis2_char_t * soap_version_uri_from_transport);

static axis2_status_t axiom_soap_builder_parse_headers(
    axiom_soap_builder_t * soap_builder,
    const axutil_env_t * env);

static axis2_status_t axiom_soap_builder_construct_node_for_empty_element(
    axiom_soap_builder_t * soap_builder,
    const axutil_env_t * env,
    axiom_node_t * parent,
    axiom_node_t * om_element_node);

struct axiom_soap_builder
{
    axiom_stax_builder_t *om_builder;

    axiom_soap_envelope_t *soap_envelope;

    axis2_bool_t header_present;

    axis2_bool_t body_present;

    int element_level;

    axis2_bool_t processing_fault;

    axis2_bool_t processing_detail_elements;

    axis2_char_t *sender_fault_code;

    axis2_char_t *receiver_fault_code;

    axis2_bool_t processing_mandatory_fault_elements;

    void *builder_helper;

    axiom_namespace_t *envelope_ns;

    int soap_version;

    int last_node_status;

    axis2_bool_t done;

    axutil_hash_t *mime_body_parts;

    axiom_mime_parser_t *mime_parser;

    AXIS2_READ_INPUT_CALLBACK callback;

    void *callback_ctx;

};

typedef enum axis2_builder_last_node_states
{
    AXIS2_BUILDER_LAST_NODE_NULL = 0,
    AXIS2_BUILDER_LAST_NODE_NOT_NULL
} axis2_builder_last_node_states;

#define AXIS2_MAX_EVENT 100

AXIS2_EXTERN axiom_soap_builder_t *AXIS2_CALL
axiom_soap_builder_create(
    const axutil_env_t * env,
    axiom_stax_builder_t * stax_builder,
    const axis2_char_t * soap_version)
{
    axiom_soap_builder_t *soap_builder = NULL;
    axis2_status_t status = AXIS2_SUCCESS;
    
    AXIS2_PARAM_CHECK(env->error, stax_builder, NULL);

    soap_builder = (axiom_soap_builder_t *) AXIS2_MALLOC(env->allocator,
                                                         sizeof
                                                         (axiom_soap_builder_t));

    if (soap_builder == NULL)
    {
        AXIS2_ERROR_SET(env->error, AXIS2_ERROR_NO_MEMORY, AXIS2_FAILURE);
        return NULL;
    }

    soap_builder->done = AXIS2_FALSE;
    soap_builder->body_present = AXIS2_FALSE;
    soap_builder->builder_helper = NULL;
    soap_builder->element_level = 0;
    soap_builder->header_present = AXIS2_FALSE;
    soap_builder->processing_detail_elements = AXIS2_FALSE;
    soap_builder->processing_fault = AXIS2_FALSE;
    soap_builder->processing_mandatory_fault_elements = AXIS2_FALSE;
    soap_builder->receiver_fault_code = NULL;
    soap_builder->sender_fault_code = NULL;
    soap_builder->soap_version = AXIOM_SOAP12;
    soap_builder->last_node_status = -1;
    soap_builder->envelope_ns = NULL;
    soap_builder->soap_envelope = NULL;
    soap_builder->mime_body_parts = NULL;
    soap_builder->om_builder = stax_builder;
    soap_builder->mime_parser = NULL;
    soap_builder->callback = NULL;
    soap_builder->callback_ctx = NULL;

    status =
        axiom_soap_builder_identify_soap_version(soap_builder, env,
                                                 soap_version);
    if (status == AXIS2_FAILURE)
    {
        axiom_soap_builder_free(soap_builder, env);
        return NULL;
    }
    status = axiom_soap_builder_parse_headers(soap_builder, env);
    if (status == AXIS2_FAILURE)
    {
        axiom_soap_builder_free(soap_builder, env);
        return NULL;
    }
    return soap_builder;
}

AXIS2_EXTERN void AXIS2_CALL
axiom_soap_builder_free(
    axiom_soap_builder_t * soap_builder,
    const axutil_env_t * env)
{
    if (!soap_builder)
    {
        return;
    }
    if (soap_builder->builder_helper)
    {
        if (soap_builder->soap_version == AXIOM_SOAP11 &&
            soap_builder->builder_helper)
        {
            axiom_soap11_builder_helper_free((axiom_soap11_builder_helper_t
                                              *) (soap_builder->builder_helper),
                                             env);
            soap_builder->builder_helper = NULL;
        }
        else if (soap_builder->soap_version == AXIOM_SOAP12 &&
                 soap_builder->builder_helper)
        {
            axiom_soap12_builder_helper_free((axiom_soap12_builder_helper_t
                                              *) (soap_builder->builder_helper),
                                             env);
            soap_builder->builder_helper = NULL;
        }
    }

    if (soap_builder->om_builder)
    {
        axiom_stax_builder_free(soap_builder->om_builder, env);
        soap_builder->om_builder = NULL;
    }

    if (soap_builder->mime_body_parts)
    {
        axutil_hash_index_t *hi = NULL;
        void *val = NULL;
        const void *key = NULL;
        for (hi = axutil_hash_first(soap_builder->mime_body_parts, env);
             hi; hi = axutil_hash_next(env, hi))
        {
            axutil_hash_this(hi, &key, NULL, &val);

            if (key)
            {
                AXIS2_FREE(env->allocator, (char *) key);
            }

            val = NULL;
            key = NULL;
        }

        axutil_hash_free(soap_builder->mime_body_parts, env);
        soap_builder->mime_body_parts = NULL;
    }

    if(soap_builder->mime_parser)
    {
        axiom_mime_parser_free(soap_builder->mime_parser, env);
        soap_builder->mime_parser = NULL;
    }        

    if(soap_builder->callback_ctx)
    {
        axis2_callback_info_t *callback_info = NULL;

        callback_info = (axis2_callback_info_t *)(soap_builder->callback_ctx);
        if(callback_info)
        {
            if(callback_info->chunked_stream)
            {
                axutil_http_chunked_stream_free(callback_info->chunked_stream, env);
                callback_info->chunked_stream = NULL;
            }

            AXIS2_FREE(env->allocator, callback_info);
            callback_info = NULL;
            soap_builder->callback_ctx = NULL;
        }
    }

    if (soap_builder)
    {
        AXIS2_FREE(env->allocator, soap_builder);
        soap_builder = NULL;
    }

    return;
}

AXIS2_EXTERN axiom_soap_envelope_t *AXIS2_CALL
    axiom_soap_builder_get_soap_envelope(
    axiom_soap_builder_t * soap_builder,
    const axutil_env_t * env)
{
    int status = AXIS2_SUCCESS;

    if (!soap_builder)
    {
        return NULL;
    }
    if (!(soap_builder->om_builder))
    {
        return NULL;
    }
    while (!(soap_builder->soap_envelope) &&
           !axiom_stax_builder_is_complete(soap_builder->om_builder, env))
    {
        status = axiom_soap_builder_next(soap_builder, env);
        if (status == AXIS2_FAILURE)
        {
            break;
        }
    }

    return soap_builder->soap_envelope;
}

AXIS2_EXTERN axiom_document_t *AXIS2_CALL axiom_soap_builder_get_document(
    axiom_soap_builder_t * soap_builder,
    const axutil_env_t * env)
{
    if (!soap_builder)
    {
        return NULL;
    }
    if (soap_builder->om_builder)
    {
        return axiom_stax_builder_get_document(soap_builder->om_builder, env);
    }
    else
        return NULL;
}

AXIS2_EXTERN axis2_status_t AXIS2_CALL
axiom_soap_builder_next(
    axiom_soap_builder_t * soap_builder,
    const axutil_env_t * env)
{
    axiom_node_t *lastnode = NULL;
    int current_event = AXIS2_MAX_EVENT;
    axiom_node_t *current_node = NULL;
    int status = AXIS2_SUCCESS;
    
    if (!soap_builder)
    {
        return AXIS2_FAILURE;
    }
    if (soap_builder->done)
    {
        return AXIS2_FAILURE;
    }
    if (!(soap_builder->om_builder))
    {
        return AXIS2_FAILURE;
    }
    lastnode = axiom_stax_builder_get_lastnode(soap_builder->om_builder, env);

    if (!lastnode)
    {
        soap_builder->last_node_status = AXIS2_BUILDER_LAST_NODE_NULL;
    }
    else
    {
        soap_builder->last_node_status = AXIS2_BUILDER_LAST_NODE_NOT_NULL;
    }
    current_event =
        axiom_stax_builder_next_with_token(soap_builder->om_builder, env);
    if (current_event == -1)
    {
        soap_builder->done = AXIS2_TRUE;
        return AXIS2_FAILURE;
    }
    if (current_event == AXIOM_XML_READER_EMPTY_ELEMENT ||
        current_event == AXIOM_XML_READER_START_ELEMENT)
    {
        current_node =
            axiom_stax_builder_get_lastnode(soap_builder->om_builder, env);
        if (current_node)
        {
            status =
                axiom_soap_builder_create_om_element(soap_builder, env,
                                                     current_node,
                                                     current_event);
        }
        else
            return AXIS2_FAILURE;
    }

    return status;
}

AXIS2_EXTERN axiom_node_t *AXIS2_CALL axiom_soap_builder_get_document_element(
    axiom_soap_builder_t * soap_builder,
    const axutil_env_t * env)
{
    if (soap_builder->soap_envelope)
    {
        return axiom_soap_envelope_get_base_node(soap_builder->soap_envelope,
                                                 env);
    }
    else
        return NULL;
}

axis2_status_t
    axiom_soap_builder_create_om_element
    (axiom_soap_builder_t * soap_builder,
     const axutil_env_t * env, axiom_node_t * current_node, int current_event)
{
    int ret_val = AXIS2_SUCCESS;
    AXIS2_PARAM_CHECK(env->error, current_node, AXIS2_FAILURE);
    if (!soap_builder)
    {
        return AXIS2_FAILURE;
    }
    if (soap_builder->last_node_status == AXIS2_BUILDER_LAST_NODE_NULL)
    {
        ret_val =
            axiom_soap_builder_construct_node(soap_builder, env, NULL,
                                              current_node, AXIS2_TRUE);
    }
    else
    {
        int element_level = 0;
        axiom_node_t *parent_node = NULL;
        parent_node = axiom_node_get_parent(current_node, env);
        if (!soap_builder->om_builder)
        {
            return AXIS2_FAILURE;
        }
        element_level =
            axiom_stax_builder_get_element_level(soap_builder->om_builder, env);
        if (parent_node && element_level == 1 &&
            current_event == AXIOM_XML_READER_EMPTY_ELEMENT)
        {
            ret_val =
                axiom_soap_builder_construct_node_for_empty_element
                (soap_builder, env, parent_node, current_node);
        }
        else if (parent_node)
        {
            ret_val =
                axiom_soap_builder_construct_node(soap_builder, env,
                                                  parent_node, current_node,
                                                  AXIS2_FALSE);
        }
        else
            return AXIS2_FAILURE;
    }
    return ret_val;
}

static axis2_status_t
axiom_soap_builder_construct_node(
    axiom_soap_builder_t * soap_builder,
    const axutil_env_t * env,
    axiom_node_t * parent,
    axiom_node_t * om_element_node,
    axis2_bool_t is_soap_envelope)
{
    axiom_element_t *parent_ele = NULL;
    axis2_char_t *parent_localname = NULL;

    axiom_element_t *om_element = NULL;
    const axis2_char_t *ele_localname = NULL;

    int element_level = 0;
    int status = AXIS2_SUCCESS;

    AXIS2_PARAM_CHECK(env->error, om_element_node, AXIS2_FAILURE);
    if (!soap_builder)
    {
        return AXIS2_FAILURE;
    }
    if (!soap_builder->om_builder)
    {
        return AXIS2_FAILURE;
    }
    /** get element level of this om element */
    element_level =
        axiom_stax_builder_get_element_level(soap_builder->om_builder, env);
    if (axiom_stax_builder_get_current_event(soap_builder->om_builder, env) ==
        AXIOM_XML_READER_EMPTY_ELEMENT)
    {
        /* if it is an empty element, increase the element level to ensurer processing
         * header block logic, as the following logic assumes 
         * empty elements to be full elements. */
        element_level++;
    }
    /* get om element struct from node */
    om_element = (axiom_element_t *)
        axiom_node_get_data_element(om_element_node, env);
    if (!om_element)
    {
        return AXIS2_FAILURE;
    }
    /* get element localname */
    ele_localname = axiom_element_get_localname(om_element, env);
    if (!ele_localname)
    {
        return AXIS2_FAILURE;
    }
    /* start: handle MTOM stuff */
    if (axutil_strcmp(ele_localname, AXIS2_XOP_INCLUDE) == 0)
    {
        axiom_namespace_t *ns = NULL;

        while (!axiom_node_is_complete(om_element_node, env))
            axiom_stax_builder_next_with_token(soap_builder->om_builder, env);

        ns = axiom_element_get_namespace(om_element, env, om_element_node);
        if (ns)
        {
            axis2_char_t *uri = axiom_namespace_get_uri(ns, env);
            if (uri)
            {
                if (axutil_strcmp(uri, AXIS2_XOP_NAMESPACE_URI) == 0)
                {
                    axutil_qname_t *qname = NULL;
                    qname = axutil_qname_create(env, "href", NULL, NULL);
                    if (qname)
                    {
                        axis2_char_t *id = NULL;
                        id = axiom_element_get_attribute_value(om_element, env,
                                                               qname);
                        if (id)
                        {
                            axis2_char_t *pos = NULL;
                            pos = axutil_strstr(id, "cid:");
                            if (pos)
                            {
                                axiom_data_handler_t *data_handler = NULL;
                                id += 4;

                                if (soap_builder->mime_body_parts)
                                {

                                    axis2_char_t *id_decoded = NULL;
                                  
                                    id_decoded = axutil_strdup(env, id);
                                    
                                    axutil_url_decode(env, id_decoded, id_decoded);
                                    
                                    data_handler =
                                        (axiom_data_handler_t *)
                                        axutil_hash_get(soap_builder->
                                                        mime_body_parts,
                                                        (void *) id_decoded,
                                                        AXIS2_HASH_KEY_STRING);
                                    if (data_handler)
                                    {
                                        axiom_text_t *data_text = NULL;
                                        axiom_node_t *data_om_node = NULL;

                                        /*remove the <xop:Include> element */
                                        axiom_node_free_tree(om_element_node,
                                                             env);

                                        data_text =
                                            axiom_text_create_with_data_handler
                                            (env, parent, data_handler,
                                             &data_om_node);

                                        axiom_text_set_content_id(data_text,
                                                                  env, id_decoded);
                                        axiom_stax_builder_set_lastnode
                                            (soap_builder->om_builder, env,
                                             parent);
                                    }
                                    if(id_decoded)
                                    {
                                        AXIS2_FREE(env->allocator, id_decoded);
                                    }
                                }
                            }
                        }
                    }
                    axutil_qname_free(qname, env);
                }
            }
        }
    }
    /* end: handle MTOM stuff */

    if (parent)
    {

        /** a parent node exist , so not soap envelope element */
        parent_ele =
            (axiom_element_t *) axiom_node_get_data_element(parent, env);
        if (parent_ele)
        {
            parent_localname = axiom_element_get_localname(parent_ele, env);
        }
    }
    if (!parent && is_soap_envelope)
    {

        /** this is the soap envelope element */
        if (axutil_strcasecmp(ele_localname, AXIOM_SOAP_ENVELOPE_LOCAL_NAME) !=
            0)
        {
            AXIS2_ERROR_SET(env->error,
                            AXIS2_ERROR_SOAP_MESSAGE_FIRST_ELEMENT_MUST_CONTAIN_LOCAL_NAME,
                            AXIS2_FAILURE);
            AXIS2_LOG_ERROR(env->log, AXIS2_LOG_SI,
                "SOAP message first element must contain a localname");
            return AXIS2_FAILURE;
        }

        /** create a null soap envelope struct */
        soap_builder->soap_envelope = axiom_soap_envelope_create_null(env);
        if (!soap_builder->soap_envelope)
        {
            return AXIS2_FAILURE;
        }
        /** wrap this om node in it */
        status = axiom_soap_envelope_set_base_node(soap_builder->soap_envelope,
                                                   env, om_element_node);

        axiom_soap_envelope_set_builder(soap_builder->soap_envelope, env,
                                        soap_builder);
        status =
            axiom_soap_builder_process_namespace_data(soap_builder, env,
                                                      om_element_node,
                                                      AXIS2_TRUE);
        if (status == AXIS2_FAILURE)
        {
            return AXIS2_FAILURE;
        }
    }
    else if (element_level == 2)
    {
        if (axutil_strcmp(ele_localname, AXIOM_SOAP_HEADER_LOCAL_NAME) == 0)
        {

            /** this is the soap header element */
            axiom_soap_header_t *soap_header = NULL;
            if (soap_builder->header_present)
            {
                AXIS2_ERROR_SET(env->error,
                                AXIS2_ERROR_SOAP_BUILDER_MULTIPLE_HEADERS_ENCOUNTERED,
                                AXIS2_FAILURE);
                AXIS2_LOG_ERROR(env->log, AXIS2_LOG_SI, 
                    "SOAP builder encountered multiple headers");
                return AXIS2_FAILURE;
            }
            if (soap_builder->body_present)
            {
                AXIS2_ERROR_SET(env->error,
                                AXIS2_ERROR_SOAP_BUILDER_HEADER_BODY_WRONG_ORDER,
                                AXIS2_FAILURE);
                AXIS2_LOG_ERROR(env->log, AXIS2_LOG_SI,
                    "SOAP builder encountered body element first and header next");
                return AXIS2_FAILURE;
            }

            soap_builder->header_present = AXIS2_TRUE;

            soap_header = axiom_soap_header_create(env);
            if (!soap_header)
            {
                return AXIS2_FAILURE;
            }
            axiom_soap_header_set_base_node(soap_header, env, om_element_node);

            axiom_soap_envelope_set_header(soap_builder->soap_envelope, env,
                                           soap_header);

            axiom_soap_header_set_builder(soap_header, env, soap_builder);

            axiom_soap_header_set_soap_version(soap_header, env,
                                               soap_builder->soap_version);

            status =
                axiom_soap_builder_process_namespace_data(soap_builder, env,
                                                          om_element_node,
                                                          AXIS2_TRUE);
            if (status == AXIS2_FAILURE)
            {
                return AXIS2_FAILURE;
            }

        }
        else if (axutil_strcmp(ele_localname, AXIOM_SOAP_BODY_LOCAL_NAME) == 0)
        {

            axiom_soap_body_t *soap_body = NULL;
            if (soap_builder->body_present)
            {
                AXIS2_ERROR_SET(env->error,
                                AXIS2_ERROR_SOAP_BUILDER_MULTIPLE_BODY_ELEMENTS_ENCOUNTERED,
                                AXIS2_FAILURE);
                AXIS2_LOG_ERROR(env->log, AXIS2_LOG_SI,
                    "SOAP builder multiple body elements encountered");
                return AXIS2_FAILURE;

            }
            soap_builder->body_present = AXIS2_TRUE;

            soap_body = axiom_soap_body_create(env);
            if (!soap_body)
            {
                return AXIS2_FAILURE;
            }
            axiom_soap_body_set_base_node(soap_body, env, om_element_node);

            axiom_soap_body_set_builder(soap_body, env, soap_builder);

            axiom_soap_envelope_set_body(soap_builder->soap_envelope, env,
                                         soap_body);

            status =
                axiom_soap_builder_process_namespace_data(soap_builder, env,
                                                          om_element_node,
                                                          AXIS2_TRUE);

            if (status == AXIS2_FAILURE)
            {
                return AXIS2_FAILURE;
            }
        }
        else if (parent_localname &&
                 axutil_strcasecmp(parent_localname,
                                   AXIOM_SOAP_HEADER_LOCAL_NAME) &&
                 axutil_strcasecmp(parent_localname,
                                   AXIOM_SOAP_BODY_LOCAL_NAME))
        {
            AXIS2_ERROR_SET(env->error,
                            AXIS2_ERROR_SOAP_BUILDER_ENVELOPE_CAN_HAVE_ONLY_HEADER_AND_BODY,
                            AXIS2_FAILURE);
            AXIS2_LOG_ERROR(env->log, AXIS2_LOG_SI,
                "SOAP builder found a child element other than header or "\
                "body in envelope element");
            return AXIS2_FAILURE;
        }
    }
    else if ((element_level == 3) && parent_localname &&
             axutil_strcasecmp(parent_localname,
                               AXIOM_SOAP_HEADER_LOCAL_NAME) == 0)
    {
        axiom_soap_header_block_t *header_block = NULL;
        axiom_soap_header_t *soap_header = NULL;

        soap_header =
            axiom_soap_envelope_get_header(soap_builder->soap_envelope, env);
        if (!soap_header)
        {
            return AXIS2_FAILURE;
        }

        header_block = axiom_soap_header_block_create(env);
        if (!header_block)
        {
            return AXIS2_FAILURE;
        }

        axiom_soap_header_block_set_base_node(header_block, env,
                                              om_element_node);

        axiom_soap_header_set_header_block(soap_header, env, header_block);

        axiom_soap_header_block_set_soap_version(header_block, env,
                                                 soap_builder->soap_version);

    }
    else if ((element_level == 3) && parent_localname &&
             axutil_strcasecmp(parent_localname,
                               AXIOM_SOAP_BODY_LOCAL_NAME) == 0 &&
             axutil_strcasecmp(ele_localname,
                               AXIOM_SOAP_BODY_FAULT_LOCAL_NAME) == 0)
    {
        axiom_soap_body_t *soap_body = NULL;
        axiom_soap_fault_t *soap_fault = NULL;
        axiom_namespace_t *env_ns = NULL;

        env_ns =
            axiom_soap_envelope_get_namespace(soap_builder->soap_envelope, env);
        if (!env_ns)
        {
            return AXIS2_FAILURE;
        }
        soap_body =
            axiom_soap_envelope_get_body(soap_builder->soap_envelope, env);

        if (!soap_body)
        {
            return AXIS2_FAILURE;
        }
        soap_fault = axiom_soap_fault_create(env);
        if (!soap_fault)
        {
            return AXIS2_FAILURE;
        }
        axiom_soap_fault_set_base_node(soap_fault, env, om_element_node);

        axiom_soap_body_set_fault(soap_body, env, soap_fault);

        axiom_soap_fault_set_builder(soap_fault, env, soap_builder);

        soap_builder->processing_fault = AXIS2_TRUE;

        soap_builder->processing_mandatory_fault_elements = AXIS2_TRUE;

        if (axutil_strcmp(AXIOM_SOAP12_SOAP_ENVELOPE_NAMESPACE_URI,
                          axiom_namespace_get_uri(env_ns, env)) == 0)
        {
            soap_builder->builder_helper =
                axiom_soap12_builder_helper_create(env, soap_builder);
            if (!(soap_builder->builder_helper))
            {
                return AXIS2_FAILURE;
            }
        }
        else if (axutil_strcmp(AXIOM_SOAP11_SOAP_ENVELOPE_NAMESPACE_URI,
                               axiom_namespace_get_uri(env_ns, env)) == 0)
        {
            soap_builder->builder_helper =
                axiom_soap11_builder_helper_create(env, soap_builder,
                                                   soap_builder->om_builder);
            if (!(soap_builder->builder_helper))
            {
                return AXIS2_FAILURE;
            }
        }

    }
    else if (element_level > 3 && soap_builder->processing_fault)
    {
        if (soap_builder->soap_version == AXIOM_SOAP11)
        {
            status = axiom_soap11_builder_helper_handle_event(((axiom_soap11_builder_helper_t *) (soap_builder->builder_helper)), env, om_element_node, element_level);

        }
        else if (soap_builder->soap_version == AXIOM_SOAP12)
        {
            status = axiom_soap12_builder_helper_handle_event(((axiom_soap12_builder_helper_t *) (soap_builder->builder_helper)), env, om_element_node, element_level);
        }

    }
    return status;
}

AXIS2_EXTERN axis2_status_t AXIS2_CALL 
axiom_soap_builder_process_namespace_data(
    axiom_soap_builder_t * soap_builder,
    const axutil_env_t * env,
    axiom_node_t * om_node,
    axis2_bool_t is_soap_element)
{
    axiom_element_t *om_ele = NULL;
    axiom_namespace_t *om_ns = NULL;
    axis2_char_t *ns_uri = NULL;

    if (!om_node)
    {
        return AXIS2_FAILURE;
    }

    if (!is_soap_element)
    {
        return AXIS2_SUCCESS;
    }
    if (axiom_node_get_node_type(om_node, env) == AXIOM_ELEMENT)
    {
        om_ele = (axiom_element_t *) axiom_node_get_data_element(om_node, env);
        if (om_ele)
        {
            om_ns = axiom_element_get_namespace(om_ele, env, om_node);
            if (om_ns)
            {
                ns_uri = axiom_namespace_get_uri(om_ns, env);
                if (ns_uri &&
                    (axutil_strcmp
                     (ns_uri, AXIOM_SOAP11_SOAP_ENVELOPE_NAMESPACE_URI) != 0) &&
                    (axutil_strcmp
                     (ns_uri, AXIOM_SOAP12_SOAP_ENVELOPE_NAMESPACE_URI) != 0))
                {
                    AXIS2_ERROR_SET(env->error,
                                    AXIS2_ERROR_INVALID_SOAP_NAMESPACE_URI,
                                    AXIS2_FAILURE);
                    AXIS2_LOG_DEBUG(env->log, AXIS2_LOG_SI,
                                    "AXIS2_ERROR_INVALID_SOAP_NAMESPACE_URI");
                    return AXIS2_FAILURE;
                }

            }
        }
    }
    return AXIS2_SUCCESS;
}

static axis2_status_t
axiom_soap_builder_identify_soap_version(
    axiom_soap_builder_t * soap_builder,
    const axutil_env_t * env,
    const axis2_char_t * soap_version_uri_from_transport)
{
    axiom_namespace_t *om_ns = NULL;
    axiom_node_t *envelope_node = NULL;
    axiom_element_t *om_ele = NULL;
    axis2_char_t *ns_uri = NULL;

    AXIS2_PARAM_CHECK(env->error, soap_version_uri_from_transport,
                      AXIS2_FAILURE);
    if (!soap_builder)
    {
        return AXIS2_FAILURE;
    }
    soap_builder->soap_envelope =
        axiom_soap_builder_get_soap_envelope(soap_builder, env);

    if (soap_builder->soap_envelope == NULL)
    {
        AXIS2_ERROR_SET(env->error,
                        AXIS2_ERROR_SOAP_MESSAGE_DOES_NOT_CONTAIN_AN_ENVELOPE,
                        AXIS2_FAILURE);
        AXIS2_LOG_CRITICAL(env->log, AXIS2_LOG_SI,
                           "SOAP message does not have a SOAP envelope element ");
        return AXIS2_FAILURE;
    }

    envelope_node =
        axiom_soap_envelope_get_base_node(soap_builder->soap_envelope, env);

    if (!envelope_node)
    {
        return AXIS2_FAILURE;
    }
    om_ele =
        (axiom_element_t *) axiom_node_get_data_element(envelope_node, env);
    if (!om_ele)
    {
        return AXIS2_FAILURE;
    }
    om_ns = axiom_element_get_namespace(om_ele, env, envelope_node);
    if (!om_ns)
    {
        return AXIS2_FAILURE;
    }
    ns_uri = axiom_namespace_get_uri(om_ns, env);

    if (ns_uri)
    {
        if (soap_version_uri_from_transport &&
            axutil_strcmp(soap_version_uri_from_transport, ns_uri) != 0)
        {
            AXIS2_ERROR_SET(env->error,
                            AXIS2_ERROR_TRANSPORT_LEVEL_INFORMATION_DOES_NOT_MATCH_WITH_SOAP,
                            AXIS2_FAILURE);

            AXIS2_LOG_ERROR(env->log, AXIS2_LOG_SI,
                            "AXIS2_ERROR_TRANSPORT_LEVEL_INFORMATION_DOES_NOT_MATCH_WITH_SOAP");
            return AXIS2_FAILURE;
        }
        if (axutil_strcmp(AXIOM_SOAP11_SOAP_ENVELOPE_NAMESPACE_URI, ns_uri) ==
            0)
        {
            soap_builder->soap_version = AXIOM_SOAP11;

            AXIS2_LOG_DEBUG(env->log, AXIS2_LOG_SI,
                            "Identified soap version is soap11");

            axiom_soap_envelope_set_soap_version_internal(soap_builder->
                                                          soap_envelope, env,
                                                          soap_builder->
                                                          soap_version);

            return AXIS2_SUCCESS;
        }
        else if (axutil_strcmp(AXIOM_SOAP12_SOAP_ENVELOPE_NAMESPACE_URI, ns_uri)
                 == 0)
        {
            soap_builder->soap_version = AXIOM_SOAP12;

            AXIS2_LOG_DEBUG(env->log, AXIS2_LOG_SI,
                            "identified soap version is soap12");

            axiom_soap_envelope_set_soap_version_internal(soap_builder->
                                                          soap_envelope, env,
                                                          soap_builder->
                                                          soap_version);

            return AXIS2_SUCCESS;
        }
    }
    return AXIS2_FAILURE;
}

static axis2_status_t
axiom_soap_builder_parse_headers(
    axiom_soap_builder_t * soap_builder,
    const axutil_env_t * env)
{
    axiom_node_t *om_node = NULL;
    axiom_soap_header_t *soap_header = NULL;
    int status = AXIS2_SUCCESS;
    if (!soap_builder)
    {
        AXIS2_ERROR_SET(env->error, AXIS2_ERROR_INVALID_NULL_PARAM,
                        AXIS2_FAILURE);
        AXIS2_LOG_ERROR(env->log, AXIS2_LOG_SI, "Soap Builder is NULL");
        return AXIS2_FAILURE;
    }
    if (!soap_builder->soap_envelope)
    {
        return AXIS2_FAILURE;
    }
    soap_header =
        axiom_soap_envelope_get_header(soap_builder->soap_envelope, env);

    if (soap_header)
    {
        om_node = axiom_soap_header_get_base_node(soap_header, env);
        if (om_node)
        {
            while (!axiom_node_is_complete(om_node, env))
            {
                status = axiom_soap_builder_next(soap_builder, env);
                if (status == AXIS2_FAILURE)
                    return AXIS2_FAILURE;
            }
            /*HACK: to fix AXIS2C-129 - Samisa */
            /*
               axiom_stax_builder_set_element_level(
               soap_builder->om_builder, env, 1);
             */
        }
    }
    return AXIS2_SUCCESS;
}

AXIS2_EXTERN axis2_status_t AXIS2_CALL
    axiom_soap_builder_set_bool_processing_mandatory_fault_elements(
    axiom_soap_builder_t * soap_builder,
    const axutil_env_t * env,
    axis2_bool_t value)
{
    soap_builder->processing_mandatory_fault_elements = value;
    return AXIS2_SUCCESS;
}

AXIS2_EXTERN axis2_status_t AXIS2_CALL
    axiom_soap_builder_set_processing_detail_elements(
    axiom_soap_builder_t * soap_builder,
    const axutil_env_t * env,
    axis2_bool_t value)
{
    soap_builder->processing_detail_elements = value;
    return AXIS2_SUCCESS;
}

AXIS2_EXTERN axis2_bool_t AXIS2_CALL
    axiom_soap_builder_is_processing_detail_elements(
    axiom_soap_builder_t * soap_builder,
    const axutil_env_t * env)
{
    return soap_builder->processing_detail_elements;
}

AXIS2_EXTERN int AXIS2_CALL
axiom_soap_builder_get_soap_version(
    axiom_soap_builder_t * soap_builder,
    const axutil_env_t * env)
{
    return soap_builder->soap_version;
}

AXIS2_EXTERN axis2_status_t AXIS2_CALL axiom_soap_builder_set_mime_body_parts(
    axiom_soap_builder_t * soap_builder,
    const axutil_env_t * env,
    axutil_hash_t * map)
{
    soap_builder->mime_body_parts = map;
    return AXIS2_SUCCESS;
}

static axis2_status_t axiom_soap_builder_construct_node_for_empty_element(
    axiom_soap_builder_t * soap_builder,
    const axutil_env_t * env,
    axiom_node_t * parent,
    axiom_node_t * om_element_node)
{
    axiom_element_t *parent_ele = NULL;
    axis2_char_t *parent_localname = NULL;

    axiom_element_t *om_element = NULL;
    axis2_char_t *ele_localname = NULL;

    int element_level = 0;
    int status = AXIS2_SUCCESS;

    AXIS2_PARAM_CHECK(env->error, om_element_node, AXIS2_FAILURE);
    if (!soap_builder)
    {
        return AXIS2_FAILURE;
    }
    if (!soap_builder->om_builder)
    {
        return AXIS2_FAILURE;
    }
    element_level =
        axiom_stax_builder_get_element_level(soap_builder->om_builder, env);

    om_element = (axiom_element_t *)
        axiom_node_get_data_element(om_element_node, env);
    if (!om_element)
    {
        return AXIS2_FAILURE;
    }
    ele_localname = axiom_element_get_localname(om_element, env);
    if (!ele_localname)
    {
        return AXIS2_FAILURE;
    }
    if (!parent)
    {
        return AXIS2_FAILURE;
    }
    parent_ele = (axiom_element_t *) axiom_node_get_data_element(parent, env);
    if (!parent_ele)
    {
        return AXIS2_FAILURE;
    }
    parent_localname = axiom_element_get_localname(parent_ele, env);
    if (!parent_localname)
    {
        return AXIS2_FAILURE;
    }
    if (element_level == 1)
    {
        if (axutil_strcmp(ele_localname, AXIOM_SOAP_HEADER_LOCAL_NAME) == 0)
        {

            /** this is the soap header element */
            axiom_soap_header_t *soap_header = NULL;
            if (soap_builder->header_present)
            {
                AXIS2_ERROR_SET(env->error,
                                AXIS2_ERROR_SOAP_BUILDER_MULTIPLE_HEADERS_ENCOUNTERED,
                                AXIS2_FAILURE);
                AXIS2_LOG_ERROR(env->log, AXIS2_LOG_SI,
                    "SOAP builder encountered multiple headers");
                return AXIS2_FAILURE;
            }
            if (soap_builder->body_present)
            {
                AXIS2_ERROR_SET(env->error,
                                AXIS2_ERROR_SOAP_BUILDER_HEADER_BODY_WRONG_ORDER,
                                AXIS2_FAILURE);
                AXIS2_LOG_ERROR(env->log, AXIS2_LOG_SI,
                    "SOAP builder encountered body element first and header next");
                return AXIS2_FAILURE;
            }

            soap_builder->header_present = AXIS2_TRUE;

            soap_header = axiom_soap_header_create(env);
            if (!soap_header)
            {
                return AXIS2_FAILURE;
            }
            axiom_soap_header_set_base_node(soap_header, env, om_element_node);

            axiom_soap_envelope_set_header(soap_builder->soap_envelope, env,
                                           soap_header);

            axiom_soap_header_set_builder(soap_header, env, soap_builder);

            axiom_soap_header_set_soap_version(soap_header, env,
                                               soap_builder->soap_version);

            status =
                axiom_soap_builder_process_namespace_data(soap_builder, env,
                                                          om_element_node,
                                                          AXIS2_TRUE);
            if (status == AXIS2_FAILURE)
            {
                return AXIS2_FAILURE;
            }
        }
        else if (axutil_strcmp(ele_localname, AXIOM_SOAP_BODY_LOCAL_NAME) == 0)
        {

            axiom_soap_body_t *soap_body = NULL;
            if (soap_builder->body_present)
            {
                AXIS2_ERROR_SET(env->error,
                                AXIS2_ERROR_SOAP_BUILDER_MULTIPLE_BODY_ELEMENTS_ENCOUNTERED,
                                AXIS2_FAILURE);
                AXIS2_LOG_ERROR(env->log, AXIS2_LOG_SI,
                    "SOAP builder multiple body elements encountered");
                return AXIS2_FAILURE;

            }
            soap_builder->body_present = AXIS2_TRUE;

            soap_body = axiom_soap_body_create(env);
            if (!soap_body)
            {
                return AXIS2_FAILURE;
            }
            axiom_soap_body_set_base_node(soap_body, env, om_element_node);

            axiom_soap_body_set_builder(soap_body, env, soap_builder);

            axiom_soap_envelope_set_body(soap_builder->soap_envelope, env,
                                         soap_body);

            status =
                axiom_soap_builder_process_namespace_data(soap_builder, env,
                                                          om_element_node,
                                                          AXIS2_TRUE);

            if (status == AXIS2_FAILURE)
            {
                return AXIS2_FAILURE;
            }
        }
        else
        {
            AXIS2_ERROR_SET(env->error,
                            AXIS2_ERROR_SOAP_BUILDER_ENVELOPE_CAN_HAVE_ONLY_HEADER_AND_BODY,
                            AXIS2_FAILURE);
            AXIS2_LOG_ERROR(env->log, AXIS2_LOG_SI,
                "SOAP builder found a child element other than header or "\
                "body in envelope element");
            return AXIS2_FAILURE;
        }
    }
    return status;
}

AXIS2_EXTERN axutil_hash_t *AXIS2_CALL
axiom_soap_builder_get_mime_body_parts(
    axiom_soap_builder_t * builder,
    const axutil_env_t * env)
{
    return builder->mime_body_parts;
}

AXIS2_EXTERN void AXIS2_CALL
axiom_soap_builder_set_mime_parser(
    axiom_soap_builder_t * builder,
    const axutil_env_t * env,
    axiom_mime_parser_t *mime_parser)
{
    builder->mime_parser = mime_parser;
}

AXIS2_EXTERN void AXIS2_CALL
axiom_soap_builder_set_callback_function(
    axiom_soap_builder_t * builder,
    const axutil_env_t * env,
    AXIS2_READ_INPUT_CALLBACK callback)
{
    builder->callback = callback;
}

AXIS2_EXTERN void AXIS2_CALL
axiom_soap_builder_set_callback_ctx(
    axiom_soap_builder_t * builder,
    const axutil_env_t * env,
    void *callback_ctx)
{
    builder->callback_ctx = callback_ctx;
}

AXIS2_EXTERN axis2_status_t AXIS2_CALL 
axiom_soap_builder_create_attachments(
    axiom_soap_builder_t * builder,
    const axutil_env_t * env,
    void *user_param,
    axis2_char_t *callback_name)
{
    axutil_hash_t *attachments_map = NULL;
    axis2_char_t *mime_boundary = NULL;

    if(builder->mime_parser)
    {
        if(builder->callback_ctx)
        {
            mime_boundary = axiom_mime_parser_get_mime_boundary(
                builder->mime_parser, env);

            if(mime_boundary)
            {
                if(callback_name)
                {
                    axiom_mime_parser_set_caching_callback_name(builder->mime_parser, env, 
                        callback_name);
                }
                attachments_map = axiom_mime_parser_parse_for_attachments(
                    builder->mime_parser, env,
                    builder->callback,
                    builder->callback_ctx,
                    mime_boundary,
                    user_param);

                if(attachments_map)
                {
                    builder->mime_body_parts = attachments_map;
                    return AXIS2_SUCCESS; 
                }  
                else
                {
                    return AXIS2_FAILURE;
                }  
            }
            else
            {
                return AXIS2_FAILURE;
            }
        }
        else
        {
            return AXIS2_FAILURE;
        }
    }
    else
    {
        return AXIS2_FAILURE;
    }
}

AXIS2_EXTERN axis2_bool_t AXIS2_CALL
axiom_soap_builder_replace_xop(
    axiom_soap_builder_t * builder,
    const axutil_env_t * env,
    axiom_node_t *om_element_node,
    axiom_element_t *om_element)
{
    axiom_namespace_t *ns = NULL;
    axis2_bool_t is_replaced = AXIS2_FALSE;

    ns = axiom_element_get_namespace(om_element, env, om_element_node);
    if (ns)
    {
        axis2_char_t *uri = axiom_namespace_get_uri(ns, env);
        if (uri)
        {
            if (axutil_strcmp(uri, AXIS2_XOP_NAMESPACE_URI) == 0)
            {
                axutil_qname_t *qname = NULL;
                qname = axutil_qname_create(env, "href", NULL, NULL);
                if (qname)
                {
                    axis2_char_t *id = NULL;
                    id = axiom_element_get_attribute_value(om_element, env,
                                                               qname);
                    if (id)
                    {
                        axis2_char_t *pos = NULL;
                        pos = axutil_strstr(id, "cid:");
                        if (pos)
                        {
                            axiom_data_handler_t *data_handler = NULL;
                            id += 4;

                            if (builder->mime_body_parts)
                            {

                                axis2_char_t *id_decoded = NULL;
                              
                                id_decoded = axutil_strdup(env, id);
                                
                                axutil_url_decode(env, id_decoded, id_decoded);
                                
                                data_handler =
                                    (axiom_data_handler_t *)
                                    axutil_hash_get(builder->
                                                    mime_body_parts,
                                                    (void *) id_decoded,
                                                    AXIS2_HASH_KEY_STRING);
                                if (data_handler)
                                {
                                    axiom_text_t *data_text = NULL;
                                    axiom_node_t *data_om_node = NULL;
                                    axiom_node_t *parent = NULL;

                                    parent = axiom_node_get_parent(om_element_node, 
                                                                env);

                                    /*remove the <xop:Include> element */
                                    axiom_node_free_tree(om_element_node,
                                                         env);

                                    data_text =
                                        axiom_text_create_with_data_handler
                                        (env, parent, data_handler,
                                         &data_om_node);

                                    axiom_text_set_content_id(data_text,
                                                              env, id_decoded);
                                    /*axiom_stax_builder_set_lastnode
                                        (soap_builder->om_builder, env,
                                         parent);*/
                                    is_replaced = AXIS2_TRUE;
                                }
                                if(id_decoded)
                                {
                                    AXIS2_FREE(env->allocator, id_decoded);
                                }
                            }
                        }
                    }
                }
                axutil_qname_free(qname, env);
            }
        }
    }

    return is_replaced;
} 


<|start_filename|>xdocs/api/html/axis2__http__response__writer_8h-source.html<|end_filename|>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html><head><meta http-equiv="Content-Type" content="text/html;charset=UTF-8">
<title>Axis2/C: axis2_http_response_writer.h Source File</title>
<link href="doxygen.css" rel="stylesheet" type="text/css">
<link href="tabs.css" rel="stylesheet" type="text/css">
</head><body>
<!-- Generated by Doxygen 1.5.3 -->
<div class="tabs">
  <ul>
    <li><a href="index.html"><span>Main&nbsp;Page</span></a></li>
    <li><a href="modules.html"><span>Modules</span></a></li>
    <li><a href="annotated.html"><span>Classes</span></a></li>
    <li class="current"><a href="files.html"><span>Files</span></a></li>
    <li><a href="dirs.html"><span>Directories</span></a></li>
    <li><a href="pages.html"><span>Related&nbsp;Pages</span></a></li>
    <li><a href="examples.html"><span>Examples</span></a></li>
    <li>
      <form action="search.php" method="get">
        <table cellspacing="0" cellpadding="0" border="0">
          <tr>
            <td><label>&nbsp;<u>S</u>earch&nbsp;for&nbsp;</label></td>
            <td><input type="text" name="query" value="" size="20" accesskey="s"/></td>
          </tr>
        </table>
      </form>
    </li>
  </ul>
</div>
<div class="nav">
<a class="el" href="dir_f60961de8e5edc3b2658ef023e959e45.html">deploy</a>&nbsp;&raquo&nbsp;<a class="el" href="dir_6b4e91e54b7316b376882a6402adbf44.html">include</a>&nbsp;&raquo&nbsp;<a class="el" href="dir_df3a7695d5a9e696f30b948b566829e7.html">axis2-1.6.0</a></div>
<h1>axis2_http_response_writer.h</h1><a href="axis2__http__response__writer_8h.html">Go to the documentation of this file.</a><div class="fragment"><pre class="fragment"><a name="l00001"></a>00001 
<a name="l00002"></a>00002 <span class="comment">/*</span>
<a name="l00003"></a>00003 <span class="comment">* Licensed to the Apache Software Foundation (ASF) under one or more</span>
<a name="l00004"></a>00004 <span class="comment">* contributor license agreements.  See the NOTICE file distributed with</span>
<a name="l00005"></a>00005 <span class="comment">* this work for additional information regarding copyright ownership.</span>
<a name="l00006"></a>00006 <span class="comment">* The ASF licenses this file to You under the Apache License, Version 2.0</span>
<a name="l00007"></a>00007 <span class="comment">* (the "License"); you may not use this file except in compliance with</span>
<a name="l00008"></a>00008 <span class="comment">* the License.  You may obtain a copy of the License at</span>
<a name="l00009"></a>00009 <span class="comment">*</span>
<a name="l00010"></a>00010 <span class="comment">*      http://www.apache.org/licenses/LICENSE-2.0</span>
<a name="l00011"></a>00011 <span class="comment">*</span>
<a name="l00012"></a>00012 <span class="comment">* Unless required by applicable law or agreed to in writing, software</span>
<a name="l00013"></a>00013 <span class="comment">* distributed under the License is distributed on an "AS IS" BASIS,</span>
<a name="l00014"></a>00014 <span class="comment">* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.</span>
<a name="l00015"></a>00015 <span class="comment">* See the License for the specific language governing permissions and</span>
<a name="l00016"></a>00016 <span class="comment">* limitations under the License.</span>
<a name="l00017"></a>00017 <span class="comment">*/</span>
<a name="l00018"></a>00018 
<a name="l00019"></a>00019 <span class="preprocessor">#ifndef AXIS2_HTTP_RESPONSE_WRITER_H</span>
<a name="l00020"></a>00020 <span class="preprocessor"></span><span class="preprocessor">#define AXIS2_HTTP_RESPONSE_WRITER_H</span>
<a name="l00021"></a>00021 <span class="preprocessor"></span>
<a name="l00033"></a>00033 <span class="preprocessor">#include &lt;axis2_const.h&gt;</span>
<a name="l00034"></a>00034 <span class="preprocessor">#include &lt;<a class="code" href="axis2__defines_8h.html" title="Useful definitions, which may have platform concerns.">axis2_defines.h</a>&gt;</span>
<a name="l00035"></a>00035 <span class="preprocessor">#include &lt;<a class="code" href="axutil__env_8h.html" title="Axis2 environment that acts as a container for error, log and memory allocator routines...">axutil_env.h</a>&gt;</span>
<a name="l00036"></a>00036 <span class="preprocessor">#include &lt;axutil_stream.h&gt;</span>
<a name="l00037"></a>00037 
<a name="l00038"></a>00038 <span class="preprocessor">#ifdef __cplusplus</span>
<a name="l00039"></a>00039 <span class="preprocessor"></span><span class="keyword">extern</span> <span class="stringliteral">"C"</span>
<a name="l00040"></a>00040 {
<a name="l00041"></a>00041 <span class="preprocessor">#endif</span>
<a name="l00042"></a>00042 <span class="preprocessor"></span>
<a name="l00044"></a><a class="code" href="group__axis2__http__response__writer.html#g2259f3ec5abf54528a6b9797e8188771">00044</a>     <span class="keyword">typedef</span> <span class="keyword">struct </span>axis2_http_response_writer <a class="code" href="group__axis2__http__response__writer.html#g2259f3ec5abf54528a6b9797e8188771">axis2_http_response_writer_t</a>;
<a name="l00045"></a>00045 
<a name="l00050"></a>00050     AXIS2_EXTERN axis2_char_t *AXIS2_CALL
<a name="l00051"></a>00051 
<a name="l00052"></a>00052     <a class="code" href="group__axis2__http__response__writer.html#g4d45835e7866ec6076b41f000c5b3bee">axis2_http_response_writer_get_encoding</a>(
<a name="l00053"></a>00053         <span class="keyword">const</span> <a class="code" href="group__axis2__http__response__writer.html#g2259f3ec5abf54528a6b9797e8188771">axis2_http_response_writer_t</a> * response_writer,
<a name="l00054"></a>00054         <span class="keyword">const</span> <a class="code" href="structaxutil__env.html" title="Axis2 Environment struct.">axutil_env_t</a> * env);
<a name="l00055"></a>00055 
<a name="l00061"></a>00061     AXIS2_EXTERN axis2_status_t AXIS2_CALL
<a name="l00062"></a>00062     <a class="code" href="group__axis2__http__response__writer.html#ge3d2d72f0450b556f3a4fe0cfd744881">axis2_http_response_writer_close</a>(
<a name="l00063"></a>00063         <a class="code" href="group__axis2__http__response__writer.html#g2259f3ec5abf54528a6b9797e8188771">axis2_http_response_writer_t</a> * response_writer,
<a name="l00064"></a>00064         <span class="keyword">const</span> <a class="code" href="structaxutil__env.html" title="Axis2 Environment struct.">axutil_env_t</a> * env);
<a name="l00065"></a>00065 
<a name="l00071"></a>00071     AXIS2_EXTERN axis2_status_t AXIS2_CALL
<a name="l00072"></a>00072     <a class="code" href="group__axis2__http__response__writer.html#gb1a6a1b2186ba65ec6bf6d94ee0d6385">axis2_http_response_writer_flush</a>(
<a name="l00073"></a>00073         <a class="code" href="group__axis2__http__response__writer.html#g2259f3ec5abf54528a6b9797e8188771">axis2_http_response_writer_t</a> * response_writer,
<a name="l00074"></a>00074         <span class="keyword">const</span> <a class="code" href="structaxutil__env.html" title="Axis2 Environment struct.">axutil_env_t</a> * env);
<a name="l00075"></a>00075 
<a name="l00082"></a>00082     AXIS2_EXTERN axis2_status_t AXIS2_CALL
<a name="l00083"></a>00083 
<a name="l00084"></a>00084     <a class="code" href="group__axis2__http__response__writer.html#g9368c11f97efadb018f9319d374fcf18">axis2_http_response_writer_write_char</a>(
<a name="l00085"></a>00085         <a class="code" href="group__axis2__http__response__writer.html#g2259f3ec5abf54528a6b9797e8188771">axis2_http_response_writer_t</a> * response_writer,
<a name="l00086"></a>00086         <span class="keyword">const</span> <a class="code" href="structaxutil__env.html" title="Axis2 Environment struct.">axutil_env_t</a> * env,
<a name="l00087"></a>00087         <span class="keywordtype">char</span> c);
<a name="l00088"></a>00088 
<a name="l00097"></a>00097     AXIS2_EXTERN axis2_status_t AXIS2_CALL
<a name="l00098"></a>00098 
<a name="l00099"></a>00099     <a class="code" href="group__axis2__http__response__writer.html#g6d27ae339974794ede82a7c9e1270c22">axis2_http_response_writer_write_buf</a>(
<a name="l00100"></a>00100         <a class="code" href="group__axis2__http__response__writer.html#g2259f3ec5abf54528a6b9797e8188771">axis2_http_response_writer_t</a> * response_writer,
<a name="l00101"></a>00101         <span class="keyword">const</span> <a class="code" href="structaxutil__env.html" title="Axis2 Environment struct.">axutil_env_t</a> * env,
<a name="l00102"></a>00102         <span class="keywordtype">char</span> *buf,
<a name="l00103"></a>00103         <span class="keywordtype">int</span> offset,
<a name="l00104"></a>00104         axis2_ssize_t len);
<a name="l00105"></a>00105 
<a name="l00112"></a>00112     AXIS2_EXTERN axis2_status_t AXIS2_CALL
<a name="l00113"></a>00113 
<a name="l00114"></a>00114     <a class="code" href="group__axis2__http__response__writer.html#g2fcb29f5c9d3c09b08267641f6b78178">axis2_http_response_writer_print_str</a>(
<a name="l00115"></a>00115         <a class="code" href="group__axis2__http__response__writer.html#g2259f3ec5abf54528a6b9797e8188771">axis2_http_response_writer_t</a> * response_writer,
<a name="l00116"></a>00116         <span class="keyword">const</span> <a class="code" href="structaxutil__env.html" title="Axis2 Environment struct.">axutil_env_t</a> * env,
<a name="l00117"></a>00117         <span class="keyword">const</span> <span class="keywordtype">char</span> *str);
<a name="l00118"></a>00118 
<a name="l00125"></a>00125     AXIS2_EXTERN axis2_status_t AXIS2_CALL
<a name="l00126"></a>00126 
<a name="l00127"></a>00127     <a class="code" href="group__axis2__http__response__writer.html#gbeed0ef80c00b522dd1372901ecca873">axis2_http_response_writer_print_int</a>(
<a name="l00128"></a>00128         <a class="code" href="group__axis2__http__response__writer.html#g2259f3ec5abf54528a6b9797e8188771">axis2_http_response_writer_t</a> * response_writer,
<a name="l00129"></a>00129         <span class="keyword">const</span> <a class="code" href="structaxutil__env.html" title="Axis2 Environment struct.">axutil_env_t</a> * env,
<a name="l00130"></a>00130         <span class="keywordtype">int</span> i);
<a name="l00131"></a>00131 
<a name="l00138"></a>00138     AXIS2_EXTERN axis2_status_t AXIS2_CALL
<a name="l00139"></a>00139 
<a name="l00140"></a>00140     <a class="code" href="group__axis2__http__response__writer.html#g12c2594faab7f36ac670b500b5ca9a48">axis2_http_response_writer_println_str</a>(
<a name="l00141"></a>00141         <a class="code" href="group__axis2__http__response__writer.html#g2259f3ec5abf54528a6b9797e8188771">axis2_http_response_writer_t</a> * response_writer,
<a name="l00142"></a>00142         <span class="keyword">const</span> <a class="code" href="structaxutil__env.html" title="Axis2 Environment struct.">axutil_env_t</a> * env,
<a name="l00143"></a>00143         <span class="keyword">const</span> <span class="keywordtype">char</span> *str);
<a name="l00144"></a>00144 
<a name="l00150"></a>00150     AXIS2_EXTERN axis2_status_t AXIS2_CALL
<a name="l00151"></a>00151 
<a name="l00152"></a>00152     <a class="code" href="group__axis2__http__response__writer.html#g16200523d3e8833f40e37d80767722bb">axis2_http_response_writer_println</a>(
<a name="l00153"></a>00153         <a class="code" href="group__axis2__http__response__writer.html#g2259f3ec5abf54528a6b9797e8188771">axis2_http_response_writer_t</a> * response_writer,
<a name="l00154"></a>00154         <span class="keyword">const</span> <a class="code" href="structaxutil__env.html" title="Axis2 Environment struct.">axutil_env_t</a> * env);
<a name="l00155"></a>00155 
<a name="l00161"></a>00161     AXIS2_EXTERN <span class="keywordtype">void</span> AXIS2_CALL
<a name="l00162"></a>00162     <a class="code" href="group__axis2__http__response__writer.html#g4aa971c45559a87946fd94f348b7d4d7">axis2_http_response_writer_free</a>(
<a name="l00163"></a>00163         <a class="code" href="group__axis2__http__response__writer.html#g2259f3ec5abf54528a6b9797e8188771">axis2_http_response_writer_t</a> * response_writer,
<a name="l00164"></a>00164         <span class="keyword">const</span> <a class="code" href="structaxutil__env.html" title="Axis2 Environment struct.">axutil_env_t</a> * env);
<a name="l00165"></a>00165 
<a name="l00170"></a>00170     AXIS2_EXTERN <a class="code" href="group__axis2__http__response__writer.html#g2259f3ec5abf54528a6b9797e8188771">axis2_http_response_writer_t</a> *AXIS2_CALL
<a name="l00171"></a>00171 
<a name="l00172"></a>00172     <a class="code" href="group__axis2__http__response__writer.html#g115bd88c5873671ae1d9254c3d76fd62">axis2_http_response_writer_create</a>(
<a name="l00173"></a>00173         <span class="keyword">const</span> <a class="code" href="structaxutil__env.html" title="Axis2 Environment struct.">axutil_env_t</a> * env,
<a name="l00174"></a>00174         axutil_stream_t * stream);
<a name="l00175"></a>00175 
<a name="l00181"></a>00181     AXIS2_EXTERN <a class="code" href="group__axis2__http__response__writer.html#g2259f3ec5abf54528a6b9797e8188771">axis2_http_response_writer_t</a> *AXIS2_CALL
<a name="l00182"></a>00182 
<a name="l00183"></a>00183     <a class="code" href="group__axis2__http__response__writer.html#gfa1431f2e3ffb7a707769039b0d2407b">axis2_http_response_writer_create_with_encoding</a>(
<a name="l00184"></a>00184         <span class="keyword">const</span> <a class="code" href="structaxutil__env.html" title="Axis2 Environment struct.">axutil_env_t</a> * env,
<a name="l00185"></a>00185         axutil_stream_t * stream,
<a name="l00186"></a>00186         <span class="keyword">const</span> axis2_char_t * encoding);
<a name="l00187"></a>00187 
<a name="l00189"></a>00189 <span class="preprocessor">#ifdef __cplusplus</span>
<a name="l00190"></a>00190 <span class="preprocessor"></span>}
<a name="l00191"></a>00191 <span class="preprocessor">#endif</span>
<a name="l00192"></a>00192 <span class="preprocessor"></span>
<a name="l00193"></a>00193 <span class="preprocessor">#endif                          </span><span class="comment">/* AXIS2_HTTP_RESPONSE_WRITER_H */</span>
</pre></div><hr size="1"><address style="text-align: right;"><small>Generated on Fri Apr 17 11:49:42 2009 for Axis2/C by&nbsp;
<a href="http://www.doxygen.org/index.html">
<img src="doxygen.png" alt="doxygen" align="middle" border="0"></a> 1.5.3 </small></address>
</body>
</html>


<|start_filename|>xdocs/api/html/group__axis2__callback.html<|end_filename|>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html><head><meta http-equiv="Content-Type" content="text/html;charset=UTF-8">
<title>Axis2/C: callback</title>
<link href="doxygen.css" rel="stylesheet" type="text/css">
<link href="tabs.css" rel="stylesheet" type="text/css">
</head><body>
<!-- Generated by Doxygen 1.5.3 -->
<div class="tabs">
  <ul>
    <li><a href="index.html"><span>Main&nbsp;Page</span></a></li>
    <li><a href="modules.html"><span>Modules</span></a></li>
    <li><a href="annotated.html"><span>Classes</span></a></li>
    <li><a href="files.html"><span>Files</span></a></li>
    <li><a href="dirs.html"><span>Directories</span></a></li>
    <li><a href="pages.html"><span>Related&nbsp;Pages</span></a></li>
    <li><a href="examples.html"><span>Examples</span></a></li>
    <li>
      <form action="search.php" method="get">
        <table cellspacing="0" cellpadding="0" border="0">
          <tr>
            <td><label>&nbsp;<u>S</u>earch&nbsp;for&nbsp;</label></td>
            <td><input type="text" name="query" value="" size="20" accesskey="s"/></td>
          </tr>
        </table>
      </form>
    </li>
  </ul>
</div>
<h1>callback<br>
<small>
[<a class="el" href="group__axis2__client__api.html">client API</a>]</small>
</h1><table border="0" cellpadding="0" cellspacing="0">
<tr><td></td></tr>
<tr><td colspan="2"><br><h2>Files</h2></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top">file &nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="axis2__callback_8h.html">axis2_callback.h</a></td></tr>

<tr><td colspan="2"><br><h2>Typedefs</h2></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top">typedef struct <br>
axis2_callback&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__axis2__callback.html#g0d855254802281de06d16c71627226b5">axis2_callback_t</a></td></tr>

<tr><td class="memItemLeft" nowrap align="right" valign="top">typedef axis2_status_t&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__axis2__callback.html#g24412ea84a2372e48f030ff7fa2f57ce">axis2_on_complete_func_ptr</a> (<a class="el" href="group__axis2__callback.html#g0d855254802281de06d16c71627226b5">axis2_callback_t</a> *, const <a class="el" href="structaxutil__env.html">axutil_env_t</a> *)</td></tr>

<tr><td class="memItemLeft" nowrap align="right" valign="top">typedef axis2_status_t&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__axis2__callback.html#g195846304fc14b2bd2a55b19b04d220f">axis2_on_error_func_ptr</a> (<a class="el" href="group__axis2__callback.html#g0d855254802281de06d16c71627226b5">axis2_callback_t</a> *, const <a class="el" href="structaxutil__env.html">axutil_env_t</a> *, int)</td></tr>

<tr><td colspan="2"><br><h2>Functions</h2></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top">AXIS2_EXTERN <br>
axis2_status_t&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__axis2__callback.html#g3cec591f0caffc39e747b02ba29060ba">axis2_callback_invoke_on_complete</a> (<a class="el" href="group__axis2__callback.html#g0d855254802281de06d16c71627226b5">axis2_callback_t</a> *callback, const <a class="el" href="structaxutil__env.html">axutil_env_t</a> *env, <a class="el" href="group__axis2__async__result.html#g7f79cfe086dfb98806cc3c0c3b408c3c">axis2_async_result_t</a> *result)</td></tr>

<tr><td class="memItemLeft" nowrap align="right" valign="top">AXIS2_EXTERN <br>
axis2_status_t&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__axis2__callback.html#gde78d3a3af4710cb489ae4a6e27a9dcf">axis2_callback_report_error</a> (<a class="el" href="group__axis2__callback.html#g0d855254802281de06d16c71627226b5">axis2_callback_t</a> *callback, const <a class="el" href="structaxutil__env.html">axutil_env_t</a> *env, const int exception)</td></tr>

<tr><td class="memItemLeft" nowrap align="right" valign="top">AXIS2_EXTERN axis2_bool_t&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__axis2__callback.html#g8b14532e11dc444cd2ad1fbf5fbe3d0d">axis2_callback_get_complete</a> (const <a class="el" href="group__axis2__callback.html#g0d855254802281de06d16c71627226b5">axis2_callback_t</a> *callback, const <a class="el" href="structaxutil__env.html">axutil_env_t</a> *env)</td></tr>

<tr><td class="memItemLeft" nowrap align="right" valign="top">AXIS2_EXTERN <br>
axis2_status_t&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__axis2__callback.html#g67f076fe17ac0e95dbea3ce7ecd7111e">axis2_callback_set_complete</a> (<a class="el" href="group__axis2__callback.html#g0d855254802281de06d16c71627226b5">axis2_callback_t</a> *callback, const <a class="el" href="structaxutil__env.html">axutil_env_t</a> *env, const axis2_bool_t complete)</td></tr>

<tr><td class="memItemLeft" nowrap align="right" valign="top">AXIS2_EXTERN <br>
axiom_soap_envelope_t *&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__axis2__callback.html#ga3509e9b59969fe43e4930cdd8a2bd9a">axis2_callback_get_envelope</a> (const <a class="el" href="group__axis2__callback.html#g0d855254802281de06d16c71627226b5">axis2_callback_t</a> *callback, const <a class="el" href="structaxutil__env.html">axutil_env_t</a> *env)</td></tr>

<tr><td class="memItemLeft" nowrap align="right" valign="top">AXIS2_EXTERN <br>
axis2_status_t&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__axis2__callback.html#g5dc5998d5db574ef86f05d29fa5cd95d">axis2_callback_set_envelope</a> (<a class="el" href="group__axis2__callback.html#g0d855254802281de06d16c71627226b5">axis2_callback_t</a> *callback, const <a class="el" href="structaxutil__env.html">axutil_env_t</a> *env, axiom_soap_envelope_t *envelope)</td></tr>

<tr><td class="memItemLeft" nowrap align="right" valign="top">AXIS2_EXTERN int&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__axis2__callback.html#gb62d7c70252cad340b35f22e03a3f80f">axis2_callback_get_error</a> (const <a class="el" href="group__axis2__callback.html#g0d855254802281de06d16c71627226b5">axis2_callback_t</a> *callback, const <a class="el" href="structaxutil__env.html">axutil_env_t</a> *env)</td></tr>

<tr><td class="memItemLeft" nowrap align="right" valign="top">AXIS2_EXTERN <br>
axis2_status_t&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__axis2__callback.html#ge07a62751c3bdbbab934632926e2eb5c">axis2_callback_set_error</a> (<a class="el" href="group__axis2__callback.html#g0d855254802281de06d16c71627226b5">axis2_callback_t</a> *callback, const <a class="el" href="structaxutil__env.html">axutil_env_t</a> *env, const int error)</td></tr>

<tr><td class="memItemLeft" nowrap align="right" valign="top">AXIS2_EXTERN <br>
axis2_status_t&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__axis2__callback.html#gc336244380c30c63f102efbea2204aee">axis2_callback_set_data</a> (<a class="el" href="group__axis2__callback.html#g0d855254802281de06d16c71627226b5">axis2_callback_t</a> *callback, void *data)</td></tr>

<tr><td class="memItemLeft" nowrap align="right" valign="top">AXIS2_EXTERN void *&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__axis2__callback.html#g8c45ec7f00c453b201c3f11c94c0bec4">axis2_callback_get_data</a> (const <a class="el" href="group__axis2__callback.html#g0d855254802281de06d16c71627226b5">axis2_callback_t</a> *callback)</td></tr>

<tr><td class="memItemLeft" nowrap align="right" valign="top">AXIS2_EXTERN void&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__axis2__callback.html#g10b6d858cf29a9426a2b0c7a9690ab15">axis2_callback_set_on_complete</a> (<a class="el" href="group__axis2__callback.html#g0d855254802281de06d16c71627226b5">axis2_callback_t</a> *callback, <a class="el" href="group__axis2__callback.html#g24412ea84a2372e48f030ff7fa2f57ce">axis2_on_complete_func_ptr</a> f)</td></tr>

<tr><td class="memItemLeft" nowrap align="right" valign="top">AXIS2_EXTERN void&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__axis2__callback.html#ga394bc5fddfd86a25c29930b08d39628">axis2_callback_set_on_error</a> (<a class="el" href="group__axis2__callback.html#g0d855254802281de06d16c71627226b5">axis2_callback_t</a> *callback, <a class="el" href="group__axis2__callback.html#g195846304fc14b2bd2a55b19b04d220f">axis2_on_error_func_ptr</a> f)</td></tr>

<tr><td class="memItemLeft" nowrap align="right" valign="top">AXIS2_EXTERN void&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__axis2__callback.html#g8aff2c00d30222f8cd4a3b68e30dc449">axis2_callback_free</a> (<a class="el" href="group__axis2__callback.html#g0d855254802281de06d16c71627226b5">axis2_callback_t</a> *callback, const <a class="el" href="structaxutil__env.html">axutil_env_t</a> *env)</td></tr>

<tr><td class="memItemLeft" nowrap align="right" valign="top">AXIS2_EXTERN <br>
<a class="el" href="group__axis2__callback.html#g0d855254802281de06d16c71627226b5">axis2_callback_t</a> *&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__axis2__callback.html#g9fea0849294631c64f627f509afbe4fd">axis2_callback_create</a> (const <a class="el" href="structaxutil__env.html">axutil_env_t</a> *env)</td></tr>

</table>
<hr><a name="_details"></a><h2>Detailed Description</h2>
callback represents the callback mechanisms to be used in case of asynchronous invocations. It holds the complete status of the invocation, the resulting SOAP envelope and also callback specific data. One can define a function to be called on complete of the callback as well as a function to be called on error. <hr><h2>Typedef Documentation</h2>
<a class="anchor" name="g0d855254802281de06d16c71627226b5"></a><!-- doxytag: member="axis2_callback.h::axis2_callback_t" ref="g0d855254802281de06d16c71627226b5" args="" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">typedef struct axis2_callback <a class="el" href="group__axis2__callback.html#g0d855254802281de06d16c71627226b5">axis2_callback_t</a>          </td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
Type name for axis2_callback 
</div>
</div><p>
<a class="anchor" name="g24412ea84a2372e48f030ff7fa2f57ce"></a><!-- doxytag: member="axis2_callback.h::axis2_on_complete_func_ptr" ref="g24412ea84a2372e48f030ff7fa2f57ce" args="(axis2_callback_t *, const axutil_env_t *)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">typedef axis2_status_t <a class="el" href="group__axis2__callback.html#g24412ea84a2372e48f030ff7fa2f57ce">axis2_on_complete_func_ptr</a>(<a class="el" href="group__axis2__callback.html#g0d855254802281de06d16c71627226b5">axis2_callback_t</a> *, const <a class="el" href="structaxutil__env.html">axutil_env_t</a> *)          </td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
Type name for function pointer to be called on complete of callback 
</div>
</div><p>
<a class="anchor" name="g195846304fc14b2bd2a55b19b04d220f"></a><!-- doxytag: member="axis2_callback.h::axis2_on_error_func_ptr" ref="g195846304fc14b2bd2a55b19b04d220f" args="(axis2_callback_t *, const axutil_env_t *, int)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">typedef axis2_status_t <a class="el" href="group__axis2__callback.html#g195846304fc14b2bd2a55b19b04d220f">axis2_on_error_func_ptr</a>(<a class="el" href="group__axis2__callback.html#g0d855254802281de06d16c71627226b5">axis2_callback_t</a> *, const <a class="el" href="structaxutil__env.html">axutil_env_t</a> *, int)          </td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
Type name for function pointer to be called on error of callback 
</div>
</div><p>
<hr><h2>Function Documentation</h2>
<a class="anchor" name="g9fea0849294631c64f627f509afbe4fd"></a><!-- doxytag: member="axis2_callback.h::axis2_callback_create" ref="g9fea0849294631c64f627f509afbe4fd" args="(const axutil_env_t *env)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">AXIS2_EXTERN <a class="el" href="group__axis2__callback.html#g0d855254802281de06d16c71627226b5">axis2_callback_t</a>* axis2_callback_create           </td>
          <td>(</td>
          <td class="paramtype">const <a class="el" href="structaxutil__env.html">axutil_env_t</a> *&nbsp;</td>
          <td class="paramname"> <em>env</em>          </td>
          <td>&nbsp;)&nbsp;</td>
          <td width="100%"></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
Creates a callback struct. <dl compact><dt><b>Parameters:</b></dt><dd>
  <table border="0" cellspacing="2" cellpadding="0">
    <tr><td valign="top"></td><td valign="top"><em>env</em>&nbsp;</td><td>pointer to environment struct </td></tr>
  </table>
</dl>
<dl class="return" compact><dt><b>Returns:</b></dt><dd>pointer to newly created callback struct </dd></dl>

</div>
</div><p>
<a class="anchor" name="g8aff2c00d30222f8cd4a3b68e30dc449"></a><!-- doxytag: member="axis2_callback.h::axis2_callback_free" ref="g8aff2c00d30222f8cd4a3b68e30dc449" args="(axis2_callback_t *callback, const axutil_env_t *env)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">AXIS2_EXTERN void axis2_callback_free           </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="group__axis2__callback.html#g0d855254802281de06d16c71627226b5">axis2_callback_t</a> *&nbsp;</td>
          <td class="paramname"> <em>callback</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const <a class="el" href="structaxutil__env.html">axutil_env_t</a> *&nbsp;</td>
          <td class="paramname"> <em>env</em></td><td>&nbsp;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td><td width="100%"></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
Frees callback struct. <dl compact><dt><b>Parameters:</b></dt><dd>
  <table border="0" cellspacing="2" cellpadding="0">
    <tr><td valign="top"></td><td valign="top"><em>callback</em>&nbsp;</td><td>pointer to callback struct </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>env</em>&nbsp;</td><td>pointer to environment struct </td></tr>
  </table>
</dl>
<dl class="return" compact><dt><b>Returns:</b></dt><dd>AXIS2_SUCCESS on success, else AXIS2_FAILURE </dd></dl>

</div>
</div><p>
<a class="anchor" name="g8b14532e11dc444cd2ad1fbf5fbe3d0d"></a><!-- doxytag: member="axis2_callback.h::axis2_callback_get_complete" ref="g8b14532e11dc444cd2ad1fbf5fbe3d0d" args="(const axis2_callback_t *callback, const axutil_env_t *env)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">AXIS2_EXTERN axis2_bool_t axis2_callback_get_complete           </td>
          <td>(</td>
          <td class="paramtype">const <a class="el" href="group__axis2__callback.html#g0d855254802281de06d16c71627226b5">axis2_callback_t</a> *&nbsp;</td>
          <td class="paramname"> <em>callback</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const <a class="el" href="structaxutil__env.html">axutil_env_t</a> *&nbsp;</td>
          <td class="paramname"> <em>env</em></td><td>&nbsp;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td><td width="100%"></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
Gets the complete status for the callback. This method is useful for polling (busy waiting). e.g. <code> <pre>
          while(!AXIS2_CALL
 BACK_GET_COMPLETE(callback, env)
          {
             sleep(10);
          }
 do whatever you need here 
      </pre> </code> <dl compact><dt><b>Parameters:</b></dt><dd>
  <table border="0" cellspacing="2" cellpadding="0">
    <tr><td valign="top"></td><td valign="top"><em>callback</em>&nbsp;</td><td>pointer to callback struct </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>env</em>&nbsp;</td><td>pointer to environment struct </td></tr>
  </table>
</dl>
<dl class="return" compact><dt><b>Returns:</b></dt><dd>AXIS2_TRUE if callback is complete, else AXIS2_FALSE </dd></dl>

</div>
</div><p>
<a class="anchor" name="g8c45ec7f00c453b201c3f11c94c0bec4"></a><!-- doxytag: member="axis2_callback.h::axis2_callback_get_data" ref="g8c45ec7f00c453b201c3f11c94c0bec4" args="(const axis2_callback_t *callback)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">AXIS2_EXTERN void* axis2_callback_get_data           </td>
          <td>(</td>
          <td class="paramtype">const <a class="el" href="group__axis2__callback.html#g0d855254802281de06d16c71627226b5">axis2_callback_t</a> *&nbsp;</td>
          <td class="paramname"> <em>callback</em>          </td>
          <td>&nbsp;)&nbsp;</td>
          <td width="100%"></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
Gets the callback data. <dl compact><dt><b>Parameters:</b></dt><dd>
  <table border="0" cellspacing="2" cellpadding="0">
    <tr><td valign="top"></td><td valign="top"><em>callback</em>&nbsp;</td><td>pointer to callback struct </td></tr>
  </table>
</dl>
<dl class="return" compact><dt><b>Returns:</b></dt><dd>pointer to callback data </dd></dl>

</div>
</div><p>
<a class="anchor" name="ga3509e9b59969fe43e4930cdd8a2bd9a"></a><!-- doxytag: member="axis2_callback.h::axis2_callback_get_envelope" ref="ga3509e9b59969fe43e4930cdd8a2bd9a" args="(const axis2_callback_t *callback, const axutil_env_t *env)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">AXIS2_EXTERN axiom_soap_envelope_t* axis2_callback_get_envelope           </td>
          <td>(</td>
          <td class="paramtype">const <a class="el" href="group__axis2__callback.html#g0d855254802281de06d16c71627226b5">axis2_callback_t</a> *&nbsp;</td>
          <td class="paramname"> <em>callback</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const <a class="el" href="structaxutil__env.html">axutil_env_t</a> *&nbsp;</td>
          <td class="paramname"> <em>env</em></td><td>&nbsp;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td><td width="100%"></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
Gets the resulting SOAP envelope. <dl compact><dt><b>Parameters:</b></dt><dd>
  <table border="0" cellspacing="2" cellpadding="0">
    <tr><td valign="top"></td><td valign="top"><em>callback</em>&nbsp;</td><td>pointer to callback struct </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>env</em>&nbsp;</td><td>pointer to environment struct </td></tr>
  </table>
</dl>
<dl class="return" compact><dt><b>Returns:</b></dt><dd>result SOAP envelope if present, else NULL </dd></dl>

</div>
</div><p>
<a class="anchor" name="gb62d7c70252cad340b35f22e03a3f80f"></a><!-- doxytag: member="axis2_callback.h::axis2_callback_get_error" ref="gb62d7c70252cad340b35f22e03a3f80f" args="(const axis2_callback_t *callback, const axutil_env_t *env)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">AXIS2_EXTERN int axis2_callback_get_error           </td>
          <td>(</td>
          <td class="paramtype">const <a class="el" href="group__axis2__callback.html#g0d855254802281de06d16c71627226b5">axis2_callback_t</a> *&nbsp;</td>
          <td class="paramname"> <em>callback</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const <a class="el" href="structaxutil__env.html">axutil_env_t</a> *&nbsp;</td>
          <td class="paramname"> <em>env</em></td><td>&nbsp;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td><td width="100%"></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
Gets error code representing the error. <dl compact><dt><b>Parameters:</b></dt><dd>
  <table border="0" cellspacing="2" cellpadding="0">
    <tr><td valign="top"></td><td valign="top"><em>callback</em>&nbsp;</td><td>pointer to callback struct </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>env</em>&nbsp;</td><td>pointer to environment struct </td></tr>
  </table>
</dl>
<dl class="return" compact><dt><b>Returns:</b></dt><dd>error code representing the error </dd></dl>

</div>
</div><p>
<a class="anchor" name="g3cec591f0caffc39e747b02ba29060ba"></a><!-- doxytag: member="axis2_callback.h::axis2_callback_invoke_on_complete" ref="g3cec591f0caffc39e747b02ba29060ba" args="(axis2_callback_t *callback, const axutil_env_t *env, axis2_async_result_t *result)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">AXIS2_EXTERN axis2_status_t axis2_callback_invoke_on_complete           </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="group__axis2__callback.html#g0d855254802281de06d16c71627226b5">axis2_callback_t</a> *&nbsp;</td>
          <td class="paramname"> <em>callback</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const <a class="el" href="structaxutil__env.html">axutil_env_t</a> *&nbsp;</td>
          <td class="paramname"> <em>env</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype"><a class="el" href="group__axis2__async__result.html#g7f79cfe086dfb98806cc3c0c3b408c3c">axis2_async_result_t</a> *&nbsp;</td>
          <td class="paramname"> <em>result</em></td><td>&nbsp;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td><td width="100%"></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
This function is called once the asynchronous operation is successfully completed and the result is available. <dl compact><dt><b>Parameters:</b></dt><dd>
  <table border="0" cellspacing="2" cellpadding="0">
    <tr><td valign="top"></td><td valign="top"><em>callback</em>&nbsp;</td><td>pointer to callback struct </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>env</em>&nbsp;</td><td>pointer to environment struct </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>result</em>&nbsp;</td><td>pointer to async result </td></tr>
  </table>
</dl>
<dl class="return" compact><dt><b>Returns:</b></dt><dd>AXIS2_SUCCESS on success, else AXIS2_FAILURE </dd></dl>

</div>
</div><p>
<a class="anchor" name="gde78d3a3af4710cb489ae4a6e27a9dcf"></a><!-- doxytag: member="axis2_callback.h::axis2_callback_report_error" ref="gde78d3a3af4710cb489ae4a6e27a9dcf" args="(axis2_callback_t *callback, const axutil_env_t *env, const int exception)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">AXIS2_EXTERN axis2_status_t axis2_callback_report_error           </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="group__axis2__callback.html#g0d855254802281de06d16c71627226b5">axis2_callback_t</a> *&nbsp;</td>
          <td class="paramname"> <em>callback</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const <a class="el" href="structaxutil__env.html">axutil_env_t</a> *&nbsp;</td>
          <td class="paramname"> <em>env</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const int&nbsp;</td>
          <td class="paramname"> <em>exception</em></td><td>&nbsp;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td><td width="100%"></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
This function is called once the asynchronous operation fails and the failure code returns. <dl compact><dt><b>Parameters:</b></dt><dd>
  <table border="0" cellspacing="2" cellpadding="0">
    <tr><td valign="top"></td><td valign="top"><em>callback</em>&nbsp;</td><td>pointer to callback struct </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>env</em>&nbsp;</td><td>pointer to environment struct </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>exception</em>&nbsp;</td><td>error code representing the error </td></tr>
  </table>
</dl>
<dl class="return" compact><dt><b>Returns:</b></dt><dd>AXIS2_SUCCESS on success, else AXIS2_FAILURE </dd></dl>

</div>
</div><p>
<a class="anchor" name="g67f076fe17ac0e95dbea3ce7ecd7111e"></a><!-- doxytag: member="axis2_callback.h::axis2_callback_set_complete" ref="g67f076fe17ac0e95dbea3ce7ecd7111e" args="(axis2_callback_t *callback, const axutil_env_t *env, const axis2_bool_t complete)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">AXIS2_EXTERN axis2_status_t axis2_callback_set_complete           </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="group__axis2__callback.html#g0d855254802281de06d16c71627226b5">axis2_callback_t</a> *&nbsp;</td>
          <td class="paramname"> <em>callback</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const <a class="el" href="structaxutil__env.html">axutil_env_t</a> *&nbsp;</td>
          <td class="paramname"> <em>env</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const axis2_bool_t&nbsp;</td>
          <td class="paramname"> <em>complete</em></td><td>&nbsp;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td><td width="100%"></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
Sets the complete status. <dl compact><dt><b>Parameters:</b></dt><dd>
  <table border="0" cellspacing="2" cellpadding="0">
    <tr><td valign="top"></td><td valign="top"><em>callback</em>&nbsp;</td><td>pointer to callback struct </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>env</em>&nbsp;</td><td>pointer to environment struct </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>complete</em>&nbsp;</td><td>bool value representing the status </td></tr>
  </table>
</dl>
<dl class="return" compact><dt><b>Returns:</b></dt><dd>AXIS2_SUCCESS on success, else AXIS2_FAILURE </dd></dl>

</div>
</div><p>
<a class="anchor" name="gc336244380c30c63f102efbea2204aee"></a><!-- doxytag: member="axis2_callback.h::axis2_callback_set_data" ref="gc336244380c30c63f102efbea2204aee" args="(axis2_callback_t *callback, void *data)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">AXIS2_EXTERN axis2_status_t axis2_callback_set_data           </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="group__axis2__callback.html#g0d855254802281de06d16c71627226b5">axis2_callback_t</a> *&nbsp;</td>
          <td class="paramname"> <em>callback</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">void *&nbsp;</td>
          <td class="paramname"> <em>data</em></td><td>&nbsp;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td><td width="100%"></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
Sets the callback data. <dl compact><dt><b>Parameters:</b></dt><dd>
  <table border="0" cellspacing="2" cellpadding="0">
    <tr><td valign="top"></td><td valign="top"><em>callback</em>&nbsp;</td><td>pointer to callback struct </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>data</em>&nbsp;</td><td>pointer to data </td></tr>
  </table>
</dl>
<dl class="return" compact><dt><b>Returns:</b></dt><dd>AXIS2_SUCCESS on success, else AXIS2_FAILURE </dd></dl>

</div>
</div><p>
<a class="anchor" name="g5dc5998d5db574ef86f05d29fa5cd95d"></a><!-- doxytag: member="axis2_callback.h::axis2_callback_set_envelope" ref="g5dc5998d5db574ef86f05d29fa5cd95d" args="(axis2_callback_t *callback, const axutil_env_t *env, axiom_soap_envelope_t *envelope)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">AXIS2_EXTERN axis2_status_t axis2_callback_set_envelope           </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="group__axis2__callback.html#g0d855254802281de06d16c71627226b5">axis2_callback_t</a> *&nbsp;</td>
          <td class="paramname"> <em>callback</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const <a class="el" href="structaxutil__env.html">axutil_env_t</a> *&nbsp;</td>
          <td class="paramname"> <em>env</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">axiom_soap_envelope_t *&nbsp;</td>
          <td class="paramname"> <em>envelope</em></td><td>&nbsp;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td><td width="100%"></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
Sets the SOAP envelope. <dl compact><dt><b>Parameters:</b></dt><dd>
  <table border="0" cellspacing="2" cellpadding="0">
    <tr><td valign="top"></td><td valign="top"><em>callback</em>&nbsp;</td><td>pointer to callback struct </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>env</em>&nbsp;</td><td>pointer to environment struct </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>envelope</em>&nbsp;</td><td>pointer to SOAP envelope </td></tr>
  </table>
</dl>
<dl class="return" compact><dt><b>Returns:</b></dt><dd>AXIS2_SUCCESS on success, else AXIS2_FAILURE </dd></dl>

</div>
</div><p>
<a class="anchor" name="ge07a62751c3bdbbab934632926e2eb5c"></a><!-- doxytag: member="axis2_callback.h::axis2_callback_set_error" ref="ge07a62751c3bdbbab934632926e2eb5c" args="(axis2_callback_t *callback, const axutil_env_t *env, const int error)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">AXIS2_EXTERN axis2_status_t axis2_callback_set_error           </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="group__axis2__callback.html#g0d855254802281de06d16c71627226b5">axis2_callback_t</a> *&nbsp;</td>
          <td class="paramname"> <em>callback</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const <a class="el" href="structaxutil__env.html">axutil_env_t</a> *&nbsp;</td>
          <td class="paramname"> <em>env</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const int&nbsp;</td>
          <td class="paramname"> <em>error</em></td><td>&nbsp;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td><td width="100%"></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
Sets the error code. <dl compact><dt><b>Parameters:</b></dt><dd>
  <table border="0" cellspacing="2" cellpadding="0">
    <tr><td valign="top"></td><td valign="top"><em>callback</em>&nbsp;</td><td>pointer to callback struct </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>env</em>&nbsp;</td><td>pointer to environment struct </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>error</em>&nbsp;</td><td>error code representing the error </td></tr>
  </table>
</dl>
<dl class="return" compact><dt><b>Returns:</b></dt><dd>AXIS2_SUCCESS on success, else AXIS2_FAILURE </dd></dl>

</div>
</div><p>
<a class="anchor" name="g10b6d858cf29a9426a2b0c7a9690ab15"></a><!-- doxytag: member="axis2_callback.h::axis2_callback_set_on_complete" ref="g10b6d858cf29a9426a2b0c7a9690ab15" args="(axis2_callback_t *callback, axis2_on_complete_func_ptr f)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">AXIS2_EXTERN void axis2_callback_set_on_complete           </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="group__axis2__callback.html#g0d855254802281de06d16c71627226b5">axis2_callback_t</a> *&nbsp;</td>
          <td class="paramname"> <em>callback</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype"><a class="el" href="group__axis2__callback.html#g24412ea84a2372e48f030ff7fa2f57ce">axis2_on_complete_func_ptr</a>&nbsp;</td>
          <td class="paramname"> <em>f</em></td><td>&nbsp;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td><td width="100%"></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
Sets the on complete callback function. <dl compact><dt><b>Parameters:</b></dt><dd>
  <table border="0" cellspacing="2" cellpadding="0">
    <tr><td valign="top"></td><td valign="top"><em>callback</em>&nbsp;</td><td>pointer to callback struct </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>f</em>&nbsp;</td><td>on complete callback function pointer </td></tr>
  </table>
</dl>

</div>
</div><p>
<a class="anchor" name="ga394bc5fddfd86a25c29930b08d39628"></a><!-- doxytag: member="axis2_callback.h::axis2_callback_set_on_error" ref="ga394bc5fddfd86a25c29930b08d39628" args="(axis2_callback_t *callback, axis2_on_error_func_ptr f)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">AXIS2_EXTERN void axis2_callback_set_on_error           </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="group__axis2__callback.html#g0d855254802281de06d16c71627226b5">axis2_callback_t</a> *&nbsp;</td>
          <td class="paramname"> <em>callback</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype"><a class="el" href="group__axis2__callback.html#g195846304fc14b2bd2a55b19b04d220f">axis2_on_error_func_ptr</a>&nbsp;</td>
          <td class="paramname"> <em>f</em></td><td>&nbsp;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td><td width="100%"></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
Sets the on error callback function. <dl compact><dt><b>Parameters:</b></dt><dd>
  <table border="0" cellspacing="2" cellpadding="0">
    <tr><td valign="top"></td><td valign="top"><em>callback</em>&nbsp;</td><td>pointer to callback struct </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>f</em>&nbsp;</td><td>on error callback function pointer </td></tr>
  </table>
</dl>

</div>
</div><p>
<hr size="1"><address style="text-align: right;"><small>Generated on Fri Apr 17 11:49:44 2009 for Axis2/C by&nbsp;
<a href="http://www.doxygen.org/index.html">
<img src="doxygen.png" alt="doxygen" align="middle" border="0"></a> 1.5.3 </small></address>
</body>
</html>


<|start_filename|>src/core/transport/http/common/http_simple_response.c<|end_filename|>
/*
 * 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.
 */
#include <axis2_http_simple_response.h>
#include <axis2_http_transport.h>
#include <axutil_string.h>
#include <stdio.h>
#include <string.h>
#include <axutil_types.h>
#include <axiom_mime_part.h>

#define AXIS2_HTTP_SIMPLE_RESPONSE_READ_SIZE 2048

struct axis2_http_simple_response
{
    axis2_http_status_line_t *status_line;
    axutil_array_list_t *header_group;
    axutil_stream_t *stream;
    axutil_array_list_t *mime_parts;
    axis2_char_t *mtom_sending_callback_name;
};


AXIS2_EXTERN axis2_http_simple_response_t *AXIS2_CALL
axis2_http_simple_response_create(
    const axutil_env_t * env,
    axis2_http_status_line_t * status_line,
    const axis2_http_header_t ** http_headers,
    const axis2_ssize_t http_hdr_count,
    axutil_stream_t * content)
{
    axis2_http_simple_response_t *ret = NULL;
    axis2_http_simple_response_t *simple_response = NULL;

    ret = axis2_http_simple_response_create_default(env);
    if (!ret)
    {
        AXIS2_LOG_ERROR (env->log, AXIS2_LOG_SI, 
                         "axis2 http simple response creation failed");
        return NULL;
    }
    simple_response = ret;

    if (!simple_response)
    {
        AXIS2_HANDLE_ERROR(env, AXIS2_ERROR_NO_MEMORY, AXIS2_FAILURE);
        return NULL;
    }

    simple_response->status_line = status_line;
    if (http_hdr_count > 0 && http_headers)
    {
        int i = 0;
        simple_response->header_group = axutil_array_list_create(env,
                                                                 http_hdr_count);

        for (i = 0; i < (int)http_hdr_count; i++)
            /* We are sure that the difference lies within the int range */
        {
            axutil_array_list_add(simple_response->header_group, env,
                                  (void *) http_headers[i]);
        }
    }
    simple_response->stream = content;

    return ret;
}

AXIS2_EXTERN axis2_http_simple_response_t *AXIS2_CALL
axis2_http_simple_response_create_default(
    const axutil_env_t * env)
{
    axis2_http_simple_response_t *simple_response = NULL;

    simple_response = (axis2_http_simple_response_t *) AXIS2_MALLOC
        (env->allocator, sizeof(axis2_http_simple_response_t));

    if (!simple_response)
    {
        AXIS2_HANDLE_ERROR(env, AXIS2_ERROR_NO_MEMORY, AXIS2_FAILURE);
        return NULL;
    }
    memset ((void *)simple_response, 0, sizeof(axis2_http_simple_response_t));
    simple_response->status_line = NULL;
    simple_response->header_group = NULL;
    simple_response->stream = NULL;
    simple_response->mime_parts = NULL;
    simple_response->mtom_sending_callback_name = NULL;

    return simple_response;
}

void AXIS2_CALL
axis2_http_simple_response_free(
    axis2_http_simple_response_t * simple_response,
    const axutil_env_t * env)
{

    if (simple_response->status_line)
    {
        axis2_http_status_line_free(simple_response->status_line, env);
    }

    if (simple_response->header_group)
    {
        int i = 0;
        axis2_http_header_t *tmp = NULL;
        for (i = 0; i < axutil_array_list_size(simple_response->header_group,
                                               env); i++)
        {
            tmp =
                (axis2_http_header_t *) axutil_array_list_get(simple_response->
                                                              header_group, env,
                                                              i);
            if (tmp)
            {
                axis2_http_header_free(tmp, env);
            }
        }
        axutil_array_list_free(simple_response->header_group, env);
    }

    if (simple_response->mime_parts)
    {
        int i = 0;
        for (i = 0; i < axutil_array_list_size(simple_response->mime_parts, env); i++)
        {
            axiom_mime_part_t *mime_part = NULL;
            mime_part = (axiom_mime_part_t *)
                axutil_array_list_get(simple_response->mime_parts, env, i);
            if (mime_part)
            {
                axiom_mime_part_free(mime_part, env);
            }
        }
        axutil_array_list_free(simple_response->mime_parts, env);
    }


    AXIS2_FREE(env->allocator, simple_response);
    /* 
     * Stream is not freed
     * Assumption : stream doesn't belong to the response
     */
    return;
}

axis2_status_t AXIS2_CALL
axis2_http_simple_response_set_status_line(
    struct axis2_http_simple_response * simple_response,
    const axutil_env_t * env,
    const axis2_char_t * http_ver,
    const int status_code,
    const axis2_char_t * phrase)
{
    axis2_char_t *tmp_status_line_str = NULL;

    AXIS2_PARAM_CHECK(env->error, http_ver, AXIS2_FAILURE);
    AXIS2_PARAM_CHECK(env->error, status_code, AXIS2_FAILURE);
    AXIS2_PARAM_CHECK(env->error, phrase, AXIS2_FAILURE);

    tmp_status_line_str = AXIS2_MALLOC(env->allocator,
                                       (axutil_strlen(http_ver) +
                                        axutil_strlen(phrase) +
                                        8) * sizeof(axis2_char_t *));

    if (!tmp_status_line_str)
    {
        AXIS2_HANDLE_ERROR(env, AXIS2_ERROR_NO_MEMORY, AXIS2_FAILURE);
    }

    sprintf(tmp_status_line_str, "%s %3d %s%s", http_ver, status_code, phrase,
            AXIS2_HTTP_CRLF);

    if (simple_response->status_line)
    {
        axis2_http_status_line_free(simple_response->status_line, env);
        simple_response->status_line = NULL;
    }
    simple_response->status_line = axis2_http_status_line_create(env,
                                                                 tmp_status_line_str);
    AXIS2_FREE(env->allocator, tmp_status_line_str);

    if (!simple_response->status_line)
    {
        AXIS2_LOG_ERROR (env->log, AXIS2_LOG_SI, 
                         "axis2 http status line creation failed for tmp \
string %s", tmp_status_line_str);
        return AXIS2_FAILURE;
    }
    return AXIS2_SUCCESS;
}

axis2_char_t *AXIS2_CALL
axis2_http_simple_response_get_phrase(
    axis2_http_simple_response_t * simple_response,
    const axutil_env_t * env)
{
    if (!(simple_response->status_line))
    {
        AXIS2_LOG_ERROR (env->log, AXIS2_LOG_SI, 
                         "axis2 simple response , status line is not available");
        return NULL;
    }

    return axis2_http_status_line_get_reason_phrase(simple_response->
                                                    status_line, env);
}

int AXIS2_CALL
axis2_http_simple_response_get_status_code(
    axis2_http_simple_response_t * simple_response,
    const axutil_env_t * env)
{
    if (!(simple_response->status_line))
    {
        AXIS2_LOG_ERROR (env->log, AXIS2_LOG_SI, 
                         "axis2 simple response , status line is not available");
        return -1;
    }
    return axis2_http_status_line_get_status_code(simple_response->status_line,
                                                  env);
}

axis2_char_t *AXIS2_CALL
axis2_http_simple_response_get_http_version(
    axis2_http_simple_response_t * simple_response,
    const axutil_env_t * env)
{
    if (!(simple_response->status_line))
    {
        AXIS2_LOG_ERROR (env->log, AXIS2_LOG_SI, 
                         "axis2 simple response , status line is not available");
     
        return NULL;
    }
    return axis2_http_status_line_get_http_version(simple_response->status_line,
                                                   env);
}

axis2_status_t AXIS2_CALL
axis2_http_simple_response_set_http_version(
    axis2_http_simple_response_t * simple_response,
    const axutil_env_t * env,
    axis2_char_t *http_version)
{
    if (!(simple_response->status_line))
    {
        AXIS2_LOG_ERROR (env->log, AXIS2_LOG_SI, 
                         "axis2 simple response , status line is not available");
     
        return AXIS2_FAILURE;
    }
    axis2_http_status_line_set_http_version(simple_response->status_line,
                                                   env, http_version);
    return AXIS2_SUCCESS;
}


axis2_char_t *AXIS2_CALL
axis2_http_simple_response_get_status_line(
    axis2_http_simple_response_t * simple_response,
    const axutil_env_t * env)
{

    if (!(simple_response->status_line))
    {
        AXIS2_LOG_ERROR (env->log, AXIS2_LOG_SI, 
                         "axis2 simple response , status line is not available");
     
        return NULL;
    }
    return axis2_http_status_line_to_string(simple_response->status_line, env);
}

AXIS2_EXTERN axutil_array_list_t *AXIS2_CALL
axis2_http_simple_response_get_headers(
    axis2_http_simple_response_t * simple_response,
    const axutil_env_t * env)
{
    return simple_response->header_group;
}

axutil_array_list_t *AXIS2_CALL
axis2_http_simple_response_extract_headers(
    axis2_http_simple_response_t * simple_response,
    const axutil_env_t * env)
{
    axutil_array_list_t *temp = NULL;
    temp = simple_response->header_group;
    if (temp)
    {
        simple_response->header_group = NULL;
    }
    return temp;
}

axis2_http_header_t *AXIS2_CALL
axis2_http_simple_response_get_first_header(
    axis2_http_simple_response_t * simple_response,
    const axutil_env_t * env,
    const axis2_char_t * str)
{
    axis2_http_header_t *tmp_header = NULL;
    axis2_char_t *tmp_name = NULL;
    int i = 0;
    int count = 0;
    axutil_array_list_t *header_group = NULL;

    AXIS2_PARAM_CHECK(env->error, str, NULL);

    header_group = simple_response->header_group;
    if (!simple_response->header_group)
    {
        AXIS2_LOG_ERROR (env->log, AXIS2_LOG_SI, 
                         "axis2 simple response , headers not available");
             return NULL;
    }

    if (0 == axutil_array_list_size(header_group, env))
    {
        AXIS2_LOG_WARNING (env->log, AXIS2_LOG_SI, 
                         "axis2 simple response , contains zero headers");

        return NULL;
    }

    count = axutil_array_list_size(header_group, env);

    for (i = 0; i < count; i++)
    {
        tmp_header = (axis2_http_header_t *) axutil_array_list_get(header_group,
                                                                   env, i);
        tmp_name = axis2_http_header_get_name(tmp_header, env);
        if (0 == axutil_strcasecmp(str, tmp_name))
        {
            return tmp_header;
        }
    }
    return NULL;

}

axis2_status_t AXIS2_CALL
axis2_http_simple_response_remove_headers(
    axis2_http_simple_response_t * simple_response,
    const axutil_env_t * env,
    const axis2_char_t * str)
{
    axutil_array_list_t *header_group = NULL;
    axis2_http_header_t *tmp_header = NULL;
    axis2_char_t *tmp_name = NULL;
    int i = 0;
    int count = 0;

    AXIS2_PARAM_CHECK(env->error, str, AXIS2_FAILURE);

    header_group = simple_response->header_group;
    if (!header_group)
    {
        /* Even though we couldn't complete the op, we are sure that the
         * requred header is no more in the request. So we can proceed without a
         * problem.
         */
        return AXIS2_SUCCESS;
    }

    count = axutil_array_list_size(header_group, env);

    for (i = 0; i < count; i++)
    {
        tmp_header = (axis2_http_header_t *) axutil_array_list_get(header_group,
                                                                   env, i);
        tmp_name = axis2_http_header_get_name(tmp_header, env);
        if (0 == axutil_strcasecmp(str, tmp_name))
        {
            axis2_http_header_free(tmp_header, env);
            axutil_array_list_remove(header_group, env, i);
            break;
        }
    }
    return AXIS2_SUCCESS;
}

axis2_status_t AXIS2_CALL
axis2_http_simple_response_set_header(
    axis2_http_simple_response_t * simple_response,
    const axutil_env_t * env,
    axis2_http_header_t * header)
{
    int i = 0;
    int count = 0;
    axis2_http_header_t *tmp_header = NULL;
    axis2_char_t *tmp_name = NULL;
    axutil_array_list_t *header_group = NULL;

    AXIS2_PARAM_CHECK(env->error, header, AXIS2_FAILURE);

    if (!simple_response->header_group)
    {
        simple_response->header_group = axutil_array_list_create(env, 10);
        axutil_array_list_add(simple_response->header_group, env, header);
        return AXIS2_SUCCESS;
    }

    /* If a header with the same name exists
     * search and remove the old header
     */
    header_group = simple_response->header_group;

    count = axutil_array_list_size(header_group, env);
    for (i = 0; i < count; i++)
    {
        tmp_header = (axis2_http_header_t *) axutil_array_list_get(header_group,
                                                                   env, i);
        tmp_name = axis2_http_header_get_name(tmp_header, env);
        if (0 == axutil_strcasecmp(axis2_http_header_get_name(header, env),
                                   tmp_name))
        {
            axis2_http_header_free(tmp_header, env);
            axutil_array_list_remove(header_group, env, i);
            break;
        }
    }
    axutil_array_list_add(simple_response->header_group, env, (void *) header);
    return AXIS2_SUCCESS;
}

const axis2_char_t *AXIS2_CALL
axis2_http_simple_response_get_charset(
    axis2_http_simple_response_t * simple_response,
    const axutil_env_t * env)
{
    axis2_http_header_t *tmp_header = NULL;

    tmp_header = axis2_http_simple_response_get_first_header
        (simple_response, env, AXIS2_HTTP_HEADER_CONTENT_TYPE);
    if (tmp_header)
    {
        axis2_char_t *value = axis2_http_header_get_value(tmp_header, env);
        axis2_char_t *charset = (axis2_char_t *) strstr((char *) value,
                                                        (char *)
                                                        AXIS2_HTTP_CHAR_SET_ENCODING);
        if (charset)
        {
            charset = strchr((char *) charset, AXIS2_EQ);
            return charset;
        }
    }

    return AXIS2_HTTP_DEFAULT_CONTENT_CHARSET;
}

axis2_ssize_t AXIS2_CALL
axis2_http_simple_response_get_content_length(
    axis2_http_simple_response_t * simple_response,
    const axutil_env_t * env)
{
    axis2_http_header_t *tmp_header = NULL;
    int error_return = -1;

    tmp_header = axis2_http_simple_response_get_first_header
        (simple_response, env, AXIS2_HTTP_HEADER_CONTENT_LENGTH);
    if (tmp_header)
    {
        return AXIS2_ATOI(axis2_http_header_get_value(tmp_header, env));
    }
    return error_return;
}

const axis2_char_t *AXIS2_CALL
axis2_http_simple_response_get_content_type(
    axis2_http_simple_response_t * simple_response,
    const axutil_env_t * env)
{
    axis2_http_header_t *tmp_header = NULL;

    tmp_header = axis2_http_simple_response_get_first_header
        (simple_response, env, AXIS2_HTTP_HEADER_CONTENT_TYPE);
    if (tmp_header)
    {
        return axis2_http_header_get_value(tmp_header, env);
    }

    return AXIS2_HTTP_HEADER_ACCEPT_TEXT_PLAIN;
}

axis2_status_t AXIS2_CALL
axis2_http_simple_response_set_body_string(
    axis2_http_simple_response_t * simple_response,
    const axutil_env_t * env,
    axis2_char_t * str)
{
    axutil_stream_t *body_stream = NULL;

    AXIS2_PARAM_CHECK(env->error, str, AXIS2_FAILURE);

    body_stream = simple_response->stream;
    if (!body_stream)
    {
        body_stream = axutil_stream_create_basic(env);
        if (!body_stream)
        {
            AXIS2_LOG_ERROR (env->log, AXIS2_LOG_SI, 
                             "unable to create basic stream for string %s", str);
            return AXIS2_FAILURE;
        }
        simple_response->stream = body_stream;
    }
    axutil_stream_write(body_stream, env, str, axutil_strlen(str));
    return AXIS2_SUCCESS;
}

axis2_status_t AXIS2_CALL
axis2_http_simple_response_set_body_stream(
    axis2_http_simple_response_t * simple_response,
    const axutil_env_t * env,
    axutil_stream_t * stream)
{
    /*
     * We don't free the stream
     * Problem in freeing is most of the time the stream doesn't belong
     * to the http_simple_response
     */
    if (simple_response->stream)
        axutil_stream_free(simple_response->stream, env);

    simple_response->stream = stream;
    return AXIS2_SUCCESS;
}

axutil_stream_t *AXIS2_CALL
axis2_http_simple_response_get_body(
    axis2_http_simple_response_t * simple_response,
    const axutil_env_t * env)
{
    return simple_response->stream;
}

axis2_ssize_t AXIS2_CALL
axis2_http_simple_response_get_body_bytes(
    axis2_http_simple_response_t * simple_response,
    const axutil_env_t * env,
    axis2_char_t ** buffer)
{
    axutil_stream_t *tmp_stream = NULL;
    axis2_bool_t loop_state = AXIS2_TRUE;
    int return_size = -1;

    if (!simple_response->stream)
    {
        AXIS2_HANDLE_ERROR(env, AXIS2_ERROR_NULL_BODY, AXIS2_FAILURE);
        return return_size;
    }
    tmp_stream = axutil_stream_create_basic(env);
    while (loop_state)
    {
        int read = 0;
        int write = 0;
        char buf[AXIS2_HTTP_SIMPLE_RESPONSE_READ_SIZE];

        read =
            axutil_stream_read(simple_response->stream, env, buf,
                               AXIS2_HTTP_SIMPLE_RESPONSE_READ_SIZE);
        if (read < 0)
        {
            break;
        }
        write = axutil_stream_write(tmp_stream, env, buf, read);
        if (read < (AXIS2_HTTP_SIMPLE_RESPONSE_READ_SIZE - 1))
        {
            break;
        }
    }
    return_size = axutil_stream_get_len(tmp_stream, env);

    if (return_size > 0)
    {
        *buffer = (char *) AXIS2_MALLOC(env->allocator, sizeof(char) *
                                        (return_size + 1));

        if (!buffer)
        {
            AXIS2_HANDLE_ERROR(env, AXIS2_ERROR_NO_MEMORY, AXIS2_FAILURE);
            return -1;
        }

        return_size = axutil_stream_read(tmp_stream, env, *buffer,
                                         return_size + 1);
    }
    axutil_stream_free(tmp_stream, env);
    return return_size;
}

axis2_bool_t AXIS2_CALL
axis2_http_simple_response_contains_header(
    axis2_http_simple_response_t * simple_response,
    const axutil_env_t * env,
    const axis2_char_t * name)
{
    axis2_char_t *header_name = NULL;
    int count = 0;
    int i = 0;

    AXIS2_PARAM_CHECK(env->error, name, AXIS2_FAILURE);
    if (!simple_response->header_group)
    {
        AXIS2_LOG_ERROR (env->log, AXIS2_LOG_SI, 
                         "axis2 simple response , headers not available");

        return AXIS2_FALSE;
    }
    count = axutil_array_list_size(simple_response->header_group, env);
    if (0 == count)
    {
        AXIS2_LOG_WARNING (env->log, AXIS2_LOG_SI, 
                           "axis2 simple response , contains zero headers");
        return AXIS2_FALSE;
    }

    for (i = 0; i < count; i++)
    {
        header_name = axis2_http_header_get_name((axis2_http_header_t *)
                                                 axutil_array_list_get
                                                 (simple_response->header_group,
                                                  env, i), env);
        if (0 == axutil_strcasecmp(name, header_name))
            return AXIS2_TRUE;
    }
    return AXIS2_FALSE;
}


AXIS2_EXTERN axutil_array_list_t *AXIS2_CALL
axis2_http_simple_response_get_mime_parts(
    axis2_http_simple_response_t * simple_response,
    const axutil_env_t * env)
{

    return simple_response->mime_parts;

}

void AXIS2_EXTERN AXIS2_CALL
axis2_http_simple_response_set_mime_parts(
    axis2_http_simple_response_t * simple_response,
    const axutil_env_t * env,
    axutil_array_list_t *mime_parts)
{

    simple_response->mime_parts = mime_parts;

}

AXIS2_EXTERN axis2_char_t *AXIS2_CALL
axis2_http_simple_response_get_mtom_sending_callback_name(
    axis2_http_simple_response_t * simple_response,
    const axutil_env_t * env)
{
    return simple_response->mtom_sending_callback_name;
}

void AXIS2_EXTERN AXIS2_CALL
axis2_http_simple_response_set_mtom_sending_callback_name(
    axis2_http_simple_response_t * simple_response,
    const axutil_env_t * env,
    axis2_char_t *mtom_sending_callback_name)
{
    simple_response->mtom_sending_callback_name = 
        mtom_sending_callback_name;
}


<|start_filename|>neethi/include/axis2_rm_assertion.h<|end_filename|>

/*
 * 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 AXIS2_RM_ASSERTION_H
#define AXIS2_RM_ASSERTION_H

/** @defgroup axis2_rm_assertion
 * @ingroup axis2_rm_assertion
 * @{
 */

#include <neethi_includes.h>
#include <neethi_policy.h>

#ifdef __cplusplus
extern "C"
{
#endif

    typedef struct axis2_rm_assertion_t axis2_rm_assertion_t;


    AXIS2_EXTERN axis2_rm_assertion_t *AXIS2_CALL
    axis2_rm_assertion_create(
        const axutil_env_t * env);

    AXIS2_EXTERN void AXIS2_CALL
    axis2_rm_assertion_free(
        axis2_rm_assertion_t * rm_assertion,
        const axutil_env_t * env);

    AXIS2_EXTERN axis2_bool_t AXIS2_CALL
    axis2_rm_assertion_get_is_sequence_str(
        axis2_rm_assertion_t *rm_assertion,
        const axutil_env_t * env);

    AXIS2_EXTERN axis2_status_t AXIS2_CALL
    axis2_rm_assertion_set_is_sequence_str(
        axis2_rm_assertion_t *rm_assertion,
        const axutil_env_t * env,
        axis2_bool_t is_sequence_str);

    AXIS2_EXTERN axis2_bool_t AXIS2_CALL
    axis2_rm_assertion_get_is_sequence_transport_security(
        axis2_rm_assertion_t *rm_assertion,
        const axutil_env_t * env);

    AXIS2_EXTERN axis2_status_t AXIS2_CALL
    axis2_rm_assertion_set_is_sequence_transport_security(
        axis2_rm_assertion_t *rm_assertion,
        const axutil_env_t * env,
        axis2_bool_t is_sequence_transport_security);

    AXIS2_EXTERN axis2_bool_t AXIS2_CALL
    axis2_rm_assertion_get_is_exactly_once(
        axis2_rm_assertion_t *rm_assertion,
        const axutil_env_t * env);

    AXIS2_EXTERN axis2_status_t AXIS2_CALL
    axis2_rm_assertion_set_is_exactly_once(
        axis2_rm_assertion_t *rm_assertion,
        const axutil_env_t * env,
        axis2_bool_t is_exactly_once);

    AXIS2_EXTERN axis2_bool_t AXIS2_CALL
    axis2_rm_assertion_get_is_atleast_once(
        axis2_rm_assertion_t *rm_assertion,
        const axutil_env_t * env);

    AXIS2_EXTERN axis2_status_t AXIS2_CALL
    axis2_rm_assertion_set_is_atleast_once(
        axis2_rm_assertion_t *rm_assertion,
        const axutil_env_t * env,
        axis2_bool_t is_atleast_once);

    AXIS2_EXTERN axis2_bool_t AXIS2_CALL
    axis2_rm_assertion_get_is_atmost_once(
        axis2_rm_assertion_t *rm_assertion,
        const axutil_env_t * env);

    AXIS2_EXTERN axis2_status_t AXIS2_CALL
    axis2_rm_assertion_set_is_atmost_once(
        axis2_rm_assertion_t *rm_assertion,
        const axutil_env_t * env,
        axis2_bool_t is_atmost_once);

    AXIS2_EXTERN axis2_bool_t AXIS2_CALL
    axis2_rm_assertion_get_is_inorder(
        axis2_rm_assertion_t *rm_assertion,
        const axutil_env_t * env);

    AXIS2_EXTERN axis2_status_t AXIS2_CALL
    axis2_rm_assertion_set_is_inorder(
        axis2_rm_assertion_t *rm_assertion,
        const axutil_env_t * env,
        axis2_bool_t is_inorder);

    AXIS2_EXTERN axis2_char_t* AXIS2_CALL
    axis2_rm_assertion_get_inactivity_timeout(
        axis2_rm_assertion_t *rm_assertion,
        const axutil_env_t * env);

    AXIS2_EXTERN axis2_status_t AXIS2_CALL
    axis2_rm_assertion_set_inactivity_timeout(
        axis2_rm_assertion_t *rm_assertion,
        const axutil_env_t * env,
        axis2_char_t* inactivity_timeout);
       
    AXIS2_EXTERN axis2_char_t* AXIS2_CALL
    axis2_rm_assertion_get_retrans_interval(
        axis2_rm_assertion_t *rm_assertion,
        const axutil_env_t * env);

    AXIS2_EXTERN axis2_status_t AXIS2_CALL
    axis2_rm_assertion_set_retrans_interval(
        axis2_rm_assertion_t *rm_assertion,
        const axutil_env_t * env,
        axis2_char_t* retrans_interval);

    AXIS2_EXTERN axis2_char_t* AXIS2_CALL
    axis2_rm_assertion_get_ack_interval(
        axis2_rm_assertion_t *rm_assertion,
        const axutil_env_t * env);

    AXIS2_EXTERN axis2_status_t AXIS2_CALL
    axis2_rm_assertion_set_ack_interval(
        axis2_rm_assertion_t *rm_assertion,
        const axutil_env_t * env,
        axis2_char_t* ack_interval);

    AXIS2_EXTERN axis2_bool_t AXIS2_CALL
    axis2_rm_assertion_get_is_exp_backoff(
        axis2_rm_assertion_t *rm_assertion,
        const axutil_env_t * env);

    AXIS2_EXTERN axis2_status_t AXIS2_CALL
    axis2_rm_assertion_set_is_exp_backoff(
        axis2_rm_assertion_t *rm_assertion,
        const axutil_env_t * env,
        axis2_bool_t is_exp_backoff);

    AXIS2_EXTERN axis2_char_t* AXIS2_CALL
    axis2_rm_assertion_get_storage_mgr(
        axis2_rm_assertion_t *rm_assertion,
        const axutil_env_t * env);

    AXIS2_EXTERN axis2_status_t AXIS2_CALL
    axis2_rm_assertion_set_storage_mgr(
        axis2_rm_assertion_t *rm_assertion,
        const axutil_env_t * env,
        axis2_char_t* storage_mgr);
       
    AXIS2_EXTERN axis2_char_t* AXIS2_CALL
    axis2_rm_assertion_get_message_types_to_drop(
        axis2_rm_assertion_t *rm_assertion,
        const axutil_env_t * env);

    AXIS2_EXTERN axis2_status_t AXIS2_CALL
    axis2_rm_assertion_set_message_types_to_drop(
        axis2_rm_assertion_t *rm_assertion,
        const axutil_env_t * env,
        axis2_char_t* message_types_to_drop);

    AXIS2_EXTERN axis2_char_t* AXIS2_CALL
    axis2_rm_assertion_get_max_retrans_count(
        axis2_rm_assertion_t *rm_assertion,
        const axutil_env_t * env);

    AXIS2_EXTERN axis2_status_t AXIS2_CALL
    axis2_rm_assertion_set_max_retrans_count(
        axis2_rm_assertion_t *rm_assertion,
        const axutil_env_t * env,
        axis2_char_t* max_retrans_count);

    AXIS2_EXTERN axis2_char_t* AXIS2_CALL
    axis2_rm_assertion_get_sender_sleep_time(
        axis2_rm_assertion_t *rm_assertion,
        const axutil_env_t * env);

    AXIS2_EXTERN axis2_status_t AXIS2_CALL
    axis2_rm_assertion_set_sender_sleep_time(
        axis2_rm_assertion_t *rm_assertion,
        const axutil_env_t * env,
        axis2_char_t* sender_sleep_time);

    AXIS2_EXTERN axis2_char_t* AXIS2_CALL
    axis2_rm_assertion_get_invoker_sleep_time(
        axis2_rm_assertion_t *rm_assertion,
        const axutil_env_t * env);

    AXIS2_EXTERN axis2_status_t AXIS2_CALL
    axis2_rm_assertion_set_invoker_sleep_time(
        axis2_rm_assertion_t *rm_assertion,
        const axutil_env_t * env,
        axis2_char_t* invoker_sleep_time);
       
    AXIS2_EXTERN axis2_char_t* AXIS2_CALL
    axis2_rm_assertion_get_polling_wait_time(
        axis2_rm_assertion_t *rm_assertion,
        const axutil_env_t * env);

    AXIS2_EXTERN axis2_status_t AXIS2_CALL
    axis2_rm_assertion_set_polling_wait_time(
        axis2_rm_assertion_t *rm_assertion,
        const axutil_env_t * env,
        axis2_char_t* polling_wait_time);

    AXIS2_EXTERN axis2_char_t* AXIS2_CALL
    axis2_rm_assertion_get_terminate_delay(
        axis2_rm_assertion_t *rm_assertion,
        const axutil_env_t * env);

    AXIS2_EXTERN axis2_status_t AXIS2_CALL
    axis2_rm_assertion_set_terminate_delay(
        axis2_rm_assertion_t *rm_assertion,
        const axutil_env_t * env,
        axis2_char_t* terminate_delay);

    AXIS2_EXTERN axis2_char_t* AXIS2_CALL
    axis2_rm_assertion_get_sandesha2_db(
        axis2_rm_assertion_t *rm_assertion,
        const axutil_env_t * env);

    AXIS2_EXTERN axis2_status_t AXIS2_CALL
    axis2_rm_assertion_set_sandesha2_db(
        axis2_rm_assertion_t *rm_assertion,
        const axutil_env_t * env,
        axis2_char_t* sandesha2_db);

    AXIS2_EXTERN axis2_rm_assertion_t* AXIS2_CALL
        axis2_rm_assertion_get_from_policy(
        const axutil_env_t *env,
        neethi_policy_t *policy);



#ifdef __cplusplus
}
#endif
#endif


<|start_filename|>src/core/transport/http/server/IIS/axis2_iis_out_transport_info.c<|end_filename|>

/*
 * 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.
 */

#include "axis2_iis_out_transport_info.h"
#include <axutil_string.h>
#include <axis2_http_transport.h>
#include <axutil_string.h>

#include "axis2_iis_constants.h"

/**
 * @brief IIS Out transport info impl structure
 * Axis2 iis_out_transport_info_impl
 */

typedef struct axis2_iis_out_transport_info_s
{
    axis2_http_out_transport_info_t out_transport_info;
    axis2_char_t *encoding;
    axis2_char_t content_type[MAX_HTTP_CONTENT_TYPE_LEN];
} axis2_iis_out_transport_info_t;

#define AXIS2_INTF_TO_IMPL(out_transport_info) \
                ((axis2_iis_out_transport_info_t *)(out_transport_info))

void AXIS2_CALL
axis2_iis_out_transport_info_free(
    axis2_http_out_transport_info_t * out_transport_info,
    const axutil_env_t * env)
{
    axis2_iis_out_transport_info_t *info = NULL;
    AXIS2_ENV_CHECK(env, void);

    info = AXIS2_INTF_TO_IMPL(out_transport_info);

    if (info->encoding)
    {
        AXIS2_FREE(env->allocator, info->encoding);
        info->encoding = NULL;
    }

    AXIS2_FREE(env->allocator, info);
    return;
}

void AXIS2_CALL
axis2_iis_out_transport_info_free_void_arg(
    void *transport_info,
    const axutil_env_t * env)
{
    axis2_http_out_transport_info_t *transport_info_l = NULL;

    AXIS2_ENV_CHECK(env, void);
    transport_info_l = (axis2_http_out_transport_info_t *) transport_info;
    axis2_http_out_transport_info_free(transport_info_l, env);
    return;
}

axis2_status_t AXIS2_CALL
axis2_iis_out_transport_info_set_content_type(
    axis2_http_out_transport_info_t * info,
    const axutil_env_t * env,
    const axis2_char_t * content_type)
{
    axis2_iis_out_transport_info_t *info_impl = NULL;

    info_impl = AXIS2_INTF_TO_IMPL(info);
    info_impl->content_type[0] = '\0';
    if (info_impl->encoding)
    {
        sprintf(info_impl->content_type, "%s%s%s", content_type, ";charser:",
                info_impl->encoding);
    }
    else
    {
        strcat(info_impl->content_type, content_type);
    }
    return AXIS2_SUCCESS;
}

axis2_status_t AXIS2_CALL
axis2_iis_out_transport_info_set_char_encoding(
    axis2_http_out_transport_info_t * info,
    const axutil_env_t * env,
    const axis2_char_t * encoding)
{
    axis2_iis_out_transport_info_t *info_impl = NULL;
    AXIS2_ENV_CHECK(env, AXIS2_FAILURE);
    AXIS2_PARAM_CHECK(env->error, encoding, AXIS2_FAILURE);

    info_impl = AXIS2_INTF_TO_IMPL(info);

    if (info_impl->encoding)
    {
        AXIS2_FREE(env->allocator, info_impl->encoding);
    }
    info_impl->encoding = axutil_strdup(env, encoding);

    return AXIS2_SUCCESS;
}

axis2_http_out_transport_info_t *AXIS2_CALL
axis2_iis_out_transport_info_create(
    const axutil_env_t * env,
    LPEXTENSION_CONTROL_BLOCK lpECB)
{
    axis2_iis_out_transport_info_t *info = NULL;
    axis2_http_out_transport_info_t *http_out_info = NULL;
    AXIS2_ENV_CHECK(env, NULL);

    info = (axis2_iis_out_transport_info_t *) AXIS2_MALLOC
        (env->allocator, sizeof(axis2_iis_out_transport_info_t));

    if (!info)
    {
        AXIS2_ERROR_SET(env->error, AXIS2_ERROR_NO_MEMORY, AXIS2_FAILURE);
        return NULL;
    }
    info->encoding = NULL;

    http_out_info = &(info->out_transport_info);

    axis2_http_out_transport_info_set_content_type_func(http_out_info,
                                                        env,
                                                        axis2_iis_out_transport_info_set_content_type);
    axis2_http_out_transport_info_set_char_encoding_func(http_out_info, env,
                                                         axis2_iis_out_transport_info_set_char_encoding);
    axis2_http_out_transport_info_set_free_func(http_out_info, env,
                                                axis2_iis_out_transport_info_free);

    return http_out_info;
}

axis2_char_t *
axis2_iis_out_transport_get_content(
    axis2_http_out_transport_info_t * info)
{
    axis2_iis_out_transport_info_t *info_impl = NULL;
    info_impl = AXIS2_INTF_TO_IMPL(info);
    return info_impl->content_type;
}


<|start_filename|>xdocs/api/html/group__axiom__text.html<|end_filename|>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html><head><meta http-equiv="Content-Type" content="text/html;charset=UTF-8">
<title>Axis2/C: text</title>
<link href="doxygen.css" rel="stylesheet" type="text/css">
<link href="tabs.css" rel="stylesheet" type="text/css">
</head><body>
<!-- Generated by Doxygen 1.5.3 -->
<div class="tabs">
  <ul>
    <li><a href="index.html"><span>Main&nbsp;Page</span></a></li>
    <li><a href="modules.html"><span>Modules</span></a></li>
    <li><a href="annotated.html"><span>Classes</span></a></li>
    <li><a href="files.html"><span>Files</span></a></li>
    <li><a href="dirs.html"><span>Directories</span></a></li>
    <li><a href="pages.html"><span>Related&nbsp;Pages</span></a></li>
    <li><a href="examples.html"><span>Examples</span></a></li>
    <li>
      <form action="search.php" method="get">
        <table cellspacing="0" cellpadding="0" border="0">
          <tr>
            <td><label>&nbsp;<u>S</u>earch&nbsp;for&nbsp;</label></td>
            <td><input type="text" name="query" value="" size="20" accesskey="s"/></td>
          </tr>
        </table>
      </form>
    </li>
  </ul>
</div>
<h1>text<br>
<small>
[<a class="el" href="group__axiom__om.html">AXIOM</a>]</small>
</h1><table border="0" cellpadding="0" cellspacing="0">
<tr><td></td></tr>
<tr><td colspan="2"><br><h2>Typedefs</h2></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="g08375577fd21439aeeb6a19f87fd3810"></a><!-- doxytag: member="axiom_text::axiom_text_t" ref="g08375577fd21439aeeb6a19f87fd3810" args="" -->
typedef struct axiom_text&nbsp;</td><td class="memItemRight" valign="bottom"><b>axiom_text_t</b></td></tr>

<tr><td colspan="2"><br><h2>Functions</h2></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top">AXIS2_EXTERN <br>
axiom_text_t *&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__axiom__text.html#g6ec9f4843b931cbf3220ae0505aa933b">axiom_text_create</a> (const <a class="el" href="structaxutil__env.html">axutil_env_t</a> *env, axiom_node_t *parent, const axis2_char_t *value, axiom_node_t **node)</td></tr>

<tr><td class="memItemLeft" nowrap align="right" valign="top">AXIS2_EXTERN <br>
axiom_text_t *&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__axiom__text.html#g680d66526e3cbc1179a65f4185f29910">axiom_text_create_str</a> (const <a class="el" href="structaxutil__env.html">axutil_env_t</a> *env, axiom_node_t *parent, axutil_string_t *value, axiom_node_t **node)</td></tr>

<tr><td class="memItemLeft" nowrap align="right" valign="top">AXIS2_EXTERN <br>
axiom_text_t *&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__axiom__text.html#gab4be5d4a50ee8c04058d77957abef1c">axiom_text_create_with_data_handler</a> (const <a class="el" href="structaxutil__env.html">axutil_env_t</a> *env, axiom_node_t *parent, axiom_data_handler_t *data_handler, axiom_node_t **node)</td></tr>

<tr><td class="memItemLeft" nowrap align="right" valign="top">AXIS2_EXTERN void&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__axiom__text.html#g0eb6a7b65c61cee5e6a5a5d1a93ab44e">axiom_text_free</a> (struct axiom_text *om_text, const <a class="el" href="structaxutil__env.html">axutil_env_t</a> *env)</td></tr>

<tr><td class="memItemLeft" nowrap align="right" valign="top">AXIS2_EXTERN <br>
axis2_status_t&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__axiom__text.html#gba5bb858827a9aee46b829926862dc46">axiom_text_serialize</a> (struct axiom_text *om_text, const <a class="el" href="structaxutil__env.html">axutil_env_t</a> *env, <a class="el" href="group__axiom__output.html#gfe1ea804d7a8179e85371f065cd9df09">axiom_output_t</a> *om_output)</td></tr>

<tr><td class="memItemLeft" nowrap align="right" valign="top">AXIS2_EXTERN <br>
axis2_status_t&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__axiom__text.html#g38e8fc267df5245ee5b65b62c37ecac9">axiom_text_set_value</a> (struct axiom_text *om_text, const <a class="el" href="structaxutil__env.html">axutil_env_t</a> *env, const axis2_char_t *value)</td></tr>

<tr><td class="memItemLeft" nowrap align="right" valign="top">AXIS2_EXTERN const <br>
axis2_char_t *&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__axiom__text.html#ga620cffb41a4f6c01ddba83e2a52fb97">axiom_text_get_value</a> (struct axiom_text *om_text, const <a class="el" href="structaxutil__env.html">axutil_env_t</a> *env)</td></tr>

<tr><td class="memItemLeft" nowrap align="right" valign="top">AXIS2_EXTERN <br>
axis2_status_t&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__axiom__text.html#g345a35e52d57a4626006d527ba1e7b63">axiom_text_set_value_str</a> (struct axiom_text *om_text, const <a class="el" href="structaxutil__env.html">axutil_env_t</a> *env, axutil_string_t *value)</td></tr>

<tr><td class="memItemLeft" nowrap align="right" valign="top">AXIS2_EXTERN const <br>
axis2_char_t *&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__axiom__text.html#g4025d1d2319b08b8cc797a99a316ae6b">axiom_text_get_text</a> (axiom_text_t *om_text, const <a class="el" href="structaxutil__env.html">axutil_env_t</a> *env)</td></tr>

<tr><td class="memItemLeft" nowrap align="right" valign="top">AXIS2_EXTERN <br>
axutil_string_t *&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__axiom__text.html#gd311692e5f2cf142803f4f5c48de0745">axiom_text_get_value_str</a> (struct axiom_text *om_text, const <a class="el" href="structaxutil__env.html">axutil_env_t</a> *env)</td></tr>

<tr><td class="memItemLeft" nowrap align="right" valign="top">AXIS2_EXTERN <br>
axis2_status_t&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__axiom__text.html#g92afcea629a6c1aba1bb66203e8b0453">axiom_text_set_optimize</a> (struct axiom_text *om_text, const <a class="el" href="structaxutil__env.html">axutil_env_t</a> *env, axis2_bool_t optimize)</td></tr>

<tr><td class="memItemLeft" nowrap align="right" valign="top">AXIS2_EXTERN <br>
axis2_status_t&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__axiom__text.html#g636febf81c7bd801197ba1dd6c3967ee">axiom_text_set_is_binary</a> (struct axiom_text *om_text, const <a class="el" href="structaxutil__env.html">axutil_env_t</a> *env, const axis2_bool_t is_binary)</td></tr>

<tr><td class="memItemLeft" nowrap align="right" valign="top">AXIS2_EXTERN <br>
axiom_data_handler_t *&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__axiom__text.html#ge5eaee2c45f9f4d56fac397aa80b92ee">axiom_text_get_data_handler</a> (struct axiom_text *om_text, const <a class="el" href="structaxutil__env.html">axutil_env_t</a> *env)</td></tr>

<tr><td class="memItemLeft" nowrap align="right" valign="top">AXIS2_EXTERN <br>
axis2_char_t *&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__axiom__text.html#g7f941bcbbeda74c50e117100e190fdc6">axiom_text_get_content_id</a> (struct axiom_text *om_text, const <a class="el" href="structaxutil__env.html">axutil_env_t</a> *env)</td></tr>

<tr><td class="memItemLeft" nowrap align="right" valign="top">AXIS2_EXTERN <br>
axis2_status_t&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__axiom__text.html#g6b6f7fea7e2abc3798f92a4a39f42070">axiom_text_set_content_id</a> (axiom_text_t *om_text, const <a class="el" href="structaxutil__env.html">axutil_env_t</a> *env, const axis2_char_t *content_id)</td></tr>

<tr><td class="memItemLeft" nowrap align="right" valign="top">AXIS2_EXTERN <br>
axis2_status_t&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__axiom__text.html#g825ec8b46977acc79eeb695d741b6d19">axiom_text_set_is_swa</a> (struct axiom_text *om_text, const <a class="el" href="structaxutil__env.html">axutil_env_t</a> *env, const axis2_bool_t is_swa)</td></tr>

</table>
<hr><h2>Function Documentation</h2>
<a class="anchor" name="g6ec9f4843b931cbf3220ae0505aa933b"></a><!-- doxytag: member="axiom_text.h::axiom_text_create" ref="g6ec9f4843b931cbf3220ae0505aa933b" args="(const axutil_env_t *env, axiom_node_t *parent, const axis2_char_t *value, axiom_node_t **node)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">AXIS2_EXTERN axiom_text_t* axiom_text_create           </td>
          <td>(</td>
          <td class="paramtype">const <a class="el" href="structaxutil__env.html">axutil_env_t</a> *&nbsp;</td>
          <td class="paramname"> <em>env</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">axiom_node_t *&nbsp;</td>
          <td class="paramname"> <em>parent</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const axis2_char_t *&nbsp;</td>
          <td class="paramname"> <em>value</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">axiom_node_t **&nbsp;</td>
          <td class="paramname"> <em>node</em></td><td>&nbsp;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td><td width="100%"></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
Creates a new text struct <dl compact><dt><b>Parameters:</b></dt><dd>
  <table border="0" cellspacing="2" cellpadding="0">
    <tr><td valign="top"></td><td valign="top"><em>env</em>&nbsp;</td><td>Environment. </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>parent</em>&nbsp;</td><td>parent of the new node. Optinal, can be NULL. The parent element must be of type AXIOM_ELEMENT </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>value</em>&nbsp;</td><td>Text value. Optinal, can be NULL. </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>comment_node</em>&nbsp;</td><td>This is an out parameter. cannot be NULL. Returns the node corresponding to the text struct created. Node type will be set to AXIOM_TEXT </td></tr>
  </table>
</dl>
<dl class="return" compact><dt><b>Returns:</b></dt><dd>pointer to newly created text struct </dd></dl>

</div>
</div><p>
<a class="anchor" name="g680d66526e3cbc1179a65f4185f29910"></a><!-- doxytag: member="axiom_text.h::axiom_text_create_str" ref="g680d66526e3cbc1179a65f4185f29910" args="(const axutil_env_t *env, axiom_node_t *parent, axutil_string_t *value, axiom_node_t **node)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">AXIS2_EXTERN axiom_text_t* axiom_text_create_str           </td>
          <td>(</td>
          <td class="paramtype">const <a class="el" href="structaxutil__env.html">axutil_env_t</a> *&nbsp;</td>
          <td class="paramname"> <em>env</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">axiom_node_t *&nbsp;</td>
          <td class="paramname"> <em>parent</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">axutil_string_t *&nbsp;</td>
          <td class="paramname"> <em>value</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">axiom_node_t **&nbsp;</td>
          <td class="paramname"> <em>node</em></td><td>&nbsp;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td><td width="100%"></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
Creates a new text struct <dl compact><dt><b>Parameters:</b></dt><dd>
  <table border="0" cellspacing="2" cellpadding="0">
    <tr><td valign="top"></td><td valign="top"><em>env</em>&nbsp;</td><td>Environment. </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>parent</em>&nbsp;</td><td>parent of the new node. Optinal, can be NULL. The parent element must be of type AXIOM_ELEMENT </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>value</em>&nbsp;</td><td>Text value string. Optinal, can be NULL. </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>comment_node</em>&nbsp;</td><td>This is an out parameter. cannot be NULL. Returns the node corresponding to the text struct created. Node type will be set to AXIOM_TEXT </td></tr>
  </table>
</dl>
<dl class="return" compact><dt><b>Returns:</b></dt><dd>pointer to newly created text struct </dd></dl>

</div>
</div><p>
<a class="anchor" name="gab4be5d4a50ee8c04058d77957abef1c"></a><!-- doxytag: member="axiom_text.h::axiom_text_create_with_data_handler" ref="gab4be5d4a50ee8c04058d77957abef1c" args="(const axutil_env_t *env, axiom_node_t *parent, axiom_data_handler_t *data_handler, axiom_node_t **node)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">AXIS2_EXTERN axiom_text_t* axiom_text_create_with_data_handler           </td>
          <td>(</td>
          <td class="paramtype">const <a class="el" href="structaxutil__env.html">axutil_env_t</a> *&nbsp;</td>
          <td class="paramname"> <em>env</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">axiom_node_t *&nbsp;</td>
          <td class="paramname"> <em>parent</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">axiom_data_handler_t *&nbsp;</td>
          <td class="paramname"> <em>data_handler</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">axiom_node_t **&nbsp;</td>
          <td class="paramname"> <em>node</em></td><td>&nbsp;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td><td width="100%"></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
Creates a new text struct for binary data (MTOM) <dl compact><dt><b>Parameters:</b></dt><dd>
  <table border="0" cellspacing="2" cellpadding="0">
    <tr><td valign="top"></td><td valign="top"><em>env</em>&nbsp;</td><td>Environment. </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>parent</em>&nbsp;</td><td>parent of the new node. Optinal, can be NULL. The parent element must be of type AXIOM_ELEMENT </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>data_handler</em>&nbsp;</td><td>data handler. Optinal, can be NULL. </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>comment_node</em>&nbsp;</td><td>This is an out parameter. cannot be NULL. Returns the node corresponding to the text struct created. Node type will be set to AXIOM_TEXT </td></tr>
  </table>
</dl>
<dl class="return" compact><dt><b>Returns:</b></dt><dd>pointer to newly created text struct </dd></dl>

</div>
</div><p>
<a class="anchor" name="g0eb6a7b65c61cee5e6a5a5d1a93ab44e"></a><!-- doxytag: member="axiom_text.h::axiom_text_free" ref="g0eb6a7b65c61cee5e6a5a5d1a93ab44e" args="(struct axiom_text *om_text, const axutil_env_t *env)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">AXIS2_EXTERN void axiom_text_free           </td>
          <td>(</td>
          <td class="paramtype">struct axiom_text *&nbsp;</td>
          <td class="paramname"> <em>om_text</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const <a class="el" href="structaxutil__env.html">axutil_env_t</a> *&nbsp;</td>
          <td class="paramname"> <em>env</em></td><td>&nbsp;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td><td width="100%"></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
Free an axiom_text struct <dl compact><dt><b>Parameters:</b></dt><dd>
  <table border="0" cellspacing="2" cellpadding="0">
    <tr><td valign="top"></td><td valign="top"><em>env</em>&nbsp;</td><td>environment. </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>om_text</em>&nbsp;</td><td>pointer to om text struct to be freed. </td></tr>
  </table>
</dl>
<dl class="return" compact><dt><b>Returns:</b></dt><dd>satus of the op. AXIS2_SUCCESS on success AXIS2_FAILURE on error. </dd></dl>

</div>
</div><p>
<a class="anchor" name="g7f941bcbbeda74c50e117100e190fdc6"></a><!-- doxytag: member="axiom_text.h::axiom_text_get_content_id" ref="g7f941bcbbeda74c50e117100e190fdc6" args="(struct axiom_text *om_text, const axutil_env_t *env)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">AXIS2_EXTERN axis2_char_t* axiom_text_get_content_id           </td>
          <td>(</td>
          <td class="paramtype">struct axiom_text *&nbsp;</td>
          <td class="paramname"> <em>om_text</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const <a class="el" href="structaxutil__env.html">axutil_env_t</a> *&nbsp;</td>
          <td class="paramname"> <em>env</em></td><td>&nbsp;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td><td width="100%"></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
Get the Content ID of the OM text <dl compact><dt><b>Parameters:</b></dt><dd>
  <table border="0" cellspacing="2" cellpadding="0">
    <tr><td valign="top"></td><td valign="top"><em>om_text</em>&nbsp;</td><td>pointer to the OM Text struct </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>environment</em>&nbsp;</td><td>Environment. MUST NOT be NULL</td></tr>
  </table>
</dl>
<dl class="return" compact><dt><b>Returns:</b></dt><dd>the content id of the OM text </dd></dl>

</div>
</div><p>
<a class="anchor" name="ge5eaee2c45f9f4d56fac397aa80b92ee"></a><!-- doxytag: member="axiom_text.h::axiom_text_get_data_handler" ref="ge5eaee2c45f9f4d56fac397aa80b92ee" args="(struct axiom_text *om_text, const axutil_env_t *env)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">AXIS2_EXTERN axiom_data_handler_t* axiom_text_get_data_handler           </td>
          <td>(</td>
          <td class="paramtype">struct axiom_text *&nbsp;</td>
          <td class="paramname"> <em>om_text</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const <a class="el" href="structaxutil__env.html">axutil_env_t</a> *&nbsp;</td>
          <td class="paramname"> <em>env</em></td><td>&nbsp;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td><td width="100%"></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
Get the data handler of the OM text <dl compact><dt><b>Parameters:</b></dt><dd>
  <table border="0" cellspacing="2" cellpadding="0">
    <tr><td valign="top"></td><td valign="top"><em>om_text</em>&nbsp;</td><td>pointer to the OM Text struct </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>environment</em>&nbsp;</td><td>Environment. MUST NOT be NULL</td></tr>
  </table>
</dl>
<dl class="return" compact><dt><b>Returns:</b></dt><dd>the data handler of the OM text </dd></dl>

</div>
</div><p>
<a class="anchor" name="g4025d1d2319b08b8cc797a99a316ae6b"></a><!-- doxytag: member="axiom_text.h::axiom_text_get_text" ref="g4025d1d2319b08b8cc797a99a316ae6b" args="(axiom_text_t *om_text, const axutil_env_t *env)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">AXIS2_EXTERN const axis2_char_t* axiom_text_get_text           </td>
          <td>(</td>
          <td class="paramtype">axiom_text_t *&nbsp;</td>
          <td class="paramname"> <em>om_text</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const <a class="el" href="structaxutil__env.html">axutil_env_t</a> *&nbsp;</td>
          <td class="paramname"> <em>env</em></td><td>&nbsp;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td><td width="100%"></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
Gets text value from the text node even when MTOM optimized <dl compact><dt><b>Parameters:</b></dt><dd>
  <table border="0" cellspacing="2" cellpadding="0">
    <tr><td valign="top"></td><td valign="top"><em>om_text</em>&nbsp;</td><td>om_text struct </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>env</em>&nbsp;</td><td>environment. </td></tr>
  </table>
</dl>
<dl class="return" compact><dt><b>Returns:</b></dt><dd>text value base64 encoded text when MTOM optimized, NULL is returned if there is no text value. </dd></dl>

</div>
</div><p>
<a class="anchor" name="ga620cffb41a4f6c01ddba83e2a52fb97"></a><!-- doxytag: member="axiom_text.h::axiom_text_get_value" ref="ga620cffb41a4f6c01ddba83e2a52fb97" args="(struct axiom_text *om_text, const axutil_env_t *env)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">AXIS2_EXTERN const axis2_char_t* axiom_text_get_value           </td>
          <td>(</td>
          <td class="paramtype">struct axiom_text *&nbsp;</td>
          <td class="paramname"> <em>om_text</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const <a class="el" href="structaxutil__env.html">axutil_env_t</a> *&nbsp;</td>
          <td class="paramname"> <em>env</em></td><td>&nbsp;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td><td width="100%"></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
Gets text value <dl compact><dt><b>Parameters:</b></dt><dd>
  <table border="0" cellspacing="2" cellpadding="0">
    <tr><td valign="top"></td><td valign="top"><em>om_text</em>&nbsp;</td><td>om_text struct </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>env</em>&nbsp;</td><td>environment. </td></tr>
  </table>
</dl>
<dl class="return" compact><dt><b>Returns:</b></dt><dd>text value , NULL is returned if there is no text value. </dd></dl>

</div>
</div><p>
<a class="anchor" name="gd311692e5f2cf142803f4f5c48de0745"></a><!-- doxytag: member="axiom_text.h::axiom_text_get_value_str" ref="gd311692e5f2cf142803f4f5c48de0745" args="(struct axiom_text *om_text, const axutil_env_t *env)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">AXIS2_EXTERN axutil_string_t* axiom_text_get_value_str           </td>
          <td>(</td>
          <td class="paramtype">struct axiom_text *&nbsp;</td>
          <td class="paramname"> <em>om_text</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const <a class="el" href="structaxutil__env.html">axutil_env_t</a> *&nbsp;</td>
          <td class="paramname"> <em>env</em></td><td>&nbsp;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td><td width="100%"></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
Gets text value <dl compact><dt><b>Parameters:</b></dt><dd>
  <table border="0" cellspacing="2" cellpadding="0">
    <tr><td valign="top"></td><td valign="top"><em>om_text</em>&nbsp;</td><td>om_text struct </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>env</em>&nbsp;</td><td>environment. </td></tr>
  </table>
</dl>
<dl class="return" compact><dt><b>Returns:</b></dt><dd>text valu stringe , NULL is returned if there is no text value. </dd></dl>

</div>
</div><p>
<a class="anchor" name="gba5bb858827a9aee46b829926862dc46"></a><!-- doxytag: member="axiom_text.h::axiom_text_serialize" ref="gba5bb858827a9aee46b829926862dc46" args="(struct axiom_text *om_text, const axutil_env_t *env, axiom_output_t *om_output)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">AXIS2_EXTERN axis2_status_t axiom_text_serialize           </td>
          <td>(</td>
          <td class="paramtype">struct axiom_text *&nbsp;</td>
          <td class="paramname"> <em>om_text</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const <a class="el" href="structaxutil__env.html">axutil_env_t</a> *&nbsp;</td>
          <td class="paramname"> <em>env</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype"><a class="el" href="group__axiom__output.html#gfe1ea804d7a8179e85371f065cd9df09">axiom_output_t</a> *&nbsp;</td>
          <td class="paramname"> <em>om_output</em></td><td>&nbsp;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td><td width="100%"></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
Serialize op <dl compact><dt><b>Parameters:</b></dt><dd>
  <table border="0" cellspacing="2" cellpadding="0">
    <tr><td valign="top"></td><td valign="top"><em>env</em>&nbsp;</td><td>environment. </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>om_text</em>&nbsp;</td><td>pointer to om text struct to be serialized. </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>om_output</em>&nbsp;</td><td>AXIOM output handler to be used in serializing. </td></tr>
  </table>
</dl>
<dl class="return" compact><dt><b>Returns:</b></dt><dd>satus of the op. AXIS2_SUCCESS on success, AXIS2_FAILURE on error </dd></dl>

</div>
</div><p>
<a class="anchor" name="g6b6f7fea7e2abc3798f92a4a39f42070"></a><!-- doxytag: member="axiom_text.h::axiom_text_set_content_id" ref="g6b6f7fea7e2abc3798f92a4a39f42070" args="(axiom_text_t *om_text, const axutil_env_t *env, const axis2_char_t *content_id)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">AXIS2_EXTERN axis2_status_t axiom_text_set_content_id           </td>
          <td>(</td>
          <td class="paramtype">axiom_text_t *&nbsp;</td>
          <td class="paramname"> <em>om_text</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const <a class="el" href="structaxutil__env.html">axutil_env_t</a> *&nbsp;</td>
          <td class="paramname"> <em>env</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const axis2_char_t *&nbsp;</td>
          <td class="paramname"> <em>content_id</em></td><td>&nbsp;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td><td width="100%"></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
Set the content ID of the OM text <dl compact><dt><b>Parameters:</b></dt><dd>
  <table border="0" cellspacing="2" cellpadding="0">
    <tr><td valign="top"></td><td valign="top"><em>om_text</em>&nbsp;</td><td>pointer to the OM Text struct </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>environment</em>&nbsp;</td><td>Environment. MUST NOT be NULL </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>content_id</em>&nbsp;</td><td>the content ID </td></tr>
  </table>
</dl>
<dl class="return" compact><dt><b>Returns:</b></dt><dd>status of the op. AXIS2_SUCCESS on success else AXIS2_FAILURE </dd></dl>

</div>
</div><p>
<a class="anchor" name="g636febf81c7bd801197ba1dd6c3967ee"></a><!-- doxytag: member="axiom_text.h::axiom_text_set_is_binary" ref="g636febf81c7bd801197ba1dd6c3967ee" args="(struct axiom_text *om_text, const axutil_env_t *env, const axis2_bool_t is_binary)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">AXIS2_EXTERN axis2_status_t axiom_text_set_is_binary           </td>
          <td>(</td>
          <td class="paramtype">struct axiom_text *&nbsp;</td>
          <td class="paramname"> <em>om_text</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const <a class="el" href="structaxutil__env.html">axutil_env_t</a> *&nbsp;</td>
          <td class="paramname"> <em>env</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const axis2_bool_t&nbsp;</td>
          <td class="paramname"> <em>is_binary</em></td><td>&nbsp;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td><td width="100%"></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
<dl compact><dt><b>Parameters:</b></dt><dd>
  <table border="0" cellspacing="2" cellpadding="0">
    <tr><td valign="top"></td><td valign="top"><em>om_text</em>&nbsp;</td><td>text value </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>env</em>&nbsp;</td><td>environment </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>is_binary</em>&nbsp;</td><td></td></tr>
  </table>
</dl>
<dl class="return" compact><dt><b>Returns:</b></dt><dd>AXIS2_SUCCESS </dd></dl>

</div>
</div><p>
<a class="anchor" name="g825ec8b46977acc79eeb695d741b6d19"></a><!-- doxytag: member="axiom_text.h::axiom_text_set_is_swa" ref="g825ec8b46977acc79eeb695d741b6d19" args="(struct axiom_text *om_text, const axutil_env_t *env, const axis2_bool_t is_swa)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">AXIS2_EXTERN axis2_status_t axiom_text_set_is_swa           </td>
          <td>(</td>
          <td class="paramtype">struct axiom_text *&nbsp;</td>
          <td class="paramname"> <em>om_text</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const <a class="el" href="structaxutil__env.html">axutil_env_t</a> *&nbsp;</td>
          <td class="paramname"> <em>env</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const axis2_bool_t&nbsp;</td>
          <td class="paramname"> <em>is_swa</em></td><td>&nbsp;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td><td width="100%"></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
Sets the boolean value indicating if the binary data associated with the text node should be sent in SOAP with Attachment (SwA) format or not. <dl compact><dt><b>Parameters:</b></dt><dd>
  <table border="0" cellspacing="2" cellpadding="0">
    <tr><td valign="top"></td><td valign="top"><em>om_text</em>&nbsp;</td><td>text node </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>env</em>&nbsp;</td><td>environment </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>is_swa</em>&nbsp;</td><td>bool value, AXIS2_TRUE means use SwA format, else AXIS2_FALSE </td></tr>
  </table>
</dl>
<dl class="return" compact><dt><b>Returns:</b></dt><dd>AXIS2_SUCCESS </dd></dl>

</div>
</div><p>
<a class="anchor" name="g92afcea629a6c1aba1bb66203e8b0453"></a><!-- doxytag: member="axiom_text.h::axiom_text_set_optimize" ref="g92afcea629a6c1aba1bb66203e8b0453" args="(struct axiom_text *om_text, const axutil_env_t *env, axis2_bool_t optimize)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">AXIS2_EXTERN axis2_status_t axiom_text_set_optimize           </td>
          <td>(</td>
          <td class="paramtype">struct axiom_text *&nbsp;</td>
          <td class="paramname"> <em>om_text</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const <a class="el" href="structaxutil__env.html">axutil_env_t</a> *&nbsp;</td>
          <td class="paramname"> <em>env</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">axis2_bool_t&nbsp;</td>
          <td class="paramname"> <em>optimize</em></td><td>&nbsp;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td><td width="100%"></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
Sets optimized <dl compact><dt><b>Parameters:</b></dt><dd>
  <table border="0" cellspacing="2" cellpadding="0">
    <tr><td valign="top"></td><td valign="top"><em>om_text</em>&nbsp;</td><td>pointer to om_text struct </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>env</em>&nbsp;</td><td>environment  optimize value </td></tr>
  </table>
</dl>
<dl class="return" compact><dt><b>Returns:</b></dt><dd>AXIS2_SUCCESS </dd></dl>

</div>
</div><p>
<a class="anchor" name="g38e8fc267df5245ee5b65b62c37ecac9"></a><!-- doxytag: member="axiom_text.h::axiom_text_set_value" ref="g38e8fc267df5245ee5b65b62c37ecac9" args="(struct axiom_text *om_text, const axutil_env_t *env, const axis2_char_t *value)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">AXIS2_EXTERN axis2_status_t axiom_text_set_value           </td>
          <td>(</td>
          <td class="paramtype">struct axiom_text *&nbsp;</td>
          <td class="paramname"> <em>om_text</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const <a class="el" href="structaxutil__env.html">axutil_env_t</a> *&nbsp;</td>
          <td class="paramname"> <em>env</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const axis2_char_t *&nbsp;</td>
          <td class="paramname"> <em>value</em></td><td>&nbsp;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td><td width="100%"></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
Sets the text value <dl compact><dt><b>Parameters:</b></dt><dd>
  <table border="0" cellspacing="2" cellpadding="0">
    <tr><td valign="top"></td><td valign="top"><em>om_text</em>&nbsp;</td><td>om_text struct </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>env</em>&nbsp;</td><td>environment. </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>value</em>&nbsp;</td><td>text </td></tr>
  </table>
</dl>
<dl class="return" compact><dt><b>Returns:</b></dt><dd>status of the op. AXIS2_SUCCESS on success, AXIS2_FAILURE on error. </dd></dl>

</div>
</div><p>
<a class="anchor" name="g345a35e52d57a4626006d527ba1e7b63"></a><!-- doxytag: member="axiom_text.h::axiom_text_set_value_str" ref="g345a35e52d57a4626006d527ba1e7b63" args="(struct axiom_text *om_text, const axutil_env_t *env, axutil_string_t *value)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">AXIS2_EXTERN axis2_status_t axiom_text_set_value_str           </td>
          <td>(</td>
          <td class="paramtype">struct axiom_text *&nbsp;</td>
          <td class="paramname"> <em>om_text</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const <a class="el" href="structaxutil__env.html">axutil_env_t</a> *&nbsp;</td>
          <td class="paramname"> <em>env</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">axutil_string_t *&nbsp;</td>
          <td class="paramname"> <em>value</em></td><td>&nbsp;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td><td width="100%"></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
Sets the text value <dl compact><dt><b>Parameters:</b></dt><dd>
  <table border="0" cellspacing="2" cellpadding="0">
    <tr><td valign="top"></td><td valign="top"><em>om_text</em>&nbsp;</td><td>om_text struct </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>env</em>&nbsp;</td><td>environment. </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>value</em>&nbsp;</td><td>string </td></tr>
  </table>
</dl>
<dl class="return" compact><dt><b>Returns:</b></dt><dd>status of the op. AXIS2_SUCCESS on success, AXIS2_FAILURE on error. </dd></dl>

</div>
</div><p>
<hr size="1"><address style="text-align: right;"><small>Generated on Fri Apr 17 11:49:44 2009 for Axis2/C by&nbsp;
<a href="http://www.doxygen.org/index.html">
<img src="doxygen.png" alt="doxygen" align="middle" border="0"></a> 1.5.3 </small></address>
</body>
</html>


<|start_filename|>util/test/date_time/date_time_test.c<|end_filename|>
#include <axutil_date_time.h>
#include <time.h>
#include <axutil_date_time_util.h>
#include <stdio.h>
#include <axutil_env.h>
#include "../util/create_env.h"
#include "../test_common/axis2c_test_macros.h"

/** @brief test_rand 
 *  *   deserialize and serialize the time 
 *   */

void test_date_time_deserialize_time(axutil_env_t *env)
{
	START_TEST_CASE("test_date_time_deserialize_time");

	axutil_date_time_t *date_time = NULL;
	axis2_char_t *time_str = "22:45:12";
    axis2_status_t status = AXIS2_FAILURE;

    date_time = axutil_date_time_create(env);

    TEST_ASSERT_VOID(date_time);

    status = axutil_date_time_deserialize_time(date_time, env, time_str);

    EXPECT_EQ(status,AXIS2_SUCCESS);
    EXPECT_EQ(axutil_date_time_get_hour(date_time,env),22);
    EXPECT_EQ(axutil_date_time_get_minute(date_time,env),45);
    EXPECT_EQ(axutil_date_time_get_second(date_time,env),12);

    axutil_date_time_free(date_time,env);

    END_TEST_CASE();
}

void test_date_time_deserialize_date(axutil_env_t *env)
{
	START_TEST_CASE("test_date_time_deserialize_date");

	axutil_date_time_t *date_time = NULL;
    axis2_char_t *date_str = "2000-11-12";
    axis2_status_t status = AXIS2_FAILURE;

    date_time = axutil_date_time_create(env);

    TEST_ASSERT_VOID(date_time);

    status = axutil_date_time_deserialize_date(date_time, env, date_str);

    EXPECT_EQ(status,AXIS2_SUCCESS);
    EXPECT_EQ(axutil_date_time_get_year(date_time,env),2000);
    EXPECT_EQ(axutil_date_time_get_month(date_time,env),11);
    EXPECT_EQ(axutil_date_time_get_date(date_time,env),12);

    axutil_date_time_free(date_time,env);

    END_TEST_CASE();
}

void test_axutil_date_time_utc_to_local(axutil_env_t *env)
{
	START_TEST_CASE("test_axutil_date_time_utc_to_local");

	axutil_date_time_t *date_time = NULL;
	axis2_status_t status = AXIS2_FAILURE;

	date_time = axutil_date_time_create(env);

	TEST_ASSERT_VOID(date_time);

	status = axutil_date_time_set_date_time(date_time, env, 2000, 1, 1, 12, 18, 57, 799);
	axutil_date_time_set_time_zone(date_time, env,AXIS2_TRUE,10,0);

	EXPECT_EQ(status,AXIS2_SUCCESS);

	axutil_date_time_t *adjusted_time = axutil_date_time_utc_to_local(date_time,env,AXIS2_TRUE,10,00);

	TEST_ASSERT_VOID(adjusted_time);

	EXPECT_EQ(axutil_date_time_get_year(adjusted_time,env),2000);
	EXPECT_EQ(axutil_date_time_get_month(adjusted_time,env),1);
	EXPECT_EQ(axutil_date_time_get_date(adjusted_time,env),1);
	EXPECT_EQ(axutil_date_time_get_hour(adjusted_time,env),22);

	axutil_date_time_free(adjusted_time,env);

    adjusted_time = axutil_date_time_utc_to_local(date_time,env,AXIS2_FALSE,22,00);

	TEST_ASSERT_VOID(adjusted_time);

	EXPECT_EQ(axutil_date_time_get_year(adjusted_time,env),1999);
	EXPECT_EQ(axutil_date_time_get_month(adjusted_time,env),12);
	EXPECT_EQ(axutil_date_time_get_date(adjusted_time,env),31);
	EXPECT_EQ(axutil_date_time_get_hour(adjusted_time,env),14);

    axutil_date_time_free(adjusted_time,env);

    adjusted_time = axutil_date_time_utc_to_local(date_time,env,AXIS2_TRUE,12,00);

	TEST_ASSERT_VOID(adjusted_time);

	EXPECT_EQ(axutil_date_time_get_year(adjusted_time,env),2000);
	EXPECT_EQ(axutil_date_time_get_month(adjusted_time,env),1);
	EXPECT_EQ(axutil_date_time_get_date(adjusted_time,env),2);
	EXPECT_EQ(axutil_date_time_get_hour(adjusted_time,env),0);


	axutil_date_time_free(adjusted_time,env);

	END_TEST_CASE();
}


void test_date_time_deserialize_date_time(axutil_env_t *env)
{
	START_TEST_CASE("test_date_time_deserialize_date_time");
    axutil_date_time_t *date_time = NULL;
    axutil_date_time_t *ref = NULL;
	axutil_date_time_comp_result_t compare_res = AXIS2_DATE_TIME_COMP_RES_FAILURE;
    axis2_char_t *date_time_str = "2000-11-12T12:30:24";
    axis2_status_t status = AXIS2_FAILURE;

    date_time = axutil_date_time_create(env);

	TEST_ASSERT_VOID(date_time);

    status = axutil_date_time_deserialize_date_time(date_time, env, date_time_str);

    EXPECT_EQ(status,AXIS2_SUCCESS);

    ref = axutil_date_time_create(env);

    TEST_ASSERT_VOID(ref);

    compare_res = axutil_date_time_compare(date_time, env, ref);

    EXPECT_NEQ(compare_res,AXIS2_DATE_TIME_COMP_RES_FAILURE);

    status = axutil_date_time_deserialize_date_time(ref, env, date_time_str);

    EXPECT_EQ(status,AXIS2_SUCCESS);

    compare_res = axutil_date_time_compare(date_time, env, ref);

    EXPECT_EQ(compare_res,AXIS2_DATE_TIME_COMP_RES_EQUAL);

    axis2_char_t *date_time2_str = "2000-11-12T12:77:24";/*Error time*/

    status = axutil_date_time_deserialize_time_with_time_zone(date_time, env, date_time2_str);

    EXPECT_EQ(status,AXIS2_FAILURE);


    axutil_date_time_free(date_time,env);
    axutil_date_time_free(ref, env);

	END_TEST_CASE();
}

void test_date_time_deserialize_time_with_time_zone(axutil_env_t *env)
{
	START_TEST_CASE("test_axutil_date_time_deserialize_time_with_time_zone");
    axutil_date_time_t *date_time = NULL;
    axis2_char_t *date_time_str = "12:30:24+10:30";

    axis2_status_t status = AXIS2_FAILURE;

    date_time = axutil_date_time_create(env);

	TEST_ASSERT_VOID(date_time);

    status = axutil_date_time_deserialize_time_with_time_zone(date_time, env, date_time_str);

    EXPECT_EQ(status,AXIS2_SUCCESS);

    axis2_char_t *date_time2_str = "12:30:24+10:70";/*Error timezone*/

    status = axutil_date_time_deserialize_time_with_time_zone(date_time, env, date_time2_str);

    EXPECT_EQ(status,AXIS2_FAILURE);

    axis2_char_t *date_time3_str = "12:30:24+20:30";/*Error timezone*/

    status = axutil_date_time_deserialize_time_with_time_zone(date_time, env, date_time3_str);

    EXPECT_EQ(status,AXIS2_FAILURE);

    axutil_date_time_free(date_time,env);

	END_TEST_CASE();
}

void test_date_time(axutil_env_t *env)
{
	START_TEST_CASE("test_date_time");
    axutil_date_time_t *date_time = NULL;
    axutil_date_time_t *ref = NULL;
    axutil_date_time_t *date_time_offset = NULL;

    axis2_status_t status = AXIS2_FAILURE;
    axis2_char_t *t_str = NULL, *d_str = NULL, *dt_str = NULL;
    int year , month , date , hour , min , sec , msec;

    date_time_offset = axutil_date_time_create_with_offset(env, 100);

    TEST_ASSERT_VOID(date_time_offset);

    ref = axutil_date_time_create(env);

    TEST_ASSERT_VOID(ref);

    date_time = axutil_date_time_create(env);

    TEST_ASSERT_VOID(date_time);

    /*Set date time*/
    status = axutil_date_time_set_date_time(date_time, env, 2008, 1, 8, 12, 18, 57, 799);
    
    EXPECT_EQ(status,AXIS2_SUCCESS);

    t_str = axutil_date_time_serialize_time(date_time, env);

    EXPECT_NOT_NULL(t_str);
    EXPECT_STREQ(t_str,"12:18:57.799Z");
    AXIS2_FREE(env->allocator,t_str);

    d_str = axutil_date_time_serialize_date(date_time, env);

    EXPECT_NOT_NULL(d_str);
    EXPECT_STREQ(d_str,"2008-01-08");
    AXIS2_FREE(env->allocator,d_str);

    dt_str = axutil_date_time_serialize_date_time(date_time, env);

    EXPECT_NOT_NULL(dt_str);
    EXPECT_STREQ(dt_str,"2008-01-08T12:18:57.799Z");
    AXIS2_FREE(env->allocator,dt_str);

    year = axutil_date_time_get_year(date_time,env);
    month=axutil_date_time_get_month(date_time,env);
    date = axutil_date_time_get_date(date_time,env);
    hour = axutil_date_time_get_hour(date_time,env);
    min  = axutil_date_time_get_minute(date_time,env);
    sec  = axutil_date_time_get_second(date_time,env);
    msec = axutil_date_time_get_msec(date_time,env);

    EXPECT_EQ(year,2008);
    EXPECT_EQ(month,1);
    EXPECT_EQ(date,8);
    EXPECT_EQ(hour,12);
    EXPECT_EQ(min,18);
    EXPECT_EQ(sec,57);
    EXPECT_EQ(msec,799);

    axutil_date_time_free(date_time,env);
    axutil_date_time_free(ref, env);
    axutil_date_time_free(date_time_offset, env);

    END_TEST_CASE();
}

int main()
{
    START_TEST();
    axutil_env_t * env = create_environment();

    test_date_time(env);
    test_date_time_deserialize_time(env);
    test_date_time_deserialize_date(env);
    test_date_time_deserialize_date_time(env);
    test_date_time_deserialize_time_with_time_zone(env);
    test_axutil_date_time_utc_to_local(env);

    axutil_env_free(env);
    END_TEST();
    return 0;
}



<|start_filename|>xdocs/api/html/group__axutil__dll__desc.html<|end_filename|>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html><head><meta http-equiv="Content-Type" content="text/html;charset=UTF-8">
<title>Axis2/C: DLL description</title>
<link href="doxygen.css" rel="stylesheet" type="text/css">
<link href="tabs.css" rel="stylesheet" type="text/css">
</head><body>
<!-- Generated by Doxygen 1.5.3 -->
<div class="tabs">
  <ul>
    <li><a href="index.html"><span>Main&nbsp;Page</span></a></li>
    <li><a href="modules.html"><span>Modules</span></a></li>
    <li><a href="annotated.html"><span>Classes</span></a></li>
    <li><a href="files.html"><span>Files</span></a></li>
    <li><a href="dirs.html"><span>Directories</span></a></li>
    <li><a href="pages.html"><span>Related&nbsp;Pages</span></a></li>
    <li><a href="examples.html"><span>Examples</span></a></li>
    <li>
      <form action="search.php" method="get">
        <table cellspacing="0" cellpadding="0" border="0">
          <tr>
            <td><label>&nbsp;<u>S</u>earch&nbsp;for&nbsp;</label></td>
            <td><input type="text" name="query" value="" size="20" accesskey="s"/></td>
          </tr>
        </table>
      </form>
    </li>
  </ul>
</div>
<h1>DLL description<br>
<small>
[<a class="el" href="group__axis2__util.html">utilities</a>]</small>
</h1><table border="0" cellpadding="0" cellspacing="0">
<tr><td></td></tr>
<tr><td colspan="2"><br><h2>Typedefs</h2></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="g3fbf5d3d54ce7a4630f3d8646b2d040b"></a><!-- doxytag: member="axutil_dll_desc::axutil_dll_desc_t" ref="g3fbf5d3d54ce7a4630f3d8646b2d040b" args="" -->
typedef struct <br>
axutil_dll_desc&nbsp;</td><td class="memItemRight" valign="bottom"><b>axutil_dll_desc_t</b></td></tr>

<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="g62b161d5232f3c3ab7ca639693f7ec21"></a><!-- doxytag: member="axutil_dll_desc::CREATE_FUNCT" ref="g62b161d5232f3c3ab7ca639693f7ec21" args=")(void **inst, const axutil_env_t *env)" -->
typedef int(*&nbsp;</td><td class="memItemRight" valign="bottom"><b>CREATE_FUNCT</b> )(void **inst, const <a class="el" href="structaxutil__env.html">axutil_env_t</a> *env)</td></tr>

<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="g38d993342246dbee82270178b79b1c93"></a><!-- doxytag: member="axutil_dll_desc::DELETE_FUNCT" ref="g38d993342246dbee82270178b79b1c93" args=")(void *inst, const axutil_env_t *env)" -->
typedef int(*&nbsp;</td><td class="memItemRight" valign="bottom"><b>DELETE_FUNCT</b> )(void *inst, const <a class="el" href="structaxutil__env.html">axutil_env_t</a> *env)</td></tr>

<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="g2c6f23712321f74b61db17aa70ecb1b3"></a><!-- doxytag: member="axutil_dll_desc::axis2_dll_type_t" ref="g2c6f23712321f74b61db17aa70ecb1b3" args="" -->
typedef int&nbsp;</td><td class="memItemRight" valign="bottom"><b>axis2_dll_type_t</b></td></tr>

<tr><td colspan="2"><br><h2>Functions</h2></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top">AXIS2_EXTERN <br>
axutil_dll_desc_t *&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__axutil__dll__desc.html#gbf1b06f952b42a8d5d0fe9bed8796e56">axutil_dll_desc_create</a> (const <a class="el" href="structaxutil__env.html">axutil_env_t</a> *env)</td></tr>

<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="g64b825421301ea4a814529b9a4191400"></a><!-- doxytag: member="axutil_dll_desc::axutil_dll_desc_free_void_arg" ref="g64b825421301ea4a814529b9a4191400" args="(void *dll_desc, const axutil_env_t *env)" -->
AXIS2_EXTERN void&nbsp;</td><td class="memItemRight" valign="bottom"><b>axutil_dll_desc_free_void_arg</b> (void *dll_desc, const <a class="el" href="structaxutil__env.html">axutil_env_t</a> *env)</td></tr>

<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="g3152465c0291056b7fb4678b8dea917d"></a><!-- doxytag: member="axutil_dll_desc::axutil_dll_desc_free" ref="g3152465c0291056b7fb4678b8dea917d" args="(axutil_dll_desc_t *dll_desc, const axutil_env_t *env)" -->
AXIS2_EXTERN void&nbsp;</td><td class="memItemRight" valign="bottom"><b>axutil_dll_desc_free</b> (axutil_dll_desc_t *dll_desc, const <a class="el" href="structaxutil__env.html">axutil_env_t</a> *env)</td></tr>

<tr><td class="memItemLeft" nowrap align="right" valign="top">AXIS2_EXTERN <br>
axis2_status_t&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__axutil__dll__desc.html#g4253aba362259ccde18fd2ea632eddd7">axutil_dll_desc_set_name</a> (axutil_dll_desc_t *dll_desc, const <a class="el" href="structaxutil__env.html">axutil_env_t</a> *env, axis2_char_t *name)</td></tr>

<tr><td class="memItemLeft" nowrap align="right" valign="top">AXIS2_EXTERN <br>
axis2_char_t *&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__axutil__dll__desc.html#g937e56d905ae2b6b342500c3a19c5486">axutil_dll_desc_get_name</a> (axutil_dll_desc_t *dll_desc, const <a class="el" href="structaxutil__env.html">axutil_env_t</a> *env)</td></tr>

<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="g3b1a1bd5ea456edd7c93dc771ecbf3b1"></a><!-- doxytag: member="axutil_dll_desc::axutil_dll_desc_set_type" ref="g3b1a1bd5ea456edd7c93dc771ecbf3b1" args="(axutil_dll_desc_t *dll_desc, const axutil_env_t *env, axis2_dll_type_t type)" -->
AXIS2_EXTERN <br>
axis2_status_t&nbsp;</td><td class="memItemRight" valign="bottom"><b>axutil_dll_desc_set_type</b> (axutil_dll_desc_t *dll_desc, const <a class="el" href="structaxutil__env.html">axutil_env_t</a> *env, axis2_dll_type_t type)</td></tr>

<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="g02830cdb3773cddfe396409c58f26c2c"></a><!-- doxytag: member="axutil_dll_desc::axutil_dll_desc_get_type" ref="g02830cdb3773cddfe396409c58f26c2c" args="(axutil_dll_desc_t *dll_desc, const axutil_env_t *env)" -->
AXIS2_EXTERN <br>
axis2_dll_type_t&nbsp;</td><td class="memItemRight" valign="bottom"><b>axutil_dll_desc_get_type</b> (axutil_dll_desc_t *dll_desc, const <a class="el" href="structaxutil__env.html">axutil_env_t</a> *env)</td></tr>

<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="ge4cf29a0d636dd7bd51aea72e54041d4"></a><!-- doxytag: member="axutil_dll_desc::axutil_dll_desc_set_load_options" ref="ge4cf29a0d636dd7bd51aea72e54041d4" args="(axutil_dll_desc_t *dll_desc, const axutil_env_t *env, int options)" -->
AXIS2_EXTERN <br>
axis2_status_t&nbsp;</td><td class="memItemRight" valign="bottom"><b>axutil_dll_desc_set_load_options</b> (axutil_dll_desc_t *dll_desc, const <a class="el" href="structaxutil__env.html">axutil_env_t</a> *env, int options)</td></tr>

<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="gcd8cde673f0a367ae40b0a75ec96af47"></a><!-- doxytag: member="axutil_dll_desc::axutil_dll_desc_get_load_options" ref="gcd8cde673f0a367ae40b0a75ec96af47" args="(axutil_dll_desc_t *dll_desc, const axutil_env_t *env)" -->
AXIS2_EXTERN int&nbsp;</td><td class="memItemRight" valign="bottom"><b>axutil_dll_desc_get_load_options</b> (axutil_dll_desc_t *dll_desc, const <a class="el" href="structaxutil__env.html">axutil_env_t</a> *env)</td></tr>

<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="gf6b509b4c4730d6cc43121a7d20e7db5"></a><!-- doxytag: member="axutil_dll_desc::axutil_dll_desc_set_dl_handler" ref="gf6b509b4c4730d6cc43121a7d20e7db5" args="(axutil_dll_desc_t *dll_desc, const axutil_env_t *env, AXIS2_DLHANDLER dl_handler)" -->
AXIS2_EXTERN <br>
axis2_status_t&nbsp;</td><td class="memItemRight" valign="bottom"><b>axutil_dll_desc_set_dl_handler</b> (axutil_dll_desc_t *dll_desc, const <a class="el" href="structaxutil__env.html">axutil_env_t</a> *env, AXIS2_DLHANDLER dl_handler)</td></tr>

<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="gbc86df1d8abc1ce4d9379dc9b9cf6ee6"></a><!-- doxytag: member="axutil_dll_desc::axutil_dll_desc_get_dl_handler" ref="gbc86df1d8abc1ce4d9379dc9b9cf6ee6" args="(axutil_dll_desc_t *dll_desc, const axutil_env_t *env)" -->
AXIS2_EXTERN <br>
AXIS2_DLHANDLER&nbsp;</td><td class="memItemRight" valign="bottom"><b>axutil_dll_desc_get_dl_handler</b> (axutil_dll_desc_t *dll_desc, const <a class="el" href="structaxutil__env.html">axutil_env_t</a> *env)</td></tr>

<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="g5f76bc6cce702fc9f925b950fac6d9f9"></a><!-- doxytag: member="axutil_dll_desc::axutil_dll_desc_set_create_funct" ref="g5f76bc6cce702fc9f925b950fac6d9f9" args="(axutil_dll_desc_t *dll_desc, const axutil_env_t *env, CREATE_FUNCT funct)" -->
AXIS2_EXTERN <br>
axis2_status_t&nbsp;</td><td class="memItemRight" valign="bottom"><b>axutil_dll_desc_set_create_funct</b> (axutil_dll_desc_t *dll_desc, const <a class="el" href="structaxutil__env.html">axutil_env_t</a> *env, CREATE_FUNCT funct)</td></tr>

<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="gffea68b7ee5783bc13a8a56b46602e80"></a><!-- doxytag: member="axutil_dll_desc::axutil_dll_desc_get_create_funct" ref="gffea68b7ee5783bc13a8a56b46602e80" args="(axutil_dll_desc_t *dll_desc, const axutil_env_t *env)" -->
AXIS2_EXTERN CREATE_FUNCT&nbsp;</td><td class="memItemRight" valign="bottom"><b>axutil_dll_desc_get_create_funct</b> (axutil_dll_desc_t *dll_desc, const <a class="el" href="structaxutil__env.html">axutil_env_t</a> *env)</td></tr>

<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="gdd70912963c7cfc72b38a2da35c76b71"></a><!-- doxytag: member="axutil_dll_desc::axutil_dll_desc_set_delete_funct" ref="gdd70912963c7cfc72b38a2da35c76b71" args="(axutil_dll_desc_t *dll_desc, const axutil_env_t *env, DELETE_FUNCT funct)" -->
AXIS2_EXTERN <br>
axis2_status_t&nbsp;</td><td class="memItemRight" valign="bottom"><b>axutil_dll_desc_set_delete_funct</b> (axutil_dll_desc_t *dll_desc, const <a class="el" href="structaxutil__env.html">axutil_env_t</a> *env, DELETE_FUNCT funct)</td></tr>

<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="gffdfc01fab68a77737b416a85b0f5170"></a><!-- doxytag: member="axutil_dll_desc::axutil_dll_desc_get_delete_funct" ref="gffdfc01fab68a77737b416a85b0f5170" args="(axutil_dll_desc_t *dll_desc, const axutil_env_t *env)" -->
AXIS2_EXTERN DELETE_FUNCT&nbsp;</td><td class="memItemRight" valign="bottom"><b>axutil_dll_desc_get_delete_funct</b> (axutil_dll_desc_t *dll_desc, const <a class="el" href="structaxutil__env.html">axutil_env_t</a> *env)</td></tr>

<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="g091bd6b8f859297bebee9aa79982cd04"></a><!-- doxytag: member="axutil_dll_desc::axutil_dll_desc_set_timestamp" ref="g091bd6b8f859297bebee9aa79982cd04" args="(axutil_dll_desc_t *dll_desc, const axutil_env_t *env, AXIS2_TIME_T timestamp)" -->
AXIS2_EXTERN <br>
axis2_status_t&nbsp;</td><td class="memItemRight" valign="bottom"><b>axutil_dll_desc_set_timestamp</b> (axutil_dll_desc_t *dll_desc, const <a class="el" href="structaxutil__env.html">axutil_env_t</a> *env, AXIS2_TIME_T timestamp)</td></tr>

<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="g32a06443a34fd82447693462b9680cd6"></a><!-- doxytag: member="axutil_dll_desc::axutil_dll_desc_set_error_code" ref="g32a06443a34fd82447693462b9680cd6" args="(axutil_dll_desc_t *dll_desc, const axutil_env_t *env, axutil_error_codes_t error_code)" -->
AXIS2_EXTERN <br>
axis2_status_t&nbsp;</td><td class="memItemRight" valign="bottom"><b>axutil_dll_desc_set_error_code</b> (axutil_dll_desc_t *dll_desc, const <a class="el" href="structaxutil__env.html">axutil_env_t</a> *env, axutil_error_codes_t error_code)</td></tr>

<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="g7563dc8c130f0b318eefe3f7f004782f"></a><!-- doxytag: member="axutil_dll_desc::axutil_dll_desc_get_error_code" ref="g7563dc8c130f0b318eefe3f7f004782f" args="(axutil_dll_desc_t *dll_desc, const axutil_env_t *env)" -->
AXIS2_EXTERN <br>
axutil_error_codes_t&nbsp;</td><td class="memItemRight" valign="bottom"><b>axutil_dll_desc_get_error_code</b> (axutil_dll_desc_t *dll_desc, const <a class="el" href="structaxutil__env.html">axutil_env_t</a> *env)</td></tr>

<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="g1c1053fcbea97ccb06e55cc3b6d829ca"></a><!-- doxytag: member="axutil_dll_desc::axutil_dll_desc_get_timestamp" ref="g1c1053fcbea97ccb06e55cc3b6d829ca" args="(axutil_dll_desc_t *dll_desc, const axutil_env_t *env)" -->
AXIS2_EXTERN AXIS2_TIME_T&nbsp;</td><td class="memItemRight" valign="bottom"><b>axutil_dll_desc_get_timestamp</b> (axutil_dll_desc_t *dll_desc, const <a class="el" href="structaxutil__env.html">axutil_env_t</a> *env)</td></tr>

<tr><td class="memItemLeft" nowrap align="right" valign="top">AXIS2_EXTERN <br>
axis2_char_t *&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__axutil__dll__desc.html#gfdf636b3093ced193bc8f78a59deb30a">axutil_dll_desc_create_platform_specific_dll_name</a> (axutil_dll_desc_t *dll_desc, const <a class="el" href="structaxutil__env.html">axutil_env_t</a> *env, const axis2_char_t *class_name)</td></tr>

</table>
<hr><h2>Function Documentation</h2>
<a class="anchor" name="gbf1b06f952b42a8d5d0fe9bed8796e56"></a><!-- doxytag: member="axutil_dll_desc.h::axutil_dll_desc_create" ref="gbf1b06f952b42a8d5d0fe9bed8796e56" args="(const axutil_env_t *env)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">AXIS2_EXTERN axutil_dll_desc_t* axutil_dll_desc_create           </td>
          <td>(</td>
          <td class="paramtype">const <a class="el" href="structaxutil__env.html">axutil_env_t</a> *&nbsp;</td>
          <td class="paramname"> <em>env</em>          </td>
          <td>&nbsp;)&nbsp;</td>
          <td width="100%"></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
creates dll_desc struct <dl compact><dt><b>Parameters:</b></dt><dd>
  <table border="0" cellspacing="2" cellpadding="0">
    <tr><td valign="top"></td><td valign="top"><em>qname</em>&nbsp;</td><td>qname, can be NULL </td></tr>
  </table>
</dl>

</div>
</div><p>
<a class="anchor" name="gfdf636b3093ced193bc8f78a59deb30a"></a><!-- doxytag: member="axutil_dll_desc.h::axutil_dll_desc_create_platform_specific_dll_name" ref="gfdf636b3093ced193bc8f78a59deb30a" args="(axutil_dll_desc_t *dll_desc, const axutil_env_t *env, const axis2_char_t *class_name)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">AXIS2_EXTERN axis2_char_t* axutil_dll_desc_create_platform_specific_dll_name           </td>
          <td>(</td>
          <td class="paramtype">axutil_dll_desc_t *&nbsp;</td>
          <td class="paramname"> <em>dll_desc</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const <a class="el" href="structaxutil__env.html">axutil_env_t</a> *&nbsp;</td>
          <td class="paramname"> <em>env</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const axis2_char_t *&nbsp;</td>
          <td class="paramname"> <em>class_name</em></td><td>&nbsp;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td><td width="100%"></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
This function will accept the library name without any platform dependant prefixes or suffixes. It then prefix and suffix platform dependant prefix and suffix macros to the original name and return the platform specific dll name<p>
<dl compact><dt><b>Parameters:</b></dt><dd>
  <table border="0" cellspacing="2" cellpadding="0">
    <tr><td valign="top"></td><td valign="top"><em>class_name</em>&nbsp;</td><td></td></tr>
  </table>
</dl>
<dl class="return" compact><dt><b>Returns:</b></dt><dd>platform specific dll name </dd></dl>

</div>
</div><p>
<a class="anchor" name="g937e56d905ae2b6b342500c3a19c5486"></a><!-- doxytag: member="axutil_dll_desc.h::axutil_dll_desc_get_name" ref="g937e56d905ae2b6b342500c3a19c5486" args="(axutil_dll_desc_t *dll_desc, const axutil_env_t *env)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">AXIS2_EXTERN axis2_char_t* axutil_dll_desc_get_name           </td>
          <td>(</td>
          <td class="paramtype">axutil_dll_desc_t *&nbsp;</td>
          <td class="paramname"> <em>dll_desc</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const <a class="el" href="structaxutil__env.html">axutil_env_t</a> *&nbsp;</td>
          <td class="paramname"> <em>env</em></td><td>&nbsp;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td><td width="100%"></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
Return the path qualified platform specific dll name 
</div>
</div><p>
<a class="anchor" name="g4253aba362259ccde18fd2ea632eddd7"></a><!-- doxytag: member="axutil_dll_desc.h::axutil_dll_desc_set_name" ref="g4253aba362259ccde18fd2ea632eddd7" args="(axutil_dll_desc_t *dll_desc, const axutil_env_t *env, axis2_char_t *name)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">AXIS2_EXTERN axis2_status_t axutil_dll_desc_set_name           </td>
          <td>(</td>
          <td class="paramtype">axutil_dll_desc_t *&nbsp;</td>
          <td class="paramname"> <em>dll_desc</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const <a class="el" href="structaxutil__env.html">axutil_env_t</a> *&nbsp;</td>
          <td class="paramname"> <em>env</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">axis2_char_t *&nbsp;</td>
          <td class="paramname"> <em>name</em></td><td>&nbsp;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td><td width="100%"></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
Set path qualified platform specific dll name 
</div>
</div><p>
<hr size="1"><address style="text-align: right;"><small>Generated on Fri Apr 17 11:49:46 2009 for Axis2/C by&nbsp;
<a href="http://www.doxygen.org/index.html">
<img src="doxygen.png" alt="doxygen" align="middle" border="0"></a> 1.5.3 </small></address>
</body>
</html>


<|start_filename|>util/src/platforms/windows/thread_mutex_windows.c<|end_filename|>

/*
 * 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.
 */

#include <axutil_thread.h>
#include <platforms/windows/axutil_thread_mutex_windows.h>

static axis2_status_t
thread_mutex_cleanup(
    void *data)
{
    axutil_thread_mutex_t *lock = NULL;
    axutil_allocator_t *allocator = NULL;
    if (!data)
        return AXIS2_FAILURE;

    lock = (axutil_thread_mutex_t *) data;
    allocator = lock->allocator;

    if (lock->type == thread_mutex_critical_section)
    {
        DeleteCriticalSection(&lock->section);
    }
    else
    {
        if (!CloseHandle(lock->handle))
        {
            return AXIS2_FAILURE;
        }
    }

    AXIS2_FREE(allocator, lock);
    return AXIS2_SUCCESS;
}

AXIS2_EXTERN axutil_thread_mutex_t *AXIS2_CALL
axutil_thread_mutex_create(
    axutil_allocator_t * allocator,
    unsigned int flags)
{
    axutil_thread_mutex_t *mutex = NULL;

    mutex =
        (axutil_thread_mutex_t *) AXIS2_MALLOC(allocator,
                                               sizeof(axutil_thread_mutex_t));
    mutex->allocator = allocator;

    if (flags == AXIS2_THREAD_MUTEX_DEFAULT)    /*unnested */
    {
        /* Use an auto-reset signaled event, ready to accept one
         * waiting thread.
         */
        mutex->type = thread_mutex_unnested_event;
        mutex->handle = CreateEvent(NULL, FALSE, TRUE, NULL);
    }
    else
    {
        /* TODO :support critical_section and nested_mutex */
    }

    return mutex;
}

AXIS2_EXTERN axis2_status_t AXIS2_CALL
axutil_thread_mutex_lock(
    axutil_thread_mutex_t * mutex)
{
    if (mutex->type == thread_mutex_critical_section)
    {
        EnterCriticalSection(&mutex->section);
    }
    else
    {
        DWORD rv = WaitForSingleObject(mutex->handle, INFINITE);
        if ((rv != WAIT_OBJECT_0) && (rv != WAIT_ABANDONED))
        {
            return AXIS2_FAILURE;
            /*can be either BUSY or an os specific error */
        }
    }
    return AXIS2_SUCCESS;
}

AXIS2_EXTERN axis2_status_t AXIS2_CALL
axutil_thread_mutex_trylock(
    axutil_thread_mutex_t * mutex)
{

    if (mutex->type == thread_mutex_critical_section)
    {
        /* TODO :implement trylock for critical section */
    }
    else
    {
        DWORD rv = WaitForSingleObject(mutex->handle, 0);
        if ((rv != WAIT_OBJECT_0) && (rv != WAIT_ABANDONED))
        {
            /*can be either BUSY or an os specific error */
            return AXIS2_FAILURE;
        }
    }
    return AXIS2_SUCCESS;
}

AXIS2_EXTERN axis2_status_t AXIS2_CALL
axutil_thread_mutex_unlock(
    axutil_thread_mutex_t * mutex)
{
    if (mutex->type == thread_mutex_critical_section)
    {
        LeaveCriticalSection(&mutex->section);
    }
    else if (mutex->type == thread_mutex_unnested_event)
    {
        if (!SetEvent(mutex->handle))
        {
            /*os specific error */
            return AXIS2_FAILURE;
        }
    }
    else if (mutex->type == thread_mutex_nested_mutex)
    {
        if (!ReleaseMutex(mutex->handle))
        {
            /*os specific error */
            return AXIS2_FAILURE;
        }
    }
    return AXIS2_SUCCESS;
}

AXIS2_EXTERN axis2_status_t AXIS2_CALL
axutil_thread_mutex_destroy(
    axutil_thread_mutex_t * mutex)
{
    return thread_mutex_cleanup((void *) mutex);
}


<|start_filename|>xdocs/api/html/axis2__engine_8h-source.html<|end_filename|>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html><head><meta http-equiv="Content-Type" content="text/html;charset=UTF-8">
<title>Axis2/C: axis2_engine.h Source File</title>
<link href="doxygen.css" rel="stylesheet" type="text/css">
<link href="tabs.css" rel="stylesheet" type="text/css">
</head><body>
<!-- Generated by Doxygen 1.5.3 -->
<div class="tabs">
  <ul>
    <li><a href="index.html"><span>Main&nbsp;Page</span></a></li>
    <li><a href="modules.html"><span>Modules</span></a></li>
    <li><a href="annotated.html"><span>Classes</span></a></li>
    <li class="current"><a href="files.html"><span>Files</span></a></li>
    <li><a href="dirs.html"><span>Directories</span></a></li>
    <li><a href="pages.html"><span>Related&nbsp;Pages</span></a></li>
    <li><a href="examples.html"><span>Examples</span></a></li>
    <li>
      <form action="search.php" method="get">
        <table cellspacing="0" cellpadding="0" border="0">
          <tr>
            <td><label>&nbsp;<u>S</u>earch&nbsp;for&nbsp;</label></td>
            <td><input type="text" name="query" value="" size="20" accesskey="s"/></td>
          </tr>
        </table>
      </form>
    </li>
  </ul>
</div>
<div class="nav">
<a class="el" href="dir_f60961de8e5edc3b2658ef023e959e45.html">deploy</a>&nbsp;&raquo&nbsp;<a class="el" href="dir_6b4e91e54b7316b376882a6402adbf44.html">include</a>&nbsp;&raquo&nbsp;<a class="el" href="dir_df3a7695d5a9e696f30b948b566829e7.html">axis2-1.6.0</a></div>
<h1>axis2_engine.h</h1><a href="axis2__engine_8h.html">Go to the documentation of this file.</a><div class="fragment"><pre class="fragment"><a name="l00001"></a>00001 
<a name="l00002"></a>00002 <span class="comment">/*</span>
<a name="l00003"></a>00003 <span class="comment"> * Licensed to the Apache Software Foundation (ASF) under one or more</span>
<a name="l00004"></a>00004 <span class="comment"> * contributor license agreements.  See the NOTICE file distributed with</span>
<a name="l00005"></a>00005 <span class="comment"> * this work for additional information regarding copyright ownership.</span>
<a name="l00006"></a>00006 <span class="comment"> * The ASF licenses this file to You under the Apache License, Version 2.0</span>
<a name="l00007"></a>00007 <span class="comment"> * (the "License"); you may not use this file except in compliance with</span>
<a name="l00008"></a>00008 <span class="comment"> * the License.  You may obtain a copy of the License at</span>
<a name="l00009"></a>00009 <span class="comment"> *</span>
<a name="l00010"></a>00010 <span class="comment"> *      http://www.apache.org/licenses/LICENSE-2.0</span>
<a name="l00011"></a>00011 <span class="comment"> *</span>
<a name="l00012"></a>00012 <span class="comment"> * Unless required by applicable law or agreed to in writing, software</span>
<a name="l00013"></a>00013 <span class="comment"> * distributed under the License is distributed on an "AS IS" BASIS,</span>
<a name="l00014"></a>00014 <span class="comment"> * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.</span>
<a name="l00015"></a>00015 <span class="comment"> * See the License for the specific language governing permissions and</span>
<a name="l00016"></a>00016 <span class="comment"> * limitations under the License.</span>
<a name="l00017"></a>00017 <span class="comment"> */</span>
<a name="l00018"></a>00018 
<a name="l00019"></a>00019 <span class="preprocessor">#ifndef AXIS2_ENGINE_H</span>
<a name="l00020"></a>00020 <span class="preprocessor"></span><span class="preprocessor">#define AXIS2_ENGINE_H</span>
<a name="l00021"></a>00021 <span class="preprocessor"></span>
<a name="l00038"></a>00038 <span class="preprocessor">#include &lt;<a class="code" href="axis2__defines_8h.html" title="Useful definitions, which may have platform concerns.">axis2_defines.h</a>&gt;</span>
<a name="l00039"></a>00039 <span class="preprocessor">#include &lt;<a class="code" href="axutil__array__list_8h.html" title="Axis2 array_list interface.">axutil_array_list.h</a>&gt;</span>
<a name="l00040"></a>00040 <span class="preprocessor">#include &lt;<a class="code" href="axutil__env_8h.html" title="Axis2 environment that acts as a container for error, log and memory allocator routines...">axutil_env.h</a>&gt;</span>
<a name="l00041"></a>00041 <span class="preprocessor">#include &lt;<a class="code" href="axis2__conf__ctx_8h.html">axis2_conf_ctx.h</a>&gt;</span>
<a name="l00042"></a>00042 
<a name="l00043"></a>00043 <span class="preprocessor">#ifdef __cplusplus</span>
<a name="l00044"></a>00044 <span class="preprocessor"></span><span class="keyword">extern</span> <span class="stringliteral">"C"</span>
<a name="l00045"></a>00045 {
<a name="l00046"></a>00046 <span class="preprocessor">#endif</span>
<a name="l00047"></a>00047 <span class="preprocessor"></span>
<a name="l00049"></a><a class="code" href="group__axis2__engine.html#g9e253706c74ca12c9674c3714861fe74">00049</a>     <span class="keyword">typedef</span> <span class="keyword">struct </span>axis2_engine <a class="code" href="group__axis2__engine.html#g9e253706c74ca12c9674c3714861fe74">axis2_engine_t</a>;
<a name="l00050"></a>00050 
<a name="l00051"></a>00051     <span class="keyword">struct </span>axiom_soap_fault;
<a name="l00052"></a>00052 
<a name="l00065"></a>00065     AXIS2_EXTERN axis2_status_t AXIS2_CALL
<a name="l00066"></a>00066     <a class="code" href="group__axis2__engine.html#g7a9ad14546e8c132d3a5ea9b14206b51">axis2_engine_send</a>(
<a name="l00067"></a>00067         <a class="code" href="group__axis2__engine.html#g9e253706c74ca12c9674c3714861fe74">axis2_engine_t</a> * engine,
<a name="l00068"></a>00068         <span class="keyword">const</span> <a class="code" href="structaxutil__env.html" title="Axis2 Environment struct.">axutil_env_t</a> * env,
<a name="l00069"></a>00069         <a class="code" href="group__axis2__msg__ctx.html#g160acae289ac39cb49fa625ffd88e410">axis2_msg_ctx_t</a> * msg_ctx);
<a name="l00070"></a>00070 
<a name="l00083"></a>00083     AXIS2_EXTERN axis2_status_t AXIS2_CALL
<a name="l00084"></a>00084     <a class="code" href="group__axis2__engine.html#g1ed2e678409c629544ba0f11f7c5fe8f">axis2_engine_receive</a>(
<a name="l00085"></a>00085         <a class="code" href="group__axis2__engine.html#g9e253706c74ca12c9674c3714861fe74">axis2_engine_t</a> * engine,
<a name="l00086"></a>00086         <span class="keyword">const</span> <a class="code" href="structaxutil__env.html" title="Axis2 Environment struct.">axutil_env_t</a> * env,
<a name="l00087"></a>00087         <a class="code" href="group__axis2__msg__ctx.html#g160acae289ac39cb49fa625ffd88e410">axis2_msg_ctx_t</a> * msg_ctx);
<a name="l00088"></a>00088 
<a name="l00097"></a>00097     AXIS2_EXTERN axis2_status_t AXIS2_CALL
<a name="l00098"></a>00098     <a class="code" href="group__axis2__engine.html#g6d77e1d59b04cb68e36581e946946a2d">axis2_engine_send_fault</a>(
<a name="l00099"></a>00099         <a class="code" href="group__axis2__engine.html#g9e253706c74ca12c9674c3714861fe74">axis2_engine_t</a> * engine,
<a name="l00100"></a>00100         <span class="keyword">const</span> <a class="code" href="structaxutil__env.html" title="Axis2 Environment struct.">axutil_env_t</a> * env,
<a name="l00101"></a>00101         <a class="code" href="group__axis2__msg__ctx.html#g160acae289ac39cb49fa625ffd88e410">axis2_msg_ctx_t</a> * msg_ctx);
<a name="l00102"></a>00102 
<a name="l00111"></a>00111     AXIS2_EXTERN axis2_status_t AXIS2_CALL
<a name="l00112"></a>00112     <a class="code" href="group__axis2__engine.html#gc42896a93f7288df6e7a10ceb9e31e31">axis2_engine_receive_fault</a>(
<a name="l00113"></a>00113         <a class="code" href="group__axis2__engine.html#g9e253706c74ca12c9674c3714861fe74">axis2_engine_t</a> * engine,
<a name="l00114"></a>00114         <span class="keyword">const</span> <a class="code" href="structaxutil__env.html" title="Axis2 Environment struct.">axutil_env_t</a> * env,
<a name="l00115"></a>00115         <a class="code" href="group__axis2__msg__ctx.html#g160acae289ac39cb49fa625ffd88e410">axis2_msg_ctx_t</a> * msg_ctx);
<a name="l00116"></a>00116 
<a name="l00128"></a>00128     AXIS2_EXTERN <a class="code" href="group__axis2__msg__ctx.html#g160acae289ac39cb49fa625ffd88e410">axis2_msg_ctx_t</a> *AXIS2_CALL
<a name="l00129"></a>00129 
<a name="l00130"></a>00130     <a class="code" href="group__axis2__engine.html#g048a9c624d618b3c705d41ae77bab9d0">axis2_engine_create_fault_msg_ctx</a>(
<a name="l00131"></a>00131         <a class="code" href="group__axis2__engine.html#g9e253706c74ca12c9674c3714861fe74">axis2_engine_t</a> * engine,
<a name="l00132"></a>00132         <span class="keyword">const</span> <a class="code" href="structaxutil__env.html" title="Axis2 Environment struct.">axutil_env_t</a> * env,
<a name="l00133"></a>00133         <a class="code" href="group__axis2__msg__ctx.html#g160acae289ac39cb49fa625ffd88e410">axis2_msg_ctx_t</a> * processing_context,
<a name="l00134"></a>00134         <span class="keyword">const</span> axis2_char_t * code_value,
<a name="l00135"></a>00135         <span class="keyword">const</span> axis2_char_t * reason_text);
<a name="l00136"></a>00136 
<a name="l00150"></a>00150     AXIS2_EXTERN axis2_status_t AXIS2_CALL
<a name="l00151"></a>00151     <a class="code" href="group__axis2__engine.html#g95c41e8b17352fcd0df40a1af8952e28">axis2_engine_invoke_phases</a>(
<a name="l00152"></a>00152         <a class="code" href="group__axis2__engine.html#g9e253706c74ca12c9674c3714861fe74">axis2_engine_t</a> * engine,
<a name="l00153"></a>00153         <span class="keyword">const</span> <a class="code" href="structaxutil__env.html" title="Axis2 Environment struct.">axutil_env_t</a> * env,
<a name="l00154"></a>00154         <a class="code" href="group__axutil__array__list.html#g1a6a89777db876cfa0cc86787b7be6a0">axutil_array_list_t</a> * phases,
<a name="l00155"></a>00155         <a class="code" href="group__axis2__msg__ctx.html#g160acae289ac39cb49fa625ffd88e410">axis2_msg_ctx_t</a> * msg_ctx);
<a name="l00156"></a>00156 
<a name="l00173"></a>00173     AXIS2_EXTERN axis2_status_t AXIS2_CALL
<a name="l00174"></a>00174 
<a name="l00175"></a>00175     <a class="code" href="group__axis2__engine.html#ga9d62410babeb061b9bf300d6a837ca2">axis2_engine_resume_invocation_phases</a>(
<a name="l00176"></a>00176         <a class="code" href="group__axis2__engine.html#g9e253706c74ca12c9674c3714861fe74">axis2_engine_t</a> * engine,
<a name="l00177"></a>00177         <span class="keyword">const</span> <a class="code" href="structaxutil__env.html" title="Axis2 Environment struct.">axutil_env_t</a> * env,
<a name="l00178"></a>00178         <a class="code" href="group__axutil__array__list.html#g1a6a89777db876cfa0cc86787b7be6a0">axutil_array_list_t</a> * phases,
<a name="l00179"></a>00179         <a class="code" href="group__axis2__msg__ctx.html#g160acae289ac39cb49fa625ffd88e410">axis2_msg_ctx_t</a> * msg_ctx);
<a name="l00180"></a>00180 
<a name="l00188"></a>00188     AXIS2_EXTERN <span class="keyword">const</span> axis2_char_t *AXIS2_CALL
<a name="l00189"></a>00189 
<a name="l00190"></a>00190     <a class="code" href="group__axis2__engine.html#g4233d6e24f32c5d59fe7bd507a91395c">axis2_engine_get_sender_fault_code</a>(
<a name="l00191"></a>00191         <span class="keyword">const</span> <a class="code" href="group__axis2__engine.html#g9e253706c74ca12c9674c3714861fe74">axis2_engine_t</a> * engine,
<a name="l00192"></a>00192         <span class="keyword">const</span> <a class="code" href="structaxutil__env.html" title="Axis2 Environment struct.">axutil_env_t</a> * env,
<a name="l00193"></a>00193         <span class="keyword">const</span> axis2_char_t * soap_namespace);
<a name="l00194"></a>00194 
<a name="l00201"></a>00201     AXIS2_EXTERN <span class="keyword">const</span> axis2_char_t *AXIS2_CALL
<a name="l00202"></a>00202 
<a name="l00203"></a>00203     <a class="code" href="group__axis2__engine.html#g750a760536008dcec26bff80a891197e">axis2_engine_get_receiver_fault_code</a>(
<a name="l00204"></a>00204         <span class="keyword">const</span> <a class="code" href="group__axis2__engine.html#g9e253706c74ca12c9674c3714861fe74">axis2_engine_t</a> * engine,
<a name="l00205"></a>00205         <span class="keyword">const</span> <a class="code" href="structaxutil__env.html" title="Axis2 Environment struct.">axutil_env_t</a> * env,
<a name="l00206"></a>00206         <span class="keyword">const</span> axis2_char_t * soap_namespace);
<a name="l00207"></a>00207 
<a name="l00214"></a>00214     AXIS2_EXTERN <span class="keywordtype">void</span> AXIS2_CALL
<a name="l00215"></a>00215     <a class="code" href="group__axis2__engine.html#g7ca747905b4bb17877e94a44aad3887d">axis2_engine_free</a>(
<a name="l00216"></a>00216         <a class="code" href="group__axis2__engine.html#g9e253706c74ca12c9674c3714861fe74">axis2_engine_t</a> * engine,
<a name="l00217"></a>00217         <span class="keyword">const</span> <a class="code" href="structaxutil__env.html" title="Axis2 Environment struct.">axutil_env_t</a> * env);
<a name="l00218"></a>00218 
<a name="l00228"></a>00228     AXIS2_EXTERN axis2_status_t AXIS2_CALL
<a name="l00229"></a>00229     <a class="code" href="group__axis2__engine.html#g845f6ddb96bf1b9f02ed6ad24a1c3653">axis2_engine_resume_receive</a>(
<a name="l00230"></a>00230         <a class="code" href="group__axis2__engine.html#g9e253706c74ca12c9674c3714861fe74">axis2_engine_t</a> * engine,
<a name="l00231"></a>00231         <span class="keyword">const</span> <a class="code" href="structaxutil__env.html" title="Axis2 Environment struct.">axutil_env_t</a> * env,
<a name="l00232"></a>00232         <a class="code" href="group__axis2__msg__ctx.html#g160acae289ac39cb49fa625ffd88e410">axis2_msg_ctx_t</a> * msg_ctx);
<a name="l00233"></a>00233 
<a name="l00243"></a>00243     AXIS2_EXTERN axis2_status_t AXIS2_CALL
<a name="l00244"></a>00244     <a class="code" href="group__axis2__engine.html#gba1a56931bc5ad105c7059c2af3cd59b">axis2_engine_resume_send</a>(
<a name="l00245"></a>00245         <a class="code" href="group__axis2__engine.html#g9e253706c74ca12c9674c3714861fe74">axis2_engine_t</a> * engine,
<a name="l00246"></a>00246         <span class="keyword">const</span> <a class="code" href="structaxutil__env.html" title="Axis2 Environment struct.">axutil_env_t</a> * env,
<a name="l00247"></a>00247         <a class="code" href="group__axis2__msg__ctx.html#g160acae289ac39cb49fa625ffd88e410">axis2_msg_ctx_t</a> * msg_ctx);
<a name="l00248"></a>00248 
<a name="l00255"></a>00255     AXIS2_EXTERN <a class="code" href="group__axis2__engine.html#g9e253706c74ca12c9674c3714861fe74">axis2_engine_t</a> *AXIS2_CALL
<a name="l00256"></a>00256     <a class="code" href="group__axis2__engine.html#ged13c1a9fe02067b8678f4d1c8a412a5">axis2_engine_create</a>(
<a name="l00257"></a>00257         <span class="keyword">const</span> <a class="code" href="structaxutil__env.html" title="Axis2 Environment struct.">axutil_env_t</a> * env,
<a name="l00258"></a>00258         <a class="code" href="group__axis2__conf__ctx.html#gab2f89df328e63d4f9fa3a4d035d18f0">axis2_conf_ctx_t</a> * conf_ctx);
<a name="l00259"></a>00259 
<a name="l00260"></a>00260 <span class="preprocessor">#ifdef __cplusplus</span>
<a name="l00261"></a>00261 <span class="preprocessor"></span>}
<a name="l00262"></a>00262 <span class="preprocessor">#endif</span>
<a name="l00263"></a>00263 <span class="preprocessor"></span>
<a name="l00264"></a>00264 <span class="preprocessor">#endif                          </span><span class="comment">/* AXIS2_ENGINE_H */</span>
</pre></div><hr size="1"><address style="text-align: right;"><small>Generated on Fri Apr 17 11:49:42 2009 for Axis2/C by&nbsp;
<a href="http://www.doxygen.org/index.html">
<img src="doxygen.png" alt="doxygen" align="middle" border="0"></a> 1.5.3 </small></address>
</body>
</html>


<|start_filename|>src/core/transport/http/server/IIS/axis2_iis_worker.c<|end_filename|>

/*
 * 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.
 */  

#include <axis2_http_transport.h>
#include <axis2_conf.h>
#include <axutil_string.h>
#include <axis2_msg_ctx.h>
#include <axis2_http_out_transport_info.h>
#include <axis2_http_transport_utils.h>
#include <axis2_op_ctx.h>
#include <axis2_engine.h>
#include <axutil_uuid_gen.h>
#include <axis2_conf_init.h>
#include <axutil_url.h>
#include <axiom_soap.h>
#include "axis2_iis_out_transport_info.h"
#include "axis2_iis_stream.h"
#include "axis2_iis_worker.h"

/* Files from iis */
#include <httpfilt.h>
#include <httpext.h>

#include "axis2_iis_constants.h"

#define READ_SIZE  2048

axis2_status_t AXIS2_CALL 
axis2_worker_get_original_url(char url[],
                              char ret_url[]);


axis2_char_t * AXIS2_CALL 
axis2_iis_worker_get_bytes(const axutil_env_t * env,
                           axutil_stream_t * stream);


axis2_status_t AXIS2_CALL 
start_response(const axutil_env_t * env, 
			   LPEXTENSION_CONTROL_BLOCK lpECB,
               int status, 
               const char *reason,
               axutil_array_list_t *headers
               );


axis2_status_t 
write_response(LPEXTENSION_CONTROL_BLOCK lpECB, 
               const void *b,
               unsigned int l);

axutil_hash_t *axis2_iis_worker_read_http_headers(const axutil_env_t * env, LPEXTENSION_CONTROL_BLOCK lpECB);

AXIS2_IMPORT extern axis2_char_t *axis2_request_url_prefix;

static struct reasons
{    
    axis2_char_t * status_code;
    int status_len;
} reasons[] = {
    {"200 OK", 6}, 
    {"202 Accepted", 12}, 
    {"500 Internal Server Error", 25} 
};

struct axis2_iis_worker 
{
    axis2_conf_ctx_t * conf_ctx;
};

char *status_reason(int status);

axis2_iis_worker_t * AXIS2_CALL 
axis2_iis_worker_create(const axutil_env_t * env,
                        axis2_char_t * repo_path) 
{
    axis2_iis_worker_t * iis_worker = NULL;

    iis_worker = (axis2_iis_worker_t *) AXIS2_MALLOC(env->allocator, sizeof(axis2_iis_worker_t));
    if (!iis_worker)
    {
        AXIS2_ERROR_SET(env->error, AXIS2_ERROR_NO_MEMORY, AXIS2_FAILURE);
        return NULL;
    }
    iis_worker->conf_ctx = axis2_build_conf_ctx(env, repo_path);
    if (!iis_worker->conf_ctx)
    {        
        axis2_iis_worker_free((axis2_iis_worker_t *) iis_worker, env);
        return NULL;
    }
    return iis_worker;
}


void AXIS2_CALL 
axis2_iis_worker_free(axis2_iis_worker_t * iis_worker,
                      const axutil_env_t * env) 
{
    if (iis_worker->conf_ctx)
    {
        axis2_conf_ctx_free(iis_worker->conf_ctx, env);
        iis_worker->conf_ctx = NULL;
    }
    AXIS2_FREE(env->allocator, iis_worker);
    return;
}


int AXIS2_CALL 
axis2_iis_worker_process_request(axis2_iis_worker_t * iis_worker,
                                 const axutil_env_t * env,
                                 LPEXTENSION_CONTROL_BLOCK lpECB) 
{
    axis2_conf_ctx_t * conf_ctx = NULL;
    axutil_stream_t * out_stream = NULL;
    axis2_transport_out_desc_t * out_desc = NULL;
    axis2_transport_in_desc_t * in_desc = NULL;
    axis2_char_t soap_action[INTERNET_MAX_URL_LENGTH];    
    axis2_char_t original_url[INTERNET_MAX_URL_LENGTH];
    axis2_char_t req_url[INTERNET_MAX_URL_LENGTH];
    DWORD cbSize = 0;
    CHAR server_name[MAX_SERVERNAME];
    axis2_char_t port[MAX_TCP_PORT_LEN];
    axis2_char_t redirect_url[INTERNET_MAX_PATH_LENGTH];
	axis2_char_t accept_language[INTERNET_MAX_PATH_LENGTH];
    axutil_hash_t *headers = NULL;
    axis2_char_t peer_ip[50];
	axis2_char_t accept_header[INTERNET_MAX_URL_LENGTH];
	axis2_char_t accept_charset[INTERNET_MAX_URL_LENGTH];
    /*axutil_property_t *peer_property = NULL;*/
	
	axis2_http_header_t *content_type_header = NULL;
	axis2_http_header_t *content_length_header = NULL;

	/* New Code variables */
	axis2_http_transport_in_t request;
	axis2_http_transport_out_t response;

	/* initialize tranport in structure */
	axis2_http_transport_utils_transport_in_init(&request, env);

	/* initialize tranport out structure */
	axis2_http_transport_utils_transport_out_init(&response, env);

    soap_action[0] = '\0';
    
    /*Check the parameters*/
    if (!lpECB)
    {
        AXIS2_ERROR_SET_ERROR_NUMBER(env->error, AXIS2_ERROR_INVALID_NULL_PARAM);
        return AXIS2_FAILURE;
    }
    conf_ctx = iis_worker->conf_ctx;
    if (!conf_ctx)
    {
        AXIS2_ERROR_SET(env->error, AXIS2_ERROR_NULL_CONFIGURATION_CONTEXT, AXIS2_FAILURE);
        return AXIS2_FAILURE;
    }

    cbSize = INTERNET_MAX_PATH_LENGTH;
    if (lpECB->GetServerVariable(lpECB->ConnID,  "SERVER_NAME",  server_name, &cbSize) == FALSE)
	{
		AXIS2_LOG_ERROR(env->log, AXIS2_LOG_SI, "Cannot get server name from IIS.");        
		return AXIS2_FAILURE;
	}
    cbSize = MAX_TCP_PORT_LEN;
	if (lpECB->GetServerVariable(lpECB->ConnID, "SERVER_PORT", port, &cbSize) == FALSE)
	{
		AXIS2_LOG_ERROR(env->log, AXIS2_LOG_SI, "Cannot get server port from IIS.");        
		return AXIS2_FAILURE;
	}
    request.svr_port = port;

    cbSize = INTERNET_MAX_PATH_LENGTH;
    if(lpECB->GetServerVariable(lpECB->ConnID, "HTTP_URL", redirect_url, &cbSize) == FALSE)
	{
		AXIS2_LOG_ERROR(env->log, AXIS2_LOG_SI, "Cannot get server port from IIS.");        
		return AXIS2_FAILURE;
	}

	/* We have a mapped URL only when the server version is 5 or less than that. */
	if (server_version <= 5)
	{
		axis2_worker_get_original_url(redirect_url, original_url);
		/* create the url using the above variables */                     
		sprintf(req_url, "%s%s%s%s%s", "http://", server_name, ":", port, original_url);
	}
	else
	{
		sprintf(req_url, "%s%s%s%s%s", "http://", server_name, ":", port, redirect_url);
	}
	/* Set the request url */
	request.request_uri = req_url;

    out_stream = axutil_stream_create_basic(env);
    out_desc = axis2_conf_get_transport_out(
        axis2_conf_ctx_get_conf (iis_worker->conf_ctx, env), env, AXIS2_TRANSPORT_ENUM_HTTP);
    in_desc = axis2_conf_get_transport_in(
        axis2_conf_ctx_get_conf (iis_worker->conf_ctx, env), env, AXIS2_TRANSPORT_ENUM_HTTP);

	/* Create the in message context */
    request.msg_ctx = axis2_msg_ctx_create(env, conf_ctx, in_desc, out_desc);
    axis2_msg_ctx_set_server_side(request.msg_ctx, env, AXIS2_TRUE);
    axis2_msg_ctx_set_transport_out_stream(request.msg_ctx, env, out_stream);
    
	/* Get the SOAPAction Header */
	cbSize = INTERNET_MAX_URL_LENGTH;
    if (lpECB->GetServerVariable(lpECB->ConnID, "HTTP_SOAPAction", soap_action, &cbSize))
    {		
		request.soap_action = soap_action;
    }

	/* Create the in stream */
    request.in_stream = axutil_stream_create_iis(env, lpECB);
    if (!request.in_stream)
    {
        AXIS2_LOG_ERROR(env->log, AXIS2_LOG_SI, "Error occured in creating input stream.");
        return AXIS2_FAILURE;
    }

	/* Get the Remote Adrress */
    if (lpECB->GetServerVariable(lpECB->ConnID, "REMOTE_ADDR", peer_ip, &cbSize))
	{
		request.remote_ip = peer_ip;
	}    

    /* Set the http headers into the message context */
    headers = axis2_iis_worker_read_http_headers(env, lpECB);
    if (axis2_msg_ctx_set_transport_headers(request.msg_ctx, env, headers) == AXIS2_FAILURE)
    {
        AXIS2_LOG_ERROR(env->log, AXIS2_LOG_SI, "IIS: Error occured in setting transport headers.");
    }
	/* Set the content length */
	request.content_length = lpECB->cbTotalBytes;
	/* Set the HTTP method */
	if (axutil_strcasecmp(lpECB->lpszMethod, "POST") == 0)
	{
		request.request_method = AXIS2_HTTP_METHOD_POST;
	}
	else if (axutil_strcasecmp(lpECB->lpszMethod, "GET") == 0)
	{
		request.request_method = AXIS2_HTTP_METHOD_GET;
	}
	else if (axutil_strcasecmp(lpECB->lpszMethod, "HEAD") == 0)
	{
		request.request_method = AXIS2_HTTP_METHOD_HEAD;
	}
	else if (axutil_strcasecmp(lpECB->lpszMethod, "PUT") == 0)
	{
		request.request_method = AXIS2_HTTP_METHOD_PUT;
	}
	else if (axutil_strcasecmp(lpECB->lpszMethod, "DELETE") == 0)
	{
		request.request_method = AXIS2_HTTP_METHOD_DELETE;
	}
	else
	{
		AXIS2_LOG_ERROR(env->log, AXIS2_LOG_SI, "IIS: Unsupported HTTP Method.");
		return AXIS2_FAILURE;
	}
	/* Set the URL prefix. axis2_request_url_prefix is a global variable set at the init time */
	request.request_url_prefix = axis2_request_url_prefix;
	/* Create the transport out info */
	request.out_transport_info = axis2_iis_out_transport_info_create(env, lpECB);
	/* Set the content type */
	request.content_type = lpECB->lpszContentType;
	
	/* Get accept headaer */
	cbSize = INTERNET_MAX_PATH_LENGTH;
    if(lpECB->GetServerVariable(lpECB->ConnID, "HTTP_Accept", accept_header, &cbSize))
	{
		request.accept_header = accept_header;
	}	
	
	/* Get the accept langauge */
	cbSize = INTERNET_MAX_PATH_LENGTH;
    if (lpECB->GetServerVariable(lpECB->ConnID, "HTTP_Accept-Language", accept_language, &cbSize))
	{
		request.accept_language_header = accept_language;
	}	
	
	cbSize = INTERNET_MAX_PATH_LENGTH;
    if (lpECB->GetServerVariable(lpECB->ConnID, "HTTP_Accept-Charset", accept_charset, &cbSize))
	{
		request.accept_charset_header = accept_charset;
	}

	/* Now we have set everything. We can call process method to process the request */
	if (axis2_http_transport_utils_process_request(env, conf_ctx, &request, &response) == AXIS2_FAILURE)
	{
		return AXIS2_FAILURE;
	}
		
	/* Write the response */
	if (response.response_data && response.response_data_length > 0)
	{	
		axis2_char_t content_length_str[16]={0}; 
		axis2_bool_t is_out_headers_created = AXIS2_FALSE;
		if (!response.output_headers)
		{
			response.output_headers = axutil_array_list_create(env, 2);
			is_out_headers_created = AXIS2_TRUE;
		}
		sprintf(content_length_str, "%d", response.response_data_length);
		if (!response.content_type)
		{
			content_type_header = axis2_http_header_create(env, "Content-Type", axis2_iis_out_transport_get_content(request.out_transport_info));
		}
		else
		{
			content_type_header = axis2_http_header_create(env, "Content-Type", response.content_type);
		}
		content_length_header = axis2_http_header_create(env, "Content-Length", content_length_str);
		axutil_array_list_add(response.output_headers, env, content_length_header);
		axutil_array_list_add(response.output_headers, env, content_type_header);
		/* Write the headers */
		start_response(env, lpECB, response.http_status_code, response.http_status_code_name, response.output_headers);
		/* Write the response body */
		if(write_response(lpECB, response.response_data, response.response_data_length) == AXIS2_FAILURE)
		{
			AXIS2_LOG_ERROR(env->log, AXIS2_LOG_SI, "IIS: Writing data to IIS");
			return AXIS2_FAILURE;
		}
		if (is_out_headers_created)
		{
			if (content_length_header)
			{
				axis2_http_header_free(content_length_header, env);
			}
			if (content_type_header)
			{
				axis2_http_header_free(content_type_header, env);
			}
			axutil_array_list_free(response.output_headers, env);
		}
	}
	else
	{
		/* If we don't have a body we should write the HTTP headers */
		start_response(env, lpECB, response.http_status_code, response.http_status_code_name, response.output_headers);
		AXIS2_LOG_DEBUG(env->log, AXIS2_LOG_SI, "Response is NULL");
	}
	
	/* Do some cleaning */
	axis2_http_transport_utils_transport_in_uninit(&request, env);
	axis2_http_transport_utils_transport_out_uninit(&response, env);
	return AXIS2_SUCCESS;
}



axis2_status_t write_response(LPEXTENSION_CONTROL_BLOCK lpECB, const void *b,
                              unsigned int l) 
{
    if (lpECB && b)
    {
        if (l)
        {
            unsigned int written = 0;
            char *buf = (char *) b;
            /* If couldn't write the data at onece try again until all the data is written.*/
            while (written < l)
            {
                DWORD try_to_write = l - written;
                if (!lpECB->
                    WriteClient(lpECB->ConnID, 
                    buf + written, &try_to_write,
                    0))
                {
                    return AXIS2_FAILURE;
                }
                written += try_to_write;
            }
        }
        return AXIS2_SUCCESS;
    }
    return AXIS2_FAILURE;
}



axis2_status_t AXIS2_CALL start_response(const axutil_env_t *env, 
										 LPEXTENSION_CONTROL_BLOCK lpECB,
                                         int status, 
                                         const char *reason,
                                         axutil_array_list_t *headers
                                         ) 
{
    static char crlf[3] = { (char) 13, (char) 10, '\0' };
	unsigned int num_of_headers = 0;

    if (status < 100 || status > 1000)
    {
        return AXIS2_FAILURE;
    }
    if (lpECB)
    {
        size_t len_of_status;
        char *status_str;
        char *headers_str;

        /*
        * Create the status line
        */ 
        if (reason)
        {
            status_str = (char *) _alloca((6 + strlen(reason)) * sizeof(char));
            sprintf(status_str, "%d %s", status, reason);
            len_of_status = strlen(status_str);
        }
        else
        {
            switch (status)
            {
            case 200:
                status_str = reasons[0].status_code;
                len_of_status = reasons[0].status_len;
                break;
            case 202:
                status_str = reasons[1].status_code;
                len_of_status = reasons[1].status_len;
                break;
            case 500:
                status_str = reasons[2].status_code;
                len_of_status = reasons[2].status_len;
                break;
            default:
                status_str = reasons[0].status_code;
                len_of_status = reasons[0].status_len;
                break;
            }
        }
        /*
        * Create response headers string
        */ 
        if (headers && (num_of_headers = axutil_array_list_size(headers, env)) > 0)
        {
            size_t i, len_of_headers;
			axis2_http_header_t *header = NULL;
            for (i = 0, len_of_headers = 0; i < num_of_headers; i++)
            {
				header = axutil_array_list_get(headers, env, (int)i);
                len_of_headers += strlen(axis2_http_header_get_name(header, env));
                len_of_headers += strlen(axis2_http_header_get_value(header, env));
                len_of_headers += 4;   /* extra for colon, space and crlf */
            }
            len_of_headers += 3;  /* crlf and terminating null char */
            headers_str = (char *) _alloca(len_of_headers * sizeof(char));
            headers_str[0] = '\0';
            for (i = 0; i < num_of_headers; i++)
            {
				header = axutil_array_list_get(headers, env, (int)i);
                strcat(headers_str, axis2_http_header_get_name(header, env));
                strcat(headers_str, ": ");
                strcat(headers_str, axis2_http_header_get_value(header, env));
                strcat(headers_str, "\r\n");
            }
            strcat(headers_str, "\r\n");
        }
        else
        {
            headers_str = crlf;
        }
        if (!lpECB->
            ServerSupportFunction(lpECB->ConnID,
            HSE_REQ_SEND_RESPONSE_HEADER, 
            status_str,
            (LPDWORD) & len_of_status,
            (LPDWORD) headers_str))
        {
            return AXIS2_FAILURE;
        }
        return AXIS2_SUCCESS;
    }
    return AXIS2_FAILURE;
}

axis2_status_t AXIS2_CALL axis2_worker_get_original_url(char url[],
                                                        char ret_url[]) 
{
	extern axis2_char_t *axis2_location;
	strcpy(ret_url, axis2_location);
	strcat(ret_url, &url[25]);
    return URI_MATCHED;
}

axis2_char_t * AXIS2_CALL 
axis2_iis_worker_get_bytes(
                           const axutil_env_t * env,
                           axutil_stream_t * stream) 
{
    axutil_stream_t * tmp_stream = NULL;
    int return_size = -1;
    axis2_char_t * buffer = NULL;
    axis2_bool_t loop_state = AXIS2_TRUE;
    AXIS2_ENV_CHECK(env, NULL);
    AXIS2_PARAM_CHECK(env->error, stream, NULL);

    tmp_stream = axutil_stream_create_basic(env);
    while (loop_state)
    {
        int read = 0;
        int write = 0;
        char buf[READ_SIZE];

        read = axutil_stream_read(stream, env, buf, READ_SIZE);
        if (read < 0)
        {
            break;
        }
        write = axutil_stream_write(tmp_stream, env, buf, read);
        if (read < (READ_SIZE - 1))
        {
            break;
        }
    }
    return_size = axutil_stream_get_len(tmp_stream, env);
    if (return_size > 0)
    {
        buffer = (char *) AXIS2_MALLOC(env->allocator, sizeof(char) * 
            (return_size + 2));
        return_size =
            axutil_stream_read(tmp_stream, env, buffer, 
            return_size + 1);
        buffer[return_size + 1] = '\0';
    }
    axutil_stream_free(tmp_stream, env);
    return buffer;
}

/** Read all HTTP headers.
  */
axutil_hash_t *axis2_iis_worker_read_http_headers(const axutil_env_t * env, 
												  LPEXTENSION_CONTROL_BLOCK lpECB)
{
    const char szHTTP_[] = "HTTP_";
    char szBuffer[4096];
    DWORD dwBufferSize = sizeof szBuffer;
    axutil_hash_t *headers = NULL;
    axis2_http_header_t* http_header = NULL;

    BOOL bGet = lpECB->GetServerVariable(lpECB->ConnID, "ALL_HTTP", szBuffer, &dwBufferSize);    
    if (bGet)
    {
        /* Find lines, split key/data pair and write them as output */
        LPTSTR pOpts = NULL;
        LPTSTR pEnd = NULL;
        LPTSTR pChar = NULL;
        char szTmpBuf[512];
        char szTmpName[256];

        headers = axutil_hash_make(env);
        szTmpBuf[0] = 0;
        for (pChar = szBuffer; '\0' != *pChar;)
        {
            if (*pChar == '\r' || *pChar == '\n')
            {
                pChar++;
                continue;
            }
            pOpts = strchr(pChar, ':');/* findseparator */
            if (pOpts && *pOpts)
            {
                pEnd = pOpts;
                while (*pEnd && *pEnd != '\r' && *pEnd != '\n')
                {
                    pEnd++;
                }
                *pOpts = '\0'; /* split the strings */
                *pEnd = '\0';
                if (0 == strncmp(pChar, szHTTP_, strlen(szHTTP_)))
                {
                  pChar += strlen(szHTTP_);
                }
                strcpy(szTmpName, pChar);
                axutil_string_replace(szTmpName, '_', '-');
                http_header = axis2_http_header_create(env, szTmpName, pOpts + 1);
                axutil_hash_set(headers, axutil_strdup(env, szTmpName), AXIS2_HASH_KEY_STRING, http_header);                
                pChar = pEnd + 1;
            }
        }
    }
    else
    {
        AXIS2_LOG_DEBUG(env->log, AXIS2_LOG_SI, "axis2_iis_worker_read_http_headers: no http headers");
    }
    return headers;
}



<|start_filename|>guththila/src/guththila_token.c<|end_filename|>
/*
 * 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.
 */  
#include <guththila_token.h>
    
#include <stdlib.h>
#include <stdio.h>
#include <string.h>
    
#define TOK_LIST_FREE(tok_list) \
    (if (tok_list) { AXIS2_FREE(tok_list)} )
    
#define TOK_LIST_SIZE(tok_list) (tok_list->size)


int GUTHTHILA_CALL
guththila_tok_list_grow(
    guththila_tok_list_t * tok_list,
    const axutil_env_t * env) 
{
    int i = 0;
    int cur = 0;
    int cur_cap = 0;
    guththila_token_t ** list = NULL;
    if (tok_list->cur_list < tok_list->no_list - 1)
    {
        cur = ++tok_list->cur_list;
        cur_cap = tok_list->capacity[cur - 1] * 2;
        tok_list->list[cur] =
            (guththila_token_t *) AXIS2_MALLOC(env->allocator,
                                               sizeof(guththila_token_t) *
                                               cur_cap);
        for (i = 0; i < cur_cap; i++)
        {
            guththila_stack_push(&tok_list->fr_stack, &tok_list->list[cur][i],
                                  env);
        }
        tok_list->capacity[cur] = cur_cap;
        return GUTHTHILA_SUCCESS;
    }
    else
    {
        list =
            (guththila_token_t **) AXIS2_MALLOC(env->allocator,
                                                sizeof(guththila_token_t *) *
                                                tok_list->no_list * 2);
        if (list)
        {
            for (i = 0; i <= tok_list->cur_list; i++)
            {
                list[i] = tok_list->list[i];
            }
            tok_list->no_list = tok_list->no_list * 2;
            AXIS2_FREE(env->allocator, tok_list->list);
            tok_list->list = list;
            guththila_tok_list_grow(tok_list, env);
        }
    }
    return GUTHTHILA_FAILURE;
}

int GUTHTHILA_CALL
guththila_tok_list_init(
    guththila_tok_list_t * tok_list,
    const axutil_env_t * env) 
{
    int i = 0;
    tok_list->list =
        (guththila_token_t **) AXIS2_MALLOC(env->allocator,
                                            sizeof(guththila_token_t *) *
                                            GUTHTHILA_TOK_DEF_LIST_SIZE);
    if (tok_list->list && guththila_stack_init(&tok_list->fr_stack, env))
    {
        tok_list->capacity =
            (int *) AXIS2_MALLOC(env->allocator,
                                 sizeof(int) * GUTHTHILA_TOK_DEF_LIST_SIZE);
        if (tok_list->capacity)
        {
            tok_list->no_list = GUTHTHILA_TOK_DEF_LIST_SIZE;
            tok_list->list[0] =
                (guththila_token_t *) AXIS2_MALLOC(env->allocator,
                                                   sizeof(guththila_token_t) *
                                                   GUTHTHILA_TOK_DEF_SIZE);
            for (i = 0; i < GUTHTHILA_TOK_DEF_SIZE; i++)
            {
                guththila_stack_push(&tok_list->fr_stack,
                                      &tok_list->list[0][i], env);
            }
            tok_list->capacity[0] = GUTHTHILA_TOK_DEF_SIZE;
            tok_list->cur_list = 0;
            tok_list->no_list = GUTHTHILA_TOK_DEF_LIST_SIZE;
            return GUTHTHILA_SUCCESS;
        }
    }
    return GUTHTHILA_FAILURE;
}

void GUTHTHILA_CALL
guththila_tok_list_free(
    guththila_tok_list_t * tok_list,
    const axutil_env_t * env) 
{
    int i = 0;
    guththila_stack_un_init(&tok_list->fr_stack, env);
    for (; i <= tok_list->cur_list; i++)
    {
        AXIS2_FREE(env->allocator, tok_list->list[i]);
    }
    AXIS2_FREE(env->allocator, tok_list->list);
    AXIS2_FREE(env->allocator,tok_list->capacity);
    AXIS2_FREE(env->allocator, tok_list);
}

void GUTHTHILA_CALL
guththila_tok_list_free_data(
    guththila_tok_list_t * tok_list,
    const axutil_env_t * env) 
{
    int i = 0;
    guththila_stack_un_init(&tok_list->fr_stack, env);
    for (; i <= tok_list->cur_list; i++)
    {
        AXIS2_FREE(env->allocator, tok_list->list[i]);
    }
    AXIS2_FREE(env->allocator,tok_list->capacity);
    AXIS2_FREE(env->allocator, tok_list->list);
}

guththila_token_t *GUTHTHILA_CALL
guththila_tok_list_get_token(guththila_tok_list_t * tok_list,
                                                const axutil_env_t * env) 
{
    if (tok_list->fr_stack.top > 0 || guththila_tok_list_grow(tok_list, env))
    {
        return guththila_stack_pop(&tok_list->fr_stack, env);
    }
    return NULL;
}

int GUTHTHILA_CALL
guththila_tok_list_release_token(
    guththila_tok_list_t * tok_list,
    guththila_token_t * token,
    const axutil_env_t * env) 
{
    return guththila_stack_push(&tok_list->fr_stack, token, env);
}

int GUTHTHILA_CALL
guththila_tok_str_cmp(
    guththila_token_t * tok,
    guththila_char_t *str,
    size_t str_len,
    const axutil_env_t * env) 
{
    unsigned int i = 0;
    if (tok->size != str_len)
        return -1;
    for (; i < tok->size; i++)
    {
        if (tok->start[i] != str[i])
        {
            return -1;
        }
    }
    return 0;
}

int GUTHTHILA_CALL
guththila_tok_tok_cmp(
    guththila_token_t * tok1,
    guththila_token_t * tok2,
    const axutil_env_t * env) 
{
    unsigned int i = 0;

    if (tok1 && tok2)
    {
        if (tok1->size != tok2->size)
            return -1;
        for (; i < tok1->size; i++)
        {
            if (tok1->start[i] != tok2->start[i])
            {
               return -1;
            }
        }
		return 0;
    }
    return -1;
}

void GUTHTHILA_CALL
guththila_set_token(guththila_token_t* tok,
                       guththila_char_t* start,
                       short type,
                       int size,
                       int _start,
                       int last,
                       int ref,
                       const axutil_env_t* env)
{
    if(start)
    {
        tok->start = start;
        tok->type = type;
        tok->_start = _start;
        tok->size = size;
        tok->last = last;
        tok->ref = ref;
    }
}


<|start_filename|>xdocs/api/html/group__axis2__http__accept__record.html<|end_filename|>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html><head><meta http-equiv="Content-Type" content="text/html;charset=UTF-8">
<title>Axis2/C: HTTP Accept record</title>
<link href="doxygen.css" rel="stylesheet" type="text/css">
<link href="tabs.css" rel="stylesheet" type="text/css">
</head><body>
<!-- Generated by Doxygen 1.5.3 -->
<div class="tabs">
  <ul>
    <li><a href="index.html"><span>Main&nbsp;Page</span></a></li>
    <li><a href="modules.html"><span>Modules</span></a></li>
    <li><a href="annotated.html"><span>Classes</span></a></li>
    <li><a href="files.html"><span>Files</span></a></li>
    <li><a href="dirs.html"><span>Directories</span></a></li>
    <li><a href="pages.html"><span>Related&nbsp;Pages</span></a></li>
    <li><a href="examples.html"><span>Examples</span></a></li>
    <li>
      <form action="search.php" method="get">
        <table cellspacing="0" cellpadding="0" border="0">
          <tr>
            <td><label>&nbsp;<u>S</u>earch&nbsp;for&nbsp;</label></td>
            <td><input type="text" name="query" value="" size="20" accesskey="s"/></td>
          </tr>
        </table>
      </form>
    </li>
  </ul>
</div>
<h1>HTTP Accept record<br>
<small>
[<a class="el" href="group__axis2__core__trans__http.html">http transport</a>]</small>
</h1><table border="0" cellpadding="0" cellspacing="0">
<tr><td></td></tr>
<tr><td colspan="2"><br><h2>Files</h2></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top">file &nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="axis2__http__accept__record_8h.html">axis2_http_accept_record.h</a></td></tr>

<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Axis2 HTTP Accept record. <br></td></tr>

<p>
<tr><td colspan="2"><br><h2>Typedefs</h2></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top">typedef struct <br>
axis2_http_accept_record&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__axis2__http__accept__record.html#ge384ef207777c3f8a0e151650e043b90">axis2_http_accept_record_t</a></td></tr>

<tr><td colspan="2"><br><h2>Functions</h2></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top">AXIS2_EXTERN float&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__axis2__http__accept__record.html#ge98e15ea5ff044610c235f7c45d947d7">axis2_http_accept_record_get_quality_factor</a> (const <a class="el" href="group__axis2__http__accept__record.html#ge384ef207777c3f8a0e151650e043b90">axis2_http_accept_record_t</a> *accept_record, const <a class="el" href="structaxutil__env.html">axutil_env_t</a> *env)</td></tr>

<tr><td class="memItemLeft" nowrap align="right" valign="top">AXIS2_EXTERN <br>
axis2_char_t *&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__axis2__http__accept__record.html#g61ea3c1ecec15e26ee9ff5d0f4bfb20e">axis2_http_accept_record_get_name</a> (const <a class="el" href="group__axis2__http__accept__record.html#ge384ef207777c3f8a0e151650e043b90">axis2_http_accept_record_t</a> *accept_record, const <a class="el" href="structaxutil__env.html">axutil_env_t</a> *env)</td></tr>

<tr><td class="memItemLeft" nowrap align="right" valign="top">AXIS2_EXTERN int&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__axis2__http__accept__record.html#g6db10df60b5e5856bce8c554e612b946">axis2_http_accept_record_get_level</a> (const <a class="el" href="group__axis2__http__accept__record.html#ge384ef207777c3f8a0e151650e043b90">axis2_http_accept_record_t</a> *accept_record, const <a class="el" href="structaxutil__env.html">axutil_env_t</a> *env)</td></tr>

<tr><td class="memItemLeft" nowrap align="right" valign="top">AXIS2_EXTERN <br>
axis2_char_t *&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__axis2__http__accept__record.html#g8a6bd83de0b54aa34e6b297a02a13782">axis2_http_accept_record_to_string</a> (<a class="el" href="group__axis2__http__accept__record.html#ge384ef207777c3f8a0e151650e043b90">axis2_http_accept_record_t</a> *accept_record, const <a class="el" href="structaxutil__env.html">axutil_env_t</a> *env)</td></tr>

<tr><td class="memItemLeft" nowrap align="right" valign="top">AXIS2_EXTERN void&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__axis2__http__accept__record.html#g239e70683b74ebbbf004f46a02b63303">axis2_http_accept_record_free</a> (<a class="el" href="group__axis2__http__accept__record.html#ge384ef207777c3f8a0e151650e043b90">axis2_http_accept_record_t</a> *accept_record, const <a class="el" href="structaxutil__env.html">axutil_env_t</a> *env)</td></tr>

<tr><td class="memItemLeft" nowrap align="right" valign="top">AXIS2_EXTERN <br>
<a class="el" href="group__axis2__http__accept__record.html#ge384ef207777c3f8a0e151650e043b90">axis2_http_accept_record_t</a> *&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__axis2__http__accept__record.html#g45d98a462f88abf99d5a80f28ae3062d">axis2_http_accept_record_create</a> (const <a class="el" href="structaxutil__env.html">axutil_env_t</a> *env, const axis2_char_t *str)</td></tr>

</table>
<hr><h2>Typedef Documentation</h2>
<a class="anchor" name="ge384ef207777c3f8a0e151650e043b90"></a><!-- doxytag: member="axis2_http_accept_record.h::axis2_http_accept_record_t" ref="ge384ef207777c3f8a0e151650e043b90" args="" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">typedef struct axis2_http_accept_record <a class="el" href="group__axis2__http__accept__record.html#ge384ef207777c3f8a0e151650e043b90">axis2_http_accept_record_t</a>          </td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
Type name for struct axis2_http_accept_record 
</div>
</div><p>
<hr><h2>Function Documentation</h2>
<a class="anchor" name="g45d98a462f88abf99d5a80f28ae3062d"></a><!-- doxytag: member="axis2_http_accept_record.h::axis2_http_accept_record_create" ref="g45d98a462f88abf99d5a80f28ae3062d" args="(const axutil_env_t *env, const axis2_char_t *str)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">AXIS2_EXTERN <a class="el" href="group__axis2__http__accept__record.html#ge384ef207777c3f8a0e151650e043b90">axis2_http_accept_record_t</a>* axis2_http_accept_record_create           </td>
          <td>(</td>
          <td class="paramtype">const <a class="el" href="structaxutil__env.html">axutil_env_t</a> *&nbsp;</td>
          <td class="paramname"> <em>env</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const axis2_char_t *&nbsp;</td>
          <td class="paramname"> <em>str</em></td><td>&nbsp;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td><td width="100%"></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
Creates accept record <dl compact><dt><b>Parameters:</b></dt><dd>
  <table border="0" cellspacing="2" cellpadding="0">
    <tr><td valign="top"></td><td valign="top"><em>env</em>&nbsp;</td><td>pointer to environment struct </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>str</em>&nbsp;</td><td>pointer to str </td></tr>
  </table>
</dl>
<dl class="return" compact><dt><b>Returns:</b></dt><dd>created accept record </dd></dl>

</div>
</div><p>
<a class="anchor" name="g239e70683b74ebbbf004f46a02b63303"></a><!-- doxytag: member="axis2_http_accept_record.h::axis2_http_accept_record_free" ref="g239e70683b74ebbbf004f46a02b63303" args="(axis2_http_accept_record_t *accept_record, const axutil_env_t *env)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">AXIS2_EXTERN void axis2_http_accept_record_free           </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="group__axis2__http__accept__record.html#ge384ef207777c3f8a0e151650e043b90">axis2_http_accept_record_t</a> *&nbsp;</td>
          <td class="paramname"> <em>accept_record</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const <a class="el" href="structaxutil__env.html">axutil_env_t</a> *&nbsp;</td>
          <td class="paramname"> <em>env</em></td><td>&nbsp;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td><td width="100%"></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
Frees accept record <dl compact><dt><b>Parameters:</b></dt><dd>
  <table border="0" cellspacing="2" cellpadding="0">
    <tr><td valign="top"></td><td valign="top"><em>accept_record</em>&nbsp;</td><td>pointer to accept record </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>env</em>&nbsp;</td><td>pointer to environment struct </td></tr>
  </table>
</dl>

</div>
</div><p>
<a class="anchor" name="g6db10df60b5e5856bce8c554e612b946"></a><!-- doxytag: member="axis2_http_accept_record.h::axis2_http_accept_record_get_level" ref="g6db10df60b5e5856bce8c554e612b946" args="(const axis2_http_accept_record_t *accept_record, const axutil_env_t *env)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">AXIS2_EXTERN int axis2_http_accept_record_get_level           </td>
          <td>(</td>
          <td class="paramtype">const <a class="el" href="group__axis2__http__accept__record.html#ge384ef207777c3f8a0e151650e043b90">axis2_http_accept_record_t</a> *&nbsp;</td>
          <td class="paramname"> <em>accept_record</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const <a class="el" href="structaxutil__env.html">axutil_env_t</a> *&nbsp;</td>
          <td class="paramname"> <em>env</em></td><td>&nbsp;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td><td width="100%"></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
Gets level of accept record <dl compact><dt><b>Parameters:</b></dt><dd>
  <table border="0" cellspacing="2" cellpadding="0">
    <tr><td valign="top"></td><td valign="top"><em>accept_record</em>&nbsp;</td><td>pointer to accept record </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>env</em>&nbsp;</td><td>pointer to environment struct </td></tr>
  </table>
</dl>
<dl class="return" compact><dt><b>Returns:</b></dt><dd>level of accept record (1 meaning highest). A return value of -1 indicates that no level is associated. </dd></dl>

</div>
</div><p>
<a class="anchor" name="g61ea3c1ecec15e26ee9ff5d0f4bfb20e"></a><!-- doxytag: member="axis2_http_accept_record.h::axis2_http_accept_record_get_name" ref="g61ea3c1ecec15e26ee9ff5d0f4bfb20e" args="(const axis2_http_accept_record_t *accept_record, const axutil_env_t *env)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">AXIS2_EXTERN axis2_char_t* axis2_http_accept_record_get_name           </td>
          <td>(</td>
          <td class="paramtype">const <a class="el" href="group__axis2__http__accept__record.html#ge384ef207777c3f8a0e151650e043b90">axis2_http_accept_record_t</a> *&nbsp;</td>
          <td class="paramname"> <em>accept_record</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const <a class="el" href="structaxutil__env.html">axutil_env_t</a> *&nbsp;</td>
          <td class="paramname"> <em>env</em></td><td>&nbsp;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td><td width="100%"></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
Gets name of accept record <dl compact><dt><b>Parameters:</b></dt><dd>
  <table border="0" cellspacing="2" cellpadding="0">
    <tr><td valign="top"></td><td valign="top"><em>accept_record</em>&nbsp;</td><td>pointer to accept record </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>env</em>&nbsp;</td><td>pointer to environment struct </td></tr>
  </table>
</dl>
<dl class="return" compact><dt><b>Returns:</b></dt><dd>name of accept record </dd></dl>

</div>
</div><p>
<a class="anchor" name="ge98e15ea5ff044610c235f7c45d947d7"></a><!-- doxytag: member="axis2_http_accept_record.h::axis2_http_accept_record_get_quality_factor" ref="ge98e15ea5ff044610c235f7c45d947d7" args="(const axis2_http_accept_record_t *accept_record, const axutil_env_t *env)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">AXIS2_EXTERN float axis2_http_accept_record_get_quality_factor           </td>
          <td>(</td>
          <td class="paramtype">const <a class="el" href="group__axis2__http__accept__record.html#ge384ef207777c3f8a0e151650e043b90">axis2_http_accept_record_t</a> *&nbsp;</td>
          <td class="paramname"> <em>accept_record</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const <a class="el" href="structaxutil__env.html">axutil_env_t</a> *&nbsp;</td>
          <td class="paramname"> <em>env</em></td><td>&nbsp;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td><td width="100%"></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
Gets quality factor of accept record <dl compact><dt><b>Parameters:</b></dt><dd>
  <table border="0" cellspacing="2" cellpadding="0">
    <tr><td valign="top"></td><td valign="top"><em>accept_record</em>&nbsp;</td><td>pointer to accept record </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>env</em>&nbsp;</td><td>pointer to environment struct </td></tr>
  </table>
</dl>
<dl class="return" compact><dt><b>Returns:</b></dt><dd>quality factor between 0 and 1 (1 meaning maximum and 0 meaning minimum) </dd></dl>

</div>
</div><p>
<a class="anchor" name="g8a6bd83de0b54aa34e6b297a02a13782"></a><!-- doxytag: member="axis2_http_accept_record.h::axis2_http_accept_record_to_string" ref="g8a6bd83de0b54aa34e6b297a02a13782" args="(axis2_http_accept_record_t *accept_record, const axutil_env_t *env)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">AXIS2_EXTERN axis2_char_t* axis2_http_accept_record_to_string           </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="group__axis2__http__accept__record.html#ge384ef207777c3f8a0e151650e043b90">axis2_http_accept_record_t</a> *&nbsp;</td>
          <td class="paramname"> <em>accept_record</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const <a class="el" href="structaxutil__env.html">axutil_env_t</a> *&nbsp;</td>
          <td class="paramname"> <em>env</em></td><td>&nbsp;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td><td width="100%"></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
Gets string representation of accept record <dl compact><dt><b>Parameters:</b></dt><dd>
  <table border="0" cellspacing="2" cellpadding="0">
    <tr><td valign="top"></td><td valign="top"><em>accept_record</em>&nbsp;</td><td>pointer to accept record </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>env</em>&nbsp;</td><td>pointer to environment struct </td></tr>
  </table>
</dl>
<dl class="return" compact><dt><b>Returns:</b></dt><dd>created accept record string </dd></dl>

</div>
</div><p>
<hr size="1"><address style="text-align: right;"><small>Generated on Fri Apr 17 11:49:44 2009 for Axis2/C by&nbsp;
<a href="http://www.doxygen.org/index.html">
<img src="doxygen.png" alt="doxygen" align="middle" border="0"></a> 1.5.3 </small></address>
</body>
</html>


<|start_filename|>xdocs/api/html/group__axiom__child__element__iterator.html<|end_filename|>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html><head><meta http-equiv="Content-Type" content="text/html;charset=UTF-8">
<title>Axis2/C: child element iterator</title>
<link href="doxygen.css" rel="stylesheet" type="text/css">
<link href="tabs.css" rel="stylesheet" type="text/css">
</head><body>
<!-- Generated by Doxygen 1.5.3 -->
<div class="tabs">
  <ul>
    <li><a href="index.html"><span>Main&nbsp;Page</span></a></li>
    <li><a href="modules.html"><span>Modules</span></a></li>
    <li><a href="annotated.html"><span>Classes</span></a></li>
    <li><a href="files.html"><span>Files</span></a></li>
    <li><a href="dirs.html"><span>Directories</span></a></li>
    <li><a href="pages.html"><span>Related&nbsp;Pages</span></a></li>
    <li><a href="examples.html"><span>Examples</span></a></li>
    <li>
      <form action="search.php" method="get">
        <table cellspacing="0" cellpadding="0" border="0">
          <tr>
            <td><label>&nbsp;<u>S</u>earch&nbsp;for&nbsp;</label></td>
            <td><input type="text" name="query" value="" size="20" accesskey="s"/></td>
          </tr>
        </table>
      </form>
    </li>
  </ul>
</div>
<h1>child element iterator<br>
<small>
[<a class="el" href="group__axiom__om.html">AXIOM</a>]</small>
</h1><table border="0" cellpadding="0" cellspacing="0">
<tr><td></td></tr>
<tr><td colspan="2"><br><h2>Defines</h2></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="gc0758626b28bbfbd90601deb7bb99941"></a><!-- doxytag: member="axiom_child_element_iterator::AXIOM_CHILD_ELEMENT_ITERATOR_FREE" ref="gc0758626b28bbfbd90601deb7bb99941" args="(iterator, env)" -->
#define&nbsp;</td><td class="memItemRight" valign="bottom"><b>AXIOM_CHILD_ELEMENT_ITERATOR_FREE</b>(iterator, env)&nbsp;&nbsp;&nbsp;axiom_child_element_iterator_free(iterator, env)</td></tr>

<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="g2787bc3aad29d5182215ca6977eb4356"></a><!-- doxytag: member="axiom_child_element_iterator::AXIOM_CHILD_ELEMENT_ITERATOR_REMOVE" ref="g2787bc3aad29d5182215ca6977eb4356" args="(iterator, env)" -->
#define&nbsp;</td><td class="memItemRight" valign="bottom"><b>AXIOM_CHILD_ELEMENT_ITERATOR_REMOVE</b>(iterator, env)&nbsp;&nbsp;&nbsp;axiom_child_element_iterator_remove(iterator, env)</td></tr>

<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="g9bf4c687c0bacf5d593a3bc54c415790"></a><!-- doxytag: member="axiom_child_element_iterator::AXIOM_CHILD_ELEMENT_ITERATOR_HAS_NEXT" ref="g9bf4c687c0bacf5d593a3bc54c415790" args="(iterator, env)" -->
#define&nbsp;</td><td class="memItemRight" valign="bottom"><b>AXIOM_CHILD_ELEMENT_ITERATOR_HAS_NEXT</b>(iterator, env)&nbsp;&nbsp;&nbsp;axiom_child_element_iterator_has_next(iterator, env)</td></tr>

<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="g0140cb62ccf00ac3f6bfdc4937839f21"></a><!-- doxytag: member="axiom_child_element_iterator::AXIOM_CHILD_ELEMENT_ITERATOR_NEXT" ref="g0140cb62ccf00ac3f6bfdc4937839f21" args="(iterator, env)" -->
#define&nbsp;</td><td class="memItemRight" valign="bottom"><b>AXIOM_CHILD_ELEMENT_ITERATOR_NEXT</b>(iterator, env)&nbsp;&nbsp;&nbsp;axiom_child_element_iterator_next(iterator, env)</td></tr>

<tr><td colspan="2"><br><h2>Functions</h2></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top">AXIS2_EXTERN void&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__axiom__child__element__iterator.html#gc3408b3bce2aad5ff7e0d5f66684e583">axiom_child_element_iterator_free</a> (void *iterator, const <a class="el" href="structaxutil__env.html">axutil_env_t</a> *env)</td></tr>

<tr><td class="memItemLeft" nowrap align="right" valign="top">AXIS2_EXTERN <br>
axis2_status_t&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__axiom__child__element__iterator.html#g5fdb1dfafa5ec44ffc46f3bb1301cd86">axiom_child_element_iterator_remove</a> (axiom_child_element_iterator_t *iterator, const <a class="el" href="structaxutil__env.html">axutil_env_t</a> *env)</td></tr>

<tr><td class="memItemLeft" nowrap align="right" valign="top">AXIS2_EXTERN axis2_bool_t&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__axiom__child__element__iterator.html#g6abb5119797edb10f7f2aebfa48d4c3b">axiom_child_element_iterator_has_next</a> (axiom_child_element_iterator_t *iterator, const <a class="el" href="structaxutil__env.html">axutil_env_t</a> *env)</td></tr>

<tr><td class="memItemLeft" nowrap align="right" valign="top">AXIS2_EXTERN <br>
axiom_node_t *&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__axiom__child__element__iterator.html#geb91b34e1dc19eaeb969179ce8e85b27">axiom_child_element_iterator_next</a> (axiom_child_element_iterator_t *iterator, const <a class="el" href="structaxutil__env.html">axutil_env_t</a> *env)</td></tr>

<tr><td class="memItemLeft" nowrap align="right" valign="top">AXIS2_EXTERN <br>
axiom_child_element_iterator_t *&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__axiom__child__element__iterator.html#g22b11e124caa715ecf3d31fb58991154">axiom_child_element_iterator_create</a> (const <a class="el" href="structaxutil__env.html">axutil_env_t</a> *env, axiom_node_t *current_child)</td></tr>

</table>
<hr><h2>Function Documentation</h2>
<a class="anchor" name="g22b11e124caa715ecf3d31fb58991154"></a><!-- doxytag: member="axiom_child_element_iterator.h::axiom_child_element_iterator_create" ref="g22b11e124caa715ecf3d31fb58991154" args="(const axutil_env_t *env, axiom_node_t *current_child)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">AXIS2_EXTERN axiom_child_element_iterator_t* axiom_child_element_iterator_create           </td>
          <td>(</td>
          <td class="paramtype">const <a class="el" href="structaxutil__env.html">axutil_env_t</a> *&nbsp;</td>
          <td class="paramname"> <em>env</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">axiom_node_t *&nbsp;</td>
          <td class="paramname"> <em>current_child</em></td><td>&nbsp;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td><td width="100%"></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
Create a child element interator for the current child <dl compact><dt><b>Parameters:</b></dt><dd>
  <table border="0" cellspacing="2" cellpadding="0">
    <tr><td valign="top"></td><td valign="top"><em>current</em>&nbsp;</td><td>child </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>env</em>&nbsp;</td><td>environment, MUST NOT be NULL. return axiom_child_element_iterator_t </td></tr>
  </table>
</dl>

</div>
</div><p>
<a class="anchor" name="gc3408b3bce2aad5ff7e0d5f66684e583"></a><!-- doxytag: member="axiom_child_element_iterator.h::axiom_child_element_iterator_free" ref="gc3408b3bce2aad5ff7e0d5f66684e583" args="(void *iterator, const axutil_env_t *env)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">AXIS2_EXTERN void axiom_child_element_iterator_free           </td>
          <td>(</td>
          <td class="paramtype">void *&nbsp;</td>
          <td class="paramname"> <em>iterator</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const <a class="el" href="structaxutil__env.html">axutil_env_t</a> *&nbsp;</td>
          <td class="paramname"> <em>env</em></td><td>&nbsp;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td><td width="100%"></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
Free the iterator <dl compact><dt><b>Parameters:</b></dt><dd>
  <table border="0" cellspacing="2" cellpadding="0">
    <tr><td valign="top"></td><td valign="top"><em>iterator</em>&nbsp;</td><td>a pointer to child element iterator struct </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>env</em>&nbsp;</td><td>environment, MUST NOT be NULL. </td></tr>
  </table>
</dl>

</div>
</div><p>
<a class="anchor" name="g6abb5119797edb10f7f2aebfa48d4c3b"></a><!-- doxytag: member="axiom_child_element_iterator.h::axiom_child_element_iterator_has_next" ref="g6abb5119797edb10f7f2aebfa48d4c3b" args="(axiom_child_element_iterator_t *iterator, const axutil_env_t *env)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">AXIS2_EXTERN axis2_bool_t axiom_child_element_iterator_has_next           </td>
          <td>(</td>
          <td class="paramtype">axiom_child_element_iterator_t *&nbsp;</td>
          <td class="paramname"> <em>iterator</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const <a class="el" href="structaxutil__env.html">axutil_env_t</a> *&nbsp;</td>
          <td class="paramname"> <em>env</em></td><td>&nbsp;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td><td width="100%"></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
returns true if the iteration has more elements in otherwords it returns true if the next() would return an element rather than null with an error code set to environments error <dl compact><dt><b>Parameters:</b></dt><dd>
  <table border="0" cellspacing="2" cellpadding="0">
    <tr><td valign="top"></td><td valign="top"><em>iterator</em>&nbsp;</td><td>a pointer to child element iterator struct </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>env</em>&nbsp;</td><td>environment, MUST NOT be NULL. </td></tr>
  </table>
</dl>

</div>
</div><p>
<a class="anchor" name="geb91b34e1dc19eaeb969179ce8e85b27"></a><!-- doxytag: member="axiom_child_element_iterator.h::axiom_child_element_iterator_next" ref="geb91b34e1dc19eaeb969179ce8e85b27" args="(axiom_child_element_iterator_t *iterator, const axutil_env_t *env)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">AXIS2_EXTERN axiom_node_t* axiom_child_element_iterator_next           </td>
          <td>(</td>
          <td class="paramtype">axiom_child_element_iterator_t *&nbsp;</td>
          <td class="paramname"> <em>iterator</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const <a class="el" href="structaxutil__env.html">axutil_env_t</a> *&nbsp;</td>
          <td class="paramname"> <em>env</em></td><td>&nbsp;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td><td width="100%"></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
Returns the next element in the iteration. Returns null if there is no more elements <dl compact><dt><b>Parameters:</b></dt><dd>
  <table border="0" cellspacing="2" cellpadding="0">
    <tr><td valign="top"></td><td valign="top"><em>iterator</em>&nbsp;</td><td>a pointer to child element iterator struct </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>env</em>&nbsp;</td><td>environment, MUST NOT be NULL. </td></tr>
  </table>
</dl>

</div>
</div><p>
<a class="anchor" name="g5fdb1dfafa5ec44ffc46f3bb1301cd86"></a><!-- doxytag: member="axiom_child_element_iterator.h::axiom_child_element_iterator_remove" ref="g5fdb1dfafa5ec44ffc46f3bb1301cd86" args="(axiom_child_element_iterator_t *iterator, const axutil_env_t *env)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">AXIS2_EXTERN axis2_status_t axiom_child_element_iterator_remove           </td>
          <td>(</td>
          <td class="paramtype">axiom_child_element_iterator_t *&nbsp;</td>
          <td class="paramname"> <em>iterator</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const <a class="el" href="structaxutil__env.html">axutil_env_t</a> *&nbsp;</td>
          <td class="paramname"> <em>env</em></td><td>&nbsp;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td><td width="100%"></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
Removes from the underlying collection the last element returned by the iterator (optional op). This method can be called only once per call to <code>next</code>. The behavior of an iterator is unspecified if the underlying collection is modified while the iteration is in progress in any way other than by calling this method. <dl compact><dt><b>Parameters:</b></dt><dd>
  <table border="0" cellspacing="2" cellpadding="0">
    <tr><td valign="top"></td><td valign="top"><em>iterator</em>&nbsp;</td><td>a pointer to child element iterator struct </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>env</em>&nbsp;</td><td>environment, MUST NOT be NULL. </td></tr>
  </table>
</dl>

</div>
</div><p>
<hr size="1"><address style="text-align: right;"><small>Generated on Fri Apr 17 11:49:44 2009 for Axis2/C by&nbsp;
<a href="http://www.doxygen.org/index.html">
<img src="doxygen.png" alt="doxygen" align="middle" border="0"></a> 1.5.3 </small></address>
</body>
</html>


<|start_filename|>xdocs/api/html/group__axiom__children__iterator.html<|end_filename|>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html><head><meta http-equiv="Content-Type" content="text/html;charset=UTF-8">
<title>Axis2/C: children iterator</title>
<link href="doxygen.css" rel="stylesheet" type="text/css">
<link href="tabs.css" rel="stylesheet" type="text/css">
</head><body>
<!-- Generated by Doxygen 1.5.3 -->
<div class="tabs">
  <ul>
    <li><a href="index.html"><span>Main&nbsp;Page</span></a></li>
    <li><a href="modules.html"><span>Modules</span></a></li>
    <li><a href="annotated.html"><span>Classes</span></a></li>
    <li><a href="files.html"><span>Files</span></a></li>
    <li><a href="dirs.html"><span>Directories</span></a></li>
    <li><a href="pages.html"><span>Related&nbsp;Pages</span></a></li>
    <li><a href="examples.html"><span>Examples</span></a></li>
    <li>
      <form action="search.php" method="get">
        <table cellspacing="0" cellpadding="0" border="0">
          <tr>
            <td><label>&nbsp;<u>S</u>earch&nbsp;for&nbsp;</label></td>
            <td><input type="text" name="query" value="" size="20" accesskey="s"/></td>
          </tr>
        </table>
      </form>
    </li>
  </ul>
</div>
<h1>children iterator<br>
<small>
[<a class="el" href="group__axiom__om.html">AXIOM</a>]</small>
</h1><table border="0" cellpadding="0" cellspacing="0">
<tr><td></td></tr>
<tr><td colspan="2"><br><h2>Functions</h2></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top">AXIS2_EXTERN <br>
axiom_children_iterator_t *&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__axiom__children__iterator.html#ge1e162cfd416427d54f339543e580d48">axiom_children_iterator_create</a> (const <a class="el" href="structaxutil__env.html">axutil_env_t</a> *env, axiom_node_t *current_child)</td></tr>

<tr><td class="memItemLeft" nowrap align="right" valign="top">AXIS2_EXTERN void&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__axiom__children__iterator.html#gaf7cc3ef96f809a6a28d1d9884669f39">axiom_children_iterator_free</a> (axiom_children_iterator_t *iterator, const <a class="el" href="structaxutil__env.html">axutil_env_t</a> *env)</td></tr>

<tr><td class="memItemLeft" nowrap align="right" valign="top">AXIS2_EXTERN <br>
axis2_status_t&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__axiom__children__iterator.html#g43a2456b06e06c44abb0d0cc93230514">axiom_children_iterator_remove</a> (axiom_children_iterator_t *iterator, const <a class="el" href="structaxutil__env.html">axutil_env_t</a> *env)</td></tr>

<tr><td class="memItemLeft" nowrap align="right" valign="top">AXIS2_EXTERN axis2_bool_t&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__axiom__children__iterator.html#g2feaa85fe1cc83968e6f8bb51cc546d7">axiom_children_iterator_has_next</a> (axiom_children_iterator_t *iterator, const <a class="el" href="structaxutil__env.html">axutil_env_t</a> *env)</td></tr>

<tr><td class="memItemLeft" nowrap align="right" valign="top">AXIS2_EXTERN <br>
axiom_node_t *&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__axiom__children__iterator.html#gf494b239eadffce560091d7896b1ab8f">axiom_children_iterator_next</a> (axiom_children_iterator_t *iterator, const <a class="el" href="structaxutil__env.html">axutil_env_t</a> *env)</td></tr>

<tr><td class="memItemLeft" nowrap align="right" valign="top">AXIS2_EXTERN <br>
axis2_status_t&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__axiom__children__iterator.html#g0a84a4adc451ea9428f38bef04a8f0af">axiom_children_iterator_reset</a> (axiom_children_iterator_t *iterator, const <a class="el" href="structaxutil__env.html">axutil_env_t</a> *env)</td></tr>

</table>
<hr><h2>Function Documentation</h2>
<a class="anchor" name="ge1e162cfd416427d54f339543e580d48"></a><!-- doxytag: member="axiom_children_iterator.h::axiom_children_iterator_create" ref="ge1e162cfd416427d54f339543e580d48" args="(const axutil_env_t *env, axiom_node_t *current_child)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">AXIS2_EXTERN axiom_children_iterator_t* axiom_children_iterator_create           </td>
          <td>(</td>
          <td class="paramtype">const <a class="el" href="structaxutil__env.html">axutil_env_t</a> *&nbsp;</td>
          <td class="paramname"> <em>env</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">axiom_node_t *&nbsp;</td>
          <td class="paramname"> <em>current_child</em></td><td>&nbsp;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td><td width="100%"></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
<dl compact><dt><b>Parameters:</b></dt><dd>
  <table border="0" cellspacing="2" cellpadding="0">
    <tr><td valign="top"></td><td valign="top"><em>current</em>&nbsp;</td><td>child </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>env</em>&nbsp;</td><td>environment return axiom_children_iterator_t </td></tr>
  </table>
</dl>

</div>
</div><p>
<a class="anchor" name="gaf7cc3ef96f809a6a28d1d9884669f39"></a><!-- doxytag: member="axiom_children_iterator.h::axiom_children_iterator_free" ref="gaf7cc3ef96f809a6a28d1d9884669f39" args="(axiom_children_iterator_t *iterator, const axutil_env_t *env)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">AXIS2_EXTERN void axiom_children_iterator_free           </td>
          <td>(</td>
          <td class="paramtype">axiom_children_iterator_t *&nbsp;</td>
          <td class="paramname"> <em>iterator</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const <a class="el" href="structaxutil__env.html">axutil_env_t</a> *&nbsp;</td>
          <td class="paramname"> <em>env</em></td><td>&nbsp;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td><td width="100%"></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
Free the om_children_iterator struct <dl compact><dt><b>Parameters:</b></dt><dd>
  <table border="0" cellspacing="2" cellpadding="0">
    <tr><td valign="top"></td><td valign="top"><em>iterator</em>&nbsp;</td><td>a pointer to axiom children iterator struct </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>env</em>&nbsp;</td><td>environment, MUST NOT be NULL </td></tr>
  </table>
</dl>

</div>
</div><p>
<a class="anchor" name="g2feaa85fe1cc83968e6f8bb51cc546d7"></a><!-- doxytag: member="axiom_children_iterator.h::axiom_children_iterator_has_next" ref="g2feaa85fe1cc83968e6f8bb51cc546d7" args="(axiom_children_iterator_t *iterator, const axutil_env_t *env)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">AXIS2_EXTERN axis2_bool_t axiom_children_iterator_has_next           </td>
          <td>(</td>
          <td class="paramtype">axiom_children_iterator_t *&nbsp;</td>
          <td class="paramname"> <em>iterator</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const <a class="el" href="structaxutil__env.html">axutil_env_t</a> *&nbsp;</td>
          <td class="paramname"> <em>env</em></td><td>&nbsp;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td><td width="100%"></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
<dl class="return" compact><dt><b>Returns:</b></dt><dd>true if the iteration has more elements. In other words, returns true if next() would return an om_node_t struct rather than null with error code set in environment </dd></dl>
<dl compact><dt><b>Parameters:</b></dt><dd>
  <table border="0" cellspacing="2" cellpadding="0">
    <tr><td valign="top"></td><td valign="top"><em>iterator</em>&nbsp;</td><td>a pointer to axiom children iterator struct </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>env</em>&nbsp;</td><td>environment, MUST NOT be NULL </td></tr>
  </table>
</dl>

</div>
</div><p>
<a class="anchor" name="gf494b239eadffce560091d7896b1ab8f"></a><!-- doxytag: member="axiom_children_iterator.h::axiom_children_iterator_next" ref="gf494b239eadffce560091d7896b1ab8f" args="(axiom_children_iterator_t *iterator, const axutil_env_t *env)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">AXIS2_EXTERN axiom_node_t* axiom_children_iterator_next           </td>
          <td>(</td>
          <td class="paramtype">axiom_children_iterator_t *&nbsp;</td>
          <td class="paramname"> <em>iterator</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const <a class="el" href="structaxutil__env.html">axutil_env_t</a> *&nbsp;</td>
          <td class="paramname"> <em>env</em></td><td>&nbsp;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td><td width="100%"></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
Returns the next element in the iteration. Returns null if there are no more elements in the iteration <dl compact><dt><b>Parameters:</b></dt><dd>
  <table border="0" cellspacing="2" cellpadding="0">
    <tr><td valign="top"></td><td valign="top"><em>iterator</em>&nbsp;</td><td>a pointer to axiom children iterator struct </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>env</em>&nbsp;</td><td>environment, MUST NOT be NULL </td></tr>
  </table>
</dl>

</div>
</div><p>
<a class="anchor" name="g43a2456b06e06c44abb0d0cc93230514"></a><!-- doxytag: member="axiom_children_iterator.h::axiom_children_iterator_remove" ref="g43a2456b06e06c44abb0d0cc93230514" args="(axiom_children_iterator_t *iterator, const axutil_env_t *env)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">AXIS2_EXTERN axis2_status_t axiom_children_iterator_remove           </td>
          <td>(</td>
          <td class="paramtype">axiom_children_iterator_t *&nbsp;</td>
          <td class="paramname"> <em>iterator</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const <a class="el" href="structaxutil__env.html">axutil_env_t</a> *&nbsp;</td>
          <td class="paramname"> <em>env</em></td><td>&nbsp;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td><td width="100%"></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
Removes from the underlying collection the last element returned by the iterator (optional op). This method can be called only once per call to <code>next</code>. The behavior of an iterator is unspecified if the underlying collection is modified while the iteration is in progress in any way other than by calling this method. <dl compact><dt><b>Parameters:</b></dt><dd>
  <table border="0" cellspacing="2" cellpadding="0">
    <tr><td valign="top"></td><td valign="top"><em>iterator</em>&nbsp;</td><td>a pointer to axiom children iterator struct </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>env</em>&nbsp;</td><td>environment, MUST NOT be NULL </td></tr>
  </table>
</dl>

</div>
</div><p>
<a class="anchor" name="g0a84a4adc451ea9428f38bef04a8f0af"></a><!-- doxytag: member="axiom_children_iterator.h::axiom_children_iterator_reset" ref="g0a84a4adc451ea9428f38bef04a8f0af" args="(axiom_children_iterator_t *iterator, const axutil_env_t *env)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">AXIS2_EXTERN axis2_status_t axiom_children_iterator_reset           </td>
          <td>(</td>
          <td class="paramtype">axiom_children_iterator_t *&nbsp;</td>
          <td class="paramname"> <em>iterator</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const <a class="el" href="structaxutil__env.html">axutil_env_t</a> *&nbsp;</td>
          <td class="paramname"> <em>env</em></td><td>&nbsp;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td><td width="100%"></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
Resets the Iterator. This moves the cursor back to the initial. iterator chidren_iterator to be reset. <dl compact><dt><b>Parameters:</b></dt><dd>
  <table border="0" cellspacing="2" cellpadding="0">
    <tr><td valign="top"></td><td valign="top"><em>iterator</em>&nbsp;</td><td>a pointer to axiom children iterator struct </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>env</em>&nbsp;</td><td>environment, MUST NOT be NULL </td></tr>
  </table>
</dl>
<dl class="return" compact><dt><b>Returns:</b></dt><dd>satus of the op. AXIS2_SUCCESS on success else AXIS2_FAILURE. </dd></dl>

</div>
</div><p>
<hr size="1"><address style="text-align: right;"><small>Generated on Fri Apr 17 11:49:44 2009 for Axis2/C by&nbsp;
<a href="http://www.doxygen.org/index.html">
<img src="doxygen.png" alt="doxygen" align="middle" border="0"></a> 1.5.3 </small></address>
</body>
</html>


<|start_filename|>xdocs/api/html/group__axis2__msg__info__headers.html<|end_filename|>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html><head><meta http-equiv="Content-Type" content="text/html;charset=UTF-8">
<title>Axis2/C: message information headers</title>
<link href="doxygen.css" rel="stylesheet" type="text/css">
<link href="tabs.css" rel="stylesheet" type="text/css">
</head><body>
<!-- Generated by Doxygen 1.5.3 -->
<div class="tabs">
  <ul>
    <li><a href="index.html"><span>Main&nbsp;Page</span></a></li>
    <li><a href="modules.html"><span>Modules</span></a></li>
    <li><a href="annotated.html"><span>Classes</span></a></li>
    <li><a href="files.html"><span>Files</span></a></li>
    <li><a href="dirs.html"><span>Directories</span></a></li>
    <li><a href="pages.html"><span>Related&nbsp;Pages</span></a></li>
    <li><a href="examples.html"><span>Examples</span></a></li>
    <li>
      <form action="search.php" method="get">
        <table cellspacing="0" cellpadding="0" border="0">
          <tr>
            <td><label>&nbsp;<u>S</u>earch&nbsp;for&nbsp;</label></td>
            <td><input type="text" name="query" value="" size="20" accesskey="s"/></td>
          </tr>
        </table>
      </form>
    </li>
  </ul>
</div>
<h1>message information headers<br>
<small>
[<a class="el" href="group__axis2__addr.html">WS-Addressing</a>]</small>
</h1><table border="0" cellpadding="0" cellspacing="0">
<tr><td></td></tr>
<tr><td colspan="2"><br><h2>Files</h2></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top">file &nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="axis2__msg__info__headers_8h.html">axis2_msg_info_headers.h</a></td></tr>

<tr><td colspan="2"><br><h2>Typedefs</h2></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top">typedef struct <br>
axis2_msg_info_headers&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__axis2__msg__info__headers.html#g556873fdfa94e29e43d96728871f3192">axis2_msg_info_headers_t</a></td></tr>

<tr><td colspan="2"><br><h2>Functions</h2></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top">AXIS2_EXTERN <br>
<a class="el" href="group__axis2__msg__info__headers.html#g556873fdfa94e29e43d96728871f3192">axis2_msg_info_headers_t</a> *&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__axis2__msg__info__headers.html#g380a396ffcbb6e663cda2851630f018f">axis2_msg_info_headers_create</a> (const <a class="el" href="structaxutil__env.html">axutil_env_t</a> *env, <a class="el" href="group__axis2__endpoint__ref.html#gf6e89c83a6b553e7e3f11e787b3fecd4">axis2_endpoint_ref_t</a> *to, const axis2_char_t *action)</td></tr>

<tr><td class="memItemLeft" nowrap align="right" valign="top">AXIS2_EXTERN <br>
<a class="el" href="group__axis2__endpoint__ref.html#gf6e89c83a6b553e7e3f11e787b3fecd4">axis2_endpoint_ref_t</a> *&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__axis2__msg__info__headers.html#gb280fd5c6eb7ef2f604a88f4682076f8">axis2_msg_info_headers_get_to</a> (const <a class="el" href="group__axis2__msg__info__headers.html#g556873fdfa94e29e43d96728871f3192">axis2_msg_info_headers_t</a> *msg_info_headers, const <a class="el" href="structaxutil__env.html">axutil_env_t</a> *env)</td></tr>

<tr><td class="memItemLeft" nowrap align="right" valign="top">AXIS2_EXTERN <br>
axis2_status_t&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__axis2__msg__info__headers.html#g3ca4a29c369d4e871f957fe773353325">axis2_msg_info_headers_set_to</a> (struct axis2_msg_info_headers *msg_info_headers, const <a class="el" href="structaxutil__env.html">axutil_env_t</a> *env, <a class="el" href="group__axis2__endpoint__ref.html#gf6e89c83a6b553e7e3f11e787b3fecd4">axis2_endpoint_ref_t</a> *to)</td></tr>

<tr><td class="memItemLeft" nowrap align="right" valign="top">AXIS2_EXTERN <br>
<a class="el" href="group__axis2__endpoint__ref.html#gf6e89c83a6b553e7e3f11e787b3fecd4">axis2_endpoint_ref_t</a> *&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__axis2__msg__info__headers.html#g6783234388f589ae7d6d794558c7f994">axis2_msg_info_headers_get_from</a> (const <a class="el" href="group__axis2__msg__info__headers.html#g556873fdfa94e29e43d96728871f3192">axis2_msg_info_headers_t</a> *msg_info_headers, const <a class="el" href="structaxutil__env.html">axutil_env_t</a> *env)</td></tr>

<tr><td class="memItemLeft" nowrap align="right" valign="top">AXIS2_EXTERN <br>
axis2_status_t&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__axis2__msg__info__headers.html#g917b50452decc40c55c8e8afbcf943a6">axis2_msg_info_headers_set_from</a> (struct axis2_msg_info_headers *msg_info_headers, const <a class="el" href="structaxutil__env.html">axutil_env_t</a> *env, <a class="el" href="group__axis2__endpoint__ref.html#gf6e89c83a6b553e7e3f11e787b3fecd4">axis2_endpoint_ref_t</a> *from)</td></tr>

<tr><td class="memItemLeft" nowrap align="right" valign="top">AXIS2_EXTERN <br>
<a class="el" href="group__axis2__endpoint__ref.html#gf6e89c83a6b553e7e3f11e787b3fecd4">axis2_endpoint_ref_t</a> *&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__axis2__msg__info__headers.html#g98b339f94e7b186fb4eaed76116e8dc0">axis2_msg_info_headers_get_reply_to</a> (const <a class="el" href="group__axis2__msg__info__headers.html#g556873fdfa94e29e43d96728871f3192">axis2_msg_info_headers_t</a> *msg_info_headers, const <a class="el" href="structaxutil__env.html">axutil_env_t</a> *env)</td></tr>

<tr><td class="memItemLeft" nowrap align="right" valign="top">AXIS2_EXTERN <br>
axis2_status_t&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__axis2__msg__info__headers.html#g3de0c94851f356772629aa5851290f2f">axis2_msg_info_headers_set_reply_to</a> (struct axis2_msg_info_headers *msg_info_headers, const <a class="el" href="structaxutil__env.html">axutil_env_t</a> *env, <a class="el" href="group__axis2__endpoint__ref.html#gf6e89c83a6b553e7e3f11e787b3fecd4">axis2_endpoint_ref_t</a> *reply_to)</td></tr>

<tr><td class="memItemLeft" nowrap align="right" valign="top">AXIS2_EXTERN <br>
axis2_status_t&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__axis2__msg__info__headers.html#g64bfb8b2ebdabd55719c6b3b300a5499">axis2_msg_info_headers_set_reply_to_none</a> (struct axis2_msg_info_headers *msg_info_headers, const <a class="el" href="structaxutil__env.html">axutil_env_t</a> *env, const axis2_bool_t none)</td></tr>

<tr><td class="memItemLeft" nowrap align="right" valign="top">AXIS2_EXTERN axis2_bool_t&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__axis2__msg__info__headers.html#gaa81e0e4e5e338f395c2682ab11c665d">axis2_msg_info_headers_get_reply_to_none</a> (const <a class="el" href="group__axis2__msg__info__headers.html#g556873fdfa94e29e43d96728871f3192">axis2_msg_info_headers_t</a> *msg_info_headers, const <a class="el" href="structaxutil__env.html">axutil_env_t</a> *env)</td></tr>

<tr><td class="memItemLeft" nowrap align="right" valign="top">AXIS2_EXTERN <br>
axis2_status_t&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__axis2__msg__info__headers.html#g048b85e9ace9b60a54c500aac7e343cb">axis2_msg_info_headers_set_reply_to_anonymous</a> (struct axis2_msg_info_headers *msg_info_headers, const <a class="el" href="structaxutil__env.html">axutil_env_t</a> *env, const axis2_bool_t anonymous)</td></tr>

<tr><td class="memItemLeft" nowrap align="right" valign="top">AXIS2_EXTERN axis2_bool_t&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__axis2__msg__info__headers.html#gd97b6d6039b46707d5e1e88a7610c050">axis2_msg_info_headers_get_reply_to_anonymous</a> (const <a class="el" href="group__axis2__msg__info__headers.html#g556873fdfa94e29e43d96728871f3192">axis2_msg_info_headers_t</a> *msg_info_headers, const <a class="el" href="structaxutil__env.html">axutil_env_t</a> *env)</td></tr>

<tr><td class="memItemLeft" nowrap align="right" valign="top">AXIS2_EXTERN <br>
<a class="el" href="group__axis2__endpoint__ref.html#gf6e89c83a6b553e7e3f11e787b3fecd4">axis2_endpoint_ref_t</a> *&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__axis2__msg__info__headers.html#g5be8673619408ed53d062372d6e46414">axis2_msg_info_headers_get_fault_to</a> (const <a class="el" href="group__axis2__msg__info__headers.html#g556873fdfa94e29e43d96728871f3192">axis2_msg_info_headers_t</a> *msg_info_headers, const <a class="el" href="structaxutil__env.html">axutil_env_t</a> *env)</td></tr>

<tr><td class="memItemLeft" nowrap align="right" valign="top">AXIS2_EXTERN <br>
axis2_status_t&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__axis2__msg__info__headers.html#g9d097759c95b088583709dd83e19ca90">axis2_msg_info_headers_set_fault_to</a> (struct axis2_msg_info_headers *msg_info_headers, const <a class="el" href="structaxutil__env.html">axutil_env_t</a> *env, <a class="el" href="group__axis2__endpoint__ref.html#gf6e89c83a6b553e7e3f11e787b3fecd4">axis2_endpoint_ref_t</a> *fault_to)</td></tr>

<tr><td class="memItemLeft" nowrap align="right" valign="top">AXIS2_EXTERN <br>
axis2_status_t&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__axis2__msg__info__headers.html#g4f66e5d4b845de21780aa409b8997672">axis2_msg_info_headers_set_fault_to_none</a> (struct axis2_msg_info_headers *msg_info_headers, const <a class="el" href="structaxutil__env.html">axutil_env_t</a> *env, const axis2_bool_t none)</td></tr>

<tr><td class="memItemLeft" nowrap align="right" valign="top">AXIS2_EXTERN axis2_bool_t&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__axis2__msg__info__headers.html#g6e4af66cb1dcc12ce970ef098f364f77">axis2_msg_info_headers_get_fault_to_none</a> (const <a class="el" href="group__axis2__msg__info__headers.html#g556873fdfa94e29e43d96728871f3192">axis2_msg_info_headers_t</a> *msg_info_headers, const <a class="el" href="structaxutil__env.html">axutil_env_t</a> *env)</td></tr>

<tr><td class="memItemLeft" nowrap align="right" valign="top">AXIS2_EXTERN <br>
axis2_status_t&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__axis2__msg__info__headers.html#gcdd63e8863b18076b46aee90f5b05c6f">axis2_msg_info_headers_set_fault_to_anonymous</a> (struct axis2_msg_info_headers *msg_info_headers, const <a class="el" href="structaxutil__env.html">axutil_env_t</a> *env, const axis2_bool_t anonymous)</td></tr>

<tr><td class="memItemLeft" nowrap align="right" valign="top">AXIS2_EXTERN axis2_bool_t&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__axis2__msg__info__headers.html#g4654c31f1dc87401fc8f8acb9de79c4e">axis2_msg_info_headers_get_fault_to_anonymous</a> (const <a class="el" href="group__axis2__msg__info__headers.html#g556873fdfa94e29e43d96728871f3192">axis2_msg_info_headers_t</a> *msg_info_headers, const <a class="el" href="structaxutil__env.html">axutil_env_t</a> *env)</td></tr>

<tr><td class="memItemLeft" nowrap align="right" valign="top">AXIS2_EXTERN const <br>
axis2_char_t *&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__axis2__msg__info__headers.html#g23bef716feab65ea5cea145875c7053d">axis2_msg_info_headers_get_action</a> (const <a class="el" href="group__axis2__msg__info__headers.html#g556873fdfa94e29e43d96728871f3192">axis2_msg_info_headers_t</a> *msg_info_headers, const <a class="el" href="structaxutil__env.html">axutil_env_t</a> *env)</td></tr>

<tr><td class="memItemLeft" nowrap align="right" valign="top">AXIS2_EXTERN <br>
axis2_status_t&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__axis2__msg__info__headers.html#gc70fa14807b569da33ddc91a6edd5031">axis2_msg_info_headers_set_action</a> (struct axis2_msg_info_headers *msg_info_headers, const <a class="el" href="structaxutil__env.html">axutil_env_t</a> *env, const axis2_char_t *action)</td></tr>

<tr><td class="memItemLeft" nowrap align="right" valign="top">AXIS2_EXTERN const <br>
axis2_char_t *&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__axis2__msg__info__headers.html#gbe06f2880f498d70f44934445d78bf0d">axis2_msg_info_headers_get_message_id</a> (const <a class="el" href="group__axis2__msg__info__headers.html#g556873fdfa94e29e43d96728871f3192">axis2_msg_info_headers_t</a> *msg_info_headers, const <a class="el" href="structaxutil__env.html">axutil_env_t</a> *env)</td></tr>

<tr><td class="memItemLeft" nowrap align="right" valign="top">AXIS2_EXTERN <br>
axis2_status_t&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__axis2__msg__info__headers.html#ge85e94287e9fd4a3b21f7ebe681dfa0e">axis2_msg_info_headers_set_message_id</a> (struct axis2_msg_info_headers *msg_info_headers, const <a class="el" href="structaxutil__env.html">axutil_env_t</a> *env, const axis2_char_t *message_id)</td></tr>

<tr><td class="memItemLeft" nowrap align="right" valign="top">AXIS2_EXTERN <br>
axis2_status_t&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__axis2__msg__info__headers.html#gbfb3b68d69fffce5abe41d50a8d3e225">axis2_msg_info_headers_set_in_message_id</a> (struct axis2_msg_info_headers *msg_info_headers, const <a class="el" href="structaxutil__env.html">axutil_env_t</a> *env, const axis2_char_t *message_id)</td></tr>

<tr><td class="memItemLeft" nowrap align="right" valign="top">AXIS2_EXTERN <br>
<a class="el" href="group__axis2__relates__to.html#gd92fd7b0e63b44c6343db15b61aeba45">axis2_relates_to_t</a> *&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__axis2__msg__info__headers.html#g32e68bb5397e49a5109625e06485e032">axis2_msg_info_headers_get_relates_to</a> (const <a class="el" href="group__axis2__msg__info__headers.html#g556873fdfa94e29e43d96728871f3192">axis2_msg_info_headers_t</a> *msg_info_headers, const <a class="el" href="structaxutil__env.html">axutil_env_t</a> *env)</td></tr>

<tr><td class="memItemLeft" nowrap align="right" valign="top">AXIS2_EXTERN <br>
axis2_status_t&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__axis2__msg__info__headers.html#g26b2b3881cbf3f3f02f1c512c96485ff">axis2_msg_info_headers_set_relates_to</a> (struct axis2_msg_info_headers *msg_info_headers, const <a class="el" href="structaxutil__env.html">axutil_env_t</a> *env, <a class="el" href="group__axis2__relates__to.html#gd92fd7b0e63b44c6343db15b61aeba45">axis2_relates_to_t</a> *relates_to)</td></tr>

<tr><td class="memItemLeft" nowrap align="right" valign="top">AXIS2_EXTERN <br>
<a class="el" href="group__axutil__array__list.html#g1a6a89777db876cfa0cc86787b7be6a0">axutil_array_list_t</a> *&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__axis2__msg__info__headers.html#g085e872c1d2b336e927df9f2f7d9a4ae">axis2_msg_info_headers_get_all_ref_params</a> (const <a class="el" href="group__axis2__msg__info__headers.html#g556873fdfa94e29e43d96728871f3192">axis2_msg_info_headers_t</a> *msg_info_headers, const <a class="el" href="structaxutil__env.html">axutil_env_t</a> *env)</td></tr>

<tr><td class="memItemLeft" nowrap align="right" valign="top">AXIS2_EXTERN <br>
axis2_status_t&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__axis2__msg__info__headers.html#ga95d76b3311e4885959e2a5609a327f0">axis2_msg_info_headers_add_ref_param</a> (struct axis2_msg_info_headers *msg_info_headers, const <a class="el" href="structaxutil__env.html">axutil_env_t</a> *env, axiom_node_t *ref_param)</td></tr>

<tr><td class="memItemLeft" nowrap align="right" valign="top">AXIS2_EXTERN void&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__axis2__msg__info__headers.html#g7a6d878c6d3c94555e4e9a0200583ee7">axis2_msg_info_headers_free</a> (struct axis2_msg_info_headers *msg_info_headers, const <a class="el" href="structaxutil__env.html">axutil_env_t</a> *env)</td></tr>

</table>
<hr><a name="_details"></a><h2>Detailed Description</h2>
message information headers encapsulates properties that enable the identification and location of the endpoints involved in an interaction. The basic interaction pattern from which all others are composed is "one way". In this pattern a source sends a message to a destination without any further definition of the interaction. "Request Reply" is a common interaction pattern that consists of an initial message sent by a source endpoint (the request) and a subsequent message sent from the destination of the request back to the source (the reply). A reply can be either an application message, a fault, or any other message. message information headers capture addressing information related to these interaction patterns such as from, to, reply to and fault to addresses. <hr><h2>Typedef Documentation</h2>
<a class="anchor" name="g556873fdfa94e29e43d96728871f3192"></a><!-- doxytag: member="axis2_msg_info_headers.h::axis2_msg_info_headers_t" ref="g556873fdfa94e29e43d96728871f3192" args="" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">typedef struct axis2_msg_info_headers <a class="el" href="group__axis2__msg__info__headers.html#g556873fdfa94e29e43d96728871f3192">axis2_msg_info_headers_t</a>          </td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
Type name for struct axis2_msg_info_headers 
</div>
</div><p>
<hr><h2>Function Documentation</h2>
<a class="anchor" name="ga95d76b3311e4885959e2a5609a327f0"></a><!-- doxytag: member="axis2_msg_info_headers.h::axis2_msg_info_headers_add_ref_param" ref="ga95d76b3311e4885959e2a5609a327f0" args="(struct axis2_msg_info_headers *msg_info_headers, const axutil_env_t *env, axiom_node_t *ref_param)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">AXIS2_EXTERN axis2_status_t axis2_msg_info_headers_add_ref_param           </td>
          <td>(</td>
          <td class="paramtype">struct axis2_msg_info_headers *&nbsp;</td>
          <td class="paramname"> <em>msg_info_headers</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const <a class="el" href="structaxutil__env.html">axutil_env_t</a> *&nbsp;</td>
          <td class="paramname"> <em>env</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">axiom_node_t *&nbsp;</td>
          <td class="paramname"> <em>ref_param</em></td><td>&nbsp;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td><td width="100%"></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
Adds a reference parameter in the form of an AXIOM node. <dl compact><dt><b>Parameters:</b></dt><dd>
  <table border="0" cellspacing="2" cellpadding="0">
    <tr><td valign="top"></td><td valign="top"><em>msg_info_headers</em>&nbsp;</td><td>pointer to message information headers struct </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>env</em>&nbsp;</td><td>pointer to environment struct </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>ref_param</em>&nbsp;</td><td>pointer to AXIOM node representing reference parameter, message information header does not assume ownership of node </td></tr>
  </table>
</dl>
<dl class="return" compact><dt><b>Returns:</b></dt><dd>AXIS2_SUCCESS on success, else AXIS2_FAILURE </dd></dl>

</div>
</div><p>
<a class="anchor" name="g380a396ffcbb6e663cda2851630f018f"></a><!-- doxytag: member="axis2_msg_info_headers.h::axis2_msg_info_headers_create" ref="g380a396ffcbb6e663cda2851630f018f" args="(const axutil_env_t *env, axis2_endpoint_ref_t *to, const axis2_char_t *action)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">AXIS2_EXTERN <a class="el" href="group__axis2__msg__info__headers.html#g556873fdfa94e29e43d96728871f3192">axis2_msg_info_headers_t</a>* axis2_msg_info_headers_create           </td>
          <td>(</td>
          <td class="paramtype">const <a class="el" href="structaxutil__env.html">axutil_env_t</a> *&nbsp;</td>
          <td class="paramname"> <em>env</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype"><a class="el" href="group__axis2__endpoint__ref.html#gf6e89c83a6b553e7e3f11e787b3fecd4">axis2_endpoint_ref_t</a> *&nbsp;</td>
          <td class="paramname"> <em>to</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const axis2_char_t *&nbsp;</td>
          <td class="paramname"> <em>action</em></td><td>&nbsp;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td><td width="100%"></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
Creates message information headers struct. <dl compact><dt><b>Parameters:</b></dt><dd>
  <table border="0" cellspacing="2" cellpadding="0">
    <tr><td valign="top"></td><td valign="top"><em>env</em>&nbsp;</td><td>pointer to environment struct </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>to</em>&nbsp;</td><td>pointer to endpoint reference representing to endpoint </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>action</em>&nbsp;</td><td>WS-Addressing action string </td></tr>
  </table>
</dl>
<dl class="return" compact><dt><b>Returns:</b></dt><dd>pointer to newly created message information headers struct </dd></dl>

</div>
</div><p>
<a class="anchor" name="g7a6d878c6d3c94555e4e9a0200583ee7"></a><!-- doxytag: member="axis2_msg_info_headers.h::axis2_msg_info_headers_free" ref="g7a6d878c6d3c94555e4e9a0200583ee7" args="(struct axis2_msg_info_headers *msg_info_headers, const axutil_env_t *env)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">AXIS2_EXTERN void axis2_msg_info_headers_free           </td>
          <td>(</td>
          <td class="paramtype">struct axis2_msg_info_headers *&nbsp;</td>
          <td class="paramname"> <em>msg_info_headers</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const <a class="el" href="structaxutil__env.html">axutil_env_t</a> *&nbsp;</td>
          <td class="paramname"> <em>env</em></td><td>&nbsp;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td><td width="100%"></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
Frees message information header struct. <dl compact><dt><b>Parameters:</b></dt><dd>
  <table border="0" cellspacing="2" cellpadding="0">
    <tr><td valign="top"></td><td valign="top"><em>msg_info_headers</em>&nbsp;</td><td>pointer to message information headers struct </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>env</em>&nbsp;</td><td>pointer to environment struct </td></tr>
  </table>
</dl>
<dl class="return" compact><dt><b>Returns:</b></dt><dd>void </dd></dl>

</div>
</div><p>
<a class="anchor" name="g23bef716feab65ea5cea145875c7053d"></a><!-- doxytag: member="axis2_msg_info_headers.h::axis2_msg_info_headers_get_action" ref="g23bef716feab65ea5cea145875c7053d" args="(const axis2_msg_info_headers_t *msg_info_headers, const axutil_env_t *env)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">AXIS2_EXTERN const axis2_char_t* axis2_msg_info_headers_get_action           </td>
          <td>(</td>
          <td class="paramtype">const <a class="el" href="group__axis2__msg__info__headers.html#g556873fdfa94e29e43d96728871f3192">axis2_msg_info_headers_t</a> *&nbsp;</td>
          <td class="paramname"> <em>msg_info_headers</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const <a class="el" href="structaxutil__env.html">axutil_env_t</a> *&nbsp;</td>
          <td class="paramname"> <em>env</em></td><td>&nbsp;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td><td width="100%"></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
Gets WS-Addressing action. action is an absolute IRI (Internationalized Resource Identifier) that uniquely identifies the semantics implied by this message. <dl compact><dt><b>Parameters:</b></dt><dd>
  <table border="0" cellspacing="2" cellpadding="0">
    <tr><td valign="top"></td><td valign="top"><em>msg_info_headers</em>&nbsp;</td><td>pointer to message information headers struct </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>env</em>&nbsp;</td><td>pointer to environment struct </td></tr>
  </table>
</dl>
<dl class="return" compact><dt><b>Returns:</b></dt><dd>WS-Addressing action string </dd></dl>

</div>
</div><p>
<a class="anchor" name="g085e872c1d2b336e927df9f2f7d9a4ae"></a><!-- doxytag: member="axis2_msg_info_headers.h::axis2_msg_info_headers_get_all_ref_params" ref="g085e872c1d2b336e927df9f2f7d9a4ae" args="(const axis2_msg_info_headers_t *msg_info_headers, const axutil_env_t *env)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">AXIS2_EXTERN <a class="el" href="group__axutil__array__list.html#g1a6a89777db876cfa0cc86787b7be6a0">axutil_array_list_t</a>* axis2_msg_info_headers_get_all_ref_params           </td>
          <td>(</td>
          <td class="paramtype">const <a class="el" href="group__axis2__msg__info__headers.html#g556873fdfa94e29e43d96728871f3192">axis2_msg_info_headers_t</a> *&nbsp;</td>
          <td class="paramname"> <em>msg_info_headers</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const <a class="el" href="structaxutil__env.html">axutil_env_t</a> *&nbsp;</td>
          <td class="paramname"> <em>env</em></td><td>&nbsp;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td><td width="100%"></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
Gets all reference parameters associated with message information headers. <dl compact><dt><b>Parameters:</b></dt><dd>
  <table border="0" cellspacing="2" cellpadding="0">
    <tr><td valign="top"></td><td valign="top"><em>msg_info_headers</em>&nbsp;</td><td>pointer to message information headers struct </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>env</em>&nbsp;</td><td>pointer to environment struct </td></tr>
  </table>
</dl>
<dl class="return" compact><dt><b>Returns:</b></dt><dd>pointer to array list containing all reference parameters </dd></dl>

</div>
</div><p>
<a class="anchor" name="g5be8673619408ed53d062372d6e46414"></a><!-- doxytag: member="axis2_msg_info_headers.h::axis2_msg_info_headers_get_fault_to" ref="g5be8673619408ed53d062372d6e46414" args="(const axis2_msg_info_headers_t *msg_info_headers, const axutil_env_t *env)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">AXIS2_EXTERN <a class="el" href="group__axis2__endpoint__ref.html#gf6e89c83a6b553e7e3f11e787b3fecd4">axis2_endpoint_ref_t</a>* axis2_msg_info_headers_get_fault_to           </td>
          <td>(</td>
          <td class="paramtype">const <a class="el" href="group__axis2__msg__info__headers.html#g556873fdfa94e29e43d96728871f3192">axis2_msg_info_headers_t</a> *&nbsp;</td>
          <td class="paramname"> <em>msg_info_headers</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const <a class="el" href="structaxutil__env.html">axutil_env_t</a> *&nbsp;</td>
          <td class="paramname"> <em>env</em></td><td>&nbsp;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td><td width="100%"></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
Gets fault to endpoint. fault to endpoint identifies the intended receiver for faults related to a message. <dl compact><dt><b>Parameters:</b></dt><dd>
  <table border="0" cellspacing="2" cellpadding="0">
    <tr><td valign="top"></td><td valign="top"><em>msg_info_headers</em>&nbsp;</td><td>pointer to message information headers struct </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>env</em>&nbsp;</td><td>pointer to environment struct </td></tr>
  </table>
</dl>
<dl class="return" compact><dt><b>Returns:</b></dt><dd>pointer to endpoint reference representing fault to address, returns a reference, not a cloned copy </dd></dl>

</div>
</div><p>
<a class="anchor" name="g4654c31f1dc87401fc8f8acb9de79c4e"></a><!-- doxytag: member="axis2_msg_info_headers.h::axis2_msg_info_headers_get_fault_to_anonymous" ref="g4654c31f1dc87401fc8f8acb9de79c4e" args="(const axis2_msg_info_headers_t *msg_info_headers, const axutil_env_t *env)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">AXIS2_EXTERN axis2_bool_t axis2_msg_info_headers_get_fault_to_anonymous           </td>
          <td>(</td>
          <td class="paramtype">const <a class="el" href="group__axis2__msg__info__headers.html#g556873fdfa94e29e43d96728871f3192">axis2_msg_info_headers_t</a> *&nbsp;</td>
          <td class="paramname"> <em>msg_info_headers</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const <a class="el" href="structaxutil__env.html">axutil_env_t</a> *&nbsp;</td>
          <td class="paramname"> <em>env</em></td><td>&nbsp;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td><td width="100%"></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
Gets the bool value indicating whether the fault to endpoint should be anonymous. fault to endpoint identifies the intended receiver for faults related to a message. The URI "http://www.w3.org/2005/08/addressing/anonymous" in the fault to address indicates that fault should be sent to from address. <dl compact><dt><b>Parameters:</b></dt><dd>
  <table border="0" cellspacing="2" cellpadding="0">
    <tr><td valign="top"></td><td valign="top"><em>msg_info_headers</em>&nbsp;</td><td>pointer to message information headers struct </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>env</em>&nbsp;</td><td>pointer to environment struct </td></tr>
  </table>
</dl>
<dl class="return" compact><dt><b>Returns:</b></dt><dd>AXIS2_TRUE if <a href="http://www.w3.org/2005/08/addressing/anonymous">http://www.w3.org/2005/08/addressing/anonymous</a> is to be used as fault to URI, else AXIS2_FALSE </dd></dl>

</div>
</div><p>
<a class="anchor" name="g6e4af66cb1dcc12ce970ef098f364f77"></a><!-- doxytag: member="axis2_msg_info_headers.h::axis2_msg_info_headers_get_fault_to_none" ref="g6e4af66cb1dcc12ce970ef098f364f77" args="(const axis2_msg_info_headers_t *msg_info_headers, const axutil_env_t *env)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">AXIS2_EXTERN axis2_bool_t axis2_msg_info_headers_get_fault_to_none           </td>
          <td>(</td>
          <td class="paramtype">const <a class="el" href="group__axis2__msg__info__headers.html#g556873fdfa94e29e43d96728871f3192">axis2_msg_info_headers_t</a> *&nbsp;</td>
          <td class="paramname"> <em>msg_info_headers</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const <a class="el" href="structaxutil__env.html">axutil_env_t</a> *&nbsp;</td>
          <td class="paramname"> <em>env</em></td><td>&nbsp;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td><td width="100%"></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
Gets the bool value indicating whether the fault to endpoint should be none. fault to endpoint identifies the intended receiver for faults related to a message. The URI "http://www.w3.org/2005/08/addressing/none" in the fault to address indicates that no fault should be sent back. <dl compact><dt><b>Parameters:</b></dt><dd>
  <table border="0" cellspacing="2" cellpadding="0">
    <tr><td valign="top"></td><td valign="top"><em>msg_info_headers</em>&nbsp;</td><td>pointer to message information headers struct </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>env</em>&nbsp;</td><td>pointer to environment struct </td></tr>
  </table>
</dl>
<dl class="return" compact><dt><b>Returns:</b></dt><dd>AXIS2_TRUE if <a href="http://www.w3.org/2005/08/addressing/none">http://www.w3.org/2005/08/addressing/none</a> is to be used as fault to URI, else AXIS2_FALSE </dd></dl>

</div>
</div><p>
<a class="anchor" name="g6783234388f589ae7d6d794558c7f994"></a><!-- doxytag: member="axis2_msg_info_headers.h::axis2_msg_info_headers_get_from" ref="g6783234388f589ae7d6d794558c7f994" args="(const axis2_msg_info_headers_t *msg_info_headers, const axutil_env_t *env)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">AXIS2_EXTERN <a class="el" href="group__axis2__endpoint__ref.html#gf6e89c83a6b553e7e3f11e787b3fecd4">axis2_endpoint_ref_t</a>* axis2_msg_info_headers_get_from           </td>
          <td>(</td>
          <td class="paramtype">const <a class="el" href="group__axis2__msg__info__headers.html#g556873fdfa94e29e43d96728871f3192">axis2_msg_info_headers_t</a> *&nbsp;</td>
          <td class="paramname"> <em>msg_info_headers</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const <a class="el" href="structaxutil__env.html">axutil_env_t</a> *&nbsp;</td>
          <td class="paramname"> <em>env</em></td><td>&nbsp;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td><td width="100%"></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
Gets from endpoint. from endpoint represents the address of the endpoint where the message originated from. <dl compact><dt><b>Parameters:</b></dt><dd>
  <table border="0" cellspacing="2" cellpadding="0">
    <tr><td valign="top"></td><td valign="top"><em>msg_info_headers</em>&nbsp;</td><td>pointer to message information headers struct </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>env</em>&nbsp;</td><td>pointer to environment struct </td></tr>
  </table>
</dl>
<dl class="return" compact><dt><b>Returns:</b></dt><dd>pointer to endpoint reference representing from address, returns a reference, not a cloned copy </dd></dl>

</div>
</div><p>
<a class="anchor" name="gbe06f2880f498d70f44934445d78bf0d"></a><!-- doxytag: member="axis2_msg_info_headers.h::axis2_msg_info_headers_get_message_id" ref="gbe06f2880f498d70f44934445d78bf0d" args="(const axis2_msg_info_headers_t *msg_info_headers, const axutil_env_t *env)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">AXIS2_EXTERN const axis2_char_t* axis2_msg_info_headers_get_message_id           </td>
          <td>(</td>
          <td class="paramtype">const <a class="el" href="group__axis2__msg__info__headers.html#g556873fdfa94e29e43d96728871f3192">axis2_msg_info_headers_t</a> *&nbsp;</td>
          <td class="paramname"> <em>msg_info_headers</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const <a class="el" href="structaxutil__env.html">axutil_env_t</a> *&nbsp;</td>
          <td class="paramname"> <em>env</em></td><td>&nbsp;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td><td width="100%"></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
Gets message ID. message ID is an absolute IRI that uniquely identifies the message. <dl compact><dt><b>Parameters:</b></dt><dd>
  <table border="0" cellspacing="2" cellpadding="0">
    <tr><td valign="top"></td><td valign="top"><em>msg_info_headers</em>&nbsp;</td><td>pointer to message information headers struct </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>env</em>&nbsp;</td><td>pointer to environment struct </td></tr>
  </table>
</dl>
<dl class="return" compact><dt><b>Returns:</b></dt><dd>message ID string. </dd></dl>

</div>
</div><p>
<a class="anchor" name="g32e68bb5397e49a5109625e06485e032"></a><!-- doxytag: member="axis2_msg_info_headers.h::axis2_msg_info_headers_get_relates_to" ref="g32e68bb5397e49a5109625e06485e032" args="(const axis2_msg_info_headers_t *msg_info_headers, const axutil_env_t *env)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">AXIS2_EXTERN <a class="el" href="group__axis2__relates__to.html#gd92fd7b0e63b44c6343db15b61aeba45">axis2_relates_to_t</a>* axis2_msg_info_headers_get_relates_to           </td>
          <td>(</td>
          <td class="paramtype">const <a class="el" href="group__axis2__msg__info__headers.html#g556873fdfa94e29e43d96728871f3192">axis2_msg_info_headers_t</a> *&nbsp;</td>
          <td class="paramname"> <em>msg_info_headers</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const <a class="el" href="structaxutil__env.html">axutil_env_t</a> *&nbsp;</td>
          <td class="paramname"> <em>env</em></td><td>&nbsp;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td><td width="100%"></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
Gets relates to information. <dl compact><dt><b>Parameters:</b></dt><dd>
  <table border="0" cellspacing="2" cellpadding="0">
    <tr><td valign="top"></td><td valign="top"><em>msg_info_headers</em>&nbsp;</td><td>pointer to message information headers struct </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>env</em>&nbsp;</td><td>pointer to environment struct </td></tr>
  </table>
</dl>
<dl class="return" compact><dt><b>Returns:</b></dt><dd>pointer to relates to struct, returns a reference, not a cloned copy </dd></dl>
<dl class="see" compact><dt><b>See also:</b></dt><dd><a class="el" href="group__axis2__relates__to.html">relates to</a> </dd></dl>

</div>
</div><p>
<a class="anchor" name="g98b339f94e7b186fb4eaed76116e8dc0"></a><!-- doxytag: member="axis2_msg_info_headers.h::axis2_msg_info_headers_get_reply_to" ref="g98b339f94e7b186fb4eaed76116e8dc0" args="(const axis2_msg_info_headers_t *msg_info_headers, const axutil_env_t *env)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">AXIS2_EXTERN <a class="el" href="group__axis2__endpoint__ref.html#gf6e89c83a6b553e7e3f11e787b3fecd4">axis2_endpoint_ref_t</a>* axis2_msg_info_headers_get_reply_to           </td>
          <td>(</td>
          <td class="paramtype">const <a class="el" href="group__axis2__msg__info__headers.html#g556873fdfa94e29e43d96728871f3192">axis2_msg_info_headers_t</a> *&nbsp;</td>
          <td class="paramname"> <em>msg_info_headers</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const <a class="el" href="structaxutil__env.html">axutil_env_t</a> *&nbsp;</td>
          <td class="paramname"> <em>env</em></td><td>&nbsp;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td><td width="100%"></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
Gets reply to endpoint. reply to endpoint identifies the intended receiver to which a message is replied. <dl compact><dt><b>Parameters:</b></dt><dd>
  <table border="0" cellspacing="2" cellpadding="0">
    <tr><td valign="top"></td><td valign="top"><em>msg_info_headers</em>&nbsp;</td><td>pointer to message information headers struct </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>env</em>&nbsp;</td><td>pointer to environment struct </td></tr>
  </table>
</dl>
<dl class="return" compact><dt><b>Returns:</b></dt><dd>pointer to endpoint reference representing reply to address, returns a reference, not a cloned copy </dd></dl>

</div>
</div><p>
<a class="anchor" name="gd97b6d6039b46707d5e1e88a7610c050"></a><!-- doxytag: member="axis2_msg_info_headers.h::axis2_msg_info_headers_get_reply_to_anonymous" ref="gd97b6d6039b46707d5e1e88a7610c050" args="(const axis2_msg_info_headers_t *msg_info_headers, const axutil_env_t *env)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">AXIS2_EXTERN axis2_bool_t axis2_msg_info_headers_get_reply_to_anonymous           </td>
          <td>(</td>
          <td class="paramtype">const <a class="el" href="group__axis2__msg__info__headers.html#g556873fdfa94e29e43d96728871f3192">axis2_msg_info_headers_t</a> *&nbsp;</td>
          <td class="paramname"> <em>msg_info_headers</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const <a class="el" href="structaxutil__env.html">axutil_env_t</a> *&nbsp;</td>
          <td class="paramname"> <em>env</em></td><td>&nbsp;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td><td width="100%"></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
Gets the bool value indicating whether the reply to endpoint should be anonymous. reply to endpoint identifies the intended receiver for replies related to a message. The URI "http://www.w3.org/2005/08/addressing/anonymous" in the reply to address indicates that reply should be sent to from address. <dl compact><dt><b>Parameters:</b></dt><dd>
  <table border="0" cellspacing="2" cellpadding="0">
    <tr><td valign="top"></td><td valign="top"><em>msg_info_headers</em>&nbsp;</td><td>pointer to message information headers struct </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>env</em>&nbsp;</td><td>pointer to environment struct </td></tr>
  </table>
</dl>
<dl class="return" compact><dt><b>Returns:</b></dt><dd>AXIS2_TRUE if <a href="http://www.w3.org/2005/08/addressing/anonymous">http://www.w3.org/2005/08/addressing/anonymous</a> is to be used as reply to URI, else AXIS2_FALSE </dd></dl>

</div>
</div><p>
<a class="anchor" name="gaa81e0e4e5e338f395c2682ab11c665d"></a><!-- doxytag: member="axis2_msg_info_headers.h::axis2_msg_info_headers_get_reply_to_none" ref="gaa81e0e4e5e338f395c2682ab11c665d" args="(const axis2_msg_info_headers_t *msg_info_headers, const axutil_env_t *env)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">AXIS2_EXTERN axis2_bool_t axis2_msg_info_headers_get_reply_to_none           </td>
          <td>(</td>
          <td class="paramtype">const <a class="el" href="group__axis2__msg__info__headers.html#g556873fdfa94e29e43d96728871f3192">axis2_msg_info_headers_t</a> *&nbsp;</td>
          <td class="paramname"> <em>msg_info_headers</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const <a class="el" href="structaxutil__env.html">axutil_env_t</a> *&nbsp;</td>
          <td class="paramname"> <em>env</em></td><td>&nbsp;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td><td width="100%"></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
Gets the bool value indicating whether the reply to endpoint should be none. reply to endpoint identifies the intended receiver for replies related to a message. The URI "http://www.w3.org/2005/08/addressing/none" in the reply to address indicates that no reply should be sent. <dl compact><dt><b>Parameters:</b></dt><dd>
  <table border="0" cellspacing="2" cellpadding="0">
    <tr><td valign="top"></td><td valign="top"><em>msg_info_headers</em>&nbsp;</td><td>pointer to message information headers struct </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>env</em>&nbsp;</td><td>pointer to environment struct </td></tr>
  </table>
</dl>
<dl class="return" compact><dt><b>Returns:</b></dt><dd>AXIS2_TRUE if <a href="http://www.w3.org/2005/08/addressing/none">http://www.w3.org/2005/08/addressing/none</a> is to be used as reply to URI, else AXIS2_FALSE </dd></dl>

</div>
</div><p>
<a class="anchor" name="gb280fd5c6eb7ef2f604a88f4682076f8"></a><!-- doxytag: member="axis2_msg_info_headers.h::axis2_msg_info_headers_get_to" ref="gb280fd5c6eb7ef2f604a88f4682076f8" args="(const axis2_msg_info_headers_t *msg_info_headers, const axutil_env_t *env)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">AXIS2_EXTERN <a class="el" href="group__axis2__endpoint__ref.html#gf6e89c83a6b553e7e3f11e787b3fecd4">axis2_endpoint_ref_t</a>* axis2_msg_info_headers_get_to           </td>
          <td>(</td>
          <td class="paramtype">const <a class="el" href="group__axis2__msg__info__headers.html#g556873fdfa94e29e43d96728871f3192">axis2_msg_info_headers_t</a> *&nbsp;</td>
          <td class="paramname"> <em>msg_info_headers</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const <a class="el" href="structaxutil__env.html">axutil_env_t</a> *&nbsp;</td>
          <td class="paramname"> <em>env</em></td><td>&nbsp;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td><td width="100%"></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
Gets to endpoint. to endpoint represents the address of the intended receiver of this message. <dl compact><dt><b>Parameters:</b></dt><dd>
  <table border="0" cellspacing="2" cellpadding="0">
    <tr><td valign="top"></td><td valign="top"><em>msg_info_headers</em>&nbsp;</td><td>pointer to message information headers struct </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>env</em>&nbsp;</td><td>pointer to environment struct </td></tr>
  </table>
</dl>
<dl class="return" compact><dt><b>Returns:</b></dt><dd>pointer to endpoint reference representing to address, returns a reference, not a cloned copy </dd></dl>

</div>
</div><p>
<a class="anchor" name="gc70fa14807b569da33ddc91a6edd5031"></a><!-- doxytag: member="axis2_msg_info_headers.h::axis2_msg_info_headers_set_action" ref="gc70fa14807b569da33ddc91a6edd5031" args="(struct axis2_msg_info_headers *msg_info_headers, const axutil_env_t *env, const axis2_char_t *action)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">AXIS2_EXTERN axis2_status_t axis2_msg_info_headers_set_action           </td>
          <td>(</td>
          <td class="paramtype">struct axis2_msg_info_headers *&nbsp;</td>
          <td class="paramname"> <em>msg_info_headers</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const <a class="el" href="structaxutil__env.html">axutil_env_t</a> *&nbsp;</td>
          <td class="paramname"> <em>env</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const axis2_char_t *&nbsp;</td>
          <td class="paramname"> <em>action</em></td><td>&nbsp;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td><td width="100%"></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
Sets WS-Addressing action. action is an absolute IRI (Internationalized Resource Identifier) that uniquely identifies the semantics implied by this message. <dl compact><dt><b>Parameters:</b></dt><dd>
  <table border="0" cellspacing="2" cellpadding="0">
    <tr><td valign="top"></td><td valign="top"><em>msg_info_headers</em>&nbsp;</td><td>pointer to message information headers struct </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>env</em>&nbsp;</td><td>pointer to environment struct </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>action</em>&nbsp;</td><td>WS-Addressing action string </td></tr>
  </table>
</dl>
<dl class="return" compact><dt><b>Returns:</b></dt><dd>AXIS2_SUCCESS on success, else AXIS2_FAILURE </dd></dl>

</div>
</div><p>
<a class="anchor" name="g9d097759c95b088583709dd83e19ca90"></a><!-- doxytag: member="axis2_msg_info_headers.h::axis2_msg_info_headers_set_fault_to" ref="g9d097759c95b088583709dd83e19ca90" args="(struct axis2_msg_info_headers *msg_info_headers, const axutil_env_t *env, axis2_endpoint_ref_t *fault_to)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">AXIS2_EXTERN axis2_status_t axis2_msg_info_headers_set_fault_to           </td>
          <td>(</td>
          <td class="paramtype">struct axis2_msg_info_headers *&nbsp;</td>
          <td class="paramname"> <em>msg_info_headers</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const <a class="el" href="structaxutil__env.html">axutil_env_t</a> *&nbsp;</td>
          <td class="paramname"> <em>env</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype"><a class="el" href="group__axis2__endpoint__ref.html#gf6e89c83a6b553e7e3f11e787b3fecd4">axis2_endpoint_ref_t</a> *&nbsp;</td>
          <td class="paramname"> <em>fault_to</em></td><td>&nbsp;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td><td width="100%"></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
Sets fault to endpoint. fault to endpoint identifies the intended receiver for faults related to a message. <dl compact><dt><b>Parameters:</b></dt><dd>
  <table border="0" cellspacing="2" cellpadding="0">
    <tr><td valign="top"></td><td valign="top"><em>msg_info_headers</em>&nbsp;</td><td>pointer to message information headers struct </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>env</em>&nbsp;</td><td>pointer to environment struct </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>fault_to</em>&nbsp;</td><td>pointer to endpoint reference representing fault to address, message information headers assumes ownership of the endpoint </td></tr>
  </table>
</dl>
<dl class="return" compact><dt><b>Returns:</b></dt><dd>AXIS2_SUCCESS on success, else AXIS2_FAILURE </dd></dl>

</div>
</div><p>
<a class="anchor" name="gcdd63e8863b18076b46aee90f5b05c6f"></a><!-- doxytag: member="axis2_msg_info_headers.h::axis2_msg_info_headers_set_fault_to_anonymous" ref="gcdd63e8863b18076b46aee90f5b05c6f" args="(struct axis2_msg_info_headers *msg_info_headers, const axutil_env_t *env, const axis2_bool_t anonymous)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">AXIS2_EXTERN axis2_status_t axis2_msg_info_headers_set_fault_to_anonymous           </td>
          <td>(</td>
          <td class="paramtype">struct axis2_msg_info_headers *&nbsp;</td>
          <td class="paramname"> <em>msg_info_headers</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const <a class="el" href="structaxutil__env.html">axutil_env_t</a> *&nbsp;</td>
          <td class="paramname"> <em>env</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const axis2_bool_t&nbsp;</td>
          <td class="paramname"> <em>anonymous</em></td><td>&nbsp;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td><td width="100%"></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
Sets the bool value indicating whether the fault to endpoint should be anonymous. fault to endpoint identifies the intended receiver for faults related to a message. The URI "http://www.w3.org/2005/08/addressing/anonymous" in the fault to address indicates that fault should be sent to from address. <dl compact><dt><b>Parameters:</b></dt><dd>
  <table border="0" cellspacing="2" cellpadding="0">
    <tr><td valign="top"></td><td valign="top"><em>msg_info_headers</em>&nbsp;</td><td>pointer to message information headers struct </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>env</em>&nbsp;</td><td>pointer to environment struct </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>anonymous</em>&nbsp;</td><td>AXIS2_TRUE if <a href="http://www.w3.org/2005/08/addressing/anonymous">http://www.w3.org/2005/08/addressing/anonymous</a> is to be used as fault to URI, else AXIS2_FALSE </td></tr>
  </table>
</dl>
<dl class="return" compact><dt><b>Returns:</b></dt><dd>AXIS2_SUCCESS on success, else AXIS2_FAILURE </dd></dl>

</div>
</div><p>
<a class="anchor" name="g4f66e5d4b845de21780aa409b8997672"></a><!-- doxytag: member="axis2_msg_info_headers.h::axis2_msg_info_headers_set_fault_to_none" ref="g4f66e5d4b845de21780aa409b8997672" args="(struct axis2_msg_info_headers *msg_info_headers, const axutil_env_t *env, const axis2_bool_t none)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">AXIS2_EXTERN axis2_status_t axis2_msg_info_headers_set_fault_to_none           </td>
          <td>(</td>
          <td class="paramtype">struct axis2_msg_info_headers *&nbsp;</td>
          <td class="paramname"> <em>msg_info_headers</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const <a class="el" href="structaxutil__env.html">axutil_env_t</a> *&nbsp;</td>
          <td class="paramname"> <em>env</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const axis2_bool_t&nbsp;</td>
          <td class="paramname"> <em>none</em></td><td>&nbsp;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td><td width="100%"></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
Sets the bool value indicating whether the fault to endpoint should be none. fault to endpoint identifies the intended receiver for faults related to a message. The URI "http://www.w3.org/2005/08/addressing/none" in the fault to address indicates that no fault should be sent back. <dl compact><dt><b>Parameters:</b></dt><dd>
  <table border="0" cellspacing="2" cellpadding="0">
    <tr><td valign="top"></td><td valign="top"><em>msg_info_headers</em>&nbsp;</td><td>pointer to message information headers struct </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>env</em>&nbsp;</td><td>pointer to environment struct </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>none</em>&nbsp;</td><td>AXIS2_TRUE if <a href="http://www.w3.org/2005/08/addressing/none">http://www.w3.org/2005/08/addressing/none</a> is to be used as fault to URI, else AXIS2_FALSE </td></tr>
  </table>
</dl>
<dl class="return" compact><dt><b>Returns:</b></dt><dd>AXIS2_SUCCESS on success, else AXIS2_FAILURE </dd></dl>

</div>
</div><p>
<a class="anchor" name="g917b50452decc40c55c8e8afbcf943a6"></a><!-- doxytag: member="axis2_msg_info_headers.h::axis2_msg_info_headers_set_from" ref="g917b50452decc40c55c8e8afbcf943a6" args="(struct axis2_msg_info_headers *msg_info_headers, const axutil_env_t *env, axis2_endpoint_ref_t *from)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">AXIS2_EXTERN axis2_status_t axis2_msg_info_headers_set_from           </td>
          <td>(</td>
          <td class="paramtype">struct axis2_msg_info_headers *&nbsp;</td>
          <td class="paramname"> <em>msg_info_headers</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const <a class="el" href="structaxutil__env.html">axutil_env_t</a> *&nbsp;</td>
          <td class="paramname"> <em>env</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype"><a class="el" href="group__axis2__endpoint__ref.html#gf6e89c83a6b553e7e3f11e787b3fecd4">axis2_endpoint_ref_t</a> *&nbsp;</td>
          <td class="paramname"> <em>from</em></td><td>&nbsp;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td><td width="100%"></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
Sets from endpoint. from endpoint represents the address of the endpoint where the message originated from. <dl compact><dt><b>Parameters:</b></dt><dd>
  <table border="0" cellspacing="2" cellpadding="0">
    <tr><td valign="top"></td><td valign="top"><em>msg_info_headers</em>&nbsp;</td><td>pointer to message information headers struct </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>env</em>&nbsp;</td><td>pointer to environment struct </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>from</em>&nbsp;</td><td>pointer to endpoint reference representing from address, message information headers assumes ownership of the endpoint </td></tr>
  </table>
</dl>
<dl class="return" compact><dt><b>Returns:</b></dt><dd>AXIS2_SUCCESS on success, else AXIS2_FAILURE </dd></dl>

</div>
</div><p>
<a class="anchor" name="gbfb3b68d69fffce5abe41d50a8d3e225"></a><!-- doxytag: member="axis2_msg_info_headers.h::axis2_msg_info_headers_set_in_message_id" ref="gbfb3b68d69fffce5abe41d50a8d3e225" args="(struct axis2_msg_info_headers *msg_info_headers, const axutil_env_t *env, const axis2_char_t *message_id)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">AXIS2_EXTERN axis2_status_t axis2_msg_info_headers_set_in_message_id           </td>
          <td>(</td>
          <td class="paramtype">struct axis2_msg_info_headers *&nbsp;</td>
          <td class="paramname"> <em>msg_info_headers</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const <a class="el" href="structaxutil__env.html">axutil_env_t</a> *&nbsp;</td>
          <td class="paramname"> <em>env</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const axis2_char_t *&nbsp;</td>
          <td class="paramname"> <em>message_id</em></td><td>&nbsp;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td><td width="100%"></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
Sets message ID. message ID is an absolute URI that uniquely identifies the message. Message ID Given will be used. <dl compact><dt><b>Parameters:</b></dt><dd>
  <table border="0" cellspacing="2" cellpadding="0">
    <tr><td valign="top"></td><td valign="top"><em>msg_info_headers</em>&nbsp;</td><td>pointer to message information headers struct </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>env</em>&nbsp;</td><td>pointer to environment struct </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>message_id</em>&nbsp;</td><td>message ID string </td></tr>
  </table>
</dl>
<dl class="return" compact><dt><b>Returns:</b></dt><dd>AXIS2_SUCCESS on success, else AXIS2_FAILURE </dd></dl>

</div>
</div><p>
<a class="anchor" name="ge85e94287e9fd4a3b21f7ebe681dfa0e"></a><!-- doxytag: member="axis2_msg_info_headers.h::axis2_msg_info_headers_set_message_id" ref="ge85e94287e9fd4a3b21f7ebe681dfa0e" args="(struct axis2_msg_info_headers *msg_info_headers, const axutil_env_t *env, const axis2_char_t *message_id)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">AXIS2_EXTERN axis2_status_t axis2_msg_info_headers_set_message_id           </td>
          <td>(</td>
          <td class="paramtype">struct axis2_msg_info_headers *&nbsp;</td>
          <td class="paramname"> <em>msg_info_headers</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const <a class="el" href="structaxutil__env.html">axutil_env_t</a> *&nbsp;</td>
          <td class="paramname"> <em>env</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const axis2_char_t *&nbsp;</td>
          <td class="paramname"> <em>message_id</em></td><td>&nbsp;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td><td width="100%"></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
Sets message ID. message ID is an absolute URI that uniquely identifies the message. Message ID will be prefixed with "urn:uuid:" <dl compact><dt><b>Parameters:</b></dt><dd>
  <table border="0" cellspacing="2" cellpadding="0">
    <tr><td valign="top"></td><td valign="top"><em>msg_info_headers</em>&nbsp;</td><td>pointer to message information headers struct </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>env</em>&nbsp;</td><td>pointer to environment struct </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>message_id</em>&nbsp;</td><td>message ID string </td></tr>
  </table>
</dl>
<dl class="return" compact><dt><b>Returns:</b></dt><dd>AXIS2_SUCCESS on success, else AXIS2_FAILURE </dd></dl>

</div>
</div><p>
<a class="anchor" name="g26b2b3881cbf3f3f02f1c512c96485ff"></a><!-- doxytag: member="axis2_msg_info_headers.h::axis2_msg_info_headers_set_relates_to" ref="g26b2b3881cbf3f3f02f1c512c96485ff" args="(struct axis2_msg_info_headers *msg_info_headers, const axutil_env_t *env, axis2_relates_to_t *relates_to)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">AXIS2_EXTERN axis2_status_t axis2_msg_info_headers_set_relates_to           </td>
          <td>(</td>
          <td class="paramtype">struct axis2_msg_info_headers *&nbsp;</td>
          <td class="paramname"> <em>msg_info_headers</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const <a class="el" href="structaxutil__env.html">axutil_env_t</a> *&nbsp;</td>
          <td class="paramname"> <em>env</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype"><a class="el" href="group__axis2__relates__to.html#gd92fd7b0e63b44c6343db15b61aeba45">axis2_relates_to_t</a> *&nbsp;</td>
          <td class="paramname"> <em>relates_to</em></td><td>&nbsp;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td><td width="100%"></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
Sets relates to information. <dl compact><dt><b>Parameters:</b></dt><dd>
  <table border="0" cellspacing="2" cellpadding="0">
    <tr><td valign="top"></td><td valign="top"><em>msg_info_headers</em>&nbsp;</td><td>pointer to message information headers struct </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>env</em>&nbsp;</td><td>pointer to environment struct </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>relates_to</em>&nbsp;</td><td>pointer to relates to struct, message information headers assumes ownership of struct </td></tr>
  </table>
</dl>
<dl class="return" compact><dt><b>Returns:</b></dt><dd>AXIS2_SUCCESS on success, else AXIS2_FAILURE </dd></dl>

</div>
</div><p>
<a class="anchor" name="g3de0c94851f356772629aa5851290f2f"></a><!-- doxytag: member="axis2_msg_info_headers.h::axis2_msg_info_headers_set_reply_to" ref="g3de0c94851f356772629aa5851290f2f" args="(struct axis2_msg_info_headers *msg_info_headers, const axutil_env_t *env, axis2_endpoint_ref_t *reply_to)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">AXIS2_EXTERN axis2_status_t axis2_msg_info_headers_set_reply_to           </td>
          <td>(</td>
          <td class="paramtype">struct axis2_msg_info_headers *&nbsp;</td>
          <td class="paramname"> <em>msg_info_headers</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const <a class="el" href="structaxutil__env.html">axutil_env_t</a> *&nbsp;</td>
          <td class="paramname"> <em>env</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype"><a class="el" href="group__axis2__endpoint__ref.html#gf6e89c83a6b553e7e3f11e787b3fecd4">axis2_endpoint_ref_t</a> *&nbsp;</td>
          <td class="paramname"> <em>reply_to</em></td><td>&nbsp;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td><td width="100%"></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
Sets reply to endpoint. reply to endpoint identifies the intended receiver to which a message is replied. <dl compact><dt><b>Parameters:</b></dt><dd>
  <table border="0" cellspacing="2" cellpadding="0">
    <tr><td valign="top"></td><td valign="top"><em>msg_info_headers</em>&nbsp;</td><td>pointer to message information headers struct </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>env</em>&nbsp;</td><td>pointer to environment struct </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>reply_to</em>&nbsp;</td><td>pointer to endpoint reference representing reply to address, message information headers assumes ownership of the endpoint </td></tr>
  </table>
</dl>
<dl class="return" compact><dt><b>Returns:</b></dt><dd>AXIS2_SUCCESS on success, else AXIS2_FAILURE </dd></dl>

</div>
</div><p>
<a class="anchor" name="g048b85e9ace9b60a54c500aac7e343cb"></a><!-- doxytag: member="axis2_msg_info_headers.h::axis2_msg_info_headers_set_reply_to_anonymous" ref="g048b85e9ace9b60a54c500aac7e343cb" args="(struct axis2_msg_info_headers *msg_info_headers, const axutil_env_t *env, const axis2_bool_t anonymous)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">AXIS2_EXTERN axis2_status_t axis2_msg_info_headers_set_reply_to_anonymous           </td>
          <td>(</td>
          <td class="paramtype">struct axis2_msg_info_headers *&nbsp;</td>
          <td class="paramname"> <em>msg_info_headers</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const <a class="el" href="structaxutil__env.html">axutil_env_t</a> *&nbsp;</td>
          <td class="paramname"> <em>env</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const axis2_bool_t&nbsp;</td>
          <td class="paramname"> <em>anonymous</em></td><td>&nbsp;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td><td width="100%"></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
Sets the bool value indicating whether the reply to endpoint should be anonymous. reply to endpoint identifies the intended receiver for replies related to a message. The URI "http://www.w3.org/2005/08/addressing/anonymous" in the reply to address indicates that reply should be sent to from address. <dl compact><dt><b>Parameters:</b></dt><dd>
  <table border="0" cellspacing="2" cellpadding="0">
    <tr><td valign="top"></td><td valign="top"><em>msg_info_headers</em>&nbsp;</td><td>pointer to message information headers struct </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>env</em>&nbsp;</td><td>pointer to environment struct </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>anonymous</em>&nbsp;</td><td>AXIS2_TRUE if <a href="http://www.w3.org/2005/08/addressing/anonymous">http://www.w3.org/2005/08/addressing/anonymous</a> is to be used as reply to URI, else AXIS2_FALSE </td></tr>
  </table>
</dl>
<dl class="return" compact><dt><b>Returns:</b></dt><dd>AXIS2_SUCCESS on success, else AXIS2_FAILURE </dd></dl>

</div>
</div><p>
<a class="anchor" name="g64bfb8b2ebdabd55719c6b3b300a5499"></a><!-- doxytag: member="axis2_msg_info_headers.h::axis2_msg_info_headers_set_reply_to_none" ref="g64bfb8b2ebdabd55719c6b3b300a5499" args="(struct axis2_msg_info_headers *msg_info_headers, const axutil_env_t *env, const axis2_bool_t none)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">AXIS2_EXTERN axis2_status_t axis2_msg_info_headers_set_reply_to_none           </td>
          <td>(</td>
          <td class="paramtype">struct axis2_msg_info_headers *&nbsp;</td>
          <td class="paramname"> <em>msg_info_headers</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const <a class="el" href="structaxutil__env.html">axutil_env_t</a> *&nbsp;</td>
          <td class="paramname"> <em>env</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const axis2_bool_t&nbsp;</td>
          <td class="paramname"> <em>none</em></td><td>&nbsp;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td><td width="100%"></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
Sets the bool value indicating whether the reply to endpoint should be none. reply to endpoint identifies the intended receiver for replies to a message. The URI "http://www.w3.org/2005/08/addressing/none" in the reply to address indicates that no reply should be sent. <dl compact><dt><b>Parameters:</b></dt><dd>
  <table border="0" cellspacing="2" cellpadding="0">
    <tr><td valign="top"></td><td valign="top"><em>msg_info_headers</em>&nbsp;</td><td>pointer to message information headers struct </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>env</em>&nbsp;</td><td>pointer to environment struct </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>none</em>&nbsp;</td><td>AXIS2_TRUE if <a href="http://www.w3.org/2005/08/addressing/none">http://www.w3.org/2005/08/addressing/none</a> is to be used as reply to URI, else AXIS2_FALSE </td></tr>
  </table>
</dl>
<dl class="return" compact><dt><b>Returns:</b></dt><dd>AXIS2_SUCCESS on success, else AXIS2_FAILURE </dd></dl>

</div>
</div><p>
<a class="anchor" name="g3ca4a29c369d4e871f957fe773353325"></a><!-- doxytag: member="axis2_msg_info_headers.h::axis2_msg_info_headers_set_to" ref="g3ca4a29c369d4e871f957fe773353325" args="(struct axis2_msg_info_headers *msg_info_headers, const axutil_env_t *env, axis2_endpoint_ref_t *to)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">AXIS2_EXTERN axis2_status_t axis2_msg_info_headers_set_to           </td>
          <td>(</td>
          <td class="paramtype">struct axis2_msg_info_headers *&nbsp;</td>
          <td class="paramname"> <em>msg_info_headers</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const <a class="el" href="structaxutil__env.html">axutil_env_t</a> *&nbsp;</td>
          <td class="paramname"> <em>env</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype"><a class="el" href="group__axis2__endpoint__ref.html#gf6e89c83a6b553e7e3f11e787b3fecd4">axis2_endpoint_ref_t</a> *&nbsp;</td>
          <td class="paramname"> <em>to</em></td><td>&nbsp;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td><td width="100%"></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
Sets to endpoint. to endpoint represents the address of the intended receiver of this message. <dl compact><dt><b>Parameters:</b></dt><dd>
  <table border="0" cellspacing="2" cellpadding="0">
    <tr><td valign="top"></td><td valign="top"><em>msg_info_headers</em>&nbsp;</td><td>pointer to message information headers struct </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>env</em>&nbsp;</td><td>pointer to environment struct </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>to</em>&nbsp;</td><td>pointer to endpoint reference representing to address, message information headers assumes ownership of the endpoint </td></tr>
  </table>
</dl>
<dl class="return" compact><dt><b>Returns:</b></dt><dd>AXIS2_SUCCESS on success, else AXIS2_FAILURE </dd></dl>

</div>
</div><p>
<hr size="1"><address style="text-align: right;"><small>Generated on Fri Apr 17 11:49:45 2009 for Axis2/C by&nbsp;
<a href="http://www.doxygen.org/index.html">
<img src="doxygen.png" alt="doxygen" align="middle" border="0"></a> 1.5.3 </small></address>
</body>
</html>


<|start_filename|>test/core/deployment/test_deployment.c<|end_filename|>

/*
 * 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.
 */

#include <stdio.h>
#include <axis2_op.h>
#include <axis2_module_desc.h>
#include <axis2_phases_info.h>
#include <stdio.h>
#include <axis2_op.h>
#include <axis2_dep_engine.h>
#include <axutil_env.h>
#include <axutil_allocator.h>
#include <axutil_class_loader.h>
#include <axutil_error_default.h>
#include <axutil_log_default.h>
#include <axis2_transport_sender.h>
#include <axis2_transport_receiver.h>
#include <axis2_core_utils.h>

const axutil_env_t *env = NULL;

int
axis2_test_dep_engine_load(
    )
{
    axis2_dep_engine_t *dep_engine = NULL;
    axis2_conf_t *conf = NULL;
    axutil_hash_t *svc_map = NULL;
    axutil_array_list_t *in_phases = NULL;
    axis2_char_t *axis2c_home = NULL;

    printf("******************************************\n");
    printf("testing dep_engine_load method \n");
    printf("******************************************\n");

    axis2c_home = AXIS2_GETENV("AXIS2C_HOME");
    dep_engine = axis2_dep_engine_create_with_repos_name(env, axis2c_home);
    if (!dep_engine)
    {
        printf("dep engine is not created \n");
        return -1;
    }
    conf = axis2_dep_engine_load(dep_engine, env);
    axis2_conf_set_dep_engine(conf, env, dep_engine);
    if (!conf)
    {
        printf("conf is NULL\n)");
        return -1;
    }

    svc_map = axis2_conf_get_all_svcs(conf, env);
    if (svc_map)
        printf("svc_map count = %d\n", axutil_hash_count(svc_map));
    else
        printf("svc_map count = zero\n");

    if (svc_map)
    {
        axutil_hash_index_t *hi = NULL;
        void *service = NULL;
        for (hi = axutil_hash_first(svc_map, env);
             hi; hi = axutil_hash_next(env, hi))
        {
            axutil_hash_t *ops = NULL;
            axis2_svc_t *svc = NULL;
            axutil_param_t *impl_info_param = NULL;

            axutil_hash_this(hi, NULL, NULL, &service);
            svc = (axis2_svc_t *) service;
            impl_info_param =
                axis2_svc_get_param(svc, env, AXIS2_SERVICE_CLASS);
            if (!impl_info_param)
            {
                printf("imple_info_param is null\n");
            }
            ops = axis2_svc_get_all_ops(svc, env);
            if (ops)
            {
                printf("ops count = %d\n", axutil_hash_count(ops));

                axutil_hash_index_t *hi2 = NULL;
                void *op = NULL;
                axis2_char_t *oname = NULL;

                for (hi2 = axutil_hash_first(ops, env); hi2;
                     hi2 = axutil_hash_next(env, hi2))
                {
                    if (!hi2)
                        break;
                    axutil_hash_this(hi2, NULL, NULL, &op);
                    if (op)
                    {
                        const axutil_qname_t *qname = NULL;
                        qname = axis2_op_get_qname((axis2_op_t *) op, env);
                        oname = axutil_qname_get_localpart(qname, env);
                        printf("op name = %s\n", oname);
                    }
                }
            }
            else
                printf("ops count = zero\n");
        }
    }

    in_phases =
        axis2_conf_get_in_phases_upto_and_including_post_dispatch(conf, env);
    if (!in_phases)
    {
        printf("in phases up to and including post dispatch is NULL\n");
    }
    else
    {
        printf("dep engine load is successfull\n");
    }
    axis2_conf_free(conf, env);

    return 0;
}

int
axis2_test_transport_receiver_load(
    )
{
    axutil_dll_desc_t *dll_desc = NULL;
    axis2_char_t *dll_name = NULL;
    axis2_transport_receiver_t *transport_recv = NULL;
    axutil_param_t *impl_info_param = NULL;
    axis2_bool_t is_running = AXIS2_FALSE;
    axis2_char_t *axis2c_home = NULL;

    printf("******************************************\n");
    printf("testing axis2_transport_recv load\n");
    printf("******************************************\n");

    dll_desc = axutil_dll_desc_create(env);

    axis2c_home = AXIS2_GETENV("AXIS2C_HOME");
    dll_name =
        axutil_stracat(env, axis2c_home, "/lib/libaxis2_http_receiver.so");
    printf("transport receiver name:%s\n", dll_name);
    axutil_dll_desc_set_name(dll_desc, env, dll_name);
    axutil_dll_desc_set_type(dll_desc, env, AXIS2_TRANSPORT_RECV_DLL);
    impl_info_param = axutil_param_create(env, NULL, NULL);
    axutil_param_set_value(impl_info_param, env, dll_desc);
    axutil_class_loader_init(env);
    transport_recv =
        (axis2_transport_receiver_t *) axutil_class_loader_create_dll(env,
                                                                      impl_info_param);
    is_running = axis2_transport_receiver_is_running(transport_recv, env);
    printf("is_running:%d\n", is_running);
    AXIS2_FREE(env->allocator, dll_name);
    printf("transport receiver load test successful\n");
    return 0;
}

int
axis2_test_transport_sender_load(
    )
{
    axutil_dll_desc_t *dll_desc = NULL;
    axis2_char_t *dll_name = NULL;
    axis2_transport_sender_t *transport_sender = NULL;
    axutil_param_t *impl_info_param = NULL;
    axis2_char_t *axis2c_home = NULL;
    axis2_msg_ctx_t *msg_ctx = NULL;

    printf("******************************************\n");
    printf("testing axis2_transport_sender load\n");
    printf("******************************************\n");

    msg_ctx = (axis2_msg_ctx_t *) AXIS2_MALLOC(env->allocator, 5);
    dll_desc = axutil_dll_desc_create(env);

    axis2c_home = AXIS2_GETENV("AXIS2C_HOME");
    dll_name = axutil_stracat(env, axis2c_home, "/lib/libaxis2_http_sender.so");
    printf("transport sender name:%s\n", dll_name);
    axutil_dll_desc_set_name(dll_desc, env, dll_name);
    axutil_dll_desc_set_type(dll_desc, env, AXIS2_TRANSPORT_SENDER_DLL);
    impl_info_param = axutil_param_create(env, NULL, NULL);
    axutil_param_set_value(impl_info_param, env, dll_desc);
    axutil_class_loader_init(env);
    transport_sender =
        (axis2_transport_sender_t *) axutil_class_loader_create_dll(env,
                                                                    impl_info_param);

    AXIS2_FREE(env->allocator, dll_name);
    printf("transport sender load test successful\n");
    return 0;
}

int
axis2_test_default_module_version(
    )
{

    axis2_conf_t *axis_conf = NULL;
    axutil_qname_t *mod_qname1 = NULL;
    axutil_qname_t *mod_qname2 = NULL;
    axutil_qname_t *mod_qname3 = NULL;
    axutil_qname_t *mod_qname4 = NULL;
    axutil_qname_t *mod_qname5 = NULL;
    axis2_module_desc_t *module1 = NULL;
    axis2_module_desc_t *module2 = NULL;
    axis2_module_desc_t *module3 = NULL;
    axis2_module_desc_t *module4 = NULL;
    axis2_module_desc_t *module5 = NULL;
    axis2_module_desc_t *def_mod = NULL;
    axutil_array_list_t *engaged_modules = NULL;
    axutil_qname_t *engage_qname = NULL;
    axis2_bool_t found1 = AXIS2_FALSE;
    axis2_bool_t found2 = AXIS2_FALSE;
    axis2_bool_t found3 = AXIS2_FALSE;

    printf("******************************************\n");
    printf("testing axis2_default_module_version\n");
    printf("******************************************\n");

    axis_conf = axis2_conf_create(env);
    mod_qname1 = axutil_qname_create(env, "module1", NULL, NULL);
    module1 = axis2_module_desc_create_with_qname(env, mod_qname1);
    axis2_conf_add_module(axis_conf, env, module1);

    mod_qname2 = axutil_qname_create(env, "module2-0.90", NULL, NULL);
    module2 = axis2_module_desc_create_with_qname(env, mod_qname2);
    axis2_conf_add_module(axis_conf, env, module2);

    mod_qname3 = axutil_qname_create(env, "module2-0.92", NULL, NULL);
    module3 = axis2_module_desc_create_with_qname(env, mod_qname3);
    axis2_conf_add_module(axis_conf, env, module3);

    mod_qname4 = axutil_qname_create(env, "module2-0.91", NULL, NULL);
    module4 = axis2_module_desc_create_with_qname(env, mod_qname4);
    axis2_conf_add_module(axis_conf, env, module4);

    mod_qname5 = axutil_qname_create(env, "test_module-1.92", NULL, NULL);
    module5 = axis2_module_desc_create_with_qname(env, mod_qname5);
    axis2_conf_add_module(axis_conf, env, module5);

    axis2_core_utils_calculate_default_module_version(env,
                                                      axis2_conf_get_all_modules
                                                      (axis_conf, env),
                                                      axis_conf);
    def_mod = axis2_conf_get_default_module(axis_conf, env, "module1");
    if (def_mod != module1)
    {
        printf("axis2_default_module_version (module1) .. FAILED\n");
        return AXIS2_FAILURE;
    }
    def_mod = axis2_conf_get_default_module(axis_conf, env, "module2");
    if (def_mod != module3)
    {
        printf("axis2_default_module_version (module2) .. FAILED\n");
        return AXIS2_FAILURE;
    }
    def_mod = axis2_conf_get_default_module(axis_conf, env, "test_module");
    if (def_mod != module5)
    {
        printf("axis2_default_module_version (test_module) .. FAILED\n");
        return AXIS2_FAILURE;
    }
    engage_qname = axutil_qname_create(env, "module2", NULL, NULL);
    axis2_conf_engage_module(axis_conf, env, engage_qname);
    axutil_qname_free(engage_qname, env);
    engage_qname = NULL;

    engage_qname = axutil_qname_create(env, "module1", NULL, NULL);
    axis2_conf_engage_module(axis_conf, env, engage_qname);
    axutil_qname_free(engage_qname, env);
    engage_qname = NULL;

    axis2_conf_engage_module_with_version(axis_conf, env, "test_module",
                                          "1.92");

    engaged_modules = axis2_conf_get_all_engaged_modules(axis_conf, env);

    if (engaged_modules)
    {
        int list_size = 0;
        int i = 0;
        list_size = axutil_array_list_size(engaged_modules, env);
        for (i = 0; i < list_size; i++)
        {
            axutil_qname_t *engaged_mod_qname = NULL;
            engaged_mod_qname = axutil_array_list_get(engaged_modules, env, i);
            if (0 == axutil_strcmp("module2-0.92",
                                   axutil_qname_get_localpart(engaged_mod_qname,
                                                              env)))
            {
                found1 = AXIS2_TRUE;
            }
            if (0 == axutil_strcmp("module1",
                                   axutil_qname_get_localpart(engaged_mod_qname,
                                                              env)))
            {
                found2 = AXIS2_TRUE;
            }
            if (0 == axutil_strcmp("test_module-1.92",
                                   axutil_qname_get_localpart(engaged_mod_qname,
                                                              env)))
            {
                found3 = AXIS2_TRUE;
            }

        }
    }
    if (AXIS2_FALSE == found1)
    {
        printf("axis2_default_module_version (module2 engaging) .. FAILED\n");
        return AXIS2_FAILURE;
    }
    if (AXIS2_FALSE == found2)
    {
        printf("axis2_default_module_version (module1 engaging) .. FAILED\n");
        return AXIS2_FAILURE;
    }
    if (AXIS2_FALSE == found3)
    {
        printf
            ("axis2_default_module_version (test_module engaging) .. FAILED\n");
        return AXIS2_FAILURE;
    }
    printf("axis2_default_module_version  .. SUCCESS\n");
    axis2_conf_free(axis_conf, env);
    return AXIS2_SUCCESS;
}

int
main(
    )
{
    axutil_allocator_t *allocator = NULL;
    axutil_error_t *error = NULL;
    axutil_log_t *log = NULL;

    allocator = axutil_allocator_init(NULL);
    error = axutil_error_create(allocator);
    log = axutil_log_create(allocator, NULL, "test_deployment.log");
    env = axutil_env_create_with_error_log(allocator, error, log);
    env->log->level = AXIS2_LOG_LEVEL_INFO;
    /*axis2_test_transport_receiver_load();
       axis2_test_transport_sender_load(); */
    axis2_test_dep_engine_load();
    axis2_test_default_module_version();
    return 0;
}


<|start_filename|>xdocs/api/html/functions.html<|end_filename|>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html><head><meta http-equiv="Content-Type" content="text/html;charset=UTF-8">
<title>Axis2/C: Class Members</title>
<link href="doxygen.css" rel="stylesheet" type="text/css">
<link href="tabs.css" rel="stylesheet" type="text/css">
</head><body>
<!-- Generated by Doxygen 1.5.3 -->
<div class="tabs">
  <ul>
    <li><a href="index.html"><span>Main&nbsp;Page</span></a></li>
    <li><a href="modules.html"><span>Modules</span></a></li>
    <li class="current"><a href="annotated.html"><span>Classes</span></a></li>
    <li><a href="files.html"><span>Files</span></a></li>
    <li><a href="dirs.html"><span>Directories</span></a></li>
    <li><a href="pages.html"><span>Related&nbsp;Pages</span></a></li>
    <li><a href="examples.html"><span>Examples</span></a></li>
    <li>
      <form action="search.php" method="get">
        <table cellspacing="0" cellpadding="0" border="0">
          <tr>
            <td><label>&nbsp;<u>S</u>earch&nbsp;for&nbsp;</label></td>
            <td><input type="text" name="query" value="" size="20" accesskey="s"/></td>
          </tr>
        </table>
      </form>
    </li>
  </ul>
</div>
<div class="tabs">
  <ul>
    <li><a href="annotated.html"><span>Class&nbsp;List</span></a></li>
    <li class="current"><a href="functions.html"><span>Class&nbsp;Members</span></a></li>
  </ul>
</div>
<div class="tabs">
  <ul>
    <li class="current"><a href="functions.html"><span>All</span></a></li>
    <li><a href="functions_vars.html"><span>Variables</span></a></li>
  </ul>
</div>
<div class="tabs">
  <ul>
    <li><a href="#index_a"><span>a</span></a></li>
    <li><a href="#index_c"><span>c</span></a></li>
    <li><a href="#index_d"><span>d</span></a></li>
    <li><a href="#index_e"><span>e</span></a></li>
    <li><a href="#index_f"><span>f</span></a></li>
    <li><a href="#index_g"><span>g</span></a></li>
    <li><a href="#index_h"><span>h</span></a></li>
    <li><a href="#index_i"><span>i</span></a></li>
    <li><a href="#index_l"><span>l</span></a></li>
    <li><a href="#index_m"><span>m</span></a></li>
    <li><a href="#index_n"><span>n</span></a></li>
    <li><a href="#index_o"><span>o</span></a></li>
    <li><a href="#index_p"><span>p</span></a></li>
    <li><a href="#index_r"><span>r</span></a></li>
    <li><a href="#index_s"><span>s</span></a></li>
    <li><a href="#index_t"><span>t</span></a></li>
    <li><a href="#index_v"><span>v</span></a></li>
    <li><a href="#index_w"><span>w</span></a></li>
    <li><a href="#index_x"><span>x</span></a></li>
  </ul>
</div>

<p>
Here is a list of all documented class members with links to the class documentation for each member:
<p>
<h3><a class="anchor" name="index_a">- a -</a></h3><ul>
<li>allocator
: <a class="el" href="structaxutil__env.html#87272b6ccdf0c983d462705f78c466f0">axutil_env</a>
, <a class="el" href="structaxutil__error.html#2f53d04714902b5a03c4b646effdb471">axutil_error</a>
<li>attribute
: <a class="el" href="structaxiom__xpath__context.html#195be613871ae670bbf7a22820a582ef">axiom_xpath_context</a>
</ul>
<h3><a class="anchor" name="index_c">- c -</a></h3><ul>
<li>cleanup
: <a class="el" href="structaxis2__transport__sender__ops.html#b7fde0f17733c4e7ae6a001f98e56863">axis2_transport_sender_ops</a>
<li>current_pool
: <a class="el" href="structaxutil__allocator.html#5cc7eedc4bf6759a40e61bef6e15848e">axutil_allocator</a>
</ul>
<h3><a class="anchor" name="index_d">- d -</a></h3><ul>
<li>data
: <a class="el" href="structentry__s.html#b1fbd52ad6c6a83972b0dadd3c875fae">entry_s</a>
</ul>
<h3><a class="anchor" name="index_e">- e -</a></h3><ul>
<li>enabled
: <a class="el" href="structaxutil__log.html#61962855615898f2ff2409bbe9fb7ccc">axutil_log</a>
<li>end_start_element
: <a class="el" href="structaxiom__xml__writer__ops.html#cfc4c8e81bd5e6ea6dc557f0d47aba03">axiom_xml_writer_ops</a>
<li>env
: <a class="el" href="structaxiom__xpath__context.html#0147eb85d75a7c4d9e607d31f248102e">axiom_xpath_context</a>
<li>error
: <a class="el" href="structaxutil__env.html#b27a4204b2635ac3c0e1b2a4d59e9cab">axutil_env</a>
<li>error_number
: <a class="el" href="structaxutil__error.html#3da4cc0e92d6497abb53a77de312761e">axutil_error</a>
<li>expr
: <a class="el" href="structaxiom__xpath__context.html#14c81c80f9a4de981dd4994de028e56f">axiom_xpath_context</a>
<li>expr_len
: <a class="el" href="structaxiom__xpath__expression.html#a1a11ffb3130f1b7c406f10c00364f35">axiom_xpath_expression</a>
<li>expr_ptr
: <a class="el" href="structaxiom__xpath__expression.html#7824b23ee7d5162029dfe80e08ecbf4a">axiom_xpath_expression</a>
<li>expr_str
: <a class="el" href="structaxiom__xpath__expression.html#0b32a7b977d8a6475fb2abfb96935002">axiom_xpath_expression</a>
</ul>
<h3><a class="anchor" name="index_f">- f -</a></h3><ul>
<li>fill_handler_create_func_map
: <a class="el" href="structaxis2__module__ops.html#f2b6df61735d015d43b1f4956ae48817">axis2_module_ops</a>
<li>flag
: <a class="el" href="structaxiom__xpath__result.html#6ff5e690ba21cbf4c05128c704d5d955">axiom_xpath_result</a>
<li>free
: <a class="el" href="structaxiom__xml__writer__ops.html#5af16ee94216db95e1a0e16d2bf7eea3">axiom_xml_writer_ops</a>
, <a class="el" href="structaxutil__log__ops.html#b4996bdfbcd42be8cf62950dc59c2a7b">axutil_log_ops</a>
, <a class="el" href="structaxis2__svc__skeleton__ops.html#9b16e26ef87c9c4d460ee903adf70da3">axis2_svc_skeleton_ops</a>
, <a class="el" href="structaxis2__transport__sender__ops.html#70fe1ffdfc05599bb5852c70882bd63a">axis2_transport_sender_ops</a>
, <a class="el" href="structaxis2__transport__receiver__ops.html#7994fd305b8424911cb4bbb0c6fd0245">axis2_transport_receiver_ops</a>
, <a class="el" href="structaxiom__xml__reader__ops.html#b6c0094b13a222f82a3362d30026dd70">axiom_xml_reader_ops</a>
<li>free_fn
: <a class="el" href="structaxutil__allocator.html#e6cbe542556d5b628c55101ad66b83ae">axutil_allocator</a>
<li>func_array
: <a class="el" href="structaxis2__svc__skeleton.html#599e6715f5ab52169b173654a4baff55">axis2_svc_skeleton</a>
<li>functions
: <a class="el" href="structaxiom__xpath__context.html#75328031d141a5cb91f708785c11ca7a">axiom_xpath_context</a>
</ul>
<h3><a class="anchor" name="index_g">- g -</a></h3><ul>
<li>get_attribute_count
: <a class="el" href="structaxiom__xml__reader__ops.html#22a176378851114e11809eabd8b4ae46">axiom_xml_reader_ops</a>
<li>get_attribute_name_by_number
: <a class="el" href="structaxiom__xml__reader__ops.html#2c68389efbe57ee92f34688edf4298df">axiom_xml_reader_ops</a>
<li>get_attribute_namespace_by_number
: <a class="el" href="structaxiom__xml__reader__ops.html#cd439813d81970e3776c59dbe4f293c8">axiom_xml_reader_ops</a>
<li>get_attribute_prefix_by_number
: <a class="el" href="structaxiom__xml__reader__ops.html#3ff29576e6e09c6f9eede201aaea50a3">axiom_xml_reader_ops</a>
<li>get_attribute_value_by_number
: <a class="el" href="structaxiom__xml__reader__ops.html#20f3de0e5c250e3af7552797e330efb6">axiom_xml_reader_ops</a>
<li>get_char_set_encoding
: <a class="el" href="structaxiom__xml__reader__ops.html#7f8c57bb6d5dcf59ff55fd3cbc677da2">axiom_xml_reader_ops</a>
<li>get_conf_ctx
: <a class="el" href="structaxis2__transport__receiver__ops.html#c7cdf3c0d65565e17f021ad3a6f2f191">axis2_transport_receiver_ops</a>
<li>get_dtd
: <a class="el" href="structaxiom__xml__reader__ops.html#a9507f65a18b044ed7e33f088101d397">axiom_xml_reader_ops</a>
<li>get_name
: <a class="el" href="structaxiom__xml__reader__ops.html#5f53ff51d077111b77cc6ba7806f8e34">axiom_xml_reader_ops</a>
<li>get_namespace_count
: <a class="el" href="structaxiom__xml__reader__ops.html#2313a482156cba054e9ab475f36a1606">axiom_xml_reader_ops</a>
<li>get_namespace_prefix_by_number
: <a class="el" href="structaxiom__xml__reader__ops.html#038bd2b7b10d16ce5e33f0e0f8003d5c">axiom_xml_reader_ops</a>
<li>get_namespace_uri
: <a class="el" href="structaxiom__xml__reader__ops.html#61441a7ed7c3eb2d8e3755deb63383b2">axiom_xml_reader_ops</a>
<li>get_namespace_uri_by_number
: <a class="el" href="structaxiom__xml__reader__ops.html#9e6cb2a23eefe09daa1b6a6d9a470a52">axiom_xml_reader_ops</a>
<li>get_pi_data
: <a class="el" href="structaxiom__xml__reader__ops.html#22fa968eae5d05ca0c5e774ecf43c6e0">axiom_xml_reader_ops</a>
<li>get_pi_target
: <a class="el" href="structaxiom__xml__reader__ops.html#65d6db8d669b488efa67f7b11aae87be">axiom_xml_reader_ops</a>
<li>get_prefix
: <a class="el" href="structaxiom__xml__reader__ops.html#fb35c54f64deebf15f5e46040e12e47d">axiom_xml_reader_ops</a>
, <a class="el" href="structaxiom__xml__writer__ops.html#d146f0f6c94b7b3e2e9c9a771f09bfbd">axiom_xml_writer_ops</a>
<li>get_reply_to_epr
: <a class="el" href="structaxis2__transport__receiver__ops.html#46c5e7de76ce872bb45c0262a637ce24">axis2_transport_receiver_ops</a>
<li>get_value
: <a class="el" href="structaxiom__xml__reader__ops.html#23269d48917339c1195c68548a1df6bd">axiom_xml_reader_ops</a>
<li>global_pool
: <a class="el" href="structaxutil__allocator.html#02950180254570b99f2d93ee3a9e45f7">axutil_allocator</a>
</ul>
<h3><a class="anchor" name="index_h">- h -</a></h3><ul>
<li>handler_create_func_map
: <a class="el" href="structaxis2__module.html#32b14517bcfca559f3c89b994a9a9593">axis2_module</a>
</ul>
<h3><a class="anchor" name="index_i">- i -</a></h3><ul>
<li>init
: <a class="el" href="structaxis2__module__ops.html#38448a11b9ccf9d0f9c53102fa12423e">axis2_module_ops</a>
, <a class="el" href="structaxis2__svc__skeleton__ops.html#6c3313db00614c0ae6a0e3596496e5fd">axis2_svc_skeleton_ops</a>
, <a class="el" href="structaxis2__transport__sender__ops.html#21532f7b79a45af83a0daf97ccc9130c">axis2_transport_sender_ops</a>
, <a class="el" href="structaxis2__transport__receiver__ops.html#885be2bbdb84dd0733ee6b746a06135a">axis2_transport_receiver_ops</a>
<li>init_with_conf
: <a class="el" href="structaxis2__svc__skeleton__ops.html#0931f8e4636f97f582421d5babe407b7">axis2_svc_skeleton_ops</a>
<li>invoke
: <a class="el" href="structaxis2__svc__skeleton__ops.html#f7e231e87bb2db245c626f5037c7d263">axis2_svc_skeleton_ops</a>
, <a class="el" href="structaxis2__transport__sender__ops.html#4505f960f783bc86aa9e44b7a45d0a02">axis2_transport_sender_ops</a>
<li>is_dev
: <a class="el" href="structaxis2__version__t.html#40d035997f83cf806430645f58d346d1">axis2_version_t</a>
<li>is_running
: <a class="el" href="structaxis2__transport__receiver__ops.html#ded8017d792312c9ddcef119c2ffaeb4">axis2_transport_receiver_ops</a>
</ul>
<h3><a class="anchor" name="index_l">- l -</a></h3><ul>
<li>level
: <a class="el" href="structaxutil__log.html#083fd70b8c1f8b74b63cf5e2121aa945">axutil_log</a>
<li>local_pool
: <a class="el" href="structaxutil__allocator.html#1f67d021f43b871aadf0d882ed1c13a5">axutil_allocator</a>
<li>log
: <a class="el" href="structaxutil__env.html#f417f3c7c7e1555967cec92e76aa9195">axutil_env</a>
<li>log_enabled
: <a class="el" href="structaxutil__env.html#d75ee149d2ed1a3c5e421e8735ead35a">axutil_env</a>
</ul>
<h3><a class="anchor" name="index_m">- m -</a></h3><ul>
<li>major
: <a class="el" href="structaxis2__version__t.html#5b09e7b8017cf59f4c1dce05043b6b6d">axis2_version_t</a>
<li>malloc_fn
: <a class="el" href="structaxutil__allocator.html#0d8cb46ec65089504c4dd4f677138692">axutil_allocator</a>
<li>message
: <a class="el" href="structaxutil__error.html#a016f4ce55a9b63eb01dc66430d04c4f">axutil_error</a>
<li>minor
: <a class="el" href="structaxis2__version__t.html#11a05482ca7deefd3e496943145d7c2d">axis2_version_t</a>
</ul>
<h3><a class="anchor" name="index_n">- n -</a></h3><ul>
<li>namespaces
: <a class="el" href="structaxiom__xpath__context.html#2d2e8abbabd6efcc439bdab7e179e910">axiom_xpath_context</a>
<li>next
: <a class="el" href="structaxiom__xml__reader__ops.html#27dc955258fc16d29d509b44cc34f5b2">axiom_xml_reader_ops</a>
, <a class="el" href="group__axutil__linked__list.html#g8663ba871d35c8166f3a61ce49c3d0f0">entry_s</a>
<li>node
: <a class="el" href="structaxiom__xpath__context.html#bc3a733c582fd2eb99ca03a6b59cca2a">axiom_xpath_context</a>
<li>nodes
: <a class="el" href="structaxiom__xpath__result.html#bafb4ff3d0383acf641635ad5f6ec680">axiom_xpath_result</a>
<li>ns
: <a class="el" href="structaxiom__xpath__context.html#68ade470d9be8ffa228bf7f3646909a2">axiom_xpath_context</a>
</ul>
<h3><a class="anchor" name="index_o">- o -</a></h3><ul>
<li>on_fault
: <a class="el" href="structaxis2__svc__skeleton__ops.html#84abaf5bdda303774fe1abe6d4808577">axis2_svc_skeleton_ops</a>
<li>operations
: <a class="el" href="structaxiom__xpath__expression.html#6eae7cd6440ee80cb9ae2ad7955f84f6">axiom_xpath_expression</a>
<li>ops
: <a class="el" href="structaxis2__transport__sender.html#350bdcb21fd85adaea9b32bb5c5ddc4b">axis2_transport_sender</a>
, <a class="el" href="structaxis2__svc__skeleton.html#94510b1f879d2402c1402142d75f948c">axis2_svc_skeleton</a>
, <a class="el" href="structaxis2__module.html#ccf66293c4ca5b49aab449345768c1dd">axis2_module</a>
, <a class="el" href="structaxutil__log.html#111db95f40c855be83d589bc6d21b3b3">axutil_log</a>
</ul>
<h3><a class="anchor" name="index_p">- p -</a></h3><ul>
<li>patch
: <a class="el" href="structaxis2__version__t.html#d7e342f0dcdf63a6f80720b36565dd8a">axis2_version_t</a>
<li>position
: <a class="el" href="structaxiom__xpath__context.html#b04502cdafbd1c04afd69929a147855a">axiom_xpath_context</a>
<li>previous
: <a class="el" href="group__axutil__linked__list.html#g13ae42624c368b144f54520dcca0e770">entry_s</a>
</ul>
<h3><a class="anchor" name="index_r">- r -</a></h3><ul>
<li>realloc
: <a class="el" href="structaxutil__allocator.html#294a6dd809f99bbfd0b44e2b04b32835">axutil_allocator</a>
<li>root_node
: <a class="el" href="structaxiom__xpath__context.html#93e79adc5cea5fe45a5dc40d795dd50c">axiom_xpath_context</a>
</ul>
<h3><a class="anchor" name="index_s">- s -</a></h3><ul>
<li>set_default_prefix
: <a class="el" href="structaxiom__xml__writer__ops.html#6e82203c544a4ff8b4fd83446d6f7917">axiom_xml_writer_ops</a>
<li>set_prefix
: <a class="el" href="structaxiom__xml__writer__ops.html#1dc7aaaa7a93eb687a9df7954284a8ca">axiom_xml_writer_ops</a>
<li>shutdown
: <a class="el" href="structaxis2__module__ops.html#30119dd5c051394e42cb2f7b5fbd8bbd">axis2_module_ops</a>
<li>size
: <a class="el" href="structaxiom__xpath__context.html#cd86eda7252b33546209149883171d5b">axiom_xpath_context</a>
, <a class="el" href="structaxutil__log.html#3ad3ef2ff2f88500c8bf1520aca564cf">axutil_log</a>
<li>stack
: <a class="el" href="structaxiom__xpath__context.html#77e4cd6d0f33008bf06047a7e9c04559">axiom_xpath_context</a>
<li>start
: <a class="el" href="structaxis2__transport__receiver__ops.html#1c192e805fc0f8bc17c03320bd4c6db5">axis2_transport_receiver_ops</a>
, <a class="el" href="structaxiom__xpath__expression.html#e21223fbdd92617ef4b63c2df60fe6fe">axiom_xpath_expression</a>
<li>status_code
: <a class="el" href="structaxutil__error.html#39bc351d123f4f466b12c7157b29487f">axutil_error</a>
<li>stop
: <a class="el" href="structaxis2__transport__receiver__ops.html#1d77c3de28af26ef0962dab95f179bcf">axis2_transport_receiver_ops</a>
<li>streaming
: <a class="el" href="structaxiom__xpath__context.html#8f0911c1b596c5a4efa622b827bc3e01">axiom_xpath_context</a>
</ul>
<h3><a class="anchor" name="index_t">- t -</a></h3><ul>
<li>thread_pool
: <a class="el" href="structaxutil__env.html#7c86321a6c579db87fa5997fbcb1f10b">axutil_env</a>
<li>type
: <a class="el" href="structaxiom__xpath__result__node.html#641f491b7161bd35e233eb0e2fa31c32">axiom_xpath_result_node</a>
</ul>
<h3><a class="anchor" name="index_v">- v -</a></h3><ul>
<li>value
: <a class="el" href="structaxiom__xpath__result__node.html#544c05626367c25b702215e72adb3944">axiom_xpath_result_node</a>
</ul>
<h3><a class="anchor" name="index_w">- w -</a></h3><ul>
<li>write
: <a class="el" href="structaxutil__log__ops.html#8992fe7f68747b72629f1b3b73bcffbe">axutil_log_ops</a>
<li>write_attribute
: <a class="el" href="structaxiom__xml__writer__ops.html#3cfbfc24a004f6dc69ddf4a794e0f4dc">axiom_xml_writer_ops</a>
<li>write_attribute_with_namespace
: <a class="el" href="structaxiom__xml__writer__ops.html#9be76a40295724f89c21460a0cbb420e">axiom_xml_writer_ops</a>
<li>write_attribute_with_namespace_prefix
: <a class="el" href="structaxiom__xml__writer__ops.html#b95d7b90c1debb4474301a63248679dc">axiom_xml_writer_ops</a>
<li>write_cdata
: <a class="el" href="structaxiom__xml__writer__ops.html#dc350f03c1f39657762665d91e3da7de">axiom_xml_writer_ops</a>
<li>write_characters
: <a class="el" href="structaxiom__xml__writer__ops.html#bd4740a7d7c8ec64f9989942adf95683">axiom_xml_writer_ops</a>
<li>write_comment
: <a class="el" href="structaxiom__xml__writer__ops.html#31ae05dafb0f580135ea5aba9ba14ab8">axiom_xml_writer_ops</a>
<li>write_default_namespace
: <a class="el" href="structaxiom__xml__writer__ops.html#d5e89aade5d5eea3dfa737e93aa3af2b">axiom_xml_writer_ops</a>
<li>write_dtd
: <a class="el" href="structaxiom__xml__writer__ops.html#ad4bd1835177f7a4cd51b9684eb70fbb">axiom_xml_writer_ops</a>
<li>write_empty_element
: <a class="el" href="structaxiom__xml__writer__ops.html#9f17f154c81b94a06d0f0e15ddafa5b0">axiom_xml_writer_ops</a>
<li>write_empty_element_with_namespace
: <a class="el" href="structaxiom__xml__writer__ops.html#a5ebeba99a64158870c0a170f2ede136">axiom_xml_writer_ops</a>
<li>write_empty_element_with_namespace_prefix
: <a class="el" href="structaxiom__xml__writer__ops.html#1b5832263ff6777425b0a02370e69e2c">axiom_xml_writer_ops</a>
<li>write_encoded
: <a class="el" href="structaxiom__xml__writer__ops.html#18abc643865e39e695f7c818680c0b98">axiom_xml_writer_ops</a>
<li>write_end_document
: <a class="el" href="structaxiom__xml__writer__ops.html#3138b51841a55f98918bf692cf7801c2">axiom_xml_writer_ops</a>
<li>write_end_element
: <a class="el" href="structaxiom__xml__writer__ops.html#8527242f1ab3148202bc6199a138181b">axiom_xml_writer_ops</a>
<li>write_entity_ref
: <a class="el" href="structaxiom__xml__writer__ops.html#f7515527519017374d3c999857c19b4b">axiom_xml_writer_ops</a>
<li>write_namespace
: <a class="el" href="structaxiom__xml__writer__ops.html#9342c2366cc765c44bf9830eb793b968">axiom_xml_writer_ops</a>
<li>write_processing_instruction
: <a class="el" href="structaxiom__xml__writer__ops.html#7c4747974cc1beb1234f1a60670cac1d">axiom_xml_writer_ops</a>
<li>write_processing_instruction_data
: <a class="el" href="structaxiom__xml__writer__ops.html#a2c34385c2e7cad6914b637cb0324157">axiom_xml_writer_ops</a>
<li>write_start_document
: <a class="el" href="structaxiom__xml__writer__ops.html#ceb71f8c3dc1e4d6dae3b8e098238752">axiom_xml_writer_ops</a>
<li>write_start_document_with_version
: <a class="el" href="structaxiom__xml__writer__ops.html#6369d78e9156277c1130c09d023d9620">axiom_xml_writer_ops</a>
<li>write_start_document_with_version_encoding
: <a class="el" href="structaxiom__xml__writer__ops.html#50e3ebac8e1e667ec229d879cf854158">axiom_xml_writer_ops</a>
<li>write_start_element
: <a class="el" href="structaxiom__xml__writer__ops.html#c06223c3d060d8a16219daf284c31b25">axiom_xml_writer_ops</a>
<li>write_start_element_with_namespace
: <a class="el" href="structaxiom__xml__writer__ops.html#cb19bc0de6a28aff413d1116ab94488e">axiom_xml_writer_ops</a>
<li>write_start_element_with_namespace_prefix
: <a class="el" href="structaxiom__xml__writer__ops.html#181de53ec63a06c1dbbd9d724c34929f">axiom_xml_writer_ops</a>
</ul>
<h3><a class="anchor" name="index_x">- x -</a></h3><ul>
<li>xml_free
: <a class="el" href="structaxiom__xml__reader__ops.html#5fc97ffea35f86a12e538528e9024e04">axiom_xml_reader_ops</a>
</ul>
<hr size="1"><address style="text-align: right;"><small>Generated on Fri Apr 17 11:49:47 2009 for Axis2/C by&nbsp;
<a href="http://www.doxygen.org/index.html">
<img src="doxygen.png" alt="doxygen" align="middle" border="0"></a> 1.5.3 </small></address>
</body>
</html>


<|start_filename|>samples/server/echo/echo.c<|end_filename|>

/*
 * 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.
 */
#include "echo.h"
#include <axiom_xml_writer.h>
#include <stdio.h>

axiom_node_t *build_om_programatically(
    const axutil_env_t * env,
    axis2_char_t * text);

void set_custom_error(
    const axutil_env_t * env,
    axis2_char_t * error_message);

axiom_node_t *
axis2_echo_echo(
    const axutil_env_t * env,
    axiom_node_t * node)
{
    axiom_node_t *text_parent_node = NULL;
    axiom_node_t *text_node = NULL;
    axiom_node_t *ret_node = NULL;

    AXIS2_ENV_CHECK(env, NULL);

    /* Expected request format is :-
     * <ns1:echoString xmlns:ns1="http://ws.apache.org/axis2/c/samples">
     *      <text>echo5</text>
     * </ns1:echoString>
     */
    if (!node)                  /* 'echoString' node */
    {
        set_custom_error(env, "Invalid payload; echoString node is NULL");
        return NULL;
    }

    text_parent_node = axiom_node_get_first_element(node, env);
    if (!text_parent_node)
    {
        set_custom_error(env, "Invalid payload; text node is NULL");
        return NULL;
    }

    text_node = axiom_node_get_first_child(text_parent_node, env);
    if (!text_node)             /* actual text to echo */
    {
        set_custom_error(env, "Invalid payload; text to be echoed is NULL");
        return NULL;
    }

    if (axiom_node_get_node_type(text_node, env) == AXIOM_TEXT)
    {
        axiom_text_t *text =
            (axiom_text_t *) axiom_node_get_data_element(text_node, env);
        if (text && axiom_text_get_value(text, env))
        {
            axis2_char_t *text_str =
                (axis2_char_t *) axiom_text_get_value(text, env);
            ret_node = build_om_programatically(env, text_str);
        }
    }
    else
    {
        set_custom_error(env, "Invalid payload; invalid XML in request");
        return NULL;
    }

    return ret_node;
}

/* Builds the response content */
axiom_node_t *
build_om_programatically(
    const axutil_env_t * env,
    axis2_char_t * text)
{
    axiom_node_t *echo_om_node = NULL;
    axiom_element_t *echo_om_ele = NULL;
    axiom_node_t *text_om_node = NULL;
    axiom_element_t *text_om_ele = NULL;
    axiom_namespace_t *ns1 = NULL;

    ns1 =
        axiom_namespace_create(env, "http://ws.apache.org/axis2/c/samples",
                               "ns1");
    echo_om_ele =
        axiom_element_create(env, NULL, "echoString", ns1, &echo_om_node);
    text_om_ele =
        axiom_element_create(env, echo_om_node, "text", NULL, &text_om_node);
    axiom_element_set_text(text_om_ele, env, text, text_om_node);
    return echo_om_node;
}

void
set_custom_error(
    const axutil_env_t * env,
    axis2_char_t * error_message)
{
    axutil_error_set_error_message(env->error, error_message);
    AXIS2_ERROR_SET(env->error, AXIS2_ERROR_LAST + 1, AXIS2_FAILURE);
}


<|start_filename|>xdocs/api/html/group__axutil__network__handler.html<|end_filename|>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html><head><meta http-equiv="Content-Type" content="text/html;charset=UTF-8">
<title>Axis2/C: network handler</title>
<link href="doxygen.css" rel="stylesheet" type="text/css">
<link href="tabs.css" rel="stylesheet" type="text/css">
</head><body>
<!-- Generated by Doxygen 1.5.3 -->
<div class="tabs">
  <ul>
    <li><a href="index.html"><span>Main&nbsp;Page</span></a></li>
    <li><a href="modules.html"><span>Modules</span></a></li>
    <li><a href="annotated.html"><span>Classes</span></a></li>
    <li><a href="files.html"><span>Files</span></a></li>
    <li><a href="dirs.html"><span>Directories</span></a></li>
    <li><a href="pages.html"><span>Related&nbsp;Pages</span></a></li>
    <li><a href="examples.html"><span>Examples</span></a></li>
    <li>
      <form action="search.php" method="get">
        <table cellspacing="0" cellpadding="0" border="0">
          <tr>
            <td><label>&nbsp;<u>S</u>earch&nbsp;for&nbsp;</label></td>
            <td><input type="text" name="query" value="" size="20" accesskey="s"/></td>
          </tr>
        </table>
      </form>
    </li>
  </ul>
</div>
<h1>network handler<br>
<small>
[<a class="el" href="group__axis2__util.html">utilities</a>]</small>
</h1><table border="0" cellpadding="0" cellspacing="0">
<tr><td></td></tr>
<tr><td colspan="2"><br><h2>Functions</h2></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top">AXIS2_EXTERN <br>
axis2_socket_t&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__axutil__network__handler.html#g3bc07fd4dddb1427de1cfe28e5e1e09b">axutil_network_handler_open_socket</a> (const <a class="el" href="structaxutil__env.html">axutil_env_t</a> *env, char *server, int port)</td></tr>

<tr><td class="memItemLeft" nowrap align="right" valign="top">AXIS2_EXTERN <br>
axis2_socket_t&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__axutil__network__handler.html#gba4133a493242c5b02880ea807779830">axutil_network_handler_create_server_socket</a> (const <a class="el" href="structaxutil__env.html">axutil_env_t</a> *env, int port)</td></tr>

<tr><td class="memItemLeft" nowrap align="right" valign="top">AXIS2_EXTERN <br>
axis2_status_t&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__axutil__network__handler.html#g71fbbdcbc95a7ddf46dc34e652d4b79c">axutil_network_handler_close_socket</a> (const <a class="el" href="structaxutil__env.html">axutil_env_t</a> *env, axis2_socket_t socket)</td></tr>

<tr><td class="memItemLeft" nowrap align="right" valign="top">AXIS2_EXTERN <br>
axis2_status_t&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__axutil__network__handler.html#gf4d2e959b57c810c811414775d406268">axutil_network_handler_set_sock_option</a> (const <a class="el" href="structaxutil__env.html">axutil_env_t</a> *env, axis2_socket_t socket, int option, int value)</td></tr>

<tr><td class="memItemLeft" nowrap align="right" valign="top">AXIS2_EXTERN <br>
axis2_socket_t&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__axutil__network__handler.html#g3375a0ac8d9e4bba1262337ce0667b81">axutil_network_handler_svr_socket_accept</a> (const <a class="el" href="structaxutil__env.html">axutil_env_t</a> *env, axis2_socket_t socket)</td></tr>

<tr><td class="memItemLeft" nowrap align="right" valign="top">AXIS2_EXTERN <br>
axis2_char_t *&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__axutil__network__handler.html#ge133f7aaab676ec5220383a1fc6a18b5">axutil_network_handler_get_svr_ip</a> (const <a class="el" href="structaxutil__env.html">axutil_env_t</a> *env, axis2_socket_t socket)</td></tr>

<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="g6893a70c0b453c417e17e7491c8140e5"></a><!-- doxytag: member="axutil_network_handler::axutil_network_handler_get_peer_ip" ref="g6893a70c0b453c417e17e7491c8140e5" args="(const axutil_env_t *env, axis2_socket_t socket)" -->
AXIS2_EXTERN <br>
axis2_char_t *&nbsp;</td><td class="memItemRight" valign="bottom"><b>axutil_network_handler_get_peer_ip</b> (const <a class="el" href="structaxutil__env.html">axutil_env_t</a> *env, axis2_socket_t socket)</td></tr>

<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="g21550c4c0f6e9d182e92ca6e1df7ff9d"></a><!-- doxytag: member="axutil_network_handler::axutil_network_handler_open_dgram_socket" ref="g21550c4c0f6e9d182e92ca6e1df7ff9d" args="(const axutil_env_t *env)" -->
AXIS2_EXTERN <br>
axis2_socket_t&nbsp;</td><td class="memItemRight" valign="bottom"><b>axutil_network_handler_open_dgram_socket</b> (const <a class="el" href="structaxutil__env.html">axutil_env_t</a> *env)</td></tr>

<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="ga13001dd8a71fbbbaed115b8b5c28d87"></a><!-- doxytag: member="axutil_network_handler::axutil_network_handler_send_dgram" ref="ga13001dd8a71fbbbaed115b8b5c28d87" args="(const axutil_env_t *env, axis2_socket_t socket, axis2_char_t *buff, int *buf_len, axis2_char_t *addr, int dest_port, int *source_port)" -->
AXIS2_EXTERN <br>
axis2_status_t&nbsp;</td><td class="memItemRight" valign="bottom"><b>axutil_network_handler_send_dgram</b> (const <a class="el" href="structaxutil__env.html">axutil_env_t</a> *env, axis2_socket_t socket, axis2_char_t *buff, int *buf_len, axis2_char_t *addr, int dest_port, int *source_port)</td></tr>

<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="ge344861dbf1caae373d431770686a4ae"></a><!-- doxytag: member="axutil_network_handler::axutil_network_handler_read_dgram" ref="ge344861dbf1caae373d431770686a4ae" args="(const axutil_env_t *env, axis2_socket_t socket, axis2_char_t *buffer, int *buf_len, axis2_char_t **addr, int *port)" -->
AXIS2_EXTERN <br>
axis2_status_t&nbsp;</td><td class="memItemRight" valign="bottom"><b>axutil_network_handler_read_dgram</b> (const <a class="el" href="structaxutil__env.html">axutil_env_t</a> *env, axis2_socket_t socket, axis2_char_t *buffer, int *buf_len, axis2_char_t **addr, int *port)</td></tr>

<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="g2435f6c5b98a0b6bec78ee95702f9276"></a><!-- doxytag: member="axutil_network_handler::axutil_network_handler_create_dgram_svr_socket" ref="g2435f6c5b98a0b6bec78ee95702f9276" args="(const axutil_env_t *env, int port)" -->
AXIS2_EXTERN <br>
axis2_socket_t&nbsp;</td><td class="memItemRight" valign="bottom"><b>axutil_network_handler_create_dgram_svr_socket</b> (const <a class="el" href="structaxutil__env.html">axutil_env_t</a> *env, int port)</td></tr>

<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="gdef5cf5d89c4d224225c6fbcd26ba3b4"></a><!-- doxytag: member="axutil_network_handler::axutil_network_handler_bind_socket" ref="gdef5cf5d89c4d224225c6fbcd26ba3b4" args="(const axutil_env_t *env, axis2_socket_t sock, int port)" -->
AXIS2_EXTERN <br>
axis2_status_t&nbsp;</td><td class="memItemRight" valign="bottom"><b>axutil_network_handler_bind_socket</b> (const <a class="el" href="structaxutil__env.html">axutil_env_t</a> *env, axis2_socket_t sock, int port)</td></tr>

<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="g18bd326db40c6f0187532890f57c6fa8"></a><!-- doxytag: member="axutil_network_handler::axutil_network_hadler_create_multicast_svr_socket" ref="g18bd326db40c6f0187532890f57c6fa8" args="(const axutil_env_t *env, int port, axis2_char_t *mul_addr)" -->
AXIS2_EXTERN <br>
axis2_socket_t&nbsp;</td><td class="memItemRight" valign="bottom"><b>axutil_network_hadler_create_multicast_svr_socket</b> (const <a class="el" href="structaxutil__env.html">axutil_env_t</a> *env, int port, axis2_char_t *mul_addr)</td></tr>

</table>
<hr><h2>Function Documentation</h2>
<a class="anchor" name="g71fbbdcbc95a7ddf46dc34e652d4b79c"></a><!-- doxytag: member="axutil_network_handler.h::axutil_network_handler_close_socket" ref="g71fbbdcbc95a7ddf46dc34e652d4b79c" args="(const axutil_env_t *env, axis2_socket_t socket)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">AXIS2_EXTERN axis2_status_t axutil_network_handler_close_socket           </td>
          <td>(</td>
          <td class="paramtype">const <a class="el" href="structaxutil__env.html">axutil_env_t</a> *&nbsp;</td>
          <td class="paramname"> <em>env</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">axis2_socket_t&nbsp;</td>
          <td class="paramname"> <em>socket</em></td><td>&nbsp;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td><td width="100%"></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
closes a socket <dl compact><dt><b>Parameters:</b></dt><dd>
  <table border="0" cellspacing="2" cellpadding="0">
    <tr><td valign="top"></td><td valign="top"><em>opened</em>&nbsp;</td><td>socket that need to be closed </td></tr>
  </table>
</dl>
<dl class="return" compact><dt><b>Returns:</b></dt><dd>status code </dd></dl>

</div>
</div><p>
<a class="anchor" name="gba4133a493242c5b02880ea807779830"></a><!-- doxytag: member="axutil_network_handler.h::axutil_network_handler_create_server_socket" ref="gba4133a493242c5b02880ea807779830" args="(const axutil_env_t *env, int port)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">AXIS2_EXTERN axis2_socket_t axutil_network_handler_create_server_socket           </td>
          <td>(</td>
          <td class="paramtype">const <a class="el" href="structaxutil__env.html">axutil_env_t</a> *&nbsp;</td>
          <td class="paramname"> <em>env</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">int&nbsp;</td>
          <td class="paramname"> <em>port</em></td><td>&nbsp;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td><td width="100%"></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
creates a server socket for a given port <dl compact><dt><b>Parameters:</b></dt><dd>
  <table border="0" cellspacing="2" cellpadding="0">
    <tr><td valign="top"></td><td valign="top"><em>port</em>&nbsp;</td><td>port of the socket to be bound </td></tr>
  </table>
</dl>
<dl class="return" compact><dt><b>Returns:</b></dt><dd>creates server socket </dd></dl>

</div>
</div><p>
<a class="anchor" name="ge133f7aaab676ec5220383a1fc6a18b5"></a><!-- doxytag: member="axutil_network_handler.h::axutil_network_handler_get_svr_ip" ref="ge133f7aaab676ec5220383a1fc6a18b5" args="(const axutil_env_t *env, axis2_socket_t socket)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">AXIS2_EXTERN axis2_char_t* axutil_network_handler_get_svr_ip           </td>
          <td>(</td>
          <td class="paramtype">const <a class="el" href="structaxutil__env.html">axutil_env_t</a> *&nbsp;</td>
          <td class="paramname"> <em>env</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">axis2_socket_t&nbsp;</td>
          <td class="paramname"> <em>socket</em></td><td>&nbsp;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td><td width="100%"></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
Returns the ip address of the server associated with the socket <dl compact><dt><b>Parameters:</b></dt><dd>
  <table border="0" cellspacing="2" cellpadding="0">
    <tr><td valign="top"></td><td valign="top"><em>socket</em>&nbsp;</td><td>valid socket (obtained by accept() or similar call) </td></tr>
  </table>
</dl>
<dl class="return" compact><dt><b>Returns:</b></dt><dd>ip address asoociated with the socket or NULL </dd></dl>

</div>
</div><p>
<a class="anchor" name="g3bc07fd4dddb1427de1cfe28e5e1e09b"></a><!-- doxytag: member="axutil_network_handler.h::axutil_network_handler_open_socket" ref="g3bc07fd4dddb1427de1cfe28e5e1e09b" args="(const axutil_env_t *env, char *server, int port)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">AXIS2_EXTERN axis2_socket_t axutil_network_handler_open_socket           </td>
          <td>(</td>
          <td class="paramtype">const <a class="el" href="structaxutil__env.html">axutil_env_t</a> *&nbsp;</td>
          <td class="paramname"> <em>env</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">char *&nbsp;</td>
          <td class="paramname"> <em>server</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">int&nbsp;</td>
          <td class="paramname"> <em>port</em></td><td>&nbsp;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td><td width="100%"></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
open a socket for a given server <dl compact><dt><b>Parameters:</b></dt><dd>
  <table border="0" cellspacing="2" cellpadding="0">
    <tr><td valign="top"></td><td valign="top"><em>server</em>&nbsp;</td><td>ip address or the fqn of the server </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>port</em>&nbsp;</td><td>port of the service </td></tr>
  </table>
</dl>
<dl class="return" compact><dt><b>Returns:</b></dt><dd>opened socket </dd></dl>

</div>
</div><p>
<a class="anchor" name="gf4d2e959b57c810c811414775d406268"></a><!-- doxytag: member="axutil_network_handler.h::axutil_network_handler_set_sock_option" ref="gf4d2e959b57c810c811414775d406268" args="(const axutil_env_t *env, axis2_socket_t socket, int option, int value)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">AXIS2_EXTERN axis2_status_t axutil_network_handler_set_sock_option           </td>
          <td>(</td>
          <td class="paramtype">const <a class="el" href="structaxutil__env.html">axutil_env_t</a> *&nbsp;</td>
          <td class="paramname"> <em>env</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">axis2_socket_t&nbsp;</td>
          <td class="paramname"> <em>socket</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">int&nbsp;</td>
          <td class="paramname"> <em>option</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">int&nbsp;</td>
          <td class="paramname"> <em>value</em></td><td>&nbsp;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td><td width="100%"></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
used to set up socket options such as timeouts, non-blocking ..etc <dl compact><dt><b>Parameters:</b></dt><dd>
  <table border="0" cellspacing="2" cellpadding="0">
    <tr><td valign="top"></td><td valign="top"><em>socket</em>&nbsp;</td><td>valid socket (obtained by socket() or similar call) </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>option</em>&nbsp;</td><td>the name of the option </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>value</em>&nbsp;</td><td>Value to be set </td></tr>
  </table>
</dl>
<dl class="return" compact><dt><b>Returns:</b></dt><dd>status of the operations as axis2_status_t </dd></dl>

</div>
</div><p>
<a class="anchor" name="g3375a0ac8d9e4bba1262337ce0667b81"></a><!-- doxytag: member="axutil_network_handler.h::axutil_network_handler_svr_socket_accept" ref="g3375a0ac8d9e4bba1262337ce0667b81" args="(const axutil_env_t *env, axis2_socket_t socket)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">AXIS2_EXTERN axis2_socket_t axutil_network_handler_svr_socket_accept           </td>
          <td>(</td>
          <td class="paramtype">const <a class="el" href="structaxutil__env.html">axutil_env_t</a> *&nbsp;</td>
          <td class="paramname"> <em>env</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">axis2_socket_t&nbsp;</td>
          <td class="paramname"> <em>socket</em></td><td>&nbsp;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td><td width="100%"></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
Accepts remote connections for a server socket <dl compact><dt><b>Parameters:</b></dt><dd>
  <table border="0" cellspacing="2" cellpadding="0">
    <tr><td valign="top"></td><td valign="top"><em>socket</em>&nbsp;</td><td>valid server socket (obtained by socket() or similar call) </td></tr>
  </table>
</dl>
<dl class="return" compact><dt><b>Returns:</b></dt><dd>created socket to handle the incoming client connection </dd></dl>

</div>
</div><p>
<hr size="1"><address style="text-align: right;"><small>Generated on Fri Apr 17 11:49:46 2009 for Axis2/C by&nbsp;
<a href="http://www.doxygen.org/index.html">
<img src="doxygen.png" alt="doxygen" align="middle" border="0"></a> 1.5.3 </small></address>
</body>
</html>


<|start_filename|>util/src/thread_pool.c<|end_filename|>
/*
 * 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.
 */

#include <axutil_thread_pool.h>
#include <axutil_env.h>
#include <axutil_error_default.h>

struct axutil_thread_pool
{
    axutil_allocator_t *allocator;
};

AXIS2_EXTERN axutil_thread_pool_t *AXIS2_CALL
axutil_thread_pool_init(
    axutil_allocator_t *allocator)
{
    axutil_thread_pool_t *pool = NULL;

    pool =
        (axutil_thread_pool_t *) AXIS2_MALLOC(allocator,
                                              sizeof(axutil_thread_pool_t));

    if (!pool)
    {
        return NULL;
    }
    pool->allocator = allocator;

    return pool;
}

AXIS2_EXTERN void AXIS2_CALL
axutil_thread_pool_free(
    axutil_thread_pool_t *pool)
{
    if (!pool)
    {
        return;
    }
    if (!pool->allocator)
    {
        return;
    }
    AXIS2_FREE(pool->allocator, pool);
    return;
}

AXIS2_EXTERN axutil_thread_t *AXIS2_CALL
axutil_thread_pool_get_thread(
    axutil_thread_pool_t *pool,
    axutil_thread_start_t func,
    void *data)
{
    if (!pool)
    {
        return NULL;
    }
    if (!pool->allocator)
    {
        return NULL;
    }
    return axutil_thread_create(pool->allocator, NULL, func, data);
}

AXIS2_EXTERN axis2_status_t AXIS2_CALL
axutil_thread_pool_join_thread(
    axutil_thread_pool_t *pool,
    axutil_thread_t *thd)
{
    if (!pool || !thd)
    {
        return AXIS2_FAILURE;
    }
    return axutil_thread_join(thd);
}

AXIS2_EXTERN axis2_status_t AXIS2_CALL
axutil_thread_pool_exit_thread(
    axutil_thread_pool_t *pool,
    axutil_thread_t *thd)
{
    if (!pool || !thd)
    {
        return AXIS2_FAILURE;
    }
    return axutil_thread_exit(thd, pool->allocator);
}

AXIS2_EXTERN axis2_status_t AXIS2_CALL
axutil_thread_pool_thread_detach(
    axutil_thread_pool_t *pool,
    axutil_thread_t *thd)
{
    if (!pool || !thd)
    {
        return AXIS2_FAILURE;
    }
    return axutil_thread_detach(thd);
}

AXIS2_EXTERN axutil_env_t *AXIS2_CALL
axutil_init_thread_env(
    const axutil_env_t *system_env)
{
    axutil_error_t *error = axutil_error_create(system_env->allocator);
    axutil_env_t * thread_env = axutil_env_create_with_error_log_thread_pool(system_env->allocator,
                                                        error,
                                                        system_env->log,
                                                        system_env->thread_pool);
    if(!thread_env)
        AXIS2_ERROR_FREE(error);

    return thread_env;
}

AXIS2_EXTERN void AXIS2_CALL
axutil_free_thread_env(
    struct axutil_env *thread_env)
{
    if (!thread_env)
    {
        return;
    }

    axutil_thread_mutex_lock(thread_env->mutex);
    if (--(thread_env->ref) > 0)
    {
        axutil_thread_mutex_unlock(thread_env->mutex);
        return;
    }
    axutil_thread_mutex_unlock(thread_env->mutex);

    if (thread_env->mutex)
    {
        axutil_thread_mutex_destroy(thread_env->mutex);
    }

    /* log, thread_pool and allocator are shared, so do not free them */
    thread_env->log = NULL;
    thread_env->thread_pool = NULL;
    if (thread_env->error)
    {
        AXIS2_ERROR_FREE(thread_env->error);
    }
    AXIS2_FREE(thread_env->allocator, thread_env);
}


<|start_filename|>util/test/uri/uri_test.c<|end_filename|>
#include <axutil_uri.h>
#include "../util/create_env.h"
/** @brief test uri 
 *  * create URI and get the values of it's components  
 *   */
axis2_status_t test_uri(axutil_env_t *env)
{   
    axis2_char_t * uri_str = "http://user:pass@example.com:80/foo?bar#item5";
    axis2_char_t * host = "home.netscape.com:443";
    axis2_char_t * uri_str_base = "http://user:pass@example.com:80/foo?bar";
    axis2_char_t * scheme_str = "http";
    axutil_uri_t * base = NULL;
    axutil_uri_t * hostinfo = NULL;
    axutil_uri_t * uri = NULL;
    axutil_uri_t * clone = NULL;
    axutil_uri_t * rel = NULL;
    axis2_char_t * protocol = NULL;
    axis2_char_t * server = NULL;
    axis2_char_t * path = NULL;
    axis2_port_t scheme_port;
    axis2_port_t port;

    hostinfo = axutil_uri_parse_hostinfo(env,host);
    if(hostinfo)
    {
        printf("The host information of uri is %s\n",axutil_uri_to_string(hostinfo,env,0));
    }
    else
    {
        printf("Test hostinfo faild\n");
    } 
    
    scheme_port = axutil_uri_port_of_scheme(scheme_str); 
    if(scheme_port)
    {
        printf("port of scheme is %u\n", scheme_port);
    }
    else
    {
        printf("Test port failed\n");
    }
    
    uri = axutil_uri_parse_string(env,uri_str);    
    if(uri)
    {
        printf("The uri is %s\n",axutil_uri_to_string(uri,env,0));
        axutil_uri_free(uri, env);
    }
    else     
    { 
         return AXIS2_FAILURE;
    }

    base = axutil_uri_parse_string(env,uri_str_base);
    if(base)
    {
         printf("The base of uri is %s\n",axutil_uri_to_string(base,env,0));
    }
    else 
    {
       printf("Test base failed\n");
    }

    clone = axutil_uri_clone(uri,env);
    if(clone)
    {
        printf("The clone of uri is %s\n",axutil_uri_to_string(clone,env,0));
        axutil_uri_free(clone,env);
    }
    else
    {
        printf("Test clone failed");
    }
    
    rel = axutil_uri_resolve_relative(env,base,clone);
    if(rel)
    {
        printf("The resolved relative uri is %s\n",axutil_uri_to_string(rel,env,0));
    }
    else
    {
        printf("Test resolve relative failed");
    }
    
    protocol = axutil_uri_get_protocol(uri,env);
    if (!protocol)
    {
        axutil_uri_free(uri,env);
        return AXIS2_FAILURE;
    }
    
    server = axutil_uri_get_server(uri,env);
    if (!server)
    {
        axutil_uri_free(uri,env);
        return AXIS2_FAILURE;
    }
    
    port = axutil_uri_get_port(uri,env);
    if (!port)
    {
        axutil_uri_free(uri,env);
        return AXIS2_FAILURE;
    }
    
    path = axutil_uri_get_path(uri,env);
    if (!path)
    {
        axutil_uri_free(uri,env);
        return AXIS2_FAILURE;
    }
   
    printf("The protocol is %s\n",protocol);
    printf("The server is %s \n",server);
    printf("The port is %u \n",port);
    printf("The path is %s\n",path); 
    axutil_uri_free(uri,env);
    return AXIS2_SUCCESS;
}

int main()
{   
    int status = AXIS2_SUCCESS;
    axutil_env_t *env = NULL;
    
    env = create_environment();
    status = test_uri(env);
    
    if(status == AXIS2_FAILURE)
    {
        printf("The Test failed");
    }
    axutil_env_free(env);
    
    return 0;
}






<|start_filename|>xdocs/api/html/structaxutil__allocator.html<|end_filename|>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html><head><meta http-equiv="Content-Type" content="text/html;charset=UTF-8">
<title>Axis2/C: axutil_allocator Struct Reference</title>
<link href="doxygen.css" rel="stylesheet" type="text/css">
<link href="tabs.css" rel="stylesheet" type="text/css">
</head><body>
<!-- Generated by Doxygen 1.5.3 -->
<div class="tabs">
  <ul>
    <li><a href="index.html"><span>Main&nbsp;Page</span></a></li>
    <li><a href="modules.html"><span>Modules</span></a></li>
    <li class="current"><a href="annotated.html"><span>Classes</span></a></li>
    <li><a href="files.html"><span>Files</span></a></li>
    <li><a href="dirs.html"><span>Directories</span></a></li>
    <li><a href="pages.html"><span>Related&nbsp;Pages</span></a></li>
    <li><a href="examples.html"><span>Examples</span></a></li>
    <li>
      <form action="search.php" method="get">
        <table cellspacing="0" cellpadding="0" border="0">
          <tr>
            <td><label>&nbsp;<u>S</u>earch&nbsp;for&nbsp;</label></td>
            <td><input type="text" name="query" value="" size="20" accesskey="s"/></td>
          </tr>
        </table>
      </form>
    </li>
  </ul>
</div>
<div class="tabs">
  <ul>
    <li><a href="annotated.html"><span>Class&nbsp;List</span></a></li>
    <li><a href="functions.html"><span>Class&nbsp;Members</span></a></li>
  </ul>
</div>
<h1>axutil_allocator Struct Reference<br>
<small>
[<a class="el" href="group__axutil__allocator.html">allocator</a>]</small>
</h1><!-- doxytag: class="axutil_allocator" -->Axis2 memory allocator.  
<a href="#_details">More...</a>
<p>
<code>#include &lt;<a class="el" href="axutil__allocator_8h-source.html">axutil_allocator.h</a>&gt;</code>
<p>

<p>
<a href="structaxutil__allocator-members.html">List of all members.</a><table border="0" cellpadding="0" cellspacing="0">
<tr><td></td></tr>
<tr><td colspan="2"><br><h2>Public Attributes</h2></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top">void *(*&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="structaxutil__allocator.html#0d8cb46ec65089504c4dd4f677138692">malloc_fn</a> )(struct <a class="el" href="structaxutil__allocator.html">axutil_allocator</a> *allocator, size_t size)</td></tr>

<tr><td class="memItemLeft" nowrap align="right" valign="top">void *(*&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="structaxutil__allocator.html#294a6dd809f99bbfd0b44e2b04b32835">realloc</a> )(struct <a class="el" href="structaxutil__allocator.html">axutil_allocator</a> *allocator, void *ptr, size_t size)</td></tr>

<tr><td class="memItemLeft" nowrap align="right" valign="top">void(*&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="structaxutil__allocator.html#e6cbe542556d5b628c55101ad66b83ae">free_fn</a> )(struct <a class="el" href="structaxutil__allocator.html">axutil_allocator</a> *allocator, void *ptr)</td></tr>

<tr><td class="memItemLeft" nowrap align="right" valign="top">void *&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="structaxutil__allocator.html#1f67d021f43b871aadf0d882ed1c13a5">local_pool</a></td></tr>

<tr><td class="memItemLeft" nowrap align="right" valign="top">void *&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="structaxutil__allocator.html#02950180254570b99f2d93ee3a9e45f7">global_pool</a></td></tr>

<tr><td class="memItemLeft" nowrap align="right" valign="top">void *&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="structaxutil__allocator.html#5cc7eedc4bf6759a40e61bef6e15848e">current_pool</a></td></tr>

</table>
<hr><a name="_details"></a><h2>Detailed Description</h2>
Axis2 memory allocator. 
<p>
Encapsulator for memory allocating routines <hr><h2>Member Data Documentation</h2>
<a class="anchor" name="0d8cb46ec65089504c4dd4f677138692"></a><!-- doxytag: member="axutil_allocator::malloc_fn" ref="0d8cb46ec65089504c4dd4f677138692" args=")(struct axutil_allocator *allocator, size_t size)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">void*( *  <a class="el" href="structaxutil__allocator.html#0d8cb46ec65089504c4dd4f677138692">axutil_allocator::malloc_fn</a>)(struct <a class="el" href="structaxutil__allocator.html">axutil_allocator</a> *allocator, size_t size)          </td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
Function pointer representing the function that allocates memory. <dl compact><dt><b>Parameters:</b></dt><dd>
  <table border="0" cellspacing="2" cellpadding="0">
    <tr><td valign="top"></td><td valign="top"><em>allocator</em>&nbsp;</td><td>pointer to allocator struct. In the default implementation this is not used, however this parameter is useful when the allocator implementation is dealing with a memory pool. </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>size</em>&nbsp;</td><td>size of the memory block to be allocated </td></tr>
  </table>
</dl>
<dl class="return" compact><dt><b>Returns:</b></dt><dd>pointer to the allocated memory block </dd></dl>

</div>
</div><p>
<a class="anchor" name="294a6dd809f99bbfd0b44e2b04b32835"></a><!-- doxytag: member="axutil_allocator::realloc" ref="294a6dd809f99bbfd0b44e2b04b32835" args=")(struct axutil_allocator *allocator, void *ptr, size_t size)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">void*( *  <a class="el" href="structaxutil__allocator.html#294a6dd809f99bbfd0b44e2b04b32835">axutil_allocator::realloc</a>)(struct <a class="el" href="structaxutil__allocator.html">axutil_allocator</a> *allocator, void *ptr, size_t size)          </td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
Function pointer representing the function that re-allocates memory. <dl compact><dt><b>Parameters:</b></dt><dd>
  <table border="0" cellspacing="2" cellpadding="0">
    <tr><td valign="top"></td><td valign="top"><em>allocator</em>&nbsp;</td><td>pointer to allocator struct. In the default implementation this is not used, however this parameter is useful when the allocator implementation is dealing with a memory pool. </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>ptr</em>&nbsp;</td><td>memory block who's size to be changed </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>size</em>&nbsp;</td><td>size of the memory block to be allocated </td></tr>
  </table>
</dl>
<dl class="return" compact><dt><b>Returns:</b></dt><dd>pointer to the allocated memory block </dd></dl>

</div>
</div><p>
<a class="anchor" name="e6cbe542556d5b628c55101ad66b83ae"></a><!-- doxytag: member="axutil_allocator::free_fn" ref="e6cbe542556d5b628c55101ad66b83ae" args=")(struct axutil_allocator *allocator, void *ptr)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">void( *  <a class="el" href="structaxutil__allocator.html#e6cbe542556d5b628c55101ad66b83ae">axutil_allocator::free_fn</a>)(struct <a class="el" href="structaxutil__allocator.html">axutil_allocator</a> *allocator, void *ptr)          </td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
Function pointer representing the function that frees memory. <dl compact><dt><b>Parameters:</b></dt><dd>
  <table border="0" cellspacing="2" cellpadding="0">
    <tr><td valign="top"></td><td valign="top"><em>allocator</em>&nbsp;</td><td>pointer to allocator struct. In the default implementation this is not used, however this parameter is useful when the allocator implementation is dealing with a memory pool. </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>ptr</em>&nbsp;</td><td>pointer to be freed </td></tr>
  </table>
</dl>
<dl class="return" compact><dt><b>Returns:</b></dt><dd>void </dd></dl>

</div>
</div><p>
<a class="anchor" name="1f67d021f43b871aadf0d882ed1c13a5"></a><!-- doxytag: member="axutil_allocator::local_pool" ref="1f67d021f43b871aadf0d882ed1c13a5" args="" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">void* <a class="el" href="structaxutil__allocator.html#1f67d021f43b871aadf0d882ed1c13a5">axutil_allocator::local_pool</a>          </td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
Local memory pool. Local pool is used to allocate per request local values. 
</div>
</div><p>
<a class="anchor" name="02950180254570b99f2d93ee3a9e45f7"></a><!-- doxytag: member="axutil_allocator::global_pool" ref="02950180254570b99f2d93ee3a9e45f7" args="" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">void* <a class="el" href="structaxutil__allocator.html#02950180254570b99f2d93ee3a9e45f7">axutil_allocator::global_pool</a>          </td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
Global memory pool. Global pool is used to allocate values that live beyond a request 
</div>
</div><p>
<a class="anchor" name="5cc7eedc4bf6759a40e61bef6e15848e"></a><!-- doxytag: member="axutil_allocator::current_pool" ref="5cc7eedc4bf6759a40e61bef6e15848e" args="" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">void* <a class="el" href="structaxutil__allocator.html#5cc7eedc4bf6759a40e61bef6e15848e">axutil_allocator::current_pool</a>          </td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
Memory pool currently in use. The functions axutil_allocator_switch_to_global_pool and axutil_allocator_switch_to_local_pool should be used to set the current pool to global pool or to local pool respectively. 
</div>
</div><p>
<hr>The documentation for this struct was generated from the following file:<ul>
<li><a class="el" href="axutil__allocator_8h-source.html">axutil_allocator.h</a></ul>
<hr size="1"><address style="text-align: right;"><small>Generated on Fri Apr 17 11:49:48 2009 for Axis2/C by&nbsp;
<a href="http://www.doxygen.org/index.html">
<img src="doxygen.png" alt="doxygen" align="middle" border="0"></a> 1.5.3 </small></address>
</body>
</html>


<|start_filename|>xdocs/api/html/structaxis2__svc__skeleton__ops.html<|end_filename|>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html><head><meta http-equiv="Content-Type" content="text/html;charset=UTF-8">
<title>Axis2/C: axis2_svc_skeleton_ops Struct Reference</title>
<link href="doxygen.css" rel="stylesheet" type="text/css">
<link href="tabs.css" rel="stylesheet" type="text/css">
</head><body>
<!-- Generated by Doxygen 1.5.3 -->
<div class="tabs">
  <ul>
    <li><a href="index.html"><span>Main&nbsp;Page</span></a></li>
    <li><a href="modules.html"><span>Modules</span></a></li>
    <li class="current"><a href="annotated.html"><span>Classes</span></a></li>
    <li><a href="files.html"><span>Files</span></a></li>
    <li><a href="dirs.html"><span>Directories</span></a></li>
    <li><a href="pages.html"><span>Related&nbsp;Pages</span></a></li>
    <li><a href="examples.html"><span>Examples</span></a></li>
    <li>
      <form action="search.php" method="get">
        <table cellspacing="0" cellpadding="0" border="0">
          <tr>
            <td><label>&nbsp;<u>S</u>earch&nbsp;for&nbsp;</label></td>
            <td><input type="text" name="query" value="" size="20" accesskey="s"/></td>
          </tr>
        </table>
      </form>
    </li>
  </ul>
</div>
<div class="tabs">
  <ul>
    <li><a href="annotated.html"><span>Class&nbsp;List</span></a></li>
    <li><a href="functions.html"><span>Class&nbsp;Members</span></a></li>
  </ul>
</div>
<h1>axis2_svc_skeleton_ops Struct Reference<br>
<small>
[<a class="el" href="group__axis2__svc__skeleton.html">service skeleton</a>]</small>
</h1><!-- doxytag: class="axis2_svc_skeleton_ops" --><code>#include &lt;<a class="el" href="axis2__svc__skeleton_8h-source.html">axis2_svc_skeleton.h</a>&gt;</code>
<p>

<p>
<a href="structaxis2__svc__skeleton__ops-members.html">List of all members.</a><table border="0" cellpadding="0" cellspacing="0">
<tr><td></td></tr>
<tr><td colspan="2"><br><h2>Public Attributes</h2></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top">int(*&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="structaxis2__svc__skeleton__ops.html#6c3313db00614c0ae6a0e3596496e5fd">init</a> )(<a class="el" href="structaxis2__svc__skeleton.html">axis2_svc_skeleton_t</a> *svc_skeleton, const <a class="el" href="structaxutil__env.html">axutil_env_t</a> *env)</td></tr>

<tr><td class="memItemLeft" nowrap align="right" valign="top">axiom_node_t *(*&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="structaxis2__svc__skeleton__ops.html#f7e231e87bb2db245c626f5037c7d263">invoke</a> )(<a class="el" href="structaxis2__svc__skeleton.html">axis2_svc_skeleton_t</a> *svc_skeli, const <a class="el" href="structaxutil__env.html">axutil_env_t</a> *env, axiom_node_t *node, <a class="el" href="group__axis2__msg__ctx.html#g160acae289ac39cb49fa625ffd88e410">axis2_msg_ctx_t</a> *msg_ctx)</td></tr>

<tr><td class="memItemLeft" nowrap align="right" valign="top">axiom_node_t *(*&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="structaxis2__svc__skeleton__ops.html#84abaf5bdda303774fe1abe6d4808577">on_fault</a> )(<a class="el" href="structaxis2__svc__skeleton.html">axis2_svc_skeleton_t</a> *svc_skeli, const <a class="el" href="structaxutil__env.html">axutil_env_t</a> *env, axiom_node_t *node)</td></tr>

<tr><td class="memItemLeft" nowrap align="right" valign="top">int(*&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="structaxis2__svc__skeleton__ops.html#9b16e26ef87c9c4d460ee903adf70da3">free</a> )(<a class="el" href="structaxis2__svc__skeleton.html">axis2_svc_skeleton_t</a> *svc_skeli, const <a class="el" href="structaxutil__env.html">axutil_env_t</a> *env)</td></tr>

<tr><td class="memItemLeft" nowrap align="right" valign="top">int(*&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="structaxis2__svc__skeleton__ops.html#0931f8e4636f97f582421d5babe407b7">init_with_conf</a> )(<a class="el" href="structaxis2__svc__skeleton.html">axis2_svc_skeleton_t</a> *svc_skeleton, const <a class="el" href="structaxutil__env.html">axutil_env_t</a> *env, struct axis2_conf *conf)</td></tr>

</table>
<hr><a name="_details"></a><h2>Detailed Description</h2>
service skeleton ops struct. Encapsulator struct for operations of <a class="el" href="structaxis2__svc__skeleton.html">axis2_svc_skeleton</a>. <hr><h2>Member Data Documentation</h2>
<a class="anchor" name="6c3313db00614c0ae6a0e3596496e5fd"></a><!-- doxytag: member="axis2_svc_skeleton_ops::init" ref="6c3313db00614c0ae6a0e3596496e5fd" args=")(axis2_svc_skeleton_t *svc_skeleton, const axutil_env_t *env)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">int( *  <a class="el" href="structaxis2__svc__skeleton__ops.html#6c3313db00614c0ae6a0e3596496e5fd">axis2_svc_skeleton_ops::init</a>)(<a class="el" href="structaxis2__svc__skeleton.html">axis2_svc_skeleton_t</a> *svc_skeleton, const <a class="el" href="structaxutil__env.html">axutil_env_t</a> *env)          </td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
Initializes the service implementation. <dl compact><dt><b>Parameters:</b></dt><dd>
  <table border="0" cellspacing="2" cellpadding="0">
    <tr><td valign="top"></td><td valign="top"><em>svc_skeleton</em>&nbsp;</td><td>pointer to svc_skeleton struct </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>env</em>&nbsp;</td><td>pointer to environment struct </td></tr>
  </table>
</dl>
<dl class="return" compact><dt><b>Returns:</b></dt><dd>AXIS2_SUCCESS on success, else AXIS2_FAILURE </dd></dl>

</div>
</div><p>
<a class="anchor" name="f7e231e87bb2db245c626f5037c7d263"></a><!-- doxytag: member="axis2_svc_skeleton_ops::invoke" ref="f7e231e87bb2db245c626f5037c7d263" args=")(axis2_svc_skeleton_t *svc_skeli, const axutil_env_t *env, axiom_node_t *node, axis2_msg_ctx_t *msg_ctx)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">axiom_node_t*( *  <a class="el" href="structaxis2__svc__skeleton__ops.html#f7e231e87bb2db245c626f5037c7d263">axis2_svc_skeleton_ops::invoke</a>)(<a class="el" href="structaxis2__svc__skeleton.html">axis2_svc_skeleton_t</a> *svc_skeli, const <a class="el" href="structaxutil__env.html">axutil_env_t</a> *env, axiom_node_t *node, <a class="el" href="group__axis2__msg__ctx.html#g160acae289ac39cb49fa625ffd88e410">axis2_msg_ctx_t</a> *msg_ctx)          </td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
Invokes the service. This function should be used to call up the functions implementing service operations. <dl compact><dt><b>Parameters:</b></dt><dd>
  <table border="0" cellspacing="2" cellpadding="0">
    <tr><td valign="top"></td><td valign="top"><em>svc_skeli</em>&nbsp;</td><td>pointer to svc_skeli struct </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>env</em>&nbsp;</td><td>pointer to environment struct </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>node</em>&nbsp;</td><td>pointer to node struct </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>msg_ctx</em>&nbsp;</td><td>pointer to message context struct </td></tr>
  </table>
</dl>
<dl class="return" compact><dt><b>Returns:</b></dt><dd>pointer to AXIOM node resulting from the invocation. In case of one way operations, NULL would be returned with status in environment error set to AXIS2_SUCCESS. On error NULL would be returned with error status set to AXIS2_FAILURE </dd></dl>

</div>
</div><p>
<a class="anchor" name="84abaf5bdda303774fe1abe6d4808577"></a><!-- doxytag: member="axis2_svc_skeleton_ops::on_fault" ref="84abaf5bdda303774fe1abe6d4808577" args=")(axis2_svc_skeleton_t *svc_skeli, const axutil_env_t *env, axiom_node_t *node)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">axiom_node_t*( *  <a class="el" href="structaxis2__svc__skeleton__ops.html#84abaf5bdda303774fe1abe6d4808577">axis2_svc_skeleton_ops::on_fault</a>)(<a class="el" href="structaxis2__svc__skeleton.html">axis2_svc_skeleton_t</a> *svc_skeli, const <a class="el" href="structaxutil__env.html">axutil_env_t</a> *env, axiom_node_t *node)          </td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
This method would be called if a fault is detected. <dl compact><dt><b>Parameters:</b></dt><dd>
  <table border="0" cellspacing="2" cellpadding="0">
    <tr><td valign="top"></td><td valign="top"><em>svc_skeli</em>&nbsp;</td><td>pointer to svc_skeli struct </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>env</em>&nbsp;</td><td>pointer to environment struct </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>node</em>&nbsp;</td><td>pointer to node struct </td></tr>
  </table>
</dl>
<dl class="return" compact><dt><b>Returns:</b></dt><dd>pointer to AXIOM node reflecting the fault, NULL on error </dd></dl>

</div>
</div><p>
<a class="anchor" name="9b16e26ef87c9c4d460ee903adf70da3"></a><!-- doxytag: member="axis2_svc_skeleton_ops::free" ref="9b16e26ef87c9c4d460ee903adf70da3" args=")(axis2_svc_skeleton_t *svc_skeli, const axutil_env_t *env)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">int( *  <a class="el" href="structaxis2__svc__skeleton__ops.html#9b16e26ef87c9c4d460ee903adf70da3">axis2_svc_skeleton_ops::free</a>)(<a class="el" href="structaxis2__svc__skeleton.html">axis2_svc_skeleton_t</a> *svc_skeli, const <a class="el" href="structaxutil__env.html">axutil_env_t</a> *env)          </td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
Frees service implementation. <dl compact><dt><b>Parameters:</b></dt><dd>
  <table border="0" cellspacing="2" cellpadding="0">
    <tr><td valign="top"></td><td valign="top"><em>svc_skeli</em>&nbsp;</td><td>pointer to svc_skeli struct </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>env</em>&nbsp;</td><td>pointer to environment struct </td></tr>
  </table>
</dl>
<dl class="return" compact><dt><b>Returns:</b></dt><dd>AXIS2_SUCCESS on success, else AXIS2_FAILURE </dd></dl>

</div>
</div><p>
<a class="anchor" name="0931f8e4636f97f582421d5babe407b7"></a><!-- doxytag: member="axis2_svc_skeleton_ops::init_with_conf" ref="0931f8e4636f97f582421d5babe407b7" args=")(axis2_svc_skeleton_t *svc_skeleton, const axutil_env_t *env, struct axis2_conf *conf)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">int( *  <a class="el" href="structaxis2__svc__skeleton__ops.html#0931f8e4636f97f582421d5babe407b7">axis2_svc_skeleton_ops::init_with_conf</a>)(<a class="el" href="structaxis2__svc__skeleton.html">axis2_svc_skeleton_t</a> *svc_skeleton, const <a class="el" href="structaxutil__env.html">axutil_env_t</a> *env, struct axis2_conf *conf)          </td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
Initializes the service implementation. <dl compact><dt><b>Parameters:</b></dt><dd>
  <table border="0" cellspacing="2" cellpadding="0">
    <tr><td valign="top"></td><td valign="top"><em>svc_skeleton</em>&nbsp;</td><td>pointer to svc_skeleton struct </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>env</em>&nbsp;</td><td>pointer to environment struct </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>conf</em>&nbsp;</td><td>pointer to axis2c configuration struct </td></tr>
  </table>
</dl>
<dl class="return" compact><dt><b>Returns:</b></dt><dd>AXIS2_SUCCESS on success, else AXIS2_FAILURE </dd></dl>

</div>
</div><p>
<hr>The documentation for this struct was generated from the following file:<ul>
<li><a class="el" href="axis2__svc__skeleton_8h-source.html">axis2_svc_skeleton.h</a></ul>
<hr size="1"><address style="text-align: right;"><small>Generated on Fri Apr 17 11:49:48 2009 for Axis2/C by&nbsp;
<a href="http://www.doxygen.org/index.html">
<img src="doxygen.png" alt="doxygen" align="middle" border="0"></a> 1.5.3 </small></address>
</body>
</html>


<|start_filename|>src/core/transport/http/util/http_transport_utils.c<|end_filename|>
/*
 * 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.
 */

#include <axis2_http_transport_utils.h>
#include <string.h>
#include <ctype.h>
#include <axis2_conf.h>
#include <axis2_op.h>
#include <axutil_qname.h>
#include <axis2_http_transport.h>
#include <axiom_soap_builder.h>
#include <axis2_engine.h>
#include <axiom_soap_body.h>
#include <axutil_utils.h>
#include <axiom_namespace.h>
#include <axiom_node.h>
#include <axutil_hash.h>
#include <axiom_soap_const.h>
#include <axis2_http_header.h>
#include <axutil_property.h>
#include <axutil_utils.h>
#include <axiom_mime_parser.h>
#include <axis2_http_accept_record.h>
#include <axis2_disp.h>
#include <axis2_msg.h>
#include <axutil_string_util.h>
#include <stdlib.h>
#include <axutil_uuid_gen.h>
#include <platforms/axutil_platform_auto_sense.h>
#include <axiom_mime_part.h>
#include <axutil_class_loader.h>

#ifdef AXIS2_JSON_ENABLED
#include <axiom_soap_header.h>
#include <axiom_soap_header_block.h>
#include <axis2_json_reader.h>
#endif

#define AXIOM_MIME_BOUNDARY_BYTE 45

/** Size of the buffer to be used when reading a file */
#ifndef AXIS2_FILE_READ_SIZE
#define AXIS2_FILE_READ_SIZE 2048
#endif

/** Content length value to be used in case of chunked content  */
#ifndef AXIS2_CHUNKED_CONTENT_LENGTH
#define AXIS2_CHUNKED_CONTENT_LENGTH 100000000
#endif

const axis2_char_t *AXIS2_TRANS_UTIL_DEFAULT_CHAR_ENCODING =
    AXIS2_HTTP_HEADER_DEFAULT_CHAR_ENCODING;

/***************************** Function headers *******************************/

AXIS2_EXTERN axis2_status_t AXIS2_CALL
axis2_http_transport_utils_process_http_post_request(
    const axutil_env_t * env,
    axis2_msg_ctx_t * msg_ctx,
    axutil_stream_t * in_stream,
    axutil_stream_t * out_stream,
    const axis2_char_t * content_type,
    const int content_length,
    axutil_string_t * soap_action_header,
    const axis2_char_t * request_uri);

AXIS2_EXTERN axis2_status_t AXIS2_CALL
axis2_http_transport_utils_process_http_put_request(
    const axutil_env_t * env,
    axis2_msg_ctx_t * msg_ctx,
    axutil_stream_t * in_stream,
    axutil_stream_t * out_stream,
    const axis2_char_t * content_type,
    const int content_length,
    axutil_string_t * soap_action_header,
    const axis2_char_t * request_uri);

AXIS2_EXTERN axis2_bool_t AXIS2_CALL
axis2_http_transport_utils_process_http_get_request(
    const axutil_env_t * env,
    axis2_msg_ctx_t * msg_ctx,
    axutil_stream_t * in_stream,
    axutil_stream_t * out_stream,
    const axis2_char_t * content_type,
    axutil_string_t * soap_action_header,
    const axis2_char_t * request_uri,
    axis2_conf_ctx_t * conf_ctx,
    axutil_hash_t * request_params);

AXIS2_EXTERN axis2_bool_t AXIS2_CALL
axis2_http_transport_utils_process_http_head_request(
    const axutil_env_t * env,
    axis2_msg_ctx_t * msg_ctx,
    axutil_stream_t * in_stream,
    axutil_stream_t * out_stream,
    const axis2_char_t * content_type,
    axutil_string_t * soap_action_header,
    const axis2_char_t * request_uri,
    axis2_conf_ctx_t * conf_ctx,
    axutil_hash_t * request_params);

AXIS2_EXTERN axis2_bool_t AXIS2_CALL
axis2_http_transport_utils_process_http_delete_request(
    const axutil_env_t * env,
    axis2_msg_ctx_t * msg_ctx,
    axutil_stream_t * in_stream,
    axutil_stream_t * out_stream,
    const axis2_char_t * content_type,
    axutil_string_t * soap_action_header,
    const axis2_char_t * request_uri,
    axis2_conf_ctx_t * conf_ctx,
    axutil_hash_t * request_params);


AXIS2_EXTERN axiom_stax_builder_t *AXIS2_CALL
axis2_http_transport_utils_select_builder_for_mime(
    const axutil_env_t * env,
    axis2_char_t * request_uri,
    axis2_msg_ctx_t * msg_ctx,
    axutil_stream_t * in_stream,
    axis2_char_t * content_type);

AXIS2_EXTERN axis2_bool_t AXIS2_CALL axis2_http_transport_utils_is_optimized(
    const axutil_env_t * env,
    axiom_element_t * om_element);

AXIS2_EXTERN axis2_bool_t AXIS2_CALL axis2_http_transport_utils_do_write_mtom(
    const axutil_env_t * env,
    axis2_msg_ctx_t * msg_ctx);

AXIS2_EXTERN axis2_status_t AXIS2_CALL axis2_http_transport_utils_strdecode(
    const axutil_env_t * env,
    axis2_char_t * dest,
    axis2_char_t * src);

AXIS2_EXTERN int AXIS2_CALL axis2_http_transport_utils_hexit(
    axis2_char_t c);

AXIS2_EXTERN axis2_char_t *AXIS2_CALL
axis2_http_transport_utils_get_services_html(
    const axutil_env_t * env,
    axis2_conf_ctx_t * conf_ctx);

AXIS2_EXTERN axis2_char_t *AXIS2_CALL
axis2_http_transport_utils_get_services_static_wsdl(
    const axutil_env_t * env,
    axis2_conf_ctx_t * conf_ctx,
    axis2_char_t * request_url);

AXIS2_EXTERN axutil_string_t *AXIS2_CALL
axis2_http_transport_utils_get_charset_enc(
    const axutil_env_t * env,
    const axis2_char_t * content_type);

int AXIS2_CALL axis2_http_transport_utils_on_data_request(
    char *buffer,
    int size,
    void *ctx);

AXIS2_EXTERN axiom_soap_envelope_t *AXIS2_CALL
axis2_http_transport_utils_create_soap_msg(
    const axutil_env_t * env,
    axis2_msg_ctx_t * msg_ctx,
    const axis2_char_t * soap_ns_uri);

AXIS2_EXTERN axis2_char_t *AXIS2_CALL
axis2_http_transport_utils_get_value_from_content_type(
    const axutil_env_t * env,
    const axis2_char_t * content_type,
    const axis2_char_t * key);

AXIS2_EXTERN axis2_status_t AXIS2_CALL
axis2_http_transport_utils_dispatch_and_verify(
    const axutil_env_t * env,
    axis2_msg_ctx_t * msg_ctx);

AXIS2_EXTERN axiom_soap_envelope_t *AXIS2_CALL
axis2_http_transport_utils_handle_media_type_url_encoded(
    const axutil_env_t * env,
    axis2_msg_ctx_t * msg_ctx,
    axutil_hash_t * param_map,
    axis2_char_t * method);

static axis2_status_t
axis2_http_transport_utils_send_attachment_using_file(
    const axutil_env_t * env,
    axutil_http_chunked_stream_t *chunked_stream,
    FILE *fp,
    axis2_byte_t *buffer,
    int buffer_size);

static axis2_status_t
axis2_http_transport_utils_send_attachment_using_callback(
    const axutil_env_t * env,
    axutil_http_chunked_stream_t *chunked_stream,
    axiom_mtom_sending_callback_t *callback,
    void *handler,
    void *user_param);


/***************************** End of function headers ************************/

AXIS2_EXTERN axis2_status_t AXIS2_CALL
axis2_http_transport_utils_transport_out_init(axis2_http_transport_out_t *response, 
											const axutil_env_t *env)
{
	response->http_status_code_name = NULL;
	response->http_status_code = 0;
	response->msg_ctx = NULL;
	response->response_data = NULL;
	response->content_type = NULL;
	response->response_data_length = 0;
	response->content_language = NULL;
	response->output_headers = NULL;
	return AXIS2_SUCCESS;
}

AXIS2_EXTERN axis2_status_t AXIS2_CALL
axis2_http_transport_utils_transport_out_uninit(axis2_http_transport_out_t *response, 
											const axutil_env_t *env)
{	
	if (response->msg_ctx)
	{
		axis2_msg_ctx_free(response->msg_ctx, env);
	}
	return AXIS2_SUCCESS;
}

AXIS2_EXTERN axis2_status_t AXIS2_CALL
axis2_http_transport_utils_transport_in_init(axis2_http_transport_in_t *request, 
											const axutil_env_t *env)
{
	request->content_type = NULL;
	request->content_length = 0;
	request->msg_ctx = NULL;
	request->soap_action = NULL;
	request->request_uri = NULL;
	request->in_stream = NULL;
	request->remote_ip = NULL;
	request->svr_port = NULL;
	request->transfer_encoding = NULL;
	request->accept_header = NULL;
	request->accept_language_header = NULL;
	request->accept_charset_header = NULL;
	request->request_method = 0;
	request->out_transport_info = NULL;
	request->request_url_prefix = NULL;
	return AXIS2_SUCCESS;
}

AXIS2_EXTERN axis2_status_t AXIS2_CALL
axis2_http_transport_utils_transport_in_uninit(axis2_http_transport_in_t *request, 
											   const axutil_env_t *env)
{
	if (request->msg_ctx)
	{
		axis2_msg_ctx_reset_out_transport_info(request->msg_ctx, env);
		axis2_msg_ctx_free(request->msg_ctx, env);
	}
	return AXIS2_SUCCESS;
}

AXIS2_EXTERN axis2_status_t AXIS2_CALL
axis2_http_transport_utils_process_http_post_request(
    const axutil_env_t * env,
    axis2_msg_ctx_t * msg_ctx,
    axutil_stream_t * in_stream,
    axutil_stream_t * out_stream,
    const axis2_char_t * content_type,
    const int content_length,
    axutil_string_t * soap_action_header,
    const axis2_char_t * request_uri)
{
    axiom_soap_envelope_t *soap_envelope = NULL;
    axiom_soap_builder_t *soap_builder = NULL;
    axiom_stax_builder_t *om_builder = NULL;
    axis2_bool_t is_soap11 = AXIS2_FALSE;
    axiom_xml_reader_t *xml_reader = NULL;
    axutil_string_t *char_set_str = NULL;

    axis2_conf_ctx_t *conf_ctx = NULL;
    axis2_callback_info_t *callback_ctx = NULL;
    axis2_callback_info_t *mime_cb_ctx = NULL;
    axutil_hash_t *headers = NULL;
    axis2_engine_t *engine = NULL;
    axiom_soap_body_t *soap_body = NULL;
    axis2_status_t status = AXIS2_FAILURE;
    axutil_hash_t *binary_data_map = NULL;
    axis2_char_t *soap_body_str = NULL;
    axutil_stream_t *stream = NULL;
    axis2_bool_t do_rest = AXIS2_FALSE;
    axis2_bool_t run_as_get = AXIS2_FALSE;
    axis2_char_t *soap_action = NULL;
    unsigned int soap_action_len = 0;
    axutil_property_t *http_error_property = NULL;
    axiom_mime_parser_t *mime_parser = NULL;
    axis2_bool_t is_svc_callback = AXIS2_FALSE;

    AXIS2_PARAM_CHECK(env->error, msg_ctx, AXIS2_FAILURE);
    AXIS2_PARAM_CHECK(env->error, in_stream, AXIS2_FAILURE);
    AXIS2_PARAM_CHECK(env->error, out_stream, AXIS2_FAILURE);
    AXIS2_PARAM_CHECK(env->error, content_type, AXIS2_FAILURE);
    AXIS2_PARAM_CHECK(env->error, request_uri, AXIS2_FAILURE);

    conf_ctx = axis2_msg_ctx_get_conf_ctx(msg_ctx, env);

    callback_ctx = AXIS2_MALLOC(env->allocator, sizeof(axis2_callback_info_t));
    /* Note: the memory created above is freed in xml reader free function
       as this is passed on to the reader */
    callback_ctx->in_stream = in_stream;
    callback_ctx->env = env;
    callback_ctx->content_length = content_length;
    callback_ctx->unread_len = content_length;
    callback_ctx->chunked_stream = NULL;

    soap_action =
        (axis2_char_t *) axutil_string_get_buffer(soap_action_header, env);
    soap_action_len = axutil_string_get_length(soap_action_header, env);

    if (soap_action && (soap_action_len > 0))
    {
        /* remove leading and trailing " s */
        if (AXIS2_DOUBLE_QUOTE == soap_action[0])
        {
            memmove(soap_action, soap_action + sizeof(char),
                    soap_action_len - 1 + sizeof(char));
        }
        if (AXIS2_DOUBLE_QUOTE == soap_action[soap_action_len - 2])
        {
            soap_action[soap_action_len - 2] = AXIS2_ESC_NULL;
        }
    }else{
    /** soap action is null, check whether soap action is in content_type header */
        soap_action = axis2_http_transport_utils_get_value_from_content_type(env,
                content_type, AXIS2_ACTION);
    }


    headers = axis2_msg_ctx_get_transport_headers(msg_ctx, env);
    if (headers)
    {
        axis2_http_header_t *encoding_header = NULL;
        encoding_header = (axis2_http_header_t *) axutil_hash_get(
            headers,
            AXIS2_HTTP_HEADER_TRANSFER_ENCODING,
            AXIS2_HASH_KEY_STRING);

        if (encoding_header)
        {
            axis2_char_t *encoding_value = NULL;
            encoding_value = axis2_http_header_get_value(encoding_header, env);
            if (encoding_value && 
                0 == axutil_strcasecmp(encoding_value,
                                       AXIS2_HTTP_HEADER_TRANSFER_ENCODING_CHUNKED))
            {
                callback_ctx->chunked_stream =
                    axutil_http_chunked_stream_create(env, in_stream);

                if (!callback_ctx->chunked_stream)
                {
                    AXIS2_FREE(env->allocator, callback_ctx);
                    AXIS2_LOG_ERROR(env->log, AXIS2_LOG_SI, "Error occurred in"
                                    " creating in chunked stream.");
                    return AXIS2_FAILURE;
                }

                AXIS2_LOG_DEBUG(env->log, AXIS2_LOG_SI, "HTTP"
                                " stream chunked");
            }
        }
    }
    else
    {
        /* Encoding header is not available */
        /* check content encoding from msg ctx property */
        axis2_char_t *value = axis2_msg_ctx_get_transfer_encoding(msg_ctx, env);

        if (value && axutil_strstr(value, AXIS2_HTTP_HEADER_TRANSFER_ENCODING_CHUNKED))
        {
            /* In case Transfer encoding is set to message context, some streams strip chunking meta
			data, so chunked streams should not be created */
            
			callback_ctx->content_length = -1;
			callback_ctx->unread_len = -1;
            AXIS2_LOG_DEBUG(env->log, AXIS2_LOG_SI, "[chunked ] setting length to -1");
        }
    }

    /* when the message contains does not contain pure XML we can't send it 
     * directly to the parser, First we need to separate the SOAP part from
     * the attachment */
    
    if (strstr(content_type, AXIS2_HTTP_HEADER_ACCEPT_MULTIPART_RELATED))
    {
        /* get mime boundary */
        axis2_char_t *mime_boundary =
            axis2_http_transport_utils_get_value_from_content_type(
                env,
                content_type,
                AXIS2_HTTP_HEADER_CONTENT_TYPE_MIME_BOUNDARY);

        if (mime_boundary)
        {
            /*axiom_mime_parser_t *mime_parser = NULL;*/
            int soap_body_len = 0;
            axutil_param_t *buffer_size_param = NULL;
            axutil_param_t *max_buffers_param = NULL;
            axutil_param_t *attachment_dir_param = NULL;
            axutil_param_t *callback_name_param = NULL;
            axutil_param_t *enable_service_callback_param = NULL;
            axis2_char_t *value_size = NULL;
            axis2_char_t *value_num = NULL;
            axis2_char_t *value_dir = NULL;
            axis2_char_t *value_callback = NULL;
            axis2_char_t *value_enable_service_callback = NULL; 
            int size = 0;
            int num = 0;

            mime_parser = axiom_mime_parser_create(env);
            /* This is the size of the buffer we keep inside mime_parser
             * when parsing. */

            enable_service_callback_param = axis2_msg_ctx_get_parameter (msg_ctx,
                                                               env,
                                                               AXIS2_ENABLE_MTOM_SERVICE_CALLBACK);
            if(enable_service_callback_param)
            {
                value_enable_service_callback = (axis2_char_t *) axutil_param_get_value 
                    (enable_service_callback_param, env);
                if(value_enable_service_callback)
                {
                    if(!axutil_strcmp(value_enable_service_callback, AXIS2_VALUE_TRUE))
                    {
                        is_svc_callback = AXIS2_TRUE;        
                    }
                }    
            }


            buffer_size_param = axis2_msg_ctx_get_parameter (msg_ctx,
                                                               env,
                                                               AXIS2_MTOM_BUFFER_SIZE);
            if (buffer_size_param)
            {
                value_size =
                    (axis2_char_t *) axutil_param_get_value (buffer_size_param, env);
                if(value_size)
                {
                    size = atoi(value_size);
                    axiom_mime_parser_set_buffer_size(mime_parser, env, size);
                }
            }
            
            /* We create an array of buffers in order to conatin SOAP data inside
             * mime_parser. This is the number of sucj buffers */
            max_buffers_param = axis2_msg_ctx_get_parameter (msg_ctx,
                                                               env,
                                                               AXIS2_MTOM_MAX_BUFFERS);
            if (max_buffers_param)
            {
                value_num =
                    (axis2_char_t *) axutil_param_get_value (max_buffers_param, env);
                if(value_num)
                {
                    num = atoi(value_num);
                    axiom_mime_parser_set_max_buffers(mime_parser, env, num);
                }
            }
            /* If this paramter is there mime_parser will cached the attachment 
             * using to the directory for large attachments. */    

            callback_name_param = axis2_msg_ctx_get_parameter (msg_ctx,
                                                                   env,
                                                                   AXIS2_MTOM_CACHING_CALLBACK);
            if(callback_name_param)
            {
                value_callback =
                    (axis2_char_t *) axutil_param_get_value (callback_name_param, env);
                if(value_callback)
                {
                    axiom_mime_parser_set_caching_callback_name(mime_parser, env, value_callback);
                }
            }

            attachment_dir_param = axis2_msg_ctx_get_parameter (msg_ctx,
                                                                   env,
                                                                   AXIS2_ATTACHMENT_DIR);

            if(attachment_dir_param)
            {
                value_dir =
                    (axis2_char_t *) axutil_param_get_value (attachment_dir_param, env);
                if(value_dir)
                {
                    axiom_mime_parser_set_attachment_dir(mime_parser, env, value_dir);
                }
            }

            axiom_mime_parser_set_mime_boundary(mime_parser, env, mime_boundary);

            if(axiom_mime_parser_parse_for_soap(mime_parser, env, 
                    axis2_http_transport_utils_on_data_request, 
                    (void *) callback_ctx,
                    mime_boundary) == AXIS2_FAILURE)
            {
                return AXIS2_FAILURE;
            }
            
            if(!is_svc_callback)
            {
                binary_data_map = 
                    axiom_mime_parser_parse_for_attachments(mime_parser, env,
                                        axis2_http_transport_utils_on_data_request,
                                        (void *) callback_ctx,
                                        mime_boundary,
                                        NULL);
                if(!binary_data_map)
                {
                    return AXIS2_FAILURE;
                }
            }
            soap_body_len =
                axiom_mime_parser_get_soap_body_len(mime_parser, env);
            soap_body_str =
                axiom_mime_parser_get_soap_body_str(mime_parser, env);

            if(!is_svc_callback)
            {
                if(callback_ctx->chunked_stream)
                {
                    axutil_http_chunked_stream_free(callback_ctx->chunked_stream, env);
                    callback_ctx->chunked_stream = NULL;
                }
            }    
            else
            {
                mime_cb_ctx = AXIS2_MALLOC(env->allocator, sizeof(axis2_callback_info_t)); 
                if(mime_cb_ctx)
                {
                    mime_cb_ctx->in_stream = callback_ctx->in_stream;
                    mime_cb_ctx->env = callback_ctx->env;
                    mime_cb_ctx->content_length = callback_ctx->content_length;
                    mime_cb_ctx->unread_len = callback_ctx->unread_len;
                    mime_cb_ctx->chunked_stream = callback_ctx->chunked_stream;
                }
            }

            stream = axutil_stream_create_basic(env);
            if (stream)
            {
                axutil_stream_write(stream, env, soap_body_str, soap_body_len);
                callback_ctx->in_stream = stream;
                callback_ctx->chunked_stream = NULL;
                callback_ctx->content_length = soap_body_len;
                callback_ctx->unread_len = soap_body_len;
            }
            /*axiom_mime_parser_free(mime_parser, env);
            mime_parser = NULL;*/

            AXIS2_FREE(env->allocator, mime_boundary);
        }
        /*AXIS2_FREE(env->allocator, mime_boundary);*/
    }

    if(soap_action_header)
    {
        axis2_msg_ctx_set_soap_action(msg_ctx, env, soap_action_header);

    }else if (soap_action)
    {
        axutil_string_t *soap_action_str = NULL;
        soap_action_str = axutil_string_create(env,soap_action);
        axis2_msg_ctx_set_soap_action(msg_ctx, env, soap_action_str);
        axutil_string_free(soap_action_str, env);
    }
    axis2_msg_ctx_set_to(msg_ctx, env, axis2_endpoint_ref_create(env,
                                                                 request_uri));

    axis2_msg_ctx_set_server_side(msg_ctx, env, AXIS2_TRUE);

    char_set_str =
        axis2_http_transport_utils_get_charset_enc(env, content_type);

    axis2_msg_ctx_set_charset_encoding(msg_ctx, env, char_set_str);

#ifdef AXIS2_JSON_ENABLED
    if (strstr(content_type, AXIS2_HTTP_HEADER_ACCEPT_JSON))
    {
        axis2_json_reader_t* json_reader = NULL;
        axiom_soap_body_t* soap_body = NULL;
        axiom_node_t* root_node = NULL;
        axiom_node_t* headers_node = NULL;

        json_reader = axis2_json_reader_create_for_stream(env, in_stream);
        if (!json_reader)
        {
            return AXIS2_FAILURE;
        }

        status = axis2_json_reader_read(json_reader, env);
        if (status != AXIS2_SUCCESS)
        {
            axis2_json_reader_free(json_reader, env);
            return status;
        }

        root_node = axis2_json_reader_get_root_node(json_reader, env);
        if (!root_node)
        {
            axis2_json_reader_free(json_reader, env);
            return AXIS2_FAILURE;
        }

        headers_node = axis2_json_reader_get_headers_node(json_reader, env);

        axis2_json_reader_free(json_reader, env);

        soap_envelope =
                axiom_soap_envelope_create_default_soap_envelope(env, AXIOM_SOAP11);
        soap_body = axiom_soap_envelope_get_body(soap_envelope, env);
        axiom_soap_body_add_child(soap_body, env, root_node);

        if (headers_node)
        {
            axiom_element_t* elem = NULL;
            axiom_element_t* base_elem = NULL;
            const axis2_char_t* name = NULL;
            const axis2_char_t* value = NULL;
            axiom_node_t* node = NULL;
            axiom_node_t* base_node = NULL;
            axiom_soap_header_t* soap_header =
                    axiom_soap_envelope_get_header(soap_envelope, env);
            axiom_soap_header_block_t* header_block = NULL;
            axiom_namespace_t* ns = NULL;

            for (node = axiom_node_get_first_child(headers_node, env);
                 node; node = axiom_node_get_next_sibling(node, env))
            {
                if (axiom_node_get_node_type(node, env) != AXIOM_ELEMENT)
                    continue;

                elem = (axiom_element_t*)axiom_node_get_data_element(node, env);
                if (!elem)
                    continue;

                name = axiom_element_get_localname(elem, env);
                if (!name)
                    continue;

                value = axiom_element_get_text(elem, env, node);

                ns = axiom_namespace_create(env, "urn:json", "s");

                header_block = axiom_soap_header_add_header_block(soap_header, env,
                                                                name, ns);

                axiom_namespace_free(ns, env);

                if (value)
                {
                    base_node = axiom_soap_header_block_get_base_node(header_block, env);
                    base_elem = (axiom_element_t*)axiom_node_get_data_element(base_node, env);

                    axiom_element_set_text(base_elem, env, value, base_node);
                }
            }

            axiom_node_free_tree(headers_node, env);
        }

        axis2_msg_ctx_set_doing_json(msg_ctx, env, AXIS2_TRUE);
        axis2_msg_ctx_set_doing_rest(msg_ctx, env, AXIS2_TRUE);
        axis2_msg_ctx_set_rest_http_method(msg_ctx, env, AXIS2_HTTP_POST);
    }
    else
    {
#endif
    xml_reader =
        axiom_xml_reader_create_for_io(env,
                                       axis2_http_transport_utils_on_data_request,
                                       NULL, (void *) callback_ctx,
                                       axutil_string_get_buffer(char_set_str,
                                                                env));
    if (!xml_reader)
    {
        return AXIS2_FAILURE;
    }

    om_builder = axiom_stax_builder_create(env, xml_reader);
    if (!om_builder)
    {
        axiom_xml_reader_free(xml_reader, env);
        xml_reader = NULL;
        return AXIS2_FAILURE;
    }

    if (strstr(content_type, AXIS2_HTTP_HEADER_ACCEPT_APPL_SOAP))
    {
        is_soap11 = AXIS2_FALSE;
        soap_builder = axiom_soap_builder_create(env, om_builder,
                                                 AXIOM_SOAP12_SOAP_ENVELOPE_NAMESPACE_URI);
        if (!soap_builder)
        {
            /* We should not be freeing om_builder here as it is done by
               axiom_soap_builder_create in case of error - Samisa */
            om_builder = NULL;
            xml_reader = NULL;
            axis2_msg_ctx_set_is_soap_11(msg_ctx, env, is_soap11);
            return AXIS2_FAILURE;
        }

        soap_envelope = axiom_soap_builder_get_soap_envelope(soap_builder, env);
        if (!soap_envelope)
        {
            axiom_stax_builder_free(om_builder, env);
            om_builder = NULL;
            xml_reader = NULL;
            axiom_soap_builder_free(soap_builder, env);
            soap_builder = NULL;
            axis2_msg_ctx_set_is_soap_11(msg_ctx, env, is_soap11);
            return AXIS2_FAILURE;
        }
    }
    else if (strstr(content_type, AXIS2_HTTP_HEADER_ACCEPT_TEXT_XML))
    {
        is_soap11 = AXIS2_TRUE;
        if (soap_action_header)
        {
            soap_builder = axiom_soap_builder_create(env, om_builder,
                                                     AXIOM_SOAP11_SOAP_ENVELOPE_NAMESPACE_URI);
            if (!soap_builder)
            {
                /* We should not be freeing om_builder here as it is done by
                   axiom_soap_builder_create in case of error - Samisa */
                om_builder = NULL;
                xml_reader = NULL;
                axis2_msg_ctx_set_is_soap_11(msg_ctx, env, is_soap11);
                return AXIS2_FAILURE;
            }
            soap_envelope =
                axiom_soap_builder_get_soap_envelope(soap_builder, env);
            if (!soap_envelope)
            {
                axiom_soap_builder_free(soap_builder, env);
                om_builder = NULL;
                xml_reader = NULL;
                soap_builder = NULL;
                axis2_msg_ctx_set_is_soap_11(msg_ctx, env, is_soap11);
                return AXIS2_FAILURE;
            }
        }
        else
        {
            /* REST support */
            do_rest = AXIS2_TRUE;
        }
    }

    else if (strstr
             (content_type, AXIS2_HTTP_HEADER_ACCEPT_X_WWW_FORM_URLENCODED))
    {
        /* REST support */
        do_rest = AXIS2_TRUE;
        run_as_get = AXIS2_TRUE;
    }
    else
    {
        http_error_property = axutil_property_create(env);
        axutil_property_set_value(http_error_property, env,
                                  AXIS2_HTTP_UNSUPPORTED_MEDIA_TYPE);
        axis2_msg_ctx_set_property(msg_ctx, env, AXIS2_HTTP_TRANSPORT_ERROR,
                                   http_error_property);
    }

    if(soap_builder)
    {
        if(mime_parser)
        {
            axiom_soap_builder_set_mime_parser(soap_builder, env, mime_parser);
            if(mime_cb_ctx)
            {
                axiom_soap_builder_set_callback_ctx(soap_builder, env, mime_cb_ctx);
                axiom_soap_builder_set_callback_function(soap_builder, env,
                    axis2_http_transport_utils_on_data_request);
            }
            else if(is_svc_callback)
            {
                return AXIS2_FAILURE;
            }
        }
    }
#ifdef AXIS2_JSON_ENABLED
    }
#endif

    if (do_rest)
    {
        /* REST support */
        axutil_param_t *rest_param =
            axis2_msg_ctx_get_parameter(msg_ctx, env, AXIS2_ENABLE_REST);
        if (rest_param &&
            0 == axutil_strcmp(AXIS2_VALUE_TRUE,
                               axutil_param_get_value(rest_param, env)))
        {
            axiom_soap_body_t *def_body = NULL;
            axiom_document_t *om_doc = NULL;
            axiom_node_t *root_node = NULL;
            if (!run_as_get)
            {
                soap_envelope = axiom_soap_envelope_create_default_soap_envelope
                    (env, AXIOM_SOAP11);
                def_body = axiom_soap_envelope_get_body(soap_envelope, env);
                om_doc = axiom_stax_builder_get_document(om_builder, env);
                root_node = axiom_document_build_all(om_doc, env);
                axiom_soap_body_add_child(def_body, env, root_node);
            }
            axis2_msg_ctx_set_doing_rest(msg_ctx, env, AXIS2_TRUE);
            axis2_msg_ctx_set_rest_http_method(msg_ctx, env, AXIS2_HTTP_POST);
			axis2_msg_ctx_set_soap_envelope(msg_ctx, env, soap_envelope);
        }
        else
        {
            return AXIS2_FAILURE;
        }
        if (AXIS2_SUCCESS != axis2_http_transport_utils_dispatch_and_verify(env,
                                                                            msg_ctx))
        {
            return AXIS2_FAILURE;
        }
    }

    if (run_as_get)
    {
        axis2_char_t *buffer = NULL;
        axis2_char_t *new_url = NULL;
        buffer = AXIS2_MALLOC(env->allocator, sizeof(axis2_char_t) * (content_length + 1));
        if (!buffer)
        {
            return AXIS2_FAILURE;
        }
        axis2_http_transport_utils_on_data_request(buffer, content_length + 1, (void *) callback_ctx);
        
        new_url = AXIS2_MALLOC(env->allocator, sizeof(axis2_char_t) * 
            ((int)(strlen(request_uri) + strlen(buffer)) + 2));
        if (!new_url)
        {
            return AXIS2_FAILURE;
        }
        sprintf(new_url, "%s?%s", request_uri, buffer);
        AXIS2_FREE(env->allocator, buffer);

        soap_envelope =
            axis2_http_transport_utils_handle_media_type_url_encoded(env, msg_ctx,
            axis2_http_transport_utils_get_request_params(env, new_url), AXIS2_HTTP_POST);
    }

    if (binary_data_map)
    {
        axiom_soap_builder_set_mime_body_parts(soap_builder, env,
                                               binary_data_map);
    }

    axis2_msg_ctx_set_soap_envelope(msg_ctx, env, soap_envelope);

    engine = axis2_engine_create(env, conf_ctx);

    if (!soap_envelope)
        return AXIS2_FAILURE;

    soap_body = axiom_soap_envelope_get_body(soap_envelope, env);

    if (!soap_body)
        return AXIS2_FAILURE;

    if(!is_svc_callback)
    {
        if (AXIS2_TRUE == axiom_soap_body_has_fault(soap_body, env))
        {
            status = axis2_engine_receive_fault(engine, env, msg_ctx);
        }
        else
        {
            status = axis2_engine_receive(engine, env, msg_ctx);
        }
    }
    else
    {
        status = axis2_engine_receive(engine, env, msg_ctx);
    }

    if (!axis2_msg_ctx_get_soap_envelope(msg_ctx, env) &&
        AXIS2_FALSE == is_soap11)
    {
        axiom_soap_envelope_t *def_envelope =
            axiom_soap_envelope_create_default_soap_envelope(env,
                                                             AXIOM_SOAP12);
        axis2_msg_ctx_set_soap_envelope(msg_ctx, env, def_envelope);
    }

    if (engine)
    {
        axis2_engine_free(engine, env);
    }

    if (soap_body_str)
    {
        AXIS2_FREE(env->allocator, soap_body_str);
    }

    if (stream)
    {
        axutil_stream_free(stream, env);
    }

    if (char_set_str)
    {
        axutil_string_free(char_set_str, env);
    }
    if (!soap_builder && om_builder)
    {
        axiom_stax_builder_free_self(om_builder, env);
        om_builder = NULL;
    }
    if(!axutil_string_get_buffer(soap_action_header, env) && soap_action)
    {
        AXIS2_FREE(env->allocator, soap_action);
        soap_action = NULL;
    }
#ifdef AXIS2_JSON_ENABLED
    if (axis2_msg_ctx_get_doing_json(msg_ctx, env))
    {
        /* xml reader is not created in JSON mode, so freeing callback_ctx here */
        AXIS2_FREE(env->allocator, callback_ctx);
    }
#endif
    return status;
}

AXIS2_EXTERN axis2_status_t AXIS2_CALL
axis2_http_transport_utils_process_http_put_request(
    const axutil_env_t * env,
    axis2_msg_ctx_t * msg_ctx,
    axutil_stream_t * in_stream,
    axutil_stream_t * out_stream,
    const axis2_char_t * content_type,
    const int content_length,
    axutil_string_t * soap_action_header,
    const axis2_char_t * request_uri)
{
    axiom_soap_envelope_t *soap_envelope = NULL;
    axiom_soap_builder_t *soap_builder = NULL;
    axiom_stax_builder_t *om_builder = NULL;
    axis2_bool_t is_soap11 = AXIS2_FALSE;
    axiom_xml_reader_t *xml_reader = NULL;
    axutil_string_t *char_set_str = NULL;

    axis2_conf_ctx_t *conf_ctx = NULL;
    axis2_callback_info_t *callback_ctx;
    axutil_hash_t *headers = NULL;
    axis2_engine_t *engine = NULL;
    axiom_soap_body_t *soap_body = NULL;
    axis2_status_t status = AXIS2_FAILURE;
    axutil_hash_t *binary_data_map = NULL;
    axis2_char_t *soap_body_str = NULL;
    axutil_stream_t *stream = NULL;
    axis2_bool_t do_rest = AXIS2_FALSE;
    axis2_bool_t run_as_get = AXIS2_FALSE;
    axutil_property_t *http_error_property = NULL;

    AXIS2_PARAM_CHECK(env->error, msg_ctx, AXIS2_FAILURE);
    AXIS2_PARAM_CHECK(env->error, in_stream, AXIS2_FAILURE);
    AXIS2_PARAM_CHECK(env->error, out_stream, AXIS2_FAILURE);
    AXIS2_PARAM_CHECK(env->error, content_type, AXIS2_FAILURE);
    AXIS2_PARAM_CHECK(env->error, request_uri, AXIS2_FAILURE);

    conf_ctx = axis2_msg_ctx_get_conf_ctx(msg_ctx, env);

    callback_ctx = AXIS2_MALLOC(env->allocator, sizeof(axis2_callback_info_t));
    /* Note: the memory created above is freed in xml reader free function
       as this is passed on to the reader */
    callback_ctx->in_stream = in_stream;
    callback_ctx->env = env;
    callback_ctx->content_length = content_length;
    callback_ctx->unread_len = content_length;
    callback_ctx->chunked_stream = NULL;


    headers = axis2_msg_ctx_get_transport_headers(msg_ctx, env);
    if (headers)
    {
        axis2_http_header_t *encoding_header = NULL;
        encoding_header = (axis2_http_header_t *) axutil_hash_get(
            headers,
            AXIS2_HTTP_HEADER_TRANSFER_ENCODING,
            AXIS2_HASH_KEY_STRING);

        if (encoding_header)
        {
            axis2_char_t *encoding_value = NULL;
            encoding_value = axis2_http_header_get_value(encoding_header, env);
            if (encoding_value && 
                0 == axutil_strcasecmp(encoding_value,
                                       AXIS2_HTTP_HEADER_TRANSFER_ENCODING_CHUNKED))
            {
                callback_ctx->chunked_stream =
                    axutil_http_chunked_stream_create(env, in_stream);
                if (!callback_ctx->chunked_stream)
                {
                    AXIS2_LOG_ERROR(env->log, AXIS2_LOG_SI, "Error occured in"
                                    " creating in chunked stream.");
                    return AXIS2_FAILURE;
                }
                AXIS2_LOG_DEBUG(env->log, AXIS2_LOG_SI, "HTTP"
                                " stream chunked");
            }
        }
    }
    else
    {
        /* check content encoding from msg ctx property */
        axis2_char_t *value = axis2_msg_ctx_get_transfer_encoding(msg_ctx, env);

        if (value &&
            axutil_strstr(value, AXIS2_HTTP_HEADER_TRANSFER_ENCODING_CHUNKED))
        {
            /* this is an UGLY hack to get some of the transports working 
               e.g. PHP transport where it strips the chunking info in case of chunking 
               and also gives out a content lenght of 0.
               We need to fix the transport design to fix sutuations like this.
             */
            callback_ctx->content_length = AXIS2_CHUNKED_CONTENT_LENGTH;
            callback_ctx->unread_len = callback_ctx->content_length;
        }
    }

    if (strstr(content_type, AXIS2_HTTP_HEADER_ACCEPT_MULTIPART_RELATED))
    {
        /* get mime boundry */
        axis2_char_t *mime_boundary =
            axis2_http_transport_utils_get_value_from_content_type(
                env,
                content_type,
                AXIS2_HTTP_HEADER_CONTENT_TYPE_MIME_BOUNDARY);

        if (mime_boundary)
        {
            axiom_mime_parser_t *mime_parser = NULL;
            int soap_body_len = 0;
            axutil_param_t *buffer_size_param = NULL;
            axutil_param_t *max_buffers_param = NULL;
            axutil_param_t *attachment_dir_param = NULL;
            axutil_param_t *callback_name_param = NULL;
            axis2_char_t *value_size = NULL;
            axis2_char_t *value_num = NULL;
            axis2_char_t *value_dir = NULL;
            axis2_char_t *value_callback = NULL;
            int size = 0;
            int num = 0;

            mime_parser = axiom_mime_parser_create(env);

            buffer_size_param = 
                axis2_msg_ctx_get_parameter (msg_ctx,
                                             env,
                                             AXIS2_MTOM_BUFFER_SIZE);
            if (buffer_size_param)
            {
                value_size =
                    (axis2_char_t *) axutil_param_get_value (buffer_size_param, env);
                if(value_size)
                {
                    size = atoi(value_size);
                    axiom_mime_parser_set_buffer_size(mime_parser, env, size);
                }
            }

            max_buffers_param = axis2_msg_ctx_get_parameter (msg_ctx,
                                                               env,
                                                               AXIS2_MTOM_MAX_BUFFERS);
            if (max_buffers_param)
            {
                value_num =
                    (axis2_char_t *) axutil_param_get_value (max_buffers_param, env);
                if(value_num)
                {
                    num = atoi(value_num);
                    axiom_mime_parser_set_max_buffers(mime_parser, env, num);
                }
            }

            callback_name_param = axis2_msg_ctx_get_parameter (msg_ctx,
                                                                   env,
                                                                   AXIS2_MTOM_CACHING_CALLBACK);
            if(callback_name_param)
            {
                value_callback =
                    (axis2_char_t *) axutil_param_get_value (callback_name_param, env);
                if(value_callback)
                {
                    axiom_mime_parser_set_caching_callback_name(mime_parser, env, value_callback);
                }
            }

   
            attachment_dir_param = axis2_msg_ctx_get_parameter (msg_ctx,
                                                                   env,
                                                                   AXIS2_ATTACHMENT_DIR);

            if(attachment_dir_param)
            {
                value_dir =
                    (axis2_char_t *) axutil_param_get_value (attachment_dir_param, env);
                if(value_dir)
                {
                    axiom_mime_parser_set_attachment_dir(mime_parser, env, value_dir);
                }
            }


            if (mime_parser)
            {
                /*binary_data_map = 
                    axiom_mime_parser_parse(mime_parser, env,
                                            axis2_http_transport_utils_on_data_request,
                                            (void *) callback_ctx,
                                            mime_boundary);*/
                if (!binary_data_map)
                {
                    return AXIS2_FAILURE;
                }
                soap_body_len =
                    axiom_mime_parser_get_soap_body_len(mime_parser, env);
                soap_body_str =
                    axiom_mime_parser_get_soap_body_str(mime_parser, env);
            }

            stream = axutil_stream_create_basic(env);
            if (stream)
            {
                axutil_stream_write(stream, env, soap_body_str, soap_body_len);
                callback_ctx->in_stream = stream;
                callback_ctx->chunked_stream = NULL;
                callback_ctx->content_length = soap_body_len;
                callback_ctx->unread_len = soap_body_len;
            }
            axiom_mime_parser_free(mime_parser, env);
            mime_parser = NULL;
        }
        AXIS2_FREE(env->allocator, mime_boundary);
    }

    axis2_msg_ctx_set_to(msg_ctx, env, axis2_endpoint_ref_create(env,
                                                                 request_uri));

    axis2_msg_ctx_set_server_side(msg_ctx, env, AXIS2_TRUE);

    char_set_str =
        axis2_http_transport_utils_get_charset_enc(env, content_type);

#ifdef AXIS2_JSON_ENABLED
    if (strstr(content_type, AXIS2_HTTP_HEADER_ACCEPT_JSON))
    {
        axis2_json_reader_t* json_reader = NULL;
        axiom_soap_body_t* soap_body = NULL;
        axiom_node_t* root_node = NULL;
        axiom_node_t* headers_node = NULL;

        json_reader = axis2_json_reader_create_for_stream(env, in_stream);
        if (!json_reader)
        {
            return AXIS2_FAILURE;
        }

        status = axis2_json_reader_read(json_reader, env);
        if (status != AXIS2_SUCCESS)
        {
            axis2_json_reader_free(json_reader, env);
            return status;
        }

        root_node = axis2_json_reader_get_root_node(json_reader, env);
        if (!root_node)
        {
            axis2_json_reader_free(json_reader, env);
            return AXIS2_FAILURE;
        }

        headers_node = axis2_json_reader_get_headers_node(json_reader, env);

        axis2_json_reader_free(json_reader, env);

        soap_envelope =
                axiom_soap_envelope_create_default_soap_envelope(env, AXIOM_SOAP11);
        soap_body = axiom_soap_envelope_get_body(soap_envelope, env);
        axiom_soap_body_add_child(soap_body, env, root_node);

        if (headers_node)
        {
            axiom_element_t* elem = NULL;
            axiom_element_t* base_elem = NULL;
            const axis2_char_t* name = NULL;
            const axis2_char_t* value = NULL;
            axiom_node_t* node = NULL;
            axiom_node_t* base_node = NULL;
            axiom_soap_header_t* soap_header =
                    axiom_soap_envelope_get_header(soap_envelope, env);
            axiom_soap_header_block_t* header_block = NULL;
            axiom_namespace_t* ns = NULL;

            for (node = axiom_node_get_first_child(headers_node, env);
                 node; node = axiom_node_get_next_sibling(node, env))
            {
                if (axiom_node_get_node_type(node, env) != AXIOM_ELEMENT)
                    continue;

                elem = (axiom_element_t*)axiom_node_get_data_element(node, env);
                if (!elem)
                    continue;

                name = axiom_element_get_localname(elem, env);
                if (!name)
                    continue;

                value = axiom_element_get_text(elem, env, node);

                ns = axiom_namespace_create(env, "urn:json", "s");

                header_block = axiom_soap_header_add_header_block(soap_header, env,
                                                                name, ns);

                axiom_namespace_free(ns, env);

                if (value)
                {
                    base_node = axiom_soap_header_block_get_base_node(header_block, env);
                    base_elem = (axiom_element_t*)axiom_node_get_data_element(base_node, env);

                    axiom_element_set_text(base_elem, env, value, base_node);
                }
            }

            axiom_node_free_tree(headers_node, env);
        }

        axis2_msg_ctx_set_doing_json(msg_ctx, env, AXIS2_TRUE);
        axis2_msg_ctx_set_doing_rest(msg_ctx, env, AXIS2_TRUE);
        axis2_msg_ctx_set_rest_http_method(msg_ctx, env, AXIS2_HTTP_PUT);
    }
    else
    {
#endif
    xml_reader =
        axiom_xml_reader_create_for_io(env,
                                       axis2_http_transport_utils_on_data_request,
                                       NULL, (void *) callback_ctx,
                                       axutil_string_get_buffer(char_set_str,
                                                                env));

    if (!xml_reader)
    {
        return AXIS2_FAILURE;
    }

    axis2_msg_ctx_set_charset_encoding(msg_ctx, env, char_set_str);

    om_builder = axiom_stax_builder_create(env, xml_reader);
    if (!om_builder)
    {
        axiom_xml_reader_free(xml_reader, env);
        xml_reader = NULL;
        return AXIS2_FAILURE;
    }

    if (strstr(content_type, AXIS2_HTTP_HEADER_ACCEPT_APPL_SOAP))
    {
        is_soap11 = AXIS2_FALSE;
        soap_builder = axiom_soap_builder_create(env, om_builder,
                                                 AXIOM_SOAP12_SOAP_ENVELOPE_NAMESPACE_URI);
        if (!soap_builder)
        {
            /* We should not be freeing om_builder here as it is done by
               axiom_soap_builder_create in case of error - Samisa */
            om_builder = NULL;
            xml_reader = NULL;
            axis2_msg_ctx_set_is_soap_11(msg_ctx, env, is_soap11);
            return AXIS2_FAILURE;
        }

        soap_envelope = axiom_soap_builder_get_soap_envelope(soap_builder, env);
        if (!soap_envelope)
        {
            axiom_stax_builder_free(om_builder, env);
            om_builder = NULL;
            xml_reader = NULL;
            axiom_soap_builder_free(soap_builder, env);
            soap_builder = NULL;
            axis2_msg_ctx_set_is_soap_11(msg_ctx, env, is_soap11);
            return AXIS2_FAILURE;
        }
    }
    else if (strstr(content_type, AXIS2_HTTP_HEADER_ACCEPT_TEXT_XML))
    {
        do_rest = AXIS2_TRUE;
        if (soap_action_header)
        {
            return AXIS2_FAILURE;
        }
        else
        {
            /* REST support */
            do_rest = AXIS2_TRUE;
        }
    }
    else if (strstr
             (content_type, AXIS2_HTTP_HEADER_ACCEPT_X_WWW_FORM_URLENCODED))
    {
        /* REST support */
        do_rest = AXIS2_TRUE;
        run_as_get = AXIS2_TRUE;
    }
    else
    {
        http_error_property = axutil_property_create(env);
        axutil_property_set_value(http_error_property, env,
                                  AXIS2_HTTP_UNSUPPORTED_MEDIA_TYPE);
        axis2_msg_ctx_set_property(msg_ctx, env, AXIS2_HTTP_TRANSPORT_ERROR,
                                   http_error_property);
    }
#ifdef AXIS2_JSON_ENABLED
    }
#endif

    if (do_rest)
    {
        /* REST support */
        axutil_param_t *rest_param =
            axis2_msg_ctx_get_parameter(msg_ctx, env, AXIS2_ENABLE_REST);
        if (rest_param &&
            0 == axutil_strcmp(AXIS2_VALUE_TRUE,
                               axutil_param_get_value(rest_param, env)))
        {
            axiom_soap_body_t *def_body = NULL;
            axiom_document_t *om_doc = NULL;
            axiom_node_t *root_node = NULL;
            if (!run_as_get)
            {
                soap_envelope = axiom_soap_envelope_create_default_soap_envelope
                    (env, AXIOM_SOAP11);
                def_body = axiom_soap_envelope_get_body(soap_envelope, env);
                om_doc = axiom_stax_builder_get_document(om_builder, env);
                root_node = axiom_document_build_all(om_doc, env);
                axiom_soap_body_add_child(def_body, env, root_node);
            }
            axis2_msg_ctx_set_doing_rest(msg_ctx, env, AXIS2_TRUE);
            axis2_msg_ctx_set_rest_http_method(msg_ctx, env, AXIS2_HTTP_PUT);
			axis2_msg_ctx_set_soap_envelope(msg_ctx, env, soap_envelope);
        }
        else
        {
            return AXIS2_FAILURE;
        }
        if (AXIS2_SUCCESS != axis2_http_transport_utils_dispatch_and_verify(env,
                                                                            msg_ctx))
        {
            return AXIS2_FAILURE;
        }
    }

    if (run_as_get)
    {
        axis2_char_t *buffer = NULL;
        axis2_char_t *new_url = NULL;
        buffer = AXIS2_MALLOC(env->allocator, sizeof(axis2_char_t) * (content_length + 1));
        if (!buffer)
        {
            return AXIS2_FAILURE;
        }
        axis2_http_transport_utils_on_data_request(buffer, content_length, (void *) callback_ctx);
        
        new_url = AXIS2_MALLOC(env->allocator, sizeof(axis2_char_t) * 
            ((int)(strlen(request_uri) + strlen(buffer)) + 2));
        if (!new_url)
        {
            return AXIS2_FAILURE;
        }
        sprintf(new_url, "%s?%s", request_uri, buffer);
        AXIS2_FREE(env->allocator, buffer);

        soap_envelope =
            axis2_http_transport_utils_handle_media_type_url_encoded(env, msg_ctx,
            axis2_http_transport_utils_get_request_params(env, new_url), AXIS2_HTTP_POST);
    }

    if (binary_data_map)
    {
        axiom_soap_builder_set_mime_body_parts(soap_builder, env,
                                               binary_data_map);
    }

    axis2_msg_ctx_set_soap_envelope(msg_ctx, env, soap_envelope);

    engine = axis2_engine_create(env, conf_ctx);

    if (!soap_envelope)
        return AXIS2_FAILURE;

    soap_body = axiom_soap_envelope_get_body(soap_envelope, env);

    if (!soap_body)
        return AXIS2_FAILURE;

    if (AXIS2_TRUE == axiom_soap_body_has_fault(soap_body, env))
    {
        status = axis2_engine_receive_fault(engine, env, msg_ctx);
    }
    else
    {
        status = axis2_engine_receive(engine, env, msg_ctx);
    }
    if (!axis2_msg_ctx_get_soap_envelope(msg_ctx, env) &&
        AXIS2_FALSE == is_soap11)
    {
        axiom_soap_envelope_t *def_envelope =
            axiom_soap_envelope_create_default_soap_envelope(env,
                                                             AXIOM_SOAP12);
        axis2_msg_ctx_set_soap_envelope(msg_ctx, env, def_envelope);
    }

    if (engine)
    {
        axis2_engine_free(engine, env);
    }

    if (soap_body_str)
    {
        AXIS2_FREE(env->allocator, soap_body_str);
    }

    if (stream)
    {
        axutil_stream_free(stream, env);
    }

    if (char_set_str)
    {
        axutil_string_free(char_set_str, env);
    }
    if (!soap_builder && om_builder)
    {
        axiom_stax_builder_free_self(om_builder, env);
        om_builder = NULL;
    }
#ifdef AXIS2_JSON_ENABLED
    if (axis2_msg_ctx_get_doing_json(msg_ctx, env))
    {
        /* xml reader is not created in JSON mode, so freeing callback_ctx here */
        AXIS2_FREE(env->allocator, callback_ctx);
    }
#endif
    return status;
}


AXIS2_EXTERN axis2_bool_t AXIS2_CALL
axis2_http_transport_utils_process_http_head_request(
    const axutil_env_t * env,
    axis2_msg_ctx_t * msg_ctx,
    axutil_stream_t * in_stream,
    axutil_stream_t * out_stream,
    const axis2_char_t * content_type,
    axutil_string_t * soap_action_header,
    const axis2_char_t * request_uri,
    axis2_conf_ctx_t * conf_ctx,
    axutil_hash_t * request_params)
{
    axiom_soap_envelope_t *soap_envelope = NULL;
    axis2_engine_t *engine = NULL;
    axis2_bool_t do_rest = AXIS2_TRUE;

    AXIS2_PARAM_CHECK(env->error, msg_ctx, AXIS2_FALSE);
    AXIS2_PARAM_CHECK(env->error, in_stream, AXIS2_FALSE);
    AXIS2_PARAM_CHECK(env->error, out_stream, AXIS2_FALSE);

    AXIS2_PARAM_CHECK(env->error, request_uri, AXIS2_FALSE);

    axis2_msg_ctx_set_to(msg_ctx, env, axis2_endpoint_ref_create(env,
                                                                 request_uri));
    axis2_msg_ctx_set_server_side(msg_ctx, env, AXIS2_TRUE);

#ifdef AXIS2_JSON_ENABLED
    if (strstr(content_type, AXIS2_HTTP_HEADER_ACCEPT_JSON))
    {
        axis2_msg_ctx_set_doing_json(msg_ctx, env, AXIS2_TRUE);
    }
    else
#endif
    if (strstr(content_type, AXIS2_HTTP_HEADER_ACCEPT_TEXT_XML))
    {
        if (soap_action_header)
        {
            do_rest = AXIS2_FALSE;
        }
    }
    else if (strstr
        (content_type, AXIS2_HTTP_HEADER_ACCEPT_APPL_SOAP))
    {
        do_rest = AXIS2_FALSE;
    }

    if (do_rest)
    {
        axis2_msg_ctx_set_doing_rest(msg_ctx, env, AXIS2_TRUE);
        axis2_msg_ctx_set_rest_http_method(msg_ctx, env, AXIS2_HTTP_HEAD);
    }
    else
    {
        axis2_msg_ctx_set_doing_rest(msg_ctx, env, AXIS2_FALSE);
    }
    if (AXIS2_SUCCESS != axis2_http_transport_utils_dispatch_and_verify(env, msg_ctx))
    {
		return AXIS2_FALSE;
    }

    soap_envelope = axis2_http_transport_utils_handle_media_type_url_encoded(env, msg_ctx, 
   		 request_params, AXIS2_HTTP_HEAD);
    if (!soap_envelope)
    {
        return AXIS2_FALSE;
    }
    axis2_msg_ctx_set_soap_envelope(msg_ctx, env, soap_envelope);
    engine = axis2_engine_create(env, conf_ctx);
    axis2_engine_receive(engine, env, msg_ctx);
    axis2_engine_free(engine, env);
    return AXIS2_TRUE;
}

AXIS2_EXTERN axis2_bool_t AXIS2_CALL
axis2_http_transport_utils_process_http_get_request(
    const axutil_env_t * env,
    axis2_msg_ctx_t * msg_ctx,
    axutil_stream_t * in_stream,
    axutil_stream_t * out_stream,
    const axis2_char_t * content_type,
    axutil_string_t * soap_action_header,
    const axis2_char_t * request_uri,
    axis2_conf_ctx_t * conf_ctx,
    axutil_hash_t * request_params)
{
    axiom_soap_envelope_t *soap_envelope = NULL;
    axis2_engine_t *engine = NULL;
    axis2_bool_t do_rest = AXIS2_TRUE;

    AXIS2_PARAM_CHECK(env->error, msg_ctx, AXIS2_FALSE);
    AXIS2_PARAM_CHECK(env->error, in_stream, AXIS2_FALSE);
    AXIS2_PARAM_CHECK(env->error, out_stream, AXIS2_FALSE);
    AXIS2_PARAM_CHECK(env->error, request_uri, AXIS2_FALSE);

    axis2_msg_ctx_set_to(msg_ctx, env, axis2_endpoint_ref_create(env,
                                                                 request_uri));
    axis2_msg_ctx_set_server_side(msg_ctx, env, AXIS2_TRUE);

#ifdef AXIS2_JSON_ENABLED
    if (content_type && strstr(content_type, AXIS2_HTTP_HEADER_ACCEPT_JSON))
    {
        axis2_msg_ctx_set_doing_json(msg_ctx, env, AXIS2_TRUE);
    }
    else
#endif
    if (content_type && strstr(content_type, AXIS2_HTTP_HEADER_ACCEPT_TEXT_XML))
    {
        if (soap_action_header)
        {
            do_rest = AXIS2_FALSE;
        }
    }
    else if (content_type && strstr
        (content_type, AXIS2_HTTP_HEADER_ACCEPT_APPL_SOAP))
    {
        do_rest = AXIS2_FALSE;
    }

    if (do_rest)
    {
        axis2_msg_ctx_set_doing_rest(msg_ctx, env, AXIS2_TRUE);
        axis2_msg_ctx_set_rest_http_method(msg_ctx, env, AXIS2_HTTP_GET);
    }
    else
    {
        axis2_msg_ctx_set_doing_rest(msg_ctx, env, AXIS2_FALSE);
    }

	if (AXIS2_SUCCESS != axis2_http_transport_utils_dispatch_and_verify(env, msg_ctx))
	{
		return AXIS2_FALSE;
	}
    soap_envelope = axis2_http_transport_utils_handle_media_type_url_encoded(env, msg_ctx,
                                                                 request_params,
                                                                 AXIS2_HTTP_GET);
    if (!soap_envelope)
    {
        return AXIS2_FALSE;
    }
    axis2_msg_ctx_set_soap_envelope(msg_ctx, env, soap_envelope);
	
    engine = axis2_engine_create(env, conf_ctx);
    axis2_engine_receive(engine, env, msg_ctx);
    axis2_engine_free(engine, env);
    return AXIS2_TRUE;
}

AXIS2_EXTERN axis2_bool_t AXIS2_CALL
axis2_http_transport_utils_process_http_delete_request(
    const axutil_env_t * env,
    axis2_msg_ctx_t * msg_ctx,
    axutil_stream_t * in_stream,
    axutil_stream_t * out_stream,
    const axis2_char_t * content_type,
    axutil_string_t * soap_action_header,
    const axis2_char_t * request_uri,
    axis2_conf_ctx_t * conf_ctx,
    axutil_hash_t * request_params)
{
    axiom_soap_envelope_t *soap_envelope = NULL;
    axis2_engine_t *engine = NULL;
    axis2_bool_t do_rest = AXIS2_TRUE;

    AXIS2_PARAM_CHECK(env->error, msg_ctx, AXIS2_FALSE);
    AXIS2_PARAM_CHECK(env->error, in_stream, AXIS2_FALSE);
    AXIS2_PARAM_CHECK(env->error, out_stream, AXIS2_FALSE);
    AXIS2_PARAM_CHECK(env->error, request_uri, AXIS2_FALSE);

    axis2_msg_ctx_set_to(msg_ctx, env, axis2_endpoint_ref_create(env,
                                                                 request_uri));
    axis2_msg_ctx_set_server_side(msg_ctx, env, AXIS2_TRUE);

#ifdef AXIS2_JSON_ENABLED
    if (strstr(content_type, AXIS2_HTTP_HEADER_ACCEPT_JSON))
    {
        axis2_msg_ctx_set_doing_json(msg_ctx, env, AXIS2_TRUE);
    }
    else
#endif
    if (strstr(content_type, AXIS2_HTTP_HEADER_ACCEPT_TEXT_XML))
    {
        if (soap_action_header)
        {
            do_rest = AXIS2_FALSE;
        }
    }
    else if (strstr
        (content_type, AXIS2_HTTP_HEADER_ACCEPT_APPL_SOAP))
    {
        do_rest = AXIS2_FALSE;
    }

    if (do_rest)
    {
        axis2_msg_ctx_set_doing_rest(msg_ctx, env, AXIS2_TRUE);
        axis2_msg_ctx_set_rest_http_method(msg_ctx, env, AXIS2_HTTP_DELETE);
    }
    else
    {
        axis2_msg_ctx_set_doing_rest(msg_ctx, env, AXIS2_FALSE);
    }

	if (AXIS2_SUCCESS != axis2_http_transport_utils_dispatch_and_verify(env, msg_ctx))
	{
		return AXIS2_FALSE;
	}

    soap_envelope =
        axis2_http_transport_utils_handle_media_type_url_encoded(env, msg_ctx,
                                                                 request_params,
                                                                 AXIS2_HTTP_DELETE);
    if (!soap_envelope)
    {
        return AXIS2_FALSE;
    }
    
	axis2_msg_ctx_set_soap_envelope(msg_ctx, env, soap_envelope);


    engine = axis2_engine_create(env, conf_ctx);
    axis2_engine_receive(engine, env, msg_ctx);
    axis2_engine_free(engine, env);
    return AXIS2_TRUE;
}

AXIS2_EXTERN axis2_bool_t AXIS2_CALL
axis2_http_transport_utils_do_write_mtom(
    const axutil_env_t * env,
    axis2_msg_ctx_t * msg_ctx)
{
    AXIS2_PARAM_CHECK(env->error, msg_ctx, AXIS2_FAILURE);

    return (axis2_msg_ctx_get_doing_mtom(msg_ctx, env));
}

AXIS2_EXTERN axutil_hash_t *AXIS2_CALL
axis2_http_transport_utils_get_request_params(
    const axutil_env_t * env,
    axis2_char_t * request_uri)
{

    axis2_char_t *query_str = NULL;
    axis2_char_t *tmp = strchr(request_uri, AXIS2_Q_MARK);
    axis2_char_t *tmp2 = NULL;
    axis2_char_t *tmp_name = NULL;
    axis2_char_t *tmp_value = NULL;
    axutil_hash_t *ret = NULL;

    AXIS2_PARAM_CHECK(env->error, request_uri, NULL);

    if (!tmp || AXIS2_ESC_NULL == *(tmp + 1))
    {
        return NULL;
    }
    query_str = axutil_strdup(env, tmp + 1);

    for (tmp2 = tmp = query_str; *tmp != AXIS2_ESC_NULL; ++tmp)
    {
        if (AXIS2_EQ == *tmp)
        {
            *tmp = AXIS2_ESC_NULL;
            tmp_name = axutil_strdup(env, tmp2);
            axis2_http_transport_utils_strdecode(env, tmp_name, tmp_name);
            tmp2 = tmp + 1;
        }
        if (AXIS2_AND == *tmp)
        {
            *tmp = AXIS2_ESC_NULL;
            tmp_value = axutil_strdup(env, tmp2);
            axis2_http_transport_utils_strdecode(env, tmp_value, tmp_value);
            tmp2 = tmp + 1;
        }
        if (tmp_name && NULL != tmp_value)
        {
            if (!ret)
            {
                ret = axutil_hash_make(env);
            }
            axutil_hash_set(ret, tmp_name, AXIS2_HASH_KEY_STRING, tmp_value);
            tmp_name = NULL;
            tmp_value = NULL;
        }
    }
    if (tmp_name && AXIS2_ESC_NULL != *tmp2)
    {
        if (!ret)
        {
            ret = axutil_hash_make(env);
        }
        tmp_value = axutil_strdup(env, tmp2);
        axis2_http_transport_utils_strdecode(env, tmp_value, tmp_value);
        axutil_hash_set(ret, tmp_name, AXIS2_HASH_KEY_STRING, tmp_value);
    }

    AXIS2_FREE(env->allocator, query_str);

    return ret;
}

AXIS2_EXTERN axis2_status_t AXIS2_CALL
axis2_http_transport_utils_strdecode(
    const axutil_env_t * env,
    axis2_char_t * dest,
    axis2_char_t * src)
{
    AXIS2_PARAM_CHECK(env->error, dest, AXIS2_FAILURE);
    AXIS2_PARAM_CHECK(env->error, src, AXIS2_FAILURE);

    for (; *src != AXIS2_ESC_NULL; ++dest, ++src)
    {
        if (src[0] == AXIS2_PERCENT && isxdigit((int)src[1]) && isxdigit((int)src[2]))
        {
            *dest = (axis2_char_t)(axis2_http_transport_utils_hexit(src[1]) * 16 +
                axis2_http_transport_utils_hexit(src[2]));
            /* We are sure that the conversion is valid */
            src += 2;
        }
        else
        {
            *dest = *src;
        }
    }
    *dest = AXIS2_ESC_NULL;

    return AXIS2_SUCCESS;
}

AXIS2_EXTERN int AXIS2_CALL
axis2_http_transport_utils_hexit(
    axis2_char_t c)
{
    if (c >= '0' && c <= '9')
    {
        return c - '0';
    }
    if (c >= 'a' && c <= 'f')
    {
        return c - 'a' + 10;
    }
    if (c >= 'A' && c <= 'F')
    {
        return c - 'A' + 10;
    }
    return 0;                   /* shouldn't happen, we're guarded by isxdigit() */
}

AXIS2_EXTERN axis2_char_t *AXIS2_CALL
axis2_http_transport_utils_get_not_found(
    const axutil_env_t * env,
    axis2_conf_ctx_t * conf_ctx)
{
    return AXIS2_HTTP_NOT_FOUND;
}

AXIS2_EXTERN axis2_char_t *AXIS2_CALL
axis2_http_transport_utils_get_not_implemented(
    const axutil_env_t * env,
    axis2_conf_ctx_t * conf_ctx)
{
    return AXIS2_HTTP_NOT_IMPLEMENTED;
}

AXIS2_EXTERN axis2_char_t *AXIS2_CALL
axis2_http_transport_utils_get_internal_server_error(
    const axutil_env_t * env,
    axis2_conf_ctx_t * conf_ctx)
{
    return AXIS2_HTTP_INTERNAL_SERVER_ERROR;
}

AXIS2_EXTERN axis2_char_t *AXIS2_CALL
axis2_http_transport_utils_get_method_not_allowed(
    const axutil_env_t * env,
    axis2_conf_ctx_t * conf_ctx)
{
    return AXIS2_HTTP_METHOD_NOT_ALLOWED;
}

AXIS2_EXTERN axis2_char_t *AXIS2_CALL
axis2_http_transport_utils_get_not_acceptable(
    const axutil_env_t * env,
    axis2_conf_ctx_t * conf_ctx)
{
    return AXIS2_HTTP_NOT_ACCEPTABLE;
}

AXIS2_EXTERN axis2_char_t *AXIS2_CALL
axis2_http_transport_utils_get_bad_request(
    const axutil_env_t * env,
    axis2_conf_ctx_t * conf_ctx)
{
    return AXIS2_HTTP_BAD_REQUEST;
}

AXIS2_EXTERN axis2_char_t *AXIS2_CALL
axis2_http_transport_utils_get_request_timeout(
    const axutil_env_t * env,
    axis2_conf_ctx_t * conf_ctx)
{
    return AXIS2_HTTP_REQUEST_TIMEOUT;
}

AXIS2_EXTERN axis2_char_t *AXIS2_CALL
axis2_http_transport_utils_get_conflict(
    const axutil_env_t * env,
    axis2_conf_ctx_t * conf_ctx)
{
    return AXIS2_HTTP_CONFLICT;
}

AXIS2_EXTERN axis2_char_t *AXIS2_CALL
axis2_http_transport_utils_get_gone(
    const axutil_env_t * env,
    axis2_conf_ctx_t * conf_ctx)
{
    return AXIS2_HTTP_GONE;
}

AXIS2_EXTERN axis2_char_t *AXIS2_CALL
axis2_http_transport_utils_get_precondition_failed(
    const axutil_env_t * env,
    axis2_conf_ctx_t * conf_ctx)
{
    return AXIS2_HTTP_PRECONDITION_FAILED;
}

AXIS2_EXTERN axis2_char_t *AXIS2_CALL
axis2_http_transport_utils_get_request_entity_too_large(
    const axutil_env_t * env,
    axis2_conf_ctx_t * conf_ctx)
{
    return AXIS2_HTTP_TOO_LARGE;
}

AXIS2_EXTERN axis2_char_t *AXIS2_CALL
axis2_http_transport_utils_get_service_unavailable(
    const axutil_env_t * env,
    axis2_conf_ctx_t * conf_ctx)
{
    return AXIS2_HTTP_SERVICE_UNAVILABLE;
}


AXIS2_EXTERN axis2_char_t *AXIS2_CALL
axis2_http_transport_utils_get_services_html(
    const axutil_env_t * env,
    axis2_conf_ctx_t * conf_ctx)
{
    axutil_hash_t *services_map = NULL;
    axutil_hash_t *errorneous_svc_map = NULL;
    axis2_char_t *ret = NULL;
    axis2_char_t *tmp2 =
            (axis2_char_t *)axutil_strdup(env, "<h2>Deployed Services</h2>");
    axutil_hash_index_t *hi = NULL;
    axis2_bool_t svcs_exists = AXIS2_FALSE;
    axis2_conf_t *conf = NULL;
    AXIS2_PARAM_CHECK(env->error, conf_ctx, NULL);

    conf = axis2_conf_ctx_get_conf(conf_ctx, env);
    services_map = axis2_conf_get_all_svcs(conf, env);
    errorneous_svc_map = axis2_conf_get_all_faulty_svcs(conf, env);
    if (services_map && 0 != axutil_hash_count(services_map))
    {
        void *service = NULL;
        axis2_char_t *sname = NULL;
        axutil_hash_t *ops = NULL;
        svcs_exists = AXIS2_TRUE;

        for (hi = axutil_hash_first(services_map, env);
             hi; hi = axutil_hash_next(env, hi))
        {
            axutil_hash_this(hi, NULL, NULL, &service);
            sname = axutil_qname_get_localpart(axis2_svc_get_qname(((axis2_svc_t
                                                                     *)
                                                                    service),
                                                                   env), env);
            ret = axutil_stracat(env, tmp2, "<h3><u>");
            AXIS2_FREE(env->allocator, tmp2);
            tmp2 = ret;
            ret = axutil_stracat(env, tmp2, sname);
            AXIS2_FREE(env->allocator, tmp2);
            tmp2 = ret;
            ret = axutil_stracat(env, tmp2, "</u></h3><p>");
            AXIS2_FREE(env->allocator, tmp2);
            tmp2 = ret;

                             /**
							  *setting services description */
            ret = axutil_stracat(env, tmp2, axis2_svc_get_svc_desc((axis2_svc_t
                                                                    *) service,
                                                                   env));
            AXIS2_FREE(env->allocator, tmp2);
            tmp2 = ret;
            ret = axutil_stracat(env, tmp2, "</p>");
            AXIS2_FREE(env->allocator, tmp2);
            tmp2 = ret;
            ops = axis2_svc_get_all_ops(((axis2_svc_t *) service), env);
            if (ops && 0 != axutil_hash_count(ops))
            {
                axutil_hash_index_t *hi2 = NULL;
                void *op = NULL;
                axis2_char_t *oname = NULL;

                ret =
                    axutil_stracat(env, tmp2,
                                   "<i>Available Operations</i> <ul>");
                AXIS2_FREE(env->allocator, tmp2);
                tmp2 = ret;
                for (hi2 = axutil_hash_first(ops, env); hi2;
                     hi2 = axutil_hash_next(env, hi2))
                {
                    axutil_hash_this(hi2, NULL, NULL, &op);
                    oname = axutil_qname_get_localpart(
                        axis2_op_get_qname(((axis2_op_t *) op), env), 
                        env);
                    ret = axutil_stracat(env, tmp2, "<li>");
                    AXIS2_FREE(env->allocator, tmp2);
                    tmp2 = ret;

                    ret = axutil_stracat(env, tmp2, oname);
                    AXIS2_FREE(env->allocator, tmp2);
                    tmp2 = ret;
                    ret = axutil_stracat(env, tmp2, "</li>");
                    AXIS2_FREE(env->allocator, tmp2);
                    tmp2 = ret;
                }
                ret = axutil_stracat(env, tmp2, "</ul>");
                AXIS2_FREE(env->allocator, tmp2);
                tmp2 = ret;
            }
            else
            {
                ret = axutil_stracat(env, tmp2, "No operations Available");
                AXIS2_FREE(env->allocator, tmp2);
                tmp2 = ret;
            }
        }
    }

    if (errorneous_svc_map && 0 != axutil_hash_count(errorneous_svc_map))
    {
        void *fsname = NULL;
        svcs_exists = AXIS2_TRUE;
        ret = axutil_stracat(env, tmp2, "<hr><h2><font color=\"red\">Faulty \
                Services</font></h2>");
        AXIS2_FREE(env->allocator, tmp2);
        tmp2 = ret;

        for (hi = axutil_hash_first(errorneous_svc_map, env); hi;
             axutil_hash_next(env, hi))
        {
            axutil_hash_this(hi, (const void **) &fsname, NULL, NULL);
            ret = axutil_stracat(env, tmp2, "<h3><font color=\"red\">");
            AXIS2_FREE(env->allocator, tmp2);
            tmp2 = ret;
            ret = axutil_stracat(env, tmp2, (axis2_char_t *) fsname);
            AXIS2_FREE(env->allocator, tmp2);
            tmp2 = ret;
            ret = axutil_stracat(env, tmp2, "</font></h3>");
            AXIS2_FREE(env->allocator, tmp2);
            tmp2 = ret;
        }
    }
    if (AXIS2_FALSE == svcs_exists)
    {
        AXIS2_FREE(env->allocator, tmp2);
        tmp2 = axutil_strdup(env, "<h2>There are no services deployed</h2>");
    }
    ret =
        axutil_stracat(env,
                       "<html><head><title>Axis2C :: Services</title></head>"
                       "<body><font face=\"courier\">", tmp2);
    AXIS2_FREE(env->allocator, tmp2);
    tmp2 = ret;
    ret = axutil_stracat(env, tmp2, "</font></body></html>\r\n");
    AXIS2_FREE(env->allocator, tmp2);

    return ret;
}

AXIS2_EXTERN axis2_char_t *AXIS2_CALL
axis2_http_transport_utils_get_services_static_wsdl(
    const axutil_env_t * env,
    axis2_conf_ctx_t * conf_ctx,
    axis2_char_t * request_url)
{
    axis2_char_t *wsdl_string = NULL;
    axis2_char_t *wsdl_path = NULL;
    axis2_char_t **url_tok = NULL;
    unsigned int len = 0;
    axis2_char_t *svc_name = NULL;
    axis2_conf_t *conf = NULL;
    axutil_hash_t *services_map = NULL;
    axutil_hash_index_t *hi = NULL;

    AXIS2_PARAM_CHECK(env->error, conf_ctx, NULL);
    AXIS2_PARAM_CHECK(env->error, request_url, NULL);

    url_tok = axutil_parse_request_url_for_svc_and_op(env, request_url);
    if (url_tok[0])
    {
        len = (int)strlen(url_tok[0]);
        /* We are sure that the difference lies within the int range */
        url_tok[0][len - 5] = 0;
        svc_name = url_tok[0];
    }

    conf = axis2_conf_ctx_get_conf(conf_ctx, env);
    services_map = axis2_conf_get_all_svcs(conf, env);

    if (services_map && 0 != axutil_hash_count(services_map))
    {
        void *service = NULL;
        axis2_char_t *sname = NULL;

        for (hi = axutil_hash_first(services_map, env);
             hi; hi = axutil_hash_next(env, hi))
        {
            axutil_hash_this(hi, NULL, NULL, &service);
            sname = axutil_qname_get_localpart(axis2_svc_get_qname(((axis2_svc_t
                                                                     *)
                                                                    service),
                                                                   env), env);
            if (!axutil_strcmp(svc_name, sname))
            {
                wsdl_path = (axis2_char_t *) axutil_strdup(env, 
                                axis2_svc_get_svc_wsdl_path((axis2_svc_t *)
                                                            service, env));
                if (!wsdl_path)
                {
                    wsdl_path = axutil_strcat(env, 
                                    axis2_svc_get_svc_folder_path((axis2_svc_t *)
                                     service, env), AXIS2_PATH_SEP_STR,
                                    svc_name, ".wsdl", NULL);
                }
                /* break will cause memleak, because hash_index is freed only
                   when iterated to the last element */
                AXIS2_FREE(env->allocator, hi);
                break;
            }

        }
    }

    if (wsdl_path)
    {
        FILE *wsdl_file;
        axis2_char_t *content = NULL;
        int c;
        int size = AXIS2_FILE_READ_SIZE;
        axis2_char_t *tmp;
        int i = 0;

        wsdl_file = fopen(wsdl_path, "r");
        if (wsdl_file)
        {
            content = (axis2_char_t *) AXIS2_MALLOC(env->allocator, size);
            c = fgetc(wsdl_file);
            while (c != EOF)
            {
                if (i >= size)
                {
                    size = size * 3;
                    tmp = (axis2_char_t *) AXIS2_MALLOC(env->allocator, size);
                    memcpy(tmp, content, i);
                    AXIS2_FREE(env->allocator, content);
                    content = tmp;
                }
                content[i++] = (axis2_char_t)c;
                c = fgetc(wsdl_file);
            }
            content[i] = AXIS2_ESC_NULL;
            wsdl_string = (axis2_char_t *)content;
        }
        AXIS2_FREE(env->allocator, wsdl_path);
    }
    else
    {
        wsdl_string = axutil_strdup(env, "Unable to retrieve wsdl for this service");
    }

    if (url_tok[0])
        AXIS2_FREE(env->allocator, url_tok[0]);
    if (url_tok[1])
        AXIS2_FREE(env->allocator, url_tok[1]);
    AXIS2_FREE(env->allocator, url_tok);

    return wsdl_string;
}

AXIS2_EXTERN axutil_string_t *AXIS2_CALL
axis2_http_transport_utils_get_charset_enc(
    const axutil_env_t * env,
    const axis2_char_t * content_type)
{
    axis2_char_t *tmp = NULL;
    axis2_char_t *tmp_content_type = NULL;
    axis2_char_t *tmp2 = NULL;
    axutil_string_t *str = NULL;

    AXIS2_PARAM_CHECK(env->error, content_type, NULL);

    tmp_content_type = (axis2_char_t *) content_type;
    if (!tmp_content_type)
    {
        return axutil_string_create_const(env,
                                          (axis2_char_t **) &
                                          AXIS2_TRANS_UTIL_DEFAULT_CHAR_ENCODING);
    }

    tmp = strstr(tmp_content_type, AXIS2_HTTP_CHAR_SET_ENCODING);

    if (tmp)
    {
        tmp = strchr(tmp, AXIS2_EQ);
        if (tmp)
        {
            tmp2 = strchr(tmp, AXIS2_SEMI_COLON);
            if (!tmp2)
            {
               tmp2 = tmp + strlen(tmp); 
            }
        }

        if (tmp2)
        {
            if ('\'' == *(tmp2 - sizeof(axis2_char_t)) ||
                '\"' == *(tmp2 - sizeof(axis2_char_t)))
            {
                tmp2 -= sizeof(axis2_char_t);
            }
            *tmp2 = AXIS2_ESC_NULL;
        }
    }

    if (tmp)
    {
        /* Following formats are acceptable
         * charset="UTF-8"
         * charser='UTF-8'
         * charset=UTF-8
         * But for our requirements charset we get should be UTF-8
         */
        if (AXIS2_ESC_SINGLE_QUOTE == *(tmp + sizeof(axis2_char_t)) || 
            AXIS2_ESC_DOUBLE_QUOTE == *(tmp + sizeof(axis2_char_t)))
        {
            tmp += 2 * sizeof(axis2_char_t);
        }
        else
        {
            tmp += sizeof(axis2_char_t);
        }
    }

    if (tmp)
    {
        str = axutil_string_create(env, tmp);
    }
    else
    {
        str =
            axutil_string_create_const(env,
                                       (axis2_char_t **) &
                                       AXIS2_TRANS_UTIL_DEFAULT_CHAR_ENCODING);
    }
    return str;
}

int AXIS2_CALL
axis2_http_transport_utils_on_data_request(
    char *buffer,
    int size,
    void *ctx)
{
    const axutil_env_t *env = NULL;
    int len = -1;
    axis2_callback_info_t *cb_ctx = (axis2_callback_info_t *) ctx;

    if (!buffer || !ctx)
    {
        return 0;
    }
    env = ((axis2_callback_info_t *) ctx)->env;
    if (cb_ctx->unread_len <= 0 && -1 != cb_ctx->content_length)
    {
        return 0;
    }
    if (cb_ctx->chunked_stream)
    {
        --size;                         
        /* reserve space to insert trailing null */
        len = axutil_http_chunked_stream_read(cb_ctx->chunked_stream, env,
                                             buffer, size);
        if (len >= 0)
        {
            buffer[len] = AXIS2_ESC_NULL;
        }
    }
    else
    {
        axutil_stream_t *in_stream = NULL;
        in_stream =
            (axutil_stream_t *) ((axis2_callback_info_t *) ctx)->in_stream;
        --size;                         /* reserve space to insert trailing null */
        len = axutil_stream_read(in_stream, env, buffer, size);
        if (len > 0)
        {
            buffer[len] = AXIS2_ESC_NULL;
            ((axis2_callback_info_t *) ctx)->unread_len -= len;
        }
        else if(len == 0)
        {
            ((axis2_callback_info_t *) ctx)->unread_len = 0;
        }
    }
    return len;
}

AXIS2_EXTERN axiom_soap_envelope_t *AXIS2_CALL
axis2_http_transport_utils_create_soap_msg(
    const axutil_env_t * env,
    axis2_msg_ctx_t * msg_ctx,
    const axis2_char_t * soap_ns_uri)
{
    axis2_op_ctx_t *op_ctx = NULL;
    const axis2_char_t *char_set_enc = NULL;
    axis2_char_t *content_type = NULL;
    axutil_stream_t *in_stream = NULL;
    axis2_callback_info_t *callback_ctx = NULL;
    axis2_char_t *trans_enc = NULL;
    int *content_length = NULL;
    axutil_property_t *property = NULL;
    axutil_hash_t *binary_data_map = NULL;
    axiom_soap_envelope_t *soap_envelope = NULL;
	axutil_stream_t *stream = NULL;

    AXIS2_PARAM_CHECK(env->error, msg_ctx, NULL);
    AXIS2_PARAM_CHECK(env->error, soap_ns_uri, NULL);

    property = axis2_msg_ctx_get_property(msg_ctx, env, AXIS2_TRANSPORT_IN);
    if (property)
    {
        in_stream = axutil_property_get_value(property, env);
        property = NULL;
    }
    callback_ctx = AXIS2_MALLOC(env->allocator, sizeof(axis2_callback_info_t));
    /* Note: the memory created above is freed in xml reader free function
       as this is passed on to the reader */
    if (!callback_ctx)
    {
        AXIS2_HANDLE_ERROR(env, AXIS2_ERROR_NO_MEMORY, AXIS2_FAILURE);
        return NULL;
    }
    callback_ctx->in_stream = in_stream;
    callback_ctx->env = env;
    callback_ctx->content_length = -1;
    callback_ctx->unread_len = -1;
    callback_ctx->chunked_stream = NULL;

    property = axis2_msg_ctx_get_property(msg_ctx, env,
                                          AXIS2_HTTP_HEADER_CONTENT_LENGTH);
    if (property)
    {
        content_length = axutil_property_get_value(property, env);
        property = NULL;
    }

    if (content_length)
    {
        callback_ctx->content_length = *content_length;
        callback_ctx->unread_len = *content_length;
    }

    if (!in_stream)
    {
        AXIS2_HANDLE_ERROR(env, AXIS2_ERROR_NULL_IN_STREAM_IN_MSG_CTX,
                           AXIS2_FAILURE);
        AXIS2_FREE(env->allocator, callback_ctx);
        return NULL;
    }

    trans_enc = axis2_msg_ctx_get_transfer_encoding(msg_ctx, env);

    if (trans_enc && 0 == axutil_strcmp(trans_enc,
                                        AXIS2_HTTP_HEADER_TRANSFER_ENCODING_CHUNKED))
    {
        callback_ctx->chunked_stream = axutil_http_chunked_stream_create(env,
                                                                        in_stream);
        if (!callback_ctx->chunked_stream)
        {
            return NULL;
        }
    }

    op_ctx = axis2_msg_ctx_get_op_ctx(msg_ctx, env);
    if (op_ctx)
    {
        axis2_ctx_t *ctx = axis2_op_ctx_get_base(op_ctx, env);
        if (ctx)
        {
            property = axis2_ctx_get_property(ctx, env,
                                              AXIS2_CHARACTER_SET_ENCODING);
            if (property)
            {
                char_set_enc = axutil_property_get_value(property, env);
                property = NULL;
            }
            property = axis2_ctx_get_property(ctx, env,
                                              MTOM_RECIVED_CONTENT_TYPE);
            if (property)
            {
                content_type = axutil_property_get_value(property, env);
                property = NULL;
            }

        }
    }

    if (!char_set_enc)
    {
        char_set_enc = AXIS2_DEFAULT_CHAR_SET_ENCODING;
    }
    if (content_type)
    {
        axis2_char_t *mime_boundary = NULL;
        axis2_msg_ctx_set_doing_mtom(msg_ctx, env, AXIS2_TRUE);
        /* get mime boundry */
        mime_boundary =
            axis2_http_transport_utils_get_value_from_content_type(
                env,
                content_type,
                AXIS2_HTTP_HEADER_CONTENT_TYPE_MIME_BOUNDARY);

        if (mime_boundary)
        {
            axiom_mime_parser_t *mime_parser = NULL;
            int soap_body_len = 0;
            axis2_char_t *soap_body_str = NULL;
            axutil_param_t *buffer_size_param = NULL;
            axutil_param_t *max_buffers_param = NULL;
            axutil_param_t *attachment_dir_param = NULL;
            axutil_param_t *callback_name_param = NULL;
            axis2_char_t *value_size = NULL;
            axis2_char_t *value_num = NULL;
            axis2_char_t *value_dir = NULL;
            axis2_char_t *value_callback = NULL;
            int size = 0;
            int num = 0;
 
            mime_parser = axiom_mime_parser_create(env);

            /* Following are the parameters in the axis2.xml regarding MTOM */


            buffer_size_param = 
                axis2_msg_ctx_get_parameter (msg_ctx,
                                             env,
                                             AXIS2_MTOM_BUFFER_SIZE);
            if (buffer_size_param)
            {
                value_size =
                    (axis2_char_t *) axutil_param_get_value (buffer_size_param, env);

                if(value_size)
                {
                    size = atoi(value_size);
                    axiom_mime_parser_set_buffer_size(mime_parser, env, size);
                }
            }

            max_buffers_param = axis2_msg_ctx_get_parameter (msg_ctx,
                                                                   env,
                                                                   AXIS2_MTOM_MAX_BUFFERS);
            if(max_buffers_param)
            {
                value_num =
                    (axis2_char_t *) axutil_param_get_value (max_buffers_param, env);
                if(value_num)
                {
                    num = atoi(value_num);
                    axiom_mime_parser_set_max_buffers(mime_parser, env, num);
                }
            }

            callback_name_param = axis2_msg_ctx_get_parameter (msg_ctx,
                                                                   env,
                                                                   AXIS2_MTOM_CACHING_CALLBACK);
            if(callback_name_param)
            {
                value_callback =
                    (axis2_char_t *) axutil_param_get_value (callback_name_param, env);
                if(value_callback)
                {
                    axiom_mime_parser_set_caching_callback_name(mime_parser, env, value_callback);
                }
            }
           
            attachment_dir_param = axis2_msg_ctx_get_parameter (msg_ctx,
                                                                   env,
                                                                   AXIS2_ATTACHMENT_DIR);
            if(attachment_dir_param)
            {
                value_dir =
                    (axis2_char_t *) axutil_param_get_value (attachment_dir_param, env);
                if(value_dir)
                {
                    axiom_mime_parser_set_attachment_dir(mime_parser, env, value_dir);
                }
            }
   
 
            if (mime_parser)
            {
                if(axiom_mime_parser_parse_for_soap(mime_parser, env,
                        axis2_http_transport_utils_on_data_request,
                        (void *) callback_ctx,
                        mime_boundary) == AXIS2_FAILURE)
                {
                    return NULL;
                }

                binary_data_map =
                    axiom_mime_parser_parse_for_attachments(mime_parser, env,
                                            axis2_http_transport_utils_on_data_request,
                                            (void *) callback_ctx,
                                            mime_boundary,
                                            NULL);
                if(!binary_data_map)
                {
                    return NULL;
                }

                if(!binary_data_map)
                {
                    return NULL;
                }
    
                soap_body_len =
                    axiom_mime_parser_get_soap_body_len(mime_parser, env);
                soap_body_str =
                    axiom_mime_parser_get_soap_body_str(mime_parser, env);
            }

            if(callback_ctx->chunked_stream)
            {
                axutil_http_chunked_stream_free(callback_ctx->chunked_stream, env);
                callback_ctx->chunked_stream = NULL;
            }

            stream = axutil_stream_create_basic(env);
            if (stream)
            {
                axutil_stream_write(stream, env, soap_body_str, soap_body_len);
                callback_ctx->in_stream = stream;
                callback_ctx->chunked_stream = NULL;
                callback_ctx->content_length = soap_body_len;
                callback_ctx->unread_len = soap_body_len;
            }

            axiom_mime_parser_free(mime_parser, env);
            mime_parser = NULL;
			if(mime_boundary)
			{
	    		AXIS2_FREE(env->allocator, mime_boundary);
			}

			if(soap_body_str)
			{
			    AXIS2_FREE(env->allocator, soap_body_str); 
			}
        }
    }

    if (AXIS2_TRUE != axis2_msg_ctx_get_doing_rest(msg_ctx, env))
    {
        axiom_xml_reader_t *xml_reader = NULL;
        axiom_stax_builder_t *om_builder = NULL;
        axiom_soap_builder_t *soap_builder = NULL;
        
        xml_reader = 
            axiom_xml_reader_create_for_io(env,
                                           axis2_http_transport_utils_on_data_request,
                                           NULL, (void *) callback_ctx,
                                           char_set_enc);
        if (!xml_reader)
        {
            return NULL;
        }
        om_builder = axiom_stax_builder_create(env, xml_reader);
        if (!om_builder)
        {
            axiom_xml_reader_free(xml_reader, env);
            xml_reader = NULL;
            return NULL;
        }
        soap_builder = axiom_soap_builder_create(env, om_builder, soap_ns_uri);
        if (!soap_builder)
        {
            /* We should not be freeing om_builder here as it is done by
               axiom_soap_builder_create in case of error - Samisa */
            om_builder = NULL;
            xml_reader = NULL;
            return NULL;
        }

        soap_envelope = axiom_soap_builder_get_soap_envelope(soap_builder, env);

        if (binary_data_map)
        {
            axiom_soap_builder_set_mime_body_parts(soap_builder, env,
                                                   binary_data_map);
        }

        if (soap_envelope)
        {
            /* hack to get around MTOM problem */
            axiom_soap_body_t *soap_body =
                axiom_soap_envelope_get_body(soap_envelope, env);

            if (soap_body)
            {
                axiom_soap_body_has_fault(soap_body, env);
            }
        }
		if(stream)
		{
			axutil_stream_free(stream, env);
			callback_ctx->in_stream = NULL;
		}
        if(callback_ctx->chunked_stream)
        {
            axutil_http_chunked_stream_free(callback_ctx->chunked_stream, env);
            callback_ctx->chunked_stream = NULL;
        }

    }
    else
    {
        /* REST processing */
        axiom_xml_reader_t *xml_reader = NULL;
        axiom_stax_builder_t *om_builder = NULL;
        axiom_soap_body_t *def_body = NULL;
        axiom_document_t *om_doc = NULL;
        axiom_node_t *root_node = NULL;

        xml_reader = 
            axiom_xml_reader_create_for_io(env,
                                           axis2_http_transport_utils_on_data_request,
                                           NULL, (void *) callback_ctx,
                                           char_set_enc);
        if (!xml_reader)
        {
            return NULL;
        }
        om_builder = axiom_stax_builder_create(env, xml_reader);
        if (!om_builder)
        {
            axiom_xml_reader_free(xml_reader, env);
            xml_reader = NULL;
            return NULL;
        }
        soap_envelope = axiom_soap_envelope_create_default_soap_envelope
            (env, AXIOM_SOAP11);
        def_body = axiom_soap_envelope_get_body(soap_envelope, env);
        om_doc = axiom_stax_builder_get_document(om_builder, env);
        root_node = axiom_document_build_all(om_doc, env);
        axiom_soap_body_add_child(def_body, env, root_node);
        axiom_stax_builder_free_self(om_builder, env);
    }

    return soap_envelope;
}

AXIS2_EXTERN axis2_char_t *AXIS2_CALL
axis2_http_transport_utils_get_value_from_content_type(
    const axutil_env_t * env,
    const axis2_char_t * content_type,
    const axis2_char_t * key)
{
    axis2_char_t *tmp = NULL;
    axis2_char_t *tmp_content_type = NULL;
    axis2_char_t *tmp2 = NULL;

    AXIS2_PARAM_CHECK(env->error, content_type, NULL);
    AXIS2_PARAM_CHECK(env->error, key, NULL);

    tmp_content_type = axutil_strdup(env, content_type);
    if (!tmp_content_type)
    {
        return NULL;
    }
    tmp = strstr(tmp_content_type, key);
    if (!tmp)
    {
        AXIS2_FREE(env->allocator, tmp_content_type);
        return NULL;
    }

    tmp = strchr(tmp, AXIS2_EQ);
    tmp2 = strchr(tmp, AXIS2_SEMI_COLON);

    if (tmp2)
    {
        *tmp2 = AXIS2_ESC_NULL;
    }
    if (!tmp)
    {
        AXIS2_FREE(env->allocator, tmp_content_type);
        return NULL;
    }

    tmp2 = axutil_strdup(env, tmp + 1);

    AXIS2_FREE(env->allocator, tmp_content_type);
    if (*tmp2 == AXIS2_DOUBLE_QUOTE)
    {
        tmp = tmp2;
        tmp2 = axutil_strdup(env, tmp + 1);
        tmp2[strlen(tmp2) - 1] = AXIS2_ESC_NULL;
        if(tmp)
        {
            AXIS2_FREE(env->allocator, tmp); 
            tmp = NULL;
        }

    }
    /* handle XOP */
    if(*tmp2 == AXIS2_B_SLASH && *(tmp2 + 1) == '\"')
    {
        tmp = tmp2;
        tmp2 = axutil_strdup(env, tmp + 2);
        tmp2[strlen(tmp2) - 3] = AXIS2_ESC_NULL;
        if(tmp)
        {
            AXIS2_FREE(env->allocator, tmp);
            tmp = NULL;
        }
    }
    return tmp2;
}


AXIS2_EXTERN axiom_soap_envelope_t *AXIS2_CALL
axis2_http_transport_utils_handle_media_type_url_encoded(
    const axutil_env_t * env,
    axis2_msg_ctx_t * msg_ctx,
    axutil_hash_t * param_map,
    axis2_char_t * method)
{
    axiom_soap_envelope_t *soap_env = NULL;
    axiom_soap_body_t *soap_body = NULL;
    axiom_element_t *body_child = NULL;
    axiom_node_t *body_child_node = NULL;
    axiom_node_t *body_element_node = NULL;

    AXIS2_PARAM_CHECK(env->error, msg_ctx, NULL);
    AXIS2_PARAM_CHECK(env->error, method, NULL);

    soap_env = axis2_msg_ctx_get_soap_envelope(msg_ctx, env);

    if (!soap_env)
    {
        soap_env = axiom_soap_envelope_create_default_soap_envelope(env,
                                                                    AXIOM_SOAP11);
    }
    soap_body = axiom_soap_envelope_get_body(soap_env, env);
    if (!soap_body)
    {
        AXIS2_HANDLE_ERROR(env, AXIS2_ERROR_SOAP_ENVELOPE_OR_SOAP_BODY_NULL,
                           AXIS2_FAILURE);
        return NULL;
    }

    body_element_node = axiom_soap_body_get_base_node(soap_body, env);

    if (body_element_node)
    {
        body_child_node = axiom_node_get_first_child(body_element_node, env);
    }

    if (!body_child_node)
    {
        if (!axis2_msg_ctx_get_op(msg_ctx, env))
        {
            return NULL;
        }
        body_child = axiom_element_create_with_qname(env, NULL,
                                                     axis2_op_get_qname
                                                     (axis2_msg_ctx_get_op
                                                      (msg_ctx, env), env),
                                                     &body_child_node);
        axiom_soap_body_add_child(soap_body, env, body_child_node);
    }    
    if (param_map)
    {
        axutil_hash_index_t *hi = NULL;
        for (hi = axutil_hash_first(param_map, env); hi;
             hi = axutil_hash_next(env, hi))
        {
            void *name = NULL;
            void *value = NULL;
            axiom_node_t *node = NULL;
            axiom_element_t *element = NULL;

            axutil_hash_this(hi, (const void **) &name, NULL, (void **) &value);
            element = axiom_element_create(env, NULL, (axis2_char_t *) name,
                                           NULL, &node);
            axiom_element_set_text(element, env, (axis2_char_t *) value, node);
            axiom_node_add_child(body_child_node, env, node);
        }
    }
    return soap_env;
}


AXIS2_EXTERN axis2_status_t AXIS2_CALL
axis2_http_transport_utils_dispatch_and_verify(
    const axutil_env_t * env,
    axis2_msg_ctx_t * msg_ctx)
{
    axis2_disp_t *rest_disp = NULL;
    axis2_handler_t *handler = NULL;

    AXIS2_PARAM_CHECK(env->error, msg_ctx, AXIS2_FAILURE);

    if (axis2_msg_ctx_get_doing_rest(msg_ctx, env))
    {
        rest_disp = axis2_rest_disp_create(env);
        handler = axis2_disp_get_base(rest_disp, env);
        axis2_handler_invoke(handler, env, msg_ctx);

        axis2_handler_desc_free(axis2_handler_get_handler_desc(handler, env), env);

        axis2_disp_free(rest_disp, env);

        if (!axis2_msg_ctx_get_svc(msg_ctx, env) ||
            !axis2_msg_ctx_get_op(msg_ctx, env))
        {
            AXIS2_HANDLE_ERROR(env, AXIS2_ERROR_SVC_OR_OP_NOT_FOUND,
                               AXIS2_FAILURE);
            return AXIS2_FAILURE;
        }
    }
   
    return AXIS2_SUCCESS;
}

AXIS2_EXTERN axutil_array_list_t *AXIS2_CALL
axis2_http_transport_utils_process_accept_headers(
	const axutil_env_t *env,
	axis2_char_t *accept_value )
{
	axutil_array_list_t *accept_field_list = NULL;
	axutil_array_list_t *accept_record_list = NULL;
	accept_field_list = axutil_tokenize(env, accept_value, ',');
	if (accept_field_list && axutil_array_list_size(accept_field_list, env) > 0)
		{
		axis2_char_t *token = NULL;
		accept_record_list = axutil_array_list_create(env, 
			axutil_array_list_size(accept_field_list, env));
		do
			{
			if (token)
				{
				axis2_http_accept_record_t *rec = NULL;
				rec = axis2_http_accept_record_create(env, token);
				if (rec)
					{
					axutil_array_list_add(accept_field_list, env, rec);
					}
				AXIS2_FREE(env->allocator, token);
				}
			token = (axis2_char_t *)axutil_array_list_remove(accept_field_list, env, 0);
			}
			while(token);
		}
	if (accept_record_list &&  axutil_array_list_size(accept_record_list, env) > 0)
	{
		return accept_record_list;
	}
	return NULL;
}

int axis2_http_transport_utils_check_status_code(int status_code)
{
	int status = AXIS2_HTTP_RESPONSE_OK_CODE_VAL;
	switch (status_code)
	{
		case AXIS2_HTTP_RESPONSE_CONTINUE_CODE_VAL:
			status = AXIS2_HTTP_RESPONSE_CONTINUE_CODE_VAL;
			break;
		case AXIS2_HTTP_RESPONSE_ACK_CODE_VAL:
			status = AXIS2_HTTP_RESPONSE_ACK_CODE_VAL;
			break;
		case AXIS2_HTTP_RESPONSE_MULTIPLE_CHOICES_CODE_VAL:
			status = AXIS2_HTTP_RESPONSE_MULTIPLE_CHOICES_CODE_VAL;
			break;
		case AXIS2_HTTP_RESPONSE_MOVED_PERMANENTLY_CODE_VAL:
			status = AXIS2_HTTP_RESPONSE_MULTIPLE_CHOICES_CODE_VAL;
			break;
		case AXIS2_HTTP_RESPONSE_SEE_OTHER_CODE_VAL:
			status = AXIS2_HTTP_RESPONSE_SEE_OTHER_CODE_VAL;
			break;
		case AXIS2_HTTP_RESPONSE_NOT_MODIFIED_CODE_VAL:
			status = AXIS2_HTTP_RESPONSE_NOT_MODIFIED_CODE_VAL;
			break;
		case AXIS2_HTTP_RESPONSE_TEMPORARY_REDIRECT_CODE_VAL:
			status = AXIS2_HTTP_RESPONSE_TEMPORARY_REDIRECT_CODE_VAL;
			break;
		case AXIS2_HTTP_RESPONSE_BAD_REQUEST_CODE_VAL:
			status = AXIS2_HTTP_RESPONSE_BAD_REQUEST_CODE_VAL;
			break;
		case AXIS2_HTTP_RESPONSE_REQUEST_TIMEOUT_CODE_VAL:
			status = AXIS2_HTTP_RESPONSE_REQUEST_TIMEOUT_CODE_VAL;
			break;
		case AXIS2_HTTP_RESPONSE_CONFLICT_CODE_VAL:
			status = AXIS2_HTTP_RESPONSE_CONFLICT_CODE_VAL;
			break;
		case AXIS2_HTTP_RESPONSE_GONE_CODE_VAL:
			status = AXIS2_HTTP_RESPONSE_GONE_CODE_VAL;
			break;
		case AXIS2_HTTP_RESPONSE_PRECONDITION_FAILED_CODE_VAL:
			status = AXIS2_HTTP_RESPONSE_PRECONDITION_FAILED_CODE_VAL;
			break;
		case AXIS2_HTTP_RESPONSE_REQUEST_ENTITY_TOO_LARGE_CODE_VAL:
			status = AXIS2_HTTP_RESPONSE_REQUEST_ENTITY_TOO_LARGE_CODE_VAL;
			break;
		case AXIS2_HTTP_RESPONSE_SERVICE_UNAVAILABLE_CODE_VAL:
			status = AXIS2_HTTP_RESPONSE_SERVICE_UNAVAILABLE_CODE_VAL;
			break;
	}
	return status;
}


AXIS2_EXTERN axis2_status_t AXIS2_CALL
axis2_http_transport_utils_process_request(
	const axutil_env_t *env,
	axis2_conf_ctx_t *conf_ctx,
	axis2_http_transport_in_t *request,
	axis2_http_transport_out_t *response)
{
	axis2_status_t status = AXIS2_FAILURE;
	axis2_msg_ctx_t *msg_ctx = NULL;
	axutil_stream_t *out_stream = NULL;
	axutil_string_t *soap_action = NULL;
	axis2_bool_t processed = AXIS2_FALSE;
	axis2_char_t *body_string = NULL;
	axis2_char_t *ctx_uuid = NULL;
	axis2_op_ctx_t *op_ctx = NULL;
	axis2_char_t *peer_ip = NULL;
	axutil_property_t *peer_property = NULL;
	axis2_msg_ctx_t *out_msg_ctx = NULL;
	axis2_msg_ctx_t **msg_ctx_map = NULL; 


	AXIS2_ENV_CHECK(env, AXIS2_CRITICAL_FAILURE);
	AXIS2_PARAM_CHECK(env->error, request, AXIS2_CRITICAL_FAILURE);
	AXIS2_PARAM_CHECK(env->error, request->request_uri, AXIS2_FALSE);

	if (!conf_ctx)
	{
		AXIS2_ERROR_SET(env->error, AXIS2_ERROR_NULL_CONFIGURATION_CONTEXT,
			AXIS2_FAILURE);
		return AXIS2_CRITICAL_FAILURE;
	}

	if (!request->content_type)
	{
		request->content_type = AXIS2_HTTP_HEADER_ACCEPT_TEXT_PLAIN;
	}

	/** creating the out stream */
	out_stream = axutil_stream_create_basic(env);

	if(request->transfer_encoding)
		axis2_msg_ctx_set_transfer_encoding(request->msg_ctx, env, request->transfer_encoding);

	axis2_msg_ctx_set_server_side(request->msg_ctx , env, AXIS2_TRUE);
	msg_ctx = request->msg_ctx;
	peer_ip = request->remote_ip;

	if (peer_ip)
	{
		peer_property = axutil_property_create(env);
		axutil_property_set_value(peer_property, env, axutil_strdup(env, peer_ip));
		axis2_msg_ctx_set_property(msg_ctx, env, AXIS2_SVR_PEER_IP_ADDR, peer_property);
	}

	axis2_msg_ctx_set_transport_out_stream(msg_ctx, env, out_stream);

	ctx_uuid = axutil_uuid_gen(env);
	if (ctx_uuid)
	{
		axutil_string_t *uuid_str = axutil_string_create_assume_ownership(env, &ctx_uuid);
		axis2_msg_ctx_set_svc_grp_ctx_id(msg_ctx, env, uuid_str);
		axutil_string_free(uuid_str, env);
	}

	axis2_msg_ctx_set_out_transport_info(msg_ctx, env, &(request->out_transport_info->out_transport));

	if (request->accept_header)
	{
		axutil_array_list_t *accept_record_list = NULL;
		accept_record_list = axis2_http_transport_utils_process_accept_headers(env, 
			request->accept_header);
		if (accept_record_list &&  axutil_array_list_size(accept_record_list, env) > 0)
		{
			axis2_msg_ctx_set_http_accept_record_list(msg_ctx, env, accept_record_list);
		}
	}
	if(request->accept_charset_header)
	{
		axutil_array_list_t *accept_charset_record_list = NULL;
		accept_charset_record_list = axis2_http_transport_utils_process_accept_headers(env,
			request->accept_charset_header);
		if(accept_charset_record_list)
		{
			axis2_msg_ctx_set_http_accept_charset_record_list(msg_ctx, env,
				accept_charset_record_list);
		}
	}
	if(request->accept_language_header)
	{
		axutil_array_list_t *accept_language_record_list = NULL;
		accept_language_record_list = axis2_http_transport_utils_process_accept_headers(env,
			request->accept_language_header);
		if(accept_language_record_list)
		{
			axis2_msg_ctx_set_http_accept_language_record_list(msg_ctx, env,
				accept_language_record_list);
		}
	}
	
	if(request->soap_action)
	{
		soap_action = axutil_string_create(env, request->soap_action);	
	}

	if (request->request_method == AXIS2_HTTP_METHOD_GET || 
		request->request_method == AXIS2_HTTP_METHOD_DELETE ||
		request->request_method == AXIS2_HTTP_METHOD_HEAD)
	{

		if (request->request_method == AXIS2_HTTP_METHOD_DELETE)
		{
			processed = axis2_http_transport_utils_process_http_delete_request
				(env, request->msg_ctx, request->in_stream, out_stream,
				request->content_type, soap_action, request->request_uri, conf_ctx,
				axis2_http_transport_utils_get_request_params(env, request->request_uri));
		}
		else if (request->request_method == AXIS2_HTTP_METHOD_HEAD)
		{
			processed = axis2_http_transport_utils_process_http_head_request
				(env, request->msg_ctx, request->in_stream, out_stream,
				request->content_type, soap_action, request->request_uri,
				conf_ctx, axis2_http_transport_utils_get_request_params(env, request->request_uri));	
		}
		else if(request->request_method == AXIS2_HTTP_METHOD_GET)
		{
			processed = axis2_http_transport_utils_process_http_get_request
				(env, request->msg_ctx, request->in_stream, out_stream,
				request->content_type, soap_action, request->request_uri ,
				conf_ctx, 
				axis2_http_transport_utils_get_request_params(env, request->request_uri));
		}
		if (AXIS2_FALSE == processed)
		{
			axis2_bool_t is_services_path = AXIS2_FALSE;
			int msg_ctx_status_code = axis2_msg_ctx_get_status_code(msg_ctx, env);
			if (request->request_method != AXIS2_HTTP_METHOD_DELETE && request->request_url_prefix)
			{
				axis2_char_t *temp = NULL;
				temp = strstr(request->request_uri, request->request_url_prefix);
				if (temp)
				{
					temp += strlen(request->request_url_prefix);
					if (*temp == '/')
					{
						temp++;
					}
					if (!*temp || *temp == '?' || *temp == '#')
					{
						is_services_path = AXIS2_TRUE;
					}
				}
			}
			if (is_services_path)
			{
				body_string = axis2_http_transport_utils_get_services_html(env, conf_ctx);
				response->content_type = AXIS2_HTTP_HEADER_ACCEPT_TEXT_HTML;
				response->http_status_code = AXIS2_HTTP_RESPONSE_OK_CODE_VAL;
				response->http_status_code_name = AXIS2_HTTP_RESPONSE_OK_CODE_NAME;
			}
			else if (AXIS2_HTTP_METHOD_DELETE != request->request_method)
			{		
				axis2_char_t *wsdl = NULL;
				wsdl = strstr(request->request_uri, AXIS2_REQUEST_WSDL);
				if(wsdl)
				{
					body_string = axis2_http_transport_utils_get_services_static_wsdl(env,
									conf_ctx, request->request_uri);
					request->content_type = AXIS2_HTTP_HEADER_ACCEPT_TEXT_XML;
					response->http_status_code = AXIS2_HTTP_RESPONSE_OK_CODE_VAL;
					response->http_status_code_name = AXIS2_HTTP_RESPONSE_OK_CODE_NAME;
				}
			}
			else if (env->error->error_number == AXIS2_ERROR_SVC_OR_OP_NOT_FOUND)
			{
				axutil_array_list_t *method_list = NULL;
				int size = 0;
				method_list = axis2_msg_ctx_get_supported_rest_http_methods(msg_ctx, env);
				size = axutil_array_list_size(method_list, env);

				if (method_list && size)
				{
					/** 405 */
					body_string = axis2_http_transport_utils_get_method_not_allowed(env, conf_ctx);

					response->http_status_code = AXIS2_HTTP_RESPONSE_METHOD_NOT_ALLOWED_CODE_VAL;
					response->http_status_code_name = AXIS2_HTTP_RESPONSE_METHOD_NOT_ALLOWED_CODE_NAME;
				}else 
				{
					/** 404  */
					body_string = axis2_http_transport_utils_get_not_found(env, conf_ctx);
					response->http_status_code = AXIS2_HTTP_RESPONSE_NOT_FOUND_CODE_VAL;
					response->http_status_code_name = AXIS2_HTTP_RESPONSE_NOT_FOUND_CODE_NAME;
				}
			}
			else if (msg_ctx_status_code == AXIS2_HTTP_RESPONSE_BAD_REQUEST_CODE_VAL)
			{
				/* 400, Bad Request */
				body_string = axis2_http_transport_utils_get_bad_request(env, conf_ctx);
				response->http_status_code = AXIS2_HTTP_RESPONSE_BAD_REQUEST_CODE_VAL;
				response->http_status_code_name = AXIS2_HTTP_RESPONSE_BAD_REQUEST_CODE_NAME;

			}
			else if (msg_ctx_status_code == AXIS2_HTTP_RESPONSE_REQUEST_TIMEOUT_CODE_VAL)
			{
				/* 408, Request Timeout */
				body_string = axis2_http_transport_utils_get_request_timeout(env, conf_ctx);
				response->http_status_code = AXIS2_HTTP_RESPONSE_REQUEST_TIMEOUT_CODE_VAL;
				response->http_status_code_name = AXIS2_HTTP_RESPONSE_REQUEST_TIMEOUT_CODE_NAME;
			}
			else if (msg_ctx_status_code == AXIS2_HTTP_RESPONSE_CONFLICT_CODE_VAL)
			{
				/* 409, Conflict Types */
				body_string = axis2_http_transport_utils_get_conflict(env, conf_ctx);
				response->http_status_code = AXIS2_HTTP_RESPONSE_CONFLICT_CODE_VAL;
				response->http_status_code_name = AXIS2_HTTP_RESPONSE_CONFLICT_CODE_NAME;
			}
			else if(msg_ctx_status_code == AXIS2_HTTP_RESPONSE_GONE_CODE_VAL)
			{
				/* 410, Gone. Resource no longer available */
				body_string = axis2_http_transport_utils_get_gone(env, conf_ctx);
				response->http_status_code = AXIS2_HTTP_RESPONSE_GONE_CODE_VAL;
				response->http_status_code_name = AXIS2_HTTP_RESPONSE_GONE_CODE_NAME;

			}
			else if(msg_ctx_status_code == AXIS2_HTTP_RESPONSE_PRECONDITION_FAILED_CODE_VAL)
			{
				/*410, Precondition for the url failed  */
				body_string = axis2_http_transport_utils_get_precondition_failed(env, conf_ctx);
				response->http_status_code = AXIS2_HTTP_RESPONSE_PRECONDITION_FAILED_CODE_VAL;
				response->http_status_code_name = AXIS2_HTTP_RESPONSE_PRECONDITION_FAILED_CODE_NAME;

			}
			else if(msg_ctx_status_code == AXIS2_HTTP_RESPONSE_REQUEST_ENTITY_TOO_LARGE_CODE_VAL)
			{
				/* 413, Request entity too large */
				body_string = axis2_http_transport_utils_get_request_entity_too_large(env, conf_ctx);
				response->http_status_code = AXIS2_HTTP_RESPONSE_REQUEST_ENTITY_TOO_LARGE_CODE_VAL;
				response->http_status_code_name = AXIS2_HTTP_RESPONSE_REQUEST_ENTITY_TOO_LARGE_CODE_NAME;
			}
			else if(msg_ctx_status_code == AXIS2_HTTP_RESPONSE_SERVICE_UNAVAILABLE_CODE_VAL)
			{	
				/* 513, Service Unavailable */
				body_string = axis2_http_transport_utils_get_service_unavailable(env, conf_ctx);
				response->http_status_code = AXIS2_HTTP_RESPONSE_SERVICE_UNAVAILABLE_CODE_VAL;
				response->http_status_code_name = AXIS2_HTTP_RESPONSE_SERVICE_UNAVAILABLE_CODE_NAME;
			}
			else
			{
				/* 500, Internal Server Error */
				body_string = axis2_http_transport_utils_get_internal_server_error(env, conf_ctx);
				response->http_status_code = AXIS2_HTTP_RESPONSE_INTERNAL_SERVER_ERROR_CODE_VAL;
				response->http_status_code_name = AXIS2_HTTP_RESPONSE_INTERNAL_SERVER_ERROR_CODE_NAME;
			}

			if (body_string)
			{
				response->response_data = body_string;
				response->response_data_length = axutil_strlen(body_string);
			}
			status = AXIS2_SUCCESS;
		}
	}
	else if (AXIS2_HTTP_METHOD_POST == request->request_method || 
		AXIS2_HTTP_METHOD_PUT == request->request_method)
	{
		if (AXIS2_HTTP_METHOD_POST == request->request_method)
		{
			processed = axis2_http_transport_utils_process_http_post_request
				(env, request->msg_ctx, request->in_stream, out_stream, request->content_type, 
					request->content_length, soap_action, request->request_uri);
		}
		else
		{
			processed = axis2_http_transport_utils_process_http_put_request
				(env, request->msg_ctx, request->in_stream, out_stream, request->content_type, 
				request->content_length, soap_action, request->request_uri);
		}
		if (AXIS2_FAILURE == processed && (AXIS2_HTTP_METHOD_PUT == request->request_method || 
			axis2_msg_ctx_get_doing_rest(msg_ctx, env)))
		{
			
			if (env->error->error_number == AXIS2_ERROR_SVC_OR_OP_NOT_FOUND)
			{
				axutil_array_list_t *method_list = NULL;
				int size = 0;
				method_list = axis2_msg_ctx_get_supported_rest_http_methods(msg_ctx, env);
				size = axutil_array_list_size(method_list, env);
				if (method_list && size)
				{
					/** 405 */
					body_string = axis2_http_transport_utils_get_method_not_allowed(env, conf_ctx);
					response->http_status_code = AXIS2_HTTP_RESPONSE_METHOD_NOT_ALLOWED_CODE_VAL;
					response->http_status_code_name = AXIS2_HTTP_RESPONSE_METHOD_NOT_ALLOWED_CODE_NAME;
				}
				else
				{
					/** 404  */
					body_string = axis2_http_transport_utils_get_not_found(env, conf_ctx);
					response->http_status_code = AXIS2_HTTP_RESPONSE_NOT_FOUND_CODE_VAL;
					response->http_status_code_name = AXIS2_HTTP_RESPONSE_NOT_FOUND_CODE_NAME;
				}
				request->content_type = AXIS2_HTTP_HEADER_ACCEPT_TEXT_HTML;
			}
			else
			{
				/* 500, Internal Server Error */
				body_string = axis2_http_transport_utils_get_internal_server_error(env, conf_ctx);
				response->http_status_code = AXIS2_HTTP_RESPONSE_INTERNAL_SERVER_ERROR_CODE_VAL;
				response->http_status_code_name = AXIS2_HTTP_RESPONSE_INTERNAL_SERVER_ERROR_CODE_NAME;

			}

			if (body_string)
			{
				response->response_data = body_string;
				response->response_data_length = axutil_strlen(body_string);
			}
			status = AXIS2_SUCCESS;
		}
		else if (processed == AXIS2_FAILURE)
		{
			axis2_msg_ctx_t *fault_ctx = NULL;
			axis2_char_t *fault_code = NULL;
			axis2_engine_t *engine = axis2_engine_create(env, conf_ctx);
			if (!engine)
			{
				/* Critical error, cannot proceed, send defaults document for 500 */
				return AXIS2_CRITICAL_FAILURE;
			}
			if (axis2_msg_ctx_get_is_soap_11(msg_ctx, env))
			{
				fault_code = AXIOM_SOAP_DEFAULT_NAMESPACE_PREFIX ":"
					AXIOM_SOAP11_FAULT_CODE_SENDER;
			}
			else
			{
				fault_code = AXIOM_SOAP_DEFAULT_NAMESPACE_PREFIX ":"
					AXIOM_SOAP12_SOAP_FAULT_VALUE_SENDER;
			}
			fault_ctx = axis2_engine_create_fault_msg_ctx(engine, env, request->msg_ctx,
				fault_code, axutil_error_get_message(env->error));

			axis2_engine_send_fault(engine, env, fault_ctx);
			if (out_stream)
			{
				response->response_data  = axutil_stream_get_buffer(out_stream, env);				
				response->response_data_length = axutil_stream_get_len (out_stream, env);								
			}
			/* In case of a SOAP Fault, we have to set the status to 500, but still return */
			status = AXIS2_SUCCESS;
			response->http_status_code = AXIS2_HTTP_RESPONSE_INTERNAL_SERVER_ERROR_CODE_VAL;
			response->http_status_code_name = AXIS2_HTTP_RESPONSE_INTERNAL_SERVER_ERROR_CODE_NAME;
		}
	}
	else
	{
		response->response_data = axis2_http_transport_utils_get_not_implemented(env, conf_ctx);
		request->content_type = AXIS2_HTTP_HEADER_ACCEPT_TEXT_HTML;

		if (response->response_data)
		{
			response->response_data_length = axutil_strlen(response->response_data);
		}
		response->http_status_code = AXIS2_HTTP_RESPONSE_NOT_IMPLEMENTED_CODE_VAL;
		response->http_status_code_name = AXIS2_HTTP_RESPONSE_NOT_IMPLEMENTED_CODE_NAME;
		status = AXIS2_SUCCESS;
	}

	op_ctx = axis2_msg_ctx_get_op_ctx(msg_ctx, env);

	if (op_ctx)
	{
		msg_ctx_map = axis2_op_ctx_get_msg_ctx_map(op_ctx, env);
		out_msg_ctx = msg_ctx_map[AXIS2_WSDL_MESSAGE_LABEL_OUT];
		response->msg_ctx = out_msg_ctx;
	}

	if (status == AXIS2_FAILURE)
	{
		axis2_bool_t do_rest = AXIS2_FALSE;
		if (AXIS2_HTTP_METHOD_POST != request->request_method || 
			axis2_msg_ctx_get_doing_rest(msg_ctx, env))
		{
			do_rest = AXIS2_TRUE;
		}
		if ((request->accept_header || request->accept_charset_header ||
			request->accept_language_header) && do_rest)
		{
			axis2_char_t *content_type_header_value = NULL;
			axis2_char_t *temp = NULL;
			axis2_char_t *language_header_value = NULL;

			content_type_header_value = (axis2_char_t *) request->content_type;
			language_header_value = axis2_msg_ctx_get_content_language(out_msg_ctx,env);
			if (content_type_header_value)
			{
				temp = axutil_strdup(env, content_type_header_value);
			}
			if (temp)
			{
				axis2_char_t *content_type = NULL;
				axis2_char_t *char_set = NULL;
				axis2_char_t *temp2 = NULL;

				temp2 = strchr(temp, ';');
				if (temp2)
				{
					*temp2 = '\0';
					temp2++;
					char_set = axutil_strcasestr(temp2, AXIS2_HTTP_CHAR_SET_ENCODING);
				}
				if (char_set)
				{
					char_set = axutil_strltrim(env, char_set, " \t=");
				}
				if (char_set)
				{
					temp2 = strchr(char_set, ';');
				}
				if (temp2)
				{
					*temp2 = '\0';
				}
				content_type = axutil_strtrim(env, temp, NULL);

				if (temp)
				{
					AXIS2_FREE(env->allocator, temp);
					temp = NULL;
				}
				if (content_type && request->accept_header &&
					!axutil_strcasestr(request->accept_header, content_type))
				{
					temp2 = strchr(content_type, '/');
					if (temp2)
					{
						*temp2 = '\0';
						temp = AXIS2_MALLOC(env->allocator,
							sizeof(axis2_char_t) * ((int)strlen(content_type) + 3));
						if (!temp)
						{
							AXIS2_ERROR_SET(env->error, AXIS2_ERROR_NO_MEMORY, AXIS2_FAILURE);
							return AXIS2_FALSE;
						}
						sprintf(temp, "%s/*", content_type);
						if (!axutil_strcasestr(request->accept_header, temp) &&
							!strstr(request->accept_header, AXIS2_HTTP_HEADER_ACCEPT_ALL))
						{
							response->response_data = 
								axis2_http_transport_utils_get_not_acceptable(env, conf_ctx);
							response->content_type = AXIS2_HTTP_HEADER_ACCEPT_TEXT_HTML;
							if (response->response_data)
							{
								response->response_data_length = axutil_strlen(response->response_data);
							}
							response->http_status_code = AXIS2_HTTP_RESPONSE_NOT_ACCEPTABLE_CODE_VAL;
							response->http_status_code_name = AXIS2_HTTP_RESPONSE_NOT_IMPLEMENTED_CODE_NAME;
							status = AXIS2_TRUE;
						}
						AXIS2_FREE(env->allocator, temp);
					}
				}
				if (content_type)
				{
					AXIS2_FREE(env->allocator, content_type);
				}
				if (char_set && request->accept_charset_header && 
					!axutil_strcasestr(request->accept_charset_header , char_set))
				{
					response->response_data = 
						axis2_http_transport_utils_get_not_acceptable(env, conf_ctx);
					response->content_type = AXIS2_HTTP_HEADER_ACCEPT_TEXT_HTML;

					if (response->response_data)
					{
						response->response_data_length= axutil_strlen(response->response_data);
					}
					status = AXIS2_SUCCESS;
					response->http_status_code = AXIS2_HTTP_RESPONSE_NOT_ACCEPTABLE_CODE_VAL;
					response->http_status_code_name = AXIS2_HTTP_RESPONSE_NOT_ACCEPTABLE_CODE_NAME;
				}
				if (char_set)
				{
					AXIS2_FREE(env->allocator, char_set);
				}
			}
			if (language_header_value)
			{
				if (request->accept_language_header &&
					!axutil_strcasestr(request->accept_language_header	, language_header_value))
				{
					response->response_data = 
						axis2_http_transport_utils_get_not_acceptable(env, conf_ctx);
					response->content_type = AXIS2_HTTP_HEADER_ACCEPT_TEXT_HTML;
					if (response->response_data)
					{
						response->response_data_length = axutil_strlen(response->response_data);
					}
					response->http_status_code = AXIS2_HTTP_RESPONSE_NOT_ACCEPTABLE_CODE_VAL;
					response->http_status_code_name = AXIS2_HTTP_RESPONSE_NOT_ACCEPTABLE_CODE_NAME;
				}
			}
		}
	}
	if (status == AXIS2_FAILURE)
	{
		axis2_bool_t do_rest = AXIS2_FALSE;
		if (AXIS2_HTTP_METHOD_POST != request->request_method ||
			axis2_msg_ctx_get_doing_rest(msg_ctx, env))
		{
			do_rest = AXIS2_TRUE;
		}
		if (op_ctx && axis2_op_ctx_get_response_written(op_ctx, env))
		{
			if (do_rest)
			{
				if (out_msg_ctx)
				{
					int size = 0;
					axutil_array_list_t *output_header_list = NULL;
					output_header_list = axis2_msg_ctx_get_http_output_headers(out_msg_ctx, env);
					if (output_header_list)
					{
						size = axutil_array_list_size(output_header_list, env);
						response->output_headers = output_header_list;
					}
					
					if (axis2_msg_ctx_get_status_code(out_msg_ctx, env))
					{
						int status_code = axis2_msg_ctx_get_status_code(out_msg_ctx, env);
						response->http_status_code = 
							axis2_http_transport_utils_check_status_code(status_code);
						status = AXIS2_SUCCESS;
					}
				}
			}
			if (status == AXIS2_FAILURE)
			{
				status = AXIS2_SUCCESS;
				if (out_stream)
				{
					response->response_data = axutil_stream_get_buffer(out_stream, env);
					response->response_data_length = axutil_stream_get_len(out_stream, env);
					response->http_status_code = AXIS2_HTTP_RESPONSE_OK_CODE_VAL;
					response->http_status_code_name = AXIS2_HTTP_RESPONSE_OK_CODE_NAME;
				}
			}
		}
		else if (op_ctx)
		{
			if (do_rest)
			{
				if (out_msg_ctx)
				{
					int size = 0;
					axutil_array_list_t *output_header_list = NULL;
					output_header_list = axis2_msg_ctx_get_http_output_headers(out_msg_ctx, env);
					if (output_header_list)
					{
						size = axutil_array_list_size(output_header_list, env);
						response->output_headers = output_header_list;
					}
					if (axis2_msg_ctx_get_no_content(out_msg_ctx, env))
					{
						if (axis2_msg_ctx_get_status_code(out_msg_ctx, env))
						{
							int status_code = axis2_msg_ctx_get_status_code(out_msg_ctx, env);
							switch (status_code)
							{
								case AXIS2_HTTP_RESPONSE_RESET_CONTENT_CODE_VAL:
									response->http_status_code = AXIS2_HTTP_RESPONSE_RESET_CONTENT_CODE_VAL;				
									break;
								case AXIS2_HTTP_RESPONSE_NOT_MODIFIED_CODE_VAL:
									response->http_status_code = AXIS2_HTTP_RESPONSE_NOT_MODIFIED_CODE_VAL;				
									break;
								default:
									response->http_status_code = AXIS2_HTTP_RESPONSE_NO_CONTENT_CODE_VAL;
									break;
								}
							}
							else
							{
								response->http_status_code = AXIS2_HTTP_RESPONSE_NO_CONTENT_CODE_VAL;
							}
							status = AXIS2_SUCCESS;
					}
					else if (axis2_msg_ctx_get_status_code(out_msg_ctx, env))
					{
						int status_code = axis2_msg_ctx_get_status_code(out_msg_ctx, env);
						response->http_status_code = 
							axis2_http_transport_utils_check_status_code(status_code);
						status = AXIS2_SUCCESS;
					}
				}
			}
			if (status == AXIS2_FAILURE)
			{
				response->http_status_code = AXIS2_HTTP_RESPONSE_ACK_CODE_VAL;
				response->http_status_code_name = AXIS2_HTTP_RESPONSE_ACK_CODE_NAME;
				status = AXIS2_SUCCESS;
			}
		}
		else
		{
			status = AXIS2_SUCCESS;
			response->http_status_code = AXIS2_HTTP_RESPONSE_ACK_CODE_VAL;
			response->http_status_code_name = AXIS2_HTTP_RESPONSE_ACK_CODE_NAME;
		}
	}
	axutil_string_free(soap_action, env);
	msg_ctx = NULL;
	
	return status;
}

/* This method takes an array_list as the input. It has items some 
   may be buffers and some may be files. This will send these part
   one by one to the wire using the chunked stream.*/

AXIS2_EXTERN axis2_status_t AXIS2_CALL  
axis2_http_transport_utils_send_mtom_message(
    axutil_http_chunked_stream_t * chunked_stream,
    const axutil_env_t * env,
    axutil_array_list_t *mime_parts,
    axis2_char_t *sending_callback_name)
{
    int i = 0;
    axiom_mime_part_t *mime_part = NULL;
    axis2_status_t status = AXIS2_SUCCESS;
    int written = 0;
    int len = 0;    

    if(mime_parts)
    {
        for(i = 0; i < axutil_array_list_size
                (mime_parts, env); i++)
        {
            mime_part = (axiom_mime_part_t *)axutil_array_list_get(
                mime_parts, env, i);
            
            /* If it is a buffer just write it to the wire. This includes mime_bounadaries,
             * mime_headers and SOAP */
            
            if((mime_part->type) == AXIOM_MIME_PART_BUFFER)
            {
                written = 0;
                while(written < mime_part->part_size)
                {
                    len = 0;
                    len = axutil_http_chunked_stream_write(chunked_stream, env,
                        mime_part->part + written, mime_part->part_size - written);
                    if (len == -1)
                    {
                        status = AXIS2_FAILURE;
                        break;
                    }
                    else
                    {
                        written += len;
                    }
                }
            }
            
            /* If it is a file we load a very little portion to memory 
             * and send it as chunked , we keep on doing this until we find
             * the end of the file */ 
            else if((mime_part->type) == AXIOM_MIME_PART_FILE)
            {
                FILE *f = NULL;
                axis2_byte_t *output_buffer = NULL;                
                int output_buffer_size = 0;

                f = fopen(mime_part->file_name, "rb");
                if (!f)
                {
                    AXIS2_LOG_ERROR(env->log, AXIS2_LOG_SI,
                        "Error opening file %s for reading",
                    mime_part->file_name);
                    return AXIS2_FAILURE;
                }
                
                /*If the part_size is less than the defined buffer size then 
                 *from the first write to the wire we can send the file */
                
                if(mime_part->part_size > AXIS2_MTOM_OUTPUT_BUFFER_SIZE)
                {
                    output_buffer_size = AXIS2_MTOM_OUTPUT_BUFFER_SIZE;
                }
                else
                {
                    output_buffer_size = mime_part->part_size;
                }
               
                output_buffer =  AXIS2_MALLOC(env->allocator, 
                    (output_buffer_size + 1) * sizeof(axis2_char_t));
 
                /*This is the method responsible for writing to the wire */    
                status = axis2_http_transport_utils_send_attachment_using_file(env, chunked_stream, 
                    f, output_buffer, output_buffer_size);
                if(status == AXIS2_FAILURE)
                {
                    return status;
                }
            }
            else if((mime_part->type) == AXIOM_MIME_PART_CALLBACK) 
            {
                void *handler = NULL;
                axiom_mtom_sending_callback_t *callback = NULL;

                handler = axis2_http_transport_utils_initiate_callback(env, 
                    sending_callback_name, mime_part->user_param, &callback);

                if(handler)
                {
                    status = axis2_http_transport_utils_send_attachment_using_callback(env, 
                        chunked_stream, callback, handler, mime_part->user_param);
                }
                else
                {
                    AXIS2_LOG_ERROR(env->log, AXIS2_LOG_SI, "MTOM Sending Callback loading failed");
                    status = AXIS2_FAILURE;
                }               

                if(callback)
                {
                    axutil_param_t *param = NULL;
                    
                    param = callback->param;

                    AXIOM_MTOM_SENDING_CALLBACK_FREE(callback, env);
                    callback = NULL;
                    if(param)
                    {
                        axutil_param_free(param, env);
                        param = NULL;    
                    }
                }

                if(status == AXIS2_FAILURE)
                {
                    return status;
                }
            }
            else
            {
                AXIS2_LOG_ERROR(env->log, AXIS2_LOG_SI, "Unknown mime_part.");
                return AXIS2_FAILURE;
            }
            if(status == AXIS2_FAILURE)
            {
                break;
            }
        }
        if(status == AXIS2_SUCCESS)
        {
           /* send the end of chunk */
            axutil_http_chunked_stream_write_last_chunk(chunked_stream, env);
            return AXIS2_SUCCESS;
        }
        else
        {
            return status;
        }
    }    
    else
    {
        AXIS2_LOG_ERROR(env->log, AXIS2_LOG_SI, "Cannot send the attachment.Mime"
                "Parts are not set properly.");
        return AXIS2_FAILURE;
    }    
}


static axis2_status_t
axis2_http_transport_utils_send_attachment_using_file(
    const axutil_env_t * env,
    axutil_http_chunked_stream_t *chunked_stream,
    FILE *fp,
    axis2_byte_t *buffer,
    int buffer_size)
{

    int count = 0;     
    int len = 0;
    int written = 0;
    axis2_status_t status = AXIS2_SUCCESS;   
 
    /*We do not load the whole file to memory. Just load a buffer_size portion
     *and send it. Keep on doing this until the end of file */
    
    do
    {
        count = (int)fread(buffer, 1, buffer_size + 1, fp);
        if (ferror(fp))
        {
            AXIS2_LOG_ERROR(env->log, AXIS2_LOG_SI,
                "Error in reading file containg the attachment");
            if (buffer)
            {
                AXIS2_FREE(env->allocator, buffer);
                buffer = NULL;
            }
            fclose(fp);
            return AXIS2_FAILURE;
        }

        /*Writing the part we loaded to memory to the wire*/
        if(count > 0)
        {
            written = 0;
            while(written < count)
            {
                len = 0;
                len = axutil_http_chunked_stream_write(chunked_stream, env,
                    buffer + written, count - written);
                if (len == -1)
                {
                    status = AXIS2_FAILURE;
                    break;
                }
                else
                {
                    written += len;
                }
            }
        }
        else
        {
            if (buffer)
            {
                AXIS2_FREE(env->allocator, buffer);
                buffer = NULL;
            }
            fclose(fp);
            return AXIS2_FAILURE;
        }  
        
        /*We keep on loading the next part to the same buffer. So need to reset 
         * te buffer */
        memset(buffer, 0, buffer_size);    
        if(status == AXIS2_FAILURE)
        {
            if (buffer)
            {
                AXIS2_FREE(env->allocator, buffer);
                buffer = NULL;
            }
            fclose(fp);
            return AXIS2_FAILURE;
        } 
    }
    while(!feof(fp));
    
    if(buffer)
    {
        AXIS2_FREE(env->allocator, buffer);    
        buffer = NULL;
    }

    fclose(fp);
    return AXIS2_SUCCESS;    
}

AXIS2_EXTERN void AXIS2_CALL axis2_http_transport_utils_destroy_mime_parts(
    axutil_array_list_t *mime_parts,
    const axutil_env_t *env)
{
    if (mime_parts)
    {
        int i = 0;
        for (i = 0; i < axutil_array_list_size(mime_parts, env); i++)
        {
            axiom_mime_part_t *mime_part = NULL;
            mime_part = (axiom_mime_part_t *)
                axutil_array_list_get(mime_parts, env, i);
            if (mime_part)
            {
                axiom_mime_part_free(mime_part, env);
            }
        }
        axutil_array_list_free(mime_parts, env);
    }
}

AXIS2_EXTERN void *AXIS2_CALL axis2_http_transport_utils_initiate_callback(
    const axutil_env_t *env,
    axis2_char_t *callback_name,
    void *user_param,
    axiom_mtom_sending_callback_t **callback)
{

    axutil_dll_desc_t *dll_desc = NULL;
    axutil_param_t *impl_info_param = NULL;
    void *ptr = NULL;

    if(callback_name)
    {
        AXIS2_LOG_DEBUG(env->log, AXIS2_LOG_SI, "Trying to load module = %s",
                callback_name);
        dll_desc = axutil_dll_desc_create(env);
        axutil_dll_desc_set_name(dll_desc, env, callback_name);
        impl_info_param = axutil_param_create(env, NULL, dll_desc);
        /*Set the free function*/
        axutil_param_set_value_free(impl_info_param, env, axutil_dll_desc_free_void_arg);
        axutil_class_loader_init(env);
        ptr = axutil_class_loader_create_dll(env, impl_info_param);

        if (!ptr)
        {
            AXIS2_LOG_ERROR(env->log, AXIS2_LOG_SI,
                "Unable to load the module %s. ERROR", callback_name);
            return NULL;
        }

        *callback =  (axiom_mtom_sending_callback_t *)ptr;
        (*callback)->param = impl_info_param;

        return AXIOM_MTOM_SENDING_CALLBACK_INIT_HANDLER(*callback, env, user_param);
    }

    else
    {
        return NULL;
    }
}

static axis2_status_t
axis2_http_transport_utils_send_attachment_using_callback(
    const axutil_env_t * env,
    axutil_http_chunked_stream_t *chunked_stream,
    axiom_mtom_sending_callback_t *callback,
    void *handler,
    void *user_param)
{
    int count = 0;     
    int len = 0;
    int written = 0;
    axis2_status_t status = AXIS2_SUCCESS;   
    axis2_char_t *buffer = NULL;
 
    /* Keep on loading the data in a loop until 
     * all the data is sent */   

    while((count = AXIOM_MTOM_SENDING_CALLBACK_LOAD_DATA(callback, env, handler, &buffer)) > 0)
    {
        written = 0;
        while(written < count)
        {
            len = 0;
            len = axutil_http_chunked_stream_write(chunked_stream, env,
            buffer + written, count - written);
            if(len == -1)
            {
                status = AXIS2_FAILURE;
                break;
            }
            else
            {
                written += len;
            }
        }
    }

    if (status == AXIS2_FAILURE)
    {
        AXIOM_MTOM_SENDING_CALLBACK_CLOSE_HANDLER(callback, env, handler);
        return status;
    }
    
    status = AXIOM_MTOM_SENDING_CALLBACK_CLOSE_HANDLER(callback, env, handler);
    return status;    
}


AXIS2_EXTERN axis2_bool_t AXIS2_CALL axis2_http_transport_utils_is_callback_required(
    const axutil_env_t *env,
    axutil_array_list_t *mime_parts)
{
    int size = 0;
    int i = 0;
    axiom_mime_part_t *mime_part = NULL;
    axis2_bool_t is_required = AXIS2_FALSE;

    size = axutil_array_list_size(mime_parts, env);

    for(i = 0; i < size; i++)
    {
        mime_part = (axiom_mime_part_t *)axutil_array_list_get(mime_parts, env, i);    
        if(mime_part)
        {
            if(mime_part->type == AXIOM_MIME_PART_CALLBACK)
            {
                is_required = AXIS2_TRUE;
                break;
            }    
        }
    }

    return is_required;

}



<|start_filename|>guththila/src/guththila_xml_parser.c<|end_filename|>


/*
 * 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.
 */  
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include <ctype.h>
    
#include <guththila.h>
    
#define GUTHTHILA_VALIDATION_PARSER

/*
 * Read the next byte from the reader and return it.
 */
static int  
guththila_next_byte(guththila_t * m,int eof,const axutil_env_t * env);

/*
 * Read the next char from the reader and return it.
 */
static int  
guththila_next_char(guththila_t * m,int eof,const axutil_env_t * env);

/*
 * Read the specified number of characters at once.
 */
static int  
guththila_next_no_char( 
    guththila_t * m,
    int eof,
    int *code_points,
    size_t no,
    const axutil_env_t * env);

/*
 * Close a token that is opened previously. 
 */
static void 
guththila_token_close(
    guththila_t * m,
    guththila_token_t * tok,
    int tok_type,
    int referer,
    const axutil_env_t * env);

/* 
 * Process the XMl declaration part of a XML document.
 */
static int 
guththila_process_xml_dec(
    guththila_t * m,
    const axutil_env_t * env);

/* 
 * Read characters until all the white spaces are read.
 */
#ifndef GUTHTHILA_SKIP_SPACES
#define GUTHTHILA_SKIP_SPACES(m, c, _env)while(0x20 == c || 0x9 == c || 0xD == c || 0xA == c){c = guththila_next_char(m, 0, _env);}
#endif  
    
/*
 * Read character including new line until a non white space character is met.
 */
#ifndef GUTHTHILA_SKIP_SPACES_WITH_NEW_LINE
#define GUTHTHILA_SKIP_SPACES_WITH_NEW_LINE(m, c, _env) while (0x20 == c || 0x9 == c || 0xD == c || 0xA == c || '\n' == c){c = guththila_next_char(m, 0, _env);}
#endif  

#ifndef GUTHTHILA_XML_NAME
#define GUTHTHILA_XML_NAME "xml"
#endif

#ifndef GUTHTHILA_XML_URI
#define GUTHTHILA_XML_URI "http://www.w3.org/XML/1998/namespace"
#endif    

/* 
 * Return the last character that was read
 */
#ifndef GUTHTHILA_LAST_CHAR
#define GUTHTHILA_LAST_CHAR(m) (m->buffer.buff + m->buffer.next - 1)
#endif  

/*
 * Open a token. When we open a token we don't know it's type. We only 
 * set the starting values.
 */
#ifndef GUTHTHILA_TOKEN_OPEN
#define GUTHTHILA_TOKEN_OPEN(m, tok, _env)					\
    m->temp_tok = guththila_tok_list_get_token(&m->tokens, _env); \
    m->temp_tok->type = _Unknown; \
    m->temp_tok->_start = (int)m->next - (m->decoder->used_bytes - 1); \
    m->last_start = m->temp_tok->_start - 1;
/* We are sure that the difference lies within the int range */
#endif  
    
/*
 * Read until we met a = character.
 */
#ifndef GUTHTHILA_PROCESS_EQU
#define GUTHTHILA_PROCESS_EQU(m, c, ic, _env)							\
    GUTHTHILA_SKIP_SPACES(m, c, _env); \
    if (0x3D == c) { \
    ic = guththila_next_char(m, 0, _env); \
    GUTHTHILA_SKIP_SPACES(m, ic, _env); \
    }
#endif  
    
/*
 * Initialize a attribute to the values given.
 */
#ifndef GUTHTHILA_ATTRIBUTE_INITIALIZE
#define GUTHTHILA_ATTRIBUTE_INITIALIZE(_attr, _pref, _name, _val)	\
    (_attr->pref = (_pref)); \
    (_attr->name = (_name)); \
    (_attr->val = (_val));
#endif  
    
/*
 * Initialize namespace to the values given.
 */
#ifndef GUTHTHILA_NAMESPACE_INITIALIZE
#define GUTHTHILA_NAMESPACE_INITIALIZE(_namesp, _name, _uri)	\
    (_namesp->name = _name); \
    (_namesp->uri = _uri);
#endif  
    
/*
 * Return non zero value if the given argument is a space.
 */
#ifndef GUTHTHILA_IS_SPACE
#define GUTHTHILA_IS_SPACE(c) (0x20 == c || 0xD == c || 0xA == c || 0x9 == c)     
#endif  
    
/*
 * Deterine weather a given character is a valid xml string char.
 */
#ifndef GUTHTHILA_IS_VALID_STRING_CHAR
#define GUTHTHILA_IS_VALID_STRING_CHAR(c) (isalpha(c) || '_' == c || ':' == c)
#endif 

/*
 * Determine weahter a given character is a valid starting char for a xml name.
 */    
#ifndef GUTHTHILA_IS_VALID_STARTING_CHAR
#define GUTHTHILA_IS_VALID_STARTING_CHAR(c) (isalpha(c) || '_' == c || ':' == c)
#endif 

/*
 * Initialize the variables in the guththila_t structure.
 */
#ifndef GUTHTHILA_VARIABLE_INITIALZE
#define GUTHTHILA_VARIABLE_INITIALZE(m) \
    m->temp_prefix = NULL; \
    m->temp_name = NULL; \
    m->temp_tok = NULL; \
    if (m->value) guththila_tok_list_release_token(&m->tokens, m->value, env); \
    m->name = NULL; \
    m->prefix = NULL; \
    m->value = NULL;
#endif 

/*
 * Initialize the guththila_t structure with the reader. 
 * All the values will be set to default values. 
 */
GUTHTHILA_EXPORT int GUTHTHILA_CALL
guththila_init(guththila_t * m, void *reader, const axutil_env_t * env) 
{
    guththila_token_t* temp_name = NULL;
    guththila_token_t* temp_tok = NULL;
    guththila_elem_namesp_t* e_namesp = NULL;

    if (!((guththila_reader_t *) reader))
        return GUTHTHILA_FAILURE;
    m->reader = (guththila_reader_t *) reader;
    if (!guththila_tok_list_init(&m->tokens, env))
    {
        return GUTHTHILA_FAILURE;
    }
    if (m->reader->type == GUTHTHILA_MEMORY_READER)
    {
        guththila_buffer_init_for_buffer(&m->buffer, m->reader->buff,
                                          m->reader->buff_size, env);
    }
    else if (m->reader->type == GUTHTHILA_FILE_READER || m->reader->type == GUTHTHILA_IO_READER)
    {
        guththila_buffer_init(&m->buffer, 0, env);
    }
    guththila_stack_init(&m->elem, env);
    guththila_stack_init(&m->attrib, env);
    guththila_stack_init(&m->namesp, env);
    temp_name = guththila_tok_list_get_token(&m->tokens,env);
    temp_tok = guththila_tok_list_get_token(&m->tokens,env);
    if(temp_tok && temp_name)
    {
        guththila_set_token(temp_name,GUTHTHILA_XML_NAME,0,(int)strlen(GUTHTHILA_XML_NAME),
                                       1,0,0,env);

        guththila_set_token(temp_tok,GUTHTHILA_XML_URI,0,(int)strlen(GUTHTHILA_XML_URI),
                                      1,0,0,env);

    }
  
    e_namesp = (guththila_elem_namesp_t *) AXIS2_MALLOC(env->allocator,
                                                        sizeof(guththila_elem_namesp_t));
    if (e_namesp && temp_tok && temp_name)
    {
        e_namesp->namesp =
            (guththila_namespace_t *) AXIS2_MALLOC(env->allocator,
                                                   sizeof(guththila_namespace_t) * GUTHTHILA_NAMESPACE_DEF_SIZE);
    }
    if (e_namesp->namesp)
    {
        e_namesp->no = 1;
        e_namesp->size = GUTHTHILA_NAMESPACE_DEF_SIZE;
        e_namesp->namesp[0].name = temp_name;
        e_namesp->namesp[0].uri = temp_tok;
        guththila_stack_push(&m->namesp, e_namesp, env);
    }
    else
    {
        if (temp_name)
        {
            AXIS2_FREE(env->allocator, temp_name);
            temp_name = NULL;
        }
        if (temp_tok)
        {
            AXIS2_FREE(env->allocator, temp_tok);
            temp_tok = NULL;
        }
        if (e_namesp)
        {
            AXIS2_FREE(env->allocator, e_namesp);
            e_namesp = NULL;
        }
        return GUTHTHILA_FAILURE;
    }     
    m->decoder = guththila_utf8_decoder_create(env);
    if (!m->decoder)
    {
        if (temp_name)
        {
            AXIS2_FREE(env->allocator, temp_name);
            temp_name = NULL;
        }
        if (temp_tok)
        {
            AXIS2_FREE(env->allocator, temp_tok);
            temp_tok = NULL;
        }
        if (e_namesp)
        {
            AXIS2_FREE(env->allocator, e_namesp);
            e_namesp = NULL;
        }
        return GUTHTHILA_FAILURE;
    }
    m->name = NULL;
    m->prefix = NULL;
    m->value = NULL;
    m->status = S_1;
    m->guththila_event = -1;
    m->next = 0;
    m->last_start = -1;
    m->temp_name = NULL;
    m->temp_prefix = NULL;
    m->temp_tok = NULL;
    return GUTHTHILA_SUCCESS;
}


/*
 * Uninitialize a guththila_t structure. This method deallocates all the 
 * resources that are held in the guththila_t structure.
 */
GUTHTHILA_EXPORT int GUTHTHILA_CALL
guththila_un_init(guththila_t * m,const axutil_env_t * env) 
{
  int size = 0, i = 0, j = 0;
    guththila_attr_t * attr = NULL;
    guththila_element_t* elem = NULL;
	guththila_elem_namesp_t * e_namesp = NULL;

    if (m->prefix)
    {
        guththila_tok_list_release_token(&m->tokens, m->prefix, env);
    }
    if (m->name)
    {
        guththila_tok_list_release_token(&m->tokens, m->name, env);
    }
    if (m->value)
    {
        guththila_tok_list_release_token(&m->tokens, m->value, env);
    }
    if (m->temp_tok)
    {
        guththila_tok_list_release_token(&m->tokens, m->temp_tok, env);
    }
    if (m->temp_name)
    {
        guththila_tok_list_release_token(&m->tokens, m->temp_name, env);
    }
    if (m->temp_prefix)
    {
        guththila_tok_list_release_token(&m->tokens, m->temp_prefix, env);
    }
    size = GUTHTHILA_STACK_SIZE(m->attrib);
    for (i = 0; i < size; i++)
    {
        attr = (guththila_attr_t *) guththila_stack_pop(&m->attrib, env);
        if (attr)
        {
            if (attr->name)
                guththila_tok_list_release_token(&m->tokens, attr->name, env);
            if (attr->pref)
                guththila_tok_list_release_token(&m->tokens, attr->pref, env);
                AXIS2_FREE(env->allocator, attr);
        }
    }
    guththila_stack_un_init(&m->attrib, env);

#ifndef GUTHTHILA_VALIDATION_PARSER
    guththila_namespace_t * namesp = NULL;

    size = GUTHTHILA_STACK_SIZE(m->namesp);
    for (i = 0; i < size; i++)
    {
        namesp =
            (guththila_namespace_t *) guththila_stack_pop(&m->namesp, env);
        if (namesp)
        {
            if (namesp->name)
                guththila_tok_list_release_token(&m->tokens, namesp->name, env);
            if (namesp->uri)
                guththila_tok_list_release_token(&m->tokens, namesp->uri, env);
                AXIS2_FREE(env->allocator, namesp);
        }
    }
#else 
    

    size = GUTHTHILA_STACK_SIZE(m->namesp);
    for (i = 0; i < size; i++)
    {
        e_namesp =
            (guththila_elem_namesp_t *) guththila_stack_pop(&m->namesp, env);
        if(e_namesp)
        {
        for (j = 0; j < e_namesp->no; j++)
        {
            if(e_namesp->namesp[j].name)
            {
                guththila_tok_list_release_token(&m->tokens,e_namesp->namesp[j].name,env);
            }
            if(e_namesp->namesp[j].uri)
            {
                guththila_tok_list_release_token(&m->tokens,e_namesp->namesp[j].uri, env);
            }
        }
        AXIS2_FREE(env->allocator, e_namesp->namesp);
        AXIS2_FREE(env->allocator,e_namesp);
        }
    }
#endif  

    size = GUTHTHILA_STACK_SIZE(m->elem);
    for (i = 0; i < size; i++)
    {
        elem =
            (guththila_element_t *) guththila_stack_pop(&m->elem, env);
        if (elem)
        {
            if (elem->name)
                guththila_tok_list_release_token(&m->tokens, elem->name, env);
            if (elem->prefix)
                guththila_tok_list_release_token(&m->tokens, elem->prefix, env);
            AXIS2_FREE(env->allocator, elem);
        }
    }
    guththila_utf8_decoder_free(m->decoder, env);
    guththila_stack_un_init(&m->elem,env);   
    guththila_stack_un_init(&m->namesp, env);
    guththila_tok_list_free_data(&m->tokens, env);
    guththila_buffer_un_init(&m->buffer, env);
    AXIS2_FREE(env->allocator,m);
    return GUTHTHILA_SUCCESS;
}

/* 
 * Replace the references with the corresponding actual values.
 */ 
static void
guththila_string_evaluate_references(guththila_char_t *start, size_t size)
{
    size_t i, j;

    for (i = 0; (i < size) && (start[i] != '&'); i++)
        ;
    if (i < size)
    {
        j = i;
        while (i < size)
        {
            if (((i + 3) < size) && 
                (start[i + 1] == 'g') &&
                (start[i + 2] == 't') &&
                (start[i + 3] == ';'))
            {
                /* replace first char of sequence with > */
                start[j++] = '>';
                /* skip remainder of sequence */
                i += 4;
            }
            else if (((i + 3) < size) &&
                (start[i + 1] == 'l') &&
                (start[i + 2] == 't') &&
                (start[i + 3] == ';'))
            {
                /* replace first char of sequence with < */
                start[j++] = '<';
                /* skip remainder of sequence */
                i += 4;
            }
            else if (((i + 4) < size) &&
                (start[i + 1] == 'a') &&
                (start[i + 2] == 'm') &&
                (start[i + 3] == 'p') &&
                (start[i + 4] == ';'))
            {
                /* replace first char of sequence with & */
                start[j++] = '&';
                /* skip remainder of sequence */
                i += 5;
            }
            else if (((i + 5) < size) &&
                (start[i + 1] == 'a') &&
                (start[i + 2] == 'p') &&
                (start[i + 3] == 'o') &&
                (start[i + 4] == 's') &&
                (start[i + 5] == ';'))
            {
                /* replace first char of sequence with ' */
                start[j++] = '\'';
                /* skip remainder of sequence */
                i += 6;
            }
            else if (((i + 5) < size) &&
                (start[i + 1] == 'q') &&
                (start[i + 2] == 'u') &&
                (start[i + 3] == 'o') &&
                (start[i + 4] == 't') &&
                (start[i + 5] == ';'))
            {
                /* replace first char of sequence with " */
                start[j++] = '\"';
                /* skip remainder of sequence */
                i += 6;
            }
            else
            {
                /* ampersand does not start a sequence;
                   skip it and continue scanning */
                /* could insert character reference decoding here */
                start[j++] = start[i++];
            }
            /* copy characters downward until the next ampersand */
            for ( ; (i < size) && ('&' != (start[j] = start[i])); i++, j++)
                ;
        }
        start[j] = '\0';
    }
}

/*
 * Close a token. This method accepts the type of the token as a parameter.
 */
static void 
guththila_token_close(guththila_t * m, guththila_token_t * tok, 
					  int tok_type, int referer, 
					  const axutil_env_t * env) 
{
    guththila_attr_t * attr = NULL;
    guththila_element_t * elem = NULL;
    guththila_elem_namesp_t * e_namesp = NULL;
    guththila_namespace_t * namesp;
    int i = 0;
    /* We are sure that the difference lies within the short range */
    m->temp_tok->type = (short)tok_type;
    m->temp_tok->size = m->next - m->temp_tok->_start;
    m->temp_tok->start = GUTHTHILA_BUF_POS(m->buffer, m->next - 1) - m->temp_tok->size;
    m->temp_tok->ref = referer;
    m->last_start = -1;
    switch (tok_type)
    {
    case _attribute_name:
        m->temp_name = m->temp_tok;
        m->temp_tok = NULL;
        break;
    case _char_data:
        m->value = m->temp_tok;
        m->temp_tok = NULL;
        break;
    case _text_data:
        m->value = m->temp_tok;
        m->temp_tok = NULL;
        break;
    case _attribute_value:
        /* Chech weather we are at a xml namespace declaration */
        if ((m->temp_prefix && (guththila_tok_str_cmp(m->temp_prefix, "xmlns", 5u, env) == 0)) ||
            (guththila_tok_str_cmp(m->temp_name, "xmlns", 5u, env) == 0))
            /*checks inside the m->temp_name to parse the default namespace*/
            /*checks inside the m->temp_prefix to parse namespace with prefix*/
        {
#ifndef GUTHTHILA_VALIDATION_PARSER
            namesp =
                (guththila_namespace_t *)
                AXIS2_MALLOC(sizeof(guththila_namespace_t));
            GUTHTHILA_NAMESPACE_INITIALIZE(namesp, m->temp_name, m->temp_tok);
            guththila_stack_push(&m->namesp, namesp);            
#else   
            elem = (guththila_element_t *)guththila_stack_peek(&m->elem, env);
            /* This is the first namespace */
            if (elem && !elem->is_namesp)
            {
                e_namesp = (guththila_elem_namesp_t *) AXIS2_MALLOC(env->allocator,
                                                   sizeof(guththila_elem_namesp_t));
                if (e_namesp)
                {
                    e_namesp->namesp =
                        (guththila_namespace_t *) AXIS2_MALLOC(env->allocator,
                        sizeof(guththila_namespace_t) * GUTHTHILA_NAMESPACE_DEF_SIZE);
                   if (e_namesp->namesp)
                    {
                        e_namesp->no = 1;
                        e_namesp->size = GUTHTHILA_NAMESPACE_DEF_SIZE;
						e_namesp->namesp[0].name = m->temp_name;
						e_namesp->namesp[0].uri = m->temp_tok;
                        guththila_stack_push(&m->namesp, e_namesp, env);
                        elem->is_namesp = 1;
                    }
					else 
                    {
                        AXIS2_FREE(env->allocator, e_namesp);
                        e_namesp = NULL;
                    }
                }
            }     
            /* Already there is a namespace */       
            else if (elem && elem->is_namesp)
            {
                e_namesp = (guththila_elem_namesp_t *)guththila_stack_peek(&m->namesp, env);
                /* if we have enough space allocated */
				if (e_namesp->no < e_namesp->size)
				{
					e_namesp->namesp[e_namesp->no].name = m->temp_name;
					e_namesp->namesp[e_namesp->no].uri = m->temp_tok;
					e_namesp->no++;
				}
				else 
                {              
                    namesp =
                      (guththila_namespace_t *) AXIS2_MALLOC(env->allocator,
                       sizeof(guththila_namespace_t)*e_namesp->size *2);
                    if (namesp)
                    {
                        for (i = 0; i < e_namesp->no; i++)
                        {
                            namesp[i].name = e_namesp->namesp[i].name;
                            namesp[i].uri = e_namesp->namesp[i].uri;
                        }
                        AXIS2_FREE(env->allocator, e_namesp->namesp);
                        e_namesp->namesp = namesp;
                        e_namesp->size *= 2;

						e_namesp->namesp[e_namesp->no].name = m->temp_name;
						e_namesp->namesp[e_namesp->no].uri = m->temp_tok;
						e_namesp->no++;
                    }
                }
            }            
#endif  
        }        
        else
        {
            /* It is just a attribute */
            attr = (guththila_attr_t *) AXIS2_MALLOC(env->allocator,
                                                  sizeof(guththila_attr_t));           

            GUTHTHILA_ATTRIBUTE_INITIALIZE(attr,
                                            m->temp_prefix,
                                            m->temp_name,
                                            m->temp_tok);
            guththila_stack_push(&m->attrib, attr, env);                                                                        
        }
        m->temp_prefix = NULL;
        m->temp_name = NULL;
        m->temp_tok = NULL;
        break;
    case _prefix:
        m->temp_prefix = m->temp_tok;
        m->temp_tok = NULL;
        break;
    default:
        m->prefix = m->temp_prefix;
        m->name = m->temp_tok;
        m->temp_tok = NULL;
        m->temp_prefix = NULL;
        break;
    }
}

int GUTHTHILA_CALL
guththila_validate_namespaces(guththila_t *m, const axutil_env_t *env)
{
    int size = 0, i = 0, nmsp_no = 0, j = 0, k = 0;
    int namesp_found = GUTHTHILA_FALSE;
    guththila_elem_namesp_t *e_namesp = NULL;

    size = GUTHTHILA_STACK_SIZE(m->attrib);
    /* Loop through all the attributes */
    for (i = 0; i < size; i++)
    {
        guththila_attr_t *attr =
                        (guththila_attr_t *)
                        guththila_stack_get_by_index(&m->attrib, i, env);
        if (attr && attr->pref)
        {
            /* We have a attribute prefix. Need to validate the prefix */
            nmsp_no = GUTHTHILA_STACK_SIZE(m->namesp);
            for (j = nmsp_no - 1; j >= 0; j--)
            {
                e_namesp =
                    (guththila_elem_namesp_t *)
                    guththila_stack_get_by_index(&m->namesp, j, env);
                for (k = 0; k < e_namesp->no; k++)
                {
                    if (!guththila_tok_tok_cmp
                         (e_namesp->namesp[k].name, attr->pref, env))
                    {              
                        namesp_found = GUTHTHILA_TRUE;
                        j = -1;    /* force exit from second for loop */
                        break;
                    }
                }
            }                                            
            if (!namesp_found) return GUTHTHILA_FAILURE;
        }
    }
    /* If the element has a prefix. Need to validate the prefix*/    
    if (m->prefix)
    {        
        namesp_found = AXIS2_FALSE;
        nmsp_no = GUTHTHILA_STACK_SIZE(m->namesp);
        for (j = nmsp_no - 1; j >= 0; j--)
        {
            e_namesp =
                (guththila_elem_namesp_t *)
                guththila_stack_get_by_index(&m->namesp, j, env);
            for (k = 0; k < e_namesp->no; k++)
            {
                if (!guththila_tok_tok_cmp
                     (e_namesp->namesp[k].name, m->prefix, env))
                {              
                    namesp_found = GUTHTHILA_TRUE;
                    j = -1;    /* force exit from outer loop */
                    break;
                }
            }
        }
        if (!namesp_found) return AXIS2_FAILURE;
    }
    return GUTHTHILA_SUCCESS;
}


GUTHTHILA_EXPORT int GUTHTHILA_CALL
guththila_next(guththila_t * m,const axutil_env_t * env) 
{
    guththila_element_t * elem = NULL;
    guththila_elem_namesp_t * nmsp = NULL;
    guththila_token_t * tok = NULL;
    int quote = 0, ref = 0;
    int c_arra[16] = { 0 };
    int c = -1;
    guththila_attr_t * attr = NULL;
    int size = 0, i = 0, nmsp_counter, loop = 0, white_space = 0;
    /* Need to release the resources for attributes */
    size = GUTHTHILA_STACK_SIZE(m->attrib);
    for (i = 0; i < size; i++)
    {
        attr = (guththila_attr_t *) guththila_stack_pop(&m->attrib, env);
        if (attr)
        {
            if (attr->name)
                guththila_tok_list_release_token(&m->tokens, attr->name, env);
            if (attr->pref)
                guththila_tok_list_release_token(&m->tokens, attr->pref, env);
                AXIS2_FREE(env->allocator, attr);
        }
    }
    
#ifdef GUTHTHILA_VALIDATION_PARSER    
    if (m->guththila_event == GUTHTHILA_END_ELEMENT && m->name)
    {
        guththila_tok_list_release_token(&m->tokens, m->name, env);
        if (m->prefix)
        {
            guththila_tok_list_release_token(&m->tokens, m->prefix, env);
        }
    }
    /* If the previous event was a empty element we need to do some clean up */
    else if (m->guththila_event == GUTHTHILA_EMPTY_ELEMENT)
    {
        elem = (guththila_element_t *) guththila_stack_pop(&m->elem, env);
        if (elem->is_namesp)
        {
            nmsp =
                (guththila_elem_namesp_t *) guththila_stack_pop(&m->namesp,
                                                                env);
            for (nmsp_counter = 0; nmsp_counter < nmsp->no; nmsp_counter++)
            {
                if (nmsp->namesp[nmsp_counter].name)
                    guththila_tok_list_release_token(&m->tokens,
                                                     nmsp->namesp[nmsp_counter].
                                                     name, env);
                if (nmsp->namesp[nmsp_counter].uri)
                    guththila_tok_list_release_token(&m->tokens,
                                                     nmsp->namesp[nmsp_counter].
                                                     uri, env);
            }
            AXIS2_FREE(env->allocator, nmsp->namesp);
            AXIS2_FREE(env->allocator, nmsp);
        }
        if (elem->name)
            guththila_tok_list_release_token(&m->tokens, elem->name, env);
        if (elem->prefix)
            guththila_tok_list_release_token(&m->tokens, elem->prefix, env);
        AXIS2_FREE(env->allocator, elem);
    }    
    GUTHTHILA_VARIABLE_INITIALZE(m);
#endif  
    /* Actual XML parsing logic */
    do
    {
        loop = 0;
        c = guththila_next_char(m, 0, env);
        if (m->status == S_1)
        {
            while (isspace(c))
            {
                c = guththila_next_char(m, 0, env);
                if (c == -1)
                    return -1;
            }
            if ('<' == c)
            {
                m->status = S_2;
            }
            else
            {
                return -1;
            }
        }
        if ('<' == c && m->status == S_2)
        {
            c = guththila_next_char(m, 0, env);
            if (c != '?' && c != '!' && c != '/')
            {
                /* We are at the beginig of a xml element */
                if (GUTHTHILA_IS_VALID_STARTING_CHAR(c))
                {
                    GUTHTHILA_TOKEN_OPEN(m, tok, env);
                    c = guththila_next_char(m, 0, env);
                    while (!GUTHTHILA_IS_SPACE(c) && c != '>' && c != '/')
                    {
                        if (c == -1)
                            return -1;
                        if (c != ':')
                        {
                            c = guththila_next_char(m, 0, env);
                        }                       
                        else
                        {
                            /* We know for sure that this is a prefix */
                            guththila_token_close(m, tok, _prefix, 0, env);
                            c = guththila_next_char(m, 0, env);
                            GUTHTHILA_TOKEN_OPEN(m, tok, env);
                        }
                    }        
                    /* XML element name */            
                    guththila_token_close(m, tok, _name, 0, env);                    
#ifdef GUTHTHILA_VALIDATION_PARSER		
                    elem =
                       (guththila_element_t *) AXIS2_MALLOC(env->allocator,
                                                          sizeof(guththila_element_t));
                    elem->name = m->name;
                    elem->prefix = m->prefix;
                    elem->is_namesp = 0;
                    guththila_stack_push(&m->elem, elem, env);                    
#endif  
                }
                GUTHTHILA_SKIP_SPACES(m, c, env);
                /* Process the attributes */
                for (;;)
                {
                    /* Empty element */
                    if (c == '/')
                    {
                        c = guththila_next_char(m, 0, env);
                        if (c == '>')
                        {
                            m->guththila_event = GUTHTHILA_EMPTY_ELEMENT;
                            if (!guththila_validate_namespaces(m, env)) return -1;
                            else return GUTHTHILA_EMPTY_ELEMENT;
                        }
                        else
                        {
                            return -1;
                        }
                    }
                    /* Normal element */
                    else if (c == '>')
                    {
                        m->guththila_event = GUTHTHILA_START_ELEMENT;
                        if (!guththila_validate_namespaces(m, env)) return -1;
                        else return GUTHTHILA_START_ELEMENT;
                    }
                    /* We are in the middle of a element */
                    else if (c != -1)
                    {
                        /* Process the attributes */
                        if (GUTHTHILA_IS_VALID_STARTING_CHAR(c))
                        {
                            GUTHTHILA_TOKEN_OPEN(m, tok, env);

                            c = guththila_next_char(m, 0, env);
                            while (!GUTHTHILA_IS_SPACE(c) && c != '=')
                            {
                                if (c == -1)
                                    return -1;
                                if (c != ':')
                                {
                                    c = guththila_next_char(m, 0, env);
                                }
                                else if (c == ':')
                                {
                                    /* Prefix */
                                    guththila_token_close(m, tok, _prefix, 0,
                                                           env);
                                    c = guththila_next_char(m, 0, env);
                                    GUTHTHILA_TOKEN_OPEN(m, tok, env);
                                }
                            }
                            /* Attribute name*/
                            guththila_token_close(m, tok, _attribute_name, 0,env);
                        }
                        else
                        {
                            return -1;
                        }
                        /* Attribute Value */
                        GUTHTHILA_PROCESS_EQU(m, c, quote, env);
                        if ('\'' == quote || '\"' == quote)
                        {
                            c = guththila_next_char(m, 0, env);
                            GUTHTHILA_TOKEN_OPEN(m, tok, env);
                            while (c != quote)
                            {
                                if (c == -1)
                                    return -1;
                                c = guththila_next_char(m, 0, env);
                            }
                            guththila_token_close(m, tok, _attribute_value, 0,
                                                   env);
                            c = guththila_next_char(m, 0, env);
                            GUTHTHILA_SKIP_SPACES(m, c, env);
                        }
                        else
                        {
                            return -1;
                        }
                    }
                    else
                    {
                        return -1;
                    }
                }
            }
            else if (c == '/')
            {
                /* End Element */
                m->guththila_event = GUTHTHILA_END_ELEMENT;
                c = guththila_next_char(m, -1, env);
                if (GUTHTHILA_IS_VALID_STARTING_CHAR(c))
                {
                    GUTHTHILA_TOKEN_OPEN(m, tok, env);
                    c = guththila_next_char(m, 0, env);
                    while (!GUTHTHILA_IS_SPACE(c) && c != '>')
                    {
                        if (c == -1)
                            return -1;
                        if (c != ':')
                        {
                            c = guththila_next_char(m, 0, env);
                        }
                        else
                        {
                            /* Prefix */
                            guththila_token_close(m, tok, _prefix, 0, env);
                            c = guththila_next_char(m, 0, env);
                            GUTHTHILA_TOKEN_OPEN(m, tok, env);
                        }
                    }
                    /* name */
                    guththila_token_close(m, tok, _name, 0, env);
                    
#ifdef GUTHTHILA_VALIDATION_PARSER	
                    elem =
                        (guththila_element_t *) guththila_stack_pop(&m->elem,env);
                    if (!elem || (!elem->prefix && m->prefix) ||
                         (elem->prefix && !m->prefix))
                        return -1;
                    if (guththila_tok_tok_cmp(m->name, elem->name, env))
                    {
                        return -1;
                    }
                    if (elem->prefix && m->prefix &&
                        guththila_tok_tok_cmp(m->prefix, elem->prefix, env))
                    {
                        return -1;
                    }
                    /* Releasing the namespace related resources */
                    if (elem->is_namesp)
                    {
                        nmsp =
                           (guththila_elem_namesp_t *) guththila_stack_pop(&m->namesp,env);
                        for (nmsp_counter = 0; nmsp_counter < nmsp->no;
                              nmsp_counter++)
                        {
                            if (nmsp->namesp[nmsp_counter].name)
                                guththila_tok_list_release_token(&m->tokens,
                                                                 nmsp->
                                                                 namesp
                                                                 [nmsp_counter].
                                                                 name, env);
                            if (nmsp->namesp[nmsp_counter].uri)
                                guththila_tok_list_release_token(&m->tokens,
                                                                 nmsp->
                                                                 namesp
                                                                 [nmsp_counter].
                                                                 uri, env);
                        }
                        AXIS2_FREE(env->allocator, nmsp->namesp);
                        AXIS2_FREE(env->allocator, nmsp);
                    }
                    /* Release the tokens */
                    if (elem->name)
                        guththila_tok_list_release_token(&m->tokens, elem->name,env);
                    if (elem->prefix)
                        guththila_tok_list_release_token(&m->tokens,elem->prefix, env);
                    AXIS2_FREE(env->allocator, elem);                    
#endif  
                    GUTHTHILA_SKIP_SPACES(m, c, env);
                    if (c != '>')
                        return -1;
                    return GUTHTHILA_END_ELEMENT;
                }
                return -1;
            }
            else if (c == '!')
            {
                /* Comment */
                if (2 == guththila_next_no_char(m, 0, c_arra, 2, env) &&
                     '-' == c_arra[0] && '-' == c_arra[1])
                {
                    int loop_state = 1;                    
                    c = guththila_next_char(m, 0, env);
                    GUTHTHILA_TOKEN_OPEN(m, tok, env);
                    while (loop_state)
                    {
                        c = guththila_next_char(m, 0, env);
                        if ('-' == c)
                        {
                            if (2 == guththila_next_no_char(m, 0, c_arra, 2, env) &&
                                 '-' == c_arra[0])
                            {
                                if ('>' == c_arra[1])
                                {
                                    m->guththila_event = GUTHTHILA_COMMENT;
                                    /* position after first hyphen, as if we just scanned it */
                                    m->next = m->next - 2;
                                    guththila_token_close(m, tok, _char_data,0, env);
                                    m->next = m->next + 2;
                                    return GUTHTHILA_COMMENT;
                                }                                
                                else
                                {
                                    return -1;
                                }
                            }
                        }
                    }
                }
                else
                {
                    c = guththila_next_char(m, 0, env);
                    while ('<' != c)
                    {
                        if (c == -1) return -1;
                        c = guththila_next_char(m, -1, env);
                    }
                }
            }
            else if (c == '?')
            {
                /* XML declaration */
                c = guththila_process_xml_dec(m, env);
                if (c != -1)
                    return GUTHTHILA_START_DOCUMENT;               
                else
                    return -1;
            }
        }
        else if (c != '<' && m->status == S_2 && c != -1)
        {
            /* Text */
            m->guththila_event = GUTHTHILA_CHARACTER;
            if (!GUTHTHILA_IS_SPACE(c))
                white_space = 0;            
            else
                white_space = 1;
            GUTHTHILA_TOKEN_OPEN(m, tok, env);
            
            do
            {
                c = guththila_next_char(m, -1, env);
                if (!GUTHTHILA_IS_SPACE(c) && c != '<')
                    white_space = 0;
                if (c == -1)
                    return -1;
            }
            while (c != '<');
            guththila_token_close(m, tok, _text_data, ref, env);
            m->next--;
            if (white_space)
            {
#ifndef GUTHTHILA_IGNORE_SPACES
                m->guththila_event = GUTHTHILA_SPACE;
                return GUTHTHILA_SPACE;
#else
                loop = 1;
                if (m->value)
                {
                    guththila_tok_list_release_token(&m->tokens, m->value,
                                                      env);
                    m->value = NULL;
                }
#endif
            }
            
            else
                return GUTHTHILA_CHARACTER;
        }
        else
        {
            return -1;
        }
    }
    while (loop);
    return c;
}

/* Process the XML declaration */
static int 
guththila_process_xml_dec(
    guththila_t * m,
    const axutil_env_t * env) 
{
    guththila_token_t * tok = NULL;
    int c_arra[16] = { 0 };
    int c = -1;
    int quote = -1;
    int nc = -1;
    if (3 == guththila_next_no_char(m, GUTHTHILA_EOF, c_arra, 3, env) &&
          'x' == c_arra[0] && 'm' == c_arra[1] && 'l' == c_arra[2])
    {
        c = guththila_next_char(m, GUTHTHILA_EOF, env);
        GUTHTHILA_SKIP_SPACES(m, c, env);
        if (c == 'v')
        {
            GUTHTHILA_TOKEN_OPEN(m, tok, env);
            if (6 == guththila_next_no_char(m, 0, c_arra, 6, env) &&
                 'e' == c_arra[0] && 'r' == c_arra[1] && 's' == c_arra[2] &&
                 'i' == c_arra[3] && 'o' == c_arra[4] && 'n' == c_arra[5])
            {
                c = guththila_next_char(m, 0, env);
                guththila_token_close(m, tok, _attribute_name, 0, env);
                GUTHTHILA_PROCESS_EQU(m, c, quote, env);
                nc = guththila_next_char(m, 0, env);
                GUTHTHILA_TOKEN_OPEN(m, tok, env);
                while (nc != quote)
                {
                    if (nc == -1) return -1;
                    nc = guththila_next_char(m, 0, env);
                }
                guththila_token_close(m, tok, _attribute_value, 0, env);
                c = guththila_next_char(m, 0, env);
                GUTHTHILA_SKIP_SPACES(m, c, env);
            }
            else
            {
                return -1;
            }
        }
        if (c == 'e')
        {
            GUTHTHILA_TOKEN_OPEN(m, tok, env);
            if (7 == guththila_next_no_char(m, 0, c_arra, 7, env) &&
                 'n' == c_arra[0] && 'c' == c_arra[1] && 'o' == c_arra[2] &&
                 'd' == c_arra[3] && 'i' == c_arra[4] && 'n' == c_arra[5] &&
                 'g' == c_arra[6])
            {
                c = guththila_next_char(m, 0, env);
                guththila_token_close(m, tok, _attribute_name, 0, env);
                GUTHTHILA_PROCESS_EQU(m, c, quote, env);
                nc = guththila_next_char(m, 0, env);
                GUTHTHILA_TOKEN_OPEN(m, tok, env);
                while (nc != quote)
                {
                    if (nc == -1) return -1;
                    nc = guththila_next_char(m, 0, env);
                }
                guththila_token_close(m, tok, _attribute_value, 0, env);
                c = guththila_next_char(m, 0, env);
                GUTHTHILA_SKIP_SPACES(m, c, env);
            }
        }
        if (c == 's')
        {
            GUTHTHILA_TOKEN_OPEN(m, tok, env);
            if (9 == guththila_next_no_char(m, 0, c_arra, 9, env) &&
                 't' == c_arra[0] && 'a' == c_arra[1] && 'n' == c_arra[2] &&
                 'd' == c_arra[3] && 'a' == c_arra[4] && 'l' == c_arra[5] &&
                 'o' == c_arra[6] && 'n' == c_arra[7] && 'e' == c_arra[8])
            {
                c = guththila_next_char(m, 0, env);
                guththila_token_close(m, tok, _attribute_name, 0, env);
                GUTHTHILA_PROCESS_EQU(m, c, quote, env);
                nc = guththila_next_char(m, 0, env);
                GUTHTHILA_TOKEN_OPEN(m, tok, env);
                while (nc != quote)
                {
                    if (nc == -1) return -1;
                    nc = guththila_next_char(m, 0, env);
                }
                guththila_token_close(m, tok, _attribute_value, 0, env);
                c = guththila_next_char(m, 0, env);
                GUTHTHILA_SKIP_SPACES(m, c, env);
            }
        }
        if (c == '?')
        {
            if ('>' == guththila_next_char(m, 0, env))
            {
                m->guththila_event = GUTHTHILA_START_DOCUMENT;
            }
            else
            {
                return -1;
            }
        }
    }
    return c;
}

GUTHTHILA_EXPORT int GUTHTHILA_CALL
guththila_get_attribute_count(
    guththila_t * m,
    const axutil_env_t * env) 
{
    return GUTHTHILA_STACK_SIZE(m->attrib);
}

GUTHTHILA_EXPORT guththila_char_t *GUTHTHILA_CALL
guththila_get_attribute_name(
    guththila_t * m,
    guththila_attr_t * att,
    const axutil_env_t * env) 
{
    guththila_char_t *str = NULL;
    if (att->name)
    {
        GUTHTHILA_TOKEN_TO_STRING(att->name, str, env);
        return str;
    }
    return NULL;
}

GUTHTHILA_EXPORT guththila_char_t *GUTHTHILA_CALL
guththila_get_attribute_value(
    guththila_t * m,
    guththila_attr_t * att,
    const axutil_env_t * env) 
{
    guththila_char_t *str = NULL;
    if (att->val)
    {
        GUTHTHILA_TOKEN_TO_STRING(att->val, str, env);
        guththila_string_evaluate_references(str, GUTHTHILA_TOKEN_LEN(att->val));
        return str;
    }
    return NULL;
}

GUTHTHILA_EXPORT guththila_char_t *GUTHTHILA_CALL
guththila_get_attribute_prefix(
    guththila_t * m,
    guththila_attr_t * att,
    const axutil_env_t * env) 
{
    guththila_char_t *str = NULL;
    if (att->pref)
    {
        GUTHTHILA_TOKEN_TO_STRING(att->pref, str, env);
        return str;
    }
    return NULL;
}

GUTHTHILA_EXPORT guththila_attr_t *GUTHTHILA_CALL
guththila_get_attribute(
    guththila_t * m,
    const axutil_env_t * env) 
{
    return (guththila_attr_t *) guththila_stack_pop(&m->attrib, env);
}

GUTHTHILA_EXPORT guththila_char_t *GUTHTHILA_CALL
guththila_get_attribute_name_by_number(
    guththila_t * m,
    int i,
    const axutil_env_t *env) 
{
    guththila_char_t  *str = NULL;
    guththila_attr_t * attr =
        (guththila_attr_t *) guththila_stack_get_by_index(&m->attrib, i - 1,
                                                          env);
    if (attr->name)
    {
        GUTHTHILA_TOKEN_TO_STRING(attr->name, str, env);
        return str;
    }
    return NULL;
}

GUTHTHILA_EXPORT guththila_char_t *GUTHTHILA_CALL
guththila_get_attribute_value_by_number(
    guththila_t * m,
    int i,
    const axutil_env_t *env) 
{
    guththila_char_t *str = NULL;
    guththila_attr_t * attr =
        (guththila_attr_t *) guththila_stack_get_by_index(&m->attrib, i - 1,env);
    if (attr->val)
    {
        GUTHTHILA_TOKEN_TO_STRING(attr->val, str, env);
        guththila_string_evaluate_references(str, GUTHTHILA_TOKEN_LEN(attr->val));
        return str;
    }
    return NULL;
}

GUTHTHILA_EXPORT guththila_char_t *GUTHTHILA_CALL
guththila_get_attribute_prefix_by_number(
    guththila_t * m,
    int i,
    const axutil_env_t *env) 
{
    guththila_char_t *str = NULL;
    guththila_attr_t * attr =
        (guththila_attr_t *) guththila_stack_get_by_index(&m->attrib, i - 1,env);
    if (attr && attr->pref)
    {
        GUTHTHILA_TOKEN_TO_STRING(attr->pref, str, env);
        return str;
    }
    return NULL;
}

GUTHTHILA_EXPORT guththila_char_t *GUTHTHILA_CALL
guththila_get_name(
    guththila_t * m,
    const axutil_env_t * env) 
{
    guththila_char_t *str = NULL;
    if (m->name)
    {
        GUTHTHILA_TOKEN_TO_STRING(m->name, str, env);
        return str;
    }
    return NULL;
}

GUTHTHILA_EXPORT guththila_char_t *GUTHTHILA_CALL
guththila_get_prefix(
    guththila_t * m,
    const axutil_env_t * env) 
{
    guththila_char_t *str = NULL;
    if (m->prefix)
    {
        GUTHTHILA_TOKEN_TO_STRING(m->prefix, str, env);
        return str;
    }
    return NULL;
}

GUTHTHILA_EXPORT guththila_char_t * GUTHTHILA_CALL
guththila_get_value(
    guththila_t * m,
    const axutil_env_t * env) 
{
    guththila_char_t *str = NULL;
    if (m->value)
    {
        GUTHTHILA_TOKEN_TO_STRING(m->value, str, env);        
        guththila_string_evaluate_references(str, GUTHTHILA_TOKEN_LEN(m->value));
        return str;
    }
    return NULL;
}

GUTHTHILA_EXPORT guththila_namespace_t *GUTHTHILA_CALL
guththila_get_namespace(
    guththila_t * m,
    const axutil_env_t * env) 
{
    
#ifndef GUTHTHILA_VALIDATION_PARSER
        return (guththila_namespace_t *) guththila_stack_pop(&m->namesp, env);    
#else  
        return NULL;   
#endif  
}

GUTHTHILA_EXPORT int GUTHTHILA_CALL
guththila_get_namespace_count(
    guththila_t * m,
    const axutil_env_t * env) 
{
    
#ifndef GUTHTHILA_VALIDATION_PARSER
    return GUTHTHILA_STACK_SIZE(m->namesp);    
#else   
    guththila_elem_namesp_t * nmsp = NULL;
    if (((guththila_element_t *) guththila_stack_peek(&m->elem, env))->is_namesp)
    {
        nmsp = (guththila_elem_namesp_t *) guththila_stack_peek(&m->namesp, env);
        return nmsp->no;
    }
    return 0;
    
#endif  
}

GUTHTHILA_EXPORT guththila_char_t *GUTHTHILA_CALL
guththila_get_namespace_uri(
    guththila_t * m,
    guththila_namespace_t * ns,
    const axutil_env_t * env) 
{
    guththila_char_t *str = NULL;
    if (ns->uri)
    {
        GUTHTHILA_TOKEN_TO_STRING(ns->uri, str, env);
        return str;
    }
    return NULL;
}

GUTHTHILA_EXPORT guththila_char_t *GUTHTHILA_CALL
guththila_get_namespace_prefix(
    guththila_t * m,
    guththila_namespace_t * ns,
    const axutil_env_t * env) 
{
    guththila_char_t *str = NULL;
    if (ns->name)
    {
        GUTHTHILA_TOKEN_TO_STRING(ns->name, str, env);
        return str;
    }
    return NULL;
}

GUTHTHILA_EXPORT guththila_char_t *GUTHTHILA_CALL
guththila_get_namespace_prefix_by_number(
    guththila_t * m,
    int i,
    const axutil_env_t *env) 
{
    guththila_char_t *str = NULL;
    
#ifndef GUTHTHILA_VALIDATION_PARSER
    if (GUTHTHILA_STACK_SIZE(m->namesp) >= i)
    {
        namesp = guththila_stack_get_by_index(&m->namesp, i - 1, env);
        if (namesp && namesp->name)
        {
            GUTHTHILA_TOKEN_TO_STRING(namesp->name, str, env);
            return str;
        }
    }
    
#else   
    guththila_elem_namesp_t * nmsp = NULL;
    if (((guththila_element_t *) guththila_stack_peek(&m->elem, env))->is_namesp)
    {
        nmsp = (guththila_elem_namesp_t *) guththila_stack_peek(&m->namesp, env);
        if (nmsp && nmsp->no >= i)
        {
            GUTHTHILA_TOKEN_TO_STRING(nmsp->namesp[i - 1].name, str, env);
            return str;
        }
    }    
#endif  /*  */
    return NULL;
}

GUTHTHILA_EXPORT guththila_char_t *GUTHTHILA_CALL
guththila_get_namespace_uri_by_number(
    guththila_t * m, int i,
    const axutil_env_t *env) 
{
    guththila_char_t *str = NULL;         
#ifndef GUTHTHILA_VALIDATION_PARSER
    if (GUTHTHILA_STACK_SIZE(m->namesp) >= i)
    {
        namesp = guththila_stack_get_by_index(&m->namesp, i - 1, env);
        if (namesp && namesp->uri)
        {
            GUTHTHILA_TOKEN_TO_STRING(namesp->uri, str, env);
            return str;
        }
    }    
#else  
    guththila_elem_namesp_t * nmsp = NULL;
    if (((guththila_element_t *) guththila_stack_peek(&m->elem, env))->is_namesp)
    {
        nmsp = (guththila_elem_namesp_t *) guththila_stack_peek(&m->namesp, env);
        if (nmsp && nmsp->no >= i)
        {
            GUTHTHILA_TOKEN_TO_STRING(nmsp->namesp[i - 1].uri, str, env);
            return str;
        }
    }    
#endif  
    return NULL;
}

GUTHTHILA_EXPORT guththila_char_t *GUTHTHILA_CALL
guththila_get_attribute_namespace_by_number(guththila_t * m, int i, 
											const axutil_env_t *env) 
{
    
#ifndef GUTHTHILA_VALIDATION_PARSER
        return NULL;
    
#else  
    guththila_attr_t * attr = NULL;
    guththila_char_t*     str = NULL;
    int j = 0, k = 0, count = 0;
    guththila_elem_namesp_t * nmsp = NULL;
    if (i <= GUTHTHILA_STACK_SIZE(m->attrib))
    {
        attr =
            (guththila_attr_t *) guththila_stack_get_by_index(&m->attrib, i - 1,
                                                              env);
        if (attr && attr->pref)
        {
            count = GUTHTHILA_STACK_SIZE(m->namesp);
            for (j = count - 1; j >= 0; j--)
            {
                nmsp =
                    (guththila_elem_namesp_t *)
                    guththila_stack_get_by_index(&m->namesp, j, env);
                for (k = 0; k < nmsp->no; k++)
                {
                    if (!guththila_tok_tok_cmp
                         (nmsp->namesp[k].name, attr->pref, env))
                    {
                        GUTHTHILA_TOKEN_TO_STRING(nmsp->namesp[k].uri, str,
                                                   env);
                        return str;
                    }
                }
            }
        }
    }
    return NULL;
    
#endif 
}

GUTHTHILA_EXPORT guththila_char_t *GUTHTHILA_CALL
guththila_get_encoding(
    guththila_t * m,
    const axutil_env_t * env) 
{
    return "UTF-8";
}

/* Return the next byte */
static int 
guththila_next_byte(guththila_t * m, int eof, const axutil_env_t * env) 
{
    int c;
    size_t data_move, i;
	int temp;
    guththila_char_t **temp1;
    size_t * temp2, *temp3;
    /* we have a buffered reader. Easiest case just fetch the character from 
     * the buffer. Here we have a single buffer. 
     * */
    if (m->reader->type == GUTHTHILA_MEMORY_READER &&
         m->next < GUTHTHILA_BUFFER_CURRENT_DATA_SIZE(m->buffer))
    {
        c = (unsigned char) m->buffer.buff[0][m->next++];
        return c;
    }
    else if (m->reader->type == GUTHTHILA_IO_READER ||
             m->reader->type == GUTHTHILA_FILE_READER)
    {
        /* comlex stuff. We have a array of buffers */  
        if ( m->buffer.cur_buff != -1 && 
             m->next < GUTHTHILA_BUFFER_PRE_DATA_SIZE(m->buffer) +
             GUTHTHILA_BUFFER_CURRENT_DATA_SIZE(m->buffer))
        {
            /* What we are looking for is already in the buffer */
            c = (unsigned char) m->buffer.buff[m->buffer.cur_buff][m->next++ -
                                                    GUTHTHILA_BUFFER_PRE_DATA_SIZE
                                                    (m->buffer)];
            return c;
        }
        else if ( m->buffer.cur_buff != -1 &&
                  m->next >= GUTHTHILA_BUFFER_PRE_DATA_SIZE(m->buffer) +
                  GUTHTHILA_BUFFER_CURRENT_DATA_SIZE(m->buffer))
        {
            /* We are sure that the difference lies within the int range */
            if (m->buffer.cur_buff == (int)m->buffer.no_buffers - 1)
            {
                /* we are out of allocated buffers. Need to allocate more buffers */
                temp = m->buffer.no_buffers * 2;
                temp1 =
                    (guththila_char_t **) AXIS2_MALLOC(env->allocator,
                                           sizeof(guththila_char_t *) * temp);
                temp2 =
                    (size_t *) AXIS2_MALLOC(env->allocator,
                                            sizeof(size_t) * temp);
                temp3 =
                    (size_t *) AXIS2_MALLOC(env->allocator,
                                            sizeof(size_t) * temp);
                if (!temp1 || !temp2 || !temp3)
                    return (-1);
                for (i = 0; i < m->buffer.no_buffers; i++)
                {
                    temp1[i] = m->buffer.buff[i];
                    temp2[i] = m->buffer.buffs_size[i];
                    temp3[i] = m->buffer.data_size[i];
                }
                AXIS2_FREE(env->allocator, m->buffer.buff);
                AXIS2_FREE(env->allocator, m->buffer.data_size);
                AXIS2_FREE(env->allocator, m->buffer.buffs_size);
                m->buffer.buff = temp1;
                m->buffer.buffs_size = temp2;
                m->buffer.data_size = temp3;
                m->buffer.no_buffers *= 2;
            }
            m->buffer.buff[m->buffer.cur_buff + 1] =
                (guththila_char_t *) AXIS2_MALLOC(env->allocator,
                                      sizeof(guththila_char_t) *
                                      m->buffer.buffs_size[m->buffer.cur_buff] * 2);
            if (!m->buffer.buff[m->buffer.cur_buff + 1])
                return -1;
            m->buffer.cur_buff++;
            m->buffer.buffs_size[m->buffer.cur_buff] =
                m->buffer.buffs_size[m->buffer.cur_buff - 1] * 2;
            m->buffer.data_size[m->buffer.cur_buff] = 0;
            /* We need to have the content for one token in a single buffer. 
             * So if the space is not sufficient we have to move first part 
             * of the token to the next buffer */
            if (m->last_start != -1)
            {
                data_move =
                    m->buffer.data_size[m->buffer.cur_buff - 1] -
                    (m->last_start - m->buffer.pre_tot_data);
                memcpy(m->buffer.buff[m->buffer.cur_buff],
                        m->buffer.buff[m->buffer.cur_buff - 1] +
                        m->buffer.data_size[m->buffer.cur_buff - 1] - data_move,
                        data_move);
                m->buffer.data_size[m->buffer.cur_buff - 1] -= data_move;
                m->buffer.data_size[m->buffer.cur_buff] += data_move;
            }
            m->buffer.pre_tot_data +=
                m->buffer.data_size[m->buffer.cur_buff - 1];
            temp =
                guththila_reader_read(m->reader,
                                      GUTHTHILA_BUFFER_CURRENT_BUFF(m->buffer),0,
                                      (int)GUTHTHILA_BUFFER_CURRENT_BUFF_SIZE(m->buffer),env);
            if (temp > 0)
            {
                m->buffer.data_size[m->buffer.cur_buff] += temp;
            }
            else
            {
                return -1;
            }
            c = (unsigned char) m->buffer.buff[m->buffer.cur_buff][m->next++ -
                                                    GUTHTHILA_BUFFER_PRE_DATA_SIZE
                                                    (m->buffer)];
            return c;
        }
        /* Initial stage. We dont' have the array of buffers allocated*/
        else if (m->buffer.cur_buff == -1)
        {
            m->buffer.buff[0] =
                (guththila_char_t *) AXIS2_MALLOC(env->allocator,
                                      sizeof(guththila_char_t) * GUTHTHILA_BUFFER_DEF_SIZE);
            m->buffer.buffs_size[0] = GUTHTHILA_BUFFER_DEF_SIZE;
            m->buffer.cur_buff = 0;
            temp =
                guththila_reader_read(m->reader, m->buffer.buff[0], 0,
                                      GUTHTHILA_BUFFER_DEF_SIZE, env);
            m->buffer.data_size[0] = temp;
            c = (unsigned char) m->buffer.buff[0][m->next++];
            return c;
        }
    }
    return -1;
}

/* Return the next character code point */
static int 
guththila_next_char(guththila_t * m, int eof, const axutil_env_t * env) 
{
    int c;
    int code_point;
    if (GUTHTHILA_UTF8_DECODER_IS_ERROR(m->decoder) &&
        GUTHTHILA_UTF8_DECODER_IS_CODE_POINT(m->decoder))
    {
        code_point = GUTHTHILA_UTF8_DECODER_GET_CODE_POINT(m->decoder);
        guththila_utf8_decoder_clear(m->decoder, env);
        return code_point;
    }
    c = guththila_next_byte(m, eof, env);
    if (c == -1)
        return -1;
    while (! guththila_utf8_decoder_decode(m->decoder, c, &code_point, env))
    {
        if (GUTHTHILA_UTF8_DECODER_IS_ERROR(m->decoder))
            return -1;
        c = guththila_next_byte(m, eof, env);
        if (c == -1)
            return -1;
    }
    if (GUTHTHILA_UTF8_DECODER_IS_ERROR(m->decoder))
        return -1;
    return code_point;
}

/* Same functionality as the guththila_next_char. But insted of reading 
 * one character this function reads several characters at once 
 * */ 
static int 
guththila_next_no_char(guththila_t * m, int eof, 
                                          int *code_points, 
                                          size_t no, const axutil_env_t * env) 
{
    int c;
    size_t i;

    if (no == 0)
        return (int)no;

    i = 0;
    if (GUTHTHILA_UTF8_DECODER_IS_ERROR(m->decoder) &&
        GUTHTHILA_UTF8_DECODER_IS_CODE_POINT(m->decoder))
    {
        code_points[i] = GUTHTHILA_UTF8_DECODER_GET_CODE_POINT(m->decoder);
        i++;
        guththila_utf8_decoder_clear(m->decoder, env);
    }

    while (i < no)
    {
        c = guththila_next_byte(m, eof, env);
        if (c == -1)
            return -1;
        while (! guththila_utf8_decoder_decode(m->decoder, c, &code_points[i],
                                               env))
        {
            if (GUTHTHILA_UTF8_DECODER_IS_ERROR(m->decoder))
                return -1;
            c = guththila_next_byte(m, eof, env);
            if (c == -1)
                return -1;
        }
        if (GUTHTHILA_UTF8_DECODER_IS_ERROR(m->decoder))
            return -1;
        i++;
    }
    return (int)no;
}


<|start_filename|>guththila/tests/test.h<|end_filename|>
#ifndef _GUTHTHILA_TESTS_
#define _GUTHTHILA_TESTS_
#include <check.h>
#include <guththila.h>
#include "guththila_defines.h"

axutil_allocator_t *allocator;
guththila_reader_t *red;
axutil_env_t *env;
guththila_t *parser;

void setup(
    void);
void teardown(
    void);

Suite *guththila_suite(
    void);

Suite *guththila_attribute_suite(
    void);

Suite *guththila_utf8_decoder_suite(
    void);


Suite *guththila_utf8_encoder_suite(
    void);

#endif


<|start_filename|>xdocs/api/html/group__axiom__navigator.html<|end_filename|>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html><head><meta http-equiv="Content-Type" content="text/html;charset=UTF-8">
<title>Axis2/C: navigator</title>
<link href="doxygen.css" rel="stylesheet" type="text/css">
<link href="tabs.css" rel="stylesheet" type="text/css">
</head><body>
<!-- Generated by Doxygen 1.5.3 -->
<div class="tabs">
  <ul>
    <li><a href="index.html"><span>Main&nbsp;Page</span></a></li>
    <li><a href="modules.html"><span>Modules</span></a></li>
    <li><a href="annotated.html"><span>Classes</span></a></li>
    <li><a href="files.html"><span>Files</span></a></li>
    <li><a href="dirs.html"><span>Directories</span></a></li>
    <li><a href="pages.html"><span>Related&nbsp;Pages</span></a></li>
    <li><a href="examples.html"><span>Examples</span></a></li>
    <li>
      <form action="search.php" method="get">
        <table cellspacing="0" cellpadding="0" border="0">
          <tr>
            <td><label>&nbsp;<u>S</u>earch&nbsp;for&nbsp;</label></td>
            <td><input type="text" name="query" value="" size="20" accesskey="s"/></td>
          </tr>
        </table>
      </form>
    </li>
  </ul>
</div>
<h1>navigator<br>
<small>
[<a class="el" href="group__axiom__om.html">AXIOM</a>]</small>
</h1><table border="0" cellpadding="0" cellspacing="0">
<tr><td></td></tr>
<tr><td colspan="2"><br><h2>Typedefs</h2></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="g1c4fb3fe10ecd2fbcaa9e05ddb873ada"></a><!-- doxytag: member="axiom_navigator::axiom_navigator_t" ref="g1c4fb3fe10ecd2fbcaa9e05ddb873ada" args="" -->
typedef struct <br>
axiom_navigator&nbsp;</td><td class="memItemRight" valign="bottom"><b>axiom_navigator_t</b></td></tr>

<tr><td colspan="2"><br><h2>Functions</h2></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top">AXIS2_EXTERN <br>
axiom_navigator_t *&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__axiom__navigator.html#g75c9187ecdec12d397fc4af8867b588d">axiom_navigator_create</a> (const <a class="el" href="structaxutil__env.html">axutil_env_t</a> *env, axiom_node_t *node)</td></tr>

<tr><td class="memItemLeft" nowrap align="right" valign="top">AXIS2_EXTERN void&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__axiom__navigator.html#g8645e38b5959e3693b59aa8b794c74a4">axiom_navigator_free</a> (axiom_navigator_t *om_navigator, const <a class="el" href="structaxutil__env.html">axutil_env_t</a> *env)</td></tr>

<tr><td class="memItemLeft" nowrap align="right" valign="top">AXIS2_EXTERN axis2_bool_t&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__axiom__navigator.html#g2d8801b3e5d9046ce1db9e564c62b28a">axiom_navigator_is_navigable</a> (axiom_navigator_t *om_navigator, const <a class="el" href="structaxutil__env.html">axutil_env_t</a> *env)</td></tr>

<tr><td class="memItemLeft" nowrap align="right" valign="top">AXIS2_EXTERN axis2_bool_t&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__axiom__navigator.html#g1142639e6dfe2a5074523570f93fe5cf">axiom_navigator_is_completed</a> (axiom_navigator_t *om_navigator, const <a class="el" href="structaxutil__env.html">axutil_env_t</a> *env)</td></tr>

<tr><td class="memItemLeft" nowrap align="right" valign="top">AXIS2_EXTERN <br>
axiom_node_t *&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__axiom__navigator.html#gb081ab166d7ef666c0e8dccd32c6a50a">axiom_navigator_next</a> (axiom_navigator_t *om_navigator, const <a class="el" href="structaxutil__env.html">axutil_env_t</a> *env)</td></tr>

<tr><td class="memItemLeft" nowrap align="right" valign="top">AXIS2_EXTERN axis2_bool_t&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__axiom__navigator.html#gf2683f8658f619e357c76d8000e599f9">axiom_navigator_visited</a> (axiom_navigator_t *om_navigator, const <a class="el" href="structaxutil__env.html">axutil_env_t</a> *env)</td></tr>

</table>
<hr><h2>Function Documentation</h2>
<a class="anchor" name="g75c9187ecdec12d397fc4af8867b588d"></a><!-- doxytag: member="axiom_navigator.h::axiom_navigator_create" ref="g75c9187ecdec12d397fc4af8867b588d" args="(const axutil_env_t *env, axiom_node_t *node)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">AXIS2_EXTERN axiom_navigator_t* axiom_navigator_create           </td>
          <td>(</td>
          <td class="paramtype">const <a class="el" href="structaxutil__env.html">axutil_env_t</a> *&nbsp;</td>
          <td class="paramname"> <em>env</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">axiom_node_t *&nbsp;</td>
          <td class="paramname"> <em>node</em></td><td>&nbsp;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td><td width="100%"></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
Creates an axiom_navigator <dl compact><dt><b>Parameters:</b></dt><dd>
  <table border="0" cellspacing="2" cellpadding="0">
    <tr><td valign="top"></td><td valign="top"><em>env</em>&nbsp;</td><td>environment MUST not be NULL </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>node</em>&nbsp;</td><td>a pointer to axiom_node_t struct which is to be navigated </td></tr>
  </table>
</dl>
<dl class="return" compact><dt><b>Returns:</b></dt><dd>a pointer to axiom_navigator_t struct or returns NULL on error </dd></dl>

</div>
</div><p>
<a class="anchor" name="g8645e38b5959e3693b59aa8b794c74a4"></a><!-- doxytag: member="axiom_navigator.h::axiom_navigator_free" ref="g8645e38b5959e3693b59aa8b794c74a4" args="(axiom_navigator_t *om_navigator, const axutil_env_t *env)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">AXIS2_EXTERN void axiom_navigator_free           </td>
          <td>(</td>
          <td class="paramtype">axiom_navigator_t *&nbsp;</td>
          <td class="paramname"> <em>om_navigator</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const <a class="el" href="structaxutil__env.html">axutil_env_t</a> *&nbsp;</td>
          <td class="paramname"> <em>env</em></td><td>&nbsp;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td><td width="100%"></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
free function , free the axiom_navigator struct <dl compact><dt><b>Parameters:</b></dt><dd>
  <table border="0" cellspacing="2" cellpadding="0">
    <tr><td valign="top"></td><td valign="top"><em>om_navigator</em>&nbsp;</td><td>axiom_navigator_struct </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>env</em>&nbsp;</td><td>environment MUST not be NULL </td></tr>
  </table>
</dl>
<dl class="return" compact><dt><b>Returns:</b></dt><dd>AXIS2_SUCCESS </dd></dl>

</div>
</div><p>
<a class="anchor" name="g1142639e6dfe2a5074523570f93fe5cf"></a><!-- doxytag: member="axiom_navigator.h::axiom_navigator_is_completed" ref="g1142639e6dfe2a5074523570f93fe5cf" args="(axiom_navigator_t *om_navigator, const axutil_env_t *env)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">AXIS2_EXTERN axis2_bool_t axiom_navigator_is_completed           </td>
          <td>(</td>
          <td class="paramtype">axiom_navigator_t *&nbsp;</td>
          <td class="paramname"> <em>om_navigator</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const <a class="el" href="structaxutil__env.html">axutil_env_t</a> *&nbsp;</td>
          <td class="paramname"> <em>env</em></td><td>&nbsp;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td><td width="100%"></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
Returns the build status of this node if the node is completly build returns AXIS2_TRUE otherwise AXIS2_FALSE <dl compact><dt><b>Parameters:</b></dt><dd>
  <table border="0" cellspacing="2" cellpadding="0">
    <tr><td valign="top"></td><td valign="top"><em>om_navigator</em>&nbsp;</td><td>axiom_navigator struct </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>env</em>&nbsp;</td><td>environment MUST not be NULL </td></tr>
  </table>
</dl>
<dl class="return" compact><dt><b>Returns:</b></dt><dd>AXIS2_TRUE if this node is completly built otherwise return AXIS2_FALSE </dd></dl>

</div>
</div><p>
<a class="anchor" name="g2d8801b3e5d9046ce1db9e564c62b28a"></a><!-- doxytag: member="axiom_navigator.h::axiom_navigator_is_navigable" ref="g2d8801b3e5d9046ce1db9e564c62b28a" args="(axiom_navigator_t *om_navigator, const axutil_env_t *env)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">AXIS2_EXTERN axis2_bool_t axiom_navigator_is_navigable           </td>
          <td>(</td>
          <td class="paramtype">axiom_navigator_t *&nbsp;</td>
          <td class="paramname"> <em>om_navigator</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const <a class="el" href="structaxutil__env.html">axutil_env_t</a> *&nbsp;</td>
          <td class="paramname"> <em>env</em></td><td>&nbsp;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td><td width="100%"></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
Returns the navigable status <dl compact><dt><b>Parameters:</b></dt><dd>
  <table border="0" cellspacing="2" cellpadding="0">
    <tr><td valign="top"></td><td valign="top"><em>om_navigator</em>&nbsp;</td><td>axiom_navigator_struct </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>env</em>&nbsp;</td><td>environment MUST not be NULL </td></tr>
  </table>
</dl>
<dl class="return" compact><dt><b>Returns:</b></dt><dd>AXIS2_TRUE if the om is navigable otherwise returns AXIS2_FALSE </dd></dl>

</div>
</div><p>
<a class="anchor" name="gb081ab166d7ef666c0e8dccd32c6a50a"></a><!-- doxytag: member="axiom_navigator.h::axiom_navigator_next" ref="gb081ab166d7ef666c0e8dccd32c6a50a" args="(axiom_navigator_t *om_navigator, const axutil_env_t *env)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">AXIS2_EXTERN axiom_node_t* axiom_navigator_next           </td>
          <td>(</td>
          <td class="paramtype">axiom_navigator_t *&nbsp;</td>
          <td class="paramname"> <em>om_navigator</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const <a class="el" href="structaxutil__env.html">axutil_env_t</a> *&nbsp;</td>
          <td class="paramname"> <em>env</em></td><td>&nbsp;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td><td width="100%"></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
gets the next node <dl compact><dt><b>Parameters:</b></dt><dd>
  <table border="0" cellspacing="2" cellpadding="0">
    <tr><td valign="top"></td><td valign="top"><em>om_navigator</em>&nbsp;</td><td>om_navigaot struct </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>env</em>&nbsp;</td><td>environment MUST not be NULL </td></tr>
  </table>
</dl>
<dl class="return" compact><dt><b>Returns:</b></dt><dd>axiom_node_t pointer in the sequence of preorder travasal however the an element node is treated slightly differently Once the om_element type om node is passed it returns the same om_node pointer in the next , returns NULL on error or if there is no more nodes </dd></dl>

</div>
</div><p>
<a class="anchor" name="gf2683f8658f619e357c76d8000e599f9"></a><!-- doxytag: member="axiom_navigator.h::axiom_navigator_visited" ref="gf2683f8658f619e357c76d8000e599f9" args="(axiom_navigator_t *om_navigator, const axutil_env_t *env)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">AXIS2_EXTERN axis2_bool_t axiom_navigator_visited           </td>
          <td>(</td>
          <td class="paramtype">axiom_navigator_t *&nbsp;</td>
          <td class="paramname"> <em>om_navigator</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const <a class="el" href="structaxutil__env.html">axutil_env_t</a> *&nbsp;</td>
          <td class="paramname"> <em>env</em></td><td>&nbsp;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td><td width="100%"></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
method visited <dl compact><dt><b>Parameters:</b></dt><dd>
  <table border="0" cellspacing="2" cellpadding="0">
    <tr><td valign="top"></td><td valign="top"><em>om_navigator</em>&nbsp;</td><td>om_navigaot struct </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>env</em>&nbsp;</td><td>environment MUST not be NULL </td></tr>
  </table>
</dl>
<dl class="return" compact><dt><b>Returns:</b></dt><dd>AXIS2_TRUE if this node is alrady visited otherwise AXIS2_FALSE </dd></dl>

</div>
</div><p>
<hr size="1"><address style="text-align: right;"><small>Generated on Fri Apr 17 11:49:44 2009 for Axis2/C by&nbsp;
<a href="http://www.doxygen.org/index.html">
<img src="doxygen.png" alt="doxygen" align="middle" border="0"></a> 1.5.3 </small></address>
</body>
</html>


<|start_filename|>src/core/transport/http/server/CGI/axis2_cgi_out_transport_info.c<|end_filename|>

/*
 * 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.
 */
 
#include "axis2_cgi_out_transport_info.h"
#include <axutil_string.h>
#include <axis2_http_transport.h>

/**
 * @brief CIG Out transport info impl structure
 * Axis2 cgi_out_transport_info_impl
 */

typedef struct axis2_cgi_out_transport_info_s
{
    axis2_http_out_transport_info_t out_transport_info;
    axis2_cgi_request_t *request;
    axis2_char_t *encoding;
} axis2_cgi_out_transport_info_t;   

#define AXIS2_INTF_TO_IMPL(out_transport_info) \
                ((axis2_cgi_out_transport_info_t *)(out_transport_info))
               
void AXIS2_CALL
axis2_cgi_out_transport_info_free(
    axis2_http_out_transport_info_t * info,
    const axutil_env_t * env)
{
    axis2_cgi_out_transport_info_t *info_impl = NULL;
    AXIS2_ENV_CHECK(env, void);

    info_impl = AXIS2_INTF_TO_IMPL(info);
    
    info_impl->request = NULL; /* doesn't belong here so no need to free it here */
    if (info_impl->encoding)
    {
        AXIS2_FREE(env->allocator, info_impl->encoding);
        info_impl->encoding = NULL;
    }

    AXIS2_FREE(env->allocator, info_impl);
    return;
}

void AXIS2_CALL
axis2_cgi_out_transport_info_free_void_arg(
    void *transport_info,
    const axutil_env_t * env)
{
    axis2_http_out_transport_info_t *transport_info_l = NULL;

    AXIS2_ENV_CHECK(env, void);
    transport_info_l = (axis2_http_out_transport_info_t *) transport_info;
    axis2_http_out_transport_info_free(transport_info_l, env);
    return;
}

axis2_status_t AXIS2_CALL
axis2_cgi_out_transport_info_set_content_type(
    axis2_http_out_transport_info_t *info,
    const axutil_env_t *env,
    const axis2_char_t *content_type)
{
    axis2_cgi_out_transport_info_t *info_impl = NULL;

    axis2_char_t *temp1 = NULL;
    axis2_char_t *temp2 = NULL;

    AXIS2_ENV_CHECK(env, AXIS2_FAILURE);
    AXIS2_PARAM_CHECK(env->error, content_type, AXIS2_FAILURE);
    info_impl = AXIS2_INTF_TO_IMPL(info);
    if (info_impl->encoding)
    {
        temp1 = axutil_stracat(env, content_type, ";charset=");
        temp2 = axutil_stracat(env, temp1, info_impl->encoding);
        info_impl->request->content_type = axutil_strdup(env, temp2);
        AXIS2_FREE(env->allocator, temp1);
        AXIS2_FREE(env->allocator, temp2);
    }
    else
    {
        info_impl->request->content_type = axutil_strdup(env, content_type);
    }
    return AXIS2_SUCCESS;
}

axis2_status_t AXIS2_CALL
axis2_cgi_out_transport_info_set_char_encoding(
    axis2_http_out_transport_info_t * info,
    const axutil_env_t * env,
    const axis2_char_t * encoding)
{    
    axis2_cgi_out_transport_info_t *info_impl = NULL;
    AXIS2_ENV_CHECK(env, AXIS2_FAILURE);
    AXIS2_PARAM_CHECK(env->error, encoding, AXIS2_FAILURE);

    info_impl = AXIS2_INTF_TO_IMPL(info);
    
    if (info_impl->encoding)
    {
        AXIS2_FREE(env->allocator, info_impl->encoding);
    }
    info_impl->encoding = axutil_strdup(env, encoding);
    
    return AXIS2_SUCCESS;
}

axis2_http_out_transport_info_t *AXIS2_CALL
axis2_cgi_out_transport_info_create(
    const axutil_env_t * env,
    axis2_cgi_request_t * request)
{
    axis2_cgi_out_transport_info_t *info = NULL;
    axis2_http_out_transport_info_t *out_transport_info = NULL;

    AXIS2_ENV_CHECK(env, NULL);

    info = (axis2_cgi_out_transport_info_t *) AXIS2_MALLOC
        (env->allocator, sizeof(axis2_cgi_out_transport_info_t));

    if (!info)
    {
        AXIS2_ERROR_SET(env->error, AXIS2_ERROR_NO_MEMORY, AXIS2_FAILURE);
        return NULL;
    }
    info->request = request;
    info->encoding = NULL;

    out_transport_info = &(info->out_transport_info);

    axis2_http_out_transport_info_set_char_encoding_func(out_transport_info,
                                                         env,
                                                         axis2_cgi_out_transport_info_set_char_encoding);
    axis2_http_out_transport_info_set_content_type_func(out_transport_info, env,
                                                        axis2_cgi_out_transport_info_set_content_type);

    return out_transport_info;
}

axis2_char_t *
axis2_cgi_out_transport_get_content(
    axis2_http_out_transport_info_t * info)
{
    axis2_cgi_out_transport_info_t *info_impl = NULL;
    info_impl = AXIS2_INTF_TO_IMPL(info);
    return info_impl->request->content_type;
}



<|start_filename|>xdocs/api/html/axiom__soap__envelope_8h-source.html<|end_filename|>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html><head><meta http-equiv="Content-Type" content="text/html;charset=UTF-8">
<title>Axis2/C: axiom_soap_envelope.h Source File</title>
<link href="doxygen.css" rel="stylesheet" type="text/css">
<link href="tabs.css" rel="stylesheet" type="text/css">
</head><body>
<!-- Generated by Doxygen 1.5.3 -->
<div class="tabs">
  <ul>
    <li><a href="index.html"><span>Main&nbsp;Page</span></a></li>
    <li><a href="modules.html"><span>Modules</span></a></li>
    <li><a href="annotated.html"><span>Classes</span></a></li>
    <li class="current"><a href="files.html"><span>Files</span></a></li>
    <li><a href="dirs.html"><span>Directories</span></a></li>
    <li><a href="pages.html"><span>Related&nbsp;Pages</span></a></li>
    <li><a href="examples.html"><span>Examples</span></a></li>
    <li>
      <form action="search.php" method="get">
        <table cellspacing="0" cellpadding="0" border="0">
          <tr>
            <td><label>&nbsp;<u>S</u>earch&nbsp;for&nbsp;</label></td>
            <td><input type="text" name="query" value="" size="20" accesskey="s"/></td>
          </tr>
        </table>
      </form>
    </li>
  </ul>
</div>
<div class="nav">
<a class="el" href="dir_f60961de8e5edc3b2658ef023e959e45.html">deploy</a>&nbsp;&raquo&nbsp;<a class="el" href="dir_6b4e91e54b7316b376882a6402adbf44.html">include</a>&nbsp;&raquo&nbsp;<a class="el" href="dir_df3a7695d5a9e696f30b948b566829e7.html">axis2-1.6.0</a></div>
<h1>axiom_soap_envelope.h</h1><a href="axiom__soap__envelope_8h.html">Go to the documentation of this file.</a><div class="fragment"><pre class="fragment"><a name="l00001"></a>00001 
<a name="l00002"></a>00002 <span class="comment">/*</span>
<a name="l00003"></a>00003 <span class="comment"> * Licensed to the Apache Software Foundation (ASF) under one or more</span>
<a name="l00004"></a>00004 <span class="comment"> * contributor license agreements.  See the NOTICE file distributed with</span>
<a name="l00005"></a>00005 <span class="comment"> * this work for additional information regarding copyright ownership.</span>
<a name="l00006"></a>00006 <span class="comment"> * The ASF licenses this file to You under the Apache License, Version 2.0</span>
<a name="l00007"></a>00007 <span class="comment"> * (the "License"); you may not use this file except in compliance with</span>
<a name="l00008"></a>00008 <span class="comment"> * the License.  You may obtain a copy of the License at</span>
<a name="l00009"></a>00009 <span class="comment"> *</span>
<a name="l00010"></a>00010 <span class="comment"> *      http://www.apache.org/licenses/LICENSE-2.0</span>
<a name="l00011"></a>00011 <span class="comment"> *</span>
<a name="l00012"></a>00012 <span class="comment"> * Unless required by applicable law or agreed to in writing, software</span>
<a name="l00013"></a>00013 <span class="comment"> * distributed under the License is distributed on an "AS IS" BASIS,</span>
<a name="l00014"></a>00014 <span class="comment"> * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.</span>
<a name="l00015"></a>00015 <span class="comment"> * See the License for the specific language governing permissions and</span>
<a name="l00016"></a>00016 <span class="comment"> * limitations under the License.</span>
<a name="l00017"></a>00017 <span class="comment"> */</span>
<a name="l00018"></a>00018 
<a name="l00019"></a>00019 <span class="preprocessor">#ifndef AXIOM_SOAP_ENVELOPE_H</span>
<a name="l00020"></a>00020 <span class="preprocessor"></span><span class="preprocessor">#define AXIOM_SOAP_ENVELOPE_H</span>
<a name="l00021"></a>00021 <span class="preprocessor"></span>
<a name="l00027"></a>00027 <span class="preprocessor">#include &lt;<a class="code" href="axutil__env_8h.html" title="Axis2 environment that acts as a container for error, log and memory allocator routines...">axutil_env.h</a>&gt;</span>
<a name="l00028"></a>00028 <span class="preprocessor">#include &lt;<a class="code" href="axiom__node_8h.html" title="defines axiom_node struct">axiom_node.h</a>&gt;</span>
<a name="l00029"></a>00029 <span class="preprocessor">#include &lt;axiom_element.h&gt;</span>
<a name="l00030"></a>00030 <span class="preprocessor">#include &lt;axiom_namespace.h&gt;</span>
<a name="l00031"></a>00031 <span class="preprocessor">#include &lt;<a class="code" href="axutil__array__list_8h.html" title="Axis2 array_list interface.">axutil_array_list.h</a>&gt;</span>
<a name="l00032"></a>00032 
<a name="l00033"></a>00033 <span class="preprocessor">#ifdef __cplusplus</span>
<a name="l00034"></a>00034 <span class="preprocessor"></span><span class="keyword">extern</span> <span class="stringliteral">"C"</span>
<a name="l00035"></a>00035 {
<a name="l00036"></a>00036 <span class="preprocessor">#endif</span>
<a name="l00037"></a>00037 <span class="preprocessor"></span>
<a name="l00038"></a>00038     <span class="keyword">typedef</span> <span class="keyword">struct </span>axiom_soap_envelope axiom_soap_envelope_t;
<a name="l00039"></a>00039 
<a name="l00040"></a>00040     <span class="keyword">struct </span>axiom_soap_body;
<a name="l00041"></a>00041     <span class="keyword">struct </span>axiom_soap_header;
<a name="l00042"></a>00042     <span class="keyword">struct </span>axiom_soap_header_block;
<a name="l00043"></a>00043     <span class="keyword">struct </span>axiom_soap_builder;
<a name="l00044"></a>00044 
<a name="l00059"></a>00059     AXIS2_EXTERN axiom_soap_envelope_t *AXIS2_CALL
<a name="l00060"></a>00060     <a class="code" href="group__axiom__soap__envelope.html#g5041f00b86da0b31997634056ab91879">axiom_soap_envelope_create</a>(
<a name="l00061"></a>00061         <span class="keyword">const</span> <a class="code" href="structaxutil__env.html" title="Axis2 Environment struct.">axutil_env_t</a> * env,
<a name="l00062"></a>00062         axiom_namespace_t * ns);
<a name="l00063"></a>00063 
<a name="l00074"></a>00074     AXIS2_EXTERN axiom_soap_envelope_t *AXIS2_CALL
<a name="l00075"></a>00075     <a class="code" href="group__axiom__soap__envelope.html#g13d7cc5563a577ffe36537fcab3c6220">axiom_soap_envelope_create_with_soap_version_prefix</a>(
<a name="l00076"></a>00076         <span class="keyword">const</span> <a class="code" href="structaxutil__env.html" title="Axis2 Environment struct.">axutil_env_t</a> * env,
<a name="l00077"></a>00077         <span class="keywordtype">int</span> soap_version,
<a name="l00078"></a>00078         <span class="keyword">const</span> axis2_char_t * prefix);
<a name="l00079"></a>00079 
<a name="l00087"></a>00087     AXIS2_EXTERN axiom_soap_envelope_t *AXIS2_CALL
<a name="l00088"></a>00088     <a class="code" href="group__axiom__soap__envelope.html#gcc0331effc60b8a61285e3ec07e32652">axiom_soap_envelope_create_default_soap_envelope</a>(
<a name="l00089"></a>00089         <span class="keyword">const</span> <a class="code" href="structaxutil__env.html" title="Axis2 Environment struct.">axutil_env_t</a> * env,
<a name="l00090"></a>00090         <span class="keywordtype">int</span> soap_version);
<a name="l00091"></a>00091 
<a name="l00099"></a>00099     AXIS2_EXTERN axiom_soap_envelope_t *AXIS2_CALL
<a name="l00100"></a>00100     <a class="code" href="group__axiom__soap__envelope.html#gb7fc6e54a5c354e7e5f285c78e7f7fc0">axiom_soap_envelope_create_default_soap_fault_envelope</a>(
<a name="l00101"></a>00101         <span class="keyword">const</span> <a class="code" href="structaxutil__env.html" title="Axis2 Environment struct.">axutil_env_t</a> * env,
<a name="l00102"></a>00102         <span class="keyword">const</span> axis2_char_t * code_value,
<a name="l00103"></a>00103         <span class="keyword">const</span> axis2_char_t * reason_text,
<a name="l00104"></a>00104         <span class="keyword">const</span> <span class="keywordtype">int</span> soap_version,
<a name="l00105"></a>00105         <a class="code" href="group__axutil__array__list.html#g1a6a89777db876cfa0cc86787b7be6a0">axutil_array_list_t</a> * sub_codes,
<a name="l00106"></a>00106         axiom_node_t * detail_node);
<a name="l00107"></a>00107 
<a name="l00114"></a>00114     AXIS2_EXTERN <span class="keyword">struct </span>axiom_soap_header *AXIS2_CALL
<a name="l00115"></a>00115     <a class="code" href="group__axiom__soap__envelope.html#ge45fe5ee486a2cba9fd1fbdf50211b36">axiom_soap_envelope_get_header</a>(
<a name="l00116"></a>00116          axiom_soap_envelope_t * envelope,
<a name="l00117"></a>00117          <span class="keyword">const</span> <a class="code" href="structaxutil__env.html" title="Axis2 Environment struct.">axutil_env_t</a> * env);
<a name="l00118"></a>00118 
<a name="l00125"></a>00125     AXIS2_EXTERN <span class="keyword">struct </span>axiom_soap_body *AXIS2_CALL
<a name="l00126"></a>00126     <a class="code" href="group__axiom__soap__envelope.html#g662a2d8cd4bf9a7a82f79492c9b16ad3">axiom_soap_envelope_get_body</a>(
<a name="l00127"></a>00127          axiom_soap_envelope_t * envelope,
<a name="l00128"></a>00128          <span class="keyword">const</span> <a class="code" href="structaxutil__env.html" title="Axis2 Environment struct.">axutil_env_t</a> * env);
<a name="l00129"></a>00129 
<a name="l00141"></a>00141     AXIS2_EXTERN axis2_status_t AXIS2_CALL
<a name="l00142"></a>00142     <a class="code" href="group__axiom__soap__envelope.html#gf409ccdda293c3e5b8b0e3da3e5417be">axiom_soap_envelope_serialize</a>(
<a name="l00143"></a>00143         axiom_soap_envelope_t * envelope,
<a name="l00144"></a>00144         <span class="keyword">const</span> <a class="code" href="structaxutil__env.html" title="Axis2 Environment struct.">axutil_env_t</a> * env,
<a name="l00145"></a>00145         <a class="code" href="group__axiom__output.html#gfe1ea804d7a8179e85371f065cd9df09" title="output struct The XML writer interface struct of om">axiom_output_t</a> * om_output,
<a name="l00146"></a>00146         axis2_bool_t cache);
<a name="l00147"></a>00147 
<a name="l00157"></a>00157     AXIS2_EXTERN <span class="keywordtype">void</span> AXIS2_CALL
<a name="l00158"></a>00158     <a class="code" href="group__axiom__soap__envelope.html#g133462e3b74e84e2ad650fa7b54b303b">axiom_soap_envelope_free</a>(
<a name="l00159"></a>00159         axiom_soap_envelope_t * envelope,
<a name="l00160"></a>00160         <span class="keyword">const</span> <a class="code" href="structaxutil__env.html" title="Axis2 Environment struct.">axutil_env_t</a> * env);
<a name="l00161"></a>00161 
<a name="l00168"></a>00168     AXIS2_EXTERN axiom_node_t *AXIS2_CALL
<a name="l00169"></a>00169     <a class="code" href="group__axiom__soap__envelope.html#ga494a9aa5bb5567f6362ed6ba45ecf32">axiom_soap_envelope_get_base_node</a>(
<a name="l00170"></a>00170         axiom_soap_envelope_t * envelope,
<a name="l00171"></a>00171         <span class="keyword">const</span> <a class="code" href="structaxutil__env.html" title="Axis2 Environment struct.">axutil_env_t</a> * env);
<a name="l00172"></a>00172 
<a name="l00178"></a>00178     AXIS2_EXTERN <span class="keywordtype">int</span> AXIS2_CALL
<a name="l00179"></a>00179     <a class="code" href="group__axiom__soap__envelope.html#g9f64833d41691f1ae7db590fd11aa25c">axiom_soap_envelope_get_soap_version</a>(
<a name="l00180"></a>00180         axiom_soap_envelope_t * envelope,
<a name="l00181"></a>00181         <span class="keyword">const</span> <a class="code" href="structaxutil__env.html" title="Axis2 Environment struct.">axutil_env_t</a> * env);
<a name="l00182"></a>00182 
<a name="l00189"></a>00189     AXIS2_EXTERN axiom_namespace_t *AXIS2_CALL
<a name="l00190"></a>00190     <a class="code" href="group__axiom__soap__envelope.html#ga357f2d36fb2912f9c6bc258a6cb8c0d">axiom_soap_envelope_get_namespace</a>(
<a name="l00191"></a>00191         axiom_soap_envelope_t * envelope,
<a name="l00192"></a>00192         <span class="keyword">const</span> <a class="code" href="structaxutil__env.html" title="Axis2 Environment struct.">axutil_env_t</a> * env);
<a name="l00193"></a>00193 
<a name="l00203"></a>00203     AXIS2_EXTERN axis2_status_t AXIS2_CALL
<a name="l00204"></a>00204     <a class="code" href="group__axiom__soap__envelope.html#g2d58cc830b1e909c68424349746e93a8">axiom_soap_envelope_set_soap_version</a>(
<a name="l00205"></a>00205         axiom_soap_envelope_t * envelope,
<a name="l00206"></a>00206         <span class="keyword">const</span> <a class="code" href="structaxutil__env.html" title="Axis2 Environment struct.">axutil_env_t</a> * env,
<a name="l00207"></a>00207         <span class="keywordtype">int</span> soap_version);
<a name="l00208"></a>00208 
<a name="l00216"></a>00216     AXIS2_EXTERN axis2_status_t AXIS2_CALL
<a name="l00217"></a>00217     <a class="code" href="group__axiom__soap__envelope.html#ge4c0fcc8adc7d8d816c81f009bb81e0d">axiom_soap_envelope_increment_ref</a>(
<a name="l00218"></a>00218         axiom_soap_envelope_t * envelope,
<a name="l00219"></a>00219         <span class="keyword">const</span> <a class="code" href="structaxutil__env.html" title="Axis2 Environment struct.">axutil_env_t</a> * env);
<a name="l00220"></a>00220 
<a name="l00228"></a>00228     AXIS2_EXTERN <span class="keyword">struct </span>axiom_soap_builder *AXIS2_CALL
<a name="l00229"></a>00229     <a class="code" href="group__axiom__soap__envelope.html#g17b40326cf1e991991e667f7ea559640">axiom_soap_envelope_get_soap_builder</a>(
<a name="l00230"></a>00230         axiom_soap_envelope_t * envelope,
<a name="l00231"></a>00231         <span class="keyword">const</span> <a class="code" href="structaxutil__env.html" title="Axis2 Environment struct.">axutil_env_t</a> * env);
<a name="l00232"></a>00232 
<a name="l00235"></a>00235 <span class="preprocessor">#ifdef __cplusplus</span>
<a name="l00236"></a>00236 <span class="preprocessor"></span>}
<a name="l00237"></a>00237 <span class="preprocessor">#endif</span>
<a name="l00238"></a>00238 <span class="preprocessor"></span>
<a name="l00239"></a>00239 <span class="preprocessor">#endif                          </span><span class="comment">/* AXIOM_SOAP_ENVELOPE_H */</span>
</pre></div><hr size="1"><address style="text-align: right;"><small>Generated on Fri Apr 17 11:49:42 2009 for Axis2/C by&nbsp;
<a href="http://www.doxygen.org/index.html">
<img src="doxygen.png" alt="doxygen" align="middle" border="0"></a> 1.5.3 </small></address>
</body>
</html>


<|start_filename|>xdocs/api/html/group__axiom__stax__builder.html<|end_filename|>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html><head><meta http-equiv="Content-Type" content="text/html;charset=UTF-8">
<title>Axis2/C: stax builder</title>
<link href="doxygen.css" rel="stylesheet" type="text/css">
<link href="tabs.css" rel="stylesheet" type="text/css">
</head><body>
<!-- Generated by Doxygen 1.5.3 -->
<div class="tabs">
  <ul>
    <li><a href="index.html"><span>Main&nbsp;Page</span></a></li>
    <li><a href="modules.html"><span>Modules</span></a></li>
    <li><a href="annotated.html"><span>Classes</span></a></li>
    <li><a href="files.html"><span>Files</span></a></li>
    <li><a href="dirs.html"><span>Directories</span></a></li>
    <li><a href="pages.html"><span>Related&nbsp;Pages</span></a></li>
    <li><a href="examples.html"><span>Examples</span></a></li>
    <li>
      <form action="search.php" method="get">
        <table cellspacing="0" cellpadding="0" border="0">
          <tr>
            <td><label>&nbsp;<u>S</u>earch&nbsp;for&nbsp;</label></td>
            <td><input type="text" name="query" value="" size="20" accesskey="s"/></td>
          </tr>
        </table>
      </form>
    </li>
  </ul>
</div>
<h1>stax builder<br>
<small>
[<a class="el" href="group__axiom__om.html">AXIOM</a>]</small>
</h1><table border="0" cellpadding="0" cellspacing="0">
<tr><td></td></tr>
<tr><td colspan="2"><br><h2>Typedefs</h2></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="g3d226ed2a10a2beacb781dc658ce72d2"></a><!-- doxytag: member="axiom_stax_builder::axiom_stax_builder_t" ref="g3d226ed2a10a2beacb781dc658ce72d2" args="" -->
typedef struct <br>
axiom_stax_builder&nbsp;</td><td class="memItemRight" valign="bottom"><b>axiom_stax_builder_t</b></td></tr>

<tr><td colspan="2"><br><h2>Functions</h2></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top">AXIS2_EXTERN <br>
axiom_stax_builder_t *&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__axiom__stax__builder.html#gaa043427387b30005fbbf90f0c96cff0">axiom_stax_builder_create</a> (const <a class="el" href="structaxutil__env.html">axutil_env_t</a> *env, <a class="el" href="structaxiom__xml__reader.html">axiom_xml_reader_t</a> *parser)</td></tr>

<tr><td class="memItemLeft" nowrap align="right" valign="top">AXIS2_EXTERN <br>
axiom_node_t *&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__axiom__stax__builder.html#g36663b99e04b43c27f49fa8d0aac6140">axiom_stax_builder_next</a> (struct axiom_stax_builder *builder, const <a class="el" href="structaxutil__env.html">axutil_env_t</a> *env)</td></tr>

<tr><td class="memItemLeft" nowrap align="right" valign="top">AXIS2_EXTERN <br>
axis2_status_t&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__axiom__stax__builder.html#g93547cae8f1309902bbf1f54b9d73dcf">axiom_stax_builder_discard_current_element</a> (struct axiom_stax_builder *builder, const <a class="el" href="structaxutil__env.html">axutil_env_t</a> *env)</td></tr>

<tr><td class="memItemLeft" nowrap align="right" valign="top">AXIS2_EXTERN void&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__axiom__stax__builder.html#gde695886b793011213d197b3c177b305">axiom_stax_builder_free</a> (struct axiom_stax_builder *builder, const <a class="el" href="structaxutil__env.html">axutil_env_t</a> *env)</td></tr>

<tr><td class="memItemLeft" nowrap align="right" valign="top">AXIS2_EXTERN void&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__axiom__stax__builder.html#g6316c104a0d16efdeaee14a35a03cd06">axiom_stax_builder_free_self</a> (struct axiom_stax_builder *builder, const <a class="el" href="structaxutil__env.html">axutil_env_t</a> *env)</td></tr>

<tr><td class="memItemLeft" nowrap align="right" valign="top">AXIS2_EXTERN <br>
axiom_document_t *&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__axiom__stax__builder.html#g0d9f465b7ff6d9d3b6f918a674300db4">axiom_stax_builder_get_document</a> (struct axiom_stax_builder *builder, const <a class="el" href="structaxutil__env.html">axutil_env_t</a> *env)</td></tr>

<tr><td class="memItemLeft" nowrap align="right" valign="top">AXIS2_EXTERN axis2_bool_t&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__axiom__stax__builder.html#g5e83abf52f71f132e9e3171c29955fdf">axiom_stax_builder_is_complete</a> (struct axiom_stax_builder *builder, const <a class="el" href="structaxutil__env.html">axutil_env_t</a> *env)</td></tr>

<tr><td class="memItemLeft" nowrap align="right" valign="top">AXIS2_EXTERN int&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__axiom__stax__builder.html#g1e1c4fa9591e1e0886420ff43a164f9b">axiom_stax_builder_next_with_token</a> (struct axiom_stax_builder *builder, const <a class="el" href="structaxutil__env.html">axutil_env_t</a> *env)</td></tr>

</table>
<hr><h2>Function Documentation</h2>
<a class="anchor" name="gaa043427387b30005fbbf90f0c96cff0"></a><!-- doxytag: member="axiom_stax_builder.h::axiom_stax_builder_create" ref="gaa043427387b30005fbbf90f0c96cff0" args="(const axutil_env_t *env, axiom_xml_reader_t *parser)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">AXIS2_EXTERN axiom_stax_builder_t* axiom_stax_builder_create           </td>
          <td>(</td>
          <td class="paramtype">const <a class="el" href="structaxutil__env.html">axutil_env_t</a> *&nbsp;</td>
          <td class="paramname"> <em>env</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype"><a class="el" href="structaxiom__xml__reader.html">axiom_xml_reader_t</a> *&nbsp;</td>
          <td class="paramname"> <em>parser</em></td><td>&nbsp;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td><td width="100%"></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
Creates an stax builder <dl compact><dt><b>Parameters:</b></dt><dd>
  <table border="0" cellspacing="2" cellpadding="0">
    <tr><td valign="top"></td><td valign="top"><em>environment</em>&nbsp;</td><td>Environment. MUST NOT be NULL. </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>parser</em>&nbsp;</td><td>parser to be used with builder. The builder will take ownership of the parser. </td></tr>
  </table>
</dl>
<dl class="return" compact><dt><b>Returns:</b></dt><dd>a pointer to the newly created builder struct. </dd></dl>

</div>
</div><p>
<a class="anchor" name="g93547cae8f1309902bbf1f54b9d73dcf"></a><!-- doxytag: member="axiom_stax_builder.h::axiom_stax_builder_discard_current_element" ref="g93547cae8f1309902bbf1f54b9d73dcf" args="(struct axiom_stax_builder *builder, const axutil_env_t *env)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">AXIS2_EXTERN axis2_status_t axiom_stax_builder_discard_current_element           </td>
          <td>(</td>
          <td class="paramtype">struct axiom_stax_builder *&nbsp;</td>
          <td class="paramname"> <em>builder</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const <a class="el" href="structaxutil__env.html">axutil_env_t</a> *&nbsp;</td>
          <td class="paramname"> <em>env</em></td><td>&nbsp;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td><td width="100%"></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
Discards the element that is being built currently. <dl compact><dt><b>Parameters:</b></dt><dd>
  <table border="0" cellspacing="2" cellpadding="0">
    <tr><td valign="top"></td><td valign="top"><em>environment</em>&nbsp;</td><td>Environment. MUST NOT be NULL, . </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>builder</em>&nbsp;</td><td>pointer to stax builder struct to be used </td></tr>
  </table>
</dl>
<dl class="return" compact><dt><b>Returns:</b></dt><dd>satus of the op. AXIS2_SUCCESS on success else AXIS2_FAILURE. </dd></dl>

</div>
</div><p>
<a class="anchor" name="gde695886b793011213d197b3c177b305"></a><!-- doxytag: member="axiom_stax_builder.h::axiom_stax_builder_free" ref="gde695886b793011213d197b3c177b305" args="(struct axiom_stax_builder *builder, const axutil_env_t *env)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">AXIS2_EXTERN void axiom_stax_builder_free           </td>
          <td>(</td>
          <td class="paramtype">struct axiom_stax_builder *&nbsp;</td>
          <td class="paramname"> <em>builder</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const <a class="el" href="structaxutil__env.html">axutil_env_t</a> *&nbsp;</td>
          <td class="paramname"> <em>env</em></td><td>&nbsp;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td><td width="100%"></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
Free the build struct instance and its associated document,axiom tree. <dl compact><dt><b>Parameters:</b></dt><dd>
  <table border="0" cellspacing="2" cellpadding="0">
    <tr><td valign="top"></td><td valign="top"><em>builder</em>&nbsp;</td><td>pointer to builder struct </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>env</em>&nbsp;</td><td>environment, MUST NOT be NULL </td></tr>
  </table>
</dl>
<dl class="return" compact><dt><b>Returns:</b></dt><dd>status of the op AXIS2_SUCCESS on success, AXIS2_FAILURE on error. </dd></dl>

</div>
</div><p>
<a class="anchor" name="g6316c104a0d16efdeaee14a35a03cd06"></a><!-- doxytag: member="axiom_stax_builder.h::axiom_stax_builder_free_self" ref="g6316c104a0d16efdeaee14a35a03cd06" args="(struct axiom_stax_builder *builder, const axutil_env_t *env)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">AXIS2_EXTERN void axiom_stax_builder_free_self           </td>
          <td>(</td>
          <td class="paramtype">struct axiom_stax_builder *&nbsp;</td>
          <td class="paramname"> <em>builder</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const <a class="el" href="structaxutil__env.html">axutil_env_t</a> *&nbsp;</td>
          <td class="paramname"> <em>env</em></td><td>&nbsp;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td><td width="100%"></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
Free the build struct instance and its associated document. does not free the associated axiom tree. <dl compact><dt><b>Parameters:</b></dt><dd>
  <table border="0" cellspacing="2" cellpadding="0">
    <tr><td valign="top"></td><td valign="top"><em>builder</em>&nbsp;</td><td>pointer to builder struct </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>env</em>&nbsp;</td><td>environment, MUST NOT be NULL </td></tr>
  </table>
</dl>
<dl class="return" compact><dt><b>Returns:</b></dt><dd>status of the op AXIS2_SUCCESS on success, AXIS2_FAILURE on error. </dd></dl>

</div>
</div><p>
<a class="anchor" name="g0d9f465b7ff6d9d3b6f918a674300db4"></a><!-- doxytag: member="axiom_stax_builder.h::axiom_stax_builder_get_document" ref="g0d9f465b7ff6d9d3b6f918a674300db4" args="(struct axiom_stax_builder *builder, const axutil_env_t *env)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">AXIS2_EXTERN axiom_document_t* axiom_stax_builder_get_document           </td>
          <td>(</td>
          <td class="paramtype">struct axiom_stax_builder *&nbsp;</td>
          <td class="paramname"> <em>builder</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const <a class="el" href="structaxutil__env.html">axutil_env_t</a> *&nbsp;</td>
          <td class="paramname"> <em>env</em></td><td>&nbsp;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td><td width="100%"></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
Gets the document associated with the builder <dl compact><dt><b>Parameters:</b></dt><dd>
  <table border="0" cellspacing="2" cellpadding="0">
    <tr><td valign="top"></td><td valign="top"><em>builder</em>&nbsp;</td><td>axiom_stax_builder </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>env</em>&nbsp;</td><td>environment </td></tr>
  </table>
</dl>
<dl class="return" compact><dt><b>Returns:</b></dt><dd>pointer to document struct associated with builder NULL if there is no document associated with the builder, NULL if an error occured. </dd></dl>

</div>
</div><p>
<a class="anchor" name="g5e83abf52f71f132e9e3171c29955fdf"></a><!-- doxytag: member="axiom_stax_builder.h::axiom_stax_builder_is_complete" ref="g5e83abf52f71f132e9e3171c29955fdf" args="(struct axiom_stax_builder *builder, const axutil_env_t *env)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">AXIS2_EXTERN axis2_bool_t axiom_stax_builder_is_complete           </td>
          <td>(</td>
          <td class="paramtype">struct axiom_stax_builder *&nbsp;</td>
          <td class="paramname"> <em>builder</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const <a class="el" href="structaxutil__env.html">axutil_env_t</a> *&nbsp;</td>
          <td class="paramname"> <em>env</em></td><td>&nbsp;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td><td width="100%"></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
builder is finished building om structure <dl compact><dt><b>Parameters:</b></dt><dd>
  <table border="0" cellspacing="2" cellpadding="0">
    <tr><td valign="top"></td><td valign="top"><em>builder</em>&nbsp;</td><td>pointer to stax builder struct to be used </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>environment</em>&nbsp;</td><td>Environment. MUST NOT be NULL.</td></tr>
  </table>
</dl>
<dl class="return" compact><dt><b>Returns:</b></dt><dd>AXIS2_TRUE if is complete or AXIS2_FALSE otherwise </dd></dl>

</div>
</div><p>
<a class="anchor" name="g36663b99e04b43c27f49fa8d0aac6140"></a><!-- doxytag: member="axiom_stax_builder.h::axiom_stax_builder_next" ref="g36663b99e04b43c27f49fa8d0aac6140" args="(struct axiom_stax_builder *builder, const axutil_env_t *env)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">AXIS2_EXTERN axiom_node_t* axiom_stax_builder_next           </td>
          <td>(</td>
          <td class="paramtype">struct axiom_stax_builder *&nbsp;</td>
          <td class="paramname"> <em>builder</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const <a class="el" href="structaxutil__env.html">axutil_env_t</a> *&nbsp;</td>
          <td class="paramname"> <em>env</em></td><td>&nbsp;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td><td width="100%"></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
Builds the next node from stream. Moves pull parser forward and reacts to events. <dl compact><dt><b>Parameters:</b></dt><dd>
  <table border="0" cellspacing="2" cellpadding="0">
    <tr><td valign="top"></td><td valign="top"><em>builder</em>&nbsp;</td><td>pointer to stax builder struct to be used </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>environment</em>&nbsp;</td><td>Environment. MUST NOT be NULL. </td></tr>
  </table>
</dl>
<dl class="return" compact><dt><b>Returns:</b></dt><dd>a pointer to the next node, or NULL if there are no more nodes. On erros sets the error and returns NULL. </dd></dl>

</div>
</div><p>
<a class="anchor" name="g1e1c4fa9591e1e0886420ff43a164f9b"></a><!-- doxytag: member="axiom_stax_builder.h::axiom_stax_builder_next_with_token" ref="g1e1c4fa9591e1e0886420ff43a164f9b" args="(struct axiom_stax_builder *builder, const axutil_env_t *env)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">AXIS2_EXTERN int axiom_stax_builder_next_with_token           </td>
          <td>(</td>
          <td class="paramtype">struct axiom_stax_builder *&nbsp;</td>
          <td class="paramname"> <em>builder</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const <a class="el" href="structaxutil__env.html">axutil_env_t</a> *&nbsp;</td>
          <td class="paramname"> <em>env</em></td><td>&nbsp;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td><td width="100%"></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
moves the reader to next event and returns the token returned by the xml_reader , returns -1 on error <dl compact><dt><b>Parameters:</b></dt><dd>
  <table border="0" cellspacing="2" cellpadding="0">
    <tr><td valign="top"></td><td valign="top"><em>builder</em>&nbsp;</td><td>pointer to stax builder struct to be used </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>environment</em>&nbsp;</td><td>Environment. MUST NOT be NULL. </td></tr>
  </table>
</dl>

</div>
</div><p>
<hr size="1"><address style="text-align: right;"><small>Generated on Fri Apr 17 11:49:44 2009 for Axis2/C by&nbsp;
<a href="http://www.doxygen.org/index.html">
<img src="doxygen.png" alt="doxygen" align="middle" border="0"></a> 1.5.3 </small></address>
</body>
</html>


<|start_filename|>guththila/src/guththila_attribute.c<|end_filename|>

/*
 * 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.
 */  
#include <guththila_attribute.h>
#include <guththila_stack.h>
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
    
int GUTHTHILA_CALL 
guththila_attr_list_grow(guththila_attr_list_t * at_list, int addition,const axutil_env_t * env) 
{
    int i = 0;

    if (addition > 0 ||
         (addition < 0 && at_list->capacity + addition > 0 &&
          at_list->capacity + addition >= at_list->size))
    {
        at_list->list =(guththila_attr_t *) realloc(at_list->list,sizeof(guththila_attr_t) *(at_list->capacity + addition));

        if (at_list->list)
        {
            for (i = at_list->capacity; i < at_list->capacity + addition; i++)
            {
                guththila_stack_push(&at_list->fr_stack, at_list->list + i,env);
            }

            at_list->capacity += addition;
        }
        else
        {
            return GUTHTHILA_FAILURE;
        }
    }
    return 0;
}

guththila_attr_list_t *GUTHTHILA_CALL 
guththila_attr_list_create(const axutil_env_t * env) 
{
    int i = 0;
    guththila_attr_list_t * at_list =(guththila_attr_list_t *) AXIS2_MALLOC(env->allocator,sizeof(guththila_attr_list_t));

    if (!at_list)
        return NULL;

    at_list->list =(guththila_attr_t *) AXIS2_MALLOC(env->allocator,sizeof(guththila_attr_t) *GUTHTHILA_ATTR_DEF_SIZE);

    if (at_list->list && guththila_stack_init(&at_list->fr_stack, env))
	{
        at_list->capacity = GUTHTHILA_ATTR_DEF_SIZE;
        at_list->size = 0;
        for (i = 0; i < GUTHTHILA_ATTR_DEF_SIZE; i++)
        {
            guththila_stack_push(&at_list->fr_stack, at_list->list + i, env);
        }
        return at_list;
    }
    return NULL;
}

int GUTHTHILA_CALL
guththila_attr_list_init(guththila_attr_list_t * at_list,const axutil_env_t * env) 
{
    int i = 0;
    at_list->list =(guththila_attr_t *) AXIS2_MALLOC(env->allocator,sizeof(guththila_attr_t) *GUTHTHILA_ATTR_DEF_SIZE);

    if (at_list->list && guththila_stack_init(&at_list->fr_stack, env))       
    {
        at_list->capacity = GUTHTHILA_ATTR_DEF_SIZE;
        at_list->size = 0;
        for (i = 0; i < GUTHTHILA_ATTR_DEF_SIZE; i++)
        {
            guththila_stack_push(&at_list->fr_stack, at_list->list + i, env);
        }
        return GUTHTHILA_SUCCESS;
    }
    return GUTHTHILA_FAILURE;
}

guththila_attr_t *GUTHTHILA_CALL
guththila_attr_list_get(guththila_attr_list_t * at_list,const axutil_env_t * env) 
{
    if (at_list->fr_stack.top > 0 ||guththila_attr_list_grow(at_list, GUTHTHILA_ATTR_DEF_SIZE, env))
    {
        return guththila_stack_pop(&at_list->fr_stack, env);
    }

    return NULL;
}

int GUTHTHILA_CALL 
guththila_attr_list_release(guththila_attr_list_t * at_list,guththila_attr_t * attr,const axutil_env_t * env) 
{    

  return guththila_stack_push(&at_list->fr_stack, attr, env);

}

void GUTHTHILA_CALL
msuila_attr_list_free_data(guththila_attr_list_t * at_list,const axutil_env_t * env) 
{
    AXIS2_FREE(env->allocator, at_list->list);
    guththila_stack_un_init(&at_list->fr_stack, env);
} 

void GUTHTHILA_CALL
guththila_attr_list_free(guththila_attr_list_t * at_list,const axutil_env_t * env) 
{
    AXIS2_FREE(env->allocator, at_list->list);
    guththila_stack_un_init(&at_list->fr_stack, env);
    AXIS2_FREE(env->allocator, at_list);
} 


<|start_filename|>axiom/src/om/om_node.c<|end_filename|>

/*
 * 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.
 */

#include "axiom_node_internal.h"
#include <axiom_element.h>
#include <axiom_text.h>
#include <axiom_data_source.h>
#include <axiom_comment.h>
#include <axiom_processing_instruction.h>
#include <axiom_doctype.h>
#include <axiom_document.h>
#include <axiom_stax_builder.h>

struct axiom_node
{

    /** document only available if build through builder */
    struct axiom_document *om_doc;

    axiom_stax_builder_t *builder;

    /** parent node */
    axiom_node_t *parent;

    /** previous sibling */
    axiom_node_t *prev_sibling;

    /** next sibling */
    axiom_node_t *next_sibling;

    /** first child */
    axiom_node_t *first_child;

    /** last child */
    axiom_node_t *last_child;

    /** node type, indicates the type stored in data_element */
    axiom_types_t node_type;

    /** done true means that this node is completely built , false otherwise */
    int done;

    /** instances of an om struct, whose type is defined by node type */
    void *data_element;

};

static axiom_node_t *
axiom_node_detach_without_namespaces(
    axiom_node_t * om_node,
    const axutil_env_t * env);

AXIS2_EXTERN axiom_node_t *AXIS2_CALL
axiom_node_create(
    const axutil_env_t * env)
{
    axiom_node_t *node = NULL;
    AXIS2_ENV_CHECK(env, NULL);

    node = (axiom_node_t *) AXIS2_MALLOC(env->allocator, sizeof(axiom_node_t));
    if (!node)
    {
        env->error->error_number = AXIS2_ERROR_NO_MEMORY;
        return NULL;
    }
    node->first_child = NULL;
    node->last_child = NULL;
    node->next_sibling = NULL;
    node->prev_sibling = NULL;
    node->parent = NULL;
    node->node_type = AXIOM_INVALID;
    node->done = AXIS2_FALSE;
    node->data_element = NULL;
    node->om_doc = NULL;
    node->builder = NULL;
    return node;
}

AXIS2_EXTERN axiom_node_t* AXIS2_CALL
axiom_node_create_from_buffer(
    const axutil_env_t * env,
    axis2_char_t *buffer)
{
    axiom_xml_reader_t *reader = NULL;
    axiom_stax_builder_t *builder = NULL;
    axiom_document_t *document = NULL;
    axiom_node_t *om_node = NULL;

    reader = axiom_xml_reader_create_for_memory (env, buffer, axutil_strlen (buffer),
        "UTF-8", AXIS2_XML_PARSER_TYPE_BUFFER);

    if (!reader)
    {
        return NULL;
    }

    builder = axiom_stax_builder_create (env, reader);

    if (!builder)
    {
        return NULL;
    }
    document = axiom_stax_builder_get_document (builder, env);
    if (!document)
    {
        AXIS2_LOG_ERROR (env->log, AXIS2_LOG_SI, "Document is null for deserialization");
        return NULL;
    }

    om_node = axiom_document_get_root_element (document, env);

    if (!om_node)
    {
        AXIS2_LOG_ERROR (env->log, AXIS2_LOG_SI, "Root element of the document is not found");
        return NULL;
    }
    axiom_document_build_all (document, env);

    axiom_stax_builder_free_self (builder, env);

    return om_node;
}


static void
axiom_node_free_detached_subtree(
    axiom_node_t * om_node,
    const axutil_env_t * env)
{
    /* Free any child nodes first */
    if (om_node->first_child)
    {
        axiom_node_t *child_node = om_node->first_child, *next_sibling;
        while (child_node)
        {
            next_sibling = child_node->next_sibling;
            axiom_node_free_detached_subtree(child_node, env);
            child_node = next_sibling;
        }
    }

    if (om_node->node_type == AXIOM_ELEMENT)
    {
        if (om_node->data_element)
        {
            axiom_element_free((axiom_element_t *) (om_node->data_element),
                               env);
        }
    }
    else if (om_node->node_type == AXIOM_COMMENT)
    {
        if (om_node->data_element)
        {
            axiom_comment_free((axiom_comment_t *) (om_node->data_element),
                               env);
        }
    }
    else if (om_node->node_type == AXIOM_DOCTYPE)
    {
        /*axiom_doctype_free((axiom_doctype_t*)(om_node->data_element), env); */
    }
    else if (om_node->node_type == AXIOM_PROCESSING_INSTRUCTION)
    {
        if (om_node->data_element)
        {
            axiom_processing_instruction_free((axiom_processing_instruction_t
                                               *) (om_node->data_element), env);
        }
    }
    else if (om_node->node_type == AXIOM_TEXT)
    {
        if (om_node->data_element)
        {
            axiom_text_free((axiom_text_t *) (om_node->data_element), env);
        }
    }
    else if (om_node->node_type == AXIOM_DATA_SOURCE)
    {
        if (om_node->data_element)
        {
            axiom_data_source_free((axiom_data_source_t *) (om_node->data_element), env);
        }
    }

    AXIS2_FREE(env->allocator, om_node);

    return;
}

/**
 *  This free function will free an om_element and all the children contained in it
 *  If the node is still attached to the tree, it will be detached first
*/
AXIS2_EXTERN void AXIS2_CALL
axiom_node_free_tree(
    axiom_node_t * om_node,
    const axutil_env_t * env)
{
    AXIS2_ENV_CHECK(env, void);
    if (!om_node)
    {
        return;
    }

    /* Detach this node before freeing it and its subtree. */
    axiom_node_detach_without_namespaces(om_node, env);

    /* Free this node and its subtree */
    axiom_node_free_detached_subtree(om_node, env);

    return;
}

AXIS2_EXTERN axis2_status_t AXIS2_CALL
axiom_node_add_child(
    axiom_node_t * om_node,
    const axutil_env_t * env,
    axiom_node_t * child)
{
    AXIS2_ENV_CHECK(env, AXIS2_FAILURE);
    AXIS2_PARAM_CHECK(env->error, child, AXIS2_FAILURE);
    AXIS2_PARAM_CHECK(env->error, om_node, AXIS2_FAILURE);

    if (child->parent)
    {
        child = axiom_node_detach(child, env);
    }

    if (!(om_node->first_child))
    {
        om_node->first_child = child;
    }
    else
    {
        axiom_node_t *last_sib = NULL;
        last_sib = om_node->last_child;
        if (last_sib)
        {
            last_sib->next_sibling = child;
            child->prev_sibling = last_sib;
        }
    }

    child->parent = om_node;
    om_node->last_child = child;
    return AXIS2_SUCCESS;
}

/**
 * Detach the node without regard to any namespace references in the node or
 * its children.
 */
static axiom_node_t *
axiom_node_detach_without_namespaces(
    axiom_node_t * om_node,
    const axutil_env_t * env)
{
    axiom_node_t *parent = NULL;

    AXIS2_ENV_CHECK(env, NULL);

    parent = om_node->parent;
    if (!parent)
    {
        /* Node is already detached */
        om_node->builder = NULL;
        return om_node;
    }

    if (!(om_node->prev_sibling))
    {
        parent->first_child = om_node->next_sibling;
    }
    else
    {
        axiom_node_t *prev_sib = NULL;
        prev_sib = om_node->prev_sibling;
        if (prev_sib)
        {
            prev_sib->next_sibling = om_node->next_sibling;
        }
    }

    if (om_node->next_sibling)
    {
        axiom_node_t *next_sibling = NULL;
        next_sibling = om_node->next_sibling;
        if (next_sibling)
        {
            next_sibling->prev_sibling = om_node->prev_sibling;
        }
    }

    if ((parent->last_child) && ((parent->last_child) == om_node))
    {
        parent->last_child = om_node->prev_sibling;
    }

    om_node->parent = NULL;
    om_node->prev_sibling = NULL;
    om_node->next_sibling = NULL;
    om_node->builder = NULL;
    return om_node;
}

AXIS2_EXTERN axiom_node_t *AXIS2_CALL
axiom_node_detach(
    axiom_node_t * om_node,
    const axutil_env_t * env)
{
    axutil_hash_t *inscope_namespaces = NULL;
    axiom_element_t *om_element = NULL;

    AXIS2_ENV_CHECK(env, NULL);
    if (!om_node)
    {
        return NULL;
    }

    /* If this is an element node, determine which namespaces are available to it
       from its parent nodes. */
    if ((om_node->node_type == AXIOM_ELEMENT) &&
        (om_element = om_node->data_element))
    {
        inscope_namespaces = axiom_element_gather_parent_namespaces(om_element, env, om_node);
    }

    /* Detach this node from its parent. */
    om_node = axiom_node_detach_without_namespaces(om_node, env);

    /* If this is an element node, ensure that any namespaces available to it or its
       children remain available after the detach. */
    if (om_node && inscope_namespaces)
    {
        axiom_element_redeclare_parent_namespaces(om_element, env, om_node, om_element, inscope_namespaces);
    }

    if (inscope_namespaces)
    {
        axutil_hash_free(inscope_namespaces, env);
    }

    return om_node;
}

/**
Internal function , only used in om and soap
not to be used by users
*/
AXIS2_EXTERN axis2_status_t AXIS2_CALL
axiom_node_set_parent(
    axiom_node_t * om_node,
    const axutil_env_t * env,
    axiom_node_t * parent)
{
    AXIS2_ENV_CHECK(env, AXIS2_FAILURE);
    if (!om_node)
    {
        return AXIS2_FAILURE;
    }

    AXIS2_PARAM_CHECK(env->error, parent, AXIS2_FAILURE);

    if (parent == om_node->parent)
    {                           /* same parent already exist */
        return AXIS2_SUCCESS;
    }
    /* if a new parent is assigned in  place of existing
       one first the node should  be detached  
     */
    if (om_node->parent)
    {
        om_node = axiom_node_detach_without_namespaces(om_node, env);
    }

    om_node->parent = parent;

    return AXIS2_SUCCESS;
}

/**
 * This will insert a sibling just after the current information item
 * @param node the node in consideration
 * @param nodeto_insert the node that will be inserted
 */

AXIS2_EXTERN axis2_status_t AXIS2_CALL
axiom_node_insert_sibling_after(
    axiom_node_t * om_node,
    const axutil_env_t * env,
    axiom_node_t * node_to_insert)
{
    axiom_node_t *next_sib = NULL;

    AXIS2_ENV_CHECK(env, AXIS2_FAILURE);

    AXIS2_PARAM_CHECK(env->error, node_to_insert, AXIS2_FAILURE);

    if (!om_node->parent)
    {
        /* We shouldn't add a sibling because this node doesn't has a parent. 
         * This can be the root node of the tree*/        
        return AXIS2_FAILURE;
    }

    node_to_insert->parent = om_node->parent;

    node_to_insert->prev_sibling = om_node;

    next_sib = om_node->next_sibling;

    if (next_sib)
    {
        next_sib->prev_sibling = node_to_insert;
    }

    node_to_insert->next_sibling = om_node->next_sibling;

    om_node->next_sibling = node_to_insert;
    return AXIS2_SUCCESS;
}

AXIS2_EXTERN axis2_status_t AXIS2_CALL
axiom_node_insert_sibling_before(
    axiom_node_t * om_node,
    const axutil_env_t * env,
    axiom_node_t * node_to_insert)
{
    axiom_node_t *prev_sibling = NULL;

    AXIS2_ENV_CHECK(env, AXIS2_FAILURE);
    AXIS2_PARAM_CHECK(env->error, node_to_insert, AXIS2_FAILURE);

    if (!om_node->parent)
    {
        /* We shouldn't add a sibling because this node doesn't has a parent. 
         * This can be the root node of the tree*/
        return AXIS2_FAILURE;
    }

    node_to_insert->parent = om_node->parent;

    node_to_insert->prev_sibling = om_node->prev_sibling;

    node_to_insert->next_sibling = om_node;

    prev_sibling = om_node->prev_sibling;

    if (!prev_sibling)
    {
        axiom_node_t *parent = om_node->parent;
        parent->first_child = node_to_insert;
    }
    else
    {
        axiom_node_t *prev_sibling = om_node->prev_sibling;
        if (prev_sibling)
        {
            prev_sibling->next_sibling = node_to_insert;
        }
    }
    om_node->prev_sibling = node_to_insert;
    return AXIS2_SUCCESS;
}

AXIS2_EXTERN axis2_status_t AXIS2_CALL
axiom_node_serialize(
    axiom_node_t * om_node,
    const axutil_env_t * env,
    axiom_output_t * om_output)
{

    int status = AXIS2_SUCCESS;
    axiom_node_t *temp_node = NULL;
    axiom_node_t *nodes[256];
    int count = 0;

    AXIS2_ENV_CHECK(env, AXIS2_FAILURE);

    if (!om_node)
    {
        return AXIS2_SUCCESS;
    }

    nodes[count++] = om_node;

    AXIS2_PARAM_CHECK(env->error, om_output, AXIS2_FAILURE);

    do
    {

        if (om_node->node_type == AXIOM_ELEMENT)
        {
            if (om_node->data_element)
            {
                status =
                    axiom_element_serialize_start_part((axiom_element_t
                                                        *) (om_node->
                                                            data_element), env,
                                                       om_output, om_node);
            }
            if (status != AXIS2_SUCCESS)
            {
                return status;
            }
        }
        else if (om_node->node_type == AXIOM_DATA_SOURCE)
        {
            if (om_node->data_element)
            {
                status =
                    axiom_data_source_serialize((axiom_data_source_t
                                                 *) (om_node->data_element),
                                                env, om_output);
            }
            if (status != AXIS2_SUCCESS)
            {
                return status;
            }
        }
        else if (om_node->node_type == AXIOM_TEXT)
        {
            if (om_node->data_element)
            {
                status =
                    axiom_text_serialize((axiom_text_t *) (om_node->
                                                           data_element), env,
                                         om_output);
            }
            if (status != AXIS2_SUCCESS)
            {
                return status;
            }
        }
        else if (om_node->node_type == AXIOM_COMMENT)
        {
            if (om_node->data_element)
            {
                status =
                    axiom_comment_serialize((axiom_comment_t *) (om_node->
                                                                 data_element),
                                            env, om_output);
            }
            if (status != AXIS2_SUCCESS)
            {
                return status;
            }
        }
        else if (om_node->node_type == AXIOM_DOCTYPE)
        {
            if (om_node->data_element)
            {
                status =
                    axiom_doctype_serialize((axiom_doctype_t *) (om_node->
                                                                 data_element),
                                            env, om_output);
            }
            if (status != AXIS2_SUCCESS)
            {
                return status;
            }
        }
        else if (om_node->node_type == AXIOM_PROCESSING_INSTRUCTION)
        {
            if (om_node->data_element)
            {
                status =
                    axiom_processing_instruction_serialize((axiom_processing_instruction_t *) (om_node->data_element), env, om_output);
            }

            if (status != AXIS2_SUCCESS)
            {
                return status;
            }
        }

        temp_node = axiom_node_get_first_child(om_node, env);
        /* serialize children of this node */
        if (temp_node)
        {
            om_node = temp_node;
            nodes[count++] = om_node;
        }
        else
        {
            if (om_node->node_type == AXIOM_ELEMENT)
            {
                if (om_node->data_element)
                {
                    status =
                        axiom_element_serialize_end_part((axiom_element_t
                                                          *) (om_node->
                                                              data_element),
                                                         env, om_output);
                }
                if (status != AXIS2_SUCCESS)
                {
                    return status;
                }
            }

            temp_node = axiom_node_get_next_sibling(om_node, env);
            if (temp_node)
            {
                om_node = temp_node;
                nodes[count - 1] = om_node;
            }
            else
            {
                while (count > 1 && !temp_node)
                {
                    count--;
                    om_node = nodes[count - 1];
                    if (om_node->node_type == AXIOM_ELEMENT)
                    {
                        if (om_node->data_element)
                        {
                            status =
                                axiom_element_serialize_end_part((axiom_element_t *) (om_node->data_element), env, om_output);
                        }
                        if (status != AXIS2_SUCCESS)
                        {
                            return status;
                        }
                    }

                    temp_node = axiom_node_get_next_sibling(om_node, env);
                }

                if (temp_node && count > 1)
                {
                    om_node = temp_node;
                    nodes[count - 1] = om_node;
                }
                else
                {
                    count--;
                }
            }

        }
    }
    while (count > 0);

    return status;
}

AXIS2_EXTERN axis2_status_t AXIS2_CALL
axiom_node_serialize_sub_tree(
    axiom_node_t * om_node,
    const axutil_env_t * env,
    axiom_output_t * om_output)
{

    int status = AXIS2_SUCCESS;
    axiom_node_t *temp_node = NULL;
    axiom_node_t *nodes[256];
    int count = 0;
    axutil_hash_t *namespaces = NULL;
    axutil_hash_t *namespaces_from_parents = NULL;

    AXIS2_ENV_CHECK(env, AXIS2_FAILURE);

    if (!om_node)
    {
        return AXIS2_SUCCESS;
    }

    namespaces = axutil_hash_make(env);
    if(!namespaces)
    {
        AXIS2_LOG_ERROR(env->log, AXIS2_LOG_SI,
                "hash for namespaces creation failed");
        return AXIS2_FAILURE;
    }

    namespaces_from_parents = axutil_hash_make(env);
    if(!namespaces_from_parents)
    {
        AXIS2_LOG_ERROR(env->log, AXIS2_LOG_SI,
                "hash for namespaces_from_parents creation failed");
        return AXIS2_FAILURE;
    }

    nodes[count++] = om_node;

    AXIS2_PARAM_CHECK(env->error, om_output, AXIS2_FAILURE);

    do
    {

        if (om_node->node_type == AXIOM_ELEMENT)
        {
            if (om_node->data_element)
            {
                axutil_hash_t *temp_namespaces = NULL;
                axutil_hash_t *temp_attributes = NULL;
                axiom_namespace_t *namespace = NULL;
                status = axiom_element_serialize_start_part((axiom_element_t
                                                             *) (om_node->
                                                                 data_element),
                                                            env, om_output,
                                                            om_node);
                temp_namespaces =
                    axiom_element_get_namespaces((axiom_element_t *) (om_node->
                                                                      data_element),
                                                 env);
                if (temp_namespaces)
                {
                    axutil_hash_t *new_hash = NULL;
                    new_hash =
                        axutil_hash_overlay(temp_namespaces, env, namespaces);
                    if(namespaces)
                        axutil_hash_free(namespaces, env);
                    namespaces = new_hash;
                }
                namespace = axiom_element_get_namespace((axiom_element_t
                                                         *) (om_node->
                                                             data_element), env,
                                                        om_node);
                if (namespace)
                {
                    axiom_namespace_t *ns = NULL;
                    axis2_char_t *prefix = NULL;
                    prefix = axiom_namespace_get_prefix(namespace, env);
                    if (prefix)
                    {
                        ns = axutil_hash_get(namespaces, prefix,
                                             AXIS2_HASH_KEY_STRING);
                        if (!ns)
                        {
                            ns = axutil_hash_get(namespaces_from_parents, prefix,
                                                    AXIS2_HASH_KEY_STRING);
                            if (!ns)
                            {
                                axiom_namespace_serialize(namespace, env,
                                                          om_output);
                                axutil_hash_set(namespaces_from_parents, prefix,
                                                AXIS2_HASH_KEY_STRING, namespace);
                            }
                        }
                    }
                }

                temp_attributes = axiom_element_get_all_attributes((axiom_element_t *) (om_node->data_element), env);
                if (temp_attributes)
                {
                    axutil_hash_index_t *hi;
                    void *val;
                    for (hi = axutil_hash_first(temp_attributes, env); hi;
                         hi = axutil_hash_next(env, hi))
                    {
                        axutil_hash_this(hi, NULL, NULL, &val);

                        if (val)
                        {
                            axiom_namespace_t *ns = NULL;
                            axis2_char_t *prefix = NULL;

                            namespace =
                                axiom_attribute_get_namespace((axiom_attribute_t
                                                               *) val, env);

                            if (namespace)
                            {
                                prefix =
                                    axiom_namespace_get_prefix(namespace, env);
                                if (prefix)
                                {
                                    ns = axutil_hash_get(namespaces, prefix,
                                                         AXIS2_HASH_KEY_STRING);
                                    if (!ns)
                                    {
                                        ns = axutil_hash_get(namespaces_from_parents, prefix,
                                                                AXIS2_HASH_KEY_STRING);
                                        if (!ns)
                                        {
                                            axiom_namespace_serialize(namespace, env,
                                                                      om_output);
                                            axutil_hash_set(namespaces_from_parents, prefix,
                                                            AXIS2_HASH_KEY_STRING, namespace);
                                        }
                                    }
                                }
                            }
                        }
                        else
                        {
                            status = AXIS2_FAILURE;
                        }
                    }
                }
            }
            if (status != AXIS2_SUCCESS)
            {
                break;
            }
        }
        else if (om_node->node_type == AXIOM_DATA_SOURCE)
        {
            if (om_node->data_element)
            {
                status =
                    axiom_data_source_serialize((axiom_data_source_t
                                                 *) (om_node->data_element),
                                                env, om_output);
            }
            if (status != AXIS2_SUCCESS)
            {
                break;
            }
        }
        else if (om_node->node_type == AXIOM_TEXT)
        {
            if (om_node->data_element)
            {
                status =
                    axiom_text_serialize((axiom_text_t *) (om_node->
                                                           data_element), env,
                                         om_output);
            }
            if (status != AXIS2_SUCCESS)
            {
                break;
            }
        }
        else if (om_node->node_type == AXIOM_COMMENT)
        {
            if (om_node->data_element)
            {
                status =
                    axiom_comment_serialize((axiom_comment_t *) (om_node->
                                                                 data_element),
                                            env, om_output);
            }
            if (status != AXIS2_SUCCESS)
            {
                break;
            }
        }
        else if (om_node->node_type == AXIOM_DOCTYPE)
        {
            if (om_node->data_element)
            {
                status =
                    axiom_doctype_serialize((axiom_doctype_t *) (om_node->
                                                                 data_element),
                                            env, om_output);
            }
            if (status != AXIS2_SUCCESS)
            {
                break;
            }
        }
        else if (om_node->node_type == AXIOM_PROCESSING_INSTRUCTION)
        {
            if (om_node->data_element)
            {
                status =
                    axiom_processing_instruction_serialize((axiom_processing_instruction_t *) (om_node->data_element), env, om_output);
            }

            if (status != AXIS2_SUCCESS)
            {
                break;
            }
        }

        temp_node = axiom_node_get_first_child(om_node, env);
        /* serialize children of this node */
        if (temp_node)
        {
            om_node = temp_node;
            nodes[count++] = om_node;
        }
        else
        {
            if (om_node->node_type == AXIOM_ELEMENT)
            {
                if (om_node->data_element)
                {

                    axutil_hash_t *temp_attributes = NULL;
                    axiom_namespace_t *namespace = NULL;
                    /* at the writing of end part all the namespaces declared
                       specially to that element should be cancelled */

                    /* first checking the element namespace */
                    namespace = axiom_element_get_namespace((axiom_element_t
                                                             *) (om_node->
                                                                 data_element), env,
                                                            om_node);
                    if (namespace)
                    {
                        axiom_namespace_t *ns = NULL;
                        axis2_char_t *prefix = NULL;
                        prefix = axiom_namespace_get_prefix(namespace, env);
                        if (prefix)
                        {
                            ns = axutil_hash_get(namespaces_from_parents, prefix,
                                                 AXIS2_HASH_KEY_STRING);
                            if (ns)
                            {
                                axutil_hash_set(namespaces_from_parents, prefix,
                                                    AXIS2_HASH_KEY_STRING, NULL);
                            }
                        }
                    }
                    
                    /* then checking the attribute namespaces */

                    temp_attributes = axiom_element_get_all_attributes((axiom_element_t *) (om_node->data_element), env);
                    if (temp_attributes)
                    {
                        axutil_hash_index_t *hi;
                        void *val;
                        for (hi = axutil_hash_first(temp_attributes, env); hi;
                             hi = axutil_hash_next(env, hi))
                        {
                            axutil_hash_this(hi, NULL, NULL, &val);

                            if (val)
                            {
                                axiom_namespace_t *ns = NULL;
                                axis2_char_t *prefix = NULL;

                                namespace =
                                    axiom_attribute_get_namespace((axiom_attribute_t
                                                                   *) val, env);

                                if (namespace)
                                {
                                    prefix =
                                        axiom_namespace_get_prefix(namespace, env);
                                    if (prefix)
                                    {
                                        ns = axutil_hash_get(namespaces_from_parents, prefix,
                                                             AXIS2_HASH_KEY_STRING);
                                        if (ns)
                                        {
                                            axutil_hash_set(namespaces_from_parents, prefix,
                                                        AXIS2_HASH_KEY_STRING, NULL);
                                        }
                                    }
                                }
                            }
                        }
                    }

                    status =
                        axiom_element_serialize_end_part((axiom_element_t
                                                          *) (om_node->
                                                              data_element),
                                                         env, om_output);
                }
                if (status != AXIS2_SUCCESS)
                {
                    break;
                }
            }
			/* We need to make make sure that om_node is not the root when we take the next sibling */
			if (count > 1)
			{
				temp_node = axiom_node_get_next_sibling(om_node, env);
			}
            if (temp_node)
            {
                om_node = temp_node;
                nodes[count - 1] = om_node;
            }
            else
            {
                while (count > 1 && !temp_node)
                {
                    count--;
                    om_node = nodes[count - 1];
                    if (om_node->node_type == AXIOM_ELEMENT)
                    {
                        if (om_node->data_element)
                        {
                            axutil_hash_t *temp_attributes = NULL;
                            axiom_namespace_t *namespace = NULL;

                            /* similar to the earlier time, whenever the ending is happened
                             * namespaces declared specially to that element should be cancelled */
                         
                            /* first checking the element namespace */
                            namespace = axiom_element_get_namespace((axiom_element_t
                                                                     *) (om_node->
                                                                         data_element), env,
                                                                    om_node);
                            if (namespace)
                            {
                                axiom_namespace_t *ns = NULL;
                                axis2_char_t *prefix = NULL;
                                prefix = axiom_namespace_get_prefix(namespace, env);
                                if (prefix)
                                {
                                    ns = axutil_hash_get(namespaces_from_parents, prefix,
                                                         AXIS2_HASH_KEY_STRING);
                                    if (ns)
                                    {
                                        axutil_hash_set(namespaces_from_parents, prefix,
                                                            AXIS2_HASH_KEY_STRING, NULL);
                                    }
                                }
                            }
                            
                            /* then checking the attribute namespaces */
                         
                            temp_attributes = axiom_element_get_all_attributes((axiom_element_t *) (om_node->data_element), env);
                            if (temp_attributes)
                            {
                                axutil_hash_index_t *hi;
                                void *val;
                                for (hi = axutil_hash_first(temp_attributes, env); hi;
                                     hi = axutil_hash_next(env, hi))
                                {
                                    axutil_hash_this(hi, NULL, NULL, &val);
                         
                                    if (val)
                                    {
                                        axiom_namespace_t *ns = NULL;
                                        axis2_char_t *prefix = NULL;
                         
                                        namespace =
                                            axiom_attribute_get_namespace((axiom_attribute_t
                                                                           *) val, env);
                         
                                        if (namespace)
                                        {
                                            prefix =
                                                axiom_namespace_get_prefix(namespace, env);
                                            if (prefix)
                                            {
                                                ns = axutil_hash_get(namespaces_from_parents, prefix,
                                                                     AXIS2_HASH_KEY_STRING);
                                                if (ns)
                                                {
                                                    axutil_hash_set(namespaces_from_parents, prefix,
                                                                AXIS2_HASH_KEY_STRING, NULL);
                                                }
                                            }
                                        }
                                    }
                                }
                            }
                            status =
                                axiom_element_serialize_end_part((axiom_element_t *) (om_node->data_element), env, om_output);
                        }
                        if (status != AXIS2_SUCCESS)
                        {
                            break;
                        }
                    }

                    temp_node = axiom_node_get_next_sibling(om_node, env);
                }

                if (temp_node && count > 1)
                {
                    om_node = temp_node;
                    nodes[count - 1] = om_node;
                }
                else
                {
                    count--;
                }
            }
        }
    }
    while (count > 0);

    axutil_hash_free(namespaces_from_parents, env);
    axutil_hash_free(namespaces, env);

    return status;
}

AXIS2_EXTERN axiom_node_t *AXIS2_CALL
axiom_node_get_parent(
    axiom_node_t * om_node,
    const axutil_env_t * env)
{
    return om_node->parent;
}

AXIS2_EXTERN axiom_node_t *AXIS2_CALL
axiom_node_get_first_child(
    axiom_node_t * om_node,
    const axutil_env_t * env)
{
    int token = 0;
    if (!om_node)
    {
        return NULL;
    }

    /**********************************************************/
    while (!(om_node->first_child) && !(om_node->done) && om_node->builder)
    {
        token = axiom_stax_builder_next_with_token(om_node->builder, env);
        if (token == -1)
        {
            return NULL;
        }
    }

    /**********************************************************/
    return om_node->first_child;
}

AXIS2_EXTERN axiom_node_t *AXIS2_CALL
axiom_node_get_first_element(
    axiom_node_t * om_node,
    const axutil_env_t * env)
{
    int token = 0;
    axiom_node_t *first_element;
    if (!om_node)
    {
        return NULL;
    }

    /**********************************************************/
    while (!(om_node->first_child) && !(om_node->done) && om_node->builder)
    {
        token = axiom_stax_builder_next_with_token(om_node->builder, env);
        if (token == -1)
        {
            return NULL;
        }
    }

    /**********************************************************/
    first_element = om_node->first_child;

    while (first_element &&
           (axiom_node_get_node_type(first_element, env) != AXIOM_ELEMENT))
    {
        first_element = axiom_node_get_next_sibling(first_element, env);
    }

    return first_element;
}

AXIS2_EXTERN axiom_node_t *AXIS2_CALL
axiom_node_get_last_child(
    axiom_node_t * om_node,
    const axutil_env_t * env)
{
    return om_node->last_child;
}

AXIS2_EXTERN axiom_node_t *AXIS2_CALL
axiom_node_get_previous_sibling(
    axiom_node_t * om_node,
    const axutil_env_t * env)
{
    return om_node->prev_sibling;
}

AXIS2_EXTERN axiom_node_t *AXIS2_CALL
axiom_node_get_next_sibling(
    axiom_node_t * om_node,
    const axutil_env_t * env)
{
    int token = 0;
    if (!om_node)
    {
        return NULL;
    }

    while (!(om_node->next_sibling) && om_node->parent &&
           om_node->builder && !(axiom_node_is_complete(om_node->parent, env)))
    {
        token = axiom_stax_builder_next_with_token(om_node->builder, env);
        if (token == -1)
        {
            return NULL;
        }
    }

    return om_node->next_sibling;
}

AXIS2_EXTERN axiom_types_t AXIS2_CALL
axiom_node_get_node_type(
    axiom_node_t * om_node,
    const axutil_env_t * env)
{
    return om_node->node_type;
}

AXIS2_EXTERN axis2_bool_t AXIS2_CALL
axiom_node_is_complete(
    axiom_node_t * om_node,
    const axutil_env_t * env)
{
    return om_node->done;

}

AXIS2_EXTERN struct axiom_document *AXIS2_CALL
axiom_node_get_document(
    axiom_node_t * om_node,
    const axutil_env_t * env)
{
    return om_node->om_doc;
}

AXIS2_EXTERN void *AXIS2_CALL
axiom_node_get_data_element(
    axiom_node_t * om_node,
    const axutil_env_t * env)
{
    return om_node->data_element;
}

/**
  internal function , not to be used by users
  only sets the first_child link because this is needed by builder
*/
AXIS2_EXTERN axis2_status_t AXIS2_CALL
axiom_node_set_first_child(
    axiom_node_t * om_node,
    const axutil_env_t * env,
    axiom_node_t * first_child)
{
    AXIS2_ENV_CHECK(env, AXIS2_FAILURE);
    AXIS2_PARAM_CHECK(env->error, om_node, AXIS2_FAILURE);
    AXIS2_PARAM_CHECK(env->error, first_child, AXIS2_FAILURE);

    /** set the parent */
    axiom_node_set_parent(first_child, env, om_node);

    om_node->first_child = first_child;
    return AXIS2_SUCCESS;
}

/**
  internal function not to be used by users
  only sets the previous sibling link as it is needed by builders

*/
AXIS2_EXTERN axis2_status_t AXIS2_CALL
axiom_node_set_previous_sibling(
    axiom_node_t * om_node,
    const axutil_env_t * env,
    axiom_node_t * prev_sibling)
{

    AXIS2_ENV_CHECK(env, AXIS2_FAILURE);
    AXIS2_PARAM_CHECK(env->error, om_node, AXIS2_FAILURE);
    AXIS2_PARAM_CHECK(env->error, prev_sibling, AXIS2_FAILURE);

    om_node->prev_sibling = prev_sibling;
    return AXIS2_SUCCESS;
}

/**
  internal function, not to be used by users
  only sets the next sibling link;
*/
AXIS2_EXTERN axis2_status_t AXIS2_CALL
axiom_node_set_next_sibling(
    axiom_node_t * om_node,
    const axutil_env_t * env,
    axiom_node_t * next_sibling)
{
    AXIS2_ENV_CHECK(env, AXIS2_FAILURE);
    AXIS2_PARAM_CHECK(env->error, om_node, AXIS2_FAILURE);
    AXIS2_PARAM_CHECK(env->error, next_sibling, AXIS2_FAILURE);
    om_node->next_sibling = next_sibling;
    return AXIS2_SUCCESS;
}

/**
   internal function not to be used by users
   sets the node type only used in soap and om
*/

AXIS2_EXTERN axis2_status_t AXIS2_CALL
axiom_node_set_node_type(
    axiom_node_t * om_node,
    const axutil_env_t * env,
    axiom_types_t type)
{

    AXIS2_ENV_CHECK(env, AXIS2_FAILURE);
    AXIS2_PARAM_CHECK(env->error, om_node, AXIS2_FAILURE);
    om_node->node_type = type;
    return AXIS2_SUCCESS;
}

/**
   internal function , not to be used by users
   only used in om and soap
*/
AXIS2_EXTERN axis2_status_t AXIS2_CALL
axiom_node_set_data_element(
    axiom_node_t * om_node,
    const axutil_env_t * env,
    void *data_element)
{
    AXIS2_ENV_CHECK(env, AXIS2_FAILURE);
    AXIS2_PARAM_CHECK(env->error, om_node, AXIS2_FAILURE);
    AXIS2_PARAM_CHECK(env->error, data_element, AXIS2_FAILURE);
    om_node->data_element = data_element;
    return AXIS2_SUCCESS;
}

/**
 internal function not to be used by users
 only sets the build status

*/
AXIS2_EXTERN axis2_status_t AXIS2_CALL
axiom_node_set_complete(
    axiom_node_t * om_node,
    const axutil_env_t * env,
    axis2_bool_t done)
{
    AXIS2_ENV_CHECK(env, AXIS2_FAILURE);
    AXIS2_PARAM_CHECK(env->error, om_node, AXIS2_FAILURE);
    om_node->done = done;
    return AXIS2_SUCCESS;
}

/**
 internal function not to be used by users
 only used by om builder

*/
AXIS2_EXTERN axis2_status_t AXIS2_CALL
axiom_node_set_document(
    axiom_node_t * om_node,
    const axutil_env_t * env,
    struct axiom_document * om_doc)
{
    AXIS2_ENV_CHECK(env, AXIS2_FAILURE);
    AXIS2_PARAM_CHECK(env->error, om_node, AXIS2_FAILURE);
    om_node->om_doc = om_doc;
    return AXIS2_SUCCESS;
}

/**
 internal function only sets the builder reference ,
 should not be used by user
*/

AXIS2_EXTERN axis2_status_t AXIS2_CALL
axiom_node_set_builder(
    axiom_node_t * om_node,
    const axutil_env_t * env,
    axiom_stax_builder_t * builder)
{
    AXIS2_ENV_CHECK(env, AXIS2_FAILURE);
    AXIS2_PARAM_CHECK(env->error, om_node, AXIS2_FAILURE);
    om_node->builder = builder;
    return AXIS2_SUCCESS;

}

/**
 * This is an internal function
 */
AXIS2_EXTERN axiom_stax_builder_t *AXIS2_CALL
axiom_node_get_builder(
    axiom_node_t * om_node,
    const axutil_env_t * env)
{
    if (!om_node)
    {
        return NULL;
    }
    return om_node->builder;
}

AXIS2_EXTERN axis2_char_t *AXIS2_CALL
axiom_node_to_string(
    axiom_node_t * om_node,
    const axutil_env_t * env)
{
    int status = AXIS2_SUCCESS;
    axiom_output_t *om_output = NULL;
    axiom_xml_writer_t *xml_writer = NULL;
    axis2_char_t *xml = NULL;
    AXIS2_ENV_CHECK(env, NULL);
    AXIS2_PARAM_CHECK(env->error, om_node, NULL);

    xml_writer = axiom_xml_writer_create_for_memory(env, NULL, AXIS2_TRUE, 0,
                                                    AXIS2_XML_PARSER_TYPE_BUFFER);
    if (!xml_writer)
    {
        return NULL;
    }

    om_output = axiom_output_create(env, xml_writer);
    if (!om_output)
    {
        axiom_xml_writer_free(xml_writer, env);
        return NULL;
    }
    status = axiom_node_serialize(om_node, env, om_output);
    if (status == AXIS2_SUCCESS)
    {
        xml =
            axutil_strdup(env,
                          (axis2_char_t *) axiom_xml_writer_get_xml(xml_writer,
                                                                    env));
    }
    axiom_output_free(om_output, env);
    return xml;
}

AXIS2_EXTERN axis2_char_t *AXIS2_CALL
axiom_node_sub_tree_to_string(
    axiom_node_t * om_node,
    const axutil_env_t * env)
{
    int status = AXIS2_SUCCESS;
    axiom_output_t *om_output = NULL;
    axiom_xml_writer_t *xml_writer = NULL;
    axis2_char_t *xml = NULL;
    AXIS2_ENV_CHECK(env, NULL);
    AXIS2_PARAM_CHECK(env->error, om_node, NULL);

    xml_writer = axiom_xml_writer_create_for_memory(env, NULL, AXIS2_TRUE, 0,
                                                    AXIS2_XML_PARSER_TYPE_BUFFER);
    if (!xml_writer)
    {
        return NULL;
    }

    om_output = axiom_output_create(env, xml_writer);
    if (!om_output)
    {
        axiom_xml_writer_free(xml_writer, env);
        return NULL;
    }
    status = axiom_node_serialize_sub_tree(om_node, env, om_output);
    if (status == AXIS2_SUCCESS)
    {
        xml =
            axutil_strdup(env,
                          (axis2_char_t *) axiom_xml_writer_get_xml(xml_writer,
                                                                    env));
    }
    axiom_output_free(om_output, env);
    return xml;
}

AXIS2_EXTERN axis2_char_t *AXIS2_CALL
axiom_node_to_string_non_optimized(
    axiom_node_t * om_node,
    const axutil_env_t * env)
{
    int status = AXIS2_SUCCESS;
    axiom_output_t *om_output = NULL;
    axiom_xml_writer_t *xml_writer = NULL;
    axis2_char_t *xml = NULL;
    AXIS2_ENV_CHECK(env, NULL);
    AXIS2_PARAM_CHECK(env->error, om_node, NULL);

    xml_writer = axiom_xml_writer_create_for_memory(env, NULL, AXIS2_TRUE, 0,
                                                    AXIS2_XML_PARSER_TYPE_BUFFER);
    if (!xml_writer)
    {
        return NULL;
    }

    om_output = axiom_output_create(env, xml_writer);
    if (!om_output)
    {
        axiom_xml_writer_free(xml_writer, env);
        return NULL;
    }
    /*This is where we set the output to be non-optimized*/
    axiom_output_set_do_optimize(om_output, env, AXIS2_FALSE);
    status = axiom_node_serialize(om_node, env, om_output);
    if (status == AXIS2_SUCCESS)
    {
        xml =
            axutil_strdup(env,
                          (axis2_char_t *) axiom_xml_writer_get_xml(xml_writer,
                                                                    env));
    }
    axiom_output_free(om_output, env);
    return xml;
}


<|start_filename|>include/axis2_http_worker.h<|end_filename|>

/*
 * 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 AXIS2_HTTP_WORKER_H
#define AXIS2_HTTP_WORKER_H

/**
 * @defgroup axis2_http_worker http worker
 * @ingroup axis2_core_trans_http
 * @{
 */

/**
 * @file axis2_http_worker.h
 * @brief axis2 HTTP Worker
 */

#include <axis2_const.h>
#include <axis2_defines.h>
#include <axutil_env.h>
#include <axis2_simple_http_svr_conn.h>
#include <axis2_http_simple_response.h>
#include <axis2_http_simple_request.h>
#include <axis2_conf_ctx.h>

#ifdef __cplusplus
extern "C"
{
#endif

    /** Type name for struct axis2_http_worker */
    typedef struct axis2_http_worker axis2_http_worker_t;

    /**
     * @param http_worker pointer to http worker
     * @param env pointer to environment struct
     * @param svr_conn pointer to svr conn
     * @param simple_request pointer to simple request
     */
    AXIS2_EXTERN axis2_bool_t AXIS2_CALL
    axis2_http_worker_process_request(
        axis2_http_worker_t * http_worker,
        const axutil_env_t * env,
        axis2_simple_http_svr_conn_t * svr_conn,
        axis2_http_simple_request_t * simple_request);

    /**
     * @param http_worker pointer to http worker
     * @param env pointer to environment struct
     * @param port
     * @return AXIS2_SUCCESS on success, else AXIS2_FAILURE
     */
    AXIS2_EXTERN axis2_status_t AXIS2_CALL
    axis2_http_worker_set_svr_port(
        axis2_http_worker_t * http_worker,
        const axutil_env_t * env,
        int port);

    /**
     * @param http_worker pointer to http worker
     * @param env pointer to environment strut
     * @return void
     */
    AXIS2_EXTERN void AXIS2_CALL
    axis2_http_worker_free(
        axis2_http_worker_t * http_worker,
        const axutil_env_t * env);

    /**
     * @param env pointer to environment struct
     * @param conf_ctx pointer to configuration context
     */
    AXIS2_EXTERN axis2_http_worker_t *AXIS2_CALL
    axis2_http_worker_create(
        const axutil_env_t * env,
        axis2_conf_ctx_t * conf_ctx);

    /*#define AXIS2_HTTP_WORKER_PROCESS_REQUEST(http_worker, env, svr_conn,\
                simple_request) axis2_http_worker_process_request(\
                http_worker, env, svr_conn, simple_request)

    #define AXIS2_HTTP_WORKER_SET_SVR_PORT(http_worker, env, port) \
                    axis2_http_worker_set_svr_port(http_worker, env, port)

    #define AXIS2_HTTP_WORKER_FREE(http_worker, env) \
                    axis2_http_worker_free(http_worker, env)
    */

    /** @} */
#ifdef __cplusplus
}
#endif

#endif                          /* AXIS2_HTTP_WORKER_H */


<|start_filename|>xdocs/api/html/group__axis2__out__transport__info.html<|end_filename|>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html><head><meta http-equiv="Content-Type" content="text/html;charset=UTF-8">
<title>Axis2/C: out transport info</title>
<link href="doxygen.css" rel="stylesheet" type="text/css">
<link href="tabs.css" rel="stylesheet" type="text/css">
</head><body>
<!-- Generated by Doxygen 1.5.3 -->
<div class="tabs">
  <ul>
    <li><a href="index.html"><span>Main&nbsp;Page</span></a></li>
    <li><a href="modules.html"><span>Modules</span></a></li>
    <li><a href="annotated.html"><span>Classes</span></a></li>
    <li><a href="files.html"><span>Files</span></a></li>
    <li><a href="dirs.html"><span>Directories</span></a></li>
    <li><a href="pages.html"><span>Related&nbsp;Pages</span></a></li>
    <li><a href="examples.html"><span>Examples</span></a></li>
    <li>
      <form action="search.php" method="get">
        <table cellspacing="0" cellpadding="0" border="0">
          <tr>
            <td><label>&nbsp;<u>S</u>earch&nbsp;for&nbsp;</label></td>
            <td><input type="text" name="query" value="" size="20" accesskey="s"/></td>
          </tr>
        </table>
      </form>
    </li>
  </ul>
</div>
<h1>out transport info</h1><table border="0" cellpadding="0" cellspacing="0">
<tr><td></td></tr>
<tr><td colspan="2"><br><h2>Files</h2></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top">file &nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="axis2__out__transport__info_8h.html">axis2_out_transport_info.h</a></td></tr>

<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">axis2 Out Transport Info <br></td></tr>

<p>
<tr><td colspan="2"><br><h2>Classes</h2></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top">struct &nbsp;</td><td class="memItemRight" valign="bottom"><b>axis2_out_transport_info_ops</b></td></tr>

<tr><td class="memItemLeft" nowrap align="right" valign="top">struct &nbsp;</td><td class="memItemRight" valign="bottom"><b>axis2_out_transport_info</b></td></tr>

<tr><td colspan="2"><br><h2>Defines</h2></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top">#define&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__axis2__out__transport__info.html#g4c6d71c71837c7ec5109d73315421c5c">AXIS2_OUT_TRANSPORT_INFO_SET_CONTENT_TYPE</a>(out_transport_info, env, content_type)&nbsp;&nbsp;&nbsp;((out_transport_info-&gt;ops)-&gt;set_content_type(out_transport_info, env, content_type))</td></tr>

<tr><td class="memItemLeft" nowrap align="right" valign="top">#define&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__axis2__out__transport__info.html#g61f3555a9a1061c23bcc37cd3158b16d">AXIS2_OUT_TRANSPORT_INFO_SET_CHAR_ENCODING</a>(out_transport_info, env, encoding)&nbsp;&nbsp;&nbsp;((out_transport_info-&gt;ops)-&gt;set_char_encoding(out_transport_info, env, encoding))</td></tr>

<tr><td class="memItemLeft" nowrap align="right" valign="top">#define&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__axis2__out__transport__info.html#g91d375733dd28c9de9060f632cdb69f8">AXIS2_OUT_TRANSPORT_INFO_FREE</a>(out_transport_info, env)&nbsp;&nbsp;&nbsp;((out_transport_info-&gt;ops)-&gt;free(out_transport_info, env))</td></tr>

<tr><td colspan="2"><br><h2>Typedefs</h2></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top">typedef struct <br>
axis2_out_transport_info&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__axis2__out__transport__info.html#gb841f7dbcba89c8b6f55c193007d68c7">axis2_out_transport_info_t</a></td></tr>

<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="g3ff953fff5a9aef3b5cd1ffbdb7ee636"></a><!-- doxytag: member="axis2_out_transport_info::axis2_out_transport_info_ops_t" ref="g3ff953fff5a9aef3b5cd1ffbdb7ee636" args="" -->
typedef struct <br>
axis2_out_transport_info_ops&nbsp;</td><td class="memItemRight" valign="bottom"><b>axis2_out_transport_info_ops_t</b></td></tr>

</table>
<hr><a name="_details"></a><h2>Detailed Description</h2>
Description <hr><h2>Define Documentation</h2>
<a class="anchor" name="g91d375733dd28c9de9060f632cdb69f8"></a><!-- doxytag: member="axis2_out_transport_info.h::AXIS2_OUT_TRANSPORT_INFO_FREE" ref="g91d375733dd28c9de9060f632cdb69f8" args="(out_transport_info, env)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">#define AXIS2_OUT_TRANSPORT_INFO_FREE          </td>
          <td>(</td>
          <td class="paramtype">out_transport_info,         <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">env&nbsp;</td>
          <td class="paramname">          </td>
          <td>&nbsp;)&nbsp;</td>
          <td width="100%">&nbsp;&nbsp;&nbsp;((out_transport_info-&gt;ops)-&gt;free(out_transport_info, env))</td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
Free. 
</div>
</div><p>
<a class="anchor" name="g61f3555a9a1061c23bcc37cd3158b16d"></a><!-- doxytag: member="axis2_out_transport_info.h::AXIS2_OUT_TRANSPORT_INFO_SET_CHAR_ENCODING" ref="g61f3555a9a1061c23bcc37cd3158b16d" args="(out_transport_info, env, encoding)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">#define AXIS2_OUT_TRANSPORT_INFO_SET_CHAR_ENCODING          </td>
          <td>(</td>
          <td class="paramtype">out_transport_info,         <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">env,         <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">encoding&nbsp;</td>
          <td class="paramname">          </td>
          <td>&nbsp;)&nbsp;</td>
          <td width="100%">&nbsp;&nbsp;&nbsp;((out_transport_info-&gt;ops)-&gt;set_char_encoding(out_transport_info, env, encoding))</td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
Set cahr encoding. 
</div>
</div><p>
<a class="anchor" name="g4c6d71c71837c7ec5109d73315421c5c"></a><!-- doxytag: member="axis2_out_transport_info.h::AXIS2_OUT_TRANSPORT_INFO_SET_CONTENT_TYPE" ref="g4c6d71c71837c7ec5109d73315421c5c" args="(out_transport_info, env, content_type)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">#define AXIS2_OUT_TRANSPORT_INFO_SET_CONTENT_TYPE          </td>
          <td>(</td>
          <td class="paramtype">out_transport_info,         <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">env,         <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">content_type&nbsp;</td>
          <td class="paramname">          </td>
          <td>&nbsp;)&nbsp;</td>
          <td width="100%">&nbsp;&nbsp;&nbsp;((out_transport_info-&gt;ops)-&gt;set_content_type(out_transport_info, env, content_type))</td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
Set content type. 
</div>
</div><p>
<hr><h2>Typedef Documentation</h2>
<a class="anchor" name="gb841f7dbcba89c8b6f55c193007d68c7"></a><!-- doxytag: member="axis2_out_transport_info.h::axis2_out_transport_info_t" ref="gb841f7dbcba89c8b6f55c193007d68c7" args="" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">typedef struct axis2_out_transport_info <a class="el" href="group__axis2__out__transport__info.html#gb841f7dbcba89c8b6f55c193007d68c7">axis2_out_transport_info_t</a>          </td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
Type name for struct axis2_out_transport_info 
</div>
</div><p>
<hr size="1"><address style="text-align: right;"><small>Generated on Fri Apr 17 11:49:45 2009 for Axis2/C by&nbsp;
<a href="http://www.doxygen.org/index.html">
<img src="doxygen.png" alt="doxygen" align="middle" border="0"></a> 1.5.3 </small></address>
</body>
</html>


<|start_filename|>test/core/description/test_description.c<|end_filename|>

/*
 * 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.
 */

#include <stdio.h>
#include <axis2_op.h>
#include <axis2_conf.h>
#include <axis2_module_desc.h>
#include <axis2_phases_info.h>
#include <axutil_env.h>
#include <axutil_allocator.h>

struct axis2_module_desc *create_module_desc(
    const axutil_env_t * env);

int
axis2_test_op_engage_module(
    )
{
    struct axis2_module_desc *moduleref = NULL;
    axis2_conf_t *conf = NULL;

    axis2_status_t status = AXIS2_FAILURE;

    printf("******************************************\n");
    printf("testing axis2_op_engage_module\n");
    printf("******************************************\n");

    axutil_allocator_t *allocator = axutil_allocator_init(NULL);
    axutil_env_t *env = axutil_env_create(allocator);
    axis2_op_t *op = axis2_op_create(env);

    moduleref = axis2_module_desc_create(env);
    conf = axis2_conf_create(env);

    status = axis2_op_engage_module(op, env, moduleref, conf);
    moduleref = NULL;
    if (status != AXIS2_SUCCESS)
    {
        axis2_op_free(op, env);
        printf("ERROR %d\n", status);
    }

    axis2_op_free(op, env);
    axutil_env_free(env);
    return 0;
}

int
axis2_test_svc_add_module_ops(
    )
{
    struct axis2_svc *svc = NULL;
    struct axutil_qname *qname = NULL;
    struct axis2_module_desc *module_desc = NULL;
    struct axis2_conf *axis2_config = NULL;

    axis2_status_t status = AXIS2_FAILURE;

    printf("******************************************\n");
    printf("testing axis2_svc_add_module_ops\n");
    printf("******************************************\n");

    axutil_allocator_t *allocator = axutil_allocator_init(NULL);
    const axutil_env_t *env = axutil_env_create(allocator);
    qname = axutil_qname_create(env, "name1", NULL, NULL);
    svc = axis2_svc_create_with_qname(env, qname);
    module_desc = axis2_module_desc_create(env);
    axis2_config = axis2_conf_create(env);
    status = axis2_svc_add_module_ops(svc, env, module_desc, axis2_config);
    if (status != AXIS2_SUCCESS)
    {
        printf("axis2_test_description_add_module_ops ERROR %d\n", status);
    }
    else
        printf("axis2_test_add_module_ops SUCCESS\n");

    axis2_svc_free(svc, env);
    axutil_qname_free(qname, env);
    axis2_module_desc_free(module_desc, env);
    axis2_conf_free(axis2_config, env);

    return 0;
}

int
axis2_test_svc_engage_module(
    )
{
    axis2_svc_t *svc = NULL;
    axutil_qname_t *qname = NULL;
    axis2_module_desc_t *moduleref = NULL;
    axis2_conf_t *axis2_config = NULL;
    axis2_status_t status = AXIS2_FAILURE;

    printf("******************************************\n");
    printf("testing axis2_svc_engage_module\n");
    printf("******************************************\n");

    axutil_allocator_t *allocator = axutil_allocator_init(NULL);
    const axutil_env_t *env = axutil_env_create(allocator);
    qname = axutil_qname_create(env, "name1", NULL, NULL);
    svc = axis2_svc_create_with_qname(env, qname);
    moduleref = axis2_module_desc_create(env);
    axis2_config = axis2_conf_create(env);

    status = axis2_svc_engage_module(svc, env, moduleref, axis2_config);
    moduleref = NULL;
    if (status != AXIS2_SUCCESS)
    {
        printf("axis2_test_description_svc_engage_module ERROR %d\n", status);
    }
    else
        printf("axis2_test_svc_engage_module SUCCESS\n");

    axis2_svc_free(svc, env);
    axutil_qname_free(qname, env);
    axis2_conf_free(axis2_config, env);

    return 0;
}

int
axis2_test_svc_get_op(
    )
{
    struct axis2_svc *svc = NULL;
    struct axutil_qname *qname = NULL;
    struct axutil_hash_t *ops = NULL;
    struct axis2_op *op = NULL;
    axis2_status_t status = AXIS2_SUCCESS;

    printf("******************************************\n");
    printf("testing axis2_svc_get_op\n");
    printf("******************************************\n");

    axutil_allocator_t *allocator = axutil_allocator_init(NULL);
    const axutil_env_t *env = axutil_env_create(allocator);
    qname = axutil_qname_create(env, "op1", NULL, NULL);
    op = axis2_op_create_with_qname(env, qname);
    qname = axutil_qname_create(env, "svc1", NULL, NULL);
    svc = axis2_svc_create_with_qname(env, qname);

    status = axis2_svc_add_op(svc, env, op);

    qname = axutil_qname_create(env, "op2", NULL, NULL);
    op = axis2_op_create_with_qname(env, qname);
    status = axis2_svc_add_op(svc, env, op);

    ops = axis2_svc_get_all_ops(svc, env);

    if (ops)
        printf("SUCCESS AXIS2_SVC_GET_OPS\n");
    else
    {
        printf("ERROR AXIS2_SVC_GET_OPS\n");
        return -1;
    }

    if (ops)
    {
        printf("ops count = %d\n", axutil_hash_count(ops));

        axutil_hash_index_t *hi2 = NULL;
        void *op2 = NULL;
        axis2_char_t *oname = NULL;
        int count = 0;

        for (hi2 = axutil_hash_first(ops, env); hi2;
             hi2 = axutil_hash_next(env, hi2))
        {
            printf("count = %d \n", count++);
            axis2_svc_get_all_ops(svc, env);
            if (!(hi2))
                break;
            axutil_hash_this(hi2, NULL, NULL, &op2);
            if (op2)
            {
                const axutil_qname_t *qname = NULL;
                qname = axis2_op_get_qname((axis2_op_t *) op2, env);
                oname = axutil_qname_get_localpart(qname, env);
                printf("op name = %s\n", oname);
            }
        }
    }
    else
        printf("ops count = zero\n");

    return 0;
}

int
main(
    )
{
    axis2_test_op_engage_module();
    axis2_test_svc_add_module_ops();
    axis2_test_svc_engage_module();
    axis2_test_svc_get_op();
    return 0;
}


<|start_filename|>util/include/axutil_utils.h<|end_filename|>

/*
 * 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_UTILS_H
#define AXUTIL_UTILS_H

#include <axutil_utils_defines.h>
#include <axutil_error.h>
#include <axutil_env.h>
#include <axutil_date_time.h>
#include <axutil_base64_binary.h>

#ifdef __cplusplus
extern "C"
{
#endif

    /**
     * @defgroup axutil_utils utils
     * @ingroup axis2_util
     * @{
     */

    /**
     * @file axutil_utils.h
     */

#define AXUTIL_LOG_FILE_SIZE 1024 * 1024 * 32
#define AXUTIL_LOG_FILE_NAME_SIZE 512

    /** This macro is called to check whether structure on which function is called
     *  is NULL and to check whether the environment structure passed is valid.
     * @param object structure on which function is called
     * @param env environment to be checked for validity
     * @param error_return If function return a status it should pass here
     *        AXIS2_FAILURE. If function return a type pointer it should
     *        pass NULL
     * @return If function return a status code return AXIS2_SUCCESS. Else if
     *         function return a type pointer return NULL
     */
#define AXIS2_FUNC_PARAM_CHECK(object, env, error_return)               \
    if (!object)                                                        \
    {                                                                   \
        AXIS2_ERROR_SET_ERROR_NUMBER(env->error, AXIS2_ERROR_INVALID_NULL_PARAM); \
        AXIS2_ERROR_SET_STATUS_CODE(env->error, AXIS2_FAILURE);         \
        return error_return;                                            \
    }                                                                   \
    else                                                                \
    {                                                                   \
        AXIS2_ERROR_SET_STATUS_CODE(env->error, AXIS2_SUCCESS);              \
    }


    /**This macro is called to check whether an object is NULL.
     * if object is NULL error number and status code is set
     * @param object object to be check for NULL
     * @param error_return If function return a status it should pass here
     *        AXIS2_FAILURE. If function return a type pointer it should
     *        pass NULL
     * @return If function return a status code return AXIS2_SUCCESS. Else if
     *         function return a type pointer return NULL
     */
#define AXIS2_PARAM_CHECK(error, object, error_return)                  \
    if (!object)                                                        \
    {                                                                   \
        AXIS2_ERROR_SET_ERROR_NUMBER(error, AXIS2_ERROR_INVALID_NULL_PARAM); \
        AXIS2_ERROR_SET_STATUS_CODE(error, AXIS2_FAILURE);              \
        return error_return;                                            \
    }                                                                   \
    else                                                                \
    {                                                                   \
        AXIS2_ERROR_SET_STATUS_CODE(error, AXIS2_SUCCESS);              \
    }



#define AXIS2_PARAM_CHECK_VOID(error, object)                           \
    if (!object)                                                        \
    {                                                                   \
        AXIS2_ERROR_SET_ERROR_NUMBER(error, AXIS2_ERROR_INVALID_NULL_PARAM); \
        AXIS2_ERROR_SET_STATUS_CODE(error, AXIS2_FAILURE);              \
        return;                                                         \
    }



    /**This macro is used to handle error situation.
     * @param error_number Error number for the error occured
     * @param error_return If function return a status it should pass here
     *        AXIS2_FAILURE. If function return a type pointer it should
     *        pass NULL
     * @return If function return a status code return AXIS2_SUCCESS. Else if
     *         function return a type pointer return NULL
     */
#define AXIS2_ERROR_SET(error, error_number, status_code)   \
    {                                                       \
        AXIS2_ERROR_SET_ERROR_NUMBER(error, error_number);  \
        AXIS2_ERROR_SET_STATUS_CODE(error, status_code);    \
    }

    /**
     * This macro is used to set and error, and log it. In addition to that
     * you are capable of specifying the file name and line number
     * @param env Reference to env struct
     * @param error_number Error number for the error occured
     * @param status_code The Error Status to be set
     * @param file_name_line_no File name and line number constant
     */
#define AXIS2_HANDLE_ERROR_WITH_FILE(env, error_number,          \
            status_code, file_name_line_no)                      \
    {                                                            \
        AXIS2_ERROR_SET(env->error, error_number, status_code);  \
        AXIS2_LOG_ERROR(env->log, file_name_line_no,             \
            AXIS2_ERROR_GET_MESSAGE(env->error));                \
    } 

    /**
     * This macro is used to set and error, and log it
     * @param env Reference to env struct
     * @param error_number Error number for the error occured
     * @param status_code The Error Status to be set
     */
#define AXIS2_HANDLE_ERROR(env, error_number, status_code)               \
            AXIS2_HANDLE_ERROR_WITH_FILE(env, error_number, status_code, \
            AXIS2_LOG_SI)                                                \

    /** Method names in the loadable libraries */

#define AXIS2_CREATE_FUNCTION "axis2_get_instance"
#define AXIS2_DELETE_FUNCTION "axis2_remove_instance"

    typedef void(
        AXIS2_CALL
        * AXIS2_FREE_VOID_ARG)(
            void *obj_to_be_freed,
            const axutil_env_t * env);

    /* Function pointer typedef for read callback */
    typedef int(
        AXIS2_CALL
        * AXIS2_READ_INPUT_CALLBACK)(
            char *buffer,
            int size,
            void *ctx);

    /* Function pointer typedef for close callback */
    typedef int(
        AXIS2_CALL
        * AXIS2_CLOSE_INPUT_CALLBACK)(
            void *ctx);

    /**
     * \brief Axis2 scopes
     *
     * Possible scope value for Axis2
     */
    enum axis2_scopes
    {

        /** Request scope */
        AXIS2_SCOPE_REQUEST = 0,

        /** Session scope */
        AXIS2_SCOPE_SESSION,

        /** Application scope */
        AXIS2_SCOPE_APPLICATION
    };

#define AXIS2_TARGET_EPR "target_epr"
#define AXIS2_DUMP_INPUT_MSG_TRUE "dump"

    /** 
     * This function allows the user match a REST URL template with the
     * Request URL. It returns a 3-dimensional array with pairs of elements
     * of axis2_char_t arrays (strings). The caller is responsible to free
     * the memory allocated by the function for the return value.
     * @param env pointer to environment struct
     * @param tmpl Template to Match
     * @param url Request URL
     * @param match_count variable to store match count
     * @param matches axis2_char_t *** <code>axis2_char_t ***<code>
     * @return AXIS2_SUCCESS if all matches were found or AXIS2_FAILURE.
     */
    AXIS2_EXTERN axis2_status_t AXIS2_CALL
    axutil_parse_rest_url_for_params(
        const axutil_env_t * env,
        const axis2_char_t * tmpl,
        const axis2_char_t * url,
        int * match_count,
        axis2_char_t **** matches);

    /**
     * This function allows users to resolve the service and op from the 
     * url. It returns an array of 2 elements of axis2_char_t arrays (strings).
     * The caller is responsible to free the memory allocated by the function
     * for the return value.
     * @param env pointer to environment struct
     * @param request url
     * @return axis2_char_t ** <code>axis2_char_t **<code>
     */
    AXIS2_EXTERN axis2_char_t **AXIS2_CALL
    axutil_parse_request_url_for_svc_and_op(
        const axutil_env_t * env,
        const axis2_char_t * request);

    /**
     * Quotes an XML string.
     * Replace '<', '>', and '&' with '&lt;', '&gt;', and '&amp;'.
     * If quotes is true, then replace '"' with '&quot;'.
     * @param env pointer to environment struct
     * @param s string to be quoted
     * @param quotes if AXIS2_TRUE then replace '"' with '&quot;'.
     * quotes is typically set to true for XML strings that will occur within
     * double quotes -- attribute values.
     * @return Encoded string if there are characters to be encoded, else NULL. 
     * The caller is responsible to free the memory allocated by the function
     * for the return value
     */
    AXIS2_EXTERN axis2_char_t *AXIS2_CALL
    axutil_xml_quote_string(
        const axutil_env_t * env,
        const axis2_char_t * s,
        axis2_bool_t quotes);

    AXIS2_EXTERN int AXIS2_CALL
    axutil_hexit(axis2_char_t c);

    AXIS2_EXTERN axis2_status_t AXIS2_CALL
    axutil_url_decode(
        const axutil_env_t * env,
        axis2_char_t * dest,
        axis2_char_t * src);
    
    AXIS2_EXTERN axis2_status_t AXIS2_CALL
    axis2_char_2_byte(
        const axutil_env_t *env,
        axis2_char_t *char_buffer,
        axis2_byte_t **byte_buffer,
        int *byte_buffer_size);

    /** @} */

#ifdef __cplusplus
}
#endif

#endif                          /* AXIS2_UTILS_H */


<|start_filename|>xdocs/api/html/group__axis2__http__simple__response.html<|end_filename|>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html><head><meta http-equiv="Content-Type" content="text/html;charset=UTF-8">
<title>Axis2/C: http simple response</title>
<link href="doxygen.css" rel="stylesheet" type="text/css">
<link href="tabs.css" rel="stylesheet" type="text/css">
</head><body>
<!-- Generated by Doxygen 1.5.3 -->
<div class="tabs">
  <ul>
    <li><a href="index.html"><span>Main&nbsp;Page</span></a></li>
    <li><a href="modules.html"><span>Modules</span></a></li>
    <li><a href="annotated.html"><span>Classes</span></a></li>
    <li><a href="files.html"><span>Files</span></a></li>
    <li><a href="dirs.html"><span>Directories</span></a></li>
    <li><a href="pages.html"><span>Related&nbsp;Pages</span></a></li>
    <li><a href="examples.html"><span>Examples</span></a></li>
    <li>
      <form action="search.php" method="get">
        <table cellspacing="0" cellpadding="0" border="0">
          <tr>
            <td><label>&nbsp;<u>S</u>earch&nbsp;for&nbsp;</label></td>
            <td><input type="text" name="query" value="" size="20" accesskey="s"/></td>
          </tr>
        </table>
      </form>
    </li>
  </ul>
</div>
<h1>http simple response<br>
<small>
[<a class="el" href="group__axis2__core__trans__http.html">http transport</a>]</small>
</h1><table border="0" cellpadding="0" cellspacing="0">
<tr><td></td></tr>
<tr><td colspan="2"><br><h2>Typedefs</h2></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top">typedef struct <br>
axis2_http_simple_response&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__axis2__http__simple__response.html#g5ebc18702d80d368692d1922f9accb1f">axis2_http_simple_response_t</a></td></tr>

<tr><td colspan="2"><br><h2>Functions</h2></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top">AXIS2_EXTERN <br>
axis2_status_t&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__axis2__http__simple__response.html#g516ffbfa78d129d4fd9952ad8db24bc8">axis2_http_simple_response_set_status_line</a> (struct axis2_http_simple_response *simple_response, const <a class="el" href="structaxutil__env.html">axutil_env_t</a> *env, const axis2_char_t *http_ver, const int status_code, const axis2_char_t *phrase)</td></tr>

<tr><td class="memItemLeft" nowrap align="right" valign="top">AXIS2_EXTERN <br>
axis2_char_t *&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__axis2__http__simple__response.html#g965654d448f369bcd78c25eb8ba68a40">axis2_http_simple_response_get_phrase</a> (<a class="el" href="group__axis2__http__simple__response.html#g5ebc18702d80d368692d1922f9accb1f">axis2_http_simple_response_t</a> *simple_response, const <a class="el" href="structaxutil__env.html">axutil_env_t</a> *env)</td></tr>

<tr><td class="memItemLeft" nowrap align="right" valign="top">AXIS2_EXTERN int&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__axis2__http__simple__response.html#gb0515fe0071d2874e9d44ecd45a6d10c">axis2_http_simple_response_get_status_code</a> (<a class="el" href="group__axis2__http__simple__response.html#g5ebc18702d80d368692d1922f9accb1f">axis2_http_simple_response_t</a> *simple_response, const <a class="el" href="structaxutil__env.html">axutil_env_t</a> *env)</td></tr>

<tr><td class="memItemLeft" nowrap align="right" valign="top">AXIS2_EXTERN <br>
axis2_char_t *&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__axis2__http__simple__response.html#g4962ea33b78c3b7057a700b5493e4ac6">axis2_http_simple_response_get_http_version</a> (<a class="el" href="group__axis2__http__simple__response.html#g5ebc18702d80d368692d1922f9accb1f">axis2_http_simple_response_t</a> *simple_response, const <a class="el" href="structaxutil__env.html">axutil_env_t</a> *env)</td></tr>

<tr><td class="memItemLeft" nowrap align="right" valign="top">AXIS2_EXTERN <br>
axis2_char_t *&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__axis2__http__simple__response.html#g810b45733a4becb6b00e2ce66109c14e">axis2_http_simple_response_get_status_line</a> (<a class="el" href="group__axis2__http__simple__response.html#g5ebc18702d80d368692d1922f9accb1f">axis2_http_simple_response_t</a> *simple_response, const <a class="el" href="structaxutil__env.html">axutil_env_t</a> *env)</td></tr>

<tr><td class="memItemLeft" nowrap align="right" valign="top">AXIS2_EXTERN axis2_bool_t&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__axis2__http__simple__response.html#gd24d24f61b5ebe5c92329a985743d3af">axis2_http_simple_response_contains_header</a> (<a class="el" href="group__axis2__http__simple__response.html#g5ebc18702d80d368692d1922f9accb1f">axis2_http_simple_response_t</a> *simple_response, const <a class="el" href="structaxutil__env.html">axutil_env_t</a> *env, const axis2_char_t *name)</td></tr>

<tr><td class="memItemLeft" nowrap align="right" valign="top">AXIS2_EXTERN <br>
<a class="el" href="group__axutil__array__list.html#g1a6a89777db876cfa0cc86787b7be6a0">axutil_array_list_t</a> *&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__axis2__http__simple__response.html#g0a5b2fdcf5a56cfe9c54eadea6459aab">axis2_http_simple_response_get_headers</a> (<a class="el" href="group__axis2__http__simple__response.html#g5ebc18702d80d368692d1922f9accb1f">axis2_http_simple_response_t</a> *simple_response, const <a class="el" href="structaxutil__env.html">axutil_env_t</a> *env)</td></tr>

<tr><td class="memItemLeft" nowrap align="right" valign="top">AXIS2_EXTERN <br>
<a class="el" href="group__axutil__array__list.html#g1a6a89777db876cfa0cc86787b7be6a0">axutil_array_list_t</a> *&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__axis2__http__simple__response.html#g4c84cd1eb2d04211699a348817f0fb3c">axis2_http_simple_response_extract_headers</a> (<a class="el" href="group__axis2__http__simple__response.html#g5ebc18702d80d368692d1922f9accb1f">axis2_http_simple_response_t</a> *simple_response, const <a class="el" href="structaxutil__env.html">axutil_env_t</a> *env)</td></tr>

<tr><td class="memItemLeft" nowrap align="right" valign="top">AXIS2_EXTERN <br>
<a class="el" href="group__axis2__http__header.html#gd8f14a5acb342f2f99bcfe3c71e7857e">axis2_http_header_t</a> *&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__axis2__http__simple__response.html#g20578210d80cff19667f2f1ebd1bb179">axis2_http_simple_response_get_first_header</a> (<a class="el" href="group__axis2__http__simple__response.html#g5ebc18702d80d368692d1922f9accb1f">axis2_http_simple_response_t</a> *simple_response, const <a class="el" href="structaxutil__env.html">axutil_env_t</a> *env, const axis2_char_t *str)</td></tr>

<tr><td class="memItemLeft" nowrap align="right" valign="top">AXIS2_EXTERN <br>
axis2_status_t&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__axis2__http__simple__response.html#gdfa6f0f0bb03760a6f799517ed48733d">axis2_http_simple_response_remove_headers</a> (<a class="el" href="group__axis2__http__simple__response.html#g5ebc18702d80d368692d1922f9accb1f">axis2_http_simple_response_t</a> *simple_response, const <a class="el" href="structaxutil__env.html">axutil_env_t</a> *env, const axis2_char_t *str)</td></tr>

<tr><td class="memItemLeft" nowrap align="right" valign="top">AXIS2_EXTERN <br>
axis2_status_t&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__axis2__http__simple__response.html#g0b3b364adf9ce38f2dc1aa89caf7a3df">axis2_http_simple_response_set_header</a> (<a class="el" href="group__axis2__http__simple__response.html#g5ebc18702d80d368692d1922f9accb1f">axis2_http_simple_response_t</a> *simple_response, const <a class="el" href="structaxutil__env.html">axutil_env_t</a> *env, <a class="el" href="group__axis2__http__header.html#gd8f14a5acb342f2f99bcfe3c71e7857e">axis2_http_header_t</a> *header)</td></tr>

<tr><td class="memItemLeft" nowrap align="right" valign="top">AXIS2_EXTERN <br>
axis2_status_t&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__axis2__http__simple__response.html#g4cecca560f501e28c11f0697a5ca1b42">axis2_http_simple_response_set_headers</a> (<a class="el" href="group__axis2__http__simple__response.html#g5ebc18702d80d368692d1922f9accb1f">axis2_http_simple_response_t</a> *simple_response, const <a class="el" href="structaxutil__env.html">axutil_env_t</a> *env, <a class="el" href="group__axis2__http__header.html#gd8f14a5acb342f2f99bcfe3c71e7857e">axis2_http_header_t</a> **headers, axis2_ssize_t array_size)</td></tr>

<tr><td class="memItemLeft" nowrap align="right" valign="top">AXIS2_EXTERN const <br>
axis2_char_t *&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__axis2__http__simple__response.html#g089edeaf57d72e069e00daab229feb36">axis2_http_simple_response_get_charset</a> (<a class="el" href="group__axis2__http__simple__response.html#g5ebc18702d80d368692d1922f9accb1f">axis2_http_simple_response_t</a> *simple_response, const <a class="el" href="structaxutil__env.html">axutil_env_t</a> *env)</td></tr>

<tr><td class="memItemLeft" nowrap align="right" valign="top">AXIS2_EXTERN <br>
axis2_ssize_t&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__axis2__http__simple__response.html#g03db587b463dda8c908be746d028eb43">axis2_http_simple_response_get_content_length</a> (<a class="el" href="group__axis2__http__simple__response.html#g5ebc18702d80d368692d1922f9accb1f">axis2_http_simple_response_t</a> *simple_response, const <a class="el" href="structaxutil__env.html">axutil_env_t</a> *env)</td></tr>

<tr><td class="memItemLeft" nowrap align="right" valign="top">AXIS2_EXTERN const <br>
axis2_char_t *&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__axis2__http__simple__response.html#g539ffae585e4a8a47e1d8cd4c870c897">axis2_http_simple_response_get_content_type</a> (<a class="el" href="group__axis2__http__simple__response.html#g5ebc18702d80d368692d1922f9accb1f">axis2_http_simple_response_t</a> *simple_response, const <a class="el" href="structaxutil__env.html">axutil_env_t</a> *env)</td></tr>

<tr><td class="memItemLeft" nowrap align="right" valign="top">AXIS2_EXTERN <br>
axis2_status_t&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__axis2__http__simple__response.html#g5626e9e8744f9b14e2ecaf7359691151">axis2_http_simple_response_set_body_string</a> (<a class="el" href="group__axis2__http__simple__response.html#g5ebc18702d80d368692d1922f9accb1f">axis2_http_simple_response_t</a> *simple_response, const <a class="el" href="structaxutil__env.html">axutil_env_t</a> *env, axis2_char_t *str)</td></tr>

<tr><td class="memItemLeft" nowrap align="right" valign="top">AXIS2_EXTERN <br>
axis2_status_t&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__axis2__http__simple__response.html#g87033017e9714d33e9d3ae68904a52e6">axis2_http_simple_response_set_body_stream</a> (<a class="el" href="group__axis2__http__simple__response.html#g5ebc18702d80d368692d1922f9accb1f">axis2_http_simple_response_t</a> *simple_response, const <a class="el" href="structaxutil__env.html">axutil_env_t</a> *env, axutil_stream_t *stream)</td></tr>

<tr><td class="memItemLeft" nowrap align="right" valign="top">AXIS2_EXTERN <br>
axutil_stream_t *&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__axis2__http__simple__response.html#g49d3ca8a7650d3c713be403293c6f49d">axis2_http_simple_response_get_body</a> (<a class="el" href="group__axis2__http__simple__response.html#g5ebc18702d80d368692d1922f9accb1f">axis2_http_simple_response_t</a> *simple_response, const <a class="el" href="structaxutil__env.html">axutil_env_t</a> *env)</td></tr>

<tr><td class="memItemLeft" nowrap align="right" valign="top">AXIS2_EXTERN <br>
axis2_ssize_t&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__axis2__http__simple__response.html#ga7ef4d819677a618a6d28436f756b15a">axis2_http_simple_response_get_body_bytes</a> (<a class="el" href="group__axis2__http__simple__response.html#g5ebc18702d80d368692d1922f9accb1f">axis2_http_simple_response_t</a> *simple_response, const <a class="el" href="structaxutil__env.html">axutil_env_t</a> *env, axis2_char_t **buf)</td></tr>

<tr><td class="memItemLeft" nowrap align="right" valign="top">AXIS2_EXTERN void&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__axis2__http__simple__response.html#gdbbd2a523cf92636c6e1f7a8abb04aac">axis2_http_simple_response_free</a> (<a class="el" href="group__axis2__http__simple__response.html#g5ebc18702d80d368692d1922f9accb1f">axis2_http_simple_response_t</a> *simple_response, const <a class="el" href="structaxutil__env.html">axutil_env_t</a> *env)</td></tr>

<tr><td class="memItemLeft" nowrap align="right" valign="top">AXIS2_EXTERN <br>
<a class="el" href="group__axis2__http__simple__response.html#g5ebc18702d80d368692d1922f9accb1f">axis2_http_simple_response_t</a> *&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__axis2__http__simple__response.html#g209ed72631aa32675b22ce693ba18020">axis2_http_simple_response_create</a> (const <a class="el" href="structaxutil__env.html">axutil_env_t</a> *env, <a class="el" href="group__axis2__http__status__line.html#gdfb55bd473dfd8c73003b9c20d7e4e4b">axis2_http_status_line_t</a> *status_line, const <a class="el" href="group__axis2__http__header.html#gd8f14a5acb342f2f99bcfe3c71e7857e">axis2_http_header_t</a> **http_headers, const axis2_ssize_t http_hdr_count, axutil_stream_t *content)</td></tr>

<tr><td class="memItemLeft" nowrap align="right" valign="top">AXIS2_EXTERN <br>
<a class="el" href="group__axis2__http__simple__response.html#g5ebc18702d80d368692d1922f9accb1f">axis2_http_simple_response_t</a> *&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__axis2__http__simple__response.html#g71cf4068dafd95eb76c3658d06ab4865">axis2_http_simple_response_create_default</a> (const <a class="el" href="structaxutil__env.html">axutil_env_t</a> *env)</td></tr>

<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="g7aeac2ec4436e30a81c4305642d9c084"></a><!-- doxytag: member="axis2_http_simple_response::axis2_http_simple_response_get_mime_parts" ref="g7aeac2ec4436e30a81c4305642d9c084" args="(axis2_http_simple_response_t *simple_response, const axutil_env_t *env)" -->
AXIS2_EXTERN <br>
<a class="el" href="group__axutil__array__list.html#g1a6a89777db876cfa0cc86787b7be6a0">axutil_array_list_t</a> *&nbsp;</td><td class="memItemRight" valign="bottom"><b>axis2_http_simple_response_get_mime_parts</b> (<a class="el" href="group__axis2__http__simple__response.html#g5ebc18702d80d368692d1922f9accb1f">axis2_http_simple_response_t</a> *simple_response, const <a class="el" href="structaxutil__env.html">axutil_env_t</a> *env)</td></tr>

<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="g13433631244e22e3d69dd8921cae7f83"></a><!-- doxytag: member="axis2_http_simple_response::axis2_http_simple_response_set_mime_parts" ref="g13433631244e22e3d69dd8921cae7f83" args="(axis2_http_simple_response_t *simple_response, const axutil_env_t *env, axutil_array_list_t *mime_parts)" -->
AXIS2_EXTERN void&nbsp;</td><td class="memItemRight" valign="bottom"><b>axis2_http_simple_response_set_mime_parts</b> (<a class="el" href="group__axis2__http__simple__response.html#g5ebc18702d80d368692d1922f9accb1f">axis2_http_simple_response_t</a> *simple_response, const <a class="el" href="structaxutil__env.html">axutil_env_t</a> *env, <a class="el" href="group__axutil__array__list.html#g1a6a89777db876cfa0cc86787b7be6a0">axutil_array_list_t</a> *mime_parts)</td></tr>

<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="gd04b7c0ef9570a7e2f1dd2e8ffdc89f3"></a><!-- doxytag: member="axis2_http_simple_response::axis2_http_simple_response_set_http_version" ref="gd04b7c0ef9570a7e2f1dd2e8ffdc89f3" args="(axis2_http_simple_response_t *simple_response, const axutil_env_t *env, axis2_char_t *http_version)" -->
axis2_status_t&nbsp;</td><td class="memItemRight" valign="bottom"><b>axis2_http_simple_response_set_http_version</b> (<a class="el" href="group__axis2__http__simple__response.html#g5ebc18702d80d368692d1922f9accb1f">axis2_http_simple_response_t</a> *simple_response, const <a class="el" href="structaxutil__env.html">axutil_env_t</a> *env, axis2_char_t *http_version)</td></tr>

<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="gf0ce33a819bfe371c4a16847c6fb440b"></a><!-- doxytag: member="axis2_http_simple_response::axis2_http_simple_response_get_mtom_sending_callback_name" ref="gf0ce33a819bfe371c4a16847c6fb440b" args="(axis2_http_simple_response_t *simple_response, const axutil_env_t *env)" -->
AXIS2_EXTERN <br>
axis2_char_t *&nbsp;</td><td class="memItemRight" valign="bottom"><b>axis2_http_simple_response_get_mtom_sending_callback_name</b> (<a class="el" href="group__axis2__http__simple__response.html#g5ebc18702d80d368692d1922f9accb1f">axis2_http_simple_response_t</a> *simple_response, const <a class="el" href="structaxutil__env.html">axutil_env_t</a> *env)</td></tr>

<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="g1fea9f825bd5e6afd87162de34b37fd2"></a><!-- doxytag: member="axis2_http_simple_response::axis2_http_simple_response_set_mtom_sending_callback_name" ref="g1fea9f825bd5e6afd87162de34b37fd2" args="(axis2_http_simple_response_t *simple_response, const axutil_env_t *env, axis2_char_t *mtom_sending_callback_name)" -->
void AXIS2_EXTERN&nbsp;</td><td class="memItemRight" valign="bottom"><b>axis2_http_simple_response_set_mtom_sending_callback_name</b> (<a class="el" href="group__axis2__http__simple__response.html#g5ebc18702d80d368692d1922f9accb1f">axis2_http_simple_response_t</a> *simple_response, const <a class="el" href="structaxutil__env.html">axutil_env_t</a> *env, axis2_char_t *mtom_sending_callback_name)</td></tr>

</table>
<hr><h2>Typedef Documentation</h2>
<a class="anchor" name="g5ebc18702d80d368692d1922f9accb1f"></a><!-- doxytag: member="axis2_http_simple_response.h::axis2_http_simple_response_t" ref="g5ebc18702d80d368692d1922f9accb1f" args="" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">typedef struct axis2_http_simple_response <a class="el" href="group__axis2__http__simple__response.html#g5ebc18702d80d368692d1922f9accb1f">axis2_http_simple_response_t</a>          </td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
Type name for struct axis2_http_simple_response 
</div>
</div><p>
<hr><h2>Function Documentation</h2>
<a class="anchor" name="gd24d24f61b5ebe5c92329a985743d3af"></a><!-- doxytag: member="axis2_http_simple_response.h::axis2_http_simple_response_contains_header" ref="gd24d24f61b5ebe5c92329a985743d3af" args="(axis2_http_simple_response_t *simple_response, const axutil_env_t *env, const axis2_char_t *name)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">AXIS2_EXTERN axis2_bool_t axis2_http_simple_response_contains_header           </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="group__axis2__http__simple__response.html#g5ebc18702d80d368692d1922f9accb1f">axis2_http_simple_response_t</a> *&nbsp;</td>
          <td class="paramname"> <em>simple_response</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const <a class="el" href="structaxutil__env.html">axutil_env_t</a> *&nbsp;</td>
          <td class="paramname"> <em>env</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const axis2_char_t *&nbsp;</td>
          <td class="paramname"> <em>name</em></td><td>&nbsp;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td><td width="100%"></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
<dl compact><dt><b>Parameters:</b></dt><dd>
  <table border="0" cellspacing="2" cellpadding="0">
    <tr><td valign="top"></td><td valign="top"><em>simple_response</em>&nbsp;</td><td>pointer to simple response struct </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>env</em>&nbsp;</td><td>pointer to environment struct </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>name</em>&nbsp;</td><td>pointer to name </td></tr>
  </table>
</dl>

</div>
</div><p>
<a class="anchor" name="g209ed72631aa32675b22ce693ba18020"></a><!-- doxytag: member="axis2_http_simple_response.h::axis2_http_simple_response_create" ref="g209ed72631aa32675b22ce693ba18020" args="(const axutil_env_t *env, axis2_http_status_line_t *status_line, const axis2_http_header_t **http_headers, const axis2_ssize_t http_hdr_count, axutil_stream_t *content)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">AXIS2_EXTERN <a class="el" href="group__axis2__http__simple__response.html#g5ebc18702d80d368692d1922f9accb1f">axis2_http_simple_response_t</a>* axis2_http_simple_response_create           </td>
          <td>(</td>
          <td class="paramtype">const <a class="el" href="structaxutil__env.html">axutil_env_t</a> *&nbsp;</td>
          <td class="paramname"> <em>env</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype"><a class="el" href="group__axis2__http__status__line.html#gdfb55bd473dfd8c73003b9c20d7e4e4b">axis2_http_status_line_t</a> *&nbsp;</td>
          <td class="paramname"> <em>status_line</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const <a class="el" href="group__axis2__http__header.html#gd8f14a5acb342f2f99bcfe3c71e7857e">axis2_http_header_t</a> **&nbsp;</td>
          <td class="paramname"> <em>http_headers</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const axis2_ssize_t&nbsp;</td>
          <td class="paramname"> <em>http_hdr_count</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">axutil_stream_t *&nbsp;</td>
          <td class="paramname"> <em>content</em></td><td>&nbsp;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td><td width="100%"></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
<dl compact><dt><b>Parameters:</b></dt><dd>
  <table border="0" cellspacing="2" cellpadding="0">
    <tr><td valign="top"></td><td valign="top"><em>env</em>&nbsp;</td><td>pointer to environment struct </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>status_line</em>&nbsp;</td><td>pointer to status line </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>http_headers</em>&nbsp;</td><td>double pointer to http_headers </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>http_hdr_count</em>&nbsp;</td><td></td></tr>
    <tr><td valign="top"></td><td valign="top"><em>content</em>&nbsp;</td><td>pointer to content </td></tr>
  </table>
</dl>

</div>
</div><p>
<a class="anchor" name="g71cf4068dafd95eb76c3658d06ab4865"></a><!-- doxytag: member="axis2_http_simple_response.h::axis2_http_simple_response_create_default" ref="g71cf4068dafd95eb76c3658d06ab4865" args="(const axutil_env_t *env)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">AXIS2_EXTERN <a class="el" href="group__axis2__http__simple__response.html#g5ebc18702d80d368692d1922f9accb1f">axis2_http_simple_response_t</a>* axis2_http_simple_response_create_default           </td>
          <td>(</td>
          <td class="paramtype">const <a class="el" href="structaxutil__env.html">axutil_env_t</a> *&nbsp;</td>
          <td class="paramname"> <em>env</em>          </td>
          <td>&nbsp;)&nbsp;</td>
          <td width="100%"></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
<dl compact><dt><b>Parameters:</b></dt><dd>
  <table border="0" cellspacing="2" cellpadding="0">
    <tr><td valign="top"></td><td valign="top"><em>env</em>&nbsp;</td><td>pointer to environment struct </td></tr>
  </table>
</dl>

</div>
</div><p>
<a class="anchor" name="g4c84cd1eb2d04211699a348817f0fb3c"></a><!-- doxytag: member="axis2_http_simple_response.h::axis2_http_simple_response_extract_headers" ref="g4c84cd1eb2d04211699a348817f0fb3c" args="(axis2_http_simple_response_t *simple_response, const axutil_env_t *env)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">AXIS2_EXTERN <a class="el" href="group__axutil__array__list.html#g1a6a89777db876cfa0cc86787b7be6a0">axutil_array_list_t</a>* axis2_http_simple_response_extract_headers           </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="group__axis2__http__simple__response.html#g5ebc18702d80d368692d1922f9accb1f">axis2_http_simple_response_t</a> *&nbsp;</td>
          <td class="paramname"> <em>simple_response</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const <a class="el" href="structaxutil__env.html">axutil_env_t</a> *&nbsp;</td>
          <td class="paramname"> <em>env</em></td><td>&nbsp;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td><td width="100%"></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
<dl compact><dt><b>Parameters:</b></dt><dd>
  <table border="0" cellspacing="2" cellpadding="0">
    <tr><td valign="top"></td><td valign="top"><em>simple_response</em>&nbsp;</td><td>pointer to simple response struct </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>env</em>&nbsp;</td><td>pointer to environment struct </td></tr>
  </table>
</dl>

</div>
</div><p>
<a class="anchor" name="gdbbd2a523cf92636c6e1f7a8abb04aac"></a><!-- doxytag: member="axis2_http_simple_response.h::axis2_http_simple_response_free" ref="gdbbd2a523cf92636c6e1f7a8abb04aac" args="(axis2_http_simple_response_t *simple_response, const axutil_env_t *env)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">AXIS2_EXTERN void axis2_http_simple_response_free           </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="group__axis2__http__simple__response.html#g5ebc18702d80d368692d1922f9accb1f">axis2_http_simple_response_t</a> *&nbsp;</td>
          <td class="paramname"> <em>simple_response</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const <a class="el" href="structaxutil__env.html">axutil_env_t</a> *&nbsp;</td>
          <td class="paramname"> <em>env</em></td><td>&nbsp;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td><td width="100%"></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
<dl compact><dt><b>Parameters:</b></dt><dd>
  <table border="0" cellspacing="2" cellpadding="0">
    <tr><td valign="top"></td><td valign="top"><em>simple_response</em>&nbsp;</td><td>pointer to simple response struct </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>env</em>&nbsp;</td><td>pointer to environment struct </td></tr>
  </table>
</dl>
<dl class="return" compact><dt><b>Returns:</b></dt><dd>void </dd></dl>

</div>
</div><p>
<a class="anchor" name="g49d3ca8a7650d3c713be403293c6f49d"></a><!-- doxytag: member="axis2_http_simple_response.h::axis2_http_simple_response_get_body" ref="g49d3ca8a7650d3c713be403293c6f49d" args="(axis2_http_simple_response_t *simple_response, const axutil_env_t *env)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">AXIS2_EXTERN axutil_stream_t* axis2_http_simple_response_get_body           </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="group__axis2__http__simple__response.html#g5ebc18702d80d368692d1922f9accb1f">axis2_http_simple_response_t</a> *&nbsp;</td>
          <td class="paramname"> <em>simple_response</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const <a class="el" href="structaxutil__env.html">axutil_env_t</a> *&nbsp;</td>
          <td class="paramname"> <em>env</em></td><td>&nbsp;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td><td width="100%"></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
<dl compact><dt><b>Parameters:</b></dt><dd>
  <table border="0" cellspacing="2" cellpadding="0">
    <tr><td valign="top"></td><td valign="top"><em>simple_response</em>&nbsp;</td><td>pointer to simple response struct </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>env</em>&nbsp;</td><td>pointer to environment struct </td></tr>
  </table>
</dl>

</div>
</div><p>
<a class="anchor" name="ga7ef4d819677a618a6d28436f756b15a"></a><!-- doxytag: member="axis2_http_simple_response.h::axis2_http_simple_response_get_body_bytes" ref="ga7ef4d819677a618a6d28436f756b15a" args="(axis2_http_simple_response_t *simple_response, const axutil_env_t *env, axis2_char_t **buf)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">AXIS2_EXTERN axis2_ssize_t axis2_http_simple_response_get_body_bytes           </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="group__axis2__http__simple__response.html#g5ebc18702d80d368692d1922f9accb1f">axis2_http_simple_response_t</a> *&nbsp;</td>
          <td class="paramname"> <em>simple_response</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const <a class="el" href="structaxutil__env.html">axutil_env_t</a> *&nbsp;</td>
          <td class="paramname"> <em>env</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">axis2_char_t **&nbsp;</td>
          <td class="paramname"> <em>buf</em></td><td>&nbsp;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td><td width="100%"></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
<dl compact><dt><b>Parameters:</b></dt><dd>
  <table border="0" cellspacing="2" cellpadding="0">
    <tr><td valign="top"></td><td valign="top"><em>simple_response</em>&nbsp;</td><td>pointer to simple response struct </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>env</em>&nbsp;</td><td>pointer to environment struct </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>buf</em>&nbsp;</td><td>double pointer to buf </td></tr>
  </table>
</dl>

</div>
</div><p>
<a class="anchor" name="g089edeaf57d72e069e00daab229feb36"></a><!-- doxytag: member="axis2_http_simple_response.h::axis2_http_simple_response_get_charset" ref="g089edeaf57d72e069e00daab229feb36" args="(axis2_http_simple_response_t *simple_response, const axutil_env_t *env)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">AXIS2_EXTERN const axis2_char_t* axis2_http_simple_response_get_charset           </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="group__axis2__http__simple__response.html#g5ebc18702d80d368692d1922f9accb1f">axis2_http_simple_response_t</a> *&nbsp;</td>
          <td class="paramname"> <em>simple_response</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const <a class="el" href="structaxutil__env.html">axutil_env_t</a> *&nbsp;</td>
          <td class="paramname"> <em>env</em></td><td>&nbsp;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td><td width="100%"></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
<dl compact><dt><b>Parameters:</b></dt><dd>
  <table border="0" cellspacing="2" cellpadding="0">
    <tr><td valign="top"></td><td valign="top"><em>simple_response</em>&nbsp;</td><td>pointer to simple response struct </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>env</em>&nbsp;</td><td>pointer to environment struct </td></tr>
  </table>
</dl>

</div>
</div><p>
<a class="anchor" name="g03db587b463dda8c908be746d028eb43"></a><!-- doxytag: member="axis2_http_simple_response.h::axis2_http_simple_response_get_content_length" ref="g03db587b463dda8c908be746d028eb43" args="(axis2_http_simple_response_t *simple_response, const axutil_env_t *env)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">AXIS2_EXTERN axis2_ssize_t axis2_http_simple_response_get_content_length           </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="group__axis2__http__simple__response.html#g5ebc18702d80d368692d1922f9accb1f">axis2_http_simple_response_t</a> *&nbsp;</td>
          <td class="paramname"> <em>simple_response</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const <a class="el" href="structaxutil__env.html">axutil_env_t</a> *&nbsp;</td>
          <td class="paramname"> <em>env</em></td><td>&nbsp;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td><td width="100%"></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
<dl compact><dt><b>Parameters:</b></dt><dd>
  <table border="0" cellspacing="2" cellpadding="0">
    <tr><td valign="top"></td><td valign="top"><em>simple_response</em>&nbsp;</td><td>pointer to simple response struct </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>env</em>&nbsp;</td><td>pointer to environment struct </td></tr>
  </table>
</dl>

</div>
</div><p>
<a class="anchor" name="g539ffae585e4a8a47e1d8cd4c870c897"></a><!-- doxytag: member="axis2_http_simple_response.h::axis2_http_simple_response_get_content_type" ref="g539ffae585e4a8a47e1d8cd4c870c897" args="(axis2_http_simple_response_t *simple_response, const axutil_env_t *env)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">AXIS2_EXTERN const axis2_char_t* axis2_http_simple_response_get_content_type           </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="group__axis2__http__simple__response.html#g5ebc18702d80d368692d1922f9accb1f">axis2_http_simple_response_t</a> *&nbsp;</td>
          <td class="paramname"> <em>simple_response</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const <a class="el" href="structaxutil__env.html">axutil_env_t</a> *&nbsp;</td>
          <td class="paramname"> <em>env</em></td><td>&nbsp;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td><td width="100%"></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
<dl compact><dt><b>Parameters:</b></dt><dd>
  <table border="0" cellspacing="2" cellpadding="0">
    <tr><td valign="top"></td><td valign="top"><em>simple_response</em>&nbsp;</td><td>pointer to simple response struct </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>env</em>&nbsp;</td><td>pointer to environment struct </td></tr>
  </table>
</dl>

</div>
</div><p>
<a class="anchor" name="g20578210d80cff19667f2f1ebd1bb179"></a><!-- doxytag: member="axis2_http_simple_response.h::axis2_http_simple_response_get_first_header" ref="g20578210d80cff19667f2f1ebd1bb179" args="(axis2_http_simple_response_t *simple_response, const axutil_env_t *env, const axis2_char_t *str)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">AXIS2_EXTERN <a class="el" href="group__axis2__http__header.html#gd8f14a5acb342f2f99bcfe3c71e7857e">axis2_http_header_t</a>* axis2_http_simple_response_get_first_header           </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="group__axis2__http__simple__response.html#g5ebc18702d80d368692d1922f9accb1f">axis2_http_simple_response_t</a> *&nbsp;</td>
          <td class="paramname"> <em>simple_response</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const <a class="el" href="structaxutil__env.html">axutil_env_t</a> *&nbsp;</td>
          <td class="paramname"> <em>env</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const axis2_char_t *&nbsp;</td>
          <td class="paramname"> <em>str</em></td><td>&nbsp;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td><td width="100%"></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
<dl compact><dt><b>Parameters:</b></dt><dd>
  <table border="0" cellspacing="2" cellpadding="0">
    <tr><td valign="top"></td><td valign="top"><em>simple_response</em>&nbsp;</td><td>pointer to simple response struct </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>env</em>&nbsp;</td><td>pointer to environment struct </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>str</em>&nbsp;</td><td>pointer to str </td></tr>
  </table>
</dl>

</div>
</div><p>
<a class="anchor" name="g0a5b2fdcf5a56cfe9c54eadea6459aab"></a><!-- doxytag: member="axis2_http_simple_response.h::axis2_http_simple_response_get_headers" ref="g0a5b2fdcf5a56cfe9c54eadea6459aab" args="(axis2_http_simple_response_t *simple_response, const axutil_env_t *env)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">AXIS2_EXTERN <a class="el" href="group__axutil__array__list.html#g1a6a89777db876cfa0cc86787b7be6a0">axutil_array_list_t</a>* axis2_http_simple_response_get_headers           </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="group__axis2__http__simple__response.html#g5ebc18702d80d368692d1922f9accb1f">axis2_http_simple_response_t</a> *&nbsp;</td>
          <td class="paramname"> <em>simple_response</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const <a class="el" href="structaxutil__env.html">axutil_env_t</a> *&nbsp;</td>
          <td class="paramname"> <em>env</em></td><td>&nbsp;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td><td width="100%"></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
<dl compact><dt><b>Parameters:</b></dt><dd>
  <table border="0" cellspacing="2" cellpadding="0">
    <tr><td valign="top"></td><td valign="top"><em>simple_response</em>&nbsp;</td><td>pointer to simple response struct </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>env</em>&nbsp;</td><td>pointer to environment struct </td></tr>
  </table>
</dl>

</div>
</div><p>
<a class="anchor" name="g4962ea33b78c3b7057a700b5493e4ac6"></a><!-- doxytag: member="axis2_http_simple_response.h::axis2_http_simple_response_get_http_version" ref="g4962ea33b78c3b7057a700b5493e4ac6" args="(axis2_http_simple_response_t *simple_response, const axutil_env_t *env)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">AXIS2_EXTERN axis2_char_t* axis2_http_simple_response_get_http_version           </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="group__axis2__http__simple__response.html#g5ebc18702d80d368692d1922f9accb1f">axis2_http_simple_response_t</a> *&nbsp;</td>
          <td class="paramname"> <em>simple_response</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const <a class="el" href="structaxutil__env.html">axutil_env_t</a> *&nbsp;</td>
          <td class="paramname"> <em>env</em></td><td>&nbsp;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td><td width="100%"></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
<dl compact><dt><b>Parameters:</b></dt><dd>
  <table border="0" cellspacing="2" cellpadding="0">
    <tr><td valign="top"></td><td valign="top"><em>simple_response</em>&nbsp;</td><td>pointer to simple response struct </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>env</em>&nbsp;</td><td>pointer to environment struct </td></tr>
  </table>
</dl>

</div>
</div><p>
<a class="anchor" name="g965654d448f369bcd78c25eb8ba68a40"></a><!-- doxytag: member="axis2_http_simple_response.h::axis2_http_simple_response_get_phrase" ref="g965654d448f369bcd78c25eb8ba68a40" args="(axis2_http_simple_response_t *simple_response, const axutil_env_t *env)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">AXIS2_EXTERN axis2_char_t* axis2_http_simple_response_get_phrase           </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="group__axis2__http__simple__response.html#g5ebc18702d80d368692d1922f9accb1f">axis2_http_simple_response_t</a> *&nbsp;</td>
          <td class="paramname"> <em>simple_response</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const <a class="el" href="structaxutil__env.html">axutil_env_t</a> *&nbsp;</td>
          <td class="paramname"> <em>env</em></td><td>&nbsp;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td><td width="100%"></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
<dl compact><dt><b>Parameters:</b></dt><dd>
  <table border="0" cellspacing="2" cellpadding="0">
    <tr><td valign="top"></td><td valign="top"><em>simple_response</em>&nbsp;</td><td>pointer to simple response struct </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>env</em>&nbsp;</td><td>pointer to environment struct </td></tr>
  </table>
</dl>

</div>
</div><p>
<a class="anchor" name="gb0515fe0071d2874e9d44ecd45a6d10c"></a><!-- doxytag: member="axis2_http_simple_response.h::axis2_http_simple_response_get_status_code" ref="gb0515fe0071d2874e9d44ecd45a6d10c" args="(axis2_http_simple_response_t *simple_response, const axutil_env_t *env)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">AXIS2_EXTERN int axis2_http_simple_response_get_status_code           </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="group__axis2__http__simple__response.html#g5ebc18702d80d368692d1922f9accb1f">axis2_http_simple_response_t</a> *&nbsp;</td>
          <td class="paramname"> <em>simple_response</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const <a class="el" href="structaxutil__env.html">axutil_env_t</a> *&nbsp;</td>
          <td class="paramname"> <em>env</em></td><td>&nbsp;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td><td width="100%"></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
<dl compact><dt><b>Parameters:</b></dt><dd>
  <table border="0" cellspacing="2" cellpadding="0">
    <tr><td valign="top"></td><td valign="top"><em>simple_response</em>&nbsp;</td><td>pointer to simple response struct </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>env</em>&nbsp;</td><td>pointer to environment struct </td></tr>
  </table>
</dl>

</div>
</div><p>
<a class="anchor" name="g810b45733a4becb6b00e2ce66109c14e"></a><!-- doxytag: member="axis2_http_simple_response.h::axis2_http_simple_response_get_status_line" ref="g810b45733a4becb6b00e2ce66109c14e" args="(axis2_http_simple_response_t *simple_response, const axutil_env_t *env)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">AXIS2_EXTERN axis2_char_t* axis2_http_simple_response_get_status_line           </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="group__axis2__http__simple__response.html#g5ebc18702d80d368692d1922f9accb1f">axis2_http_simple_response_t</a> *&nbsp;</td>
          <td class="paramname"> <em>simple_response</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const <a class="el" href="structaxutil__env.html">axutil_env_t</a> *&nbsp;</td>
          <td class="paramname"> <em>env</em></td><td>&nbsp;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td><td width="100%"></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
<dl compact><dt><b>Parameters:</b></dt><dd>
  <table border="0" cellspacing="2" cellpadding="0">
    <tr><td valign="top"></td><td valign="top"><em>simple_response</em>&nbsp;</td><td>pointer to simple response struct </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>env</em>&nbsp;</td><td>pointer to environment struct </td></tr>
  </table>
</dl>

</div>
</div><p>
<a class="anchor" name="gdfa6f0f0bb03760a6f799517ed48733d"></a><!-- doxytag: member="axis2_http_simple_response.h::axis2_http_simple_response_remove_headers" ref="gdfa6f0f0bb03760a6f799517ed48733d" args="(axis2_http_simple_response_t *simple_response, const axutil_env_t *env, const axis2_char_t *str)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">AXIS2_EXTERN axis2_status_t axis2_http_simple_response_remove_headers           </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="group__axis2__http__simple__response.html#g5ebc18702d80d368692d1922f9accb1f">axis2_http_simple_response_t</a> *&nbsp;</td>
          <td class="paramname"> <em>simple_response</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const <a class="el" href="structaxutil__env.html">axutil_env_t</a> *&nbsp;</td>
          <td class="paramname"> <em>env</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const axis2_char_t *&nbsp;</td>
          <td class="paramname"> <em>str</em></td><td>&nbsp;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td><td width="100%"></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
<dl compact><dt><b>Parameters:</b></dt><dd>
  <table border="0" cellspacing="2" cellpadding="0">
    <tr><td valign="top"></td><td valign="top"><em>simple_response</em>&nbsp;</td><td>pointer to simple response struct </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>env</em>&nbsp;</td><td>pointer to environment struct </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>str</em>&nbsp;</td><td>pointer to str </td></tr>
  </table>
</dl>
<dl class="return" compact><dt><b>Returns:</b></dt><dd>AXIS2_SUCCESS on success, else AXIS2_FAILURE </dd></dl>

</div>
</div><p>
<a class="anchor" name="g87033017e9714d33e9d3ae68904a52e6"></a><!-- doxytag: member="axis2_http_simple_response.h::axis2_http_simple_response_set_body_stream" ref="g87033017e9714d33e9d3ae68904a52e6" args="(axis2_http_simple_response_t *simple_response, const axutil_env_t *env, axutil_stream_t *stream)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">AXIS2_EXTERN axis2_status_t axis2_http_simple_response_set_body_stream           </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="group__axis2__http__simple__response.html#g5ebc18702d80d368692d1922f9accb1f">axis2_http_simple_response_t</a> *&nbsp;</td>
          <td class="paramname"> <em>simple_response</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const <a class="el" href="structaxutil__env.html">axutil_env_t</a> *&nbsp;</td>
          <td class="paramname"> <em>env</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">axutil_stream_t *&nbsp;</td>
          <td class="paramname"> <em>stream</em></td><td>&nbsp;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td><td width="100%"></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
<dl compact><dt><b>Parameters:</b></dt><dd>
  <table border="0" cellspacing="2" cellpadding="0">
    <tr><td valign="top"></td><td valign="top"><em>simple_response</em>&nbsp;</td><td>pointer to simple response struct </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>env</em>&nbsp;</td><td>pointer to environment struct </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>stream</em>&nbsp;</td><td>pointer to stream </td></tr>
  </table>
</dl>
<dl class="return" compact><dt><b>Returns:</b></dt><dd>AXIS2_SUCCESS on success, else AXIS2_FAILURE </dd></dl>

</div>
</div><p>
<a class="anchor" name="g5626e9e8744f9b14e2ecaf7359691151"></a><!-- doxytag: member="axis2_http_simple_response.h::axis2_http_simple_response_set_body_string" ref="g5626e9e8744f9b14e2ecaf7359691151" args="(axis2_http_simple_response_t *simple_response, const axutil_env_t *env, axis2_char_t *str)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">AXIS2_EXTERN axis2_status_t axis2_http_simple_response_set_body_string           </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="group__axis2__http__simple__response.html#g5ebc18702d80d368692d1922f9accb1f">axis2_http_simple_response_t</a> *&nbsp;</td>
          <td class="paramname"> <em>simple_response</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const <a class="el" href="structaxutil__env.html">axutil_env_t</a> *&nbsp;</td>
          <td class="paramname"> <em>env</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">axis2_char_t *&nbsp;</td>
          <td class="paramname"> <em>str</em></td><td>&nbsp;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td><td width="100%"></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
<dl compact><dt><b>Parameters:</b></dt><dd>
  <table border="0" cellspacing="2" cellpadding="0">
    <tr><td valign="top"></td><td valign="top"><em>simple_response</em>&nbsp;</td><td>pointer to simple response struct </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>env</em>&nbsp;</td><td>pointer to environment struct </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>str</em>&nbsp;</td><td>pointer to str </td></tr>
  </table>
</dl>
<dl class="return" compact><dt><b>Returns:</b></dt><dd>AXIS2_SUCCESS on success, else AXIS2_FAILURE </dd></dl>

</div>
</div><p>
<a class="anchor" name="g0b3b364adf9ce38f2dc1aa89caf7a3df"></a><!-- doxytag: member="axis2_http_simple_response.h::axis2_http_simple_response_set_header" ref="g0b3b364adf9ce38f2dc1aa89caf7a3df" args="(axis2_http_simple_response_t *simple_response, const axutil_env_t *env, axis2_http_header_t *header)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">AXIS2_EXTERN axis2_status_t axis2_http_simple_response_set_header           </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="group__axis2__http__simple__response.html#g5ebc18702d80d368692d1922f9accb1f">axis2_http_simple_response_t</a> *&nbsp;</td>
          <td class="paramname"> <em>simple_response</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const <a class="el" href="structaxutil__env.html">axutil_env_t</a> *&nbsp;</td>
          <td class="paramname"> <em>env</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype"><a class="el" href="group__axis2__http__header.html#gd8f14a5acb342f2f99bcfe3c71e7857e">axis2_http_header_t</a> *&nbsp;</td>
          <td class="paramname"> <em>header</em></td><td>&nbsp;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td><td width="100%"></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
<dl compact><dt><b>Parameters:</b></dt><dd>
  <table border="0" cellspacing="2" cellpadding="0">
    <tr><td valign="top"></td><td valign="top"><em>simple_response</em>&nbsp;</td><td>pointer to simple response struct </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>env</em>&nbsp;</td><td>pointer to environment struct </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>header</em>&nbsp;</td><td>pointer to header </td></tr>
  </table>
</dl>
<dl class="return" compact><dt><b>Returns:</b></dt><dd>AXIS2_SUCCESS on success, else AXIS2_FAILURE </dd></dl>

</div>
</div><p>
<a class="anchor" name="g4cecca560f501e28c11f0697a5ca1b42"></a><!-- doxytag: member="axis2_http_simple_response.h::axis2_http_simple_response_set_headers" ref="g4cecca560f501e28c11f0697a5ca1b42" args="(axis2_http_simple_response_t *simple_response, const axutil_env_t *env, axis2_http_header_t **headers, axis2_ssize_t array_size)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">AXIS2_EXTERN axis2_status_t axis2_http_simple_response_set_headers           </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="group__axis2__http__simple__response.html#g5ebc18702d80d368692d1922f9accb1f">axis2_http_simple_response_t</a> *&nbsp;</td>
          <td class="paramname"> <em>simple_response</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const <a class="el" href="structaxutil__env.html">axutil_env_t</a> *&nbsp;</td>
          <td class="paramname"> <em>env</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype"><a class="el" href="group__axis2__http__header.html#gd8f14a5acb342f2f99bcfe3c71e7857e">axis2_http_header_t</a> **&nbsp;</td>
          <td class="paramname"> <em>headers</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">axis2_ssize_t&nbsp;</td>
          <td class="paramname"> <em>array_size</em></td><td>&nbsp;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td><td width="100%"></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
<dl compact><dt><b>Parameters:</b></dt><dd>
  <table border="0" cellspacing="2" cellpadding="0">
    <tr><td valign="top"></td><td valign="top"><em>simple_response</em>&nbsp;</td><td>pointer to simple response struct </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>env</em>&nbsp;</td><td>pointer to environment struct </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>headers</em>&nbsp;</td><td>double pointer to headers </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>array_size</em>&nbsp;</td><td></td></tr>
  </table>
</dl>
<dl class="return" compact><dt><b>Returns:</b></dt><dd>AXIS2_SUCCESS on success, else AXIS2_FAILURE </dd></dl>

</div>
</div><p>
<a class="anchor" name="g516ffbfa78d129d4fd9952ad8db24bc8"></a><!-- doxytag: member="axis2_http_simple_response.h::axis2_http_simple_response_set_status_line" ref="g516ffbfa78d129d4fd9952ad8db24bc8" args="(struct axis2_http_simple_response *simple_response, const axutil_env_t *env, const axis2_char_t *http_ver, const int status_code, const axis2_char_t *phrase)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">AXIS2_EXTERN axis2_status_t axis2_http_simple_response_set_status_line           </td>
          <td>(</td>
          <td class="paramtype">struct axis2_http_simple_response *&nbsp;</td>
          <td class="paramname"> <em>simple_response</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const <a class="el" href="structaxutil__env.html">axutil_env_t</a> *&nbsp;</td>
          <td class="paramname"> <em>env</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const axis2_char_t *&nbsp;</td>
          <td class="paramname"> <em>http_ver</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const int&nbsp;</td>
          <td class="paramname"> <em>status_code</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const axis2_char_t *&nbsp;</td>
          <td class="paramname"> <em>phrase</em></td><td>&nbsp;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td><td width="100%"></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
<dl compact><dt><b>Parameters:</b></dt><dd>
  <table border="0" cellspacing="2" cellpadding="0">
    <tr><td valign="top"></td><td valign="top"><em>simple_response</em>&nbsp;</td><td>pointer to simple response struct </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>env</em>&nbsp;</td><td>pointer to environment struct </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>http_ver</em>&nbsp;</td><td>pointer to http_ver </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>status_code</em>&nbsp;</td><td>pointer to status code </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>phrase</em>&nbsp;</td><td>pointer to phrase </td></tr>
  </table>
</dl>
<dl class="return" compact><dt><b>Returns:</b></dt><dd>AXIS2_SUCCESS on success, else AXIS2_FAILURE </dd></dl>

</div>
</div><p>
<hr size="1"><address style="text-align: right;"><small>Generated on Fri Apr 17 11:49:45 2009 for Axis2/C by&nbsp;
<a href="http://www.doxygen.org/index.html">
<img src="doxygen.png" alt="doxygen" align="middle" border="0"></a> 1.5.3 </small></address>
</body>
</html>


<|start_filename|>xdocs/api/html/axiom__soap__header__block_8h-source.html<|end_filename|>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html><head><meta http-equiv="Content-Type" content="text/html;charset=UTF-8">
<title>Axis2/C: axiom_soap_header_block.h Source File</title>
<link href="doxygen.css" rel="stylesheet" type="text/css">
<link href="tabs.css" rel="stylesheet" type="text/css">
</head><body>
<!-- Generated by Doxygen 1.5.3 -->
<div class="tabs">
  <ul>
    <li><a href="index.html"><span>Main&nbsp;Page</span></a></li>
    <li><a href="modules.html"><span>Modules</span></a></li>
    <li><a href="annotated.html"><span>Classes</span></a></li>
    <li class="current"><a href="files.html"><span>Files</span></a></li>
    <li><a href="dirs.html"><span>Directories</span></a></li>
    <li><a href="pages.html"><span>Related&nbsp;Pages</span></a></li>
    <li><a href="examples.html"><span>Examples</span></a></li>
    <li>
      <form action="search.php" method="get">
        <table cellspacing="0" cellpadding="0" border="0">
          <tr>
            <td><label>&nbsp;<u>S</u>earch&nbsp;for&nbsp;</label></td>
            <td><input type="text" name="query" value="" size="20" accesskey="s"/></td>
          </tr>
        </table>
      </form>
    </li>
  </ul>
</div>
<div class="nav">
<a class="el" href="dir_f60961de8e5edc3b2658ef023e959e45.html">deploy</a>&nbsp;&raquo&nbsp;<a class="el" href="dir_6b4e91e54b7316b376882a6402adbf44.html">include</a>&nbsp;&raquo&nbsp;<a class="el" href="dir_df3a7695d5a9e696f30b948b566829e7.html">axis2-1.6.0</a></div>
<h1>axiom_soap_header_block.h</h1><a href="axiom__soap__header__block_8h.html">Go to the documentation of this file.</a><div class="fragment"><pre class="fragment"><a name="l00001"></a>00001 
<a name="l00002"></a>00002 <span class="comment">/*</span>
<a name="l00003"></a>00003 <span class="comment"> * Licensed to the Apache Software Foundation (ASF) under one or more</span>
<a name="l00004"></a>00004 <span class="comment"> * contributor license agreements.  See the NOTICE file distributed with</span>
<a name="l00005"></a>00005 <span class="comment"> * this work for additional information regarding copyright ownership.</span>
<a name="l00006"></a>00006 <span class="comment"> * The ASF licenses this file to You under the Apache License, Version 2.0</span>
<a name="l00007"></a>00007 <span class="comment"> * (the "License"); you may not use this file except in compliance with</span>
<a name="l00008"></a>00008 <span class="comment"> * the License.  You may obtain a copy of the License at</span>
<a name="l00009"></a>00009 <span class="comment"> *</span>
<a name="l00010"></a>00010 <span class="comment"> *      http://www.apache.org/licenses/LICENSE-2.0</span>
<a name="l00011"></a>00011 <span class="comment"> *</span>
<a name="l00012"></a>00012 <span class="comment"> * Unless required by applicable law or agreed to in writing, software</span>
<a name="l00013"></a>00013 <span class="comment"> * distributed under the License is distributed on an "AS IS" BASIS,</span>
<a name="l00014"></a>00014 <span class="comment"> * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.</span>
<a name="l00015"></a>00015 <span class="comment"> * See the License for the specific language governing permissions and</span>
<a name="l00016"></a>00016 <span class="comment"> * limitations under the License.</span>
<a name="l00017"></a>00017 <span class="comment"> */</span>
<a name="l00018"></a>00018 
<a name="l00019"></a>00019 <span class="preprocessor">#ifndef AXIOM_SOAP_HEADER_BLOCK_H</span>
<a name="l00020"></a>00020 <span class="preprocessor"></span><span class="preprocessor">#define AXIOM_SOAP_HEADER_BLOCK_H</span>
<a name="l00021"></a>00021 <span class="preprocessor"></span>
<a name="l00026"></a>00026 <span class="preprocessor">#include &lt;<a class="code" href="axutil__env_8h.html" title="Axis2 environment that acts as a container for error, log and memory allocator routines...">axutil_env.h</a>&gt;</span>
<a name="l00027"></a>00027 <span class="preprocessor">#include &lt;<a class="code" href="axiom__node_8h.html" title="defines axiom_node struct">axiom_node.h</a>&gt;</span>
<a name="l00028"></a>00028 <span class="preprocessor">#include &lt;axiom_element.h&gt;</span>
<a name="l00029"></a>00029 <span class="preprocessor">#include &lt;<a class="code" href="axutil__array__list_8h.html" title="Axis2 array_list interface.">axutil_array_list.h</a>&gt;</span>
<a name="l00030"></a>00030 <span class="preprocessor">#include &lt;<a class="code" href="axiom__soap__header_8h.html" title="axiom_soap_header struct">axiom_soap_header.h</a>&gt;</span>
<a name="l00031"></a>00031 
<a name="l00032"></a>00032 <span class="preprocessor">#ifdef __cplusplus</span>
<a name="l00033"></a>00033 <span class="preprocessor"></span><span class="keyword">extern</span> <span class="stringliteral">"C"</span>
<a name="l00034"></a>00034 {
<a name="l00035"></a>00035 <span class="preprocessor">#endif</span>
<a name="l00036"></a>00036 <span class="preprocessor"></span>
<a name="l00037"></a>00037     <span class="keyword">typedef</span> <span class="keyword">struct </span>axiom_soap_header_block axiom_soap_header_block_t;
<a name="l00038"></a>00038 
<a name="l00052"></a>00052     AXIS2_EXTERN axiom_soap_header_block_t *AXIS2_CALL
<a name="l00053"></a>00053     <a class="code" href="group__axiom__soap__header__block.html#g5188d7fed9873736576a093ccdc6f601">axiom_soap_header_block_create_with_parent</a>(
<a name="l00054"></a>00054         <span class="keyword">const</span> <a class="code" href="structaxutil__env.html" title="Axis2 Environment struct.">axutil_env_t</a> * env,
<a name="l00055"></a>00055         <span class="keyword">const</span> axis2_char_t * localname,
<a name="l00056"></a>00056         axiom_namespace_t * ns,
<a name="l00057"></a>00057         <span class="keyword">struct</span> axiom_soap_header *parent);
<a name="l00058"></a>00058 
<a name="l00066"></a>00066     AXIS2_EXTERN <span class="keywordtype">void</span> AXIS2_CALL
<a name="l00067"></a>00067     <a class="code" href="group__axiom__soap__header__block.html#g215a0b781dc39c516b2ae2943fb0c9c8">axiom_soap_header_block_free</a>(
<a name="l00068"></a>00068         axiom_soap_header_block_t * header_block,
<a name="l00069"></a>00069         <span class="keyword">const</span> <a class="code" href="structaxutil__env.html" title="Axis2 Environment struct.">axutil_env_t</a> * env);
<a name="l00070"></a>00070 
<a name="l00079"></a>00079     AXIS2_EXTERN axis2_status_t AXIS2_CALL
<a name="l00080"></a>00080     <a class="code" href="group__axiom__soap__header__block.html#g070c1dfff7559b2a6671cb560827767c">axiom_soap_header_block_set_role</a>(
<a name="l00081"></a>00081         axiom_soap_header_block_t * header_block,
<a name="l00082"></a>00082         <span class="keyword">const</span> <a class="code" href="structaxutil__env.html" title="Axis2 Environment struct.">axutil_env_t</a> * env,
<a name="l00083"></a>00083         axis2_char_t * uri);
<a name="l00084"></a>00084 
<a name="l00094"></a>00094     AXIS2_EXTERN axis2_status_t AXIS2_CALL
<a name="l00095"></a>00095     <a class="code" href="group__axiom__soap__header__block.html#gc1c174c041c707b4ee0c1e752c68a850">axiom_soap_header_block_set_must_understand_with_bool</a>(
<a name="l00096"></a>00096         axiom_soap_header_block_t * header_block,
<a name="l00097"></a>00097         <span class="keyword">const</span> <a class="code" href="structaxutil__env.html" title="Axis2 Environment struct.">axutil_env_t</a> * env,
<a name="l00098"></a>00098         axis2_bool_t must_understand);
<a name="l00099"></a>00099 
<a name="l00108"></a>00108     AXIS2_EXTERN axis2_status_t AXIS2_CALL
<a name="l00109"></a>00109     <a class="code" href="group__axiom__soap__header__block.html#g7c285fa98928bc303e499c82cc890c24">axiom_soap_header_block_set_must_understand_with_string</a>(
<a name="l00110"></a>00110         axiom_soap_header_block_t * header_block,
<a name="l00111"></a>00111         <span class="keyword">const</span> <a class="code" href="structaxutil__env.html" title="Axis2 Environment struct.">axutil_env_t</a> * env,
<a name="l00112"></a>00112         axis2_char_t * must_understand);
<a name="l00113"></a>00113 
<a name="l00122"></a>00122     AXIS2_EXTERN axis2_bool_t AXIS2_CALL
<a name="l00123"></a>00123     <a class="code" href="group__axiom__soap__header__block.html#g5e505325bdbc54550f7f3eef9107738e">axiom_soap_header_block_get_must_understand</a>(
<a name="l00124"></a>00124         axiom_soap_header_block_t * header_block,
<a name="l00125"></a>00125         <span class="keyword">const</span> <a class="code" href="structaxutil__env.html" title="Axis2 Environment struct.">axutil_env_t</a> * env);
<a name="l00126"></a>00126 
<a name="l00134"></a>00134     AXIS2_EXTERN axis2_bool_t AXIS2_CALL
<a name="l00135"></a>00135     <a class="code" href="group__axiom__soap__header__block.html#g9a567ec94c9574efa6a69b071b2fd23b">axiom_soap_header_block_is_processed</a>(
<a name="l00136"></a>00136         axiom_soap_header_block_t * header_block,
<a name="l00137"></a>00137         <span class="keyword">const</span> <a class="code" href="structaxutil__env.html" title="Axis2 Environment struct.">axutil_env_t</a> * env);
<a name="l00138"></a>00138 
<a name="l00147"></a>00147     AXIS2_EXTERN axis2_status_t AXIS2_CALL
<a name="l00148"></a>00148     <a class="code" href="group__axiom__soap__header__block.html#g6739c1882b9749f7ec0048a223f6e817">axiom_soap_header_block_set_processed</a>(
<a name="l00149"></a>00149         axiom_soap_header_block_t * header_block,
<a name="l00150"></a>00150         <span class="keyword">const</span> <a class="code" href="structaxutil__env.html" title="Axis2 Environment struct.">axutil_env_t</a> * env);
<a name="l00151"></a>00151 
<a name="l00159"></a>00159     AXIS2_EXTERN axis2_char_t *AXIS2_CALL
<a name="l00160"></a>00160     <a class="code" href="group__axiom__soap__header__block.html#g1c3d15f1ba49d72671ed03e0eec0563a">axiom_soap_header_block_get_role</a>(
<a name="l00161"></a>00161         axiom_soap_header_block_t * header_block,
<a name="l00162"></a>00162         <span class="keyword">const</span> <a class="code" href="structaxutil__env.html" title="Axis2 Environment struct.">axutil_env_t</a> * env);
<a name="l00163"></a>00163 
<a name="l00175"></a>00175     AXIS2_EXTERN axis2_status_t AXIS2_CALL
<a name="l00176"></a>00176     <a class="code" href="group__axiom__soap__header__block.html#g0d571598bedb953b01ac834328f816b9">axiom_soap_header_block_set_attribute</a>(
<a name="l00177"></a>00177         axiom_soap_header_block_t * header_block,
<a name="l00178"></a>00178         <span class="keyword">const</span> <a class="code" href="structaxutil__env.html" title="Axis2 Environment struct.">axutil_env_t</a> * env,
<a name="l00179"></a>00179         <span class="keyword">const</span> axis2_char_t * attr_name,
<a name="l00180"></a>00180         <span class="keyword">const</span> axis2_char_t * attr_value,
<a name="l00181"></a>00181         <span class="keyword">const</span> axis2_char_t * soap_envelope_namespace_uri);
<a name="l00182"></a>00182 
<a name="l00192"></a>00192     AXIS2_EXTERN axis2_char_t *AXIS2_CALL
<a name="l00193"></a>00193     <a class="code" href="group__axiom__soap__header__block.html#gbe505ca156a1f25b44b3fc2d92aab5bc">axiom_soap_header_block_get_attribute</a>(
<a name="l00194"></a>00194         axiom_soap_header_block_t * header_block,
<a name="l00195"></a>00195         <span class="keyword">const</span> <a class="code" href="structaxutil__env.html" title="Axis2 Environment struct.">axutil_env_t</a> * env,
<a name="l00196"></a>00196         <span class="keyword">const</span> axis2_char_t * attr_name,
<a name="l00197"></a>00197         <span class="keyword">const</span> axis2_char_t * soap_envelope_namespace_uri);
<a name="l00198"></a>00198 
<a name="l00206"></a>00206     AXIS2_EXTERN axiom_node_t *AXIS2_CALL
<a name="l00207"></a>00207     <a class="code" href="group__axiom__soap__header__block.html#gc44f185b24f7311ce7b24fa24c3a7418">axiom_soap_header_block_get_base_node</a>(
<a name="l00208"></a>00208         axiom_soap_header_block_t * header_block,
<a name="l00209"></a>00209         <span class="keyword">const</span> <a class="code" href="structaxutil__env.html" title="Axis2 Environment struct.">axutil_env_t</a> * env);
<a name="l00210"></a>00210 
<a name="l00218"></a>00218     AXIS2_EXTERN <span class="keywordtype">int</span> AXIS2_CALL
<a name="l00219"></a>00219     <a class="code" href="group__axiom__soap__header__block.html#gee5697cf3757399514eec4d2253b323e">axiom_soap_header_block_get_soap_version</a>(
<a name="l00220"></a>00220         axiom_soap_header_block_t * header_block,
<a name="l00221"></a>00221         <span class="keyword">const</span> <a class="code" href="structaxutil__env.html" title="Axis2 Environment struct.">axutil_env_t</a> * env);
<a name="l00222"></a>00222 
<a name="l00225"></a>00225 <span class="preprocessor">#ifdef __cplusplus</span>
<a name="l00226"></a>00226 <span class="preprocessor"></span>}
<a name="l00227"></a>00227 <span class="preprocessor">#endif</span>
<a name="l00228"></a>00228 <span class="preprocessor"></span><span class="preprocessor">#endif                          </span><span class="comment">/* AXIOM_SOAP_HEADER_BLOCK_H */</span>
</pre></div><hr size="1"><address style="text-align: right;"><small>Generated on Fri Apr 17 11:49:42 2009 for Axis2/C by&nbsp;
<a href="http://www.doxygen.org/index.html">
<img src="doxygen.png" alt="doxygen" align="middle" border="0"></a> 1.5.3 </small></address>
</body>
</html>


<|start_filename|>xdocs/api/html/axutil__digest__calc_8h.html<|end_filename|>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html><head><meta http-equiv="Content-Type" content="text/html;charset=UTF-8">
<title>Axis2/C: axutil_digest_calc.h File Reference</title>
<link href="doxygen.css" rel="stylesheet" type="text/css">
<link href="tabs.css" rel="stylesheet" type="text/css">
</head><body>
<!-- Generated by Doxygen 1.5.3 -->
<div class="tabs">
  <ul>
    <li><a href="index.html"><span>Main&nbsp;Page</span></a></li>
    <li><a href="modules.html"><span>Modules</span></a></li>
    <li><a href="annotated.html"><span>Classes</span></a></li>
    <li class="current"><a href="files.html"><span>Files</span></a></li>
    <li><a href="dirs.html"><span>Directories</span></a></li>
    <li><a href="pages.html"><span>Related&nbsp;Pages</span></a></li>
    <li><a href="examples.html"><span>Examples</span></a></li>
    <li>
      <form action="search.php" method="get">
        <table cellspacing="0" cellpadding="0" border="0">
          <tr>
            <td><label>&nbsp;<u>S</u>earch&nbsp;for&nbsp;</label></td>
            <td><input type="text" name="query" value="" size="20" accesskey="s"/></td>
          </tr>
        </table>
      </form>
    </li>
  </ul>
</div>
<div class="nav">
<a class="el" href="dir_f60961de8e5edc3b2658ef023e959e45.html">deploy</a>&nbsp;&raquo&nbsp;<a class="el" href="dir_6b4e91e54b7316b376882a6402adbf44.html">include</a>&nbsp;&raquo&nbsp;<a class="el" href="dir_df3a7695d5a9e696f30b948b566829e7.html">axis2-1.6.0</a></div>
<h1>axutil_digest_calc.h File Reference</h1>implements the calculations of H(A1), H(A2), request-digest and response-digest for Axis2 based on rfc2617. <a href="#_details">More...</a>
<p>
<code>#include &lt;axutil_utils_defines.h&gt;</code><br>
<code>#include &lt;<a class="el" href="axutil__env_8h-source.html">axutil_env.h</a>&gt;</code><br>

<p>
<a href="axutil__digest__calc_8h-source.html">Go to the source code of this file.</a><table border="0" cellpadding="0" cellspacing="0">
<tr><td></td></tr>
<tr><td colspan="2"><br><h2>Defines</h2></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="gf5e01ac5808390ef37a5a646a86d8920"></a><!-- doxytag: member="axutil_digest_calc.h::AXIS2_DIGEST_HASH_LEN" ref="gf5e01ac5808390ef37a5a646a86d8920" args="" -->
#define&nbsp;</td><td class="memItemRight" valign="bottom"><b>AXIS2_DIGEST_HASH_LEN</b>&nbsp;&nbsp;&nbsp;16</td></tr>

<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="g0e4e3dc73e837b599a0b3143bed73518"></a><!-- doxytag: member="axutil_digest_calc.h::AXIS2_DIGEST_HASH_HEX_LEN" ref="g0e4e3dc73e837b599a0b3143bed73518" args="" -->
#define&nbsp;</td><td class="memItemRight" valign="bottom"><b>AXIS2_DIGEST_HASH_HEX_LEN</b>&nbsp;&nbsp;&nbsp;32</td></tr>

<tr><td colspan="2"><br><h2>Typedefs</h2></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="g7b12cc8df6ad3991f6f9de2e283e1c70"></a><!-- doxytag: member="axutil_digest_calc.h::axutil_digest_hash_t" ref="g7b12cc8df6ad3991f6f9de2e283e1c70" args="[AXIS2_DIGEST_HASH_LEN]" -->
typedef unsigned char&nbsp;</td><td class="memItemRight" valign="bottom"><b>axutil_digest_hash_t</b> [AXIS2_DIGEST_HASH_LEN]</td></tr>

<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="ge50b8d4b7fce951084e34b414c6edfeb"></a><!-- doxytag: member="axutil_digest_calc.h::axutil_digest_hash_hex_t" ref="ge50b8d4b7fce951084e34b414c6edfeb" args="[AXIS2_DIGEST_HASH_HEX_LEN+1]" -->
typedef unsigned char&nbsp;</td><td class="memItemRight" valign="bottom"><b>axutil_digest_hash_hex_t</b> [AXIS2_DIGEST_HASH_HEX_LEN+1]</td></tr>

<tr><td colspan="2"><br><h2>Functions</h2></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top">AXIS2_EXTERN <br>
axis2_status_t&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__axutil__digest__calc.html#g0d599c73edbb99c815d66eeb05963819">axutil_digest_calc_get_h_a1</a> (const <a class="el" href="structaxutil__env.html">axutil_env_t</a> *env, char *algorithm, char *user_name, char *realm, char *password, char *nonce, char *cnonce, axutil_digest_hash_hex_t session_key)</td></tr>

<tr><td class="memItemLeft" nowrap align="right" valign="top">AXIS2_EXTERN <br>
axis2_status_t&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__axutil__digest__calc.html#gd999fb9474238370afa302882165bd24">axutil_digest_calc_get_response</a> (const <a class="el" href="structaxutil__env.html">axutil_env_t</a> *env, axutil_digest_hash_hex_t h_a1, char *nonce, char *nonce_count, char *cnonce, char *qop, char *method, char *digest_uri, axutil_digest_hash_hex_t h_entity, axutil_digest_hash_hex_t response)</td></tr>

</table>
<hr><a name="_details"></a><h2>Detailed Description</h2>
implements the calculations of H(A1), H(A2), request-digest and response-digest for Axis2 based on rfc2617. 
<p>
<hr size="1"><address style="text-align: right;"><small>Generated on Fri Apr 17 11:49:43 2009 for Axis2/C by&nbsp;
<a href="http://www.doxygen.org/index.html">
<img src="doxygen.png" alt="doxygen" align="middle" border="0"></a> 1.5.3 </small></address>
</body>
</html>


<|start_filename|>build/win32/clean.bat<|end_filename|>
@nmake /nologo clean



<|start_filename|>xdocs/api/html/group__axiom__node.html<|end_filename|>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html><head><meta http-equiv="Content-Type" content="text/html;charset=UTF-8">
<title>Axis2/C: node</title>
<link href="doxygen.css" rel="stylesheet" type="text/css">
<link href="tabs.css" rel="stylesheet" type="text/css">
</head><body>
<!-- Generated by Doxygen 1.5.3 -->
<div class="tabs">
  <ul>
    <li><a href="index.html"><span>Main&nbsp;Page</span></a></li>
    <li><a href="modules.html"><span>Modules</span></a></li>
    <li><a href="annotated.html"><span>Classes</span></a></li>
    <li><a href="files.html"><span>Files</span></a></li>
    <li><a href="dirs.html"><span>Directories</span></a></li>
    <li><a href="pages.html"><span>Related&nbsp;Pages</span></a></li>
    <li><a href="examples.html"><span>Examples</span></a></li>
    <li>
      <form action="search.php" method="get">
        <table cellspacing="0" cellpadding="0" border="0">
          <tr>
            <td><label>&nbsp;<u>S</u>earch&nbsp;for&nbsp;</label></td>
            <td><input type="text" name="query" value="" size="20" accesskey="s"/></td>
          </tr>
        </table>
      </form>
    </li>
  </ul>
</div>
<h1>node<br>
<small>
[<a class="el" href="group__axiom__om.html">AXIOM</a>]</small>
</h1><table border="0" cellpadding="0" cellspacing="0">
<tr><td></td></tr>
<tr><td colspan="2"><br><h2>Enumerations</h2></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top">enum &nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__axiom__node.html#g1d63f86448ef155d8b2baa77ef7ae2ab">axiom_types_t</a> { <br>
&nbsp;&nbsp;<a class="el" href="group__axiom__node.html#gg1d63f86448ef155d8b2baa77ef7ae2ab8095bbfed954c5b83f7cb2b9be88b424">AXIOM_INVALID</a> =  0, 
<a class="el" href="group__axiom__node.html#gg1d63f86448ef155d8b2baa77ef7ae2ab7d1cd7babba0b26f356b3551f3928137">AXIOM_DOCUMENT</a>, 
<a class="el" href="group__axiom__node.html#gg1d63f86448ef155d8b2baa77ef7ae2ab8f302659663027c648d09c5f7639e258">AXIOM_ELEMENT</a>, 
<a class="el" href="group__axiom__node.html#gg1d63f86448ef155d8b2baa77ef7ae2abb7b1deecbd2a868300f609d0fed32b03">AXIOM_DOCTYPE</a>, 
<br>
&nbsp;&nbsp;<a class="el" href="group__axiom__node.html#gg1d63f86448ef155d8b2baa77ef7ae2ab0dc6b4983ac7bf72b34cc272c8b2992d">AXIOM_COMMENT</a>, 
<a class="el" href="group__axiom__node.html#gg1d63f86448ef155d8b2baa77ef7ae2ab58d53d51f1f6b2c316e3566b2c7ba6b2">AXIOM_ATTRIBUTE</a>, 
<a class="el" href="group__axiom__node.html#gg1d63f86448ef155d8b2baa77ef7ae2ab0e3fa55c496c56b36ecb55b60221890d">AXIOM_NAMESPACE</a>, 
<a class="el" href="group__axiom__node.html#gg1d63f86448ef155d8b2baa77ef7ae2ab008f7c2f34ead9d68d3e3f0f6612f547">AXIOM_PROCESSING_INSTRUCTION</a>, 
<br>
&nbsp;&nbsp;<a class="el" href="group__axiom__node.html#gg1d63f86448ef155d8b2baa77ef7ae2ab8a11b652dbc4165765d21d3652b186d5">AXIOM_TEXT</a>, 
<a class="el" href="group__axiom__node.html#gg1d63f86448ef155d8b2baa77ef7ae2ab32efd4c02439b7c8314fcd8a4a4ae417">AXIOM_DATA_SOURCE</a>
<br>
 }</td></tr>

<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">AXIOM types.  <a href="group__axiom__node.html#g1d63f86448ef155d8b2baa77ef7ae2ab">More...</a><br></td></tr>
<tr><td colspan="2"><br><h2>Functions</h2></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top">AXIS2_EXTERN <br>
axiom_node_t *&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__axiom__node.html#g1558b403be5c6339997a7730596337bb">axiom_node_create</a> (const <a class="el" href="structaxutil__env.html">axutil_env_t</a> *env)</td></tr>

<tr><td class="memItemLeft" nowrap align="right" valign="top">AXIS2_EXTERN <br>
axiom_node_t *&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__axiom__node.html#gaf55148ae4b5101b0688900819eb6823">axiom_node_create_from_buffer</a> (const <a class="el" href="structaxutil__env.html">axutil_env_t</a> *env, axis2_char_t *buffer)</td></tr>

<tr><td class="memItemLeft" nowrap align="right" valign="top">AXIS2_EXTERN void&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__axiom__node.html#g934d857b13c36866a6c85078f156bc82">axiom_node_free_tree</a> (axiom_node_t *om_node, const <a class="el" href="structaxutil__env.html">axutil_env_t</a> *env)</td></tr>

<tr><td class="memItemLeft" nowrap align="right" valign="top">AXIS2_EXTERN <br>
axis2_status_t&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__axiom__node.html#gd0406c625e1dbde273a6010cf8bab38c">axiom_node_add_child</a> (axiom_node_t *om_node, const <a class="el" href="structaxutil__env.html">axutil_env_t</a> *env, axiom_node_t *child)</td></tr>

<tr><td class="memItemLeft" nowrap align="right" valign="top">AXIS2_EXTERN <br>
axiom_node_t *&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__axiom__node.html#g8b581d1db9d2a0f80abe5aa3bf6cae2d">axiom_node_detach</a> (axiom_node_t *om_node, const <a class="el" href="structaxutil__env.html">axutil_env_t</a> *env)</td></tr>

<tr><td class="memItemLeft" nowrap align="right" valign="top">AXIS2_EXTERN <br>
axis2_status_t&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__axiom__node.html#gd3f52c5c7c9886cc3dc3483c26919e72">axiom_node_insert_sibling_after</a> (axiom_node_t *om_node, const <a class="el" href="structaxutil__env.html">axutil_env_t</a> *env, axiom_node_t *node_to_insert)</td></tr>

<tr><td class="memItemLeft" nowrap align="right" valign="top">AXIS2_EXTERN <br>
axis2_status_t&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__axiom__node.html#ged3250c790969964a948b0469207a735">axiom_node_insert_sibling_before</a> (axiom_node_t *om_node, const <a class="el" href="structaxutil__env.html">axutil_env_t</a> *env, axiom_node_t *node_to_insert)</td></tr>

<tr><td class="memItemLeft" nowrap align="right" valign="top">AXIS2_EXTERN <br>
axis2_status_t&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__axiom__node.html#g1936a8e535927d9726d804092ad9d4d3">axiom_node_serialize</a> (axiom_node_t *om_node, const <a class="el" href="structaxutil__env.html">axutil_env_t</a> *env, struct axiom_output *om_output)</td></tr>

<tr><td class="memItemLeft" nowrap align="right" valign="top">AXIS2_EXTERN <br>
axiom_node_t *&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__axiom__node.html#g95cc9c4355bfab75e03ad61014b72075">axiom_node_get_parent</a> (axiom_node_t *om_node, const <a class="el" href="structaxutil__env.html">axutil_env_t</a> *env)</td></tr>

<tr><td class="memItemLeft" nowrap align="right" valign="top">AXIS2_EXTERN <br>
axiom_node_t *&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__axiom__node.html#gfc7806095f1e72667a49eab5945b66e3">axiom_node_get_first_child</a> (axiom_node_t *om_node, const <a class="el" href="structaxutil__env.html">axutil_env_t</a> *env)</td></tr>

<tr><td class="memItemLeft" nowrap align="right" valign="top">AXIS2_EXTERN <br>
axiom_node_t *&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__axiom__node.html#g2c569263c409668ff1b653aeb7712bb5">axiom_node_get_first_element</a> (axiom_node_t *om_node, const <a class="el" href="structaxutil__env.html">axutil_env_t</a> *env)</td></tr>

<tr><td class="memItemLeft" nowrap align="right" valign="top">AXIS2_EXTERN <br>
axiom_node_t *&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__axiom__node.html#g9f55bfff8ac1c89995dfc93d47ddcd0a">axiom_node_get_last_child</a> (axiom_node_t *om_node, const <a class="el" href="structaxutil__env.html">axutil_env_t</a> *env)</td></tr>

<tr><td class="memItemLeft" nowrap align="right" valign="top">AXIS2_EXTERN <br>
axiom_node_t *&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__axiom__node.html#g39a92d131beb6295b849d9853ee89db7">axiom_node_get_previous_sibling</a> (axiom_node_t *om_node, const <a class="el" href="structaxutil__env.html">axutil_env_t</a> *env)</td></tr>

<tr><td class="memItemLeft" nowrap align="right" valign="top">AXIS2_EXTERN <br>
axiom_node_t *&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__axiom__node.html#g6d91d78cb733d34724901e75887e85c9">axiom_node_get_next_sibling</a> (axiom_node_t *om_node, const <a class="el" href="structaxutil__env.html">axutil_env_t</a> *env)</td></tr>

<tr><td class="memItemLeft" nowrap align="right" valign="top">AXIS2_EXTERN <br>
<a class="el" href="group__axiom__node.html#g1d63f86448ef155d8b2baa77ef7ae2ab">axiom_types_t</a>&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__axiom__node.html#g5f0287bd7a7487da62528717787b69b4">axiom_node_get_node_type</a> (axiom_node_t *om_node, const <a class="el" href="structaxutil__env.html">axutil_env_t</a> *env)</td></tr>

<tr><td class="memItemLeft" nowrap align="right" valign="top">AXIS2_EXTERN void *&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__axiom__node.html#geb488e8c836956940ea4c01b92a0c421">axiom_node_get_data_element</a> (axiom_node_t *om_node, const <a class="el" href="structaxutil__env.html">axutil_env_t</a> *env)</td></tr>

<tr><td class="memItemLeft" nowrap align="right" valign="top">AXIS2_EXTERN axis2_bool_t&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__axiom__node.html#g94ec253a7993a968b8a2e5fc80c7f5f3">axiom_node_is_complete</a> (axiom_node_t *om_node, const <a class="el" href="structaxutil__env.html">axutil_env_t</a> *env)</td></tr>

<tr><td class="memItemLeft" nowrap align="right" valign="top">AXIS2_EXTERN struct <br>
axiom_document *&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__axiom__node.html#g2bdaabafdd623955d2837ad00e536603">axiom_node_get_document</a> (axiom_node_t *om_node, const <a class="el" href="structaxutil__env.html">axutil_env_t</a> *env)</td></tr>

<tr><td class="memItemLeft" nowrap align="right" valign="top">AXIS2_EXTERN <br>
axis2_char_t *&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__axiom__node.html#g0cf9fdca65f2b7c5ab0e485cf21bc3ba">axiom_node_to_string</a> (axiom_node_t *om_node, const <a class="el" href="structaxutil__env.html">axutil_env_t</a> *env)</td></tr>

<tr><td class="memItemLeft" nowrap align="right" valign="top">AXIS2_EXTERN <br>
axis2_status_t&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__axiom__node.html#ga5e126b3d2462d4569e0d4b0a9bcd80e">axiom_node_serialize_sub_tree</a> (axiom_node_t *om_node, const <a class="el" href="structaxutil__env.html">axutil_env_t</a> *env, struct axiom_output *om_output)</td></tr>

<tr><td class="memItemLeft" nowrap align="right" valign="top">AXIS2_EXTERN <br>
axis2_char_t *&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__axiom__node.html#g7fa2bbf70033a1eb6943a9b2c1c4de59">axiom_node_sub_tree_to_string</a> (axiom_node_t *om_node, const <a class="el" href="structaxutil__env.html">axutil_env_t</a> *env)</td></tr>

<tr><td class="memItemLeft" nowrap align="right" valign="top">AXIS2_EXTERN <br>
axis2_char_t *&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__axiom__node.html#g9f6d265d8c276d0925aef199396cda0a">axiom_node_to_string_non_optimized</a> (axiom_node_t *om_node, const <a class="el" href="structaxutil__env.html">axutil_env_t</a> *env)</td></tr>

</table>
<hr><h2>Enumeration Type Documentation</h2>
<a class="anchor" name="g1d63f86448ef155d8b2baa77ef7ae2ab"></a><!-- doxytag: member="axiom_node.h::axiom_types_t" ref="g1d63f86448ef155d8b2baa77ef7ae2ab" args="" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">enum <a class="el" href="group__axiom__node.html#g1d63f86448ef155d8b2baa77ef7ae2ab">axiom_types_t</a>          </td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
AXIOM types. 
<p>
<dl compact><dt><b>Enumerator: </b></dt><dd>
<table border="0" cellspacing="2" cellpadding="0">
<tr><td valign="top"><em><a class="anchor" name="gg1d63f86448ef155d8b2baa77ef7ae2ab8095bbfed954c5b83f7cb2b9be88b424"></a><!-- doxytag: member="AXIOM_INVALID" ref="gg1d63f86448ef155d8b2baa77ef7ae2ab8095bbfed954c5b83f7cb2b9be88b424" args="" -->AXIOM_INVALID</em>&nbsp;</td><td>
Invalid node type </td></tr>
<tr><td valign="top"><em><a class="anchor" name="gg1d63f86448ef155d8b2baa77ef7ae2ab7d1cd7babba0b26f356b3551f3928137"></a><!-- doxytag: member="AXIOM_DOCUMENT" ref="gg1d63f86448ef155d8b2baa77ef7ae2ab7d1cd7babba0b26f356b3551f3928137" args="" -->AXIOM_DOCUMENT</em>&nbsp;</td><td>
AXIOM document type </td></tr>
<tr><td valign="top"><em><a class="anchor" name="gg1d63f86448ef155d8b2baa77ef7ae2ab8f302659663027c648d09c5f7639e258"></a><!-- doxytag: member="AXIOM_ELEMENT" ref="gg1d63f86448ef155d8b2baa77ef7ae2ab8f302659663027c648d09c5f7639e258" args="" -->AXIOM_ELEMENT</em>&nbsp;</td><td>
AXIOM element type </td></tr>
<tr><td valign="top"><em><a class="anchor" name="gg1d63f86448ef155d8b2baa77ef7ae2abb7b1deecbd2a868300f609d0fed32b03"></a><!-- doxytag: member="AXIOM_DOCTYPE" ref="gg1d63f86448ef155d8b2baa77ef7ae2abb7b1deecbd2a868300f609d0fed32b03" args="" -->AXIOM_DOCTYPE</em>&nbsp;</td><td>
AXIOM doctype type </td></tr>
<tr><td valign="top"><em><a class="anchor" name="gg1d63f86448ef155d8b2baa77ef7ae2ab0dc6b4983ac7bf72b34cc272c8b2992d"></a><!-- doxytag: member="AXIOM_COMMENT" ref="gg1d63f86448ef155d8b2baa77ef7ae2ab0dc6b4983ac7bf72b34cc272c8b2992d" args="" -->AXIOM_COMMENT</em>&nbsp;</td><td>
AXIOM comment type </td></tr>
<tr><td valign="top"><em><a class="anchor" name="gg1d63f86448ef155d8b2baa77ef7ae2ab58d53d51f1f6b2c316e3566b2c7ba6b2"></a><!-- doxytag: member="AXIOM_ATTRIBUTE" ref="gg1d63f86448ef155d8b2baa77ef7ae2ab58d53d51f1f6b2c316e3566b2c7ba6b2" args="" -->AXIOM_ATTRIBUTE</em>&nbsp;</td><td>
AXIOM attribute type </td></tr>
<tr><td valign="top"><em><a class="anchor" name="gg1d63f86448ef155d8b2baa77ef7ae2ab0e3fa55c496c56b36ecb55b60221890d"></a><!-- doxytag: member="AXIOM_NAMESPACE" ref="gg1d63f86448ef155d8b2baa77ef7ae2ab0e3fa55c496c56b36ecb55b60221890d" args="" -->AXIOM_NAMESPACE</em>&nbsp;</td><td>
AXIOM namespace type </td></tr>
<tr><td valign="top"><em><a class="anchor" name="gg1d63f86448ef155d8b2baa77ef7ae2ab008f7c2f34ead9d68d3e3f0f6612f547"></a><!-- doxytag: member="AXIOM_PROCESSING_INSTRUCTION" ref="gg1d63f86448ef155d8b2baa77ef7ae2ab008f7c2f34ead9d68d3e3f0f6612f547" args="" -->AXIOM_PROCESSING_INSTRUCTION</em>&nbsp;</td><td>
AXIOM processing instruction type </td></tr>
<tr><td valign="top"><em><a class="anchor" name="gg1d63f86448ef155d8b2baa77ef7ae2ab8a11b652dbc4165765d21d3652b186d5"></a><!-- doxytag: member="AXIOM_TEXT" ref="gg1d63f86448ef155d8b2baa77ef7ae2ab8a11b652dbc4165765d21d3652b186d5" args="" -->AXIOM_TEXT</em>&nbsp;</td><td>
AXIOM text type </td></tr>
<tr><td valign="top"><em><a class="anchor" name="gg1d63f86448ef155d8b2baa77ef7ae2ab32efd4c02439b7c8314fcd8a4a4ae417"></a><!-- doxytag: member="AXIOM_DATA_SOURCE" ref="gg1d63f86448ef155d8b2baa77ef7ae2ab32efd4c02439b7c8314fcd8a4a4ae417" args="" -->AXIOM_DATA_SOURCE</em>&nbsp;</td><td>
AXIOM data source, represent a serialized XML fragment with a stream </td></tr>
</table>
</dl>

</div>
</div><p>
<hr><h2>Function Documentation</h2>
<a class="anchor" name="gd0406c625e1dbde273a6010cf8bab38c"></a><!-- doxytag: member="axiom_node.h::axiom_node_add_child" ref="gd0406c625e1dbde273a6010cf8bab38c" args="(axiom_node_t *om_node, const axutil_env_t *env, axiom_node_t *child)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">AXIS2_EXTERN axis2_status_t axiom_node_add_child           </td>
          <td>(</td>
          <td class="paramtype">axiom_node_t *&nbsp;</td>
          <td class="paramname"> <em>om_node</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const <a class="el" href="structaxutil__env.html">axutil_env_t</a> *&nbsp;</td>
          <td class="paramname"> <em>env</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">axiom_node_t *&nbsp;</td>
          <td class="paramname"> <em>child</em></td><td>&nbsp;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td><td width="100%"></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
Adds given node as child to parent. child should not have a parent if child has a parent it will be detached from existing parent <dl compact><dt><b>Parameters:</b></dt><dd>
  <table border="0" cellspacing="2" cellpadding="0">
    <tr><td valign="top"></td><td valign="top"><em>om_node</em>&nbsp;</td><td>parent node. cannot be NULL. </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>env</em>&nbsp;</td><td>Environment. MUST NOT be NULL, . </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>child</em>&nbsp;</td><td>child node. </td></tr>
  </table>
</dl>
<dl class="return" compact><dt><b>Returns:</b></dt><dd>satus of the op. AXIS2_SUCCESS on success else AXIS2_FAILURE </dd></dl>

</div>
</div><p>
<a class="anchor" name="g1558b403be5c6339997a7730596337bb"></a><!-- doxytag: member="axiom_node.h::axiom_node_create" ref="g1558b403be5c6339997a7730596337bb" args="(const axutil_env_t *env)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">AXIS2_EXTERN axiom_node_t* axiom_node_create           </td>
          <td>(</td>
          <td class="paramtype">const <a class="el" href="structaxutil__env.html">axutil_env_t</a> *&nbsp;</td>
          <td class="paramname"> <em>env</em>          </td>
          <td>&nbsp;)&nbsp;</td>
          <td width="100%"></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
Creates a node struct. <dl compact><dt><b>Parameters:</b></dt><dd>
  <table border="0" cellspacing="2" cellpadding="0">
    <tr><td valign="top"></td><td valign="top"><em>env</em>&nbsp;</td><td>Environment. MUST NOT be NULL, . </td></tr>
  </table>
</dl>
<dl class="return" compact><dt><b>Returns:</b></dt><dd>a pointer to newly created node struct. NULL on error. </dd></dl>

</div>
</div><p>
<a class="anchor" name="gaf55148ae4b5101b0688900819eb6823"></a><!-- doxytag: member="axiom_node.h::axiom_node_create_from_buffer" ref="gaf55148ae4b5101b0688900819eb6823" args="(const axutil_env_t *env, axis2_char_t *buffer)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">AXIS2_EXTERN axiom_node_t* axiom_node_create_from_buffer           </td>
          <td>(</td>
          <td class="paramtype">const <a class="el" href="structaxutil__env.html">axutil_env_t</a> *&nbsp;</td>
          <td class="paramname"> <em>env</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">axis2_char_t *&nbsp;</td>
          <td class="paramname"> <em>buffer</em></td><td>&nbsp;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td><td width="100%"></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
Creates a node struct from a character buffer. <dl compact><dt><b>Parameters:</b></dt><dd>
  <table border="0" cellspacing="2" cellpadding="0">
    <tr><td valign="top"></td><td valign="top"><em>env</em>&nbsp;</td><td>Environment. MUST NOT be NULL, . </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>buffer</em>&nbsp;</td><td>string. buffer to make the node </td></tr>
  </table>
</dl>
<dl class="return" compact><dt><b>Returns:</b></dt><dd>a pointer to newly created node struct. NULL on error. </dd></dl>

</div>
</div><p>
<a class="anchor" name="g8b581d1db9d2a0f80abe5aa3bf6cae2d"></a><!-- doxytag: member="axiom_node.h::axiom_node_detach" ref="g8b581d1db9d2a0f80abe5aa3bf6cae2d" args="(axiom_node_t *om_node, const axutil_env_t *env)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">AXIS2_EXTERN axiom_node_t* axiom_node_detach           </td>
          <td>(</td>
          <td class="paramtype">axiom_node_t *&nbsp;</td>
          <td class="paramname"> <em>om_node</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const <a class="el" href="structaxutil__env.html">axutil_env_t</a> *&nbsp;</td>
          <td class="paramname"> <em>env</em></td><td>&nbsp;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td><td width="100%"></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
Detaches given node from the parent and reset the links <dl compact><dt><b>Parameters:</b></dt><dd>
  <table border="0" cellspacing="2" cellpadding="0">
    <tr><td valign="top"></td><td valign="top"><em>om_node</em>&nbsp;</td><td>node to be detached, cannot be NULL. </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>env</em>&nbsp;</td><td>Environment. MUST NOT be NULL, . </td></tr>
  </table>
</dl>
<dl class="return" compact><dt><b>Returns:</b></dt><dd>a pointer to detached node,returns NULL on error with error code set to environment's error struct </dd></dl>

</div>
</div><p>
<a class="anchor" name="g934d857b13c36866a6c85078f156bc82"></a><!-- doxytag: member="axiom_node.h::axiom_node_free_tree" ref="g934d857b13c36866a6c85078f156bc82" args="(axiom_node_t *om_node, const axutil_env_t *env)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">AXIS2_EXTERN void axiom_node_free_tree           </td>
          <td>(</td>
          <td class="paramtype">axiom_node_t *&nbsp;</td>
          <td class="paramname"> <em>om_node</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const <a class="el" href="structaxutil__env.html">axutil_env_t</a> *&nbsp;</td>
          <td class="paramname"> <em>env</em></td><td>&nbsp;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td><td width="100%"></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
Frees an om node and all of its children. Please note that the attached data_element will also be freed along with the node. If the node is still attached to a parent, it will be detached first, then freed. <dl compact><dt><b>Parameters:</b></dt><dd>
  <table border="0" cellspacing="2" cellpadding="0">
    <tr><td valign="top"></td><td valign="top"><em>om_node</em>&nbsp;</td><td>node to be freed. </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>env</em>&nbsp;</td><td>Environment. MUST NOT be NULL, . </td></tr>
  </table>
</dl>
<dl class="return" compact><dt><b>Returns:</b></dt><dd>satus of the op. AXIS2_SUCCESS on success else AXIS2_FAILURE </dd></dl>

</div>
</div><p>
<a class="anchor" name="geb488e8c836956940ea4c01b92a0c421"></a><!-- doxytag: member="axiom_node.h::axiom_node_get_data_element" ref="geb488e8c836956940ea4c01b92a0c421" args="(axiom_node_t *om_node, const axutil_env_t *env)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">AXIS2_EXTERN void* axiom_node_get_data_element           </td>
          <td>(</td>
          <td class="paramtype">axiom_node_t *&nbsp;</td>
          <td class="paramname"> <em>om_node</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const <a class="el" href="structaxutil__env.html">axutil_env_t</a> *&nbsp;</td>
          <td class="paramname"> <em>env</em></td><td>&nbsp;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td><td width="100%"></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
get the struct contained in the node IF the node is on type AXIOM_ELEMENT , this method returns a pointer to axiom_element_t struct contained <dl compact><dt><b>Parameters:</b></dt><dd>
  <table border="0" cellspacing="2" cellpadding="0">
    <tr><td valign="top"></td><td valign="top"><em>om_node</em>&nbsp;</td><td>node </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>env</em>&nbsp;</td><td>environment, MUST NOT be NULL. </td></tr>
  </table>
</dl>
<dl class="return" compact><dt><b>Returns:</b></dt><dd>pointer to struct contained in the node returns NULL if no struct is contained </dd></dl>

</div>
</div><p>
<a class="anchor" name="g2bdaabafdd623955d2837ad00e536603"></a><!-- doxytag: member="axiom_node.h::axiom_node_get_document" ref="g2bdaabafdd623955d2837ad00e536603" args="(axiom_node_t *om_node, const axutil_env_t *env)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">AXIS2_EXTERN struct axiom_document* axiom_node_get_document           </td>
          <td>(</td>
          <td class="paramtype">axiom_node_t *&nbsp;</td>
          <td class="paramname"> <em>om_node</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const <a class="el" href="structaxutil__env.html">axutil_env_t</a> *&nbsp;</td>
          <td class="paramname"> <em>env</em></td><td>&nbsp;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td><td width="100%"><code> [read]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
returns the associated document, only valid if built using builder and for a node of type AXIOM_ELEMENT returns null if no document is available <dl compact><dt><b>Parameters:</b></dt><dd>
  <table border="0" cellspacing="2" cellpadding="0">
    <tr><td valign="top"></td><td valign="top"><em>om_node</em>&nbsp;</td><td></td></tr>
    <tr><td valign="top"></td><td valign="top"><em>env</em>&nbsp;</td><td>environment, MUST NOT be NULL.</td></tr>
  </table>
</dl>
<dl class="return" compact><dt><b>Returns:</b></dt><dd>the OM document of the node </dd></dl>

</div>
</div><p>
<a class="anchor" name="gfc7806095f1e72667a49eab5945b66e3"></a><!-- doxytag: member="axiom_node.h::axiom_node_get_first_child" ref="gfc7806095f1e72667a49eab5945b66e3" args="(axiom_node_t *om_node, const axutil_env_t *env)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">AXIS2_EXTERN axiom_node_t* axiom_node_get_first_child           </td>
          <td>(</td>
          <td class="paramtype">axiom_node_t *&nbsp;</td>
          <td class="paramname"> <em>om_node</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const <a class="el" href="structaxutil__env.html">axutil_env_t</a> *&nbsp;</td>
          <td class="paramname"> <em>env</em></td><td>&nbsp;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td><td width="100%"></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
get the first child of om_node <dl compact><dt><b>Parameters:</b></dt><dd>
  <table border="0" cellspacing="2" cellpadding="0">
    <tr><td valign="top"></td><td valign="top"><em>om_node</em>&nbsp;</td><td>node </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>env</em>&nbsp;</td><td>environment must not be null. </td></tr>
  </table>
</dl>
<dl class="return" compact><dt><b>Returns:</b></dt><dd>pointer to first child node , NULL is returned on error with error code set in environments error </dd></dl>

</div>
</div><p>
<a class="anchor" name="g2c569263c409668ff1b653aeb7712bb5"></a><!-- doxytag: member="axiom_node.h::axiom_node_get_first_element" ref="g2c569263c409668ff1b653aeb7712bb5" args="(axiom_node_t *om_node, const axutil_env_t *env)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">AXIS2_EXTERN axiom_node_t* axiom_node_get_first_element           </td>
          <td>(</td>
          <td class="paramtype">axiom_node_t *&nbsp;</td>
          <td class="paramname"> <em>om_node</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const <a class="el" href="structaxutil__env.html">axutil_env_t</a> *&nbsp;</td>
          <td class="paramname"> <em>env</em></td><td>&nbsp;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td><td width="100%"></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
get the first AXIOM_ELEMENT in om_node <dl compact><dt><b>Parameters:</b></dt><dd>
  <table border="0" cellspacing="2" cellpadding="0">
    <tr><td valign="top"></td><td valign="top"><em>om_node</em>&nbsp;</td><td>node </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>env</em>&nbsp;</td><td>environment must not be null </td></tr>
  </table>
</dl>
<dl class="return" compact><dt><b>Returns:</b></dt><dd>pointer to first child om element, NULL is returned on error with error code set in environments error. </dd></dl>

</div>
</div><p>
<a class="anchor" name="g9f55bfff8ac1c89995dfc93d47ddcd0a"></a><!-- doxytag: member="axiom_node.h::axiom_node_get_last_child" ref="g9f55bfff8ac1c89995dfc93d47ddcd0a" args="(axiom_node_t *om_node, const axutil_env_t *env)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">AXIS2_EXTERN axiom_node_t* axiom_node_get_last_child           </td>
          <td>(</td>
          <td class="paramtype">axiom_node_t *&nbsp;</td>
          <td class="paramname"> <em>om_node</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const <a class="el" href="structaxutil__env.html">axutil_env_t</a> *&nbsp;</td>
          <td class="paramname"> <em>env</em></td><td>&nbsp;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td><td width="100%"></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
get the last child <dl compact><dt><b>Parameters:</b></dt><dd>
  <table border="0" cellspacing="2" cellpadding="0">
    <tr><td valign="top"></td><td valign="top"><em>om_node</em>&nbsp;</td><td>node </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>env</em>&nbsp;</td><td>environment, MUST NOT be NULL </td></tr>
  </table>
</dl>
<dl class="return" compact><dt><b>Returns:</b></dt><dd>pointer to last child of this node , return NULL on error. </dd></dl>

</div>
</div><p>
<a class="anchor" name="g6d91d78cb733d34724901e75887e85c9"></a><!-- doxytag: member="axiom_node.h::axiom_node_get_next_sibling" ref="g6d91d78cb733d34724901e75887e85c9" args="(axiom_node_t *om_node, const axutil_env_t *env)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">AXIS2_EXTERN axiom_node_t* axiom_node_get_next_sibling           </td>
          <td>(</td>
          <td class="paramtype">axiom_node_t *&nbsp;</td>
          <td class="paramname"> <em>om_node</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const <a class="el" href="structaxutil__env.html">axutil_env_t</a> *&nbsp;</td>
          <td class="paramname"> <em>env</em></td><td>&nbsp;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td><td width="100%"></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
get next sibling <dl compact><dt><b>Parameters:</b></dt><dd>
  <table border="0" cellspacing="2" cellpadding="0">
    <tr><td valign="top"></td><td valign="top"><em>om_node</em>&nbsp;</td><td>om_node struct </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>env</em>&nbsp;</td><td>environment, MUST NOT be NULL. </td></tr>
  </table>
</dl>
<dl class="return" compact><dt><b>Returns:</b></dt><dd>next sibling of this node. </dd></dl>

</div>
</div><p>
<a class="anchor" name="g5f0287bd7a7487da62528717787b69b4"></a><!-- doxytag: member="axiom_node.h::axiom_node_get_node_type" ref="g5f0287bd7a7487da62528717787b69b4" args="(axiom_node_t *om_node, const axutil_env_t *env)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">AXIS2_EXTERN <a class="el" href="group__axiom__node.html#g1d63f86448ef155d8b2baa77ef7ae2ab">axiom_types_t</a> axiom_node_get_node_type           </td>
          <td>(</td>
          <td class="paramtype">axiom_node_t *&nbsp;</td>
          <td class="paramname"> <em>om_node</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const <a class="el" href="structaxutil__env.html">axutil_env_t</a> *&nbsp;</td>
          <td class="paramname"> <em>env</em></td><td>&nbsp;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td><td width="100%"></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
get the node type of this element Node type can be one of AXIOM_ELEMENT, AXIOM_COMMENT, AXIOM_TEXT AXIOM_DOCTYPE, AXIOM_PROCESSING_INSTRUCTION <dl compact><dt><b>Parameters:</b></dt><dd>
  <table border="0" cellspacing="2" cellpadding="0">
    <tr><td valign="top"></td><td valign="top"><em>om_node</em>&nbsp;</td><td>node of which node type is required </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>env</em>&nbsp;</td><td>environment </td></tr>
  </table>
</dl>
<dl class="return" compact><dt><b>Returns:</b></dt><dd>node type </dd></dl>

</div>
</div><p>
<a class="anchor" name="g95cc9c4355bfab75e03ad61014b72075"></a><!-- doxytag: member="axiom_node.h::axiom_node_get_parent" ref="g95cc9c4355bfab75e03ad61014b72075" args="(axiom_node_t *om_node, const axutil_env_t *env)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">AXIS2_EXTERN axiom_node_t* axiom_node_get_parent           </td>
          <td>(</td>
          <td class="paramtype">axiom_node_t *&nbsp;</td>
          <td class="paramname"> <em>om_node</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const <a class="el" href="structaxutil__env.html">axutil_env_t</a> *&nbsp;</td>
          <td class="paramname"> <em>env</em></td><td>&nbsp;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td><td width="100%"></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
get parent of om_node  node <dl compact><dt><b>Parameters:</b></dt><dd>
  <table border="0" cellspacing="2" cellpadding="0">
    <tr><td valign="top"></td><td valign="top"><em>env</em>&nbsp;</td><td>environment </td></tr>
  </table>
</dl>
<dl class="return" compact><dt><b>Returns:</b></dt><dd>pointer to parent node of om_node, return NULL if no parent exists or when an error occured. </dd></dl>

</div>
</div><p>
<a class="anchor" name="g39a92d131beb6295b849d9853ee89db7"></a><!-- doxytag: member="axiom_node.h::axiom_node_get_previous_sibling" ref="g39a92d131beb6295b849d9853ee89db7" args="(axiom_node_t *om_node, const axutil_env_t *env)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">AXIS2_EXTERN axiom_node_t* axiom_node_get_previous_sibling           </td>
          <td>(</td>
          <td class="paramtype">axiom_node_t *&nbsp;</td>
          <td class="paramname"> <em>om_node</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const <a class="el" href="structaxutil__env.html">axutil_env_t</a> *&nbsp;</td>
          <td class="paramname"> <em>env</em></td><td>&nbsp;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td><td width="100%"></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
get the previous sibling <dl compact><dt><b>Parameters:</b></dt><dd>
  <table border="0" cellspacing="2" cellpadding="0">
    <tr><td valign="top"></td><td valign="top"><em>om_node</em>&nbsp;</td><td>om_node struct </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>env</em>&nbsp;</td><td>environment , must node be null </td></tr>
  </table>
</dl>
<dl class="return" compact><dt><b>Returns:</b></dt><dd>a pointer to previous sibling , NULL if a previous sibling does not exits (happens when this node is the first child of a node ) </dd></dl>

</div>
</div><p>
<a class="anchor" name="gd3f52c5c7c9886cc3dc3483c26919e72"></a><!-- doxytag: member="axiom_node.h::axiom_node_insert_sibling_after" ref="gd3f52c5c7c9886cc3dc3483c26919e72" args="(axiom_node_t *om_node, const axutil_env_t *env, axiom_node_t *node_to_insert)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">AXIS2_EXTERN axis2_status_t axiom_node_insert_sibling_after           </td>
          <td>(</td>
          <td class="paramtype">axiom_node_t *&nbsp;</td>
          <td class="paramname"> <em>om_node</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const <a class="el" href="structaxutil__env.html">axutil_env_t</a> *&nbsp;</td>
          <td class="paramname"> <em>env</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">axiom_node_t *&nbsp;</td>
          <td class="paramname"> <em>node_to_insert</em></td><td>&nbsp;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td><td width="100%"></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
Inserts a sibling node after the given node <dl compact><dt><b>Parameters:</b></dt><dd>
  <table border="0" cellspacing="2" cellpadding="0">
    <tr><td valign="top"></td><td valign="top"><em>om_node</em>&nbsp;</td><td>node to whom the sibling to be inserted. , cannot be NULL. </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>env</em>&nbsp;</td><td>Environment. MUST NOT be NULL, . </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>node_to_insert</em>&nbsp;</td><td>the node to be inserted. , cannot be NULL. </td></tr>
  </table>
</dl>
<dl class="return" compact><dt><b>Returns:</b></dt><dd>satus of the op. AXIS2_SUCCESS on success else AXIS2_FAILURE </dd></dl>

</div>
</div><p>
<a class="anchor" name="ged3250c790969964a948b0469207a735"></a><!-- doxytag: member="axiom_node.h::axiom_node_insert_sibling_before" ref="ged3250c790969964a948b0469207a735" args="(axiom_node_t *om_node, const axutil_env_t *env, axiom_node_t *node_to_insert)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">AXIS2_EXTERN axis2_status_t axiom_node_insert_sibling_before           </td>
          <td>(</td>
          <td class="paramtype">axiom_node_t *&nbsp;</td>
          <td class="paramname"> <em>om_node</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const <a class="el" href="structaxutil__env.html">axutil_env_t</a> *&nbsp;</td>
          <td class="paramname"> <em>env</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">axiom_node_t *&nbsp;</td>
          <td class="paramname"> <em>node_to_insert</em></td><td>&nbsp;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td><td width="100%"></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
Inserts a sibling node before the given current node <dl compact><dt><b>Parameters:</b></dt><dd>
  <table border="0" cellspacing="2" cellpadding="0">
    <tr><td valign="top"></td><td valign="top"><em>om_node</em>&nbsp;</td><td>node to whom the sibling to be inserted. , cannot be NULL. </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>env</em>&nbsp;</td><td>Environment. MUST NOT be NULL, . </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>node_to_insert</em>&nbsp;</td><td>the node to be inserted. , cannot be NULL. </td></tr>
  </table>
</dl>
<dl class="return" compact><dt><b>Returns:</b></dt><dd>satus of the op. AXIS2_SUCCESS on success else AXIS2_FAILURE </dd></dl>

</div>
</div><p>
<a class="anchor" name="g94ec253a7993a968b8a2e5fc80c7f5f3"></a><!-- doxytag: member="axiom_node.h::axiom_node_is_complete" ref="g94ec253a7993a968b8a2e5fc80c7f5f3" args="(axiom_node_t *om_node, const axutil_env_t *env)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">AXIS2_EXTERN axis2_bool_t axiom_node_is_complete           </td>
          <td>(</td>
          <td class="paramtype">axiom_node_t *&nbsp;</td>
          <td class="paramname"> <em>om_node</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const <a class="el" href="structaxutil__env.html">axutil_env_t</a> *&nbsp;</td>
          <td class="paramname"> <em>env</em></td><td>&nbsp;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td><td width="100%"></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
Indicates whether parser has parsed this information item completely or not <dl compact><dt><b>Parameters:</b></dt><dd>
  <table border="0" cellspacing="2" cellpadding="0">
    <tr><td valign="top"></td><td valign="top"><em>om_node</em>&nbsp;</td><td>om_node struct </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>env</em>&nbsp;</td><td>environment, MUST NOT be NULL. </td></tr>
  </table>
</dl>
<dl class="return" compact><dt><b>Returns:</b></dt><dd>AXIS2_TRUE if node is completly build, AXIS2_FALSE if node is not completed </dd></dl>

</div>
</div><p>
<a class="anchor" name="g1936a8e535927d9726d804092ad9d4d3"></a><!-- doxytag: member="axiom_node.h::axiom_node_serialize" ref="g1936a8e535927d9726d804092ad9d4d3" args="(axiom_node_t *om_node, const axutil_env_t *env, struct axiom_output *om_output)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">AXIS2_EXTERN axis2_status_t axiom_node_serialize           </td>
          <td>(</td>
          <td class="paramtype">axiom_node_t *&nbsp;</td>
          <td class="paramname"> <em>om_node</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const <a class="el" href="structaxutil__env.html">axutil_env_t</a> *&nbsp;</td>
          <td class="paramname"> <em>env</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">struct axiom_output *&nbsp;</td>
          <td class="paramname"> <em>om_output</em></td><td>&nbsp;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td><td width="100%"></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
Serializes the given node. This op makes the node go through its children and serialize them in order. <dl compact><dt><b>Parameters:</b></dt><dd>
  <table border="0" cellspacing="2" cellpadding="0">
    <tr><td valign="top"></td><td valign="top"><em>om_node</em>&nbsp;</td><td>node to be serialized. cannot be NULL. </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>env</em>&nbsp;</td><td>Environment .MUST NOT be NULL. </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>om_output</em>&nbsp;</td><td>AXIOM output handler to be used in serializing </td></tr>
  </table>
</dl>
<dl class="return" compact><dt><b>Returns:</b></dt><dd>satus of the op. AXIS2_SUCCESS on success else AXIS2_FAILURE </dd></dl>

</div>
</div><p>
<a class="anchor" name="ga5e126b3d2462d4569e0d4b0a9bcd80e"></a><!-- doxytag: member="axiom_node.h::axiom_node_serialize_sub_tree" ref="ga5e126b3d2462d4569e0d4b0a9bcd80e" args="(axiom_node_t *om_node, const axutil_env_t *env, struct axiom_output *om_output)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">AXIS2_EXTERN axis2_status_t axiom_node_serialize_sub_tree           </td>
          <td>(</td>
          <td class="paramtype">axiom_node_t *&nbsp;</td>
          <td class="paramname"> <em>om_node</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const <a class="el" href="structaxutil__env.html">axutil_env_t</a> *&nbsp;</td>
          <td class="paramname"> <em>env</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">struct axiom_output *&nbsp;</td>
          <td class="paramname"> <em>om_output</em></td><td>&nbsp;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td><td width="100%"></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
<dl compact><dt><b>Parameters:</b></dt><dd>
  <table border="0" cellspacing="2" cellpadding="0">
    <tr><td valign="top"></td><td valign="top"><em>om_node</em>&nbsp;</td><td>pointer to the OM node struct </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>env</em>&nbsp;</td><td>environment, MUST NOT be NULL </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>om_output</em>&nbsp;</td><td>the serialized output will be placed here</td></tr>
  </table>
</dl>
<dl class="return" compact><dt><b>Returns:</b></dt><dd>AXIS2_SUCCESS on success else AXIS2_FAILURE </dd></dl>

</div>
</div><p>
<a class="anchor" name="g7fa2bbf70033a1eb6943a9b2c1c4de59"></a><!-- doxytag: member="axiom_node.h::axiom_node_sub_tree_to_string" ref="g7fa2bbf70033a1eb6943a9b2c1c4de59" args="(axiom_node_t *om_node, const axutil_env_t *env)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">AXIS2_EXTERN axis2_char_t* axiom_node_sub_tree_to_string           </td>
          <td>(</td>
          <td class="paramtype">axiom_node_t *&nbsp;</td>
          <td class="paramname"> <em>om_node</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const <a class="el" href="structaxutil__env.html">axutil_env_t</a> *&nbsp;</td>
          <td class="paramname"> <em>env</em></td><td>&nbsp;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td><td width="100%"></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
<dl compact><dt><b>Parameters:</b></dt><dd>
  <table border="0" cellspacing="2" cellpadding="0">
    <tr><td valign="top"></td><td valign="top"><em>om_node</em>&nbsp;</td><td>pointer to the OM node struct </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>env</em>&nbsp;</td><td>environment, MUST NOT be NULL</td></tr>
  </table>
</dl>
<dl class="return" compact><dt><b>Returns:</b></dt><dd>the tree as a string </dd></dl>

</div>
</div><p>
<a class="anchor" name="g0cf9fdca65f2b7c5ab0e485cf21bc3ba"></a><!-- doxytag: member="axiom_node.h::axiom_node_to_string" ref="g0cf9fdca65f2b7c5ab0e485cf21bc3ba" args="(axiom_node_t *om_node, const axutil_env_t *env)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">AXIS2_EXTERN axis2_char_t* axiom_node_to_string           </td>
          <td>(</td>
          <td class="paramtype">axiom_node_t *&nbsp;</td>
          <td class="paramname"> <em>om_node</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const <a class="el" href="structaxutil__env.html">axutil_env_t</a> *&nbsp;</td>
          <td class="paramname"> <em>env</em></td><td>&nbsp;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td><td width="100%"></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
<dl compact><dt><b>Parameters:</b></dt><dd>
  <table border="0" cellspacing="2" cellpadding="0">
    <tr><td valign="top"></td><td valign="top"><em>om_node</em>&nbsp;</td><td>pointer to the OM node struct </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>env</em>&nbsp;</td><td>environment, MUST NOT be NULL</td></tr>
  </table>
</dl>
<dl class="return" compact><dt><b>Returns:</b></dt><dd>the string representation of the node </dd></dl>

</div>
</div><p>
<a class="anchor" name="g9f6d265d8c276d0925aef199396cda0a"></a><!-- doxytag: member="axiom_node.h::axiom_node_to_string_non_optimized" ref="g9f6d265d8c276d0925aef199396cda0a" args="(axiom_node_t *om_node, const axutil_env_t *env)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">AXIS2_EXTERN axis2_char_t* axiom_node_to_string_non_optimized           </td>
          <td>(</td>
          <td class="paramtype">axiom_node_t *&nbsp;</td>
          <td class="paramname"> <em>om_node</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const <a class="el" href="structaxutil__env.html">axutil_env_t</a> *&nbsp;</td>
          <td class="paramname"> <em>env</em></td><td>&nbsp;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td><td width="100%"></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
Convert the node to string, treating the binary contents, if any, as non-optimized content. <dl compact><dt><b>Parameters:</b></dt><dd>
  <table border="0" cellspacing="2" cellpadding="0">
    <tr><td valign="top"></td><td valign="top"><em>om_node</em>&nbsp;</td><td>pointer to the OM node struct </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>env</em>&nbsp;</td><td>environment, MUST NOT be NULL</td></tr>
  </table>
</dl>
<dl class="return" compact><dt><b>Returns:</b></dt><dd>the none optimized string </dd></dl>

</div>
</div><p>
<hr size="1"><address style="text-align: right;"><small>Generated on Fri Apr 17 11:49:44 2009 for Axis2/C by&nbsp;
<a href="http://www.doxygen.org/index.html">
<img src="doxygen.png" alt="doxygen" align="middle" border="0"></a> 1.5.3 </small></address>
</body>
</html>


<|start_filename|>test/core/clientapi/test_client.c<|end_filename|>

/*
 * 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.
 */

#include <stdio.h>
#include <strings.h>
#include <string.h>
#include <sys/types.h>
#include <sys/socket.h>
#include <netinet/in.h>
#include <netdb.h>
#include <sys/types.h>
#include <sys/stat.h>
#include <fcntl.h>
#include <unistd.h>
#include <axis2_const.h>
#include <stdlib.h>

/* Function prototypes */
int write_to_socket(
    const char *address,
    const char *port,
    const char *filename,
    const char *endpoint);

/* End of function prototypes */

void
error(
    const char *msg)
{
    perror(msg);
    exit(0);
}

int
main(
    int argc,
    char *argv[])
{
    const axis2_char_t *hostname = "localhost";
    const axis2_char_t *port = "9090";
    const axis2_char_t *filename = "echo.xml";
    const axis2_char_t *endpoint = "/axis2/services/echo/echo";
    int c;
    extern char *optarg;

    while ((c = getopt(argc, argv, ":h:p:f:e:")) != -1)
    {
        switch (c)
        {
        case 'h':
            hostname = optarg;
            break;
        case 'p':
            port = optarg;
            break;
        case 'f':
            filename = optarg;
            break;
        case 'e':
            endpoint = optarg;
            break;
        }
    }

    write_to_socket(hostname, port, filename, endpoint);
    return 0;
}

int
write_to_socket(
    const char *address,
    const char *port,
    const char *filename,
    const char *endpoint)
{
    axis2_char_t buffer_l[4999];
    int sockfd,
     portno,
     n,
     i;
    struct sockaddr_in serv_addr;
    struct hostent *server;
    struct stat buf;
    axis2_char_t *buffer;
    axis2_char_t tmpstr[10];
    int bufsize = 0;

    portno = atoi(port);
    sockfd = socket(AF_INET, SOCK_STREAM, 0);
    if (sockfd < 0)
        error("ERROR opening socket");
    server = gethostbyname(address);
    if (server == NULL)
    {
        fprintf(stderr, "ERROR, no such host\n");
        exit(0);
    }
    bzero((char *) &serv_addr, sizeof(serv_addr));
    serv_addr.sin_family = AF_INET;
    bcopy((char *) server->h_addr,
          (char *) &serv_addr.sin_addr.s_addr, server->h_length);
    serv_addr.sin_port = htons(portno);
    if (connect(sockfd, (struct sockaddr *) &serv_addr, sizeof(serv_addr)) < 0)
        error("ERROR connecting");

    /* Read from file */
    stat(filename, &buf);
    bufsize = (buf.st_size + 1) * sizeof(char);
    buffer = (char *) malloc(bufsize);
    int fd = open(filename, O_RDONLY, 0);
    if (fd == -1)
    {
        printf("can't open file %s\n", filename);
        return -1;
    }
    else
        printf("opened file %s\n", filename);

    i = read(fd, buffer, bufsize - 1);
    if (i > 0)
    {
        buffer[i] = '\0';
        printf("%s...\n", buffer);
    }
    sprintf(buffer_l,
            "POST %s HTTP/1.1\r\nUser-Agent: Axis/2.0/C\r\nConnection: Keep-Alive\r\nHost: ",
            endpoint);
    strcat(buffer_l, address);
    strcat(buffer_l, ":");
    strcat(buffer_l, port);
    strcat(buffer_l, "\r\n");
    strcat(buffer_l, "Content-Length: ");
    sprintf(tmpstr, "%d", (int) strlen(buffer));
    strcat(buffer_l, tmpstr);
    strcat(buffer_l, "\r\n");
    /*strcat(buffer_l, "SOAPAction: http://localhost:9090/axis2/services/echo/echo\r\n"); */
    strcat(buffer_l, "Content-Type: application/soap+xml;\r\n");
    strcat(buffer_l, "\r\n");

    printf("Writing buffer_1...\n%s", buffer_l);
    n = write(sockfd, buffer_l, strlen(buffer_l));

    n = write(sockfd, buffer, strlen(buffer));
    if (n < 0)
        error("ERROR writing to socket");

    printf("Done writing to server\n");

    buffer[0] = '\0';

    printf("Reading the reply from server :\n");
    while ((n = read(sockfd, buffer, bufsize - 1)) > 0)
    {
        buffer[n] = '\0';
        printf("%s", buffer);
    }
    printf("\nReading from server done ...\n");

    if (n < 0)
    {
        error("ERROR reading from socket");
        buffer[0] = '\0';
    }
    free(buffer);
    return 0;
}


<|start_filename|>util/test/util/create_env.c<|end_filename|>
#include "create_env.h"

axutil_env_t * create_environment()
{
    axutil_allocator_t *allocator = NULL;
    axutil_log_t *log = NULL;
    axutil_error_t *error = NULL;
    axutil_env_t *env = NULL;
    allocator = axutil_allocator_init(NULL);
    log = axutil_log_create(allocator, NULL, NULL);

    error = axutil_error_create(allocator);
    env = axutil_env_create_with_error_log(allocator, error, log);
    return env;
}




<|start_filename|>src/core/transport/http/common/http_out_transport_info.c<|end_filename|>

/*
 * 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.
 */

#include <axis2_http_out_transport_info.h>
#include <axutil_string.h>
#include <axis2_http_transport.h>
#include <axutil_string.h>

#define AXIS2_INTF_TO_IMPL(out_transport_info)   \
            ((axis2_http_out_transport_info_t *) \
            (out_transport_info))

axis2_status_t AXIS2_CALL
axis2_out_transport_info_impl_set_content_type(
    axis2_out_transport_info_t * out_transport_info,
    const axutil_env_t * env,
    const axis2_char_t * content_type)
{
    axis2_http_out_transport_info_t *http_transport_info = NULL;
    http_transport_info = AXIS2_INTF_TO_IMPL(out_transport_info);
    return axis2_http_out_transport_info_set_content_type(http_transport_info,
                                                          env, content_type);
}

axis2_status_t AXIS2_CALL
axis2_out_transport_info_impl_set_char_encoding(
    axis2_out_transport_info_t * out_transport_info,
    const axutil_env_t * env,
    const axis2_char_t * encoding)
{
    axis2_http_out_transport_info_t *http_transport_info = NULL;
    http_transport_info = AXIS2_INTF_TO_IMPL(out_transport_info);
    return axis2_http_out_transport_info_set_char_encoding(http_transport_info,
                                                           env, encoding);
}

void AXIS2_CALL
axis2_out_transport_info_impl_free(
    axis2_out_transport_info_t * out_transport_info,
    const axutil_env_t * env)
{
    axis2_http_out_transport_info_t *http_transport_info = NULL;
    http_transport_info = AXIS2_INTF_TO_IMPL(out_transport_info);
    axis2_http_out_transport_info_free(http_transport_info, env);
    return;
}

static const axis2_out_transport_info_ops_t ops_var = {
    axis2_out_transport_info_impl_set_content_type,
    axis2_out_transport_info_impl_set_char_encoding,
    axis2_out_transport_info_impl_free
};


AXIS2_EXTERN axis2_status_t AXIS2_CALL
axis2_http_out_transport_info_impl_set_content_type(
    axis2_http_out_transport_info_t * http_out_transport_info,
    const axutil_env_t * env,
    const axis2_char_t * content_type)
{
    axis2_char_t *tmp1 = NULL;
    axis2_char_t *tmp2 = NULL;

    AXIS2_PARAM_CHECK(env->error, content_type, AXIS2_FAILURE);
    if (http_out_transport_info->encoding)
    {
        axis2_char_t *charset_pos = axutil_strcasestr(content_type, 
                                                      AXIS2_CHARSET);
        if (!charset_pos)
        {
            /* if "charset" not found in content_type string */
            tmp1 = axutil_stracat(env, content_type, 
                                  AXIS2_CONTENT_TYPE_CHARSET);
            tmp2 = axutil_stracat(env, tmp1, http_out_transport_info->encoding);
            axis2_http_simple_response_set_header(http_out_transport_info->
                                                  response, env,
                                                  axis2_http_header_create(
                                                      env,
                                                      AXIS2_HTTP_HEADER_CONTENT_TYPE,
                                                      tmp2));
            AXIS2_FREE(env->allocator, tmp1);
            AXIS2_FREE(env->allocator, tmp2);
        }
        else
        {
            /* "charset" is found in content_type string */
            axis2_http_simple_response_set_header(http_out_transport_info->
                                                  response, env,
                                                  axis2_http_header_create(
                                                      env,
                                                      AXIS2_HTTP_HEADER_CONTENT_TYPE,
                                                      content_type));
        }
    }
    else
    {
        /* no http_out_transport_info->encoding  */
        if (http_out_transport_info->response)
        {
            axis2_http_simple_response_set_header(http_out_transport_info->
                                                  response, env,
                                                  axis2_http_header_create(
                                                      env,
                                                      AXIS2_HTTP_HEADER_CONTENT_TYPE,
                                                      content_type));
        }
    }
    return AXIS2_SUCCESS;
}


AXIS2_EXTERN axis2_status_t AXIS2_CALL
axis2_http_out_transport_info_impl_set_char_encoding(
    axis2_http_out_transport_info_t * http_out_transport_info,
    const axutil_env_t * env,
    const axis2_char_t * encoding)
{
    AXIS2_PARAM_CHECK(env->error, encoding, AXIS2_FAILURE);
    if (http_out_transport_info->encoding)
    {
        AXIS2_FREE(env->allocator, http_out_transport_info->encoding);
    }
    http_out_transport_info->encoding = axutil_strdup(env, encoding);
    return AXIS2_SUCCESS;
}


AXIS2_EXTERN void AXIS2_CALL
axis2_http_out_transport_info_impl_free(
    axis2_http_out_transport_info_t * http_out_transport_info,
    const axutil_env_t * env)
{

    if (!http_out_transport_info)
    {
        return;
    }

    if (http_out_transport_info->response)
    {
        axis2_http_simple_response_free(http_out_transport_info->response, env);
    }
    if (http_out_transport_info->encoding)
    {
        AXIS2_FREE(env->allocator, http_out_transport_info->encoding);
    }
    AXIS2_FREE(env->allocator, http_out_transport_info);
    return;
}


AXIS2_EXTERN axis2_http_out_transport_info_t *AXIS2_CALL
axis2_http_out_transport_info_create(
    const axutil_env_t * env,
    axis2_http_simple_response_t * response)
{
    axis2_http_out_transport_info_t *http_out_transport_info = NULL;

    http_out_transport_info = (axis2_http_out_transport_info_t *) AXIS2_MALLOC
        (env->allocator, sizeof(axis2_http_out_transport_info_t));

    if (!http_out_transport_info)
    {
        AXIS2_HANDLE_ERROR(env, AXIS2_ERROR_NO_MEMORY, AXIS2_FAILURE);
        return NULL;
    }
    memset ((void *)http_out_transport_info, 0, 
            sizeof (axis2_http_out_transport_info_t));
    http_out_transport_info->out_transport.ops = &ops_var;
    http_out_transport_info->response = response;
    http_out_transport_info->encoding = NULL;
    http_out_transport_info->set_char_encoding = NULL;
    http_out_transport_info->set_content_type = NULL;
    http_out_transport_info->free_function = NULL;

    http_out_transport_info->set_char_encoding =
        axis2_http_out_transport_info_impl_set_char_encoding;
    http_out_transport_info->set_content_type =
        axis2_http_out_transport_info_impl_set_content_type;
    http_out_transport_info->free_function =
        axis2_http_out_transport_info_impl_free;

    return http_out_transport_info;
}

AXIS2_EXTERN void AXIS2_CALL
axis2_http_out_transport_info_free(
    axis2_http_out_transport_info_t * http_out_transport_info,
    const axutil_env_t * env)
{
    http_out_transport_info->free_function(http_out_transport_info, env);
    return;
}

AXIS2_EXTERN void AXIS2_CALL
axis2_http_out_transport_info_free_void_arg(
    void *transport_info,
    const axutil_env_t * env)
{
    axis2_http_out_transport_info_t *transport_info_l = NULL;

    transport_info_l = AXIS2_INTF_TO_IMPL(transport_info);
    axis2_http_out_transport_info_free(transport_info_l, env);
    return;
}

AXIS2_EXTERN axis2_status_t AXIS2_CALL
axis2_http_out_transport_info_set_content_type(
    axis2_http_out_transport_info_t * http_out_transport_info,
    const axutil_env_t * env,
    const axis2_char_t * content_type)
{
    return http_out_transport_info->set_content_type(http_out_transport_info,
                                                     env, content_type);
}

AXIS2_EXTERN axis2_status_t AXIS2_CALL
axis2_http_out_transport_info_set_char_encoding(
    axis2_http_out_transport_info_t * http_out_transport_info,
    const axutil_env_t * env,
    const axis2_char_t * encoding)
{
    return http_out_transport_info->set_char_encoding(http_out_transport_info,
                                                      env, encoding);
}


AXIS2_EXTERN void AXIS2_CALL
axis2_http_out_transport_info_set_char_encoding_func(
    axis2_http_out_transport_info_t * out_transport_info,
    const axutil_env_t * env,
    axis2_status_t(AXIS2_CALL * set_char_encoding)
    (axis2_http_out_transport_info_t *,
     const axutil_env_t *,
     const axis2_char_t *))
{
    out_transport_info->set_char_encoding = set_char_encoding;
}


AXIS2_EXTERN void AXIS2_CALL
axis2_http_out_transport_info_set_content_type_func(
    axis2_http_out_transport_info_t * out_transport_info,
    const axutil_env_t * env,
    axis2_status_t(AXIS2_CALL *
                   set_content_type) (axis2_http_out_transport_info_t *,
                                      const axutil_env_t *,
                                      const axis2_char_t *))
{
    out_transport_info->set_content_type = set_content_type;
}


AXIS2_EXTERN void AXIS2_CALL
axis2_http_out_transport_info_set_free_func(
    axis2_http_out_transport_info_t * out_transport_info,
    const axutil_env_t * env,
    void (AXIS2_CALL * free_function) (axis2_http_out_transport_info_t *,
                                       const axutil_env_t *))
{
    out_transport_info->free_function = free_function;
}





<|start_filename|>xdocs/api/html/group__axiom__document.html<|end_filename|>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html><head><meta http-equiv="Content-Type" content="text/html;charset=UTF-8">
<title>Axis2/C: document</title>
<link href="doxygen.css" rel="stylesheet" type="text/css">
<link href="tabs.css" rel="stylesheet" type="text/css">
</head><body>
<!-- Generated by Doxygen 1.5.3 -->
<div class="tabs">
  <ul>
    <li><a href="index.html"><span>Main&nbsp;Page</span></a></li>
    <li><a href="modules.html"><span>Modules</span></a></li>
    <li><a href="annotated.html"><span>Classes</span></a></li>
    <li><a href="files.html"><span>Files</span></a></li>
    <li><a href="dirs.html"><span>Directories</span></a></li>
    <li><a href="pages.html"><span>Related&nbsp;Pages</span></a></li>
    <li><a href="examples.html"><span>Examples</span></a></li>
    <li>
      <form action="search.php" method="get">
        <table cellspacing="0" cellpadding="0" border="0">
          <tr>
            <td><label>&nbsp;<u>S</u>earch&nbsp;for&nbsp;</label></td>
            <td><input type="text" name="query" value="" size="20" accesskey="s"/></td>
          </tr>
        </table>
      </form>
    </li>
  </ul>
</div>
<h1>document<br>
<small>
[<a class="el" href="group__axiom__om.html">AXIOM</a>]</small>
</h1><table border="0" cellpadding="0" cellspacing="0">
<tr><td></td></tr>
<tr><td colspan="2"><br><h2>Typedefs</h2></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="gf35ddff3f22d4f7b40e39fb389df6080"></a><!-- doxytag: member="axiom_document::axiom_document_t" ref="gf35ddff3f22d4f7b40e39fb389df6080" args="" -->
typedef struct <br>
axiom_document&nbsp;</td><td class="memItemRight" valign="bottom"><b>axiom_document_t</b></td></tr>

<tr><td colspan="2"><br><h2>Functions</h2></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top">AXIS2_EXTERN <br>
axiom_document_t *&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__axiom__document.html#gf15c8c5b6476d1ca0f256ff56854b5af">axiom_document_create</a> (const <a class="el" href="structaxutil__env.html">axutil_env_t</a> *env, axiom_node_t *root, struct axiom_stax_builder *builder)</td></tr>

<tr><td class="memItemLeft" nowrap align="right" valign="top">AXIS2_EXTERN void&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__axiom__document.html#gcc7942d49c50f48f063e9576c361e939">axiom_document_free</a> (struct axiom_document *document, const <a class="el" href="structaxutil__env.html">axutil_env_t</a> *env)</td></tr>

<tr><td class="memItemLeft" nowrap align="right" valign="top">AXIS2_EXTERN void&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__axiom__document.html#g03b25353883e6de5acbc0b80bcb0b456">axiom_document_free_self</a> (struct axiom_document *document, const <a class="el" href="structaxutil__env.html">axutil_env_t</a> *env)</td></tr>

<tr><td class="memItemLeft" nowrap align="right" valign="top">AXIS2_EXTERN <br>
axiom_node_t *&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__axiom__document.html#g3f02c87e2de3ca020f867a8496346967">axiom_document_build_next</a> (struct axiom_document *document, const <a class="el" href="structaxutil__env.html">axutil_env_t</a> *env)</td></tr>

<tr><td class="memItemLeft" nowrap align="right" valign="top">AXIS2_EXTERN <br>
axiom_node_t *&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__axiom__document.html#ge81610bc3a9b0124ad91f502c3b36f7d">axiom_document_get_root_element</a> (struct axiom_document *document, const <a class="el" href="structaxutil__env.html">axutil_env_t</a> *env)</td></tr>

<tr><td class="memItemLeft" nowrap align="right" valign="top">AXIS2_EXTERN <br>
axis2_status_t&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__axiom__document.html#gca387e2c8ed19b5bd4123fc6455fa071">axiom_document_set_root_element</a> (struct axiom_document *document, const <a class="el" href="structaxutil__env.html">axutil_env_t</a> *env, axiom_node_t *om_node)</td></tr>

<tr><td class="memItemLeft" nowrap align="right" valign="top">AXIS2_EXTERN <br>
axiom_node_t *&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__axiom__document.html#g8c20adf1ab6226417b5946d72f8888d1">axiom_document_build_all</a> (struct axiom_document *document, const <a class="el" href="structaxutil__env.html">axutil_env_t</a> *env)</td></tr>

<tr><td class="memItemLeft" nowrap align="right" valign="top">AXIS2_EXTERN struct <br>
axiom_stax_builder *&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__axiom__document.html#g8663a5625accd15c3ae99c5a9b5a68e1">axiom_document_get_builder</a> (struct axiom_document *document, const <a class="el" href="structaxutil__env.html">axutil_env_t</a> *env)</td></tr>

<tr><td class="memItemLeft" nowrap align="right" valign="top">AXIS2_EXTERN void&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__axiom__document.html#g616f57c62b173076d9cc94eb7caca957">axiom_document_set_builder</a> (axiom_document_t *document, const <a class="el" href="structaxutil__env.html">axutil_env_t</a> *env, struct axiom_stax_builder *builder)</td></tr>

<tr><td class="memItemLeft" nowrap align="right" valign="top">AXIS2_EXTERN <br>
axis2_status_t&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__axiom__document.html#g7e34e3977661164aedae9b5d2dd9ada5">axiom_document_serialize</a> (struct axiom_document *document, const <a class="el" href="structaxutil__env.html">axutil_env_t</a> *env, <a class="el" href="group__axiom__output.html#gfe1ea804d7a8179e85371f065cd9df09">axiom_output_t</a> *om_output)</td></tr>

</table>
<hr><h2>Function Documentation</h2>
<a class="anchor" name="g8c20adf1ab6226417b5946d72f8888d1"></a><!-- doxytag: member="axiom_document.h::axiom_document_build_all" ref="g8c20adf1ab6226417b5946d72f8888d1" args="(struct axiom_document *document, const axutil_env_t *env)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">AXIS2_EXTERN axiom_node_t* axiom_document_build_all           </td>
          <td>(</td>
          <td class="paramtype">struct axiom_document *&nbsp;</td>
          <td class="paramname"> <em>document</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const <a class="el" href="structaxutil__env.html">axutil_env_t</a> *&nbsp;</td>
          <td class="paramname"> <em>env</em></td><td>&nbsp;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td><td width="100%"></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
This method builds the rest of the xml input stream from current position till the root element is completed . <dl compact><dt><b>Parameters:</b></dt><dd>
  <table border="0" cellspacing="2" cellpadding="0">
    <tr><td valign="top"></td><td valign="top"><em>document</em>&nbsp;</td><td>pointer to axiom_document_t struct to be built. </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>env</em>&nbsp;</td><td>environment MUST NOT be NULL. </td></tr>
  </table>
</dl>

</div>
</div><p>
<a class="anchor" name="g3f02c87e2de3ca020f867a8496346967"></a><!-- doxytag: member="axiom_document.h::axiom_document_build_next" ref="g3f02c87e2de3ca020f867a8496346967" args="(struct axiom_document *document, const axutil_env_t *env)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">AXIS2_EXTERN axiom_node_t* axiom_document_build_next           </td>
          <td>(</td>
          <td class="paramtype">struct axiom_document *&nbsp;</td>
          <td class="paramname"> <em>document</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const <a class="el" href="structaxutil__env.html">axutil_env_t</a> *&nbsp;</td>
          <td class="paramname"> <em>env</em></td><td>&nbsp;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td><td width="100%"></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
Builds the next node if the builder is not finished with input xml stream <dl compact><dt><b>Parameters:</b></dt><dd>
  <table border="0" cellspacing="2" cellpadding="0">
    <tr><td valign="top"></td><td valign="top"><em>document</em>&nbsp;</td><td>document whose next node is to be built. cannot be NULL </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>env</em>&nbsp;</td><td>Environment. MUST NOT be NULL. </td></tr>
  </table>
</dl>
<dl class="return" compact><dt><b>Returns:</b></dt><dd>pointer to the next node. NULL on error. </dd></dl>

</div>
</div><p>
<a class="anchor" name="gf15c8c5b6476d1ca0f256ff56854b5af"></a><!-- doxytag: member="axiom_document.h::axiom_document_create" ref="gf15c8c5b6476d1ca0f256ff56854b5af" args="(const axutil_env_t *env, axiom_node_t *root, struct axiom_stax_builder *builder)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">AXIS2_EXTERN axiom_document_t* axiom_document_create           </td>
          <td>(</td>
          <td class="paramtype">const <a class="el" href="structaxutil__env.html">axutil_env_t</a> *&nbsp;</td>
          <td class="paramname"> <em>env</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">axiom_node_t *&nbsp;</td>
          <td class="paramname"> <em>root</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">struct axiom_stax_builder *&nbsp;</td>
          <td class="paramname"> <em>builder</em></td><td>&nbsp;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td><td width="100%"></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
creates an axiom_document_t struct <dl compact><dt><b>Parameters:</b></dt><dd>
  <table border="0" cellspacing="2" cellpadding="0">
    <tr><td valign="top"></td><td valign="top"><em>env</em>&nbsp;</td><td>Environment. MUST NOT be NULL. </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>root</em>&nbsp;</td><td>pointer to document's root node. Optional, can be NULL </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>builder</em>&nbsp;</td><td>pointer to axiom_stax_builder </td></tr>
  </table>
</dl>
<dl class="return" compact><dt><b>Returns:</b></dt><dd>pointer to the newly created document. </dd></dl>

</div>
</div><p>
<a class="anchor" name="gcc7942d49c50f48f063e9576c361e939"></a><!-- doxytag: member="axiom_document.h::axiom_document_free" ref="gcc7942d49c50f48f063e9576c361e939" args="(struct axiom_document *document, const axutil_env_t *env)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">AXIS2_EXTERN void axiom_document_free           </td>
          <td>(</td>
          <td class="paramtype">struct axiom_document *&nbsp;</td>
          <td class="paramname"> <em>document</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const <a class="el" href="structaxutil__env.html">axutil_env_t</a> *&nbsp;</td>
          <td class="paramname"> <em>env</em></td><td>&nbsp;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td><td width="100%"></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
Free document struct <dl compact><dt><b>Parameters:</b></dt><dd>
  <table border="0" cellspacing="2" cellpadding="0">
    <tr><td valign="top"></td><td valign="top"><em>document</em>&nbsp;</td><td>pointer to axiom_document_t struct to be freed </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>env</em>&nbsp;</td><td>Environment. MUST NOT be NULL </td></tr>
  </table>
</dl>
<dl class="return" compact><dt><b>Returns:</b></dt><dd>satus of the op. AXIS2_SUCCESS on success else AXIS2_FAILURE. </dd></dl>

</div>
</div><p>
<a class="anchor" name="g03b25353883e6de5acbc0b80bcb0b456"></a><!-- doxytag: member="axiom_document.h::axiom_document_free_self" ref="g03b25353883e6de5acbc0b80bcb0b456" args="(struct axiom_document *document, const axutil_env_t *env)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">AXIS2_EXTERN void axiom_document_free_self           </td>
          <td>(</td>
          <td class="paramtype">struct axiom_document *&nbsp;</td>
          <td class="paramname"> <em>document</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const <a class="el" href="structaxutil__env.html">axutil_env_t</a> *&nbsp;</td>
          <td class="paramname"> <em>env</em></td><td>&nbsp;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td><td width="100%"></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
Free document struct only, Does not free the associated axiom struture. <dl compact><dt><b>Parameters:</b></dt><dd>
  <table border="0" cellspacing="2" cellpadding="0">
    <tr><td valign="top"></td><td valign="top"><em>document</em>&nbsp;</td><td>pointer to axiom_document_t struct to be freed </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>env</em>&nbsp;</td><td>Environment. MUST NOT be NULL </td></tr>
  </table>
</dl>
<dl class="return" compact><dt><b>Returns:</b></dt><dd>satus of the op. AXIS2_SUCCESS on success else AXIS2_FAILURE. </dd></dl>

</div>
</div><p>
<a class="anchor" name="g8663a5625accd15c3ae99c5a9b5a68e1"></a><!-- doxytag: member="axiom_document.h::axiom_document_get_builder" ref="g8663a5625accd15c3ae99c5a9b5a68e1" args="(struct axiom_document *document, const axutil_env_t *env)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">AXIS2_EXTERN struct axiom_stax_builder* axiom_document_get_builder           </td>
          <td>(</td>
          <td class="paramtype">struct axiom_document *&nbsp;</td>
          <td class="paramname"> <em>document</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const <a class="el" href="structaxutil__env.html">axutil_env_t</a> *&nbsp;</td>
          <td class="paramname"> <em>env</em></td><td>&nbsp;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td><td width="100%"><code> [read]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
get builder <dl compact><dt><b>Parameters:</b></dt><dd>
  <table border="0" cellspacing="2" cellpadding="0">
    <tr><td valign="top"></td><td valign="top"><em>document</em>&nbsp;</td><td>pointer to axiom_document_t struct to be built. </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>env</em>&nbsp;</td><td>environment MUST NOT be NULL. </td></tr>
  </table>
</dl>
<dl class="return" compact><dt><b>Returns:</b></dt><dd>builder, returns NULL if a builder is not associated with document </dd></dl>

</div>
</div><p>
<a class="anchor" name="ge81610bc3a9b0124ad91f502c3b36f7d"></a><!-- doxytag: member="axiom_document.h::axiom_document_get_root_element" ref="ge81610bc3a9b0124ad91f502c3b36f7d" args="(struct axiom_document *document, const axutil_env_t *env)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">AXIS2_EXTERN axiom_node_t* axiom_document_get_root_element           </td>
          <td>(</td>
          <td class="paramtype">struct axiom_document *&nbsp;</td>
          <td class="paramname"> <em>document</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const <a class="el" href="structaxutil__env.html">axutil_env_t</a> *&nbsp;</td>
          <td class="paramname"> <em>env</em></td><td>&nbsp;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td><td width="100%"></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
Gets the root element of the document. <dl compact><dt><b>Parameters:</b></dt><dd>
  <table border="0" cellspacing="2" cellpadding="0">
    <tr><td valign="top"></td><td valign="top"><em>document</em>&nbsp;</td><td>document to return the root of </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>env</em>&nbsp;</td><td>Environment. MUST NOT be NULL. </td></tr>
  </table>
</dl>
<dl class="return" compact><dt><b>Returns:</b></dt><dd>returns a pointer to the root node. If no root present, this method tries to build the root. Returns NULL on error. </dd></dl>

</div>
</div><p>
<a class="anchor" name="g7e34e3977661164aedae9b5d2dd9ada5"></a><!-- doxytag: member="axiom_document.h::axiom_document_serialize" ref="g7e34e3977661164aedae9b5d2dd9ada5" args="(struct axiom_document *document, const axutil_env_t *env, axiom_output_t *om_output)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">AXIS2_EXTERN axis2_status_t axiom_document_serialize           </td>
          <td>(</td>
          <td class="paramtype">struct axiom_document *&nbsp;</td>
          <td class="paramname"> <em>document</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const <a class="el" href="structaxutil__env.html">axutil_env_t</a> *&nbsp;</td>
          <td class="paramname"> <em>env</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype"><a class="el" href="group__axiom__output.html#gfe1ea804d7a8179e85371f065cd9df09">axiom_output_t</a> *&nbsp;</td>
          <td class="paramname"> <em>om_output</em></td><td>&nbsp;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td><td width="100%"></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
<dl compact><dt><b>Parameters:</b></dt><dd>
  <table border="0" cellspacing="2" cellpadding="0">
    <tr><td valign="top"></td><td valign="top"><em>om_document</em>&nbsp;</td><td></td></tr>
  </table>
</dl>
<dl class="return" compact><dt><b>Returns:</b></dt><dd>status code AXIS2_SUCCESS on success , otherwise AXIS2_FAILURE </dd></dl>

</div>
</div><p>
<a class="anchor" name="g616f57c62b173076d9cc94eb7caca957"></a><!-- doxytag: member="axiom_document.h::axiom_document_set_builder" ref="g616f57c62b173076d9cc94eb7caca957" args="(axiom_document_t *document, const axutil_env_t *env, struct axiom_stax_builder *builder)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">AXIS2_EXTERN void axiom_document_set_builder           </td>
          <td>(</td>
          <td class="paramtype">axiom_document_t *&nbsp;</td>
          <td class="paramname"> <em>document</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const <a class="el" href="structaxutil__env.html">axutil_env_t</a> *&nbsp;</td>
          <td class="paramname"> <em>env</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">struct axiom_stax_builder *&nbsp;</td>
          <td class="paramname"> <em>builder</em></td><td>&nbsp;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td><td width="100%"></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
sets builder for document. <dl compact><dt><b>Parameters:</b></dt><dd>
  <table border="0" cellspacing="2" cellpadding="0">
    <tr><td valign="top"></td><td valign="top"><em>document</em>&nbsp;</td><td>pointer to axiom_document_t struct to be built. </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>env</em>&nbsp;</td><td>environment MUST NOT be NULL. </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>builder</em>&nbsp;</td><td>pointer to builder to associate with document </td></tr>
  </table>
</dl>

</div>
</div><p>
<a class="anchor" name="gca387e2c8ed19b5bd4123fc6455fa071"></a><!-- doxytag: member="axiom_document.h::axiom_document_set_root_element" ref="gca387e2c8ed19b5bd4123fc6455fa071" args="(struct axiom_document *document, const axutil_env_t *env, axiom_node_t *om_node)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">AXIS2_EXTERN axis2_status_t axiom_document_set_root_element           </td>
          <td>(</td>
          <td class="paramtype">struct axiom_document *&nbsp;</td>
          <td class="paramname"> <em>document</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const <a class="el" href="structaxutil__env.html">axutil_env_t</a> *&nbsp;</td>
          <td class="paramname"> <em>env</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">axiom_node_t *&nbsp;</td>
          <td class="paramname"> <em>om_node</em></td><td>&nbsp;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td><td width="100%"></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
set the root element of the document. IF a root node is already exist,it is freed before setting to root element <dl compact><dt><b>Parameters:</b></dt><dd>
  <table border="0" cellspacing="2" cellpadding="0">
    <tr><td valign="top"></td><td valign="top"><em>document</em>&nbsp;</td><td>document struct to return the root of </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>env</em>&nbsp;</td><td>Environment. MUST NOT be NULL. </td></tr>
  </table>
</dl>
<dl class="return" compact><dt><b>Returns:</b></dt><dd>returns status code AXIS2_SUCCESS on success ,AXIS2_FAILURE on error. </dd></dl>

</div>
</div><p>
<hr size="1"><address style="text-align: right;"><small>Generated on Fri Apr 17 11:49:44 2009 for Axis2/C by&nbsp;
<a href="http://www.doxygen.org/index.html">
<img src="doxygen.png" alt="doxygen" align="middle" border="0"></a> 1.5.3 </small></address>
</body>
</html>


<|start_filename|>tools/tcpmon/test/unit/tcpmon_test.h<|end_filename|>
#ifndef TCPMON_TEST_H
#define TCPMON_TEST_H

#include <CuTest.h>

CuSuite *tcpmon_GetSuite(
);

#endif                          /* TCPMON_TEST_H */


<|start_filename|>neethi/src/secpolicy/model/property.c<|end_filename|>

/*
 * 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.
 */

#include <rp_property.h>
#include <rp_symmetric_binding.h>
#include <rp_asymmetric_binding.h>
#include <rp_transport_binding.h>
#include <rp_supporting_tokens.h>
#include <rp_wss10.h>
#include <rp_wss11.h>

struct rp_property_t
{
    rp_property_type_t type;
    void *value;
    int ref;
};

AXIS2_EXTERN rp_property_t *AXIS2_CALL
rp_property_create(
    const axutil_env_t * env)
{
    rp_property_t *property = NULL;

    AXIS2_ENV_CHECK(env, NULL);

    property = (rp_property_t *) AXIS2_MALLOC(env->allocator,
                                              sizeof(rp_property_t));

    if (property == NULL)
    {
        AXIS2_ERROR_SET(env->error, AXIS2_ERROR_NO_MEMORY, AXIS2_FAILURE);
        return NULL;
    }
    property->type = RP_PROPERTY_UNKNOWN;
    property->value = NULL;
    property->ref = 0;

    return property;
}

AXIS2_EXTERN void AXIS2_CALL
rp_property_free(
    rp_property_t * property,
    const axutil_env_t * env)
{
    AXIS2_ENV_CHECK(env, AXIS2_FAILURE);

    if (property)
    {
        if (--(property->ref) > 0)
        {
            return;
        }

        if (property->value)
        {
            switch (property->type)
            {
            case RP_PROPERTY_USERNAME_TOKEN:
                rp_username_token_free((rp_username_token_t *) property->value,
                                       env);
                property->value = NULL;
                break;

            case RP_PROPERTY_X509_TOKEN:
                rp_x509_token_free((rp_x509_token_t *) property->value, env);
                property->value = NULL;
                break;
                
            case RP_PROPERTY_ISSUED_TOKEN:
                rp_issued_token_free((rp_issued_token_t *)property->value, env);
                property->value = NULL;
                break;

            case RP_PROPERTY_SAML_TOKEN:
                rp_saml_token_free((rp_saml_token_t *)property->value, env);
                property->value = NULL;
            break;

            case RP_PROPERTY_SECURITY_CONTEXT_TOKEN:
                rp_security_context_token_free((rp_security_context_token_t *)
                                               property->value, env);
                property->value = NULL;
                break;

            case RP_PROPERTY_HTTPS_TOKEN:
                rp_https_token_free((rp_https_token_t *) property->value, env);
                property->value = NULL;
                break;

            case RP_PROPERTY_SYMMETRIC_BINDING:
                rp_symmetric_binding_free((rp_symmetric_binding_t *) property->
                                          value, env);
                property->value = NULL;
                break;

            case RP_PROPERTY_ASYMMETRIC_BINDING:
                rp_asymmetric_binding_free((rp_asymmetric_binding_t *)
                                           property->value, env);
                property->value = NULL;
                break;

            case RP_PROPERTY_TRANSPORT_BINDING:
                rp_transport_binding_free((rp_transport_binding_t *) property->
                                          value, env);
                property->value = NULL;
                break;

            case RP_PROPERTY_SIGNED_SUPPORTING_TOKEN:
                rp_supporting_tokens_free((rp_supporting_tokens_t *) property->
                                          value, env);
                property->value = NULL;
                break;

            case RP_PROPERTY_SIGNED_ENDORSING_SUPPORTING_TOKEN:
                rp_supporting_tokens_free((rp_supporting_tokens_t *) property->
                                          value, env);
                property->value = NULL;
                break;

            case RP_PROPERTY_SUPPORTING_SUPPORTING_TOKEN:
                rp_supporting_tokens_free((rp_supporting_tokens_t *) property->
                                          value, env);
                property->value = NULL;
                break;

            case RP_PROPERTY_ENDORSING_SUPPORTING_TOKEN:
                rp_supporting_tokens_free((rp_supporting_tokens_t *) property->
                                          value, env);
                property->value = NULL;
                break;

            case RP_PROPERTY_SUPPORTING_TOKEN:
                rp_supporting_tokens_free((rp_supporting_tokens_t *) property->
                                          value, env);
                property->value = NULL;
                break;

            case RP_PROPERTY_WSS10:
                rp_wss10_free((rp_wss10_t *) property->value, env);
                property->value = NULL;
                break;

            case RP_PROPERTY_WSS11:
                rp_wss11_free((rp_wss11_t *) property->value, env);
                property->value = NULL;
                break;

            case RP_PROPERTY_UNKNOWN:
                break;
            }
        }
        AXIS2_FREE(env->allocator, property);
    }

    return;
}

/* Implementations */
AXIS2_EXTERN void *AXIS2_CALL
rp_property_get_value(
    rp_property_t * property,
    const axutil_env_t * env)
{
    AXIS2_ENV_CHECK(env, AXIS2_FAILURE);

    return property->value;
}

AXIS2_EXTERN axis2_status_t AXIS2_CALL
rp_property_set_value(
    rp_property_t * property,
    const axutil_env_t * env,
    void *value,
    rp_property_type_t type)
{
    AXIS2_ENV_CHECK(env, AXIS2_FAILURE);
    AXIS2_PARAM_CHECK(env->error, value, AXIS2_FAILURE);

    property->type = type;

    if (type == RP_PROPERTY_X509_TOKEN)
    {
        rp_x509_token_increment_ref((rp_x509_token_t *) value, env);
    }
    else if (type == RP_PROPERTY_SECURITY_CONTEXT_TOKEN)
    {
        rp_security_context_token_increment_ref((rp_security_context_token_t *)value, env);
    }
    else if (type == RP_PROPERTY_WSS10)
    {
        rp_wss10_increment_ref((rp_wss10_t *) value, env);
    }
    else if (type == RP_PROPERTY_WSS11)
    {
        rp_wss11_increment_ref((rp_wss11_t *) value, env);
    }
    else if (type == RP_PROPERTY_USERNAME_TOKEN)
    {
        rp_username_token_increment_ref((rp_username_token_t *) value, env);
    }

    else if (type == RP_PROPERTY_HTTPS_TOKEN)
    {
       rp_https_token_increment_ref((rp_https_token_t *) value, env);
    }    

    else if (type == RP_PROPERTY_SIGNED_SUPPORTING_TOKEN)
    {
        rp_supporting_tokens_increment_ref((rp_supporting_tokens_t *) value,
                                           env);
    }
    else if (type == RP_PROPERTY_SUPPORTING_SUPPORTING_TOKEN)
    {
        rp_supporting_tokens_increment_ref((rp_supporting_tokens_t *) value,
                                           env);
    }
    else if (type == RP_PROPERTY_SIGNED_ENDORSING_SUPPORTING_TOKEN)
    {
        rp_supporting_tokens_increment_ref((rp_supporting_tokens_t *) value,
                                           env);
    }
    else if (type == RP_PROPERTY_ENDORSING_SUPPORTING_TOKEN)
    {
        rp_supporting_tokens_increment_ref((rp_supporting_tokens_t *) value,
                                           env);
    }
    else if (type == RP_PROPERTY_ASYMMETRIC_BINDING)
    {
        rp_asymmetric_binding_increment_ref((rp_asymmetric_binding_t *) value,
                                            env);
    }
    else if (type == RP_PROPERTY_TRANSPORT_BINDING)
    {
        rp_transport_binding_increment_ref((rp_transport_binding_t *) value,
                                           env);
    }
    else if (type == RP_PROPERTY_SYMMETRIC_BINDING)
    {
        rp_symmetric_binding_increment_ref((rp_symmetric_binding_t *) value,
                                           env);
    }
    property->value = (void *) value;

    return AXIS2_SUCCESS;

}

AXIS2_EXTERN rp_property_type_t AXIS2_CALL
rp_property_get_type(
    rp_property_t * property,
    const axutil_env_t * env)
{
    AXIS2_ENV_CHECK(env, AXIS2_FAILURE);

    return property->type;
}

AXIS2_EXTERN axis2_status_t AXIS2_CALL
rp_property_increment_ref(
    rp_property_t * property,
    const axutil_env_t * env)
{
    AXIS2_ENV_CHECK(env, AXIS2_FAILURE);
    property->ref++;
    return AXIS2_SUCCESS;
}


<|start_filename|>util/src/array_list.c<|end_filename|>
/*
 * 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.
 */

#include <axutil_array_list.h>
#include <axutil_utils.h>
#include <string.h>

struct axutil_array_list
{

    /**The number of elements in this list. */
    int size;

    /**Current capacity of this list. */
    int capacity;

    /** Where the data is stored. */
    void **data;
};

AXIS2_EXTERN struct axutil_array_list *AXIS2_CALL
axutil_array_list_create(
    const axutil_env_t * env,
    int capacity)
{
    axutil_array_list_t *array_list = NULL;

    array_list = AXIS2_MALLOC(env->allocator, sizeof(axutil_array_list_t));
    if (!array_list)
    {
        AXIS2_ERROR_SET(env->error, AXIS2_ERROR_NO_MEMORY, AXIS2_FAILURE);
		AXIS2_LOG_ERROR(env->log, AXIS2_LOG_SI, "Out of memory");
        return NULL;
    }

    array_list->size = 0;
    array_list->capacity = 0;
    array_list->data = NULL;

    /* Check capacity, and set the default if error */
    if (capacity <= 0)
        capacity = AXIS2_ARRAY_LIST_DEFAULT_CAPACITY;
    array_list->data = AXIS2_MALLOC(env->allocator, sizeof(void *) * capacity);
    if (!array_list->data)
    {
        axutil_array_list_free(array_list, env);
        AXIS2_ERROR_SET(env->error, AXIS2_ERROR_NO_MEMORY, AXIS2_FAILURE);
		AXIS2_LOG_ERROR(env->log, AXIS2_LOG_SI, "Out of memory");
        return NULL;
    }
    array_list->capacity = capacity;

    return array_list;
}

AXIS2_EXTERN axis2_status_t AXIS2_CALL
axutil_array_list_ensure_capacity(
    struct axutil_array_list * array_list,
    const axutil_env_t * env,
    int min_capacity)
{
    AXIS2_PARAM_CHECK (env->error, array_list, AXIS2_FAILURE);
    if (min_capacity > array_list->capacity)
    {
        int new_capacity = (array_list->capacity * 2 >
             min_capacity) ? (array_list->capacity * 2) : min_capacity;
        void **data = (void **) AXIS2_MALLOC(env->allocator,
            sizeof(void *) * new_capacity);
        if (!data)
        {
            AXIS2_ERROR_SET(env->error, AXIS2_ERROR_NO_MEMORY, AXIS2_FAILURE);
			AXIS2_LOG_ERROR(env->log, AXIS2_LOG_SI, "Out of memory");
            return AXIS2_FAILURE;
        }
        memcpy(data, array_list->data, sizeof(void *) * array_list->capacity);

        AXIS2_FREE(env->allocator, array_list->data);

        array_list->data = data;
        array_list->capacity = new_capacity;
    }
    return AXIS2_SUCCESS;
}

AXIS2_EXTERN int AXIS2_CALL
axutil_array_list_size(
    struct axutil_array_list *array_list,
    const axutil_env_t * env)
{
    /* Don't use AXIS2_PARAM_CHECK to verify array_list, as it clobbers 
       env->error->status_code on no error destroying the information 
       therein that an error has already occurred. */
    if (!array_list)
        return 0;
    return array_list->size;
}

AXIS2_EXTERN axis2_bool_t AXIS2_CALL
axutil_array_list_is_empty(
    struct axutil_array_list * array_list,
    const axutil_env_t * env)
{
    AXIS2_PARAM_CHECK (env->error, array_list, AXIS2_FAILURE);
    return array_list->size == 0;
}

AXIS2_EXTERN axis2_bool_t AXIS2_CALL
axutil_array_list_contains(
    struct axutil_array_list * array_list,
    const axutil_env_t * env,
    void *e)
{
    AXIS2_PARAM_CHECK (env->error, array_list, AXIS2_FAILURE);
    return axutil_array_list_index_of(array_list, env, e) != -1;
}

AXIS2_EXTERN int AXIS2_CALL
axutil_array_list_index_of(
    struct axutil_array_list *array_list,
    const axutil_env_t * env,
    void *e)
{
    int i = 0;

    AXIS2_PARAM_CHECK (env->error, array_list, AXIS2_FAILURE);
    for (i = 0; i < array_list->size; i++)
        if (e == array_list->data[i])
            return i;
    return -1;
}

AXIS2_EXTERN void *AXIS2_CALL
axutil_array_list_get(
    struct axutil_array_list *array_list,
    const axutil_env_t * env,
    int index)
{
    /* Don't use AXIS2_PARAM_CHECK to verify array_list, as it clobbers 
       env->error->status_code on no error destroying the information 
       therein that an error has already occurred. */
    if (axutil_array_list_check_bound_exclusive(array_list, env, index))
        return array_list->data[index];
    else
        return NULL;
}

AXIS2_EXTERN void *AXIS2_CALL
axutil_array_list_set(
    struct axutil_array_list *array_list,
    const axutil_env_t * env,
    int index,
    void *e)
{
    void *result = NULL;

    AXIS2_PARAM_CHECK (env->error, array_list, NULL);
    if (axutil_array_list_check_bound_exclusive(array_list, env, index))
    {
        result = array_list->data[index];
        array_list->data[index] = e;
    }
    return result;
}

AXIS2_EXTERN axis2_status_t AXIS2_CALL
axutil_array_list_add(
    struct axutil_array_list * array_list,
    const axutil_env_t * env,
    const void *e)
{
    AXIS2_PARAM_CHECK (env->error, array_list, AXIS2_FAILURE);
    if (array_list->size == array_list->capacity)
        if (axutil_array_list_ensure_capacity
            (array_list, env, array_list->size + 1) != AXIS2_SUCCESS)
            return AXIS2_FAILURE;
    array_list->data[array_list->size++] = (void *) e;
    return AXIS2_SUCCESS;
}

AXIS2_EXTERN axis2_status_t AXIS2_CALL
axutil_array_list_add_at(
    struct axutil_array_list * array_list,
    const axutil_env_t * env,
    const int index,
    const void *e)
{
    int i = 0;
    AXIS2_PARAM_CHECK (env->error, array_list, AXIS2_FAILURE);

    if (!axutil_array_list_check_bound_inclusive(array_list, env, index))
        return AXIS2_FAILURE;
    if (array_list->size == array_list->capacity)
    {
        if (axutil_array_list_ensure_capacity
            (array_list, env, array_list->size + 1) != AXIS2_SUCCESS)
            return AXIS2_FAILURE;
    }
    if (index != array_list->size)
    {
        for (i = array_list->size; i > index; i--)
            array_list->data[i] = array_list->data[i - 1];
    }
    array_list->data[index] = (void *) e;
    array_list->size++;
    return AXIS2_SUCCESS;
}

AXIS2_EXTERN void *AXIS2_CALL
axutil_array_list_remove(
    struct axutil_array_list *array_list,
    const axutil_env_t * env,
    int index)
{
    void *result = NULL;
    int i = 0;
    AXIS2_PARAM_CHECK (env->error, array_list, NULL);

    if (axutil_array_list_check_bound_exclusive(array_list, env, index))
    {
        result = array_list->data[index];
        for (i = index; i < array_list->size - 1; i++)
            array_list->data[i] = array_list->data[i + 1];
        array_list->size--;
    }

    return result;
}

AXIS2_EXTERN axis2_bool_t AXIS2_CALL
axutil_array_list_check_bound_inclusive(
    struct axutil_array_list * array_list,
    const axutil_env_t * env,
    int index)
{
    /* Don't use AXIS2_PARAM_CHECK to verify array_list, as it clobbers 
       env->error->status_code on no error destroying the information 
       therein that an error has already occurred. */
    if (!array_list || index < 0 || index > array_list->size)
    {
        AXIS2_ERROR_SET(env->error, AXIS2_ERROR_INDEX_OUT_OF_BOUNDS,
                        AXIS2_FAILURE);
        return AXIS2_FALSE;
    }
    return AXIS2_TRUE;
}

AXIS2_EXTERN axis2_bool_t AXIS2_CALL
axutil_array_list_check_bound_exclusive(
    struct axutil_array_list * array_list,
    const axutil_env_t * env,
    int index)
{
    /* Don't use AXIS2_PARAM_CHECK to verify array_list, as it clobbers 
       env->error->status_code on no error destroying the information 
       therein that an error has already occurred. */
    if (!array_list || index < 0 || index >= array_list->size)
    {
        AXIS2_ERROR_SET(env->error, AXIS2_ERROR_INDEX_OUT_OF_BOUNDS,
                        AXIS2_FAILURE);
        return AXIS2_FALSE;
    }
    return AXIS2_TRUE;
}

AXIS2_EXTERN void AXIS2_CALL
axutil_array_list_free(
    struct axutil_array_list *array_list,
    const axutil_env_t * env)
{
    AXIS2_PARAM_CHECK_VOID (env->error, array_list);

    if (array_list->data)
    {
        AXIS2_FREE(env->allocator, array_list->data);
    }
    AXIS2_FREE(env->allocator, array_list);
    return;
}

AXIS2_EXTERN void AXIS2_CALL
axutil_array_list_free_void_arg(
    void *array_list,
    const axutil_env_t * env)
{
    axutil_array_list_t *array_list_l = NULL;

    AXIS2_PARAM_CHECK_VOID (env->error, array_list);

    array_list_l = (axutil_array_list_t *) array_list;
    axutil_array_list_free(array_list_l, env);
    return;
}









<|start_filename|>xdocs/api/html/globals_func.html<|end_filename|>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html><head><meta http-equiv="Content-Type" content="text/html;charset=UTF-8">
<title>Axis2/C: Class Members</title>
<link href="doxygen.css" rel="stylesheet" type="text/css">
<link href="tabs.css" rel="stylesheet" type="text/css">
</head><body>
<!-- Generated by Doxygen 1.5.3 -->
<div class="tabs">
  <ul>
    <li><a href="index.html"><span>Main&nbsp;Page</span></a></li>
    <li><a href="modules.html"><span>Modules</span></a></li>
    <li><a href="annotated.html"><span>Classes</span></a></li>
    <li class="current"><a href="files.html"><span>Files</span></a></li>
    <li><a href="dirs.html"><span>Directories</span></a></li>
    <li><a href="pages.html"><span>Related&nbsp;Pages</span></a></li>
    <li><a href="examples.html"><span>Examples</span></a></li>
    <li>
      <form action="search.php" method="get">
        <table cellspacing="0" cellpadding="0" border="0">
          <tr>
            <td><label>&nbsp;<u>S</u>earch&nbsp;for&nbsp;</label></td>
            <td><input type="text" name="query" value="" size="20" accesskey="s"/></td>
          </tr>
        </table>
      </form>
    </li>
  </ul>
</div>
<div class="tabs">
  <ul>
    <li><a href="files.html"><span>File&nbsp;List</span></a></li>
    <li class="current"><a href="globals.html"><span>File&nbsp;Members</span></a></li>
  </ul>
</div>
<div class="tabs">
  <ul>
    <li><a href="globals.html"><span>All</span></a></li>
    <li class="current"><a href="globals_func.html"><span>Functions</span></a></li>
    <li><a href="globals_type.html"><span>Typedefs</span></a></li>
    <li><a href="globals_enum.html"><span>Enumerations</span></a></li>
    <li><a href="globals_eval.html"><span>Enumerator</span></a></li>
    <li><a href="globals_defs.html"><span>Defines</span></a></li>
  </ul>
</div>
<div class="tabs">
  <ul>
    <li class="current"><a href="globals_func.html#index_a"><span>a</span></a></li>
    <li><a href="globals_func_0x67.html#index_g"><span>g</span></a></li>
    <li><a href="globals_func_0x6e.html#index_n"><span>n</span></a></li>
    <li><a href="globals_func_0x73.html#index_s"><span>s</span></a></li>
  </ul>
</div>

<p>
&nbsp;
<p>
<h3><a class="anchor" name="index_a">- a -</a></h3><ul>
<li>axiom_attribute_clone()
: <a class="el" href="group__axiom__attribute.html#g21014966fb2d80f589bbbe23a66ff478">axiom_attribute.h</a>
<li>axiom_attribute_create()
: <a class="el" href="group__axiom__attribute.html#gda66e5da53578d93c34f0c717394605d">axiom_attribute.h</a>
<li>axiom_attribute_create_str()
: <a class="el" href="group__axiom__attribute.html#gb9836150f9d8af4256bcadace600c79f">axiom_attribute.h</a>
<li>axiom_attribute_free()
: <a class="el" href="group__axiom__attribute.html#gd28f7c80adad15d93a1be5a8918c92c9">axiom_attribute.h</a>
<li>axiom_attribute_free_void_arg()
: <a class="el" href="group__axiom__attribute.html#geb9ac7efe5dbb33273cd37c9ddc99b0a">axiom_attribute.h</a>
<li>axiom_attribute_get_localname()
: <a class="el" href="group__axiom__attribute.html#g7ec0c8a1b00cdd260d3bbbe9c25d48d6">axiom_attribute.h</a>
<li>axiom_attribute_get_localname_str()
: <a class="el" href="group__axiom__attribute.html#g9e36fa98afd7d60eff62da45e760dce4">axiom_attribute.h</a>
<li>axiom_attribute_get_namespace()
: <a class="el" href="group__axiom__attribute.html#gf5237ea2eed7bb6326f19e2cda6ffe9c">axiom_attribute.h</a>
<li>axiom_attribute_get_qname()
: <a class="el" href="group__axiom__attribute.html#g749197cc40576ff4139c9d19298f9f24">axiom_attribute.h</a>
<li>axiom_attribute_get_value()
: <a class="el" href="group__axiom__attribute.html#g95d26b917b6beea23aada61bf1402376">axiom_attribute.h</a>
<li>axiom_attribute_get_value_str()
: <a class="el" href="group__axiom__attribute.html#g0f1e956758b142ba21d18dcd30cca1d9">axiom_attribute.h</a>
<li>axiom_attribute_increment_ref()
: <a class="el" href="group__axiom__attribute.html#g4e9157492474b5a0e828935b606f943e">axiom_attribute.h</a>
<li>axiom_attribute_serialize()
: <a class="el" href="group__axiom__attribute.html#gac6dabe7926ef1275437d5b5d1363108">axiom_attribute.h</a>
<li>axiom_attribute_set_localname()
: <a class="el" href="group__axiom__attribute.html#g45d596e4d7eaf81d205f9b8f01c580e5">axiom_attribute.h</a>
<li>axiom_attribute_set_localname_str()
: <a class="el" href="group__axiom__attribute.html#g5433c75c8f87f602ae89c9943f45df81">axiom_attribute.h</a>
<li>axiom_attribute_set_namespace()
: <a class="el" href="group__axiom__attribute.html#g4b27824f6bb94509562fe09644adf9a3">axiom_attribute.h</a>
<li>axiom_attribute_set_value()
: <a class="el" href="group__axiom__attribute.html#g04e602a4d9456b9111bdbad5ea89a0ec">axiom_attribute.h</a>
<li>axiom_attribute_set_value_str()
: <a class="el" href="group__axiom__attribute.html#g10bfe30de55eb9f2f19829b1578913c1">axiom_attribute.h</a>
<li>axiom_child_element_iterator_create()
: <a class="el" href="group__axiom__child__element__iterator.html#g22b11e124caa715ecf3d31fb58991154">axiom_child_element_iterator.h</a>
<li>axiom_child_element_iterator_free()
: <a class="el" href="group__axiom__child__element__iterator.html#gc3408b3bce2aad5ff7e0d5f66684e583">axiom_child_element_iterator.h</a>
<li>axiom_child_element_iterator_has_next()
: <a class="el" href="group__axiom__child__element__iterator.html#g6abb5119797edb10f7f2aebfa48d4c3b">axiom_child_element_iterator.h</a>
<li>axiom_child_element_iterator_next()
: <a class="el" href="group__axiom__child__element__iterator.html#geb91b34e1dc19eaeb969179ce8e85b27">axiom_child_element_iterator.h</a>
<li>axiom_child_element_iterator_remove()
: <a class="el" href="group__axiom__child__element__iterator.html#g5fdb1dfafa5ec44ffc46f3bb1301cd86">axiom_child_element_iterator.h</a>
<li>axiom_children_iterator_create()
: <a class="el" href="group__axiom__children__iterator.html#ge1e162cfd416427d54f339543e580d48">axiom_children_iterator.h</a>
<li>axiom_children_iterator_free()
: <a class="el" href="group__axiom__children__iterator.html#gaf7cc3ef96f809a6a28d1d9884669f39">axiom_children_iterator.h</a>
<li>axiom_children_iterator_has_next()
: <a class="el" href="group__axiom__children__iterator.html#g2feaa85fe1cc83968e6f8bb51cc546d7">axiom_children_iterator.h</a>
<li>axiom_children_iterator_next()
: <a class="el" href="group__axiom__children__iterator.html#gf494b239eadffce560091d7896b1ab8f">axiom_children_iterator.h</a>
<li>axiom_children_iterator_remove()
: <a class="el" href="group__axiom__children__iterator.html#g43a2456b06e06c44abb0d0cc93230514">axiom_children_iterator.h</a>
<li>axiom_children_iterator_reset()
: <a class="el" href="group__axiom__children__iterator.html#g0a84a4adc451ea9428f38bef04a8f0af">axiom_children_iterator.h</a>
<li>axiom_children_qname_iterator_free()
: <a class="el" href="group__axiom__children__qname__iterator.html#gfad46c799aceae357a7e35da9bda1f1a">axiom_children_qname_iterator.h</a>
<li>axiom_children_qname_iterator_has_next()
: <a class="el" href="group__axiom__children__qname__iterator.html#ge1a3ae54bd136f343484e2b9733d8a51">axiom_children_qname_iterator.h</a>
<li>axiom_children_qname_iterator_next()
: <a class="el" href="group__axiom__children__qname__iterator.html#gf407f75da538e75839c59fa385017680">axiom_children_qname_iterator.h</a>
<li>axiom_children_qname_iterator_remove()
: <a class="el" href="group__axiom__children__qname__iterator.html#g6c9fd0776505254c0073943eece20134">axiom_children_qname_iterator.h</a>
<li>axiom_children_with_specific_attribute_iterator_create()
: <a class="el" href="group__axiom__children__with__specific__attribute__iterator.html#g5fccc2bf8a745e68567b33227ef89c59">axiom_children_with_specific_attribute_iterator.h</a>
<li>axiom_children_with_specific_attribute_iterator_free()
: <a class="el" href="group__axiom__children__with__specific__attribute__iterator.html#g3ca5674c5cd482e3dcce3ebc443f1804">axiom_children_with_specific_attribute_iterator.h</a>
<li>axiom_children_with_specific_attribute_iterator_has_next()
: <a class="el" href="group__axiom__children__with__specific__attribute__iterator.html#g4965a74d2c7af2a6f0588c3cc15c13ec">axiom_children_with_specific_attribute_iterator.h</a>
<li>axiom_children_with_specific_attribute_iterator_next()
: <a class="el" href="group__axiom__children__with__specific__attribute__iterator.html#g82d5c3904628c6fac0333ad55b904066">axiom_children_with_specific_attribute_iterator.h</a>
<li>axiom_children_with_specific_attribute_iterator_remove()
: <a class="el" href="group__axiom__children__with__specific__attribute__iterator.html#g5a6f6f5c3e00b9bc512ee30d8e452413">axiom_children_with_specific_attribute_iterator.h</a>
<li>axiom_comment_create()
: <a class="el" href="group__axiom__comment.html#g62b7b89d4be6473a3a801fa2d5a0d582">axiom_comment.h</a>
<li>axiom_comment_free()
: <a class="el" href="group__axiom__comment.html#g9635ad8ab4986d9ed2411937363b4427">axiom_comment.h</a>
<li>axiom_comment_get_value()
: <a class="el" href="group__axiom__comment.html#g66d8119c3ee5f76a1b1bf71997ede19f">axiom_comment.h</a>
<li>axiom_comment_serialize()
: <a class="el" href="group__axiom__comment.html#g63c10f9db415e1f08bbb37624bd8c96d">axiom_comment.h</a>
<li>axiom_comment_set_value()
: <a class="el" href="group__axiom__comment.html#g52c8c57ae6df3175de853f09ea54c71f">axiom_comment.h</a>
<li>axiom_data_handler_create()
: <a class="el" href="group__axiom__data__handler.html#gf1a1862c29144a3234025b1218a83c97">axiom_data_handler.h</a>
<li>axiom_data_handler_free()
: <a class="el" href="group__axiom__data__handler.html#g790d6d952b28f7aa0202216ef5074489">axiom_data_handler.h</a>
<li>axiom_data_handler_get_cached()
: <a class="el" href="group__axiom__data__handler.html#g12b16a32671739f4faa56c72ec99bc8c">axiom_data_handler.h</a>
<li>axiom_data_handler_get_content_type()
: <a class="el" href="group__axiom__data__handler.html#ga132e800329243265ca138c661fa34d5">axiom_data_handler.h</a>
<li>axiom_data_handler_get_file_name()
: <a class="el" href="group__axiom__data__handler.html#g0eb87b388f6a8d1c8df21b685cea0161">axiom_data_handler.h</a>
<li>axiom_data_handler_get_input_stream()
: <a class="el" href="group__axiom__data__handler.html#g1fcb504cd3cdb758b5247066c1cb332c">axiom_data_handler.h</a>
<li>axiom_data_handler_get_input_stream_len()
: <a class="el" href="group__axiom__data__handler.html#g2f9ba62f37963b8425b85710a1873845">axiom_data_handler.h</a>
<li>axiom_data_handler_read_from()
: <a class="el" href="group__axiom__data__handler.html#ge35b85ccac0a5bd5fd659124c75d5ca2">axiom_data_handler.h</a>
<li>axiom_data_handler_set_binary_data()
: <a class="el" href="group__axiom__data__handler.html#gcdd5abcf6725059de9409e8ea486980b">axiom_data_handler.h</a>
<li>axiom_data_handler_set_cached()
: <a class="el" href="group__axiom__data__handler.html#gc6da7f863c5e580fc47dcf6a380f4d57">axiom_data_handler.h</a>
<li>axiom_data_handler_set_content_type()
: <a class="el" href="group__axiom__data__handler.html#gbd786bd0c93181d5232492e486d59799">axiom_data_handler.h</a>
<li>axiom_data_handler_set_file_name()
: <a class="el" href="group__axiom__data__handler.html#g5a80fd78e575238e58fc38062a689258">axiom_data_handler.h</a>
<li>axiom_data_handler_set_mime_id()
: <a class="el" href="group__axiom__data__handler.html#g276407df5df9bf7600ee499c4c2952ba">axiom_data_handler.h</a>
<li>axiom_data_handler_write_to()
: <a class="el" href="group__axiom__data__handler.html#g47e0e307ecd1fc27223fb67f10e194ed">axiom_data_handler.h</a>
<li>axiom_data_source_create()
: <a class="el" href="group__axiom__data__source.html#g9b82e6341822df244dead7cd94df063c">axiom_data_source.h</a>
<li>axiom_data_source_free()
: <a class="el" href="group__axiom__data__source.html#g3465c61c35c61c6886be0326beef86c6">axiom_data_source.h</a>
<li>axiom_data_source_get_stream()
: <a class="el" href="group__axiom__data__source.html#g7d282214512f2f2b21fdab3a2826140f">axiom_data_source.h</a>
<li>axiom_data_source_serialize()
: <a class="el" href="group__axiom__data__source.html#g488ccc8d887b633e749a88ac260fb9c7">axiom_data_source.h</a>
<li>axiom_doctype_create()
: <a class="el" href="group__axiom__doctype.html#gf5a0bbfb2f36e549919f1aa3fb6982c8">axiom_doctype.h</a>
<li>axiom_doctype_free()
: <a class="el" href="group__axiom__doctype.html#g4704fda24ab25f215df0bca1a71ff26f">axiom_doctype.h</a>
<li>axiom_doctype_get_value()
: <a class="el" href="group__axiom__doctype.html#gaafffb4fb25cdc52471c381de62e5d46">axiom_doctype.h</a>
<li>axiom_doctype_serialize()
: <a class="el" href="group__axiom__doctype.html#gb6fc65e0ba230a28101b082e7490c1f0">axiom_doctype.h</a>
<li>axiom_doctype_set_value()
: <a class="el" href="group__axiom__doctype.html#g7a9798d07369fd4a0a3cff0098e55886">axiom_doctype.h</a>
<li>axiom_document_build_all()
: <a class="el" href="group__axiom__document.html#g8c20adf1ab6226417b5946d72f8888d1">axiom_document.h</a>
<li>axiom_document_build_next()
: <a class="el" href="group__axiom__document.html#g3f02c87e2de3ca020f867a8496346967">axiom_document.h</a>
<li>axiom_document_create()
: <a class="el" href="group__axiom__document.html#gf15c8c5b6476d1ca0f256ff56854b5af">axiom_document.h</a>
<li>axiom_document_free()
: <a class="el" href="group__axiom__document.html#gcc7942d49c50f48f063e9576c361e939">axiom_document.h</a>
<li>axiom_document_free_self()
: <a class="el" href="group__axiom__document.html#g03b25353883e6de5acbc0b80bcb0b456">axiom_document.h</a>
<li>axiom_document_get_builder()
: <a class="el" href="group__axiom__document.html#g8663a5625accd15c3ae99c5a9b5a68e1">axiom_document.h</a>
<li>axiom_document_get_root_element()
: <a class="el" href="group__axiom__document.html#ge81610bc3a9b0124ad91f502c3b36f7d">axiom_document.h</a>
<li>axiom_document_serialize()
: <a class="el" href="group__axiom__document.html#g7e34e3977661164aedae9b5d2dd9ada5">axiom_document.h</a>
<li>axiom_document_set_builder()
: <a class="el" href="group__axiom__document.html#g616f57c62b173076d9cc94eb7caca957">axiom_document.h</a>
<li>axiom_document_set_root_element()
: <a class="el" href="group__axiom__document.html#gca387e2c8ed19b5bd4123fc6455fa071">axiom_document.h</a>
<li>axiom_mime_parser_create()
: <a class="el" href="group__axiom__mime__parser.html#g05b3c82c78a50ffe9d1d05fffdc4c2ee">axiom_mime_parser.h</a>
<li>axiom_mime_parser_free()
: <a class="el" href="group__axiom__mime__parser.html#g0d0558064a7fca5445a4840be45b2600">axiom_mime_parser.h</a>
<li>axiom_mime_parser_get_mime_parts_map()
: <a class="el" href="group__axiom__mime__parser.html#g617b19ac339bcd891757054a089c3f84">axiom_mime_parser.h</a>
<li>axiom_mime_parser_get_soap_body_len()
: <a class="el" href="group__axiom__mime__parser.html#g40a67e95af791703fa91d7b796ea89a2">axiom_mime_parser.h</a>
<li>axiom_mime_parser_get_soap_body_str()
: <a class="el" href="group__axiom__mime__parser.html#g6550688f1ddcc45d11363947f441e2be">axiom_mime_parser.h</a>
<li>axiom_mime_parser_parse_for_soap()
: <a class="el" href="group__axiom__mime__parser.html#gdc5c7fd17d2589e7bcb82db28a2ee2c7">axiom_mime_parser.h</a>
<li>axiom_mime_parser_set_attachment_dir()
: <a class="el" href="group__axiom__mime__parser.html#gd8edc291c3b20e88329ee6e077ca3a0c">axiom_mime_parser.h</a>
<li>axiom_mime_parser_set_buffer_size()
: <a class="el" href="group__axiom__mime__parser.html#gbe1b6ea790d1a5315b0b46df54e26a2e">axiom_mime_parser.h</a>
<li>axiom_mime_parser_set_caching_callback_name()
: <a class="el" href="group__axiom__mime__parser.html#g6440482e9821e7bd06be17382568f9b2">axiom_mime_parser.h</a>
<li>axiom_mime_parser_set_max_buffers()
: <a class="el" href="group__axiom__mime__parser.html#g5673d9d89ee85532d51e16756c712e68">axiom_mime_parser.h</a>
<li>axiom_mime_part_create()
: <a class="el" href="axiom__mime__part_8h.html#e71826186bee5d49b56847a207cafcfc">axiom_mime_part.h</a>
<li>axiom_node_add_child()
: <a class="el" href="group__axiom__node.html#gd0406c625e1dbde273a6010cf8bab38c">axiom_node.h</a>
<li>axiom_node_create()
: <a class="el" href="group__axiom__node.html#g1558b403be5c6339997a7730596337bb">axiom_node.h</a>
<li>axiom_node_create_from_buffer()
: <a class="el" href="group__axiom__node.html#gaf55148ae4b5101b0688900819eb6823">axiom_node.h</a>
<li>axiom_node_detach()
: <a class="el" href="group__axiom__node.html#g8b581d1db9d2a0f80abe5aa3bf6cae2d">axiom_node.h</a>
<li>axiom_node_free_tree()
: <a class="el" href="group__axiom__node.html#g934d857b13c36866a6c85078f156bc82">axiom_node.h</a>
<li>axiom_node_get_data_element()
: <a class="el" href="group__axiom__node.html#geb488e8c836956940ea4c01b92a0c421">axiom_node.h</a>
<li>axiom_node_get_document()
: <a class="el" href="group__axiom__node.html#g2bdaabafdd623955d2837ad00e536603">axiom_node.h</a>
<li>axiom_node_get_first_child()
: <a class="el" href="group__axiom__node.html#gfc7806095f1e72667a49eab5945b66e3">axiom_node.h</a>
<li>axiom_node_get_first_element()
: <a class="el" href="group__axiom__node.html#g2c569263c409668ff1b653aeb7712bb5">axiom_node.h</a>
<li>axiom_node_get_last_child()
: <a class="el" href="group__axiom__node.html#g9f55bfff8ac1c89995dfc93d47ddcd0a">axiom_node.h</a>
<li>axiom_node_get_next_sibling()
: <a class="el" href="group__axiom__node.html#g6d91d78cb733d34724901e75887e85c9">axiom_node.h</a>
<li>axiom_node_get_node_type()
: <a class="el" href="group__axiom__node.html#g5f0287bd7a7487da62528717787b69b4">axiom_node.h</a>
<li>axiom_node_get_parent()
: <a class="el" href="group__axiom__node.html#g95cc9c4355bfab75e03ad61014b72075">axiom_node.h</a>
<li>axiom_node_get_previous_sibling()
: <a class="el" href="group__axiom__node.html#g39a92d131beb6295b849d9853ee89db7">axiom_node.h</a>
<li>axiom_node_insert_sibling_after()
: <a class="el" href="group__axiom__node.html#gd3f52c5c7c9886cc3dc3483c26919e72">axiom_node.h</a>
<li>axiom_node_insert_sibling_before()
: <a class="el" href="group__axiom__node.html#ged3250c790969964a948b0469207a735">axiom_node.h</a>
<li>axiom_node_is_complete()
: <a class="el" href="group__axiom__node.html#g94ec253a7993a968b8a2e5fc80c7f5f3">axiom_node.h</a>
<li>axiom_node_serialize()
: <a class="el" href="group__axiom__node.html#g1936a8e535927d9726d804092ad9d4d3">axiom_node.h</a>
<li>axiom_node_serialize_sub_tree()
: <a class="el" href="group__axiom__node.html#ga5e126b3d2462d4569e0d4b0a9bcd80e">axiom_node.h</a>
<li>axiom_node_sub_tree_to_string()
: <a class="el" href="group__axiom__node.html#g7fa2bbf70033a1eb6943a9b2c1c4de59">axiom_node.h</a>
<li>axiom_node_to_string()
: <a class="el" href="group__axiom__node.html#g0cf9fdca65f2b7c5ab0e485cf21bc3ba">axiom_node.h</a>
<li>axiom_node_to_string_non_optimized()
: <a class="el" href="group__axiom__node.html#g9f6d265d8c276d0925aef199396cda0a">axiom_node.h</a>
<li>axiom_soap_body_add_child()
: <a class="el" href="group__axiom__soap__body.html#g67ce69f3f13c325bd541fff5a2059d49">axiom_soap_body.h</a>
<li>axiom_soap_body_build()
: <a class="el" href="group__axiom__soap__body.html#g5a7066590890390e527b0a718178c785">axiom_soap_body.h</a>
<li>axiom_soap_body_convert_fault_to_soap11()
: <a class="el" href="group__axiom__soap__body.html#g9e5fafdf4c3be8634b6460caaf2483c0">axiom_soap_body.h</a>
<li>axiom_soap_body_create_with_parent()
: <a class="el" href="group__axiom__soap__body.html#ged07d656f1b298588cdbc539609d979f">axiom_soap_body.h</a>
<li>axiom_soap_body_free()
: <a class="el" href="group__axiom__soap__body.html#g34c1b50ba393f19106007eed20104e1d">axiom_soap_body.h</a>
<li>axiom_soap_body_get_base_node()
: <a class="el" href="group__axiom__soap__body.html#g9bbf0f7a4ecab44106145d9b97f07dfc">axiom_soap_body.h</a>
<li>axiom_soap_body_get_fault()
: <a class="el" href="group__axiom__soap__body.html#ga5be4d54bfebaa44966685511e2ad96b">axiom_soap_body.h</a>
<li>axiom_soap_body_get_soap_version()
: <a class="el" href="group__axiom__soap__body.html#ge87f17d53d2995ac6c3b05be6d7dddaa">axiom_soap_body.h</a>
<li>axiom_soap_body_has_fault()
: <a class="el" href="group__axiom__soap__body.html#g5e88d50ff93d508053b3920f301f301c">axiom_soap_body.h</a>
<li>axiom_soap_builder_create()
: <a class="el" href="group__axiom__soap__builder.html#g774e5f3b0fd997c686481d8ec16c2264">axiom_soap_builder.h</a>
<li>axiom_soap_builder_free()
: <a class="el" href="group__axiom__soap__builder.html#gf57256b5e28bf4df73bb2ff089263a9d">axiom_soap_builder.h</a>
<li>axiom_soap_builder_get_document()
: <a class="el" href="group__axiom__soap__builder.html#g9889a86a4c589ea9140e6c7c0f427261">axiom_soap_builder.h</a>
<li>axiom_soap_builder_get_document_element()
: <a class="el" href="group__axiom__soap__builder.html#g612ed080bcef174cde30adb0fc087c2a">axiom_soap_builder.h</a>
<li>axiom_soap_builder_get_mime_body_parts()
: <a class="el" href="group__axiom__soap__builder.html#g41b1ec4410e05ade94e2cde9397a616d">axiom_soap_builder.h</a>
<li>axiom_soap_builder_get_soap_envelope()
: <a class="el" href="group__axiom__soap__builder.html#geb67f37a1ab8b01af8f9073c137cd92b">axiom_soap_builder.h</a>
<li>axiom_soap_builder_get_soap_version()
: <a class="el" href="group__axiom__soap__builder.html#g023955efd4b61a9a8852a5c79e893c48">axiom_soap_builder.h</a>
<li>axiom_soap_builder_is_processing_detail_elements()
: <a class="el" href="group__axiom__soap__builder.html#gb428e7fa5b20be177e665700d34aa138">axiom_soap_builder.h</a>
<li>axiom_soap_builder_next()
: <a class="el" href="group__axiom__soap__builder.html#gbb3d06154356e916298f4740d5b8eaeb">axiom_soap_builder.h</a>
<li>axiom_soap_builder_process_namespace_data()
: <a class="el" href="group__axiom__soap__builder.html#g6b11917cd8ae237471cb800083f20873">axiom_soap_builder.h</a>
<li>axiom_soap_builder_set_bool_processing_mandatory_fault_elements()
: <a class="el" href="group__axiom__soap__builder.html#g87f4a91ddb83e585b2e06c1584bb503b">axiom_soap_builder.h</a>
<li>axiom_soap_builder_set_callback_ctx()
: <a class="el" href="group__axiom__soap__builder.html#gc031d875440a4006012395dd0de317d0">axiom_soap_builder.h</a>
<li>axiom_soap_builder_set_callback_function()
: <a class="el" href="group__axiom__soap__builder.html#gecdfaf38e60ea4bdc42e9cde3bd25486">axiom_soap_builder.h</a>
<li>axiom_soap_builder_set_mime_body_parts()
: <a class="el" href="group__axiom__soap__builder.html#g3402c29c059ffbb670cd412871b65e13">axiom_soap_builder.h</a>
<li>axiom_soap_builder_set_mime_parser()
: <a class="el" href="group__axiom__soap__builder.html#gea4871693c3e2aa81ae285bbe9c98a30">axiom_soap_builder.h</a>
<li>axiom_soap_builder_set_processing_detail_elements()
: <a class="el" href="group__axiom__soap__builder.html#g4b4ece690ddf6f42c3a0151e4718be72">axiom_soap_builder.h</a>
<li>axiom_soap_envelope_create()
: <a class="el" href="group__axiom__soap__envelope.html#g5041f00b86da0b31997634056ab91879">axiom_soap_envelope.h</a>
<li>axiom_soap_envelope_create_default_soap_envelope()
: <a class="el" href="group__axiom__soap__envelope.html#gcc0331effc60b8a61285e3ec07e32652">axiom_soap_envelope.h</a>
<li>axiom_soap_envelope_create_default_soap_fault_envelope()
: <a class="el" href="group__axiom__soap__envelope.html#gb7fc6e54a5c354e7e5f285c78e7f7fc0">axiom_soap_envelope.h</a>
<li>axiom_soap_envelope_create_with_soap_version_prefix()
: <a class="el" href="group__axiom__soap__envelope.html#g13d7cc5563a577ffe36537fcab3c6220">axiom_soap_envelope.h</a>
<li>axiom_soap_envelope_free()
: <a class="el" href="group__axiom__soap__envelope.html#g133462e3b74e84e2ad650fa7b54b303b">axiom_soap_envelope.h</a>
<li>axiom_soap_envelope_get_base_node()
: <a class="el" href="group__axiom__soap__envelope.html#ga494a9aa5bb5567f6362ed6ba45ecf32">axiom_soap_envelope.h</a>
<li>axiom_soap_envelope_get_body()
: <a class="el" href="group__axiom__soap__envelope.html#g662a2d8cd4bf9a7a82f79492c9b16ad3">axiom_soap_envelope.h</a>
<li>axiom_soap_envelope_get_header()
: <a class="el" href="group__axiom__soap__envelope.html#ge45fe5ee486a2cba9fd1fbdf50211b36">axiom_soap_envelope.h</a>
<li>axiom_soap_envelope_get_namespace()
: <a class="el" href="group__axiom__soap__envelope.html#ga357f2d36fb2912f9c6bc258a6cb8c0d">axiom_soap_envelope.h</a>
<li>axiom_soap_envelope_get_soap_builder()
: <a class="el" href="group__axiom__soap__envelope.html#g17b40326cf1e991991e667f7ea559640">axiom_soap_envelope.h</a>
<li>axiom_soap_envelope_get_soap_version()
: <a class="el" href="group__axiom__soap__envelope.html#g9f64833d41691f1ae7db590fd11aa25c">axiom_soap_envelope.h</a>
<li>axiom_soap_envelope_increment_ref()
: <a class="el" href="group__axiom__soap__envelope.html#ge4c0fcc8adc7d8d816c81f009bb81e0d">axiom_soap_envelope.h</a>
<li>axiom_soap_envelope_serialize()
: <a class="el" href="group__axiom__soap__envelope.html#gf409ccdda293c3e5b8b0e3da3e5417be">axiom_soap_envelope.h</a>
<li>axiom_soap_envelope_set_soap_version()
: <a class="el" href="group__axiom__soap__envelope.html#g2d58cc830b1e909c68424349746e93a8">axiom_soap_envelope.h</a>
<li>axiom_soap_fault_code_create_with_parent()
: <a class="el" href="group__axiom__soap__fault__code.html#g118a27d270da7111861d94c1301be667">axiom_soap_fault_code.h</a>
<li>axiom_soap_fault_code_create_with_parent_value()
: <a class="el" href="group__axiom__soap__fault__code.html#ge71666a1e807569863113eafee61e10b">axiom_soap_fault_code.h</a>
<li>axiom_soap_fault_code_free()
: <a class="el" href="group__axiom__soap__fault__code.html#gfdd4b60f7ffa4b77e26fed1bdc80c649">axiom_soap_fault_code.h</a>
<li>axiom_soap_fault_code_get_base_node()
: <a class="el" href="group__axiom__soap__fault__code.html#g4161bbc9b6f72ed1c807d37a05351792">axiom_soap_fault_code.h</a>
<li>axiom_soap_fault_code_get_sub_code()
: <a class="el" href="group__axiom__soap__fault__code.html#gc83114a60ca4484a736ea3d83039a897">axiom_soap_fault_code.h</a>
<li>axiom_soap_fault_code_get_value()
: <a class="el" href="group__axiom__soap__fault__code.html#g3fa2d0d9855320b37aa4f2d8a5fa1363">axiom_soap_fault_code.h</a>
<li>axiom_soap_fault_create_default_fault()
: <a class="el" href="group__axiom__soap__fault.html#ga4dfaa0b36503de97f4b4a6b9c1fce94">axiom_soap_fault.h</a>
<li>axiom_soap_fault_create_with_exception()
: <a class="el" href="group__axiom__soap__fault.html#gde9cbf2c313c0adeedea3ac60bf148b4">axiom_soap_fault.h</a>
<li>axiom_soap_fault_create_with_parent()
: <a class="el" href="group__axiom__soap__fault.html#g26600e5d6fad315500cad1752d60353d">axiom_soap_fault.h</a>
<li>axiom_soap_fault_detail_add_detail_entry()
: <a class="el" href="group__axiom__soap__fault__detail.html#g30e68309c908c12c28fc2721db04296b">axiom_soap_fault_detail.h</a>
<li>axiom_soap_fault_detail_create_with_parent()
: <a class="el" href="group__axiom__soap__fault__detail.html#ga176a5c0fe38155991dddde2e8d36229">axiom_soap_fault_detail.h</a>
<li>axiom_soap_fault_detail_free()
: <a class="el" href="group__axiom__soap__fault__detail.html#g04a0d4c7bb96ffa60a7b5e4a6440af79">axiom_soap_fault_detail.h</a>
<li>axiom_soap_fault_detail_get_all_detail_entries()
: <a class="el" href="group__axiom__soap__fault__detail.html#g211f2e71c7d481d141498b3d0ab6d8c0">axiom_soap_fault_detail.h</a>
<li>axiom_soap_fault_detail_get_base_node()
: <a class="el" href="group__axiom__soap__fault__detail.html#g85a5beb382158427f7d560b62bdd2fa3">axiom_soap_fault_detail.h</a>
<li>axiom_soap_fault_free()
: <a class="el" href="group__axiom__soap__fault.html#g42e25abd4f06fe253fcb286cde0b2cb8">axiom_soap_fault.h</a>
<li>axiom_soap_fault_get_base_node()
: <a class="el" href="group__axiom__soap__fault.html#g10bfdaaa36e70a7cab19f4d871cac698">axiom_soap_fault.h</a>
<li>axiom_soap_fault_get_code()
: <a class="el" href="group__axiom__soap__fault.html#gdc09d5b63b273d0ad5ab13a1e6fed5c8">axiom_soap_fault.h</a>
<li>axiom_soap_fault_get_detail()
: <a class="el" href="group__axiom__soap__fault.html#gefcbf6ce5d6408bc3f56da09ac2f9afa">axiom_soap_fault.h</a>
<li>axiom_soap_fault_get_exception()
: <a class="el" href="group__axiom__soap__fault.html#g09b8c77a2a3de953b14fa8a56a8ed11e">axiom_soap_fault.h</a>
<li>axiom_soap_fault_get_node()
: <a class="el" href="group__axiom__soap__fault.html#ga63629df8b84a56382c391e4fc0f30e1">axiom_soap_fault.h</a>
<li>axiom_soap_fault_get_reason()
: <a class="el" href="group__axiom__soap__fault.html#g849b1969173ab4ff6394867262770179">axiom_soap_fault.h</a>
<li>axiom_soap_fault_get_role()
: <a class="el" href="group__axiom__soap__fault.html#gd83a049e57b3aec2aba62dd8d3349a94">axiom_soap_fault.h</a>
<li>axiom_soap_fault_node_create_with_parent()
: <a class="el" href="group__axiom__soap__fault__node.html#gba7df4c62d60b0dcee65c5cc9fa9482a">axiom_soap_fault_node.h</a>
<li>axiom_soap_fault_node_free()
: <a class="el" href="group__axiom__soap__fault__node.html#gd0154dab46d6359bec398b15c8366e32">axiom_soap_fault_node.h</a>
<li>axiom_soap_fault_node_get_base_node()
: <a class="el" href="group__axiom__soap__fault__node.html#ge0042486c9cf7de00a33470328b7b54f">axiom_soap_fault_node.h</a>
<li>axiom_soap_fault_node_get_value()
: <a class="el" href="group__axiom__soap__fault__node.html#g05a2e001e1e82b12e6bf1a6c7b619326">axiom_soap_fault_node.h</a>
<li>axiom_soap_fault_node_set_value()
: <a class="el" href="group__axiom__soap__fault__node.html#g7b3b82afef78ea3686d668b02a205ce6">axiom_soap_fault_node.h</a>
<li>axiom_soap_fault_reason_add_soap_fault_text()
: <a class="el" href="group__axiom__soap__fault__reason.html#g7f1ab419bbb1d48404811c18d58ebef0">axiom_soap_fault_reason.h</a>
<li>axiom_soap_fault_reason_create_with_parent()
: <a class="el" href="group__axiom__soap__fault__reason.html#g59ece99159afbd30946a59b5b7a2c094">axiom_soap_fault_reason.h</a>
<li>axiom_soap_fault_reason_free()
: <a class="el" href="group__axiom__soap__fault__reason.html#g0c66d7b20921746f695c48315fce3b8d">axiom_soap_fault_reason.h</a>
<li>axiom_soap_fault_reason_get_all_soap_fault_texts()
: <a class="el" href="group__axiom__soap__fault__reason.html#ge03a74d45b0ecd4da089c00c2fe01a3b">axiom_soap_fault_reason.h</a>
<li>axiom_soap_fault_reason_get_base_node()
: <a class="el" href="group__axiom__soap__fault__reason.html#gbcb9c1530fc5e98650663b07d0be4ddc">axiom_soap_fault_reason.h</a>
<li>axiom_soap_fault_reason_get_first_soap_fault_text()
: <a class="el" href="group__axiom__soap__fault__reason.html#ge33699fe9001ee509233d1055d2390a5">axiom_soap_fault_reason.h</a>
<li>axiom_soap_fault_reason_get_soap_fault_text()
: <a class="el" href="group__axiom__soap__fault__reason.html#g954ae459d11fa8b57d48a23bd1846b38">axiom_soap_fault_reason.h</a>
<li>axiom_soap_fault_role_create_with_parent()
: <a class="el" href="group__axiom__soap__fault__role.html#ge4555a85573415bb8b4276acf1ee5694">axiom_soap_fault_role.h</a>
<li>axiom_soap_fault_role_free()
: <a class="el" href="group__axiom__soap__fault__role.html#g65884e3c4a1f088240630672ab24eb06">axiom_soap_fault_role.h</a>
<li>axiom_soap_fault_role_get_base_node()
: <a class="el" href="group__axiom__soap__fault__role.html#g609089f41190a886185cc053560e1c80">axiom_soap_fault_role.h</a>
<li>axiom_soap_fault_role_get_role_value()
: <a class="el" href="group__axiom__soap__fault__role.html#gdb8ca065a0f02b9bb7c508c013e6d04a">axiom_soap_fault_role.h</a>
<li>axiom_soap_fault_role_set_role_value()
: <a class="el" href="group__axiom__soap__fault__role.html#g6603a9ab284b22b294ce54e7b01bf057">axiom_soap_fault_role.h</a>
<li>axiom_soap_fault_set_exception()
: <a class="el" href="group__axiom__soap__fault.html#g0f64a1849d8b05a3281e6df8e1c0602b">axiom_soap_fault.h</a>
<li>axiom_soap_fault_sub_code_create_with_parent()
: <a class="el" href="group__axiom__soap__fault__sub__code.html#g5145cc80fe64551473e01a1520454182">axiom_soap_fault_sub_code.h</a>
<li>axiom_soap_fault_sub_code_create_with_parent_value()
: <a class="el" href="group__axiom__soap__fault__sub__code.html#g14d4c68d8cf092dc1b3da0342d6c85f7">axiom_soap_fault_sub_code.h</a>
<li>axiom_soap_fault_sub_code_free()
: <a class="el" href="group__axiom__soap__fault__sub__code.html#g141061c23cdbbbaa96d6badc6d548a00">axiom_soap_fault_sub_code.h</a>
<li>axiom_soap_fault_sub_code_get_base_node()
: <a class="el" href="group__axiom__soap__fault__sub__code.html#gfd47ab5044ec19f802569ba9a5555031">axiom_soap_fault_sub_code.h</a>
<li>axiom_soap_fault_sub_code_get_sub_code()
: <a class="el" href="group__axiom__soap__fault__sub__code.html#gd34ca96ee79733b00b3d2d143e9b9702">axiom_soap_fault_sub_code.h</a>
<li>axiom_soap_fault_sub_code_get_value()
: <a class="el" href="group__axiom__soap__fault__sub__code.html#g9c4864e1ac6156b4ef1cce4b4e81cfde">axiom_soap_fault_sub_code.h</a>
<li>axiom_soap_fault_text_create_with_parent()
: <a class="el" href="group__axiom__soap__fault__text.html#g93c4f13db5c53ccb8082d346781d4b6f">axiom_soap_fault_text.h</a>
<li>axiom_soap_fault_text_free()
: <a class="el" href="group__axiom__soap__fault__text.html#g67e470106dd5af9d1e93b349438d966a">axiom_soap_fault_text.h</a>
<li>axiom_soap_fault_text_get_base_node()
: <a class="el" href="group__axiom__soap__fault__text.html#gc23731689dc612a0019df49423b94fd9">axiom_soap_fault_text.h</a>
<li>axiom_soap_fault_text_get_lang()
: <a class="el" href="group__axiom__soap__fault__text.html#gdd77e0f2bb64f0b2e43c1bf7209416fb">axiom_soap_fault_text.h</a>
<li>axiom_soap_fault_text_get_text()
: <a class="el" href="group__axiom__soap__fault__text.html#g5b2f411950e2d7ff211d5b37ef292a60">axiom_soap_fault_text.h</a>
<li>axiom_soap_fault_text_set_lang()
: <a class="el" href="group__axiom__soap__fault__text.html#gddf6b270d8a7a242feebfcab0456884d">axiom_soap_fault_text.h</a>
<li>axiom_soap_fault_text_set_text()
: <a class="el" href="group__axiom__soap__fault__text.html#gbdde017acd991c0a8178cefcdd3f60ef">axiom_soap_fault_text.h</a>
<li>axiom_soap_fault_value_create_with_code()
: <a class="el" href="group__axiom__soap__fault__value.html#gd99d26388683833e9086c8588993018f">axiom_soap_fault_value.h</a>
<li>axiom_soap_fault_value_create_with_subcode()
: <a class="el" href="group__axiom__soap__fault__value.html#g5a2d7ab98ab366e24568ec2bd31abcc9">axiom_soap_fault_value.h</a>
<li>axiom_soap_fault_value_free()
: <a class="el" href="group__axiom__soap__fault__value.html#gfcf173b98eb2445f42f1ea76255c87d4">axiom_soap_fault_value.h</a>
<li>axiom_soap_fault_value_get_base_node()
: <a class="el" href="group__axiom__soap__fault__value.html#g053a9854d77b033ae8655e9ca88be500">axiom_soap_fault_value.h</a>
<li>axiom_soap_fault_value_get_text()
: <a class="el" href="group__axiom__soap__fault__value.html#g6cdb2c327cffc7d0d3c2ca6660e715ee">axiom_soap_fault_value.h</a>
<li>axiom_soap_fault_value_set_text()
: <a class="el" href="group__axiom__soap__fault__value.html#ga9675b73de88d4530e715c26c2d7fb95">axiom_soap_fault_value.h</a>
<li>axiom_soap_header_add_header_block()
: <a class="el" href="group__axiom__soap__header.html#g88dc23b19a4bd564638b4ffcaab955f9">axiom_soap_header.h</a>
<li>axiom_soap_header_block_create_with_parent()
: <a class="el" href="group__axiom__soap__header__block.html#g5188d7fed9873736576a093ccdc6f601">axiom_soap_header_block.h</a>
<li>axiom_soap_header_block_free()
: <a class="el" href="group__axiom__soap__header__block.html#g215a0b781dc39c516b2ae2943fb0c9c8">axiom_soap_header_block.h</a>
<li>axiom_soap_header_block_get_attribute()
: <a class="el" href="group__axiom__soap__header__block.html#gbe505ca156a1f25b44b3fc2d92aab5bc">axiom_soap_header_block.h</a>
<li>axiom_soap_header_block_get_base_node()
: <a class="el" href="group__axiom__soap__header__block.html#gc44f185b24f7311ce7b24fa24c3a7418">axiom_soap_header_block.h</a>
<li>axiom_soap_header_block_get_must_understand()
: <a class="el" href="group__axiom__soap__header__block.html#g5e505325bdbc54550f7f3eef9107738e">axiom_soap_header_block.h</a>
<li>axiom_soap_header_block_get_role()
: <a class="el" href="group__axiom__soap__header__block.html#g1c3d15f1ba49d72671ed03e0eec0563a">axiom_soap_header_block.h</a>
<li>axiom_soap_header_block_get_soap_version()
: <a class="el" href="group__axiom__soap__header__block.html#gee5697cf3757399514eec4d2253b323e">axiom_soap_header_block.h</a>
<li>axiom_soap_header_block_is_processed()
: <a class="el" href="group__axiom__soap__header__block.html#g9a567ec94c9574efa6a69b071b2fd23b">axiom_soap_header_block.h</a>
<li>axiom_soap_header_block_set_attribute()
: <a class="el" href="group__axiom__soap__header__block.html#g0d571598bedb953b01ac834328f816b9">axiom_soap_header_block.h</a>
<li>axiom_soap_header_block_set_must_understand_with_bool()
: <a class="el" href="group__axiom__soap__header__block.html#gc1c174c041c707b4ee0c1e752c68a850">axiom_soap_header_block.h</a>
<li>axiom_soap_header_block_set_must_understand_with_string()
: <a class="el" href="group__axiom__soap__header__block.html#g7c285fa98928bc303e499c82cc890c24">axiom_soap_header_block.h</a>
<li>axiom_soap_header_block_set_processed()
: <a class="el" href="group__axiom__soap__header__block.html#g6739c1882b9749f7ec0048a223f6e817">axiom_soap_header_block.h</a>
<li>axiom_soap_header_block_set_role()
: <a class="el" href="group__axiom__soap__header__block.html#g070c1dfff7559b2a6671cb560827767c">axiom_soap_header_block.h</a>
<li>axiom_soap_header_examine_all_header_blocks()
: <a class="el" href="group__axiom__soap__header.html#g74a56d9fd3b49055bae4091fcd5bb4ff">axiom_soap_header.h</a>
<li>axiom_soap_header_examine_header_blocks()
: <a class="el" href="group__axiom__soap__header.html#g1715ee6353da48cd2148b8adfd227814">axiom_soap_header.h</a>
<li>axiom_soap_header_extract_header_blocks()
: <a class="el" href="group__axiom__soap__header.html#gba1977d593ac1686da79c207b5caa797">axiom_soap_header.h</a>
<li>axiom_soap_header_free()
: <a class="el" href="group__axiom__soap__header.html#gb4bd1325c0f03050c79ec4302fb9fb12">axiom_soap_header.h</a>
<li>axiom_soap_header_get_all_header_blocks()
: <a class="el" href="group__axiom__soap__header.html#gcb53361d89fd484c1b66661b7fa75b02">axiom_soap_header.h</a>
<li>axiom_soap_header_get_base_node()
: <a class="el" href="group__axiom__soap__header.html#g91bacc73f64c81dbb156c1159083fa7a">axiom_soap_header.h</a>
<li>axiom_soap_header_get_header_blocks_with_namespace_uri()
: <a class="el" href="group__axiom__soap__header.html#g15e88be95ee0a6652bb04f8b8e555b9d">axiom_soap_header.h</a>
<li>axiom_soap_header_get_soap_version()
: <a class="el" href="group__axiom__soap__header.html#g97f0b56a661fd9a5fd793a3eb22c963c">axiom_soap_header.h</a>
<li>axiom_soap_header_remove_header_block()
: <a class="el" href="group__axiom__soap__header.html#g4d36a1f5427197087a29703d8ac74ac6">axiom_soap_header.h</a>
<li>axiom_xml_reader_cleanup()
: <a class="el" href="group__axiom__xml__reader.html#gaaf09b4bb704c449270da3eebda5e813">axiom_xml_reader.h</a>
<li>axiom_xml_reader_create_for_file()
: <a class="el" href="group__axiom__xml__reader.html#gcdedc0633fbbd6d3a3f2a1af534f047a">axiom_xml_reader.h</a>
<li>axiom_xml_reader_create_for_io()
: <a class="el" href="group__axiom__xml__reader.html#g77bd95155c1f98044ecc2b2c0f525e9b">axiom_xml_reader.h</a>
<li>axiom_xml_reader_create_for_memory()
: <a class="el" href="group__axiom__xml__reader.html#g2c03628448af33ea26951fc798e6ef84">axiom_xml_reader.h</a>
<li>axiom_xml_reader_free()
: <a class="el" href="group__axiom__xml__reader.html#g9bf782a28329a5661230324bde422a03">axiom_xml_reader.h</a>
<li>axiom_xml_reader_get_attribute_count()
: <a class="el" href="group__axiom__xml__reader.html#gae564cf8501da5b814ff04c2ff193c72">axiom_xml_reader.h</a>
<li>axiom_xml_reader_get_attribute_name_by_number()
: <a class="el" href="group__axiom__xml__reader.html#g41431f427bb3e0d68091225f346af9ef">axiom_xml_reader.h</a>
<li>axiom_xml_reader_get_attribute_namespace_by_number()
: <a class="el" href="group__axiom__xml__reader.html#g8095baf49f5ae2577dc6ddd47bbf9b80">axiom_xml_reader.h</a>
<li>axiom_xml_reader_get_attribute_prefix_by_number()
: <a class="el" href="group__axiom__xml__reader.html#g6ab4ee9babdcbf9ff38f2ee7fde7f8bd">axiom_xml_reader.h</a>
<li>axiom_xml_reader_get_attribute_value_by_number()
: <a class="el" href="group__axiom__xml__reader.html#g5008312eab21f2d6af4ab9c1facec082">axiom_xml_reader.h</a>
<li>axiom_xml_reader_get_char_set_encoding()
: <a class="el" href="group__axiom__xml__reader.html#gfea9c20e6adcb4fa1228bba4de19774c">axiom_xml_reader.h</a>
<li>axiom_xml_reader_get_dtd()
: <a class="el" href="group__axiom__xml__reader.html#g1c1f7c88232c5aec33cafc72fda5830e">axiom_xml_reader.h</a>
<li>axiom_xml_reader_get_name()
: <a class="el" href="group__axiom__xml__reader.html#g4aa5740186e9a96828f3faceee38f09e">axiom_xml_reader.h</a>
<li>axiom_xml_reader_get_namespace_count()
: <a class="el" href="group__axiom__xml__reader.html#g5b6d2609022f69113b08cc5b592ce200">axiom_xml_reader.h</a>
<li>axiom_xml_reader_get_namespace_prefix_by_number()
: <a class="el" href="group__axiom__xml__reader.html#gedb9e7e00933a87a9f9681625aa051af">axiom_xml_reader.h</a>
<li>axiom_xml_reader_get_namespace_uri()
: <a class="el" href="group__axiom__xml__reader.html#geb34cdd664cab7fd67f4ef1b15e5c53f">axiom_xml_reader.h</a>
<li>axiom_xml_reader_get_namespace_uri_by_number()
: <a class="el" href="group__axiom__xml__reader.html#g5e0eb27b0a37e723592881e5a35e0bb2">axiom_xml_reader.h</a>
<li>axiom_xml_reader_get_namespace_uri_by_prefix()
: <a class="el" href="group__axiom__xml__reader.html#g19fa07ce807e4e7b7442b46ccac57120">axiom_xml_reader.h</a>
<li>axiom_xml_reader_get_pi_data()
: <a class="el" href="group__axiom__xml__reader.html#g19f6e1a4ea34d5aa7ba16066501c3a08">axiom_xml_reader.h</a>
<li>axiom_xml_reader_get_pi_target()
: <a class="el" href="group__axiom__xml__reader.html#g02a3310afc9f6e696a1945b09c81df6e">axiom_xml_reader.h</a>
<li>axiom_xml_reader_get_prefix()
: <a class="el" href="group__axiom__xml__reader.html#g044e4fce90018e0abe787a224673109e">axiom_xml_reader.h</a>
<li>axiom_xml_reader_get_value()
: <a class="el" href="group__axiom__xml__reader.html#gc28be6f3ba09e107505989be82ccaa74">axiom_xml_reader.h</a>
<li>axiom_xml_reader_init()
: <a class="el" href="group__axiom__xml__reader.html#g8e39a922babd615678d53209c3d86c25">axiom_xml_reader.h</a>
<li>axiom_xml_reader_next()
: <a class="el" href="group__axiom__xml__reader.html#g3374162deb7e15d0a66fb47d5de68d4d">axiom_xml_reader.h</a>
<li>axiom_xml_reader_xml_free()
: <a class="el" href="group__axiom__xml__reader.html#g06c3e71eb295e7a0869a21ca2c88386d">axiom_xml_reader.h</a>
<li>axiom_xml_writer_create()
: <a class="el" href="group__axiom__xml__writer.html#g193830479789aa7b7c199a6abb390288">axiom_xml_writer.h</a>
<li>axiom_xml_writer_create_for_memory()
: <a class="el" href="group__axiom__xml__writer.html#g79309882da5382c1ec3facc6e5abc862">axiom_xml_writer.h</a>
<li>axiom_xml_writer_end_start_element()
: <a class="el" href="group__axiom__xml__writer.html#g84a78120dfae180cfc12998fa83907a9">axiom_xml_writer.h</a>
<li>axiom_xml_writer_flush()
: <a class="el" href="group__axiom__xml__writer.html#g04303cc47f0648f0176ef3c9cd622998">axiom_xml_writer.h</a>
<li>axiom_xml_writer_free()
: <a class="el" href="group__axiom__xml__writer.html#gf050a102040e761077a63b2254390d4a">axiom_xml_writer.h</a>
<li>axiom_xml_writer_get_prefix()
: <a class="el" href="group__axiom__xml__writer.html#gecd8543be052df94f2d0767da3126240">axiom_xml_writer.h</a>
<li>axiom_xml_writer_get_type()
: <a class="el" href="group__axiom__xml__writer.html#gbc1a524cdc028b34aaab64a51f7dd0c8">axiom_xml_writer.h</a>
<li>axiom_xml_writer_get_xml()
: <a class="el" href="group__axiom__xml__writer.html#g7355b7bf221c8dafece5d00b5ed8a9dd">axiom_xml_writer.h</a>
<li>axiom_xml_writer_get_xml_size()
: <a class="el" href="group__axiom__xml__writer.html#gaad2c11c45420ff072bed9c4b9a568f9">axiom_xml_writer.h</a>
<li>axiom_xml_writer_set_default_prefix()
: <a class="el" href="group__axiom__xml__writer.html#gc8897fef6328a061e47a9a51bf7428b1">axiom_xml_writer.h</a>
<li>axiom_xml_writer_set_prefix()
: <a class="el" href="group__axiom__xml__writer.html#g3d7148110d6d45f2239ea90632057774">axiom_xml_writer.h</a>
<li>axiom_xml_writer_write_attribute()
: <a class="el" href="group__axiom__xml__writer.html#gea0009f113fc69456db5fedf684e04f4">axiom_xml_writer.h</a>
<li>axiom_xml_writer_write_attribute_with_namespace()
: <a class="el" href="group__axiom__xml__writer.html#gd75f18f14f1eb494c59e58532cd16060">axiom_xml_writer.h</a>
<li>axiom_xml_writer_write_attribute_with_namespace_prefix()
: <a class="el" href="group__axiom__xml__writer.html#g970cc4979b16407cc69a77384b096f3f">axiom_xml_writer.h</a>
<li>axiom_xml_writer_write_cdata()
: <a class="el" href="group__axiom__xml__writer.html#g576af9f5d4f98d90ec40d30844f49467">axiom_xml_writer.h</a>
<li>axiom_xml_writer_write_characters()
: <a class="el" href="group__axiom__xml__writer.html#geda418c524b47842e3df20b4fbba1a41">axiom_xml_writer.h</a>
<li>axiom_xml_writer_write_comment()
: <a class="el" href="group__axiom__xml__writer.html#g62018bab93eafc410e4f4c2c0b2d5a93">axiom_xml_writer.h</a>
<li>axiom_xml_writer_write_default_namespace()
: <a class="el" href="group__axiom__xml__writer.html#gf73ddc31e494b9a063fe84933e2c4f5f">axiom_xml_writer.h</a>
<li>axiom_xml_writer_write_dtd()
: <a class="el" href="group__axiom__xml__writer.html#ged60c82c50443d672009d2e51e0e4033">axiom_xml_writer.h</a>
<li>axiom_xml_writer_write_empty_element()
: <a class="el" href="group__axiom__xml__writer.html#gf69e17121911506e5e1aff50f35d6e42">axiom_xml_writer.h</a>
<li>axiom_xml_writer_write_empty_element_with_namespace()
: <a class="el" href="group__axiom__xml__writer.html#gf9edf4fa8cabfcad5c4df01f33ef5314">axiom_xml_writer.h</a>
<li>axiom_xml_writer_write_empty_element_with_namespace_prefix()
: <a class="el" href="group__axiom__xml__writer.html#g44f2a95436bfbb3225fa2792f2a747b3">axiom_xml_writer.h</a>
<li>axiom_xml_writer_write_encoded()
: <a class="el" href="group__axiom__xml__writer.html#g4af81c3bec86f454b46fe927341fd5c1">axiom_xml_writer.h</a>
<li>axiom_xml_writer_write_end_document()
: <a class="el" href="group__axiom__xml__writer.html#g293c2a405e80ab47f2ca1e87d51dd670">axiom_xml_writer.h</a>
<li>axiom_xml_writer_write_end_element()
: <a class="el" href="group__axiom__xml__writer.html#g0670764ce56a2674c9753995be9de071">axiom_xml_writer.h</a>
<li>axiom_xml_writer_write_entity_ref()
: <a class="el" href="group__axiom__xml__writer.html#g873890c13fa8b86f1b3c879fa13cc59d">axiom_xml_writer.h</a>
<li>axiom_xml_writer_write_namespace()
: <a class="el" href="group__axiom__xml__writer.html#g3bb91e88f62e6620f1236dccbba5c0b6">axiom_xml_writer.h</a>
<li>axiom_xml_writer_write_processing_instruction()
: <a class="el" href="group__axiom__xml__writer.html#g50b745030f5b2b7b94de517d6843ae2d">axiom_xml_writer.h</a>
<li>axiom_xml_writer_write_processing_instruction_data()
: <a class="el" href="group__axiom__xml__writer.html#gf72fcff938ae170e1054a6291af7e785">axiom_xml_writer.h</a>
<li>axiom_xml_writer_write_raw()
: <a class="el" href="group__axiom__xml__writer.html#g5229740973a7dc818a405bd209866071">axiom_xml_writer.h</a>
<li>axiom_xml_writer_write_start_document()
: <a class="el" href="group__axiom__xml__writer.html#g56cd0aed921b578b91c92c1dd78c989e">axiom_xml_writer.h</a>
<li>axiom_xml_writer_write_start_document_with_version()
: <a class="el" href="group__axiom__xml__writer.html#g41c370608ae8441c2601a5edc7addf2b">axiom_xml_writer.h</a>
<li>axiom_xml_writer_write_start_document_with_version_encoding()
: <a class="el" href="group__axiom__xml__writer.html#gc04ed21c2449d5ead09d7deca9fbfb18">axiom_xml_writer.h</a>
<li>axiom_xml_writer_write_start_element()
: <a class="el" href="group__axiom__xml__writer.html#g8fb66c4d3f5b6b4ddee7d62ad9ed70cc">axiom_xml_writer.h</a>
<li>axiom_xml_writer_write_start_element_with_namespace()
: <a class="el" href="group__axiom__xml__writer.html#gcbc6f4b9ed8f7825c3acd34ef323de63">axiom_xml_writer.h</a>
<li>axiom_xml_writer_write_start_element_with_namespace_prefix()
: <a class="el" href="group__axiom__xml__writer.html#gbbc4c3ec83abb98b8def106b6733382e">axiom_xml_writer.h</a>
<li>axis2_addr_disp_create()
: <a class="el" href="group__axis2__disp.html#gf18d7e04a666303b7e2833c3234e770e">axis2_disp.h</a>
<li>axis2_addr_in_handler_create()
: <a class="el" href="group__axis2__addr__mod.html#gceab132029893e997dca5687c6228de3">axis2_addr_mod.h</a>
<li>axis2_addr_out_handler_create()
: <a class="el" href="group__axis2__addr__mod.html#g80cd9d16412689c7e01c7ab17f4a3339">axis2_addr_mod.h</a>
<li>axis2_any_content_type_add_value()
: <a class="el" href="group__axis2__any__content__type.html#gcd40c74289137bd053e5f39787469d7e">axis2_any_content_type.h</a>
<li>axis2_any_content_type_create()
: <a class="el" href="group__axis2__any__content__type.html#g7f5efe9330957a64581ba12a0d09857c">axis2_any_content_type.h</a>
<li>axis2_any_content_type_free()
: <a class="el" href="group__axis2__any__content__type.html#g505a11bc9aecae180b61ca79c82bac61">axis2_any_content_type.h</a>
<li>axis2_any_content_type_get_value()
: <a class="el" href="group__axis2__any__content__type.html#g3526ab922ee7827b7d975316d064dce2">axis2_any_content_type.h</a>
<li>axis2_any_content_type_get_value_map()
: <a class="el" href="group__axis2__any__content__type.html#gc67a76c66f54b965bc5872ff132bbb86">axis2_any_content_type.h</a>
<li>axis2_async_result_create()
: <a class="el" href="group__axis2__async__result.html#g065fafef3286259aa3c8ceb7da9957ee">axis2_async_result.h</a>
<li>axis2_async_result_free()
: <a class="el" href="group__axis2__async__result.html#g7dc808667785c5430baef18f3e377d5c">axis2_async_result.h</a>
<li>axis2_async_result_get_envelope()
: <a class="el" href="group__axis2__async__result.html#g78f7a7e270e176c1094ca43d106561b1">axis2_async_result.h</a>
<li>axis2_async_result_get_result()
: <a class="el" href="group__axis2__async__result.html#g4b31e913ac079031b24e18c67236ef25">axis2_async_result.h</a>
<li>axis2_callback_create()
: <a class="el" href="group__axis2__callback.html#g9fea0849294631c64f627f509afbe4fd">axis2_callback.h</a>
<li>axis2_callback_free()
: <a class="el" href="group__axis2__callback.html#g8aff2c00d30222f8cd4a3b68e30dc449">axis2_callback.h</a>
<li>axis2_callback_get_complete()
: <a class="el" href="group__axis2__callback.html#g8b14532e11dc444cd2ad1fbf5fbe3d0d">axis2_callback.h</a>
<li>axis2_callback_get_data()
: <a class="el" href="group__axis2__callback.html#g8c45ec7f00c453b201c3f11c94c0bec4">axis2_callback.h</a>
<li>axis2_callback_get_envelope()
: <a class="el" href="group__axis2__callback.html#ga3509e9b59969fe43e4930cdd8a2bd9a">axis2_callback.h</a>
<li>axis2_callback_get_error()
: <a class="el" href="group__axis2__callback.html#gb62d7c70252cad340b35f22e03a3f80f">axis2_callback.h</a>
<li>axis2_callback_invoke_on_complete()
: <a class="el" href="group__axis2__callback.html#g3cec591f0caffc39e747b02ba29060ba">axis2_callback.h</a>
<li>axis2_callback_report_error()
: <a class="el" href="group__axis2__callback.html#gde78d3a3af4710cb489ae4a6e27a9dcf">axis2_callback.h</a>
<li>axis2_callback_set_complete()
: <a class="el" href="group__axis2__callback.html#g67f076fe17ac0e95dbea3ce7ecd7111e">axis2_callback.h</a>
<li>axis2_callback_set_data()
: <a class="el" href="group__axis2__callback.html#gc336244380c30c63f102efbea2204aee">axis2_callback.h</a>
<li>axis2_callback_set_envelope()
: <a class="el" href="group__axis2__callback.html#g5dc5998d5db574ef86f05d29fa5cd95d">axis2_callback.h</a>
<li>axis2_callback_set_error()
: <a class="el" href="group__axis2__callback.html#ge07a62751c3bdbbab934632926e2eb5c">axis2_callback.h</a>
<li>axis2_callback_set_on_complete()
: <a class="el" href="group__axis2__callback.html#g10b6d858cf29a9426a2b0c7a9690ab15">axis2_callback.h</a>
<li>axis2_callback_set_on_error()
: <a class="el" href="group__axis2__callback.html#ga394bc5fddfd86a25c29930b08d39628">axis2_callback.h</a>
<li>axis2_conf_add_default_module_version()
: <a class="el" href="group__axis2__config.html#g0f7af7f98fa7f8b51d0ec1fd729fde6b">axis2_conf.h</a>
<li>axis2_conf_add_module()
: <a class="el" href="group__axis2__config.html#gd1f8225ed64ad78477b72eacd8f6a48a">axis2_conf.h</a>
<li>axis2_conf_add_msg_recv()
: <a class="el" href="group__axis2__config.html#g2563c430243b6cce5142109b1f7fae84">axis2_conf.h</a>
<li>axis2_conf_add_param()
: <a class="el" href="group__axis2__config.html#g03227082f8dcb6d49c70ae123224618d">axis2_conf.h</a>
<li>axis2_conf_add_svc()
: <a class="el" href="group__axis2__config.html#gfc6aefecf137595736194e704c8849e6">axis2_conf.h</a>
<li>axis2_conf_add_svc_grp()
: <a class="el" href="group__axis2__config.html#gf1d556bc4c78ed899213d9b863834209">axis2_conf.h</a>
<li>axis2_conf_add_transport_in()
: <a class="el" href="group__axis2__config.html#g78048cf013c8a2441862164f9aaaedbe">axis2_conf.h</a>
<li>axis2_conf_add_transport_out()
: <a class="el" href="group__axis2__config.html#gec80422b458c7baf542450a6b0d6a87e">axis2_conf.h</a>
<li>axis2_conf_create()
: <a class="el" href="group__axis2__config.html#g87f521276d7d6dfde72b289121c80a79">axis2_conf.h</a>
<li>axis2_conf_ctx_create()
: <a class="el" href="group__axis2__conf__ctx.html#g9d44e6d988ccfa96510146c18118f272">axis2_conf_ctx.h</a>
<li>axis2_conf_ctx_fill_ctxs()
: <a class="el" href="group__axis2__conf__ctx.html#ge4ac0ac0a8960a7e8d5a1c898877fa56">axis2_conf_ctx.h</a>
<li>axis2_conf_ctx_free()
: <a class="el" href="group__axis2__conf__ctx.html#g0d6bee37eb671fb1f538b6d96484f46f">axis2_conf_ctx.h</a>
<li>axis2_conf_ctx_get_base()
: <a class="el" href="group__axis2__conf__ctx.html#ge66a52699ed3a03ae50286e9ea859abb">axis2_conf_ctx.h</a>
<li>axis2_conf_ctx_get_conf()
: <a class="el" href="group__axis2__conf__ctx.html#g118ac5ba83bb6ba1d8c054513d960d08">axis2_conf_ctx.h</a>
<li>axis2_conf_ctx_get_op_ctx()
: <a class="el" href="group__axis2__conf__ctx.html#g42e7023af97b04e9ac5d192c20c6980e">axis2_conf_ctx.h</a>
<li>axis2_conf_ctx_get_op_ctx_map()
: <a class="el" href="group__axis2__conf__ctx.html#gcde62abb6fcb296e62a8dc5fbe04fa38">axis2_conf_ctx.h</a>
<li>axis2_conf_ctx_get_property()
: <a class="el" href="group__axis2__conf__ctx.html#ga8842aca9155be5f501e12818c1303e1">axis2_conf_ctx.h</a>
<li>axis2_conf_ctx_get_root_dir()
: <a class="el" href="group__axis2__conf__ctx.html#g8be4f6863d1a226ef4a239afcb191e6c">axis2_conf_ctx.h</a>
<li>axis2_conf_ctx_get_svc_ctx()
: <a class="el" href="group__axis2__conf__ctx.html#ge90cb5dd919956c1e2eb52fa69c6734b">axis2_conf_ctx.h</a>
<li>axis2_conf_ctx_get_svc_ctx_map()
: <a class="el" href="group__axis2__conf__ctx.html#g5345c142c9d7868bcb8adbbbc6091c3f">axis2_conf_ctx.h</a>
<li>axis2_conf_ctx_get_svc_grp_ctx()
: <a class="el" href="group__axis2__conf__ctx.html#g74d5c818fd827335b3ef71e8f6c15efa">axis2_conf_ctx.h</a>
<li>axis2_conf_ctx_get_svc_grp_ctx_map()
: <a class="el" href="group__axis2__conf__ctx.html#ga8be6a3dce54129fddc3ca40fe95e03a">axis2_conf_ctx.h</a>
<li>axis2_conf_ctx_init()
: <a class="el" href="group__axis2__conf__ctx.html#g95ac09f843d1594d5bf3bf4f6f424fb0">axis2_conf_ctx.h</a>
<li>axis2_conf_ctx_register_op_ctx()
: <a class="el" href="group__axis2__conf__ctx.html#gbb9159aa11b1ed08deb4f02a2b320a64">axis2_conf_ctx.h</a>
<li>axis2_conf_ctx_register_svc_ctx()
: <a class="el" href="group__axis2__conf__ctx.html#g2e9f3ef21b1f3e781232f2835058154a">axis2_conf_ctx.h</a>
<li>axis2_conf_ctx_register_svc_grp_ctx()
: <a class="el" href="group__axis2__conf__ctx.html#g068ae26464a6cf8b2cc8a530603b516a">axis2_conf_ctx.h</a>
<li>axis2_conf_ctx_set_conf()
: <a class="el" href="group__axis2__conf__ctx.html#g2219982ff63cd78a432352482079907a">axis2_conf_ctx.h</a>
<li>axis2_conf_ctx_set_property()
: <a class="el" href="group__axis2__conf__ctx.html#gfbb679038aba7d0305f8607a5449f381">axis2_conf_ctx.h</a>
<li>axis2_conf_ctx_set_root_dir()
: <a class="el" href="group__axis2__conf__ctx.html#gc9b785de188769a7f695b6d21c5d8fce">axis2_conf_ctx.h</a>
<li>axis2_conf_engage_module()
: <a class="el" href="group__axis2__config.html#gd606b44f38e986772f34e7eea44f1213">axis2_conf.h</a>
<li>axis2_conf_engage_module_with_version()
: <a class="el" href="group__axis2__config.html#g437349fa6fb067fc0cf6b23f731e5b5b">axis2_conf.h</a>
<li>axis2_conf_free()
: <a class="el" href="group__axis2__config.html#g06062b4f3ea3a4fb05c0e55d76f6ca8c">axis2_conf.h</a>
<li>axis2_conf_get_all_engaged_modules()
: <a class="el" href="group__axis2__config.html#ge2aa21b6ff10d77d3180459b7e22ebc1">axis2_conf.h</a>
<li>axis2_conf_get_all_faulty_modules()
: <a class="el" href="group__axis2__config.html#g12b5a698718da795312b3e09fdeac1c4">axis2_conf.h</a>
<li>axis2_conf_get_all_faulty_svcs()
: <a class="el" href="group__axis2__config.html#g9024b3f7f97461ba822eebc7d6c1a812">axis2_conf.h</a>
<li>axis2_conf_get_all_in_transports()
: <a class="el" href="group__axis2__config.html#g287e0d1e671665be290f523539f370d6">axis2_conf.h</a>
<li>axis2_conf_get_all_modules()
: <a class="el" href="group__axis2__config.html#gae78d7f53b928733081821be9c869c86">axis2_conf.h</a>
<li>axis2_conf_get_all_out_transports()
: <a class="el" href="group__axis2__config.html#g2e5723e559a264f763e22e898990a63c">axis2_conf.h</a>
<li>axis2_conf_get_all_params()
: <a class="el" href="group__axis2__config.html#g2cf688584fa948c9ffaf8e5b9b7747e4">axis2_conf.h</a>
<li>axis2_conf_get_all_svc_grps()
: <a class="el" href="group__axis2__config.html#g51f16242864d15ff2d77442615d51832">axis2_conf.h</a>
<li>axis2_conf_get_all_svcs()
: <a class="el" href="group__axis2__config.html#gb3d4be2ef73eee238915c80a8f9b155c">axis2_conf.h</a>
<li>axis2_conf_get_all_svcs_to_load()
: <a class="el" href="group__axis2__config.html#g4e60a26bae6ab18adf601fc3dc0ccd6d">axis2_conf.h</a>
<li>axis2_conf_get_axis2_flag()
: <a class="el" href="group__axis2__config.html#g5ec35a0f6f9bd8d6c179b74e27c1a22f">axis2_conf.h</a>
<li>axis2_conf_get_axis2_xml()
: <a class="el" href="group__axis2__config.html#ga0d096c494a2ad9eb24767275d0baa7e">axis2_conf.h</a>
<li>axis2_conf_get_base()
: <a class="el" href="group__axis2__config.html#gdcada32afcb07e8386d0eae0e7f75c72">axis2_conf.h</a>
<li>axis2_conf_get_default_module()
: <a class="el" href="group__axis2__config.html#gcc150b948c4762e423777fe2f622fba0">axis2_conf.h</a>
<li>axis2_conf_get_default_module_version()
: <a class="el" href="group__axis2__config.html#gc57b44693b7d2a19e2268c5860105eb5">axis2_conf.h</a>
<li>axis2_conf_get_in_fault_flow()
: <a class="el" href="group__axis2__config.html#g90731a7c7f62c1fc619074a50c43450d">axis2_conf.h</a>
<li>axis2_conf_get_in_phases_upto_and_including_post_dispatch()
: <a class="el" href="group__axis2__config.html#g39916547b5444449bcd1a87f3a37111d">axis2_conf.h</a>
<li>axis2_conf_get_module()
: <a class="el" href="group__axis2__config.html#g0821f7d4a53d5731c23d9be80fd5cbe0">axis2_conf.h</a>
<li>axis2_conf_get_msg_recv()
: <a class="el" href="group__axis2__config.html#g569170784a8f375728854f94d035509d">axis2_conf.h</a>
<li>axis2_conf_get_out_fault_flow()
: <a class="el" href="group__axis2__config.html#gd14aad417357ead8d2080d5798e884fe">axis2_conf.h</a>
<li>axis2_conf_get_out_flow()
: <a class="el" href="group__axis2__config.html#g9c2c12ce9e298ae1255d698b0c101f98">axis2_conf.h</a>
<li>axis2_conf_get_out_phases()
: <a class="el" href="group__axis2__config.html#gdf15d7aa810a6d812818d3ac00085537">axis2_conf.h</a>
<li>axis2_conf_get_param()
: <a class="el" href="group__axis2__config.html#g1335e3c90eb343f5a06ad1cdc761f638">axis2_conf.h</a>
<li>axis2_conf_get_phases_info()
: <a class="el" href="group__axis2__config.html#ged50d579ca49af8a25416470012edc14">axis2_conf.h</a>
<li>axis2_conf_get_repo()
: <a class="el" href="group__axis2__config.html#ge352936161aa818a3b9b6b812851be01">axis2_conf.h</a>
<li>axis2_conf_get_svc()
: <a class="el" href="group__axis2__config.html#g52a73101f2e0fead3788761b4b32fb6f">axis2_conf.h</a>
<li>axis2_conf_get_svc_grp()
: <a class="el" href="group__axis2__config.html#g0a81de08c7d260307dce83727e7fbb6c">axis2_conf.h</a>
<li>axis2_conf_get_transport_in()
: <a class="el" href="group__axis2__config.html#gbb3c960284024e19b4587a8bfe2f54d8">axis2_conf.h</a>
<li>axis2_conf_get_transport_out()
: <a class="el" href="group__axis2__config.html#gaf9cf73e931cfb1fcb70206de2adaa26">axis2_conf.h</a>
<li>axis2_conf_is_engaged()
: <a class="el" href="group__axis2__config.html#g7756e8038846da3d822c690279ecfcc6">axis2_conf.h</a>
<li>axis2_conf_is_param_locked()
: <a class="el" href="group__axis2__config.html#g8fe2754bf14d3965c99a32b92909cb1d">axis2_conf.h</a>
<li>axis2_conf_remove_svc()
: <a class="el" href="group__axis2__config.html#gd35639715fb90bc32ea9f04cbfaffede">axis2_conf.h</a>
<li>axis2_conf_set_axis2_xml()
: <a class="el" href="group__axis2__config.html#g9752b59114c2e54f0df629ffe9c27657">axis2_conf.h</a>
<li>axis2_conf_set_default_dispatchers()
: <a class="el" href="group__axis2__config.html#g325b14f8715288333af6003ece30414d">axis2_conf.h</a>
<li>axis2_conf_set_dep_engine()
: <a class="el" href="group__axis2__config.html#gddbe656d37ee7d94bdfbaa1a3f293bbd">axis2_conf.h</a>
<li>axis2_conf_set_dispatch_phase()
: <a class="el" href="group__axis2__config.html#g131077965ba3a728525239560327a9e5">axis2_conf.h</a>
<li>axis2_conf_set_in_fault_phases()
: <a class="el" href="group__axis2__config.html#gb9219d57c1060b93d19a39cc95ced711">axis2_conf.h</a>
<li>axis2_conf_set_out_fault_phases()
: <a class="el" href="group__axis2__config.html#g4c4a1f282d942f596e29fb2699afff42">axis2_conf.h</a>
<li>axis2_conf_set_out_phases()
: <a class="el" href="group__axis2__config.html#g70e492fdfb83180cab77006979ce10e0">axis2_conf.h</a>
<li>axis2_conf_set_phases_info()
: <a class="el" href="group__axis2__config.html#g7a51cf9382faf1e4d2cb9440cea1eb83">axis2_conf.h</a>
<li>axis2_conf_set_repo()
: <a class="el" href="group__axis2__config.html#g9b73dd9150ace3dca82364a4c77e0f7a">axis2_conf.h</a>
<li>axis2_ctx_create()
: <a class="el" href="group__axis2__ctx.html#gcb5d8fd664562a2ddaf88cc3248e977e">axis2_ctx.h</a>
<li>axis2_ctx_free()
: <a class="el" href="group__axis2__ctx.html#g6cc540335eb01194fc20626e774f9991">axis2_ctx.h</a>
<li>axis2_ctx_get_all_properties()
: <a class="el" href="group__axis2__ctx.html#gff927e494c30e1e2b89da57679285f49">axis2_ctx.h</a>
<li>axis2_ctx_get_property()
: <a class="el" href="group__axis2__ctx.html#g2344da02e08fe0a2b88b7bb5e21fafe8">axis2_ctx.h</a>
<li>axis2_ctx_get_property_map()
: <a class="el" href="group__axis2__ctx.html#gc516a4bacec4a38f5e201273b77781db">axis2_ctx.h</a>
<li>axis2_ctx_handler_create()
: <a class="el" href="group__axis2__handler.html#geebcba75e6b92e7f3fa9ab4492390194">axis2_handler.h</a>
<li>axis2_ctx_set_property()
: <a class="el" href="group__axis2__ctx.html#g7cf1781574ed208e2ca552cde99501bb">axis2_ctx.h</a>
<li>axis2_ctx_set_property_map()
: <a class="el" href="group__axis2__ctx.html#gd1452d5b24ddbb87565e8b297f7e7fdc">axis2_ctx.h</a>
<li>axis2_desc_add_child()
: <a class="el" href="group__axis2__description.html#g8cdc3537ca1820de45ba467eec1ce8c9">axis2_desc.h</a>
<li>axis2_desc_add_param()
: <a class="el" href="group__axis2__description.html#gd87c1a63197a588dc75066ea80bd2bae">axis2_desc.h</a>
<li>axis2_desc_create()
: <a class="el" href="group__axis2__description.html#ge7a0b8d3cff8a247692c220fc7272117">axis2_desc.h</a>
<li>axis2_desc_free()
: <a class="el" href="group__axis2__description.html#gd72218caf033deeecd16ebf8240dd286">axis2_desc.h</a>
<li>axis2_desc_get_all_children()
: <a class="el" href="group__axis2__description.html#g078b2cf3aba1fca7468666905d8c0a4f">axis2_desc.h</a>
<li>axis2_desc_get_all_params()
: <a class="el" href="group__axis2__description.html#g512aaa44dd670d0ed3365033b1459e53">axis2_desc.h</a>
<li>axis2_desc_get_child()
: <a class="el" href="group__axis2__description.html#g55e705da0e6458ad6dd435087052b266">axis2_desc.h</a>
<li>axis2_desc_get_param()
: <a class="el" href="group__axis2__description.html#g6d7eb35ea7f0dd0a82bc47324a92bc0b">axis2_desc.h</a>
<li>axis2_desc_get_parent()
: <a class="el" href="group__axis2__description.html#g99cb434d37bf69b9edb0396825694041">axis2_desc.h</a>
<li>axis2_desc_get_policy_include()
: <a class="el" href="group__axis2__description.html#gfb2c12d56fbfa672cf4f577c19aed3af">axis2_desc.h</a>
<li>axis2_desc_is_param_locked()
: <a class="el" href="group__axis2__description.html#gdbc1f8ca75485da47fb76f148e794336">axis2_desc.h</a>
<li>axis2_desc_remove_child()
: <a class="el" href="group__axis2__description.html#g36c19818ab4b074242cc72c3f427e686">axis2_desc.h</a>
<li>axis2_desc_set_parent()
: <a class="el" href="group__axis2__description.html#g3847e0acbaa726663410a42ddead9448">axis2_desc.h</a>
<li>axis2_desc_set_policy_include()
: <a class="el" href="group__axis2__description.html#gf57219b0bfcd05648d8d6ab574807951">axis2_desc.h</a>
<li>axis2_disp_create()
: <a class="el" href="group__axis2__disp.html#g65066d9785fb1f3dbeeef3e4b478fccd">axis2_disp.h</a>
<li>axis2_disp_free()
: <a class="el" href="group__axis2__disp.html#g4ba871cc3cb7913ca8850de9cf6ce8e1">axis2_disp.h</a>
<li>axis2_disp_get_base()
: <a class="el" href="group__axis2__disp.html#g493cb717b675286752bed9e62b314f38">axis2_disp.h</a>
<li>axis2_disp_get_name()
: <a class="el" href="group__axis2__disp.html#g4b87234842d634edc406ccbf9aaa4f14">axis2_disp.h</a>
<li>axis2_disp_set_name()
: <a class="el" href="group__axis2__disp.html#g8282e341346127933098f7f170c6fd5e">axis2_disp.h</a>
<li>axis2_endpoint_ref_add_extension()
: <a class="el" href="group__axis2__endpoint__ref.html#gffa43060be66bdfec2e88f007a5efece">axis2_endpoint_ref.h</a>
<li>axis2_endpoint_ref_add_metadata()
: <a class="el" href="group__axis2__endpoint__ref.html#g7a2002fe15ecff7ca9ccf00e0289d8d4">axis2_endpoint_ref.h</a>
<li>axis2_endpoint_ref_add_metadata_attribute()
: <a class="el" href="group__axis2__endpoint__ref.html#g67bc0356744635c35d3d6bb7755dcbfb">axis2_endpoint_ref.h</a>
<li>axis2_endpoint_ref_add_ref_attribute()
: <a class="el" href="group__axis2__endpoint__ref.html#g354234bb6da2cdecae159fa2045c904a">axis2_endpoint_ref.h</a>
<li>axis2_endpoint_ref_add_ref_param()
: <a class="el" href="group__axis2__endpoint__ref.html#g0c88ce2256c5379a21cc3a881b9131ac">axis2_endpoint_ref.h</a>
<li>axis2_endpoint_ref_create()
: <a class="el" href="group__axis2__endpoint__ref.html#g693024d7cd181441f76eda5023b775de">axis2_endpoint_ref.h</a>
<li>axis2_endpoint_ref_free()
: <a class="el" href="group__axis2__endpoint__ref.html#g4bae551a22a4afaa171d2eb69373cfb0">axis2_endpoint_ref.h</a>
<li>axis2_endpoint_ref_free_void_arg()
: <a class="el" href="group__axis2__endpoint__ref.html#ge08a42ff4f8c7c14db52be97ef6c75c8">axis2_endpoint_ref.h</a>
<li>axis2_endpoint_ref_get_address()
: <a class="el" href="group__axis2__endpoint__ref.html#g4bc3d165549d17b00a56119c340d0eab">axis2_endpoint_ref.h</a>
<li>axis2_endpoint_ref_get_extension_list()
: <a class="el" href="group__axis2__endpoint__ref.html#gb68c9bf3c7b34f5f7b5f2228de5e9a2e">axis2_endpoint_ref.h</a>
<li>axis2_endpoint_ref_get_interface_qname()
: <a class="el" href="group__axis2__endpoint__ref.html#gecddf65a57bf6a269b8d31ea99165049">axis2_endpoint_ref.h</a>
<li>axis2_endpoint_ref_get_metadata_attribute_list()
: <a class="el" href="group__axis2__endpoint__ref.html#gc58bdf7baf4dfc5a9f2e15bd2b40061e">axis2_endpoint_ref.h</a>
<li>axis2_endpoint_ref_get_metadata_list()
: <a class="el" href="group__axis2__endpoint__ref.html#g5ff6d5d4e9bd5d346ed1652c3f0a9566">axis2_endpoint_ref.h</a>
<li>axis2_endpoint_ref_get_ref_attribute_list()
: <a class="el" href="group__axis2__endpoint__ref.html#g3708574ea51cc3ef8c93209a2d7d482a">axis2_endpoint_ref.h</a>
<li>axis2_endpoint_ref_get_ref_param_list()
: <a class="el" href="group__axis2__endpoint__ref.html#g53737580ff3a85142e9a5360726e0175">axis2_endpoint_ref.h</a>
<li>axis2_endpoint_ref_get_svc_name()
: <a class="el" href="group__axis2__endpoint__ref.html#g392b8ac3572d5a3b905b407dbf9c9936">axis2_endpoint_ref.h</a>
<li>axis2_endpoint_ref_set_address()
: <a class="el" href="group__axis2__endpoint__ref.html#g9b3f69452fdb8c38b9c505e56f80914c">axis2_endpoint_ref.h</a>
<li>axis2_endpoint_ref_set_interface_qname()
: <a class="el" href="group__axis2__endpoint__ref.html#g1a0f57e4779a0a9beb7133b0dc6932c5">axis2_endpoint_ref.h</a>
<li>axis2_endpoint_ref_set_svc_name()
: <a class="el" href="group__axis2__endpoint__ref.html#g0a8954c0a595aa9016d125b1c171bcda">axis2_endpoint_ref.h</a>
<li>axis2_engine_create()
: <a class="el" href="group__axis2__engine.html#ged13c1a9fe02067b8678f4d1c8a412a5">axis2_engine.h</a>
<li>axis2_engine_create_fault_msg_ctx()
: <a class="el" href="group__axis2__engine.html#g048a9c624d618b3c705d41ae77bab9d0">axis2_engine.h</a>
<li>axis2_engine_free()
: <a class="el" href="group__axis2__engine.html#g7ca747905b4bb17877e94a44aad3887d">axis2_engine.h</a>
<li>axis2_engine_get_receiver_fault_code()
: <a class="el" href="group__axis2__engine.html#g750a760536008dcec26bff80a891197e">axis2_engine.h</a>
<li>axis2_engine_get_sender_fault_code()
: <a class="el" href="group__axis2__engine.html#g4233d6e24f32c5d59fe7bd507a91395c">axis2_engine.h</a>
<li>axis2_engine_invoke_phases()
: <a class="el" href="group__axis2__engine.html#g95c41e8b17352fcd0df40a1af8952e28">axis2_engine.h</a>
<li>axis2_engine_receive()
: <a class="el" href="group__axis2__engine.html#g1ed2e678409c629544ba0f11f7c5fe8f">axis2_engine.h</a>
<li>axis2_engine_receive_fault()
: <a class="el" href="group__axis2__engine.html#gc42896a93f7288df6e7a10ceb9e31e31">axis2_engine.h</a>
<li>axis2_engine_resume_invocation_phases()
: <a class="el" href="group__axis2__engine.html#ga9d62410babeb061b9bf300d6a837ca2">axis2_engine.h</a>
<li>axis2_engine_resume_receive()
: <a class="el" href="group__axis2__engine.html#g845f6ddb96bf1b9f02ed6ad24a1c3653">axis2_engine.h</a>
<li>axis2_engine_resume_send()
: <a class="el" href="group__axis2__engine.html#gba1a56931bc5ad105c7059c2af3cd59b">axis2_engine.h</a>
<li>axis2_engine_send()
: <a class="el" href="group__axis2__engine.html#g7a9ad14546e8c132d3a5ea9b14206b51">axis2_engine.h</a>
<li>axis2_engine_send_fault()
: <a class="el" href="group__axis2__engine.html#g6d77e1d59b04cb68e36581e946946a2d">axis2_engine.h</a>
<li>axis2_flow_add_handler()
: <a class="el" href="group__axis2__flow.html#gd5ddebf59dbc1b9e2237398c99d1e253">axis2_flow.h</a>
<li>axis2_flow_container_create()
: <a class="el" href="group__axis2__flow__container.html#g7eae0c6ff23192492a0b046b3714eabd">axis2_flow_container.h</a>
<li>axis2_flow_container_free()
: <a class="el" href="group__axis2__flow__container.html#ge766ce97e139207a8fe5b7a92b6003b2">axis2_flow_container.h</a>
<li>axis2_flow_container_get_fault_in_flow()
: <a class="el" href="group__axis2__flow__container.html#g60301ffa364f8eb0a003bf87d2ac47a9">axis2_flow_container.h</a>
<li>axis2_flow_container_get_fault_out_flow()
: <a class="el" href="group__axis2__flow__container.html#g1f58a7584d692df17ec20c9f5d5cbf67">axis2_flow_container.h</a>
<li>axis2_flow_container_get_in_flow()
: <a class="el" href="group__axis2__flow__container.html#g977c13c226bc8108499ef62d21ac903c">axis2_flow_container.h</a>
<li>axis2_flow_container_get_out_flow()
: <a class="el" href="group__axis2__flow__container.html#gc469d08060b162390a2aca7c2bcc5d9e">axis2_flow_container.h</a>
<li>axis2_flow_container_set_fault_in_flow()
: <a class="el" href="group__axis2__flow__container.html#g361c90729eeb72306ef10b06ba41931d">axis2_flow_container.h</a>
<li>axis2_flow_container_set_fault_out_flow()
: <a class="el" href="group__axis2__flow__container.html#g872dda5815ce3274d01182479cfbec54">axis2_flow_container.h</a>
<li>axis2_flow_container_set_in_flow()
: <a class="el" href="group__axis2__flow__container.html#g4b57cb3cef283e2f8243e2a85ed33553">axis2_flow_container.h</a>
<li>axis2_flow_container_set_out_flow()
: <a class="el" href="group__axis2__flow__container.html#g2f295bb41ea59569db8fd3585f9c4ff5">axis2_flow_container.h</a>
<li>axis2_flow_create()
: <a class="el" href="group__axis2__flow.html#g5b4b49a29511e4ec79aa4e61f5d39683">axis2_flow.h</a>
<li>axis2_flow_free()
: <a class="el" href="group__axis2__flow.html#gfe394cb1e43be0a398b00c70c20c8829">axis2_flow.h</a>
<li>axis2_flow_free_void_arg()
: <a class="el" href="group__axis2__flow.html#g42ad166a913ea806e83ad0f60ac49d73">axis2_flow.h</a>
<li>axis2_flow_get_handler()
: <a class="el" href="group__axis2__flow.html#g0f925593bca54ac897ea32016b4374fb">axis2_flow.h</a>
<li>axis2_flow_get_handler_count()
: <a class="el" href="group__axis2__flow.html#g161794e7edbc62bc9e93ed573360cbb8">axis2_flow.h</a>
<li>axis2_handler_create()
: <a class="el" href="group__axis2__handler.html#gf6ebc6af97f6e0f7f3709c3b474cb1e3">axis2_handler.h</a>
<li>axis2_handler_desc_add_param()
: <a class="el" href="group__axis2__handler__desc.html#g737790760fbba87a858641543d446814">axis2_handler_desc.h</a>
<li>axis2_handler_desc_create()
: <a class="el" href="group__axis2__handler__desc.html#g87d6dacc6e0aba457cad85bbc1ed037f">axis2_handler_desc.h</a>
<li>axis2_handler_desc_free()
: <a class="el" href="group__axis2__handler__desc.html#g8c30a90d80ac928f900cd20e42577840">axis2_handler_desc.h</a>
<li>axis2_handler_desc_get_all_params()
: <a class="el" href="group__axis2__handler__desc.html#gd3abdf743cd711b6277f2e4754211396">axis2_handler_desc.h</a>
<li>axis2_handler_desc_get_class_name()
: <a class="el" href="group__axis2__handler__desc.html#g6a12dc3e24a7db6642ef3392db1853cb">axis2_handler_desc.h</a>
<li>axis2_handler_desc_get_handler()
: <a class="el" href="group__axis2__handler__desc.html#g802a79e88268339bb7e5f867cf34f216">axis2_handler_desc.h</a>
<li>axis2_handler_desc_get_name()
: <a class="el" href="group__axis2__handler__desc.html#g11aa71d93a360714ef716667458b545f">axis2_handler_desc.h</a>
<li>axis2_handler_desc_get_param()
: <a class="el" href="group__axis2__handler__desc.html#g8123741b6af07768a2259a2d15102e13">axis2_handler_desc.h</a>
<li>axis2_handler_desc_get_param_container()
: <a class="el" href="group__axis2__handler__desc.html#g09fbdbcc01525968858a53740aaf164e">axis2_handler_desc.h</a>
<li>axis2_handler_desc_get_parent()
: <a class="el" href="group__axis2__handler__desc.html#gc4ff89737d616b5c948731965e00b564">axis2_handler_desc.h</a>
<li>axis2_handler_desc_get_rules()
: <a class="el" href="group__axis2__handler__desc.html#g7b4d3746f2bd22d912ef0f92b6359749">axis2_handler_desc.h</a>
<li>axis2_handler_desc_is_param_locked()
: <a class="el" href="group__axis2__handler__desc.html#g0ecc479c307be432ced66fc9cb18764a">axis2_handler_desc.h</a>
<li>axis2_handler_desc_set_class_name()
: <a class="el" href="group__axis2__handler__desc.html#g29292b75f8442364eeaa7cf81dfde2d6">axis2_handler_desc.h</a>
<li>axis2_handler_desc_set_handler()
: <a class="el" href="group__axis2__handler__desc.html#gba47ad772ed9b1efa3b1ac2a66d1a2cd">axis2_handler_desc.h</a>
<li>axis2_handler_desc_set_name()
: <a class="el" href="group__axis2__handler__desc.html#gae78bea7a133eae9b6c479400a2249d3">axis2_handler_desc.h</a>
<li>axis2_handler_desc_set_parent()
: <a class="el" href="group__axis2__handler__desc.html#g92b9ba1b7c76d813c580f22abb2a028f">axis2_handler_desc.h</a>
<li>axis2_handler_desc_set_rules()
: <a class="el" href="group__axis2__handler__desc.html#g6f0e73a9285c1d118d5d7de0ef0d2877">axis2_handler_desc.h</a>
<li>axis2_handler_free()
: <a class="el" href="group__axis2__handler.html#g1e0beec4adf09b9326565095bec4691a">axis2_handler.h</a>
<li>axis2_handler_get_handler_desc()
: <a class="el" href="group__axis2__handler.html#g68ed525c6303fcf9cda284eef07b270e">axis2_handler.h</a>
<li>axis2_handler_get_name()
: <a class="el" href="group__axis2__handler.html#g155435ede9e1fcbe13b28dc321601216">axis2_handler.h</a>
<li>axis2_handler_get_param()
: <a class="el" href="group__axis2__handler.html#g6359a617f32df26f912923d4c73f695a">axis2_handler.h</a>
<li>axis2_handler_init()
: <a class="el" href="group__axis2__handler.html#g2c33a42d1670dbe42f287a5e3d6dfd1d">axis2_handler.h</a>
<li>axis2_handler_invoke()
: <a class="el" href="group__axis2__handler.html#gf53f1c483110e9e371069a9d87985742">axis2_handler.h</a>
<li>axis2_http_accept_record_create()
: <a class="el" href="group__axis2__http__accept__record.html#g45d98a462f88abf99d5a80f28ae3062d">axis2_http_accept_record.h</a>
<li>axis2_http_accept_record_free()
: <a class="el" href="group__axis2__http__accept__record.html#g239e70683b74ebbbf004f46a02b63303">axis2_http_accept_record.h</a>
<li>axis2_http_accept_record_get_level()
: <a class="el" href="group__axis2__http__accept__record.html#g6db10df60b5e5856bce8c554e612b946">axis2_http_accept_record.h</a>
<li>axis2_http_accept_record_get_name()
: <a class="el" href="group__axis2__http__accept__record.html#g61ea3c1ecec15e26ee9ff5d0f4bfb20e">axis2_http_accept_record.h</a>
<li>axis2_http_accept_record_get_quality_factor()
: <a class="el" href="group__axis2__http__accept__record.html#ge98e15ea5ff044610c235f7c45d947d7">axis2_http_accept_record.h</a>
<li>axis2_http_accept_record_to_string()
: <a class="el" href="group__axis2__http__accept__record.html#g8a6bd83de0b54aa34e6b297a02a13782">axis2_http_accept_record.h</a>
<li>axis2_http_client_create()
: <a class="el" href="group__axis2__http__client.html#gfd79db7fb40936a06673e606771aa57d">axis2_http_client.h</a>
<li>axis2_http_client_free()
: <a class="el" href="group__axis2__http__client.html#g201ef99f4cd3520db5d6d6dddb93dfad">axis2_http_client.h</a>
<li>axis2_http_client_free_void_arg()
: <a class="el" href="group__axis2__http__client.html#gc33e073ad963820ba18f7b255b060a53">axis2_http_client.h</a>
<li>axis2_http_client_get_key_file()
: <a class="el" href="group__axis2__http__client.html#g59c9e33acb7844f4b9613286e3dd5c98">axis2_http_client.h</a>
<li>axis2_http_client_get_proxy()
: <a class="el" href="group__axis2__http__client.html#geafedbee3be84605e6872b2ba4ed7cb4">axis2_http_client.h</a>
<li>axis2_http_client_get_response()
: <a class="el" href="group__axis2__http__client.html#gd341b350cc543e7e7dbdba85c7ca952e">axis2_http_client.h</a>
<li>axis2_http_client_get_server_cert()
: <a class="el" href="group__axis2__http__client.html#g359e463dc9e7f0a7b33f2b3f91b1484e">axis2_http_client.h</a>
<li>axis2_http_client_get_timeout()
: <a class="el" href="group__axis2__http__client.html#g32bb50461fab10fa658ac0d1c659e7da">axis2_http_client.h</a>
<li>axis2_http_client_get_url()
: <a class="el" href="group__axis2__http__client.html#g703df971a6d10953a217b2aaa173a626">axis2_http_client.h</a>
<li>axis2_http_client_recieve_header()
: <a class="el" href="group__axis2__http__client.html#g5f5f7785804c35e3eb2adf658ac03343">axis2_http_client.h</a>
<li>axis2_http_client_send()
: <a class="el" href="group__axis2__http__client.html#g101755ba5822bee5f88615d18fa6259f">axis2_http_client.h</a>
<li>axis2_http_client_set_key_file()
: <a class="el" href="group__axis2__http__client.html#g90dd4214f012bb8f75c9dc572eb78945">axis2_http_client.h</a>
<li>axis2_http_client_set_proxy()
: <a class="el" href="group__axis2__http__client.html#gbbfff130bda80cf00cb020a08d92e900">axis2_http_client.h</a>
<li>axis2_http_client_set_server_cert()
: <a class="el" href="group__axis2__http__client.html#gb9f482d072c34edf2b8a6b901dcc52d2">axis2_http_client.h</a>
<li>axis2_http_client_set_timeout()
: <a class="el" href="group__axis2__http__client.html#g7b4a59a173e56ce5e461a5e65e219def">axis2_http_client.h</a>
<li>axis2_http_client_set_url()
: <a class="el" href="group__axis2__http__client.html#g66ab25088ee5cbc88dbe28e129711f5b">axis2_http_client.h</a>
<li>axis2_http_header_create()
: <a class="el" href="group__axis2__http__header.html#g36d6aff978955bdebabf97f2f3fedcb4">axis2_http_header.h</a>
<li>axis2_http_header_create_by_str()
: <a class="el" href="group__axis2__http__header.html#gea6446730aadb5a0ec0dfb43c9eb9bed">axis2_http_header.h</a>
<li>axis2_http_header_free()
: <a class="el" href="group__axis2__http__header.html#ge3c5a41a47460b57aa99786bd7590e86">axis2_http_header.h</a>
<li>axis2_http_header_get_name()
: <a class="el" href="group__axis2__http__header.html#g5963ee03651481ebff143191634ae3cc">axis2_http_header.h</a>
<li>axis2_http_header_get_value()
: <a class="el" href="group__axis2__http__header.html#g79fab3410cde781fa766423032972c74">axis2_http_header.h</a>
<li>axis2_http_header_to_external_form()
: <a class="el" href="group__axis2__http__header.html#g405ecf563b1d8c47c22b21900b53f7b1">axis2_http_header.h</a>
<li>axis2_http_out_transport_info_create()
: <a class="el" href="group__axis2__http__out__transport__info.html#gdabad3886ddb36d456a502e6e257ad88">axis2_http_out_transport_info.h</a>
<li>axis2_http_out_transport_info_free()
: <a class="el" href="group__axis2__http__out__transport__info.html#gd6d974df0df738b3e994146bf2445c17">axis2_http_out_transport_info.h</a>
<li>axis2_http_out_transport_info_free_void_arg()
: <a class="el" href="group__axis2__http__out__transport__info.html#g8ff11c179d868a06362b9dea7edb3d5c">axis2_http_out_transport_info.h</a>
<li>axis2_http_out_transport_info_set_char_encoding()
: <a class="el" href="group__axis2__http__out__transport__info.html#g9368ed3e85952d69b382d57e6d8b9610">axis2_http_out_transport_info.h</a>
<li>axis2_http_out_transport_info_set_content_type()
: <a class="el" href="group__axis2__http__out__transport__info.html#g6c6fc7b1cf689442c23c5d2db2353acf">axis2_http_out_transport_info.h</a>
<li>axis2_http_request_line_create()
: <a class="el" href="group__axis2__http__request__line.html#gf722f10a9e8b2f115af74dcbd066339a">axis2_http_request_line.h</a>
<li>axis2_http_request_line_free()
: <a class="el" href="group__axis2__http__request__line.html#gd8aa2d51456b6843690d75278de59abe">axis2_http_request_line.h</a>
<li>axis2_http_request_line_get_http_version()
: <a class="el" href="group__axis2__http__request__line.html#g104a1455c97d7a340e9690c8964abcd0">axis2_http_request_line.h</a>
<li>axis2_http_request_line_get_method()
: <a class="el" href="group__axis2__http__request__line.html#gc5ba67dbf9bbfb3a87a051f54242e17b">axis2_http_request_line.h</a>
<li>axis2_http_request_line_get_uri()
: <a class="el" href="group__axis2__http__request__line.html#g710583159d531db8e4a504920d820f07">axis2_http_request_line.h</a>
<li>axis2_http_request_line_parse_line()
: <a class="el" href="group__axis2__http__request__line.html#g423db6e23965c9380c2152eca233db25">axis2_http_request_line.h</a>
<li>axis2_http_request_line_to_string()
: <a class="el" href="group__axis2__http__request__line.html#g0ad4fd96368580cc4bbf594f6efde5b7">axis2_http_request_line.h</a>
<li>axis2_http_response_writer_close()
: <a class="el" href="group__axis2__http__response__writer.html#ge3d2d72f0450b556f3a4fe0cfd744881">axis2_http_response_writer.h</a>
<li>axis2_http_response_writer_create()
: <a class="el" href="group__axis2__http__response__writer.html#g115bd88c5873671ae1d9254c3d76fd62">axis2_http_response_writer.h</a>
<li>axis2_http_response_writer_create_with_encoding()
: <a class="el" href="group__axis2__http__response__writer.html#gfa1431f2e3ffb7a707769039b0d2407b">axis2_http_response_writer.h</a>
<li>axis2_http_response_writer_flush()
: <a class="el" href="group__axis2__http__response__writer.html#gb1a6a1b2186ba65ec6bf6d94ee0d6385">axis2_http_response_writer.h</a>
<li>axis2_http_response_writer_free()
: <a class="el" href="group__axis2__http__response__writer.html#g4aa971c45559a87946fd94f348b7d4d7">axis2_http_response_writer.h</a>
<li>axis2_http_response_writer_get_encoding()
: <a class="el" href="group__axis2__http__response__writer.html#g4d45835e7866ec6076b41f000c5b3bee">axis2_http_response_writer.h</a>
<li>axis2_http_response_writer_print_int()
: <a class="el" href="group__axis2__http__response__writer.html#gbeed0ef80c00b522dd1372901ecca873">axis2_http_response_writer.h</a>
<li>axis2_http_response_writer_print_str()
: <a class="el" href="group__axis2__http__response__writer.html#g2fcb29f5c9d3c09b08267641f6b78178">axis2_http_response_writer.h</a>
<li>axis2_http_response_writer_println()
: <a class="el" href="group__axis2__http__response__writer.html#g16200523d3e8833f40e37d80767722bb">axis2_http_response_writer.h</a>
<li>axis2_http_response_writer_println_str()
: <a class="el" href="group__axis2__http__response__writer.html#g12c2594faab7f36ac670b500b5ca9a48">axis2_http_response_writer.h</a>
<li>axis2_http_response_writer_write_buf()
: <a class="el" href="group__axis2__http__response__writer.html#g6d27ae339974794ede82a7c9e1270c22">axis2_http_response_writer.h</a>
<li>axis2_http_response_writer_write_char()
: <a class="el" href="group__axis2__http__response__writer.html#g9368c11f97efadb018f9319d374fcf18">axis2_http_response_writer.h</a>
<li>axis2_http_sender_create()
: <a class="el" href="axis2__http__sender_8h.html#7b78151a46456e34ef5968a894108033">axis2_http_sender.h</a>
<li>axis2_http_sender_free()
: <a class="el" href="axis2__http__sender_8h.html#162893dae3afbc0fe252e4212c5b3041">axis2_http_sender.h</a>
<li>axis2_http_sender_get_header_info()
: <a class="el" href="axis2__http__sender_8h.html#22b551f3e5b5b6401bf0eb76d76d6dca">axis2_http_sender.h</a>
<li>axis2_http_sender_get_timeout_values()
: <a class="el" href="axis2__http__sender_8h.html#d7fba5bcef2d635354c29dae74580748">axis2_http_sender.h</a>
<li>axis2_http_sender_process_response()
: <a class="el" href="axis2__http__sender_8h.html#d59456a80bebf0481cd502c618943c67">axis2_http_sender.h</a>
<li>axis2_http_sender_send()
: <a class="el" href="axis2__http__sender_8h.html#23a2300c0fe2f0b032d43946e17bdc08">axis2_http_sender.h</a>
<li>axis2_http_sender_set_chunked()
: <a class="el" href="axis2__http__sender_8h.html#f0ef471e61eef4e81579b2c69317769b">axis2_http_sender.h</a>
<li>axis2_http_sender_set_http_version()
: <a class="el" href="axis2__http__sender_8h.html#eebaac858f5ef79d511a6c22222324fc">axis2_http_sender.h</a>
<li>axis2_http_sender_set_om_output()
: <a class="el" href="axis2__http__sender_8h.html#4ed1abf9d12cdc4f38eda059dc874d28">axis2_http_sender.h</a>
<li>axis2_http_simple_request_add_header()
: <a class="el" href="group__axis2__http__simple__request.html#g8451d9b42f770193cf5d4d5d2b699710">axis2_http_simple_request.h</a>
<li>axis2_http_simple_request_contains_header()
: <a class="el" href="group__axis2__http__simple__request.html#gbf7dd0d486ee2058b0ffb1db75510c7f">axis2_http_simple_request.h</a>
<li>axis2_http_simple_request_create()
: <a class="el" href="group__axis2__http__simple__request.html#g1ede2c7bbd3f657b898f2b98c97e2a20">axis2_http_simple_request.h</a>
<li>axis2_http_simple_request_free()
: <a class="el" href="group__axis2__http__simple__request.html#gaeb4abc4abfbf9b5789b986c1bf47d48">axis2_http_simple_request.h</a>
<li>axis2_http_simple_request_get_body()
: <a class="el" href="group__axis2__http__simple__request.html#g96fc519ef12d1ceeb0a8e7c139217331">axis2_http_simple_request.h</a>
<li>axis2_http_simple_request_get_body_bytes()
: <a class="el" href="group__axis2__http__simple__request.html#ge431df3effadffc3192024b49dffc4bd">axis2_http_simple_request.h</a>
<li>axis2_http_simple_request_get_charset()
: <a class="el" href="group__axis2__http__simple__request.html#g340aaf878e94c5e010931b4a1de7a230">axis2_http_simple_request.h</a>
<li>axis2_http_simple_request_get_content_length()
: <a class="el" href="group__axis2__http__simple__request.html#g240a77f497fd89d640f9e7364263647f">axis2_http_simple_request.h</a>
<li>axis2_http_simple_request_get_content_type()
: <a class="el" href="group__axis2__http__simple__request.html#g74b99f552c7acdf24cfdc693ac77f732">axis2_http_simple_request.h</a>
<li>axis2_http_simple_request_get_first_header()
: <a class="el" href="group__axis2__http__simple__request.html#gf9b0570c70ee242116e4208dca302273">axis2_http_simple_request.h</a>
<li>axis2_http_simple_request_get_headers()
: <a class="el" href="group__axis2__http__simple__request.html#g9fe9677642fa793af996875b3cee31d9">axis2_http_simple_request.h</a>
<li>axis2_http_simple_request_get_request_line()
: <a class="el" href="group__axis2__http__simple__request.html#g6ac660f82dcc2f279f88179c9c8e93a1">axis2_http_simple_request.h</a>
<li>axis2_http_simple_request_remove_headers()
: <a class="el" href="group__axis2__http__simple__request.html#g13c4f13d8fb1461784477498c78624d0">axis2_http_simple_request.h</a>
<li>axis2_http_simple_request_set_body_string()
: <a class="el" href="group__axis2__http__simple__request.html#gcc978b2478be7c335d62ba8855dddb20">axis2_http_simple_request.h</a>
<li>axis2_http_simple_request_set_request_line()
: <a class="el" href="group__axis2__http__simple__request.html#gb86fa24c5e3e0a99591bf8b3cb48dd20">axis2_http_simple_request.h</a>
<li>axis2_http_status_line_create()
: <a class="el" href="group__axis2__http__status__line.html#gbaf68d23c0e7e8d0e91687a7d6e9b848">axis2_http_status_line.h</a>
<li>axis2_http_status_line_free()
: <a class="el" href="group__axis2__http__status__line.html#gc063225dd0eb855ae6a0fb258da36446">axis2_http_status_line.h</a>
<li>axis2_http_status_line_get_http_version()
: <a class="el" href="group__axis2__http__status__line.html#g390e05c6879613417b978d8a3242d8c5">axis2_http_status_line.h</a>
<li>axis2_http_status_line_get_reason_phrase()
: <a class="el" href="group__axis2__http__status__line.html#g7ca13bebe337e3af6d598364bec86a2a">axis2_http_status_line.h</a>
<li>axis2_http_status_line_get_status_code()
: <a class="el" href="group__axis2__http__status__line.html#g1520ba9334144bcf3debdff777909e30">axis2_http_status_line.h</a>
<li>axis2_http_status_line_starts_with_http()
: <a class="el" href="group__axis2__http__status__line.html#gc8a15adb266f3dbd37ede4817928ca1b">axis2_http_status_line.h</a>
<li>axis2_http_status_line_to_string()
: <a class="el" href="group__axis2__http__status__line.html#g319d008ee6dbd9e639c652b73c8ad73f">axis2_http_status_line.h</a>
<li>axis2_http_svr_thread_create()
: <a class="el" href="group__axis2__http__svr__thread.html#ga08b88e3cf6d3816a290fb222d755fc5">axis2_http_svr_thread.h</a>
<li>axis2_http_svr_thread_destroy()
: <a class="el" href="group__axis2__http__svr__thread.html#g81acbfe55c56823154fee7eac27891db">axis2_http_svr_thread.h</a>
<li>axis2_http_svr_thread_free()
: <a class="el" href="group__axis2__http__svr__thread.html#gc9ba98f63d99c0cd0e5d3b8c4b7cd15a">axis2_http_svr_thread.h</a>
<li>axis2_http_svr_thread_get_local_port()
: <a class="el" href="group__axis2__http__svr__thread.html#g68ea3285f43e01fc9f2b3e15ca7691e6">axis2_http_svr_thread.h</a>
<li>axis2_http_svr_thread_is_running()
: <a class="el" href="group__axis2__http__svr__thread.html#gf5fb6670fb1523a14af93a19f461a934">axis2_http_svr_thread.h</a>
<li>axis2_http_svr_thread_run()
: <a class="el" href="group__axis2__http__svr__thread.html#g0c8d29b7372ac3dbf15a159c5fa514cd">axis2_http_svr_thread.h</a>
<li>axis2_http_svr_thread_set_worker()
: <a class="el" href="group__axis2__http__svr__thread.html#g163b488819242f3e0f5120d7d645980d">axis2_http_svr_thread.h</a>
<li>axis2_http_transport_sender_create()
: <a class="el" href="group__axis2__http__transport__sender.html#g900f9936770cbf56d5a071ae4c18ddb7">axis2_http_transport_sender.h</a>
<li>axis2_http_transport_utils_process_http_post_request()
: <a class="el" href="axis2__http__transport__utils_8h.html#e309ed43dea34867236087b7f333c1df">axis2_http_transport_utils.h</a>
<li>axis2_http_transport_utils_process_http_put_request()
: <a class="el" href="axis2__http__transport__utils_8h.html#86eff382a23f3dac365a6d37c7d8ff54">axis2_http_transport_utils.h</a>
<li>axis2_http_transport_utils_process_request()
: <a class="el" href="axis2__http__transport__utils_8h.html#658b7a4b49b9e111bfa4785681f62133">axis2_http_transport_utils.h</a>
<li>axis2_http_transport_utils_transport_in_init()
: <a class="el" href="axis2__http__transport__utils_8h.html#5b1c4741faf0fe96b7fe03186c69abdd">axis2_http_transport_utils.h</a>
<li>axis2_http_transport_utils_transport_in_uninit()
: <a class="el" href="axis2__http__transport__utils_8h.html#f7234adf7d479a35a5c493bdf927cf58">axis2_http_transport_utils.h</a>
<li>axis2_http_transport_utils_transport_out_init()
: <a class="el" href="axis2__http__transport__utils_8h.html#6e515e0c355171b2a60b9227a2dc1136">axis2_http_transport_utils.h</a>
<li>axis2_http_worker_create()
: <a class="el" href="group__axis2__http__worker.html#g33e98090d4482c2804d2e37487bc603f">axis2_http_worker.h</a>
<li>axis2_http_worker_free()
: <a class="el" href="group__axis2__http__worker.html#g1a3b73fc4ba2f66ea1dc74d791a70d88">axis2_http_worker.h</a>
<li>axis2_http_worker_process_request()
: <a class="el" href="group__axis2__http__worker.html#ga1cebc142b582731d6ccfe31e4eec310">axis2_http_worker.h</a>
<li>axis2_http_worker_set_svr_port()
: <a class="el" href="group__axis2__http__worker.html#gfb1d2dcface2bf7416de679db5f7851b">axis2_http_worker.h</a>
<li>axis2_listener_manager_create()
: <a class="el" href="group__axis2__listener__manager.html#g5ec86a93f88b4b786b0e121b545147ee">axis2_listener_manager.h</a>
<li>axis2_listener_manager_free()
: <a class="el" href="group__axis2__listener__manager.html#g4fa9a09dcf7fb5491806eb62ca43db25">axis2_listener_manager.h</a>
<li>axis2_listener_manager_get_conf_ctx()
: <a class="el" href="group__axis2__listener__manager.html#g7bbcb6361e6cd875b2a95198645573c6">axis2_listener_manager.h</a>
<li>axis2_listener_manager_get_reply_to_epr()
: <a class="el" href="group__axis2__listener__manager.html#g98741fbe3a3e68a7a631960c2387b0ea">axis2_listener_manager.h</a>
<li>axis2_listener_manager_make_sure_started()
: <a class="el" href="group__axis2__listener__manager.html#g1e7458c7473be15ce253a9a0a5ff133f">axis2_listener_manager.h</a>
<li>axis2_listener_manager_stop()
: <a class="el" href="group__axis2__listener__manager.html#g6c4f3cd813f06a94d27a9780328ac8bd">axis2_listener_manager.h</a>
<li>axis2_module_create()
: <a class="el" href="group__axis2__module.html#gbbf3d0b019a87d06a865131d41d57fc4">axis2_module.h</a>
<li>axis2_module_desc_add_op()
: <a class="el" href="group__axis2__module__desc.html#g6b5f55cbf9b71e1e662c7dc8fdc5489d">axis2_module_desc.h</a>
<li>axis2_module_desc_add_param()
: <a class="el" href="group__axis2__module__desc.html#g47de5f2a697c6994862579db03050d92">axis2_module_desc.h</a>
<li>axis2_module_desc_create()
: <a class="el" href="group__axis2__module__desc.html#gb7bdee97a344fe15071d867b83b02d78">axis2_module_desc.h</a>
<li>axis2_module_desc_create_with_qname()
: <a class="el" href="group__axis2__module__desc.html#g32a5747341faa2fd783403556d884802">axis2_module_desc.h</a>
<li>axis2_module_desc_free()
: <a class="el" href="group__axis2__module__desc.html#gc448952574bfefeaa624d2d3e053cf89">axis2_module_desc.h</a>
<li>axis2_module_desc_free_void_arg()
: <a class="el" href="group__axis2__module__desc.html#g346c54cf62f63272833814eeb412904d">axis2_module_desc.h</a>
<li>axis2_module_desc_get_all_ops()
: <a class="el" href="group__axis2__module__desc.html#gd780223e3a54586ef6bf173c49eb9d9b">axis2_module_desc.h</a>
<li>axis2_module_desc_get_all_params()
: <a class="el" href="group__axis2__module__desc.html#g4c5fa59c3c4ceca4cb2f57425f4e7838">axis2_module_desc.h</a>
<li>axis2_module_desc_get_fault_in_flow()
: <a class="el" href="group__axis2__module__desc.html#g3ec33b603cdf59e705be51f6b91325f6">axis2_module_desc.h</a>
<li>axis2_module_desc_get_fault_out_flow()
: <a class="el" href="group__axis2__module__desc.html#g4879dd6cadbceca1634e17924429d6c0">axis2_module_desc.h</a>
<li>axis2_module_desc_get_flow_container()
: <a class="el" href="group__axis2__module__desc.html#g268f3d8499ddd8eb7a17d775dc1a2663">axis2_module_desc.h</a>
<li>axis2_module_desc_get_in_flow()
: <a class="el" href="group__axis2__module__desc.html#ga133856dcfeb27be4c08d8c353c66255">axis2_module_desc.h</a>
<li>axis2_module_desc_get_module()
: <a class="el" href="group__axis2__module__desc.html#gd421edfcd1fe5c5d9770b9ea74e8b4d9">axis2_module_desc.h</a>
<li>axis2_module_desc_get_out_flow()
: <a class="el" href="group__axis2__module__desc.html#gee74a4f6384c34f35780864b8c36cc50">axis2_module_desc.h</a>
<li>axis2_module_desc_get_param()
: <a class="el" href="group__axis2__module__desc.html#g4c2f8d8e3b263468edc82aa1d53aea3a">axis2_module_desc.h</a>
<li>axis2_module_desc_get_param_container()
: <a class="el" href="group__axis2__module__desc.html#g1a09ad8c0b308f4793ca1643059c7810">axis2_module_desc.h</a>
<li>axis2_module_desc_get_parent()
: <a class="el" href="group__axis2__module__desc.html#gb01c8f56f9c94ca518849c09bc7bf0d8">axis2_module_desc.h</a>
<li>axis2_module_desc_get_qname()
: <a class="el" href="group__axis2__module__desc.html#g9438beca852762d657353cf0c31146af">axis2_module_desc.h</a>
<li>axis2_module_desc_is_param_locked()
: <a class="el" href="group__axis2__module__desc.html#g889f5fc4ff540dc1c8a2b32b145bc2c9">axis2_module_desc.h</a>
<li>axis2_module_desc_set_fault_in_flow()
: <a class="el" href="group__axis2__module__desc.html#gc298b10b80e0259f8a0c44411d544ba0">axis2_module_desc.h</a>
<li>axis2_module_desc_set_fault_out_flow()
: <a class="el" href="group__axis2__module__desc.html#ga36710d6c228635ea4223b1de3b40e97">axis2_module_desc.h</a>
<li>axis2_module_desc_set_in_flow()
: <a class="el" href="group__axis2__module__desc.html#g1dee42234c84e9a1f39829b03abd75ef">axis2_module_desc.h</a>
<li>axis2_module_desc_set_module()
: <a class="el" href="group__axis2__module__desc.html#g0177e17d95d9dff343c5a0383464b5fb">axis2_module_desc.h</a>
<li>axis2_module_desc_set_out_flow()
: <a class="el" href="group__axis2__module__desc.html#g7eb90b76e13c85492f9b27c2eca2a965">axis2_module_desc.h</a>
<li>axis2_module_desc_set_parent()
: <a class="el" href="group__axis2__module__desc.html#g2571fdc9828be8ccf946ed5b9e0fc205">axis2_module_desc.h</a>
<li>axis2_module_desc_set_qname()
: <a class="el" href="group__axis2__module__desc.html#g85c96803117bc02ca8d224d4b9517372">axis2_module_desc.h</a>
<li>axis2_msg_add_param()
: <a class="el" href="group__axis2__msg.html#g4a04523e93cd4066b038f14d31f3d60e">axis2_msg.h</a>
<li>axis2_msg_create()
: <a class="el" href="group__axis2__msg.html#ge674ded0d7b93ff698a55334d6221286">axis2_msg.h</a>
<li>axis2_msg_ctx_create()
: <a class="el" href="group__axis2__msg__ctx.html#gcaafe43e332e370bc1e3f3c5d0f361a0">axis2_msg_ctx.h</a>
<li>axis2_msg_ctx_extract_http_accept_charset_record_list()
: <a class="el" href="group__axis2__msg__ctx.html#gb0f787898e23723828108b29bbd66487">axis2_msg_ctx.h</a>
<li>axis2_msg_ctx_extract_http_accept_language_record_list()
: <a class="el" href="group__axis2__msg__ctx.html#gff16a50cb3f3aeff0e17d9facb8b11a9">axis2_msg_ctx.h</a>
<li>axis2_msg_ctx_extract_http_accept_record_list()
: <a class="el" href="group__axis2__msg__ctx.html#gadaa4476daadd7ae65a0c58e06989eed">axis2_msg_ctx.h</a>
<li>axis2_msg_ctx_extract_http_output_headers()
: <a class="el" href="group__axis2__msg__ctx.html#gdaa7cdb0148e178e1709bef54be82ad6">axis2_msg_ctx.h</a>
<li>axis2_msg_ctx_extract_transport_headers()
: <a class="el" href="group__axis2__msg__ctx.html#g8c0f85aa52f15616c9864ff804f84149">axis2_msg_ctx.h</a>
<li>axis2_msg_ctx_find_op()
: <a class="el" href="group__axis2__msg__ctx.html#g06450d683a212d8246cc5c240bbce9c9">axis2_msg_ctx.h</a>
<li>axis2_msg_ctx_find_svc()
: <a class="el" href="group__axis2__msg__ctx.html#g0466cae16b55c308d5adb92c11bd6665">axis2_msg_ctx.h</a>
<li>axis2_msg_ctx_free()
: <a class="el" href="group__axis2__msg__ctx.html#gb324606b76e49c07e3ea0454f964284a">axis2_msg_ctx.h</a>
<li>axis2_msg_ctx_get_auth_failed()
: <a class="el" href="group__axis2__msg__ctx.html#g9275a1b7095f53dc1fc3b81946296acc">axis2_msg_ctx.h</a>
<li>axis2_msg_ctx_get_auth_type()
: <a class="el" href="group__axis2__msg__ctx.html#g6cef678fb88ba92bfc2201b0e077cf69">axis2_msg_ctx.h</a>
<li>axis2_msg_ctx_get_base()
: <a class="el" href="group__axis2__msg__ctx.html#g21705c3ecce5d8869ecf66fc68a9cc21">axis2_msg_ctx.h</a>
<li>axis2_msg_ctx_get_charset_encoding()
: <a class="el" href="group__axis2__msg__ctx.html#g872a75f28661a8c83694e47825d3c7d0">axis2_msg_ctx.h</a>
<li>axis2_msg_ctx_get_conf_ctx()
: <a class="el" href="group__axis2__msg__ctx.html#g08b24ce7f8f48a571a0a3461d7e17af9">axis2_msg_ctx.h</a>
<li>axis2_msg_ctx_get_content_language()
: <a class="el" href="group__axis2__msg__ctx.html#g8343c9fe27d659cfe939ff865033bc3d">axis2_msg_ctx.h</a>
<li>axis2_msg_ctx_get_current_handler_index()
: <a class="el" href="group__axis2__msg__ctx.html#g450a580a5f51545746aeb794a0a010d5">axis2_msg_ctx.h</a>
<li>axis2_msg_ctx_get_current_phase_index()
: <a class="el" href="group__axis2__msg__ctx.html#g8a5c8277c0574011517121e95d28d693">axis2_msg_ctx.h</a>
<li>axis2_msg_ctx_get_do_rest_through_post()
: <a class="el" href="group__axis2__msg__ctx.html#g92affc014f41b9458d497f9f413c96b0">axis2_msg_ctx.h</a>
<li>axis2_msg_ctx_get_doing_mtom()
: <a class="el" href="group__axis2__msg__ctx.html#g06b44f369602fb1f397faf8c3b686fbd">axis2_msg_ctx.h</a>
<li>axis2_msg_ctx_get_doing_rest()
: <a class="el" href="group__axis2__msg__ctx.html#g3df7388fa1f7bfe10b559a0a5a2ff1dc">axis2_msg_ctx.h</a>
<li>axis2_msg_ctx_get_execution_chain()
: <a class="el" href="group__axis2__msg__ctx.html#gc944c499d0c5680080b4a87f5e312746">axis2_msg_ctx.h</a>
<li>axis2_msg_ctx_get_fault_soap_envelope()
: <a class="el" href="group__axis2__msg__ctx.html#gcad76203a38152006e85476751ae7826">axis2_msg_ctx.h</a>
<li>axis2_msg_ctx_get_fault_to()
: <a class="el" href="group__axis2__msg__ctx.html#g67ec8b0b713a7e2f0f0ba6d04ea8c483">axis2_msg_ctx.h</a>
<li>axis2_msg_ctx_get_flow()
: <a class="el" href="group__axis2__msg__ctx.html#gd70614caf6e01d3f061b994f0e87d0e8">axis2_msg_ctx.h</a>
<li>axis2_msg_ctx_get_from()
: <a class="el" href="group__axis2__msg__ctx.html#g8494bb2e6d1b4663da5dbf99ef2ee16e">axis2_msg_ctx.h</a>
<li>axis2_msg_ctx_get_http_accept_charset_record_list()
: <a class="el" href="group__axis2__msg__ctx.html#gb0be9834b54fbc08fa1acc6f3d9ab0d6">axis2_msg_ctx.h</a>
<li>axis2_msg_ctx_get_http_accept_language_record_list()
: <a class="el" href="group__axis2__msg__ctx.html#gffc30ac34ed6fffb2980a1e95532b51d">axis2_msg_ctx.h</a>
<li>axis2_msg_ctx_get_http_accept_record_list()
: <a class="el" href="group__axis2__msg__ctx.html#gf9fa321552ac0debc4cd7e094e7e12ed">axis2_msg_ctx.h</a>
<li>axis2_msg_ctx_get_http_output_headers()
: <a class="el" href="group__axis2__msg__ctx.html#gbba5b7ca4deab1b41fda5701ec5b1be7">axis2_msg_ctx.h</a>
<li>axis2_msg_ctx_get_in_fault_flow()
: <a class="el" href="group__axis2__msg__ctx.html#g01232a7693673fae962371c41cc154bd">axis2_msg_ctx.h</a>
<li>axis2_msg_ctx_get_is_soap_11()
: <a class="el" href="group__axis2__msg__ctx.html#g6dbf37da7d9d04410d2a78aa621c9fb5">axis2_msg_ctx.h</a>
<li>axis2_msg_ctx_get_manage_session()
: <a class="el" href="group__axis2__msg__ctx.html#g498e34d21eed5b6fe789f85425c1565a">axis2_msg_ctx.h</a>
<li>axis2_msg_ctx_get_module_parameter()
: <a class="el" href="group__axis2__msg__ctx.html#g99a3b44ee061e8f7ad4a4e11aa705ab1">axis2_msg_ctx.h</a>
<li>axis2_msg_ctx_get_msg_id()
: <a class="el" href="group__axis2__msg__ctx.html#g1f05e034e633a5649c4aead35b9b2b3f">axis2_msg_ctx.h</a>
<li>axis2_msg_ctx_get_msg_info_headers()
: <a class="el" href="group__axis2__msg__ctx.html#g65e6d0ad0877aeff2a9199c31fecec01">axis2_msg_ctx.h</a>
<li>axis2_msg_ctx_get_new_thread_required()
: <a class="el" href="group__axis2__msg__ctx.html#gba6ab8a714e0f06ea2c629bccce07e53">axis2_msg_ctx.h</a>
<li>axis2_msg_ctx_get_no_content()
: <a class="el" href="group__axis2__msg__ctx.html#g599cd11719450e641d1ef1a9b2bfd437">axis2_msg_ctx.h</a>
<li>axis2_msg_ctx_get_op()
: <a class="el" href="group__axis2__msg__ctx.html#gef54001c6a3b344e85f672113f636e09">axis2_msg_ctx.h</a>
<li>axis2_msg_ctx_get_op_ctx()
: <a class="el" href="group__axis2__msg__ctx.html#g4778817a289307212f46e1b60d5eab51">axis2_msg_ctx.h</a>
<li>axis2_msg_ctx_get_options()
: <a class="el" href="group__axis2__msg__ctx.html#g8af21689d7304ae4712308a4951a071e">axis2_msg_ctx.h</a>
<li>axis2_msg_ctx_get_out_transport_info()
: <a class="el" href="group__axis2__msg__ctx.html#gb37389b924f4503169165ae6d0371e17">axis2_msg_ctx.h</a>
<li>axis2_msg_ctx_get_output_written()
: <a class="el" href="group__axis2__msg__ctx.html#g634e1277b8a4e29dd9bbbfe8e27350d7">axis2_msg_ctx.h</a>
<li>axis2_msg_ctx_get_parameter()
: <a class="el" href="group__axis2__msg__ctx.html#gf6f4791211bb2e7bb2a3da886da0c06a">axis2_msg_ctx.h</a>
<li>axis2_msg_ctx_get_parent()
: <a class="el" href="group__axis2__msg__ctx.html#gd4ce3d1d6debe530cbb3dffb2a43c866">axis2_msg_ctx.h</a>
<li>axis2_msg_ctx_get_paused()
: <a class="el" href="group__axis2__msg__ctx.html#g3fb1000ba8d6fb99b8f443ec4b9804f8">axis2_msg_ctx.h</a>
<li>axis2_msg_ctx_get_paused_handler_index()
: <a class="el" href="group__axis2__msg__ctx.html#gfa296d96971800a761b97537f07aad1e">axis2_msg_ctx.h</a>
<li>axis2_msg_ctx_get_paused_handler_name()
: <a class="el" href="group__axis2__msg__ctx.html#g366fd625ade004c3f9d144cd5544d5be">axis2_msg_ctx.h</a>
<li>axis2_msg_ctx_get_paused_phase_index()
: <a class="el" href="group__axis2__msg__ctx.html#ge9096fd622018cf004f072ae25d81d8c">axis2_msg_ctx.h</a>
<li>axis2_msg_ctx_get_paused_phase_name()
: <a class="el" href="group__axis2__msg__ctx.html#gbbca92a3ca5b7eb586b3bcb55eb3589b">axis2_msg_ctx.h</a>
<li>axis2_msg_ctx_get_process_fault()
: <a class="el" href="group__axis2__msg__ctx.html#g16845c84b066ba612fd26340de37a842">axis2_msg_ctx.h</a>
<li>axis2_msg_ctx_get_property()
: <a class="el" href="group__axis2__msg__ctx.html#gb16fd5cd1ee2c9ad86c08529d2194fd4">axis2_msg_ctx.h</a>
<li>axis2_msg_ctx_get_property_value()
: <a class="el" href="group__axis2__msg__ctx.html#g1cf9c2fd4213e497c0b51ddaa4742d34">axis2_msg_ctx.h</a>
<li>axis2_msg_ctx_get_relates_to()
: <a class="el" href="group__axis2__msg__ctx.html#gc3000334e5eaaaef9bb6f6cc610e463b">axis2_msg_ctx.h</a>
<li>axis2_msg_ctx_get_reply_to()
: <a class="el" href="group__axis2__msg__ctx.html#g8a54ba62dbb7097616ac384a9d731163">axis2_msg_ctx.h</a>
<li>axis2_msg_ctx_get_required_auth_is_http()
: <a class="el" href="group__axis2__msg__ctx.html#g6b79cdeb28ab6632c0d4d3300b4ca478">axis2_msg_ctx.h</a>
<li>axis2_msg_ctx_get_response_soap_envelope()
: <a class="el" href="group__axis2__msg__ctx.html#g6430b72e8f0d297545d5c77dbde13f88">axis2_msg_ctx.h</a>
<li>axis2_msg_ctx_get_rest_http_method()
: <a class="el" href="group__axis2__msg__ctx.html#g04e668915c0d36e60757110e446b6c94">axis2_msg_ctx.h</a>
<li>axis2_msg_ctx_get_server_side()
: <a class="el" href="group__axis2__msg__ctx.html#g644ee3f4d6e47f63cb1f3388db52f723">axis2_msg_ctx.h</a>
<li>axis2_msg_ctx_get_soap_action()
: <a class="el" href="group__axis2__msg__ctx.html#g08e437e115186c445459c16088afd023">axis2_msg_ctx.h</a>
<li>axis2_msg_ctx_get_soap_envelope()
: <a class="el" href="group__axis2__msg__ctx.html#g6cc0c3db53e071721b027ec89d0bbc23">axis2_msg_ctx.h</a>
<li>axis2_msg_ctx_get_status_code()
: <a class="el" href="group__axis2__msg__ctx.html#g6f928344dc07a6808c1d7a5365e26e86">axis2_msg_ctx.h</a>
<li>axis2_msg_ctx_get_supported_rest_http_methods()
: <a class="el" href="group__axis2__msg__ctx.html#ged338ca86cf608cac71350fb54a6e4f2">axis2_msg_ctx.h</a>
<li>axis2_msg_ctx_get_svc()
: <a class="el" href="group__axis2__msg__ctx.html#gc8c3e9a503359dd12bf940580e659de3">axis2_msg_ctx.h</a>
<li>axis2_msg_ctx_get_svc_ctx()
: <a class="el" href="group__axis2__msg__ctx.html#g983409d62673569724c9bb4532c8465e">axis2_msg_ctx.h</a>
<li>axis2_msg_ctx_get_svc_ctx_id()
: <a class="el" href="group__axis2__msg__ctx.html#ga015e6d25bffee86c4f258077da21a57">axis2_msg_ctx.h</a>
<li>axis2_msg_ctx_get_svc_grp()
: <a class="el" href="group__axis2__msg__ctx.html#gb891cdde11906cc42a250459516acc8c">axis2_msg_ctx.h</a>
<li>axis2_msg_ctx_get_svc_grp_ctx()
: <a class="el" href="group__axis2__msg__ctx.html#gb226c5f347f50990837307de37b2c874">axis2_msg_ctx.h</a>
<li>axis2_msg_ctx_get_svc_grp_ctx_id()
: <a class="el" href="group__axis2__msg__ctx.html#g63cef8dc5b5bdba03c1d738594fed173">axis2_msg_ctx.h</a>
<li>axis2_msg_ctx_get_to()
: <a class="el" href="group__axis2__msg__ctx.html#g4596067ca561b23abd8c277fff1ba686">axis2_msg_ctx.h</a>
<li>axis2_msg_ctx_get_transfer_encoding()
: <a class="el" href="group__axis2__msg__ctx.html#g8b44e1813cdfd69b216cf6bfccba9c25">axis2_msg_ctx.h</a>
<li>axis2_msg_ctx_get_transport_headers()
: <a class="el" href="group__axis2__msg__ctx.html#gd5c47f45b9d568dc1961ddf283f44b85">axis2_msg_ctx.h</a>
<li>axis2_msg_ctx_get_transport_in_desc()
: <a class="el" href="group__axis2__msg__ctx.html#gd45ce053de9a2aeb9fc0d5d103f7c73a">axis2_msg_ctx.h</a>
<li>axis2_msg_ctx_get_transport_out_desc()
: <a class="el" href="group__axis2__msg__ctx.html#gb4f72089846618d10501bdb9e28f2e01">axis2_msg_ctx.h</a>
<li>axis2_msg_ctx_get_transport_out_stream()
: <a class="el" href="group__axis2__msg__ctx.html#g1537c848176093a8cdcc4f02721a052d">axis2_msg_ctx.h</a>
<li>axis2_msg_ctx_get_transport_url()
: <a class="el" href="group__axis2__msg__ctx.html#g62bab01718be9813dc0f5abc847df09c">axis2_msg_ctx.h</a>
<li>axis2_msg_ctx_get_wsa_action()
: <a class="el" href="group__axis2__msg__ctx.html#g0d5ac74951bdd09c0d78f30899390c2b">axis2_msg_ctx.h</a>
<li>axis2_msg_ctx_get_wsa_message_id()
: <a class="el" href="group__axis2__msg__ctx.html#g40829d63ca4fca04a39e3313ba840c6a">axis2_msg_ctx.h</a>
<li>axis2_msg_ctx_increment_ref()
: <a class="el" href="group__axis2__msg__ctx.html#g88942393726b78bdb836462dd04aa6ba">axis2_msg_ctx.h</a>
<li>axis2_msg_ctx_init()
: <a class="el" href="group__axis2__msg__ctx.html#g0287fe8763ddf42e505d6454d9912a2d">axis2_msg_ctx.h</a>
<li>axis2_msg_ctx_is_keep_alive()
: <a class="el" href="group__axis2__msg__ctx.html#gd087e49c05924aa5e1132d6ebce8f5c9">axis2_msg_ctx.h</a>
<li>axis2_msg_ctx_is_paused()
: <a class="el" href="group__axis2__msg__ctx.html#g991577142c2a5c69df03c1c68c21834b">axis2_msg_ctx.h</a>
<li>axis2_msg_ctx_reset_out_transport_info()
: <a class="el" href="group__axis2__msg__ctx.html#ga340eaf8ff86f9bc8324f9e082f8dfbe">axis2_msg_ctx.h</a>
<li>axis2_msg_ctx_reset_transport_out_stream()
: <a class="el" href="group__axis2__msg__ctx.html#gb0006ce05885ace9a09c0841fe297fb7">axis2_msg_ctx.h</a>
<li>axis2_msg_ctx_set_auth_failed()
: <a class="el" href="group__axis2__msg__ctx.html#ge3e9e1cfad899c5f40249fa9d9d65d08">axis2_msg_ctx.h</a>
<li>axis2_msg_ctx_set_auth_type()
: <a class="el" href="group__axis2__msg__ctx.html#gca7170d81a37be6c49260e9b754d1912">axis2_msg_ctx.h</a>
<li>axis2_msg_ctx_set_charset_encoding()
: <a class="el" href="group__axis2__msg__ctx.html#gf0b8b26d1b8a7ad80a2930afb0c2363a">axis2_msg_ctx.h</a>
<li>axis2_msg_ctx_set_conf_ctx()
: <a class="el" href="group__axis2__msg__ctx.html#gcc3d9fecb8c5af62948f1c1cabbef599">axis2_msg_ctx.h</a>
<li>axis2_msg_ctx_set_content_language()
: <a class="el" href="group__axis2__msg__ctx.html#g785e9bfaf312d05d4f8decbf27546262">axis2_msg_ctx.h</a>
<li>axis2_msg_ctx_set_current_handler_index()
: <a class="el" href="group__axis2__msg__ctx.html#g74993b805993c85cb0c9d104da6a6f7f">axis2_msg_ctx.h</a>
<li>axis2_msg_ctx_set_current_phase_index()
: <a class="el" href="group__axis2__msg__ctx.html#g977af6908d6522c8a9f440841d68a2b5">axis2_msg_ctx.h</a>
<li>axis2_msg_ctx_set_do_rest_through_post()
: <a class="el" href="group__axis2__msg__ctx.html#ge24672999a7262595e06e6453c5bce32">axis2_msg_ctx.h</a>
<li>axis2_msg_ctx_set_doing_mtom()
: <a class="el" href="group__axis2__msg__ctx.html#g96f2cfe70142d34f2c3a36d7e256e74f">axis2_msg_ctx.h</a>
<li>axis2_msg_ctx_set_doing_rest()
: <a class="el" href="group__axis2__msg__ctx.html#g22fa631d4d7d1c62cc6186411dd47996">axis2_msg_ctx.h</a>
<li>axis2_msg_ctx_set_execution_chain()
: <a class="el" href="group__axis2__msg__ctx.html#g5e62146dab073f13160aa411a6db4a70">axis2_msg_ctx.h</a>
<li>axis2_msg_ctx_set_fault_soap_envelope()
: <a class="el" href="group__axis2__msg__ctx.html#g5a75d1d93e2cee20aab553cdaa02b414">axis2_msg_ctx.h</a>
<li>axis2_msg_ctx_set_fault_to()
: <a class="el" href="group__axis2__msg__ctx.html#gf1bce1caf16c721b26fae05bbb7987da">axis2_msg_ctx.h</a>
<li>axis2_msg_ctx_set_find_op()
: <a class="el" href="group__axis2__msg__ctx.html#g503c723831560c6e3a45393ac9642c2d">axis2_msg_ctx.h</a>
<li>axis2_msg_ctx_set_find_svc()
: <a class="el" href="group__axis2__msg__ctx.html#gabceeec2b7643a21f1794f4f729af19b">axis2_msg_ctx.h</a>
<li>axis2_msg_ctx_set_flow()
: <a class="el" href="group__axis2__msg__ctx.html#gda9507539e7d87a7f835ab89ab1b9b28">axis2_msg_ctx.h</a>
<li>axis2_msg_ctx_set_from()
: <a class="el" href="group__axis2__msg__ctx.html#gf448b8b9b290531148d0e1dfa9a46c15">axis2_msg_ctx.h</a>
<li>axis2_msg_ctx_set_http_accept_charset_record_list()
: <a class="el" href="group__axis2__msg__ctx.html#g52ba5fc8306a6c85435d46ba925312f5">axis2_msg_ctx.h</a>
<li>axis2_msg_ctx_set_http_accept_language_record_list()
: <a class="el" href="group__axis2__msg__ctx.html#g09473f96d43873ca693eb02cd809354e">axis2_msg_ctx.h</a>
<li>axis2_msg_ctx_set_http_accept_record_list()
: <a class="el" href="group__axis2__msg__ctx.html#gce2ea5a21e0da1e0502722471013cf58">axis2_msg_ctx.h</a>
<li>axis2_msg_ctx_set_http_output_headers()
: <a class="el" href="group__axis2__msg__ctx.html#gc4e3c9a6394f3533e0e79a09626d37a4">axis2_msg_ctx.h</a>
<li>axis2_msg_ctx_set_in_fault_flow()
: <a class="el" href="group__axis2__msg__ctx.html#g5a5a0204f62d42f7e79cf8d0c9fa9278">axis2_msg_ctx.h</a>
<li>axis2_msg_ctx_set_is_soap_11()
: <a class="el" href="group__axis2__msg__ctx.html#gf29b11075b84a7f2ede4f47da724f6a9">axis2_msg_ctx.h</a>
<li>axis2_msg_ctx_set_keep_alive()
: <a class="el" href="group__axis2__msg__ctx.html#g29a042eb384e9af2798aea7a91cd7d71">axis2_msg_ctx.h</a>
<li>axis2_msg_ctx_set_manage_session()
: <a class="el" href="group__axis2__msg__ctx.html#g28c3e7dd62554357c3fd42c9b6e9dc48">axis2_msg_ctx.h</a>
<li>axis2_msg_ctx_set_message_id()
: <a class="el" href="group__axis2__msg__ctx.html#g9523fae1595a4b3e9dead658deccce7f">axis2_msg_ctx.h</a>
<li>axis2_msg_ctx_set_msg_id()
: <a class="el" href="group__axis2__msg__ctx.html#g1371f00e4242de82b6475dd9443ab5db">axis2_msg_ctx.h</a>
<li>axis2_msg_ctx_set_msg_info_headers()
: <a class="el" href="group__axis2__msg__ctx.html#g894cd26e3ef286e8cc115d87cc0d31a5">axis2_msg_ctx.h</a>
<li>axis2_msg_ctx_set_new_thread_required()
: <a class="el" href="group__axis2__msg__ctx.html#ga93cc6c40d67fed5df3f6891bce068a1">axis2_msg_ctx.h</a>
<li>axis2_msg_ctx_set_no_content()
: <a class="el" href="group__axis2__msg__ctx.html#gcdd6a7139357035806b86b62965fcdcc">axis2_msg_ctx.h</a>
<li>axis2_msg_ctx_set_op()
: <a class="el" href="group__axis2__msg__ctx.html#ge1629a4a314446a0f87b1a4c7f87c4e0">axis2_msg_ctx.h</a>
<li>axis2_msg_ctx_set_op_ctx()
: <a class="el" href="group__axis2__msg__ctx.html#geefba02d7fc287e3bdf530dc3743d049">axis2_msg_ctx.h</a>
<li>axis2_msg_ctx_set_options()
: <a class="el" href="group__axis2__msg__ctx.html#gccc481e49357f41dc151e130622385fa">axis2_msg_ctx.h</a>
<li>axis2_msg_ctx_set_out_transport_info()
: <a class="el" href="group__axis2__msg__ctx.html#g2e8b202d57caca29121bd55ede2ad3d6">axis2_msg_ctx.h</a>
<li>axis2_msg_ctx_set_output_written()
: <a class="el" href="group__axis2__msg__ctx.html#gfd23fcda1919b4f2d1cf361c53ab70cd">axis2_msg_ctx.h</a>
<li>axis2_msg_ctx_set_parent()
: <a class="el" href="group__axis2__msg__ctx.html#gc744a1bb471165ffafb70dfc3ac983de">axis2_msg_ctx.h</a>
<li>axis2_msg_ctx_set_paused()
: <a class="el" href="group__axis2__msg__ctx.html#g946233e40d8bf6d9d1dd82b25afc117f">axis2_msg_ctx.h</a>
<li>axis2_msg_ctx_set_paused_phase_name()
: <a class="el" href="group__axis2__msg__ctx.html#g2a5e8c445ee014883e7663b2c0754435">axis2_msg_ctx.h</a>
<li>axis2_msg_ctx_set_process_fault()
: <a class="el" href="group__axis2__msg__ctx.html#g7ed492aa405ef700226a3a19cf6c1433">axis2_msg_ctx.h</a>
<li>axis2_msg_ctx_set_property()
: <a class="el" href="group__axis2__msg__ctx.html#gdd7cf73dd9e04efe08b461854807b698">axis2_msg_ctx.h</a>
<li>axis2_msg_ctx_set_relates_to()
: <a class="el" href="group__axis2__msg__ctx.html#g619646919121558645495bc791b14688">axis2_msg_ctx.h</a>
<li>axis2_msg_ctx_set_reply_to()
: <a class="el" href="group__axis2__msg__ctx.html#g35bc63b6c82bdcc9fce81815e3ca5c4c">axis2_msg_ctx.h</a>
<li>axis2_msg_ctx_set_required_auth_is_http()
: <a class="el" href="group__axis2__msg__ctx.html#g5232bb8c1a80fc1ddc686308feaa852c">axis2_msg_ctx.h</a>
<li>axis2_msg_ctx_set_response_soap_envelope()
: <a class="el" href="group__axis2__msg__ctx.html#gff90d0a3f90a95b7dcbce89c6a4d9a35">axis2_msg_ctx.h</a>
<li>axis2_msg_ctx_set_rest_http_method()
: <a class="el" href="group__axis2__msg__ctx.html#ge935eeecdb3a557edc1057ba572ff5c9">axis2_msg_ctx.h</a>
<li>axis2_msg_ctx_set_server_side()
: <a class="el" href="group__axis2__msg__ctx.html#g3d12635f667d18ad9e5ce6ed6af42560">axis2_msg_ctx.h</a>
<li>axis2_msg_ctx_set_soap_action()
: <a class="el" href="group__axis2__msg__ctx.html#g7c76ec8bcc8ec1fa8728d60625de44c8">axis2_msg_ctx.h</a>
<li>axis2_msg_ctx_set_soap_envelope()
: <a class="el" href="group__axis2__msg__ctx.html#g805be33a022232ca42fb58fad77e6ddf">axis2_msg_ctx.h</a>
<li>axis2_msg_ctx_set_status_code()
: <a class="el" href="group__axis2__msg__ctx.html#g5550d319956309bc34205cba288e14b8">axis2_msg_ctx.h</a>
<li>axis2_msg_ctx_set_supported_rest_http_methods()
: <a class="el" href="group__axis2__msg__ctx.html#g0fb6ae57c92a4554697bd3e3877cd512">axis2_msg_ctx.h</a>
<li>axis2_msg_ctx_set_svc()
: <a class="el" href="group__axis2__msg__ctx.html#g643f1a3cc4d31f7b665f43a2dfc97967">axis2_msg_ctx.h</a>
<li>axis2_msg_ctx_set_svc_ctx()
: <a class="el" href="group__axis2__msg__ctx.html#gdf577adcf8ca0e59934d9d2e6c85ac6d">axis2_msg_ctx.h</a>
<li>axis2_msg_ctx_set_svc_ctx_id()
: <a class="el" href="group__axis2__msg__ctx.html#g2f35786b04d65569ae12d577e5e58778">axis2_msg_ctx.h</a>
<li>axis2_msg_ctx_set_svc_grp()
: <a class="el" href="group__axis2__msg__ctx.html#ge687f88abc16f152d2cfecd2e32f6871">axis2_msg_ctx.h</a>
<li>axis2_msg_ctx_set_svc_grp_ctx()
: <a class="el" href="group__axis2__msg__ctx.html#g608927368afc580dfa9f30a88438cab7">axis2_msg_ctx.h</a>
<li>axis2_msg_ctx_set_svc_grp_ctx_id()
: <a class="el" href="group__axis2__msg__ctx.html#g420039e5d3ebb705ae0dd172a7e1d760">axis2_msg_ctx.h</a>
<li>axis2_msg_ctx_set_to()
: <a class="el" href="group__axis2__msg__ctx.html#ge1f6c9f77e01f1e59ce285de19d958a6">axis2_msg_ctx.h</a>
<li>axis2_msg_ctx_set_transfer_encoding()
: <a class="el" href="group__axis2__msg__ctx.html#g3e7ceeadac1d2a0b295947bbaa0adca7">axis2_msg_ctx.h</a>
<li>axis2_msg_ctx_set_transport_headers()
: <a class="el" href="group__axis2__msg__ctx.html#g71be3edb48396a26b8adbd307df23376">axis2_msg_ctx.h</a>
<li>axis2_msg_ctx_set_transport_in_desc()
: <a class="el" href="group__axis2__msg__ctx.html#g341daeb3f8280985160048c1c868c64b">axis2_msg_ctx.h</a>
<li>axis2_msg_ctx_set_transport_out_desc()
: <a class="el" href="group__axis2__msg__ctx.html#g7a70711fb12e2503062ae6f3f91430c6">axis2_msg_ctx.h</a>
<li>axis2_msg_ctx_set_transport_out_stream()
: <a class="el" href="group__axis2__msg__ctx.html#g4c96b5bf44bd6bb0364b877554605e63">axis2_msg_ctx.h</a>
<li>axis2_msg_ctx_set_transport_url()
: <a class="el" href="group__axis2__msg__ctx.html#gcd9816724abf529406fa977b6838f481">axis2_msg_ctx.h</a>
<li>axis2_msg_ctx_set_wsa_action()
: <a class="el" href="group__axis2__msg__ctx.html#g1d1b6917c9c9b885e1f658b0787afea3">axis2_msg_ctx.h</a>
<li>axis2_msg_ctx_set_wsa_message_id()
: <a class="el" href="group__axis2__msg__ctx.html#g03166053a7a0bb7db94ace6e56436f81">axis2_msg_ctx.h</a>
<li>axis2_msg_free()
: <a class="el" href="group__axis2__msg.html#g168f956533c439c704e34253f1bf77b3">axis2_msg.h</a>
<li>axis2_msg_get_all_params()
: <a class="el" href="group__axis2__msg.html#g6e0c544674fad801039013b66e5f548a">axis2_msg.h</a>
<li>axis2_msg_get_base()
: <a class="el" href="group__axis2__msg.html#ge6b0879687a82eec5c5cf621bd803623">axis2_msg.h</a>
<li>axis2_msg_get_direction()
: <a class="el" href="group__axis2__msg.html#gcbb409dc87613a84ac8bde394869f6ad">axis2_msg.h</a>
<li>axis2_msg_get_element_qname()
: <a class="el" href="group__axis2__msg.html#g3c21abaa1b0447d184b8a408cf2f75c1">axis2_msg.h</a>
<li>axis2_msg_get_flow()
: <a class="el" href="group__axis2__msg.html#ga008e28053a1c980b867502b0619a6a2">axis2_msg.h</a>
<li>axis2_msg_get_name()
: <a class="el" href="group__axis2__msg.html#g4d0a9953fea4185365e869b71b6dec42">axis2_msg.h</a>
<li>axis2_msg_get_param()
: <a class="el" href="group__axis2__msg.html#gf286bada1249b588b79d9b90520b5a09">axis2_msg.h</a>
<li>axis2_msg_get_param_container()
: <a class="el" href="group__axis2__msg.html#gcf3f23e957699279a048452b64a671f0">axis2_msg.h</a>
<li>axis2_msg_get_parent()
: <a class="el" href="group__axis2__msg.html#g8191091ac7e17ed45c6d0ed3c9bc3d59">axis2_msg.h</a>
<li>axis2_msg_increment_ref()
: <a class="el" href="group__axis2__msg.html#g88c91bcaf0e249122383433ebc308c88">axis2_msg.h</a>
<li>axis2_msg_info_headers_add_ref_param()
: <a class="el" href="group__axis2__msg__info__headers.html#ga95d76b3311e4885959e2a5609a327f0">axis2_msg_info_headers.h</a>
<li>axis2_msg_info_headers_create()
: <a class="el" href="group__axis2__msg__info__headers.html#g380a396ffcbb6e663cda2851630f018f">axis2_msg_info_headers.h</a>
<li>axis2_msg_info_headers_free()
: <a class="el" href="group__axis2__msg__info__headers.html#g7a6d878c6d3c94555e4e9a0200583ee7">axis2_msg_info_headers.h</a>
<li>axis2_msg_info_headers_get_action()
: <a class="el" href="group__axis2__msg__info__headers.html#g23bef716feab65ea5cea145875c7053d">axis2_msg_info_headers.h</a>
<li>axis2_msg_info_headers_get_all_ref_params()
: <a class="el" href="group__axis2__msg__info__headers.html#g085e872c1d2b336e927df9f2f7d9a4ae">axis2_msg_info_headers.h</a>
<li>axis2_msg_info_headers_get_fault_to()
: <a class="el" href="group__axis2__msg__info__headers.html#g5be8673619408ed53d062372d6e46414">axis2_msg_info_headers.h</a>
<li>axis2_msg_info_headers_get_fault_to_anonymous()
: <a class="el" href="group__axis2__msg__info__headers.html#g4654c31f1dc87401fc8f8acb9de79c4e">axis2_msg_info_headers.h</a>
<li>axis2_msg_info_headers_get_fault_to_none()
: <a class="el" href="group__axis2__msg__info__headers.html#g6e4af66cb1dcc12ce970ef098f364f77">axis2_msg_info_headers.h</a>
<li>axis2_msg_info_headers_get_from()
: <a class="el" href="group__axis2__msg__info__headers.html#g6783234388f589ae7d6d794558c7f994">axis2_msg_info_headers.h</a>
<li>axis2_msg_info_headers_get_message_id()
: <a class="el" href="group__axis2__msg__info__headers.html#gbe06f2880f498d70f44934445d78bf0d">axis2_msg_info_headers.h</a>
<li>axis2_msg_info_headers_get_relates_to()
: <a class="el" href="group__axis2__msg__info__headers.html#g32e68bb5397e49a5109625e06485e032">axis2_msg_info_headers.h</a>
<li>axis2_msg_info_headers_get_reply_to()
: <a class="el" href="group__axis2__msg__info__headers.html#g98b339f94e7b186fb4eaed76116e8dc0">axis2_msg_info_headers.h</a>
<li>axis2_msg_info_headers_get_reply_to_anonymous()
: <a class="el" href="group__axis2__msg__info__headers.html#gd97b6d6039b46707d5e1e88a7610c050">axis2_msg_info_headers.h</a>
<li>axis2_msg_info_headers_get_reply_to_none()
: <a class="el" href="group__axis2__msg__info__headers.html#gaa81e0e4e5e338f395c2682ab11c665d">axis2_msg_info_headers.h</a>
<li>axis2_msg_info_headers_get_to()
: <a class="el" href="group__axis2__msg__info__headers.html#gb280fd5c6eb7ef2f604a88f4682076f8">axis2_msg_info_headers.h</a>
<li>axis2_msg_info_headers_set_action()
: <a class="el" href="group__axis2__msg__info__headers.html#gc70fa14807b569da33ddc91a6edd5031">axis2_msg_info_headers.h</a>
<li>axis2_msg_info_headers_set_fault_to()
: <a class="el" href="group__axis2__msg__info__headers.html#g9d097759c95b088583709dd83e19ca90">axis2_msg_info_headers.h</a>
<li>axis2_msg_info_headers_set_fault_to_anonymous()
: <a class="el" href="group__axis2__msg__info__headers.html#gcdd63e8863b18076b46aee90f5b05c6f">axis2_msg_info_headers.h</a>
<li>axis2_msg_info_headers_set_fault_to_none()
: <a class="el" href="group__axis2__msg__info__headers.html#g4f66e5d4b845de21780aa409b8997672">axis2_msg_info_headers.h</a>
<li>axis2_msg_info_headers_set_from()
: <a class="el" href="group__axis2__msg__info__headers.html#g917b50452decc40c55c8e8afbcf943a6">axis2_msg_info_headers.h</a>
<li>axis2_msg_info_headers_set_in_message_id()
: <a class="el" href="group__axis2__msg__info__headers.html#gbfb3b68d69fffce5abe41d50a8d3e225">axis2_msg_info_headers.h</a>
<li>axis2_msg_info_headers_set_message_id()
: <a class="el" href="group__axis2__msg__info__headers.html#ge85e94287e9fd4a3b21f7ebe681dfa0e">axis2_msg_info_headers.h</a>
<li>axis2_msg_info_headers_set_relates_to()
: <a class="el" href="group__axis2__msg__info__headers.html#g26b2b3881cbf3f3f02f1c512c96485ff">axis2_msg_info_headers.h</a>
<li>axis2_msg_info_headers_set_reply_to()
: <a class="el" href="group__axis2__msg__info__headers.html#g3de0c94851f356772629aa5851290f2f">axis2_msg_info_headers.h</a>
<li>axis2_msg_info_headers_set_reply_to_anonymous()
: <a class="el" href="group__axis2__msg__info__headers.html#g048b85e9ace9b60a54c500aac7e343cb">axis2_msg_info_headers.h</a>
<li>axis2_msg_info_headers_set_reply_to_none()
: <a class="el" href="group__axis2__msg__info__headers.html#g64bfb8b2ebdabd55719c6b3b300a5499">axis2_msg_info_headers.h</a>
<li>axis2_msg_info_headers_set_to()
: <a class="el" href="group__axis2__msg__info__headers.html#g3ca4a29c369d4e871f957fe773353325">axis2_msg_info_headers.h</a>
<li>axis2_msg_is_param_locked()
: <a class="el" href="group__axis2__msg.html#g51ae7e6eb9afee5f7e82bd7f8c21bf96">axis2_msg.h</a>
<li>axis2_msg_recv_create()
: <a class="el" href="group__axis2__msg__recv.html#g42a2c7d0a184de466763b4502cf48897">axis2_msg_recv.h</a>
<li>axis2_msg_recv_delete_svc_obj()
: <a class="el" href="group__axis2__msg__recv.html#gff566d302fe1980913798086325ec2a6">axis2_msg_recv.h</a>
<li>axis2_msg_recv_free()
: <a class="el" href="group__axis2__msg__recv.html#gb83887c699d1bf14afb27ad65cf9b8d4">axis2_msg_recv.h</a>
<li>axis2_msg_recv_get_impl_obj()
: <a class="el" href="group__axis2__msg__recv.html#g428a780b155ad3d087c6222c1cbed978">axis2_msg_recv.h</a>
<li>axis2_msg_recv_get_scope()
: <a class="el" href="group__axis2__msg__recv.html#g8373c3b1dd3b4d774d6ecedd0993f4d5">axis2_msg_recv.h</a>
<li>axis2_msg_recv_invoke_business_logic()
: <a class="el" href="group__axis2__msg__recv.html#g4b958421f632a04e659883698ad70728">axis2_msg_recv.h</a>
<li>axis2_msg_recv_make_new_svc_obj()
: <a class="el" href="group__axis2__msg__recv.html#g0c811674ed07fe53ca54639291e0d001">axis2_msg_recv.h</a>
<li>axis2_msg_recv_receive()
: <a class="el" href="group__axis2__msg__recv.html#g7f214d78f066fe2c120652d2fce4b544">axis2_msg_recv.h</a>
<li>axis2_msg_recv_set_scope()
: <a class="el" href="group__axis2__msg__recv.html#g7514db74a30752f14c1208adcabff8fc">axis2_msg_recv.h</a>
<li>axis2_msg_set_direction()
: <a class="el" href="group__axis2__msg.html#g4d684f4bc237a32fcf2d2462d4c3166a">axis2_msg.h</a>
<li>axis2_msg_set_element_qname()
: <a class="el" href="group__axis2__msg.html#g7fd20aa2eb6b5f479e7ca67e05b13bfd">axis2_msg.h</a>
<li>axis2_msg_set_flow()
: <a class="el" href="group__axis2__msg.html#ge2d0cca919d701cc03f6a99d7fff3164">axis2_msg.h</a>
<li>axis2_msg_set_name()
: <a class="el" href="group__axis2__msg.html#gc15cc16ed5f275763b938f3ae63d6566">axis2_msg.h</a>
<li>axis2_msg_set_parent()
: <a class="el" href="group__axis2__msg.html#g7701b38d18f59fb09f37e9e974bfc3d0">axis2_msg.h</a>
<li>axis2_op_client_add_msg_ctx()
: <a class="el" href="group__axis2__op__client.html#gc4c291b473d3aa4bcc19308018521347">axis2_op_client.h</a>
<li>axis2_op_client_add_out_msg_ctx()
: <a class="el" href="group__axis2__op__client.html#g192dc8b5bb7c1159c7feede39434f1c3">axis2_op_client.h</a>
<li>axis2_op_client_complete()
: <a class="el" href="group__axis2__op__client.html#g6b4c57a19d49087b557fe094f7e231c8">axis2_op_client.h</a>
<li>axis2_op_client_create()
: <a class="el" href="group__axis2__op__client.html#g3c0a62606205ce5678c3492dc7e52bf2">axis2_op_client.h</a>
<li>axis2_op_client_create_default_soap_envelope()
: <a class="el" href="group__axis2__op__client.html#g3dee8b2af09a8a08f39155bce5304179">axis2_op_client.h</a>
<li>axis2_op_client_engage_module()
: <a class="el" href="group__axis2__op__client.html#g29f69ee655f82cefb0f12dd2a964e844">axis2_op_client.h</a>
<li>axis2_op_client_execute()
: <a class="el" href="group__axis2__op__client.html#g54d84d352d333aacf2f7bb79b8d53a9a">axis2_op_client.h</a>
<li>axis2_op_client_free()
: <a class="el" href="group__axis2__op__client.html#g3f2aaeed111dbfc0bb5074d6384de49a">axis2_op_client.h</a>
<li>axis2_op_client_get_callback()
: <a class="el" href="group__axis2__op__client.html#g2d750a878fe19e11a1d130467fa76370">axis2_op_client.h</a>
<li>axis2_op_client_get_msg_ctx()
: <a class="el" href="group__axis2__op__client.html#g93425b6dc6cf293b02480959b276d1fd">axis2_op_client.h</a>
<li>axis2_op_client_get_operation_context()
: <a class="el" href="group__axis2__op__client.html#g00eca9bd04926e192466a4d330f5a9a7">axis2_op_client.h</a>
<li>axis2_op_client_get_options()
: <a class="el" href="group__axis2__op__client.html#g0f4b560555e0be42d8f15979b09bc5ed">axis2_op_client.h</a>
<li>axis2_op_client_get_soap_action()
: <a class="el" href="group__axis2__op__client.html#g14365a94c8700089b3f3ccf1df9620a0">axis2_op_client.h</a>
<li>axis2_op_client_get_svc_ctx()
: <a class="el" href="group__axis2__op__client.html#g7d8f7b0e623e96ad796d3d93f3d443fc">axis2_op_client.h</a>
<li>axis2_op_client_infer_transport()
: <a class="el" href="group__axis2__op__client.html#gf628443031365d7e51bb1a08ce338d32">axis2_op_client.h</a>
<li>axis2_op_client_prepare_invocation()
: <a class="el" href="group__axis2__op__client.html#gec56200ff2784f4adfff5679562f1ba5">axis2_op_client.h</a>
<li>axis2_op_client_prepare_soap_envelope()
: <a class="el" href="group__axis2__op__client.html#g1fab78418f77376796c5d80703f28870">axis2_op_client.h</a>
<li>axis2_op_client_receive()
: <a class="el" href="group__axis2__op__client.html#g9e6d223494c0b13bb9070a87fb2b53a6">axis2_op_client.h</a>
<li>axis2_op_client_reset()
: <a class="el" href="group__axis2__op__client.html#g8d87312f023b335ea8a2bf723161fb84">axis2_op_client.h</a>
<li>axis2_op_client_set_callback()
: <a class="el" href="group__axis2__op__client.html#g59c3ab7690e5fb5b7f5ab27680f03633">axis2_op_client.h</a>
<li>axis2_op_client_set_callback_recv()
: <a class="el" href="group__axis2__op__client.html#gd411a2de66868e708b7e5c02683291a9">axis2_op_client.h</a>
<li>axis2_op_client_set_options()
: <a class="el" href="group__axis2__op__client.html#g129b0ae65f1bcf960e563d5adc31d7fa">axis2_op_client.h</a>
<li>axis2_op_client_set_reuse()
: <a class="el" href="group__axis2__op__client.html#geaaa726f66d8836c6bc46c946c960b9e">axis2_op_client.h</a>
<li>axis2_op_client_set_soap_action()
: <a class="el" href="group__axis2__op__client.html#ge0632b67dbea1fc8f7ae1f7708e1b98d">axis2_op_client.h</a>
<li>axis2_op_client_set_soap_version_uri()
: <a class="el" href="group__axis2__op__client.html#g29eb95e1d34ec16811f0e002e02e2c34">axis2_op_client.h</a>
<li>axis2_op_client_set_wsa_action()
: <a class="el" href="group__axis2__op__client.html#g562d94703fd1723020cf7cacafc73198">axis2_op_client.h</a>
<li>axis2_op_client_two_way_send()
: <a class="el" href="group__axis2__op__client.html#g2325f68d3df4f2b324354837f5f7b20c">axis2_op_client.h</a>
<li>axis2_op_ctx_add_msg_ctx()
: <a class="el" href="group__axis2__op__ctx.html#gd9f9beba0ac1e3e0cfafe4ee0fd9ffb8">axis2_op_ctx.h</a>
<li>axis2_op_ctx_cleanup()
: <a class="el" href="group__axis2__op__ctx.html#g7ae8623d063eed0d7120d49f025bc60b">axis2_op_ctx.h</a>
<li>axis2_op_ctx_create()
: <a class="el" href="group__axis2__op__ctx.html#gddc4d7ced709336945c3f951561cc5fd">axis2_op_ctx.h</a>
<li>axis2_op_ctx_destroy_mutex()
: <a class="el" href="group__axis2__op__ctx.html#ga465e10f016efca08e1beecbcb0c98ce">axis2_op_ctx.h</a>
<li>axis2_op_ctx_free()
: <a class="el" href="group__axis2__op__ctx.html#gc2a1dddeaf5f17bae65a8f26baef933b">axis2_op_ctx.h</a>
<li>axis2_op_ctx_get_base()
: <a class="el" href="group__axis2__op__ctx.html#ge3983155246957addf3cf44128797b11">axis2_op_ctx.h</a>
<li>axis2_op_ctx_get_is_complete()
: <a class="el" href="group__axis2__op__ctx.html#gb22ed4938df18e52dacc388e89a140d0">axis2_op_ctx.h</a>
<li>axis2_op_ctx_get_msg_ctx()
: <a class="el" href="group__axis2__op__ctx.html#g0f79838f18e6689ea44620975092280f">axis2_op_ctx.h</a>
<li>axis2_op_ctx_get_msg_ctx_map()
: <a class="el" href="group__axis2__op__ctx.html#g58997985678d28231a97a605967467bc">axis2_op_ctx.h</a>
<li>axis2_op_ctx_get_op()
: <a class="el" href="group__axis2__op__ctx.html#g41e85fb871ff0b60c48f8794d85c3270">axis2_op_ctx.h</a>
<li>axis2_op_ctx_get_parent()
: <a class="el" href="group__axis2__op__ctx.html#g2c28e9321f282f79b6aa7b5575171fd5">axis2_op_ctx.h</a>
<li>axis2_op_ctx_get_response_written()
: <a class="el" href="group__axis2__op__ctx.html#g875d36b0b70b77d84f99969da22e462f">axis2_op_ctx.h</a>
<li>axis2_op_ctx_increment_ref()
: <a class="el" href="group__axis2__op__ctx.html#g20a35685dc844e4c81aac603a8121dcb">axis2_op_ctx.h</a>
<li>axis2_op_ctx_init()
: <a class="el" href="group__axis2__op__ctx.html#g53622e5d4c37263fc6261e2b08f9116e">axis2_op_ctx.h</a>
<li>axis2_op_ctx_is_in_use()
: <a class="el" href="group__axis2__op__ctx.html#g016e131eb3c18c134e81f48f0639eae5">axis2_op_ctx.h</a>
<li>axis2_op_ctx_set_complete()
: <a class="el" href="group__axis2__op__ctx.html#g36163f4ddb00ed3a319f42a1bd1700fc">axis2_op_ctx.h</a>
<li>axis2_op_ctx_set_in_use()
: <a class="el" href="group__axis2__op__ctx.html#g6b8ae393777089b614b4a771720ce8dd">axis2_op_ctx.h</a>
<li>axis2_op_ctx_set_parent()
: <a class="el" href="group__axis2__op__ctx.html#g89c08b1de5351278b0fa7f429e8c5c4d">axis2_op_ctx.h</a>
<li>axis2_op_ctx_set_response_written()
: <a class="el" href="group__axis2__op__ctx.html#ge742cc55efddb40eddffae46ba11125b">axis2_op_ctx.h</a>
<li>axis2_options_add_reference_parameter()
: <a class="el" href="group__axis2__options.html#g37109110cd1537d898fd4ec78787988e">axis2_options.h</a>
<li>axis2_options_create()
: <a class="el" href="group__axis2__options.html#gdda6f5257f3532ec3fa9ca4b316fb0f1">axis2_options.h</a>
<li>axis2_options_create_with_parent()
: <a class="el" href="group__axis2__options.html#ge74438488efabde966a1fbefbb1642e2">axis2_options.h</a>
<li>axis2_options_free()
: <a class="el" href="group__axis2__options.html#g1cc19bb9faf77ab2afaf79781e409fc0">axis2_options.h</a>
<li>axis2_options_get_action()
: <a class="el" href="group__axis2__options.html#g678ae601586531dca4425014f09cd9ca">axis2_options.h</a>
<li>axis2_options_get_enable_mtom()
: <a class="el" href="group__axis2__options.html#g868f6cfddb5dcae40c8dcaf870eb688f">axis2_options.h</a>
<li>axis2_options_get_fault_to()
: <a class="el" href="group__axis2__options.html#g283b491d25be268924fdfb3410003cce">axis2_options.h</a>
<li>axis2_options_get_from()
: <a class="el" href="group__axis2__options.html#g7e00548bdf22d85963f03cf96af4324e">axis2_options.h</a>
<li>axis2_options_get_manage_session()
: <a class="el" href="group__axis2__options.html#g31560142acf4f3fdd5784e95215ec8c4">axis2_options.h</a>
<li>axis2_options_get_message_id()
: <a class="el" href="group__axis2__options.html#g7b435f608628b067d41d269894245bf7">axis2_options.h</a>
<li>axis2_options_get_msg_info_headers()
: <a class="el" href="group__axis2__options.html#gf88ecbaac26036de8311ecf8552ef396">axis2_options.h</a>
<li>axis2_options_get_parent()
: <a class="el" href="group__axis2__options.html#g44755ea1568201951ee3c75358323039">axis2_options.h</a>
<li>axis2_options_get_properties()
: <a class="el" href="group__axis2__options.html#g244f26e4bca15b715a13240f0c95605b">axis2_options.h</a>
<li>axis2_options_get_property()
: <a class="el" href="group__axis2__options.html#g326904f3372180e2da28e235de21881f">axis2_options.h</a>
<li>axis2_options_get_relates_to()
: <a class="el" href="group__axis2__options.html#ga20805b9f4550070953e4f1e189ed78a">axis2_options.h</a>
<li>axis2_options_get_reply_to()
: <a class="el" href="group__axis2__options.html#g29a591f1954522269e4dcdbcea8f4cde">axis2_options.h</a>
<li>axis2_options_get_sender_transport_protocol()
: <a class="el" href="group__axis2__options.html#g99d8d5efc4c5cb0549c7ea93425f14f2">axis2_options.h</a>
<li>axis2_options_get_soap_action()
: <a class="el" href="group__axis2__options.html#g67dbecc87ad94df19286a2a87178ce34">axis2_options.h</a>
<li>axis2_options_get_soap_version()
: <a class="el" href="group__axis2__options.html#g11ee50a4d0d759ce0199e4009c958b25">axis2_options.h</a>
<li>axis2_options_get_soap_version_uri()
: <a class="el" href="group__axis2__options.html#g815f59fcea7c8c19b361121636ecfd2a">axis2_options.h</a>
<li>axis2_options_get_timeout_in_milli_seconds()
: <a class="el" href="group__axis2__options.html#gf5bffc566365333558914d7ca4c727dd">axis2_options.h</a>
<li>axis2_options_get_to()
: <a class="el" href="group__axis2__options.html#gd01536ebcfafaa661a44f5049650a9e8">axis2_options.h</a>
<li>axis2_options_get_transport_in()
: <a class="el" href="group__axis2__options.html#g21bb77bedd66cce1e54f470b2b33d983">axis2_options.h</a>
<li>axis2_options_get_transport_in_protocol()
: <a class="el" href="group__axis2__options.html#gd49160ba8b51fd82aafdc8bbd034851a">axis2_options.h</a>
<li>axis2_options_get_transport_out()
: <a class="el" href="group__axis2__options.html#g31b684c1588681915e4be4242f0e7ee0">axis2_options.h</a>
<li>axis2_options_get_transport_receiver()
: <a class="el" href="group__axis2__options.html#g2503c35d1dd383cc8f18cba198097df3">axis2_options.h</a>
<li>axis2_options_get_use_separate_listener()
: <a class="el" href="group__axis2__options.html#g44f65542c0790f426a539e8a48bba49c">axis2_options.h</a>
<li>axis2_options_get_xml_parser_reset()
: <a class="el" href="group__axis2__options.html#g079c0d74ca8b4a6bdf94b5afe45c8b1c">axis2_options.h</a>
<li>axis2_options_set_action()
: <a class="el" href="group__axis2__options.html#g3034f3d572a3f31d708250ffa374931d">axis2_options.h</a>
<li>axis2_options_set_enable_mtom()
: <a class="el" href="group__axis2__options.html#g1b441d3770ced54ff17f117022ea082f">axis2_options.h</a>
<li>axis2_options_set_enable_rest()
: <a class="el" href="group__axis2__options.html#gb1533f1ffce6cb2842f60cd14a1270ba">axis2_options.h</a>
<li>axis2_options_set_fault_to()
: <a class="el" href="group__axis2__options.html#g14e60636d93226301003417edc5c96a0">axis2_options.h</a>
<li>axis2_options_set_from()
: <a class="el" href="group__axis2__options.html#g5c465dd6f0aebb8feb3d92642bb1d3c7">axis2_options.h</a>
<li>axis2_options_set_http_auth_info()
: <a class="el" href="group__axis2__options.html#g075f4088b1263d5a932486293c099238">axis2_options.h</a>
<li>axis2_options_set_http_headers()
: <a class="el" href="group__axis2__options.html#ga3c3b6a89eac2785b2eeb4fefe054202">axis2_options.h</a>
<li>axis2_options_set_http_method()
: <a class="el" href="group__axis2__options.html#g1c7eff578547cf234abd57ea34f2e0b9">axis2_options.h</a>
<li>axis2_options_set_manage_session()
: <a class="el" href="group__axis2__options.html#g61fc4980e653dcc854819966af927b01">axis2_options.h</a>
<li>axis2_options_set_message_id()
: <a class="el" href="group__axis2__options.html#g7d0fbc43a55e0e40f1f124d317cd2675">axis2_options.h</a>
<li>axis2_options_set_msg_info_headers()
: <a class="el" href="group__axis2__options.html#g85559daaff1957e799f5ff93c8f5c805">axis2_options.h</a>
<li>axis2_options_set_parent()
: <a class="el" href="group__axis2__options.html#g787038bb34b488493d73fbfe1af919ff">axis2_options.h</a>
<li>axis2_options_set_properties()
: <a class="el" href="group__axis2__options.html#g585f0123a394ba50e4aa472a026517b7">axis2_options.h</a>
<li>axis2_options_set_property()
: <a class="el" href="group__axis2__options.html#g5a364a815c87168bb136d8cbd11476aa">axis2_options.h</a>
<li>axis2_options_set_proxy_auth_info()
: <a class="el" href="group__axis2__options.html#g1d156a086d838faecb313d2cc96f80dc">axis2_options.h</a>
<li>axis2_options_set_relates_to()
: <a class="el" href="group__axis2__options.html#g209582f680d8310f26952d036d130b55">axis2_options.h</a>
<li>axis2_options_set_reply_to()
: <a class="el" href="group__axis2__options.html#gc2425fafccaf57322da1a07b328ebcb0">axis2_options.h</a>
<li>axis2_options_set_sender_transport()
: <a class="el" href="group__axis2__options.html#g20bad0d888b7d491992595703dd11dda">axis2_options.h</a>
<li>axis2_options_set_soap_action()
: <a class="el" href="group__axis2__options.html#g39f6317b5633f5ee71311f124dac42fc">axis2_options.h</a>
<li>axis2_options_set_soap_version()
: <a class="el" href="group__axis2__options.html#ge0a82c10e919078b3e06509e0ffe1042">axis2_options.h</a>
<li>axis2_options_set_soap_version_uri()
: <a class="el" href="group__axis2__options.html#gfa4179613c1277d4301bb25065e9007b">axis2_options.h</a>
<li>axis2_options_set_test_http_auth()
: <a class="el" href="group__axis2__options.html#g08d3a84142e28bf18609aa127f5e43da">axis2_options.h</a>
<li>axis2_options_set_test_proxy_auth()
: <a class="el" href="group__axis2__options.html#gb5f388b034b9c34825711fd8fef977e9">axis2_options.h</a>
<li>axis2_options_set_timeout_in_milli_seconds()
: <a class="el" href="group__axis2__options.html#gb75870ba3c356a79e749135f32e2971c">axis2_options.h</a>
<li>axis2_options_set_to()
: <a class="el" href="group__axis2__options.html#geb3c591479ec264bd1e36221d22e31c7">axis2_options.h</a>
<li>axis2_options_set_transport_in()
: <a class="el" href="group__axis2__options.html#g7adae8ea3c133854375e0a0dc02a2446">axis2_options.h</a>
<li>axis2_options_set_transport_in_protocol()
: <a class="el" href="group__axis2__options.html#g23c960bfdb5ace4fce7997b3d00be21d">axis2_options.h</a>
<li>axis2_options_set_transport_info()
: <a class="el" href="group__axis2__options.html#ga80d984e3d86b89084d9aefd0da22196">axis2_options.h</a>
<li>axis2_options_set_transport_out()
: <a class="el" href="group__axis2__options.html#gfa5e260c38cf75997d4ae2b58517166d">axis2_options.h</a>
<li>axis2_options_set_transport_receiver()
: <a class="el" href="group__axis2__options.html#g3b599f4516c8eb809d9c957f79e3b348">axis2_options.h</a>
<li>axis2_options_set_use_separate_listener()
: <a class="el" href="group__axis2__options.html#g4d51e41495fd13829711123fc1c66179">axis2_options.h</a>
<li>axis2_options_set_xml_parser_reset()
: <a class="el" href="group__axis2__options.html#gcb471f91a48af04d45ee124f341e98ba">axis2_options.h</a>
<li>axis2_phase_add_handler()
: <a class="el" href="group__axis2__phase.html#g8fc3f0608dac0d516c0646b0e8e1d022">axis2_phase.h</a>
<li>axis2_phase_add_handler_at()
: <a class="el" href="group__axis2__phase.html#g3a631359739cd8aea355f835dcd170db">axis2_phase.h</a>
<li>axis2_phase_add_handler_desc()
: <a class="el" href="group__axis2__phase.html#g9b592193365d716976f3f68d61bb7a6f">axis2_phase.h</a>
<li>axis2_phase_create()
: <a class="el" href="group__axis2__phase.html#ga8094ea4f993c65b5024f912769311b5">axis2_phase.h</a>
<li>axis2_phase_free()
: <a class="el" href="group__axis2__phase.html#g0a45133876a1cec57dc49bcd1720dc76">axis2_phase.h</a>
<li>axis2_phase_get_all_handlers()
: <a class="el" href="group__axis2__phase.html#g7a5ebcc5fa87ec0057a8d49a099e904d">axis2_phase.h</a>
<li>axis2_phase_get_handler_count()
: <a class="el" href="group__axis2__phase.html#gf518d1c97d2c1a16427259de20a80628">axis2_phase.h</a>
<li>axis2_phase_get_name()
: <a class="el" href="group__axis2__phase.html#g2c92bf9ab205f20e7b603c8a82646d23">axis2_phase.h</a>
<li>axis2_phase_holder_add_handler()
: <a class="el" href="group__axis2__phase__holder.html#g8d16ae0d83bd80e4d9264f2c99219dcb">axis2_phase_holder.h</a>
<li>axis2_phase_holder_build_transport_handler_chain()
: <a class="el" href="group__axis2__phase__holder.html#g0994dce48be4df6e0100cf3ca382e768">axis2_phase_holder.h</a>
<li>axis2_phase_holder_create()
: <a class="el" href="group__axis2__phase__holder.html#ge6fae04b3bb98068ed177dfc25039489">axis2_phase_holder.h</a>
<li>axis2_phase_holder_create_with_phases()
: <a class="el" href="group__axis2__phase__holder.html#g235fffaa9ed52a2e633ab2780c52fe5b">axis2_phase_holder.h</a>
<li>axis2_phase_holder_free()
: <a class="el" href="group__axis2__phase__holder.html#gd8944d99a6a3a7ac43dfa474cf5e535a">axis2_phase_holder.h</a>
<li>axis2_phase_holder_get_phase()
: <a class="el" href="group__axis2__phase__holder.html#g90c45ef85d6fe1611bf16a874a110112">axis2_phase_holder.h</a>
<li>axis2_phase_holder_is_phase_exist()
: <a class="el" href="group__axis2__phase__holder.html#g353f89d7a5800ff39a464244540535a3">axis2_phase_holder.h</a>
<li>axis2_phase_holder_remove_handler()
: <a class="el" href="group__axis2__phase__holder.html#g75e5acc55fdf29ee948daca03b582a6a">axis2_phase_holder.h</a>
<li>axis2_phase_insert_after()
: <a class="el" href="group__axis2__phase.html#g3fb24331f3f5b78eb1b2aab75de94fe5">axis2_phase.h</a>
<li>axis2_phase_insert_before()
: <a class="el" href="group__axis2__phase.html#g72deb07fffca51fe7f953ac82c6616b2">axis2_phase.h</a>
<li>axis2_phase_insert_before_and_after()
: <a class="el" href="group__axis2__phase.html#g29a679a896554e2527612d146532ebcd">axis2_phase.h</a>
<li>axis2_phase_insert_handler_desc()
: <a class="el" href="group__axis2__phase.html#g60f6b9e367666f8232f3287478c83b32">axis2_phase.h</a>
<li>axis2_phase_invoke()
: <a class="el" href="group__axis2__phase.html#gde224602c7b9f220ea14f2e2e8be9e66">axis2_phase.h</a>
<li>axis2_phase_invoke_start_from_handler()
: <a class="el" href="group__axis2__phase.html#gae4d903e6f99f2dbd7e358306cfd0733">axis2_phase.h</a>
<li>axis2_phase_remove_handler()
: <a class="el" href="group__axis2__phase.html#g54cc63e78b54a9b1b91783b07fb3b6e9">axis2_phase.h</a>
<li>axis2_phase_remove_handler_desc()
: <a class="el" href="group__axis2__phase.html#g2e667feb5d15a4e336e1eee3a6f77696">axis2_phase.h</a>
<li>axis2_phase_resolver_build_execution_chains_for_module_op()
: <a class="el" href="group__axis2__phase__resolver.html#gf5b9efb389e34a23b0bb7feb5974c0fc">axis2_phase_resolver.h</a>
<li>axis2_phase_resolver_build_execution_chains_for_svc()
: <a class="el" href="group__axis2__phase__resolver.html#g2d199ef8c0cf2c6f0477a0b7f3008798">axis2_phase_resolver.h</a>
<li>axis2_phase_resolver_build_transport_chains()
: <a class="el" href="group__axis2__phase__resolver.html#g9efb7f943f914da282d838fc692bfe37">axis2_phase_resolver.h</a>
<li>axis2_phase_resolver_create()
: <a class="el" href="group__axis2__phase__resolver.html#g13fa6c6ea63393abfbb1740161a07555">axis2_phase_resolver.h</a>
<li>axis2_phase_resolver_create_with_config()
: <a class="el" href="group__axis2__phase__resolver.html#g256c0cd570fa29d36e8834aa2cc4f23c">axis2_phase_resolver.h</a>
<li>axis2_phase_resolver_create_with_config_and_svc()
: <a class="el" href="group__axis2__phase__resolver.html#ga476f0ca50e5c9b0a45e62e8bf5bd352">axis2_phase_resolver.h</a>
<li>axis2_phase_resolver_disengage_module_from_op()
: <a class="el" href="group__axis2__phase__resolver.html#g899969368596162709da90423336dd11">axis2_phase_resolver.h</a>
<li>axis2_phase_resolver_disengage_module_from_svc()
: <a class="el" href="group__axis2__phase__resolver.html#g65dbd4a356861cb3517d4788f45b874c">axis2_phase_resolver.h</a>
<li>axis2_phase_resolver_engage_module_globally()
: <a class="el" href="group__axis2__phase__resolver.html#g38da02ab67a528c00d8a319e3855c69e">axis2_phase_resolver.h</a>
<li>axis2_phase_resolver_engage_module_to_op()
: <a class="el" href="group__axis2__phase__resolver.html#g0bb13c67fd8595207d8f5b4e5dc801fd">axis2_phase_resolver.h</a>
<li>axis2_phase_resolver_engage_module_to_svc()
: <a class="el" href="group__axis2__phase__resolver.html#gbbf06ef19a61ea00c495c980f8cbee1b">axis2_phase_resolver.h</a>
<li>axis2_phase_resolver_free()
: <a class="el" href="group__axis2__phase__resolver.html#gec0d6b1a44b15361b0c840ef947572df">axis2_phase_resolver.h</a>
<li>axis2_phase_rule_clone()
: <a class="el" href="group__axis2__phase__rule.html#gdddf387d390d87edc5125127ae2ab3ed">axis2_phase_rule.h</a>
<li>axis2_phase_rule_create()
: <a class="el" href="group__axis2__phase__rule.html#gdb84f9ccb0bf175221c9265f148cd32c">axis2_phase_rule.h</a>
<li>axis2_phase_rule_free()
: <a class="el" href="group__axis2__phase__rule.html#g98314dfcdc4e33e9943a9b7649d231e4">axis2_phase_rule.h</a>
<li>axis2_phase_rule_get_after()
: <a class="el" href="group__axis2__phase__rule.html#gc510de132f16f900e4d1ded091d70a1e">axis2_phase_rule.h</a>
<li>axis2_phase_rule_get_before()
: <a class="el" href="group__axis2__phase__rule.html#g74c03a05867ebf1ab9f697c7901d53b1">axis2_phase_rule.h</a>
<li>axis2_phase_rule_get_name()
: <a class="el" href="group__axis2__phase__rule.html#g609ef9a04aebdd2af772f78cef7ce26d">axis2_phase_rule.h</a>
<li>axis2_phase_rule_is_first()
: <a class="el" href="group__axis2__phase__rule.html#g07d9af90e9929dfad686b7f3494912ad">axis2_phase_rule.h</a>
<li>axis2_phase_rule_is_last()
: <a class="el" href="group__axis2__phase__rule.html#gc8418e7c4a81d34a72a1c421c014c953">axis2_phase_rule.h</a>
<li>axis2_phase_rule_set_after()
: <a class="el" href="group__axis2__phase__rule.html#g5e8872d7d5383aaaaee7ac6d200a7303">axis2_phase_rule.h</a>
<li>axis2_phase_rule_set_before()
: <a class="el" href="group__axis2__phase__rule.html#g03fadd5da8392e210b994cd5f425a92f">axis2_phase_rule.h</a>
<li>axis2_phase_rule_set_first()
: <a class="el" href="group__axis2__phase__rule.html#ge2de00428e8ec57f9008d1180b0eac53">axis2_phase_rule.h</a>
<li>axis2_phase_rule_set_last()
: <a class="el" href="group__axis2__phase__rule.html#g65020e799dcdc0bd401d1abc793ea18c">axis2_phase_rule.h</a>
<li>axis2_phase_rule_set_name()
: <a class="el" href="group__axis2__phase__rule.html#g2b76a8aa8c2004573d01df1c95b74ee6">axis2_phase_rule.h</a>
<li>axis2_phase_set_first_handler()
: <a class="el" href="group__axis2__phase.html#gc434dafaada6c4a9b1a4137dcafb129f">axis2_phase.h</a>
<li>axis2_phase_set_last_handler()
: <a class="el" href="group__axis2__phase.html#gd958e22d2aebf7f66390bd8f7a7ecefb">axis2_phase.h</a>
<li>axis2_relates_to_create()
: <a class="el" href="group__axis2__relates__to.html#g1f7a4765f50521b1cc0bedc34da084be">axis2_relates_to.h</a>
<li>axis2_relates_to_free()
: <a class="el" href="group__axis2__relates__to.html#g6f8c0bf96b07b67ed99af0ea01136e3e">axis2_relates_to.h</a>
<li>axis2_relates_to_get_relationship_type()
: <a class="el" href="group__axis2__relates__to.html#g3208f2fae771fc2fe5e6a604f0b9c3bf">axis2_relates_to.h</a>
<li>axis2_relates_to_get_value()
: <a class="el" href="group__axis2__relates__to.html#g06f3ca8b23f7f1ec80eb753a75203cf4">axis2_relates_to.h</a>
<li>axis2_relates_to_set_relationship_type()
: <a class="el" href="group__axis2__relates__to.html#g964c1e6a4cd9029fade0c95209b46166">axis2_relates_to.h</a>
<li>axis2_relates_to_set_value()
: <a class="el" href="group__axis2__relates__to.html#gaa3dd97df52d084ea15a5d05d6931a82">axis2_relates_to.h</a>
<li>axis2_req_uri_disp_create()
: <a class="el" href="group__axis2__disp.html#g44abce5a9beda1c85ad8263af5971789">axis2_disp.h</a>
<li>axis2_rest_disp_create()
: <a class="el" href="group__axis2__disp.html#g71f97a999b7c67d329477b2a0dc1b2ce">axis2_disp.h</a>
<li>axis2_simple_http_svr_conn_close()
: <a class="el" href="axis2__simple__http__svr__conn_8h.html#8e73143cc65dc21245af0fd6135be2ad">axis2_simple_http_svr_conn.h</a>
<li>axis2_simple_http_svr_conn_create()
: <a class="el" href="axis2__simple__http__svr__conn_8h.html#4b1f415af7c9512db5e66d4eef1ba24c">axis2_simple_http_svr_conn.h</a>
<li>axis2_simple_http_svr_conn_free()
: <a class="el" href="axis2__simple__http__svr__conn_8h.html#5718356edb01a8c6a62fc466e4ba5f35">axis2_simple_http_svr_conn.h</a>
<li>axis2_simple_http_svr_conn_get_peer_ip()
: <a class="el" href="axis2__simple__http__svr__conn_8h.html#40d5571375a2c2cae2274d29760e3a49">axis2_simple_http_svr_conn.h</a>
<li>axis2_simple_http_svr_conn_get_stream()
: <a class="el" href="axis2__simple__http__svr__conn_8h.html#ae980e99f336b1d6e33c8c33f857eabc">axis2_simple_http_svr_conn.h</a>
<li>axis2_simple_http_svr_conn_get_svr_ip()
: <a class="el" href="axis2__simple__http__svr__conn_8h.html#a77cb5a274e07015c40d81f352349b29">axis2_simple_http_svr_conn.h</a>
<li>axis2_simple_http_svr_conn_get_writer()
: <a class="el" href="axis2__simple__http__svr__conn_8h.html#20ca807331098d9e762a931b0ada7921">axis2_simple_http_svr_conn.h</a>
<li>axis2_simple_http_svr_conn_is_keep_alive()
: <a class="el" href="axis2__simple__http__svr__conn_8h.html#6fac44d24157d8947ec27056b3e9d66e">axis2_simple_http_svr_conn.h</a>
<li>axis2_simple_http_svr_conn_is_open()
: <a class="el" href="axis2__simple__http__svr__conn_8h.html#186ef9e05e9b1e7125ddf020412caa88">axis2_simple_http_svr_conn.h</a>
<li>axis2_simple_http_svr_conn_read_request()
: <a class="el" href="axis2__simple__http__svr__conn_8h.html#66c2425d7f064862abd57a3039214531">axis2_simple_http_svr_conn.h</a>
<li>axis2_simple_http_svr_conn_set_keep_alive()
: <a class="el" href="axis2__simple__http__svr__conn_8h.html#03a2d4fcb2b4fd8cbb7a5599d8017937">axis2_simple_http_svr_conn.h</a>
<li>axis2_simple_http_svr_conn_set_rcv_timeout()
: <a class="el" href="axis2__simple__http__svr__conn_8h.html#29cb398cc123654c068598dfec057da7">axis2_simple_http_svr_conn.h</a>
<li>axis2_simple_http_svr_conn_set_snd_timeout()
: <a class="el" href="axis2__simple__http__svr__conn_8h.html#8c6523b52c1259a074454155d2518af5">axis2_simple_http_svr_conn.h</a>
<li>axis2_simple_http_svr_conn_write_response()
: <a class="el" href="axis2__simple__http__svr__conn_8h.html#9c5f441d8ba42ed821177698719aae49">axis2_simple_http_svr_conn.h</a>
<li>axis2_soap_action_disp_create()
: <a class="el" href="group__axis2__disp.html#g7ce7cd65ca6b36076181dad1f6560bce">axis2_disp.h</a>
<li>axis2_soap_body_disp_create()
: <a class="el" href="group__axis2__disp.html#g417c2e8127f982ad198e4804a331016c">axis2_disp.h</a>
<li>axis2_stub_create_with_endpoint_ref_and_client_home()
: <a class="el" href="group__axis2__stub.html#g1ed17d951b3cca323b94074a747fbac7">axis2_stub.h</a>
<li>axis2_stub_create_with_endpoint_uri_and_client_home()
: <a class="el" href="group__axis2__stub.html#gb7634341e5e96506963b79ac3b5ebe6e">axis2_stub.h</a>
<li>axis2_stub_engage_module()
: <a class="el" href="group__axis2__stub.html#gb1137e8b1493ebfbecb29e81b6554974">axis2_stub.h</a>
<li>axis2_stub_free()
: <a class="el" href="group__axis2__stub.html#gfc147a4a3fbdadfd5d92051fd7be69e5">axis2_stub.h</a>
<li>axis2_stub_get_options()
: <a class="el" href="group__axis2__stub.html#ge0caef65d517bbde1018db927bbf2e27">axis2_stub.h</a>
<li>axis2_stub_get_svc_client()
: <a class="el" href="group__axis2__stub.html#g2d32f2fc661d49f68c8d144ada54acd8">axis2_stub.h</a>
<li>axis2_stub_get_svc_ctx_id()
: <a class="el" href="group__axis2__stub.html#gc313e3c8e03ada17a04e4049121d41d7">axis2_stub.h</a>
<li>axis2_stub_set_endpoint_ref()
: <a class="el" href="group__axis2__stub.html#gf746e816fb986b581bc2d3859bb097aa">axis2_stub.h</a>
<li>axis2_stub_set_endpoint_uri()
: <a class="el" href="group__axis2__stub.html#g175f162d0a5a7901f49f882bde4105ee">axis2_stub.h</a>
<li>axis2_stub_set_soap_version()
: <a class="el" href="group__axis2__stub.html#gcffd202b2340ff245a1c972669b8ad39">axis2_stub.h</a>
<li>axis2_stub_set_use_separate_listener()
: <a class="el" href="group__axis2__stub.html#gf3fdc7a48ad18635e54089e1e7e9d416">axis2_stub.h</a>
<li>axis2_svc_add_mapping()
: <a class="el" href="group__axis2__svc.html#ga99aa4caaa67315dee21b53283163999">axis2_svc.h</a>
<li>axis2_svc_add_module_ops()
: <a class="el" href="group__axis2__svc.html#g0a974ad2f1876c560ebe6ef3ce9cea40">axis2_svc.h</a>
<li>axis2_svc_add_module_qname()
: <a class="el" href="group__axis2__svc.html#ga45683c7b157225d4fd3d071337d7704">axis2_svc.h</a>
<li>axis2_svc_add_op()
: <a class="el" href="group__axis2__svc.html#g5cbd6c2e47273db94632e6d5a407ffa9">axis2_svc.h</a>
<li>axis2_svc_add_param()
: <a class="el" href="group__axis2__svc.html#gc48a028c9452d77839752c8d9c3adbd1">axis2_svc.h</a>
<li>axis2_svc_add_rest_mapping()
: <a class="el" href="group__axis2__svc.html#g4a9c6e0b84fff520b00f2bfd182e0e87">axis2_svc.h</a>
<li>axis2_svc_client_add_header()
: <a class="el" href="group__axis2__svc__client.html#gb65906f3d7f3a0ad5f75018ffdbbd0a7">axis2_svc_client.h</a>
<li>axis2_svc_client_create()
: <a class="el" href="group__axis2__svc__client.html#ga53015f155024d22a32e65132cd50e4c">axis2_svc_client.h</a>
<li>axis2_svc_client_create_op_client()
: <a class="el" href="group__axis2__svc__client.html#g3feaab85a53c0340422ec9af52f69907">axis2_svc_client.h</a>
<li>axis2_svc_client_create_with_conf_ctx_and_svc()
: <a class="el" href="group__axis2__svc__client.html#g65fd398dd0af4f6b928039b27bb6bef0">axis2_svc_client.h</a>
<li>axis2_svc_client_disengage_module()
: <a class="el" href="group__axis2__svc__client.html#g8e070993180e86a0d8e5a895dd02490d">axis2_svc_client.h</a>
<li>axis2_svc_client_engage_module()
: <a class="el" href="group__axis2__svc__client.html#ge2df35732ba09cb585e44917306ecfcd">axis2_svc_client.h</a>
<li>axis2_svc_client_finalize_invoke()
: <a class="el" href="group__axis2__svc__client.html#g3376dc048e45a0e943698375698c7420">axis2_svc_client.h</a>
<li>axis2_svc_client_fire_and_forget()
: <a class="el" href="group__axis2__svc__client.html#g97dacfdcae000a9830c68a92867c45a7">axis2_svc_client.h</a>
<li>axis2_svc_client_fire_and_forget_with_op_qname()
: <a class="el" href="group__axis2__svc__client.html#g43fb8eb372420c98fa3eac2f1616af9d">axis2_svc_client.h</a>
<li>axis2_svc_client_free()
: <a class="el" href="group__axis2__svc__client.html#g11a6f345606279e19578c9f4442ae756">axis2_svc_client.h</a>
<li>axis2_svc_client_get_auth_type()
: <a class="el" href="group__axis2__svc__client.html#g9915f900a8e029e180b132bba116f5db">axis2_svc_client.h</a>
<li>axis2_svc_client_get_conf_ctx()
: <a class="el" href="group__axis2__svc__client.html#gb3a17a94a9587abae4aaa7c3897d5005">axis2_svc_client.h</a>
<li>axis2_svc_client_get_http_auth_required()
: <a class="el" href="group__axis2__svc__client.html#g44f5bf54b151b8435880f3c109ac2eb9">axis2_svc_client.h</a>
<li>axis2_svc_client_get_http_headers()
: <a class="el" href="group__axis2__svc__client.html#g5ae49a916d0f5ed2cc2c53c60729dd9b">axis2_svc_client.h</a>
<li>axis2_svc_client_get_http_status_code()
: <a class="el" href="group__axis2__svc__client.html#geb637da8be4b1005dc722694311d058b">axis2_svc_client.h</a>
<li>axis2_svc_client_get_last_response_has_fault()
: <a class="el" href="group__axis2__svc__client.html#ge0c17bd903894f28245d22e996c54dbd">axis2_svc_client.h</a>
<li>axis2_svc_client_get_last_response_soap_envelope()
: <a class="el" href="group__axis2__svc__client.html#g53d3a7c3bd84013e1ace71061b0ef98c">axis2_svc_client.h</a>
<li>axis2_svc_client_get_op_client()
: <a class="el" href="group__axis2__svc__client.html#ga67a9dd0d56c30d5f96f28e5e8040c8c">axis2_svc_client.h</a>
<li>axis2_svc_client_get_options()
: <a class="el" href="group__axis2__svc__client.html#g2014faaebc9685d685b9b33ac7fdbb48">axis2_svc_client.h</a>
<li>axis2_svc_client_get_override_options()
: <a class="el" href="group__axis2__svc__client.html#g6d96f187c2183a936646d3c9c39b4a68">axis2_svc_client.h</a>
<li>axis2_svc_client_get_own_endpoint_ref()
: <a class="el" href="group__axis2__svc__client.html#gd844bd63844eaec8549c5fdc9b1a4567">axis2_svc_client.h</a>
<li>axis2_svc_client_get_proxy_auth_required()
: <a class="el" href="group__axis2__svc__client.html#g7c97e5105557a8f3dca54c19f5d30f29">axis2_svc_client.h</a>
<li>axis2_svc_client_get_svc()
: <a class="el" href="group__axis2__svc__client.html#gadff613f313131cacb5abc9771133294">axis2_svc_client.h</a>
<li>axis2_svc_client_get_svc_ctx()
: <a class="el" href="group__axis2__svc__client.html#g507f51f4a690c9d13e02c98dc17eb02c">axis2_svc_client.h</a>
<li>axis2_svc_client_get_target_endpoint_ref()
: <a class="el" href="group__axis2__svc__client.html#gf7576c7c16ad4859bbf04f771d03cc3e">axis2_svc_client.h</a>
<li>axis2_svc_client_remove_all_headers()
: <a class="el" href="group__axis2__svc__client.html#gd14cd1a3ec6aa3891369cd9bd671030b">axis2_svc_client.h</a>
<li>axis2_svc_client_send_receive()
: <a class="el" href="group__axis2__svc__client.html#g2748baf670a594d5bf8dd49d9038dbc5">axis2_svc_client.h</a>
<li>axis2_svc_client_send_receive_non_blocking()
: <a class="el" href="group__axis2__svc__client.html#g26a5d5c7cb8a4305908d829f35dcfb13">axis2_svc_client.h</a>
<li>axis2_svc_client_send_receive_non_blocking_with_op_qname()
: <a class="el" href="group__axis2__svc__client.html#gd68cdf7e84aff54c1815c8675772c76c">axis2_svc_client.h</a>
<li>axis2_svc_client_send_receive_with_op_qname()
: <a class="el" href="group__axis2__svc__client.html#g6e0d00d836295f92e14473d3cf3bf78b">axis2_svc_client.h</a>
<li>axis2_svc_client_send_robust()
: <a class="el" href="group__axis2__svc__client.html#g715a6de724d3a0d1d93bd11620c3ee78">axis2_svc_client.h</a>
<li>axis2_svc_client_send_robust_with_op_qname()
: <a class="el" href="group__axis2__svc__client.html#g42a973429ce779dc574052bb6a8b1849">axis2_svc_client.h</a>
<li>axis2_svc_client_set_options()
: <a class="el" href="group__axis2__svc__client.html#ge976c74f5398693aa8b6d2c083b982bf">axis2_svc_client.h</a>
<li>axis2_svc_client_set_override_options()
: <a class="el" href="group__axis2__svc__client.html#g59e0659abbb66ae2100a66e93d692462">axis2_svc_client.h</a>
<li>axis2_svc_client_set_policy()
: <a class="el" href="group__axis2__svc__client.html#g805278c10ee19cda6d41fc224f5b9ea3">axis2_svc_client.h</a>
<li>axis2_svc_client_set_policy_from_om()
: <a class="el" href="group__axis2__svc__client.html#g43d7672cdea91171fc89fcc06799e1dc">axis2_svc_client.h</a>
<li>axis2_svc_client_set_proxy()
: <a class="el" href="group__axis2__svc__client.html#ged34edf4ad2491d96c1af33fe669fd1f">axis2_svc_client.h</a>
<li>axis2_svc_client_set_proxy_with_auth()
: <a class="el" href="group__axis2__svc__client.html#gcfe99e1b20b72175564545aa3643a578">axis2_svc_client.h</a>
<li>axis2_svc_client_set_target_endpoint_ref()
: <a class="el" href="group__axis2__svc__client.html#gb60879c0484ac46ae301c7c4f13ba6e6">axis2_svc_client.h</a>
<li>axis2_svc_create()
: <a class="el" href="group__axis2__svc.html#gc45855d3d550a76bcca692eaa51dfdcb">axis2_svc.h</a>
<li>axis2_svc_create_with_qname()
: <a class="el" href="group__axis2__svc.html#gc10ba2c54702eb532945cf3fdce2178f">axis2_svc.h</a>
<li>axis2_svc_ctx_create()
: <a class="el" href="group__axis2__svc__ctx.html#gfde2ce40c07183001b2a1ef867fb36ae">axis2_svc_ctx.h</a>
<li>axis2_svc_ctx_create_op_ctx()
: <a class="el" href="group__axis2__svc__ctx.html#g6db441773d780252be4111f7a8a8c68f">axis2_svc_ctx.h</a>
<li>axis2_svc_ctx_free()
: <a class="el" href="group__axis2__svc__ctx.html#g0ef5d19c153f6e053ebc0c0146d0bbd6">axis2_svc_ctx.h</a>
<li>axis2_svc_ctx_get_base()
: <a class="el" href="group__axis2__svc__ctx.html#gf2139308d0b7d17fb9e5cfe531927ecc">axis2_svc_ctx.h</a>
<li>axis2_svc_ctx_get_conf_ctx()
: <a class="el" href="group__axis2__svc__ctx.html#gf0645d1d2501588e81ba725137927348">axis2_svc_ctx.h</a>
<li>axis2_svc_ctx_get_parent()
: <a class="el" href="group__axis2__svc__ctx.html#g2e53ac655251a1f8c59eeb30fbc5565d">axis2_svc_ctx.h</a>
<li>axis2_svc_ctx_get_svc()
: <a class="el" href="group__axis2__svc__ctx.html#g3c50b06c933101a834e178e6e9305237">axis2_svc_ctx.h</a>
<li>axis2_svc_ctx_get_svc_id()
: <a class="el" href="group__axis2__svc__ctx.html#ge6b5b3dec329ae2a97080f4a02d8874b">axis2_svc_ctx.h</a>
<li>axis2_svc_ctx_init()
: <a class="el" href="group__axis2__svc__ctx.html#gceab7004549d691ce03343fffdd08c1b">axis2_svc_ctx.h</a>
<li>axis2_svc_ctx_set_parent()
: <a class="el" href="group__axis2__svc__ctx.html#gccbd28eff1c261a89ae12ba43382c284">axis2_svc_ctx.h</a>
<li>axis2_svc_ctx_set_svc()
: <a class="el" href="group__axis2__svc__ctx.html#g9d465a820d440585864dd7235d4747dd">axis2_svc_ctx.h</a>
<li>axis2_svc_disengage_module()
: <a class="el" href="group__axis2__svc.html#gbccd941c1f48817cb8aad67eb017f70a">axis2_svc.h</a>
<li>axis2_svc_engage_module()
: <a class="el" href="group__axis2__svc.html#gf2edbd32031290c35891d23080566790">axis2_svc.h</a>
<li>axis2_svc_free()
: <a class="el" href="group__axis2__svc.html#g6adc90fa30952058bb566df6727c75da">axis2_svc.h</a>
<li>axis2_svc_get_all_module_qnames()
: <a class="el" href="group__axis2__svc.html#g54e06db70cfd22b21deefde65ceacee2">axis2_svc.h</a>
<li>axis2_svc_get_all_ops()
: <a class="el" href="group__axis2__svc.html#g1574ba3e87a679748c2395a521787d56">axis2_svc.h</a>
<li>axis2_svc_get_all_params()
: <a class="el" href="group__axis2__svc.html#g0db6ea3cba35603e3bea428005a1e681">axis2_svc.h</a>
<li>axis2_svc_get_base()
: <a class="el" href="group__axis2__svc.html#g6a9dc1faae21544f140b511419e6d886">axis2_svc.h</a>
<li>axis2_svc_get_engaged_module_list()
: <a class="el" href="group__axis2__svc.html#g41a846eaf8687e08757fa82924441157">axis2_svc.h</a>
<li>axis2_svc_get_file_name()
: <a class="el" href="group__axis2__svc.html#g2e55e1cb76fb887f300111c732915384">axis2_svc.h</a>
<li>axis2_svc_get_last_update()
: <a class="el" href="group__axis2__svc.html#g788443be98d1d5ca71f1989f74cd96c9">axis2_svc.h</a>
<li>axis2_svc_get_name()
: <a class="el" href="group__axis2__svc.html#ga2590adf8cb809185ccd1117e5c38767">axis2_svc.h</a>
<li>axis2_svc_get_op_by_soap_action()
: <a class="el" href="group__axis2__svc.html#g91fa5f06a989145dadd9d071ca1eb648">axis2_svc.h</a>
<li>axis2_svc_get_op_with_name()
: <a class="el" href="group__axis2__svc.html#g49a1d2e36cf1c13d113ac5ed04ab2455">axis2_svc.h</a>
<li>axis2_svc_get_op_with_qname()
: <a class="el" href="group__axis2__svc.html#g3c994b6da8e2a6adeb9e61771718366c">axis2_svc.h</a>
<li>axis2_svc_get_param()
: <a class="el" href="group__axis2__svc.html#g5e42b969b0b6de99d284da0db942e969">axis2_svc.h</a>
<li>axis2_svc_get_param_container()
: <a class="el" href="group__axis2__svc.html#gb0e91f0337ca9f35a18cd119df3821fe">axis2_svc.h</a>
<li>axis2_svc_get_parent()
: <a class="el" href="group__axis2__svc.html#g1469032ca1c58b9eb5b120e7fe9a9ad1">axis2_svc.h</a>
<li>axis2_svc_get_qname()
: <a class="el" href="group__axis2__svc.html#gb08959beaff32b83172f690ca959f65f">axis2_svc.h</a>
<li>axis2_svc_get_rest_map()
: <a class="el" href="group__axis2__svc.html#g380cf5374766b1bd86666f132121c3df">axis2_svc.h</a>
<li>axis2_svc_get_rest_op_list_with_method_and_location()
: <a class="el" href="group__axis2__svc.html#g084262a14dff6edf6e822e13a0c7bdfa">axis2_svc.h</a>
<li>axis2_svc_get_style()
: <a class="el" href="group__axis2__svc.html#g4da58747b15717417ee7399fe0a36cc6">axis2_svc.h</a>
<li>axis2_svc_get_svc_desc()
: <a class="el" href="group__axis2__svc.html#g52c960cead461a124b76b2fb4e3835b2">axis2_svc.h</a>
<li>axis2_svc_get_svc_folder_path()
: <a class="el" href="group__axis2__svc.html#g3b8e9e9280ddc1bb96795b595a9bfbd2">axis2_svc.h</a>
<li>axis2_svc_get_svc_wsdl_path()
: <a class="el" href="group__axis2__svc.html#g1287041d3b531780558da54386ed38a3">axis2_svc.h</a>
<li>axis2_svc_get_target_ns()
: <a class="el" href="group__axis2__svc.html#g918040e3fdedb586e5d161ca4cc82925">axis2_svc.h</a>
<li>axis2_svc_get_target_ns_prefix()
: <a class="el" href="group__axis2__svc.html#g704a51af7fc2485128d53a9dae23d184">axis2_svc.h</a>
<li>axis2_svc_grp_add_module_qname()
: <a class="el" href="group__axis2__svc__grp.html#g5216eb0c4232d0de1f58594f99e22391">axis2_svc_grp.h</a>
<li>axis2_svc_grp_add_module_ref()
: <a class="el" href="group__axis2__svc__grp.html#gacc300eeed7bf4ccc14d68c114ac7c9a">axis2_svc_grp.h</a>
<li>axis2_svc_grp_add_param()
: <a class="el" href="group__axis2__svc__grp.html#g8e39014339ba95a2d64db6dac4e03811">axis2_svc_grp.h</a>
<li>axis2_svc_grp_add_svc()
: <a class="el" href="group__axis2__svc__grp.html#g731315038a625a4436953951a1dce15b">axis2_svc_grp.h</a>
<li>axis2_svc_grp_create()
: <a class="el" href="group__axis2__svc__grp.html#g5de18e0924a843af891f2c2eb274f580">axis2_svc_grp.h</a>
<li>axis2_svc_grp_create_with_conf()
: <a class="el" href="group__axis2__svc__grp.html#ge65bd5202186937874e51ceb0fd9d97e">axis2_svc_grp.h</a>
<li>axis2_svc_grp_ctx_create()
: <a class="el" href="group__axis2__svc__grp__ctx.html#ge0d00b9b416c6d13673844dae01c7dd1">axis2_svc_grp_ctx.h</a>
<li>axis2_svc_grp_ctx_fill_svc_ctx_map()
: <a class="el" href="group__axis2__svc__grp__ctx.html#gd39cf31f9ed602c15a98b847072fcb3c">axis2_svc_grp_ctx.h</a>
<li>axis2_svc_grp_ctx_free()
: <a class="el" href="group__axis2__svc__grp__ctx.html#g0fd950866065679d54ca9f6a8a2edfaa">axis2_svc_grp_ctx.h</a>
<li>axis2_svc_grp_ctx_get_base()
: <a class="el" href="group__axis2__svc__grp__ctx.html#gc0e89428bb66e652ddb0fd35bce6f62d">axis2_svc_grp_ctx.h</a>
<li>axis2_svc_grp_ctx_get_id()
: <a class="el" href="group__axis2__svc__grp__ctx.html#g5706c6b6c2d6ad360b0fcae17e66e521">axis2_svc_grp_ctx.h</a>
<li>axis2_svc_grp_ctx_get_parent()
: <a class="el" href="group__axis2__svc__grp__ctx.html#g237da85b5cccbee2d725b59a4885d892">axis2_svc_grp_ctx.h</a>
<li>axis2_svc_grp_ctx_get_svc_ctx()
: <a class="el" href="group__axis2__svc__grp__ctx.html#gb928c64e7297cf73eabac7dd6c851ecd">axis2_svc_grp_ctx.h</a>
<li>axis2_svc_grp_ctx_get_svc_ctx_map()
: <a class="el" href="group__axis2__svc__grp__ctx.html#g7c8027f1714d507296e9defc65defeb5">axis2_svc_grp_ctx.h</a>
<li>axis2_svc_grp_ctx_get_svc_grp()
: <a class="el" href="group__axis2__svc__grp__ctx.html#g07609d72f69f20b13a8a6d9d9c7a51cc">axis2_svc_grp_ctx.h</a>
<li>axis2_svc_grp_ctx_init()
: <a class="el" href="group__axis2__svc__grp__ctx.html#ga9b023de30ee0669a6e19b37417c4539">axis2_svc_grp_ctx.h</a>
<li>axis2_svc_grp_ctx_set_id()
: <a class="el" href="group__axis2__svc__grp__ctx.html#ga13372f182ee6a6e712b82268a1e19e7">axis2_svc_grp_ctx.h</a>
<li>axis2_svc_grp_engage_module()
: <a class="el" href="group__axis2__svc__grp.html#geb8c8fe09b2911addbb171aee5a09d47">axis2_svc_grp.h</a>
<li>axis2_svc_grp_free()
: <a class="el" href="group__axis2__svc__grp.html#gd9a82fef7fbe4a5a307833c04add09cd">axis2_svc_grp.h</a>
<li>axis2_svc_grp_get_all_module_qnames()
: <a class="el" href="group__axis2__svc__grp.html#g16877756d60ea286f08b8be863bae9e6">axis2_svc_grp.h</a>
<li>axis2_svc_grp_get_all_module_refs()
: <a class="el" href="group__axis2__svc__grp.html#g3a16449604a71def11e817c5f076e2e1">axis2_svc_grp.h</a>
<li>axis2_svc_grp_get_all_params()
: <a class="el" href="group__axis2__svc__grp.html#g31ba41e7e89d0443c5fb9eda62f627c7">axis2_svc_grp.h</a>
<li>axis2_svc_grp_get_all_svcs()
: <a class="el" href="group__axis2__svc__grp.html#g57f4154c413ac2fd518ac1ad1bd863fe">axis2_svc_grp.h</a>
<li>axis2_svc_grp_get_base()
: <a class="el" href="group__axis2__svc__grp.html#g6a55741ccaf95a3dff7731efcc92f72b">axis2_svc_grp.h</a>
<li>axis2_svc_grp_get_name()
: <a class="el" href="group__axis2__svc__grp.html#g258d00be25cb490124899f9c29a56b95">axis2_svc_grp.h</a>
<li>axis2_svc_grp_get_param()
: <a class="el" href="group__axis2__svc__grp.html#g4d666a7940bfb4377d1aba5c1815d577">axis2_svc_grp.h</a>
<li>axis2_svc_grp_get_parent()
: <a class="el" href="group__axis2__svc__grp.html#gcefdd7d375eaa681d8d14f6c3256c39a">axis2_svc_grp.h</a>
<li>axis2_svc_grp_get_svc()
: <a class="el" href="group__axis2__svc__grp.html#g7df1792c61f47097ac93f7b729efd773">axis2_svc_grp.h</a>
<li>axis2_svc_grp_get_svc_grp_ctx()
: <a class="el" href="group__axis2__svc__grp.html#gb251e99e1e5c6b7945f3a6f91fa164a6">axis2_svc_grp.h</a>
<li>axis2_svc_grp_is_param_locked()
: <a class="el" href="group__axis2__svc__grp.html#g9b85dce29fc8a1d23a29911ace09fe32">axis2_svc_grp.h</a>
<li>axis2_svc_grp_remove_svc()
: <a class="el" href="group__axis2__svc__grp.html#gbd962a135fad725b13f351adbc4f495a">axis2_svc_grp.h</a>
<li>axis2_svc_grp_set_name()
: <a class="el" href="group__axis2__svc__grp.html#g2cdd211b2086bfd7c24ae4939809ab26">axis2_svc_grp.h</a>
<li>axis2_svc_grp_set_parent()
: <a class="el" href="group__axis2__svc__grp.html#ga97c377688555569fa102742ff6adfed">axis2_svc_grp.h</a>
<li>axis2_svc_is_module_engaged()
: <a class="el" href="group__axis2__svc.html#gd0f98db137449b246ef2b2b6ec6ba6a4">axis2_svc.h</a>
<li>axis2_svc_is_param_locked()
: <a class="el" href="group__axis2__svc.html#ge02611f21135d71edfffba0bdfc24388">axis2_svc.h</a>
<li>axis2_svc_name_create()
: <a class="el" href="group__axis2__svc__name.html#gd9c5d80b2a677f7d60e7ab28476110fb">axis2_svc_name.h</a>
<li>axis2_svc_name_free()
: <a class="el" href="group__axis2__svc__name.html#gcbab528a163f700fa4e7dc90823ed3af">axis2_svc_name.h</a>
<li>axis2_svc_name_get_endpoint_name()
: <a class="el" href="group__axis2__svc__name.html#g0dcc0f40f026a534ec485569f049b702">axis2_svc_name.h</a>
<li>axis2_svc_name_get_qname()
: <a class="el" href="group__axis2__svc__name.html#g0d2b872b6822efcc48098f8b462d13c9">axis2_svc_name.h</a>
<li>axis2_svc_name_set_endpoint_name()
: <a class="el" href="group__axis2__svc__name.html#g48f0c6167341579c0655b66b556cd1d3">axis2_svc_name.h</a>
<li>axis2_svc_name_set_qname()
: <a class="el" href="group__axis2__svc__name.html#g789b2cc0d8e7a1d95d5f3989a78524d0">axis2_svc_name.h</a>
<li>axis2_svc_set_file_name()
: <a class="el" href="group__axis2__svc.html#gd0ce8a174e0bb8ecca7b8666669a775f">axis2_svc.h</a>
<li>axis2_svc_set_last_update()
: <a class="el" href="group__axis2__svc.html#g8f763e28256c43eebf4e371ff61afb1e">axis2_svc.h</a>
<li>axis2_svc_set_name()
: <a class="el" href="group__axis2__svc.html#gc04e374dc9571b5726b88bfd2e68e702">axis2_svc.h</a>
<li>axis2_svc_set_ns_map()
: <a class="el" href="group__axis2__svc.html#g7d09d2191060dc07c499d61790f29d7e">axis2_svc.h</a>
<li>axis2_svc_set_parent()
: <a class="el" href="group__axis2__svc.html#g260a062049966a472bd05355015736af">axis2_svc.h</a>
<li>axis2_svc_set_qname()
: <a class="el" href="group__axis2__svc.html#g30653ba40ccaac99fad8efed0ca18805">axis2_svc.h</a>
<li>axis2_svc_set_style()
: <a class="el" href="group__axis2__svc.html#gae80b545f3209e5b3a7afada2c8151e2">axis2_svc.h</a>
<li>axis2_svc_set_svc_desc()
: <a class="el" href="group__axis2__svc.html#g4a5c7c02129b43cdb31b47d4d02ed1ae">axis2_svc.h</a>
<li>axis2_svc_set_svc_folder_path()
: <a class="el" href="group__axis2__svc.html#g6101f397d6874038f5063d9c92c0aae4">axis2_svc.h</a>
<li>axis2_svc_set_svc_wsdl_path()
: <a class="el" href="group__axis2__svc.html#gf864bfde998f8c76bf3264821df8460f">axis2_svc.h</a>
<li>axis2_svc_set_target_ns_prefix()
: <a class="el" href="group__axis2__svc.html#g860eb0e255e66356581304f9cfc772a9">axis2_svc.h</a>
<li>axis2_svr_callback_create()
: <a class="el" href="group__axis2__svr__callback.html#gad3c7690a2469aa3c55a71d0c1fa6b0e">axis2_svr_callback.h</a>
<li>axis2_svr_callback_free()
: <a class="el" href="group__axis2__svr__callback.html#g1357c2b8b7a968161bb890f04ce11903">axis2_svr_callback.h</a>
<li>axis2_svr_callback_handle_fault()
: <a class="el" href="group__axis2__svr__callback.html#g047c37ee9b79b4dd89a3f55761e6506c">axis2_svr_callback.h</a>
<li>axis2_svr_callback_handle_result()
: <a class="el" href="group__axis2__svr__callback.html#gd89712afed2d93a2852d75ce7927b461">axis2_svr_callback.h</a>
<li>axis2_transport_in_desc_add_param()
: <a class="el" href="group__axis2__transport__in__desc.html#g23edaa772c9490e9f9a42c62ff501087">axis2_transport_in_desc.h</a>
<li>axis2_transport_in_desc_create()
: <a class="el" href="group__axis2__transport__in__desc.html#g89b3450ffcd518c2a46edea5878cb917">axis2_transport_in_desc.h</a>
<li>axis2_transport_in_desc_free()
: <a class="el" href="group__axis2__transport__in__desc.html#g21d5acc0496701bb3a3d3c6e12f8a45a">axis2_transport_in_desc.h</a>
<li>axis2_transport_in_desc_free_void_arg()
: <a class="el" href="group__axis2__transport__in__desc.html#gfd336f266ce3e3cde1ef38b475e19dac">axis2_transport_in_desc.h</a>
<li>axis2_transport_in_desc_get_enum()
: <a class="el" href="group__axis2__transport__in__desc.html#g6ec4b9bf77f2828b7461de54bb7655ce">axis2_transport_in_desc.h</a>
<li>axis2_transport_in_desc_get_fault_in_flow()
: <a class="el" href="group__axis2__transport__in__desc.html#g7eefabf8404784204c46c7d4ff639211">axis2_transport_in_desc.h</a>
<li>axis2_transport_in_desc_get_fault_phase()
: <a class="el" href="group__axis2__transport__in__desc.html#g7f97aa29114ec9cc9d8002a579f8a235">axis2_transport_in_desc.h</a>
<li>axis2_transport_in_desc_get_in_flow()
: <a class="el" href="group__axis2__transport__in__desc.html#g8f29949d324d08e6c759ccf650ccab29">axis2_transport_in_desc.h</a>
<li>axis2_transport_in_desc_get_in_phase()
: <a class="el" href="group__axis2__transport__in__desc.html#g49f9ae8aed490c7d9e23ace6ffea2570">axis2_transport_in_desc.h</a>
<li>axis2_transport_in_desc_get_param()
: <a class="el" href="group__axis2__transport__in__desc.html#g1985a26ee0e62392581b1a0092afae5f">axis2_transport_in_desc.h</a>
<li>axis2_transport_in_desc_get_recv()
: <a class="el" href="group__axis2__transport__in__desc.html#gf86d50b87ddbb9adfb9856526a7a0cdf">axis2_transport_in_desc.h</a>
<li>axis2_transport_in_desc_is_param_locked()
: <a class="el" href="group__axis2__transport__in__desc.html#g4554acd6e4b3179b241a5ae1bc187895">axis2_transport_in_desc.h</a>
<li>axis2_transport_in_desc_set_enum()
: <a class="el" href="group__axis2__transport__in__desc.html#g4c11258fcb647146f412d89ccdbd069d">axis2_transport_in_desc.h</a>
<li>axis2_transport_in_desc_set_fault_in_flow()
: <a class="el" href="group__axis2__transport__in__desc.html#g4f702a1a39ff523cf65600fc54046643">axis2_transport_in_desc.h</a>
<li>axis2_transport_in_desc_set_fault_phase()
: <a class="el" href="group__axis2__transport__in__desc.html#gdf835498b897a9987af59160c09d10e7">axis2_transport_in_desc.h</a>
<li>axis2_transport_in_desc_set_in_flow()
: <a class="el" href="group__axis2__transport__in__desc.html#ga0d8c3fa889518560959a8b19900e31b">axis2_transport_in_desc.h</a>
<li>axis2_transport_in_desc_set_in_phase()
: <a class="el" href="group__axis2__transport__in__desc.html#gd86f037c003fa111e619a7e9ae5474ea">axis2_transport_in_desc.h</a>
<li>axis2_transport_in_desc_set_recv()
: <a class="el" href="group__axis2__transport__in__desc.html#g1bc9262c72e46d7d485f126f7c054d48">axis2_transport_in_desc.h</a>
<li>axis2_transport_out_desc_add_param()
: <a class="el" href="group__axis2__transport__out__desc.html#g8621dd5272956b27dea575d3faea7661">axis2_transport_out_desc.h</a>
<li>axis2_transport_out_desc_create()
: <a class="el" href="group__axis2__transport__out__desc.html#g7f4ccfe57406b9e031c12ec4c0fe84ab">axis2_transport_out_desc.h</a>
<li>axis2_transport_out_desc_free()
: <a class="el" href="group__axis2__transport__out__desc.html#g17a66a405da41dd82b2dc42b730179ea">axis2_transport_out_desc.h</a>
<li>axis2_transport_out_desc_free_void_arg()
: <a class="el" href="group__axis2__transport__out__desc.html#gf4917e987d796cc459ef55d00047fe33">axis2_transport_out_desc.h</a>
<li>axis2_transport_out_desc_get_enum()
: <a class="el" href="group__axis2__transport__out__desc.html#gc56b3eb46671968107d9f6e2a8421c66">axis2_transport_out_desc.h</a>
<li>axis2_transport_out_desc_get_fault_out_flow()
: <a class="el" href="group__axis2__transport__out__desc.html#g36e3acc53b29852e92ad318de26ac385">axis2_transport_out_desc.h</a>
<li>axis2_transport_out_desc_get_fault_phase()
: <a class="el" href="group__axis2__transport__out__desc.html#g494cdcb339e8e0790b9856d84445c81f">axis2_transport_out_desc.h</a>
<li>axis2_transport_out_desc_get_out_flow()
: <a class="el" href="group__axis2__transport__out__desc.html#g2e7d8904b18d357a6b73f7b8cf301460">axis2_transport_out_desc.h</a>
<li>axis2_transport_out_desc_get_out_phase()
: <a class="el" href="group__axis2__transport__out__desc.html#gc6f65f940c3d5fa1f37f4ce4f2b8cf35">axis2_transport_out_desc.h</a>
<li>axis2_transport_out_desc_get_param()
: <a class="el" href="group__axis2__transport__out__desc.html#gff44a8c8a8cc57ca618f6c84c18e322e">axis2_transport_out_desc.h</a>
<li>axis2_transport_out_desc_get_sender()
: <a class="el" href="group__axis2__transport__out__desc.html#g4e924632fe992d0be5e5ba163636a301">axis2_transport_out_desc.h</a>
<li>axis2_transport_out_desc_is_param_locked()
: <a class="el" href="group__axis2__transport__out__desc.html#g7a1d79a2e07e83772081c39aeaae5abc">axis2_transport_out_desc.h</a>
<li>axis2_transport_out_desc_set_enum()
: <a class="el" href="group__axis2__transport__out__desc.html#g3f8f58f6a90b6edc394949481eb2fe04">axis2_transport_out_desc.h</a>
<li>axis2_transport_out_desc_set_fault_out_flow()
: <a class="el" href="group__axis2__transport__out__desc.html#ga3a191a5b9b362398741b8fd7c5fbadb">axis2_transport_out_desc.h</a>
<li>axis2_transport_out_desc_set_fault_phase()
: <a class="el" href="group__axis2__transport__out__desc.html#gc40075ffa1f0d29c109d9b7e87a4dc1c">axis2_transport_out_desc.h</a>
<li>axis2_transport_out_desc_set_out_flow()
: <a class="el" href="group__axis2__transport__out__desc.html#ga6d6933bd2681ae8f703e6081b63ef64">axis2_transport_out_desc.h</a>
<li>axis2_transport_out_desc_set_out_phase()
: <a class="el" href="group__axis2__transport__out__desc.html#ga7e6529ba14d6223e216a338d0d21737">axis2_transport_out_desc.h</a>
<li>axis2_transport_out_desc_set_sender()
: <a class="el" href="group__axis2__transport__out__desc.html#g945e1f92bebe27aa180358eb7eaaf126">axis2_transport_out_desc.h</a>
<li>axis2_transport_receiver_free()
: <a class="el" href="group__axis2__transport__receiver.html#g18cd0a700f4e7cb37e1c409a3ecfac11">axis2_transport_receiver.h</a>
<li>axis2_transport_receiver_get_conf_ctx()
: <a class="el" href="group__axis2__transport__receiver.html#gf81f5bfd42d9cc2367268cf0ab197e6c">axis2_transport_receiver.h</a>
<li>axis2_transport_receiver_get_reply_to_epr()
: <a class="el" href="group__axis2__transport__receiver.html#g716be8f00a030e32139abdde3c2ca56c">axis2_transport_receiver.h</a>
<li>axis2_transport_receiver_init()
: <a class="el" href="group__axis2__transport__receiver.html#g3d4ef4feffc51de764f709a33946b159">axis2_transport_receiver.h</a>
<li>axis2_transport_receiver_is_running()
: <a class="el" href="group__axis2__transport__receiver.html#g22a8d2cdd593d7966ec853042b6542be">axis2_transport_receiver.h</a>
<li>axis2_transport_receiver_start()
: <a class="el" href="group__axis2__transport__receiver.html#g1d554a5c0ed340fba59530e01d078325">axis2_transport_receiver.h</a>
<li>axis2_transport_receiver_stop()
: <a class="el" href="group__axis2__transport__receiver.html#g473f9011903bfe42bacb4800979f47a9">axis2_transport_receiver.h</a>
<li>axis2_transport_sender_create()
: <a class="el" href="group__axis2__transport__sender.html#gd6e69829fc6298d56fe3bf89c523949b">axis2_transport_sender.h</a>
<li>axutil_allocator_free()
: <a class="el" href="group__axutil__allocator.html#g5e629bf41638a6df23793dbefb542f5b">axutil_allocator.h</a>
<li>axutil_allocator_init()
: <a class="el" href="group__axutil__allocator.html#g102e762ca4def99ded7ef3f0244f2f88">axutil_allocator.h</a>
<li>axutil_allocator_switch_to_global_pool()
: <a class="el" href="group__axutil__allocator.html#g7c4b9b9277c33abdfbd7f5838c1482da">axutil_allocator.h</a>
<li>axutil_allocator_switch_to_local_pool()
: <a class="el" href="group__axutil__allocator.html#g84fcfb6c00bfaf95d676a8cc98c2ac33">axutil_allocator.h</a>
<li>axutil_array_list_add()
: <a class="el" href="group__axutil__array__list.html#g507c7dbb9fe09bbca571739e64ff9835">axutil_array_list.h</a>
<li>axutil_array_list_add_at()
: <a class="el" href="group__axutil__array__list.html#g6c5f7a93a8d3e7e8ed2eebadd05a59f6">axutil_array_list.h</a>
<li>axutil_array_list_check_bound_exclusive()
: <a class="el" href="group__axutil__array__list.html#gdcfecde9d78409f5ff53607d756e3c45">axutil_array_list.h</a>
<li>axutil_array_list_check_bound_inclusive()
: <a class="el" href="group__axutil__array__list.html#g7e79d235403a8cc6cf5dcf93e8c79dc1">axutil_array_list.h</a>
<li>axutil_array_list_contains()
: <a class="el" href="group__axutil__array__list.html#g7a0aa68c089a2905ed506213aba40578">axutil_array_list.h</a>
<li>axutil_array_list_create()
: <a class="el" href="group__axutil__array__list.html#g97d190815f1d8ab2045c203ebd92919b">axutil_array_list.h</a>
<li>axutil_array_list_ensure_capacity()
: <a class="el" href="group__axutil__array__list.html#g07cd8d75ecc51f53224af4b6793dcde7">axutil_array_list.h</a>
<li>axutil_array_list_free()
: <a class="el" href="group__axutil__array__list.html#g549e9d4e6c502650ea76d0134551130e">axutil_array_list.h</a>
<li>axutil_array_list_free_void_arg()
: <a class="el" href="group__axutil__array__list.html#gf649de5177ea73a4e2e39c38af79e62f">axutil_array_list.h</a>
<li>axutil_array_list_get()
: <a class="el" href="group__axutil__array__list.html#gb6e54fa2917ddc0128e98a3bb0adcfad">axutil_array_list.h</a>
<li>axutil_array_list_index_of()
: <a class="el" href="group__axutil__array__list.html#gb539c683dea5713f8388e131e686ad28">axutil_array_list.h</a>
<li>axutil_array_list_is_empty()
: <a class="el" href="group__axutil__array__list.html#g3ed8b5b9d4a0a4e76e4c55d92a307a0d">axutil_array_list.h</a>
<li>axutil_array_list_remove()
: <a class="el" href="group__axutil__array__list.html#g2aefd638d987a77684c95d3d49250c9a">axutil_array_list.h</a>
<li>axutil_array_list_set()
: <a class="el" href="group__axutil__array__list.html#g77177f8cd9a95ec0bedeec6906352395">axutil_array_list.h</a>
<li>axutil_array_list_size()
: <a class="el" href="group__axutil__array__list.html#g89efc3fe773e2655f1884121a97273f3">axutil_array_list.h</a>
<li>axutil_base64_binary_create()
: <a class="el" href="group__axutil__base64__binary.html#gd4034fe75ef4f78c96a3d4a621e05261">axutil_base64_binary.h</a>
<li>axutil_base64_binary_create_with_encoded_binary()
: <a class="el" href="group__axutil__base64__binary.html#gf28fde47d4e1d8dcef7e561960a868e6">axutil_base64_binary.h</a>
<li>axutil_base64_binary_create_with_plain_binary()
: <a class="el" href="group__axutil__base64__binary.html#g60d56fa636505ebc10eed632dc345f1f">axutil_base64_binary.h</a>
<li>axutil_base64_binary_free()
: <a class="el" href="group__axutil__base64__binary.html#gc8130363c9fd8ed48a903fef17e0cb43">axutil_base64_binary.h</a>
<li>axutil_base64_binary_get_decoded_binary_len()
: <a class="el" href="group__axutil__base64__binary.html#g034abbbb58b90573b08d649d3c8939a4">axutil_base64_binary.h</a>
<li>axutil_base64_binary_get_encoded_binary()
: <a class="el" href="group__axutil__base64__binary.html#g417e167050fc9c2f38f129979ba2e0a8">axutil_base64_binary.h</a>
<li>axutil_base64_binary_get_encoded_binary_len()
: <a class="el" href="group__axutil__base64__binary.html#ge89f2a3f7e788c995ab764df3ba896cd">axutil_base64_binary.h</a>
<li>axutil_base64_binary_get_plain_binary()
: <a class="el" href="group__axutil__base64__binary.html#gaba8514ab627d46d5bd4ca28471620c3">axutil_base64_binary.h</a>
<li>axutil_base64_binary_set_encoded_binary()
: <a class="el" href="group__axutil__base64__binary.html#g86b05bf454e80645877f1a55d55b5150">axutil_base64_binary.h</a>
<li>axutil_base64_binary_set_plain_binary()
: <a class="el" href="group__axutil__base64__binary.html#gff50faa77b39aa4f87d72427a2c090b2">axutil_base64_binary.h</a>
<li>axutil_date_time_compare()
: <a class="el" href="group__axutil__date__time.html#g325f00cb4ca6034f6f5eb518d86e2762">axutil_date_time.h</a>
<li>axutil_date_time_create()
: <a class="el" href="group__axutil__date__time.html#g0ee93dfad91aee27df47dfea472273c8">axutil_date_time.h</a>
<li>axutil_date_time_deserialize_date()
: <a class="el" href="group__axutil__date__time.html#g41eaf8f9265a60efd098ac335e89cb0c">axutil_date_time.h</a>
<li>axutil_date_time_deserialize_date_time()
: <a class="el" href="group__axutil__date__time.html#g90dabd89b0fd6ecf8ea512d748276e25">axutil_date_time.h</a>
<li>axutil_date_time_deserialize_time()
: <a class="el" href="group__axutil__date__time.html#g7e5fb45f3ddfccdbb4a22f27d07f6c58">axutil_date_time.h</a>
<li>axutil_date_time_free()
: <a class="el" href="group__axutil__date__time.html#gbb52288b98f13be3abf56d29248503cf">axutil_date_time.h</a>
<li>axutil_date_time_get_date()
: <a class="el" href="group__axutil__date__time.html#g7f852dcbdfad79040077482406e5f0ad">axutil_date_time.h</a>
<li>axutil_date_time_get_hour()
: <a class="el" href="group__axutil__date__time.html#g709d3af760c962dc1e69b8e7f821ab70">axutil_date_time.h</a>
<li>axutil_date_time_get_minute()
: <a class="el" href="group__axutil__date__time.html#gb90d270ad77e3ad9b2dd7ed4e0120a63">axutil_date_time.h</a>
<li>axutil_date_time_get_month()
: <a class="el" href="group__axutil__date__time.html#ga444d7cd64986d34e38f60f2e30aa67d">axutil_date_time.h</a>
<li>axutil_date_time_get_second()
: <a class="el" href="group__axutil__date__time.html#g36782202dd7f88a864f748649b3dff6b">axutil_date_time.h</a>
<li>axutil_date_time_get_year()
: <a class="el" href="group__axutil__date__time.html#g0004b9c5cc5e1a1a5b3e3f517a7fcde5">axutil_date_time.h</a>
<li>axutil_date_time_serialize_date()
: <a class="el" href="group__axutil__date__time.html#ga098865ec9b787dd25530c99f22b86e0">axutil_date_time.h</a>
<li>axutil_date_time_serialize_date_time()
: <a class="el" href="group__axutil__date__time.html#g23bc467a35485b46ccf1ae91a8f63016">axutil_date_time.h</a>
<li>axutil_date_time_serialize_date_time_without_millisecond()
: <a class="el" href="group__axutil__date__time.html#g13442224f7ef0eec0c3bc37f58abd3de">axutil_date_time.h</a>
<li>axutil_date_time_serialize_time()
: <a class="el" href="group__axutil__date__time.html#gad77bd48f8d22855617fc1678c08e8ad">axutil_date_time.h</a>
<li>axutil_date_time_set_date_time()
: <a class="el" href="group__axutil__date__time.html#g5f6d46804df89a05c8c4c6b5b97e47a3">axutil_date_time.h</a>
<li>axutil_digest_calc_get_h_a1()
: <a class="el" href="group__axutil__digest__calc.html#g0d599c73edbb99c815d66eeb05963819">axutil_digest_calc.h</a>
<li>axutil_digest_calc_get_response()
: <a class="el" href="group__axutil__digest__calc.html#gd999fb9474238370afa302882165bd24">axutil_digest_calc.h</a>
<li>axutil_dll_desc_create()
: <a class="el" href="group__axutil__dll__desc.html#gbf1b06f952b42a8d5d0fe9bed8796e56">axutil_dll_desc.h</a>
<li>axutil_dll_desc_create_platform_specific_dll_name()
: <a class="el" href="group__axutil__dll__desc.html#gfdf636b3093ced193bc8f78a59deb30a">axutil_dll_desc.h</a>
<li>axutil_dll_desc_get_name()
: <a class="el" href="group__axutil__dll__desc.html#g937e56d905ae2b6b342500c3a19c5486">axutil_dll_desc.h</a>
<li>axutil_dll_desc_set_name()
: <a class="el" href="group__axutil__dll__desc.html#g4253aba362259ccde18fd2ea632eddd7">axutil_dll_desc.h</a>
<li>axutil_env_check_status()
: <a class="el" href="group__axutil__env.html#g14eb39c983da990a3cdc5d2505a3ab31">axutil_env.h</a>
<li>axutil_env_create()
: <a class="el" href="group__axutil__env.html#g136fef9fc5d4e435f40a0949375d324d">axutil_env.h</a>
<li>axutil_env_create_all()
: <a class="el" href="group__axutil__env.html#g2dc8a2c80be26e619410e196725a9599">axutil_env.h</a>
<li>axutil_env_create_with_error()
: <a class="el" href="group__axutil__env.html#gbab7fef475986db1dfcf5c3cec7e5b6b">axutil_env.h</a>
<li>axutil_env_create_with_error_log()
: <a class="el" href="group__axutil__env.html#g69b71ca4f32dffb546a225e8f018256e">axutil_env.h</a>
<li>axutil_env_create_with_error_log_thread_pool()
: <a class="el" href="group__axutil__env.html#g354311dd06dcbb5cb4e2d6ec2532e8a6">axutil_env.h</a>
<li>axutil_env_enable_log()
: <a class="el" href="group__axutil__env.html#g3a5d8481e405b8b63bd05df9b33b9ccd">axutil_env.h</a>
<li>axutil_env_free()
: <a class="el" href="group__axutil__env.html#g35511f188ef8470bec29c255e84217db">axutil_env.h</a>
<li>axutil_env_free_masked()
: <a class="el" href="group__axutil__env.html#g538c867378b066cd37390a8a0589f6cb">axutil_env.h</a>
<li>axutil_env_increment_ref()
: <a class="el" href="group__axutil__env.html#g5ea411964e441ce76a071a1ac3a08a78">axutil_env.h</a>
<li>axutil_free_thread_env()
: <a class="el" href="group__axutil__thread__pool.html#g86828fbfa2efa9e9f864fad6fccfee11">axutil_thread_pool.h</a>
<li>axutil_hash_contains_key()
: <a class="el" href="group__axutil__hash.html#g56cd2ac6c7addaf693c820abe1d180f5">axutil_hash.h</a>
<li>axutil_hash_copy()
: <a class="el" href="group__axutil__hash.html#g816156cbb7a006f8cd83cf25397c1bda">axutil_hash.h</a>
<li>axutil_hash_count()
: <a class="el" href="group__axutil__hash.html#ga6cd5c55cdad46b0b9d3133ff77ed314">axutil_hash.h</a>
<li>axutil_hash_first()
: <a class="el" href="group__axutil__hash.html#g99452fb3f68e592c7f64286c10b75426">axutil_hash.h</a>
<li>axutil_hash_free()
: <a class="el" href="group__axutil__hash.html#ge49a13a2adc0881ffdd7f69c6459b949">axutil_hash.h</a>
<li>axutil_hash_free_void_arg()
: <a class="el" href="group__axutil__hash.html#g8eb012f8273cfcda84f562dc31385270">axutil_hash.h</a>
<li>axutil_hash_get()
: <a class="el" href="group__axutil__hash.html#gc9571a63cb988174c01e18634f9a93bb">axutil_hash.h</a>
<li>axutil_hash_make()
: <a class="el" href="group__axutil__hash.html#g8acab6f89243f53723665aab71e5e945">axutil_hash.h</a>
<li>axutil_hash_make_custom()
: <a class="el" href="group__axutil__hash.html#gc97083ad0e5a219bfd47666ec718e66b">axutil_hash.h</a>
<li>axutil_hash_merge()
: <a class="el" href="group__axutil__hash.html#g146257867c0be68eedae4ef822d4d341">axutil_hash.h</a>
<li>axutil_hash_next()
: <a class="el" href="group__axutil__hash.html#gf273ceaf30433b5bef16fe389afbb3e9">axutil_hash.h</a>
<li>axutil_hash_overlay()
: <a class="el" href="group__axutil__hash.html#g868c52ba2d5ffc3aae86b68f5fc772a7">axutil_hash.h</a>
<li>axutil_hash_set()
: <a class="el" href="group__axutil__hash.html#gdd1a3888b91267e2fc5f84293ec56002">axutil_hash.h</a>
<li>axutil_hash_this()
: <a class="el" href="group__axutil__hash.html#ga6297355c83ada8f228ab1d6f46e3b50">axutil_hash.h</a>
<li>axutil_hashfunc_default()
: <a class="el" href="group__axutil__hash.html#g7cf05c040bc742d2477ee525d422c674">axutil_hash.h</a>
<li>axutil_http_chunked_stream_create()
: <a class="el" href="group__axutil__http__chunked__stream.html#gdb1279ececa520dfa7ebd40a54f5fc26">axutil_http_chunked_stream.h</a>
<li>axutil_http_chunked_stream_free()
: <a class="el" href="group__axutil__http__chunked__stream.html#gad093be0fb9f42e204234812c6bbcb34">axutil_http_chunked_stream.h</a>
<li>axutil_http_chunked_stream_get_current_chunk_size()
: <a class="el" href="group__axutil__http__chunked__stream.html#g26d8808871536023926a5ef46233fb45">axutil_http_chunked_stream.h</a>
<li>axutil_http_chunked_stream_read()
: <a class="el" href="group__axutil__http__chunked__stream.html#g5757665e6c5f81846dde7f69fa0a5413">axutil_http_chunked_stream.h</a>
<li>axutil_http_chunked_stream_write()
: <a class="el" href="group__axutil__http__chunked__stream.html#g4c48a899b5d7f16cdac71e98a04c86d2">axutil_http_chunked_stream.h</a>
<li>axutil_http_chunked_stream_write_last_chunk()
: <a class="el" href="group__axutil__http__chunked__stream.html#g517ddae95767dd642b1e79151c68f031">axutil_http_chunked_stream.h</a>
<li>axutil_init_thread_env()
: <a class="el" href="group__axutil__thread__pool.html#gbc008925cad197747506eb338fd26b1f">axutil_thread_pool.h</a>
<li>axutil_linked_list_add()
: <a class="el" href="group__axutil__linked__list.html#g0084179ae23ffb3b65f0345933aaacf3">axutil_linked_list.h</a>
<li>axutil_linked_list_add_at_index()
: <a class="el" href="group__axutil__linked__list.html#gde56abab810e3643547facceb1858c8b">axutil_linked_list.h</a>
<li>axutil_linked_list_add_first()
: <a class="el" href="group__axutil__linked__list.html#g8b4efcdc1364da7880fb40603f4925d8">axutil_linked_list.h</a>
<li>axutil_linked_list_add_last()
: <a class="el" href="group__axutil__linked__list.html#g44b716389b3a40e79a4dae6700ae2b24">axutil_linked_list.h</a>
<li>axutil_linked_list_check_bounds_exclusive()
: <a class="el" href="group__axutil__linked__list.html#g7f24198b995b898be3265a181b3c8457">axutil_linked_list.h</a>
<li>axutil_linked_list_check_bounds_inclusive()
: <a class="el" href="group__axutil__linked__list.html#g44c386ea5a8baf8bc1574b6a6b42e454">axutil_linked_list.h</a>
<li>axutil_linked_list_clear()
: <a class="el" href="group__axutil__linked__list.html#g02d3d806618b29e546e6b99b451bdc5f">axutil_linked_list.h</a>
<li>axutil_linked_list_contains()
: <a class="el" href="group__axutil__linked__list.html#g0382c1da7f8f02d41a6c8993800af85b">axutil_linked_list.h</a>
<li>axutil_linked_list_create()
: <a class="el" href="group__axutil__linked__list.html#g243e4777c89d6e52552208c96f343323">axutil_linked_list.h</a>
<li>axutil_linked_list_get()
: <a class="el" href="group__axutil__linked__list.html#g2070ee8b2583d38a8dfe619c02698e7a">axutil_linked_list.h</a>
<li>axutil_linked_list_get_entry()
: <a class="el" href="group__axutil__linked__list.html#g2d5024ce7b59b66e82978f8ca0c74a06">axutil_linked_list.h</a>
<li>axutil_linked_list_get_first()
: <a class="el" href="group__axutil__linked__list.html#g44896e7785095b36bed80d7c0b438a1a">axutil_linked_list.h</a>
<li>axutil_linked_list_get_last()
: <a class="el" href="group__axutil__linked__list.html#gacdf3f19dc61bf262c5e25e1dd3ed5fa">axutil_linked_list.h</a>
<li>axutil_linked_list_index_of()
: <a class="el" href="group__axutil__linked__list.html#gfeae08bd167aff16b4a56dfd7aa5d336">axutil_linked_list.h</a>
<li>axutil_linked_list_last_index_of()
: <a class="el" href="group__axutil__linked__list.html#g9613b65e8b1f91c6a7ed5c3e2befa312">axutil_linked_list.h</a>
<li>axutil_linked_list_remove()
: <a class="el" href="group__axutil__linked__list.html#ga595fa9b25737e98268cababb5a23ccd">axutil_linked_list.h</a>
<li>axutil_linked_list_remove_at_index()
: <a class="el" href="group__axutil__linked__list.html#g2c79f16cebb8e5cb1bdc55f5c83952da">axutil_linked_list.h</a>
<li>axutil_linked_list_remove_entry()
: <a class="el" href="group__axutil__linked__list.html#ge16515ceea10d7cc07f34eb9e1a5d37a">axutil_linked_list.h</a>
<li>axutil_linked_list_remove_first()
: <a class="el" href="group__axutil__linked__list.html#gfc28d2d0a4f2f1adffde51c2d8182779">axutil_linked_list.h</a>
<li>axutil_linked_list_remove_last()
: <a class="el" href="group__axutil__linked__list.html#g275168372eb9ef197be1565946651a2c">axutil_linked_list.h</a>
<li>axutil_linked_list_set()
: <a class="el" href="group__axutil__linked__list.html#g797df541c887e4e30c6523d37149bf88">axutil_linked_list.h</a>
<li>axutil_linked_list_size()
: <a class="el" href="group__axutil__linked__list.html#g29f7df9bfa28df5111de92e7af0b8f7b">axutil_linked_list.h</a>
<li>axutil_linked_list_to_array()
: <a class="el" href="group__axutil__linked__list.html#g4072abee56f46a98d34b66d8b41bea85">axutil_linked_list.h</a>
<li>axutil_md5()
: <a class="el" href="group__axutil__md5.html#g9e7aead74d8d68f3d8f8177d17239da0">axutil_md5.h</a>
<li>axutil_md5_ctx_create()
: <a class="el" href="group__axutil__md5.html#gb1b0077f4d73b00f536914cf44b81437">axutil_md5.h</a>
<li>axutil_md5_ctx_free()
: <a class="el" href="group__axutil__md5.html#g15ae76fd76cb90f4325f88fcf34ea754">axutil_md5.h</a>
<li>axutil_md5_final()
: <a class="el" href="group__axutil__md5.html#g7954e033ab5182e623ade60ae1f7051f">axutil_md5.h</a>
<li>axutil_md5_update()
: <a class="el" href="group__axutil__md5.html#g4376674b24f5e755fef8113029600a58">axutil_md5.h</a>
<li>axutil_param_container_add_param()
: <a class="el" href="group__axutil__param__container.html#g9a877505574102079a55cbdb6aae06fd">axutil_param_container.h</a>
<li>axutil_param_container_create()
: <a class="el" href="group__axutil__param__container.html#g6bddcede7bd592f0f22bd03bdf2ecd32">axutil_param_container.h</a>
<li>axutil_param_container_free()
: <a class="el" href="group__axutil__param__container.html#g8da05e09f9c6144927118bb7d7e0b53e">axutil_param_container.h</a>
<li>axutil_param_container_free_void_arg()
: <a class="el" href="group__axutil__param__container.html#ge74cdd6e7cb30d2617d806899b7209c7">axutil_param_container.h</a>
<li>axutil_param_container_get_param()
: <a class="el" href="group__axutil__param__container.html#g0be3762df4b647179952763acbe0c272">axutil_param_container.h</a>
<li>axutil_param_container_get_params()
: <a class="el" href="group__axutil__param__container.html#geb219d10e4cff60dde4b8af15548d13a">axutil_param_container.h</a>
<li>axutil_param_container_is_param_locked()
: <a class="el" href="group__axutil__param__container.html#g7b92618a34e898b748abd9ad5312d5b8">axutil_param_container.h</a>
<li>axutil_param_create()
: <a class="el" href="group__axutil__param.html#g9653106fd7e6c73b77388ebb86e67deb">axutil_param.h</a>
<li>axutil_param_get_name()
: <a class="el" href="group__axutil__param.html#geba7fcf049dcead1054b92d93e83835d">axutil_param.h</a>
<li>axutil_param_get_param_type()
: <a class="el" href="group__axutil__param.html#g5fd6c7f443ffcf002cc042c3aca0b276">axutil_param.h</a>
<li>axutil_param_get_value()
: <a class="el" href="group__axutil__param.html#gbe8ba6300e567a0437e0c66dbcdbe729">axutil_param.h</a>
<li>axutil_param_is_locked()
: <a class="el" href="group__axutil__param.html#g9196d434bed17f0b351addbb46e784d8">axutil_param.h</a>
<li>axutil_param_set_locked()
: <a class="el" href="group__axutil__param.html#g970029b6a857fd5c0ec6cd92561b2803">axutil_param.h</a>
<li>axutil_param_set_name()
: <a class="el" href="group__axutil__param.html#gf67948fa2fd421b2d41ff4661f7cfd81">axutil_param.h</a>
<li>axutil_param_set_value()
: <a class="el" href="group__axutil__param.html#g34fd69866c83a371ecc43be5e1c8627e">axutil_param.h</a>
<li>axutil_parse_request_url_for_svc_and_op()
: <a class="el" href="group__axutil__utils.html#ge45e1f5b083cce22b4a19f2376ae534a">axutil_utils.h</a>
<li>axutil_parse_rest_url_for_params()
: <a class="el" href="group__axutil__utils.html#g45760bfc8d8cf44f072c3a3fff0656db">axutil_utils.h</a>
<li>axutil_qname_clone()
: <a class="el" href="group__axutil__qname.html#g2f085b6bb1bb492f5dab48f14d5c544d">axutil_qname.h</a>
<li>axutil_qname_create()
: <a class="el" href="group__axutil__qname.html#gf2494bb225ee6ca4fd80641e5c8f30b5">axutil_qname.h</a>
<li>axutil_qname_create_from_string()
: <a class="el" href="group__axutil__qname.html#gf1f907c61c777c414eccd333e4947b44">axutil_qname.h</a>
<li>axutil_qname_equals()
: <a class="el" href="group__axutil__qname.html#g1c9a3b98ac4a0f1dd0b323f4c118c2f4">axutil_qname.h</a>
<li>axutil_qname_free()
: <a class="el" href="group__axutil__qname.html#gb04bf5c012c622e6c4fcd244a26f934c">axutil_qname.h</a>
<li>axutil_qname_to_string()
: <a class="el" href="group__axutil__qname.html#gce05f5dabf88994e7ae8b3bf46fa968e">axutil_qname.h</a>
<li>axutil_rand()
: <a class="el" href="group__axutil__rand.html#g928a5beaf5c048d213b71ac49bef82b0">axutil_rand.h</a>
<li>axutil_rand_get_seed_value_based_on_time()
: <a class="el" href="group__axutil__rand.html#ge538ffc1401b35cac57c8573a860db0e">axutil_rand.h</a>
<li>axutil_rand_with_range()
: <a class="el" href="group__axutil__rand.html#gc3ab8d15d9b62a720c6a2b423ea578eb">axutil_rand.h</a>
<li>axutil_stack_free()
: <a class="el" href="group__axis2__util__stack.html#g53a011812b6cf0955195e17473e75297">axutil_stack.h</a>
<li>axutil_stack_get()
: <a class="el" href="group__axis2__util__stack.html#gd20eebb41e7cca8b6eba7de3c12b6229">axutil_stack.h</a>
<li>axutil_thread_create()
: <a class="el" href="group__axutil__thread.html#g1f4f964a275cb3274a110985c0521599">axutil_thread.h</a>
<li>axutil_thread_detach()
: <a class="el" href="group__axutil__thread.html#gf80d1cd64a4f888588f502bb836ace47">axutil_thread.h</a>
<li>axutil_thread_exit()
: <a class="el" href="group__axutil__thread.html#gce2c40eabd0a117145610897e3b0b350">axutil_thread.h</a>
<li>axutil_thread_join()
: <a class="el" href="group__axutil__thread.html#g4503fd95978af26c67875430c4cf11d9">axutil_thread.h</a>
<li>axutil_thread_mutex_create()
: <a class="el" href="group__axutil__thread.html#gcab265f8a3be8ef7c20442a3c5bccd67">axutil_thread.h</a>
<li>axutil_thread_mutex_destroy()
: <a class="el" href="group__axutil__thread.html#g7e441c4b47fe4466ff385e396258ead3">axutil_thread.h</a>
<li>axutil_thread_mutex_lock()
: <a class="el" href="group__axutil__thread.html#g7f987573535cf90ba67b2b2ae047ee46">axutil_thread.h</a>
<li>axutil_thread_mutex_trylock()
: <a class="el" href="group__axutil__thread.html#ga050c6ecf8209ba57ea8ec79330632bb">axutil_thread.h</a>
<li>axutil_thread_mutex_unlock()
: <a class="el" href="group__axutil__thread.html#gd275462277abb24342d1b69967ba79b4">axutil_thread.h</a>
<li>axutil_thread_once()
: <a class="el" href="group__axutil__thread.html#ga79f8c61310cfb8b6d6f3a9183114995">axutil_thread.h</a>
<li>axutil_thread_once_init()
: <a class="el" href="group__axutil__thread.html#gac95e6a2e2106ff72daa1ca244286890">axutil_thread.h</a>
<li>axutil_thread_pool_exit_thread()
: <a class="el" href="group__axutil__thread__pool.html#g4918b9dbaed331af5602f5a9e6ebb6ef">axutil_thread_pool.h</a>
<li>axutil_thread_pool_free()
: <a class="el" href="group__axutil__thread__pool.html#gc0cc0e6ac3ceae901d69907955be7c8f">axutil_thread_pool.h</a>
<li>axutil_thread_pool_get_thread()
: <a class="el" href="group__axutil__thread__pool.html#ge09dd79634b658499b98114aa41661c1">axutil_thread_pool.h</a>
<li>axutil_thread_pool_init()
: <a class="el" href="group__axutil__thread__pool.html#gfadbfea2d099917420634549da19444e">axutil_thread_pool.h</a>
<li>axutil_thread_pool_join_thread()
: <a class="el" href="group__axutil__thread__pool.html#g0ddd6d44254100fbbeb71db92112e7bd">axutil_thread_pool.h</a>
<li>axutil_thread_pool_thread_detach()
: <a class="el" href="group__axutil__thread__pool.html#ga9a805c61ea2a61f0d92f2d298ea9fa1">axutil_thread_pool.h</a>
<li>axutil_thread_yield()
: <a class="el" href="group__axutil__thread.html#gb260d86a99c9c7af7ae632fb99c59106">axutil_thread.h</a>
<li>axutil_threadattr_create()
: <a class="el" href="group__axutil__thread.html#g6b8cf75c5b88d3389e3b9ea6f5371101">axutil_thread.h</a>
<li>axutil_threadattr_detach_set()
: <a class="el" href="group__axutil__thread.html#g64df222946d03707ee4c00164d7f567a">axutil_thread.h</a>
<li>axutil_threadattr_is_detach()
: <a class="el" href="group__axutil__thread.html#ga27f549c32aa22df6c911fc565624d52">axutil_thread.h</a>
<li>axutil_uri_create()
: <a class="el" href="group__axutil__uri.html#g935c3b7a98e6a20f2020ab3369da88e5">axutil_uri.h</a>
<li>axutil_uri_get_fragment()
: <a class="el" href="group__axutil__uri.html#g854544404e22e40fc10e470c24273286">axutil_uri.h</a>
<li>axutil_uri_get_host()
: <a class="el" href="group__axutil__uri.html#gaec4183fc0c510ca0e2a2038d6ed4a8d">axutil_uri.h</a>
<li>axutil_uri_get_path()
: <a class="el" href="group__axutil__uri.html#g6f187b6adfd0e2b46b63214cb29ed45a">axutil_uri.h</a>
<li>axutil_uri_get_protocol()
: <a class="el" href="group__axutil__uri.html#g7f474fba8db7111c30a4cc5878b09b09">axutil_uri.h</a>
<li>axutil_uri_get_query()
: <a class="el" href="group__axutil__uri.html#gc967a6e1c1b5193f500f0af22506ecaa">axutil_uri.h</a>
<li>axutil_uri_get_server()
: <a class="el" href="group__axutil__uri.html#gce1f53b8049d45a7964ea893edcef747">axutil_uri.h</a>
<li>axutil_uri_parse_hostinfo()
: <a class="el" href="group__axutil__uri.html#g7ae7fb761871229bea556e730c092eea">axutil_uri.h</a>
<li>axutil_uri_parse_relative()
: <a class="el" href="group__axutil__uri.html#gb1f06713caf077056cf82e14dddb3f6b">axutil_uri.h</a>
<li>axutil_uri_parse_string()
: <a class="el" href="group__axutil__uri.html#g89c8721392b5307aa708bd0581cc6f87">axutil_uri.h</a>
<li>axutil_uri_port_of_scheme()
: <a class="el" href="group__axutil__uri.html#gdf1a3e50e6387fafd45b14e1aa0f8208">axutil_uri.h</a>
<li>axutil_uri_resolve_relative()
: <a class="el" href="group__axutil__uri.html#g57054f49c2c3615b1205fa4702aab1a4">axutil_uri.h</a>
<li>axutil_uri_to_string()
: <a class="el" href="group__axutil__uri.html#g9b9e291fb2de237b1ea16e1446cb4ef9">axutil_uri.h</a>
<li>axutil_xml_quote_string()
: <a class="el" href="group__axutil__utils.html#gdeee972b9ba0969828084e2000786873">axutil_utils.h</a>
</ul>
<hr size="1"><address style="text-align: right;"><small>Generated on Fri Apr 17 11:49:48 2009 for Axis2/C by&nbsp;
<a href="http://www.doxygen.org/index.html">
<img src="doxygen.png" alt="doxygen" align="middle" border="0"></a> 1.5.3 </small></address>
</body>
</html>


<|start_filename|>xdocs/api/html/group__axiom__xpath__api.html<|end_filename|>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html><head><meta http-equiv="Content-Type" content="text/html;charset=UTF-8">
<title>Axis2/C: api</title>
<link href="doxygen.css" rel="stylesheet" type="text/css">
<link href="tabs.css" rel="stylesheet" type="text/css">
</head><body>
<!-- Generated by Doxygen 1.5.3 -->
<div class="tabs">
  <ul>
    <li><a href="index.html"><span>Main&nbsp;Page</span></a></li>
    <li><a href="modules.html"><span>Modules</span></a></li>
    <li><a href="annotated.html"><span>Classes</span></a></li>
    <li><a href="files.html"><span>Files</span></a></li>
    <li><a href="dirs.html"><span>Directories</span></a></li>
    <li><a href="pages.html"><span>Related&nbsp;Pages</span></a></li>
    <li><a href="examples.html"><span>Examples</span></a></li>
    <li>
      <form action="search.php" method="get">
        <table cellspacing="0" cellpadding="0" border="0">
          <tr>
            <td><label>&nbsp;<u>S</u>earch&nbsp;for&nbsp;</label></td>
            <td><input type="text" name="query" value="" size="20" accesskey="s"/></td>
          </tr>
        </table>
      </form>
    </li>
  </ul>
</div>
<h1>api</h1><table border="0" cellpadding="0" cellspacing="0">
<tr><td></td></tr>
<tr><td colspan="2"><br><h2>Classes</h2></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top">struct &nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="structaxiom__xpath__expression.html">axiom_xpath_expression</a></td></tr>

<tr><td class="memItemLeft" nowrap align="right" valign="top">struct &nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="structaxiom__xpath__context.html">axiom_xpath_context</a></td></tr>

<tr><td class="memItemLeft" nowrap align="right" valign="top">struct &nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="structaxiom__xpath__result.html">axiom_xpath_result</a></td></tr>

<tr><td class="memItemLeft" nowrap align="right" valign="top">struct &nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="structaxiom__xpath__result__node.html">axiom_xpath_result_node</a></td></tr>

<tr><td colspan="2"><br><h2>Defines</h2></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top">#define&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__axiom__xpath__api.html#g27553a5a92aa57f6fb905367f9e950a5">AXIOM_XPATH_DEBUG</a></td></tr>

<tr><td class="memItemLeft" nowrap align="right" valign="top">#define&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__axiom__xpath__api.html#g7a66629a5a092f0d5514c34d5575c753">AXIOM_XPATH_EVALUATION_ERROR</a>&nbsp;&nbsp;&nbsp;0</td></tr>

<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="g4a95eb72761a50fd76c58f61040dd703"></a><!-- doxytag: member="axiom_xpath_api::AXIOM_XPATH_ERROR_STREAMING_NOT_SUPPORTED" ref="g4a95eb72761a50fd76c58f61040dd703" args="" -->
#define&nbsp;</td><td class="memItemRight" valign="bottom"><b>AXIOM_XPATH_ERROR_STREAMING_NOT_SUPPORTED</b>&nbsp;&nbsp;&nbsp;10</td></tr>

<tr><td colspan="2"><br><h2>Typedefs</h2></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top">typedef struct <br>
<a class="el" href="structaxiom__xpath__expression.html">axiom_xpath_expression</a>&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__axiom__xpath__api.html#g064994aadf8d1c9a29e2be75a84bf0fe">axiom_xpath_expression_t</a></td></tr>

<tr><td class="memItemLeft" nowrap align="right" valign="top">typedef struct <br>
<a class="el" href="structaxiom__xpath__context.html">axiom_xpath_context</a>&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__axiom__xpath__api.html#g82ac95df86678723508c6b4fdda1febb">axiom_xpath_context_t</a></td></tr>

<tr><td class="memItemLeft" nowrap align="right" valign="top">typedef struct <br>
<a class="el" href="structaxiom__xpath__result.html">axiom_xpath_result</a>&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__axiom__xpath__api.html#gd3fd9cff34578fc31d6ebd4d594a87f7">axiom_xpath_result_t</a></td></tr>

<tr><td class="memItemLeft" nowrap align="right" valign="top">typedef struct <br>
<a class="el" href="structaxiom__xpath__result__node.html">axiom_xpath_result_node</a>&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__axiom__xpath__api.html#g3ee61d21a66efdb14f7609b79e7c0002">axiom_xpath_result_node_t</a></td></tr>

<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="g38e64c9e22325dcc0750e0f32ef0417a"></a><!-- doxytag: member="axiom_xpath_api::axiom_xpath_function_t" ref="g38e64c9e22325dcc0750e0f32ef0417a" args=")(axiom_xpath_context_t *context, int np)" -->
typedef int(*&nbsp;</td><td class="memItemRight" valign="bottom"><b>axiom_xpath_function_t</b> )(<a class="el" href="structaxiom__xpath__context.html">axiom_xpath_context_t</a> *context, int np)</td></tr>

<tr><td colspan="2"><br><h2>Enumerations</h2></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top">enum &nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__axiom__xpath__api.html#gc71f49207aafbf3bc545c23a8f094c6f">axiom_xpath_result_type_t</a> { <br>
&nbsp;&nbsp;<b>AXIOM_XPATH_TYPE_NODE</b> =  0, 
<b>AXIOM_XPATH_TYPE_ATTRIBUTE</b>, 
<b>AXIOM_XPATH_TYPE_NAMESPACE</b>, 
<b>AXIOM_XPATH_TYPE_TEXT</b>, 
<br>
&nbsp;&nbsp;<b>AXIOM_XPATH_TYPE_NUMBER</b>, 
<b>AXIOM_XPATH_TYPE_BOOLEAN</b>
<br>
 }</td></tr>

<tr><td colspan="2"><br><h2>Functions</h2></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top">AXIS2_EXTERN <br>
<a class="el" href="structaxiom__xpath__expression.html">axiom_xpath_expression_t</a> *&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__axiom__xpath__api.html#g34b8a60579233870162ebf5d416dc3ac">axiom_xpath_compile_expression</a> (const <a class="el" href="structaxutil__env.html">axutil_env_t</a> *env, const axis2_char_t *xpath_expr)</td></tr>

<tr><td class="memItemLeft" nowrap align="right" valign="top">AXIS2_EXTERN <br>
<a class="el" href="structaxiom__xpath__context.html">axiom_xpath_context_t</a> *&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__axiom__xpath__api.html#g9835edaade1499c3f3f22a1028e841ff">axiom_xpath_context_create</a> (const <a class="el" href="structaxutil__env.html">axutil_env_t</a> *env, axiom_node_t *root_node)</td></tr>

<tr><td class="memItemLeft" nowrap align="right" valign="top">AXIS2_EXTERN <br>
<a class="el" href="structaxiom__xpath__result.html">axiom_xpath_result_t</a> *&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__axiom__xpath__api.html#g2012e8e16e51b0d9aec32d85ae12a61a">axiom_xpath_evaluate</a> (<a class="el" href="structaxiom__xpath__context.html">axiom_xpath_context_t</a> *context, <a class="el" href="structaxiom__xpath__expression.html">axiom_xpath_expression_t</a> *xpath_expr)</td></tr>

<tr><td class="memItemLeft" nowrap align="right" valign="top">AXIS2_EXTERN axis2_bool_t&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__axiom__xpath__api.html#gc2019dd703c5522ea3373e3e061ada47">axiom_xpath_cast_node_to_boolean</a> (const <a class="el" href="structaxutil__env.html">axutil_env_t</a> *env, <a class="el" href="structaxiom__xpath__result__node.html">axiom_xpath_result_node_t</a> *node)</td></tr>

<tr><td class="memItemLeft" nowrap align="right" valign="top">AXIS2_EXTERN double&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__axiom__xpath__api.html#ge9336d53cde0e884f5fb213b9df02674">axiom_xpath_cast_node_to_number</a> (const <a class="el" href="structaxutil__env.html">axutil_env_t</a> *env, <a class="el" href="structaxiom__xpath__result__node.html">axiom_xpath_result_node_t</a> *node)</td></tr>

<tr><td class="memItemLeft" nowrap align="right" valign="top">AXIS2_EXTERN <br>
axis2_char_t *&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__axiom__xpath__api.html#g326af499dbf89b48595f9f8464472488">axiom_xpath_cast_node_to_string</a> (const <a class="el" href="structaxutil__env.html">axutil_env_t</a> *env, <a class="el" href="structaxiom__xpath__result__node.html">axiom_xpath_result_node_t</a> *node)</td></tr>

<tr><td class="memItemLeft" nowrap align="right" valign="top">AXIS2_EXTERN <br>
axiom_node_t *&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__axiom__xpath__api.html#gff7f77f32a203e90418d1e920f5ab30d">axiom_xpath_cast_node_to_axiom_node</a> (const <a class="el" href="structaxutil__env.html">axutil_env_t</a> *env, <a class="el" href="structaxiom__xpath__result__node.html">axiom_xpath_result_node_t</a> *node)</td></tr>

<tr><td class="memItemLeft" nowrap align="right" valign="top">AXIS2_EXTERN void&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__axiom__xpath__api.html#g9c605179eff1ce688aeed2bb3a5a615f">axiom_xpath_free_context</a> (const <a class="el" href="structaxutil__env.html">axutil_env_t</a> *env, <a class="el" href="structaxiom__xpath__context.html">axiom_xpath_context_t</a> *context)</td></tr>

<tr><td class="memItemLeft" nowrap align="right" valign="top">AXIS2_EXTERN void&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__axiom__xpath__api.html#g5c75692634a5b8c50aa215838164873c">axiom_xpath_free_expression</a> (const <a class="el" href="structaxutil__env.html">axutil_env_t</a> *env, <a class="el" href="structaxiom__xpath__expression.html">axiom_xpath_expression_t</a> *xpath_expr)</td></tr>

<tr><td class="memItemLeft" nowrap align="right" valign="top">AXIS2_EXTERN void&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__axiom__xpath__api.html#gbce6df5e417ac892e3c472a9e8d9b159">axiom_xpath_free_result</a> (const <a class="el" href="structaxutil__env.html">axutil_env_t</a> *env, <a class="el" href="structaxiom__xpath__result.html">axiom_xpath_result_t</a> *result)</td></tr>

<tr><td class="memItemLeft" nowrap align="right" valign="top">AXIS2_EXTERN void&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__axiom__xpath__api.html#g521831b95af07a1d758870955e21ec46">axiom_xpath_register_namespace</a> (<a class="el" href="structaxiom__xpath__context.html">axiom_xpath_context_t</a> *context, axiom_namespace_t *ns)</td></tr>

<tr><td class="memItemLeft" nowrap align="right" valign="top">AXIS2_EXTERN <br>
axiom_namespace_t *&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__axiom__xpath__api.html#g81ba6657a1992f1b45a0930f7a413b68">axiom_xpath_get_namespace</a> (<a class="el" href="structaxiom__xpath__context.html">axiom_xpath_context_t</a> *context, axis2_char_t *prefix)</td></tr>

<tr><td class="memItemLeft" nowrap align="right" valign="top">AXIS2_EXTERN void&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__axiom__xpath__api.html#g3c28eba21a5183ab268021129d9cad12">axiom_xpath_clear_namespaces</a> (<a class="el" href="structaxiom__xpath__context.html">axiom_xpath_context_t</a> *context)</td></tr>

<tr><td class="memItemLeft" nowrap align="right" valign="top">AXIS2_EXTERN <br>
<a class="el" href="structaxiom__xpath__result.html">axiom_xpath_result_t</a> *&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__axiom__xpath__api.html#g1cd43a5e6fb152d14a218f923418f8d6">axiom_xpath_evaluate_streaming</a> (<a class="el" href="structaxiom__xpath__context.html">axiom_xpath_context_t</a> *context, <a class="el" href="structaxiom__xpath__expression.html">axiom_xpath_expression_t</a> *xpath_expr)</td></tr>

<tr><td class="memItemLeft" nowrap align="right" valign="top">AXIS2_EXTERN axis2_bool_t&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__axiom__xpath__api.html#g83c7017c40dd0977276b77d97cbff6a5">axiom_xpath_streaming_check</a> (const <a class="el" href="structaxutil__env.html">axutil_env_t</a> *env, <a class="el" href="structaxiom__xpath__expression.html">axiom_xpath_expression_t</a> *expr)</td></tr>

<tr><td class="memItemLeft" nowrap align="right" valign="top">AXIS2_EXTERN void&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__axiom__xpath__api.html#gaa194fb637ad142a32510933243ddda5">axiom_xpath_register_default_functions_set</a> (<a class="el" href="structaxiom__xpath__context.html">axiom_xpath_context_t</a> *context)</td></tr>

<tr><td class="memItemLeft" nowrap align="right" valign="top">AXIS2_EXTERN void&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__axiom__xpath__api.html#gb6cc87a2fa3c5adf9d7844d21e2f747b">axiom_xpath_register_function</a> (<a class="el" href="structaxiom__xpath__context.html">axiom_xpath_context_t</a> *context, axis2_char_t *name, axiom_xpath_function_t func)</td></tr>

<tr><td class="memItemLeft" nowrap align="right" valign="top">AXIS2_EXTERN <br>
axiom_xpath_function_t&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__axiom__xpath__api.html#g0cff83ae01a93dfd36978407b9895399">axiom_xpath_get_function</a> (<a class="el" href="structaxiom__xpath__context.html">axiom_xpath_context_t</a> *context, axis2_char_t *name)</td></tr>

</table>
<hr><h2>Define Documentation</h2>
<a class="anchor" name="g27553a5a92aa57f6fb905367f9e950a5"></a><!-- doxytag: member="axiom_xpath.h::AXIOM_XPATH_DEBUG" ref="g27553a5a92aa57f6fb905367f9e950a5" args="" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">#define AXIOM_XPATH_DEBUG          </td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
Enable tracing 
</div>
</div><p>
<a class="anchor" name="g7a66629a5a092f0d5514c34d5575c753"></a><!-- doxytag: member="axiom_xpath.h::AXIOM_XPATH_EVALUATION_ERROR" ref="g7a66629a5a092f0d5514c34d5575c753" args="" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">#define AXIOM_XPATH_EVALUATION_ERROR&nbsp;&nbsp;&nbsp;0          </td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
An error occured while evaluating the xpath expression 
</div>
</div><p>
<hr><h2>Typedef Documentation</h2>
<a class="anchor" name="g82ac95df86678723508c6b4fdda1febb"></a><!-- doxytag: member="axiom_xpath.h::axiom_xpath_context_t" ref="g82ac95df86678723508c6b4fdda1febb" args="" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">typedef struct <a class="el" href="structaxiom__xpath__context.html">axiom_xpath_context</a> <a class="el" href="structaxiom__xpath__context.html">axiom_xpath_context_t</a>          </td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
The XPath context Keeps a reference to the context node or attribute, XPath expression, environment and result set. 
</div>
</div><p>
<a class="anchor" name="g064994aadf8d1c9a29e2be75a84bf0fe"></a><!-- doxytag: member="axiom_xpath.h::axiom_xpath_expression_t" ref="g064994aadf8d1c9a29e2be75a84bf0fe" args="" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">typedef struct <a class="el" href="structaxiom__xpath__expression.html">axiom_xpath_expression</a> <a class="el" href="structaxiom__xpath__expression.html">axiom_xpath_expression_t</a>          </td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
XPath expression It includes the expression as a string and parsed data. 
</div>
</div><p>
<a class="anchor" name="g3ee61d21a66efdb14f7609b79e7c0002"></a><!-- doxytag: member="axiom_xpath.h::axiom_xpath_result_node_t" ref="g3ee61d21a66efdb14f7609b79e7c0002" args="" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">typedef struct <a class="el" href="structaxiom__xpath__result__node.html">axiom_xpath_result_node</a> <a class="el" href="structaxiom__xpath__result__node.html">axiom_xpath_result_node_t</a>          </td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
XPath result Stores type and value of the result. 
</div>
</div><p>
<a class="anchor" name="gd3fd9cff34578fc31d6ebd4d594a87f7"></a><!-- doxytag: member="axiom_xpath.h::axiom_xpath_result_t" ref="gd3fd9cff34578fc31d6ebd4d594a87f7" args="" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">typedef struct <a class="el" href="structaxiom__xpath__result.html">axiom_xpath_result</a> <a class="el" href="structaxiom__xpath__result.html">axiom_xpath_result_t</a>          </td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
XPath result set Contains the result set and other information such as whether the expression was evaluated successfully. 
</div>
</div><p>
<hr><h2>Enumeration Type Documentation</h2>
<a class="anchor" name="gc71f49207aafbf3bc545c23a8f094c6f"></a><!-- doxytag: member="axiom_xpath.h::axiom_xpath_result_type_t" ref="gc71f49207aafbf3bc545c23a8f094c6f" args="" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">enum <a class="el" href="group__axiom__xpath__api.html#gc71f49207aafbf3bc545c23a8f094c6f">axiom_xpath_result_type_t</a>          </td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
XPath result types 
</div>
</div><p>
<hr><h2>Function Documentation</h2>
<a class="anchor" name="gff7f77f32a203e90418d1e920f5ab30d"></a><!-- doxytag: member="axiom_xpath.h::axiom_xpath_cast_node_to_axiom_node" ref="gff7f77f32a203e90418d1e920f5ab30d" args="(const axutil_env_t *env, axiom_xpath_result_node_t *node)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">AXIS2_EXTERN axiom_node_t* axiom_xpath_cast_node_to_axiom_node           </td>
          <td>(</td>
          <td class="paramtype">const <a class="el" href="structaxutil__env.html">axutil_env_t</a> *&nbsp;</td>
          <td class="paramname"> <em>env</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype"><a class="el" href="structaxiom__xpath__result__node.html">axiom_xpath_result_node_t</a> *&nbsp;</td>
          <td class="paramname"> <em>node</em></td><td>&nbsp;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td><td width="100%"></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
Convert an XPath result to an axiom node. If the result is an axiom node it is returned and NULL otherwise.<p>
<dl compact><dt><b>Parameters:</b></dt><dd>
  <table border="0" cellspacing="2" cellpadding="0">
    <tr><td valign="top"></td><td valign="top"><em>env</em>&nbsp;</td><td>Environment must not be null </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>node</em>&nbsp;</td><td>A pointer to the XPath result </td></tr>
  </table>
</dl>
<dl class="return" compact><dt><b>Returns:</b></dt><dd>The axiom node. </dd></dl>

</div>
</div><p>
<a class="anchor" name="gc2019dd703c5522ea3373e3e061ada47"></a><!-- doxytag: member="axiom_xpath.h::axiom_xpath_cast_node_to_boolean" ref="gc2019dd703c5522ea3373e3e061ada47" args="(const axutil_env_t *env, axiom_xpath_result_node_t *node)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">AXIS2_EXTERN axis2_bool_t axiom_xpath_cast_node_to_boolean           </td>
          <td>(</td>
          <td class="paramtype">const <a class="el" href="structaxutil__env.html">axutil_env_t</a> *&nbsp;</td>
          <td class="paramname"> <em>env</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype"><a class="el" href="structaxiom__xpath__result__node.html">axiom_xpath_result_node_t</a> *&nbsp;</td>
          <td class="paramname"> <em>node</em></td><td>&nbsp;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td><td width="100%"></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
Convert an XPath result to a boolean. If the result is a boolean the value of it is returned. If the result is a number, AXIS2_TRUE is returned if the value is not equal to 0 and AXIS2_FALSE otherwise. Otherwise AXIS2_TRUE is returned if the result is not NULL and AXIS2_FALSE otherwise.<p>
<dl compact><dt><b>Parameters:</b></dt><dd>
  <table border="0" cellspacing="2" cellpadding="0">
    <tr><td valign="top"></td><td valign="top"><em>env</em>&nbsp;</td><td>Environment must not be null </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>node</em>&nbsp;</td><td>A pointer to the XPath result </td></tr>
  </table>
</dl>
<dl class="return" compact><dt><b>Returns:</b></dt><dd>The boolean value. </dd></dl>

</div>
</div><p>
<a class="anchor" name="ge9336d53cde0e884f5fb213b9df02674"></a><!-- doxytag: member="axiom_xpath.h::axiom_xpath_cast_node_to_number" ref="ge9336d53cde0e884f5fb213b9df02674" args="(const axutil_env_t *env, axiom_xpath_result_node_t *node)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">AXIS2_EXTERN double axiom_xpath_cast_node_to_number           </td>
          <td>(</td>
          <td class="paramtype">const <a class="el" href="structaxutil__env.html">axutil_env_t</a> *&nbsp;</td>
          <td class="paramname"> <em>env</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype"><a class="el" href="structaxiom__xpath__result__node.html">axiom_xpath_result_node_t</a> *&nbsp;</td>
          <td class="paramname"> <em>node</em></td><td>&nbsp;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td><td width="100%"></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
Convert an XPath result to a number. If the result is a boolean, 1 is returned if it's true and 0 otherwise. If the result is a number the value of it is returned. Otherwise AXIS2_TRUE is returned if the result is not NULL and AXIS2_FALSE otherwise.<p>
<dl compact><dt><b>Parameters:</b></dt><dd>
  <table border="0" cellspacing="2" cellpadding="0">
    <tr><td valign="top"></td><td valign="top"><em>env</em>&nbsp;</td><td>Environment must not be null </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>node</em>&nbsp;</td><td>A pointer to the XPath result </td></tr>
  </table>
</dl>
<dl class="return" compact><dt><b>Returns:</b></dt><dd>The numerical value. </dd></dl>

</div>
</div><p>
<a class="anchor" name="g326af499dbf89b48595f9f8464472488"></a><!-- doxytag: member="axiom_xpath.h::axiom_xpath_cast_node_to_string" ref="g326af499dbf89b48595f9f8464472488" args="(const axutil_env_t *env, axiom_xpath_result_node_t *node)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">AXIS2_EXTERN axis2_char_t* axiom_xpath_cast_node_to_string           </td>
          <td>(</td>
          <td class="paramtype">const <a class="el" href="structaxutil__env.html">axutil_env_t</a> *&nbsp;</td>
          <td class="paramname"> <em>env</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype"><a class="el" href="structaxiom__xpath__result__node.html">axiom_xpath_result_node_t</a> *&nbsp;</td>
          <td class="paramname"> <em>node</em></td><td>&nbsp;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td><td width="100%"></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
Convert an XPath result to text. If the result is a boolean, "true" is returned if it's true and "false" otherwise. If the result is a number the text representation of it is returned. If the result is a text the value of it is returned. If the result is an axiom node, the text value of it is returned If the result is an axiom attribue, the text value of it is returned<p>
<dl compact><dt><b>Parameters:</b></dt><dd>
  <table border="0" cellspacing="2" cellpadding="0">
    <tr><td valign="top"></td><td valign="top"><em>env</em>&nbsp;</td><td>Environment must not be null </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>node</em>&nbsp;</td><td>A pointer to the XPath result </td></tr>
  </table>
</dl>
<dl class="return" compact><dt><b>Returns:</b></dt><dd>The text value. </dd></dl>

</div>
</div><p>
<a class="anchor" name="g3c28eba21a5183ab268021129d9cad12"></a><!-- doxytag: member="axiom_xpath.h::axiom_xpath_clear_namespaces" ref="g3c28eba21a5183ab268021129d9cad12" args="(axiom_xpath_context_t *context)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">AXIS2_EXTERN void axiom_xpath_clear_namespaces           </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="structaxiom__xpath__context.html">axiom_xpath_context_t</a> *&nbsp;</td>
          <td class="paramname"> <em>context</em>          </td>
          <td>&nbsp;)&nbsp;</td>
          <td width="100%"></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
Clears all registered XPath namespaces<p>
<dl compact><dt><b>Parameters:</b></dt><dd>
  <table border="0" cellspacing="2" cellpadding="0">
    <tr><td valign="top"></td><td valign="top"><em>context</em>&nbsp;</td><td>XPath Context, must not be null </td></tr>
  </table>
</dl>

</div>
</div><p>
<a class="anchor" name="g34b8a60579233870162ebf5d416dc3ac"></a><!-- doxytag: member="axiom_xpath.h::axiom_xpath_compile_expression" ref="g34b8a60579233870162ebf5d416dc3ac" args="(const axutil_env_t *env, const axis2_char_t *xpath_expr)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">AXIS2_EXTERN <a class="el" href="structaxiom__xpath__expression.html">axiom_xpath_expression_t</a>* axiom_xpath_compile_expression           </td>
          <td>(</td>
          <td class="paramtype">const <a class="el" href="structaxutil__env.html">axutil_env_t</a> *&nbsp;</td>
          <td class="paramname"> <em>env</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const axis2_char_t *&nbsp;</td>
          <td class="paramname"> <em>xpath_expr</em></td><td>&nbsp;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td><td width="100%"></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
Compile an XPath expression<p>
<dl compact><dt><b>Parameters:</b></dt><dd>
  <table border="0" cellspacing="2" cellpadding="0">
    <tr><td valign="top"></td><td valign="top"><em>env</em>&nbsp;</td><td>Environment must not be null </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>xpath_expr</em>&nbsp;</td><td>A pointer to the XPath expression </td></tr>
  </table>
</dl>
<dl class="return" compact><dt><b>Returns:</b></dt><dd>The parsed XPath expression. Returns NULL if an error occured while parsing. </dd></dl>

</div>
</div><p>
<a class="anchor" name="g9835edaade1499c3f3f22a1028e841ff"></a><!-- doxytag: member="axiom_xpath.h::axiom_xpath_context_create" ref="g9835edaade1499c3f3f22a1028e841ff" args="(const axutil_env_t *env, axiom_node_t *root_node)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">AXIS2_EXTERN <a class="el" href="structaxiom__xpath__context.html">axiom_xpath_context_t</a>* axiom_xpath_context_create           </td>
          <td>(</td>
          <td class="paramtype">const <a class="el" href="structaxutil__env.html">axutil_env_t</a> *&nbsp;</td>
          <td class="paramname"> <em>env</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">axiom_node_t *&nbsp;</td>
          <td class="paramname"> <em>root_node</em></td><td>&nbsp;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td><td width="100%"></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
Create an empty XPath context<p>
<dl compact><dt><b>Parameters:</b></dt><dd>
  <table border="0" cellspacing="2" cellpadding="0">
    <tr><td valign="top"></td><td valign="top"><em>env</em>&nbsp;</td><td>Environment must not be null </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>root_node</em>&nbsp;</td><td>A pointer to the root of the tree </td></tr>
  </table>
</dl>
<dl class="return" compact><dt><b>Returns:</b></dt><dd>The initialized XPath context. </dd></dl>

</div>
</div><p>
<a class="anchor" name="g2012e8e16e51b0d9aec32d85ae12a61a"></a><!-- doxytag: member="axiom_xpath.h::axiom_xpath_evaluate" ref="g2012e8e16e51b0d9aec32d85ae12a61a" args="(axiom_xpath_context_t *context, axiom_xpath_expression_t *xpath_expr)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">AXIS2_EXTERN <a class="el" href="structaxiom__xpath__result.html">axiom_xpath_result_t</a>* axiom_xpath_evaluate           </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="structaxiom__xpath__context.html">axiom_xpath_context_t</a> *&nbsp;</td>
          <td class="paramname"> <em>context</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype"><a class="el" href="structaxiom__xpath__expression.html">axiom_xpath_expression_t</a> *&nbsp;</td>
          <td class="paramname"> <em>xpath_expr</em></td><td>&nbsp;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td><td width="100%"></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
Evaluate an parsed XPath expression. Different expressions could be evaluated on the same context, and same expression could be evaluated on multiple trees without recompiling.<p>
<dl compact><dt><b>Parameters:</b></dt><dd>
  <table border="0" cellspacing="2" cellpadding="0">
    <tr><td valign="top"></td><td valign="top"><em>context</em>&nbsp;</td><td>XPath context must not be null </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>xpath_expr</em>&nbsp;</td><td>XPath expression to be evaluated </td></tr>
  </table>
</dl>
<dl class="return" compact><dt><b>Returns:</b></dt><dd>The set of results. </dd></dl>

</div>
</div><p>
<a class="anchor" name="g1cd43a5e6fb152d14a218f923418f8d6"></a><!-- doxytag: member="axiom_xpath.h::axiom_xpath_evaluate_streaming" ref="g1cd43a5e6fb152d14a218f923418f8d6" args="(axiom_xpath_context_t *context, axiom_xpath_expression_t *xpath_expr)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">AXIS2_EXTERN <a class="el" href="structaxiom__xpath__result.html">axiom_xpath_result_t</a>* axiom_xpath_evaluate_streaming           </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="structaxiom__xpath__context.html">axiom_xpath_context_t</a> *&nbsp;</td>
          <td class="paramname"> <em>context</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype"><a class="el" href="structaxiom__xpath__expression.html">axiom_xpath_expression_t</a> *&nbsp;</td>
          <td class="paramname"> <em>xpath_expr</em></td><td>&nbsp;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td><td width="100%"></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
Evaluates an XPath expression on streaming XML. Not all expressions can be evaluated on streaming XML. If the expression cannot be evaluated on streaming XML NULL will be returned.<p>
<dl compact><dt><b>Parameters:</b></dt><dd>
  <table border="0" cellspacing="2" cellpadding="0">
    <tr><td valign="top"></td><td valign="top"><em>context</em>&nbsp;</td><td>XPath Context, must not be null </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>xpath_expr</em>&nbsp;</td><td>XPath expression to be evaluated </td></tr>
  </table>
</dl>

</div>
</div><p>
<a class="anchor" name="g9c605179eff1ce688aeed2bb3a5a615f"></a><!-- doxytag: member="axiom_xpath.h::axiom_xpath_free_context" ref="g9c605179eff1ce688aeed2bb3a5a615f" args="(const axutil_env_t *env, axiom_xpath_context_t *context)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">AXIS2_EXTERN void axiom_xpath_free_context           </td>
          <td>(</td>
          <td class="paramtype">const <a class="el" href="structaxutil__env.html">axutil_env_t</a> *&nbsp;</td>
          <td class="paramname"> <em>env</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype"><a class="el" href="structaxiom__xpath__context.html">axiom_xpath_context_t</a> *&nbsp;</td>
          <td class="paramname"> <em>context</em></td><td>&nbsp;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td><td width="100%"></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
Free XPath context<p>
<dl compact><dt><b>Parameters:</b></dt><dd>
  <table border="0" cellspacing="2" cellpadding="0">
    <tr><td valign="top"></td><td valign="top"><em>env</em>&nbsp;</td><td>Environment must not be null </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>context</em>&nbsp;</td><td>XPath context must not be null </td></tr>
  </table>
</dl>

</div>
</div><p>
<a class="anchor" name="g5c75692634a5b8c50aa215838164873c"></a><!-- doxytag: member="axiom_xpath.h::axiom_xpath_free_expression" ref="g5c75692634a5b8c50aa215838164873c" args="(const axutil_env_t *env, axiom_xpath_expression_t *xpath_expr)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">AXIS2_EXTERN void axiom_xpath_free_expression           </td>
          <td>(</td>
          <td class="paramtype">const <a class="el" href="structaxutil__env.html">axutil_env_t</a> *&nbsp;</td>
          <td class="paramname"> <em>env</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype"><a class="el" href="structaxiom__xpath__expression.html">axiom_xpath_expression_t</a> *&nbsp;</td>
          <td class="paramname"> <em>xpath_expr</em></td><td>&nbsp;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td><td width="100%"></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
Free XPath expression<p>
<dl compact><dt><b>Parameters:</b></dt><dd>
  <table border="0" cellspacing="2" cellpadding="0">
    <tr><td valign="top"></td><td valign="top"><em>env</em>&nbsp;</td><td>Environment must not be null </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>xpath_expr</em>&nbsp;</td><td>XPath expression must not be null </td></tr>
  </table>
</dl>

</div>
</div><p>
<a class="anchor" name="gbce6df5e417ac892e3c472a9e8d9b159"></a><!-- doxytag: member="axiom_xpath.h::axiom_xpath_free_result" ref="gbce6df5e417ac892e3c472a9e8d9b159" args="(const axutil_env_t *env, axiom_xpath_result_t *result)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">AXIS2_EXTERN void axiom_xpath_free_result           </td>
          <td>(</td>
          <td class="paramtype">const <a class="el" href="structaxutil__env.html">axutil_env_t</a> *&nbsp;</td>
          <td class="paramname"> <em>env</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype"><a class="el" href="structaxiom__xpath__result.html">axiom_xpath_result_t</a> *&nbsp;</td>
          <td class="paramname"> <em>result</em></td><td>&nbsp;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td><td width="100%"></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
Free XPath result set<p>
<dl compact><dt><b>Parameters:</b></dt><dd>
  <table border="0" cellspacing="2" cellpadding="0">
    <tr><td valign="top"></td><td valign="top"><em>env</em>&nbsp;</td><td>Environment must not be null </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>result</em>&nbsp;</td><td>XPath result set must not be null </td></tr>
  </table>
</dl>

</div>
</div><p>
<a class="anchor" name="g0cff83ae01a93dfd36978407b9895399"></a><!-- doxytag: member="axiom_xpath.h::axiom_xpath_get_function" ref="g0cff83ae01a93dfd36978407b9895399" args="(axiom_xpath_context_t *context, axis2_char_t *name)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">AXIS2_EXTERN axiom_xpath_function_t axiom_xpath_get_function           </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="structaxiom__xpath__context.html">axiom_xpath_context_t</a> *&nbsp;</td>
          <td class="paramname"> <em>context</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">axis2_char_t *&nbsp;</td>
          <td class="paramname"> <em>name</em></td><td>&nbsp;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td><td width="100%"></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
Retrive a pointer to a registered funciton by the function name. If there is no function registered by the given name, NULL will be returned.<p>
<dl compact><dt><b>Parameters:</b></dt><dd>
  <table border="0" cellspacing="2" cellpadding="0">
    <tr><td valign="top"></td><td valign="top"><em>context</em>&nbsp;</td><td>XPath Context, must not be null </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>name</em>&nbsp;</td><td>Name of the function, must not be null </td></tr>
  </table>
</dl>
<dl class="return" compact><dt><b>Returns:</b></dt><dd>The corresponding function. </dd></dl>

</div>
</div><p>
<a class="anchor" name="g81ba6657a1992f1b45a0930f7a413b68"></a><!-- doxytag: member="axiom_xpath.h::axiom_xpath_get_namespace" ref="g81ba6657a1992f1b45a0930f7a413b68" args="(axiom_xpath_context_t *context, axis2_char_t *prefix)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">AXIS2_EXTERN axiom_namespace_t* axiom_xpath_get_namespace           </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="structaxiom__xpath__context.html">axiom_xpath_context_t</a> *&nbsp;</td>
          <td class="paramname"> <em>context</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">axis2_char_t *&nbsp;</td>
          <td class="paramname"> <em>prefix</em></td><td>&nbsp;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td><td width="100%"></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
Get a registered namespace by the prefix. If there is no namespace registered by the given prefix NULL will be returned<p>
<dl compact><dt><b>Parameters:</b></dt><dd>
  <table border="0" cellspacing="2" cellpadding="0">
    <tr><td valign="top"></td><td valign="top"><em>context</em>&nbsp;</td><td>XPath Context, must not be null </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>prefix</em>&nbsp;</td><td>Prefix of the namespace, must not be null </td></tr>
  </table>
</dl>
<dl class="return" compact><dt><b>Returns:</b></dt><dd>The namespace corresponding to the prefix. </dd></dl>

</div>
</div><p>
<a class="anchor" name="gaa194fb637ad142a32510933243ddda5"></a><!-- doxytag: member="axiom_xpath.h::axiom_xpath_register_default_functions_set" ref="gaa194fb637ad142a32510933243ddda5" args="(axiom_xpath_context_t *context)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">AXIS2_EXTERN void axiom_xpath_register_default_functions_set           </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="structaxiom__xpath__context.html">axiom_xpath_context_t</a> *&nbsp;</td>
          <td class="paramname"> <em>context</em>          </td>
          <td>&nbsp;)&nbsp;</td>
          <td width="100%"></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
Setup the XPath core function library<p>
<dl compact><dt><b>Parameters:</b></dt><dd>
  <table border="0" cellspacing="2" cellpadding="0">
    <tr><td valign="top"></td><td valign="top"><em>context</em>&nbsp;</td><td>XPath Context, must not be null </td></tr>
  </table>
</dl>

</div>
</div><p>
<a class="anchor" name="gb6cc87a2fa3c5adf9d7844d21e2f747b"></a><!-- doxytag: member="axiom_xpath.h::axiom_xpath_register_function" ref="gb6cc87a2fa3c5adf9d7844d21e2f747b" args="(axiom_xpath_context_t *context, axis2_char_t *name, axiom_xpath_function_t func)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">AXIS2_EXTERN void axiom_xpath_register_function           </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="structaxiom__xpath__context.html">axiom_xpath_context_t</a> *&nbsp;</td>
          <td class="paramname"> <em>context</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">axis2_char_t *&nbsp;</td>
          <td class="paramname"> <em>name</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">axiom_xpath_function_t&nbsp;</td>
          <td class="paramname"> <em>func</em></td><td>&nbsp;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td><td width="100%"></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
Registers a custom XPath function <a href="http://www.w3.org/TR/xpath#corelib">http://www.w3.org/TR/xpath#corelib</a><p>
<dl compact><dt><b>Parameters:</b></dt><dd>
  <table border="0" cellspacing="2" cellpadding="0">
    <tr><td valign="top"></td><td valign="top"><em>context</em>&nbsp;</td><td>XPath Context, must not be null </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>name</em>&nbsp;</td><td>Name of the function, must not be null </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>func</em>&nbsp;</td><td>Pointer to the function, must not be null </td></tr>
  </table>
</dl>

</div>
</div><p>
<a class="anchor" name="g521831b95af07a1d758870955e21ec46"></a><!-- doxytag: member="axiom_xpath.h::axiom_xpath_register_namespace" ref="g521831b95af07a1d758870955e21ec46" args="(axiom_xpath_context_t *context, axiom_namespace_t *ns)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">AXIS2_EXTERN void axiom_xpath_register_namespace           </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="structaxiom__xpath__context.html">axiom_xpath_context_t</a> *&nbsp;</td>
          <td class="paramname"> <em>context</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">axiom_namespace_t *&nbsp;</td>
          <td class="paramname"> <em>ns</em></td><td>&nbsp;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td><td width="100%"></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
Registers a XPath namespace<p>
<dl compact><dt><b>Parameters:</b></dt><dd>
  <table border="0" cellspacing="2" cellpadding="0">
    <tr><td valign="top"></td><td valign="top"><em>context</em>&nbsp;</td><td>XPath Context, must not be null </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>ns</em>&nbsp;</td><td>AXIOM namespace, must not be null </td></tr>
  </table>
</dl>

</div>
</div><p>
<a class="anchor" name="g83c7017c40dd0977276b77d97cbff6a5"></a><!-- doxytag: member="axiom_xpath.h::axiom_xpath_streaming_check" ref="g83c7017c40dd0977276b77d97cbff6a5" args="(const axutil_env_t *env, axiom_xpath_expression_t *expr)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">AXIS2_EXTERN axis2_bool_t axiom_xpath_streaming_check           </td>
          <td>(</td>
          <td class="paramtype">const <a class="el" href="structaxutil__env.html">axutil_env_t</a> *&nbsp;</td>
          <td class="paramname"> <em>env</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype"><a class="el" href="structaxiom__xpath__expression.html">axiom_xpath_expression_t</a> *&nbsp;</td>
          <td class="paramname"> <em>expr</em></td><td>&nbsp;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td><td width="100%"></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
Checks whether the given expression can be evaluated on streaming XML. If it is possible AXIS2_TRUE will be retuned; AXIS2_FALSE otherwise.<p>
<dl compact><dt><b>Parameters:</b></dt><dd>
  <table border="0" cellspacing="2" cellpadding="0">
    <tr><td valign="top"></td><td valign="top"><em>env</em>&nbsp;</td><td>Axis2 environment, must not be null </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>expr</em>&nbsp;</td><td>Complied XPath expression, must not be null </td></tr>
  </table>
</dl>
<dl class="return" compact><dt><b>Returns:</b></dt><dd>A boolean indicating whether the expression can be evaluated on streaming XML. </dd></dl>

</div>
</div><p>
<hr size="1"><address style="text-align: right;"><small>Generated on Fri Apr 17 11:49:44 2009 for Axis2/C by&nbsp;
<a href="http://www.doxygen.org/index.html">
<img src="doxygen.png" alt="doxygen" align="middle" border="0"></a> 1.5.3 </small></address>
</body>
</html>


<|start_filename|>util/test/test_common/axis2c_test_macros.h<|end_filename|>

#ifndef AXIS2C_TEST_MACROS_H_
#define AXIS2C_TEST_MACROS_H_

#include <stdio.h>

#define TEST_SEPARATOR_STR      "[----------------]"
#define TEST_START_STR          "[TEST       START]"
#define TEST_PASSED_STR         "[TEST      PASSED]"
#define TEST_FAILED_STR         "[TEST      FAILED]"
#define TEST_CASE_START_STR     "[TEST CASE    RUN]"
#define TEST_CASE_OK_STR        "[              OK]"
#define TEST_CASE_FAIL_STR      "[          FAILED]"

#define TEST_FAILURE_PRINT  printf("In %s:%i: failure\n",__FILE__, __LINE__);

int tests_ok;
int tests_failures;


#define START_TEST() \
printf("\x1B[32m"TEST_SEPARATOR_STR"\n"TEST_START_STR"\n"TEST_SEPARATOR_STR"\x1B[0m\n");\
tests_ok=0;\
tests_failures=0;

#define END_TEST() \
if(tests_failures==0)\
{\
printf("\x1B[32m"TEST_SEPARATOR_STR"\n"TEST_PASSED_STR"\x1B[0m Tests passed %i\n",tests_ok);\
}\
else \
{\
    printf("\x1B[31m"TEST_SEPARATOR_STR"\n"TEST_FAILED_STR"\x1B[0m\n");\
}

#define START_TEST_CASE(TEST_NAME) \
const char test_name[]=TEST_NAME;\
int expresions_ok=0;\
int expresions_failed=0;\
printf("\x1B[32m"TEST_CASE_START_STR"\x1B[0m %s\n",test_name);

#define END_TEST_CASE() \
if(expresions_failed==0)\
{\
printf("\x1B[32m"TEST_CASE_OK_STR"\x1B[0m %s, tests ok %i\n",test_name,expresions_ok);\
tests_ok++;\
}\
else \
{\
    printf("\x1B[31m"TEST_CASE_FAIL_STR"\x1B[0m %s, tests ok %i, tests failed %i\n",\
                                        test_name,expresions_ok,expresions_failed);\
    tests_failures++;\
}

#define TEST_ASSERT(EXPR) \
{\
if (!EXPR)\
{\
    TEST_FAILURE_PRINT\
    printf("Assertion failed\n");\
    return -1;\
}\
}

#define TEST_ASSERT_VOID(EXPR) \
{\
if (!EXPR)\
{\
    expresions_failed++;\
    TEST_FAILURE_PRINT\
    printf("Assertion failed\n");\
    END_TEST_CASE()\
    return;\
}\
}

#define TEST_ERROR(TEXT)\
{\
	TEST_FAILURE_PRINT\
	printf("%s\n",TEXT);\
	expresions_failed++;\
}

#define TEST_ABORT(TEXT)\
{\
	TEST_FAILURE_PRINT\
	printf("%s\n",TEXT);\
	expresions_failed++;\
    END_TEST_CASE()\
    return;\
}

#define EXPECT_NEQ(VAL1, VAL2) \
{\
__typeof(VAL1) var_val1=VAL1;\
__typeof(VAL2) var_val2=VAL2;\
if (var_val1 != var_val2)\
{\
    expresions_ok++;\
}else\
{\
    TEST_FAILURE_PRINT\
    printf("Expected not %i, received %i\n",var_val1,var_val2);\
    expresions_failed++;\
}\
}

#define EXPECT_EQ(VAL1, VAL2) \
{\
__typeof(VAL1) var_val1=VAL1;\
__typeof(VAL2) var_val2=VAL2;\
if (var_val1 == var_val2)\
{\
    expresions_ok++;\
}else\
{\
    TEST_FAILURE_PRINT\
    printf("Expected %i, received %i\n",var_val1,var_val2);\
    expresions_failed++;\
}\
}

#define EXPECT_GT(VAL1, VAL2) \
{\
__typeof(VAL1) var_val1=VAL1;\
__typeof(VAL2) var_val2=VAL2;\
if (var_val1 > var_val2)\
{\
    expresions_ok++;\
}else\
{\
    TEST_FAILURE_PRINT\
    printf("Expected %i to be greater than %i\n",var_val1,var_val2);\
    expresions_failed++;\
}\
}

#define EXPECT_NOT_NULL(VAL1) \
{\
if (VAL1)\
{\
    expresions_ok++;\
}else\
{\
    TEST_FAILURE_PRINT\
    printf("Expected something got NULL\n");\
    expresions_failed++;\
}\
}

#define EXPECT_NULL(VAL1) \
{\
if (!VAL1)\
{\
    expresions_ok++;\
}else\
{\
    TEST_FAILURE_PRINT\
    printf("Expected NULL got something\n");\
    expresions_failed++;\
}\
}

#define EXPECT_STREQ(STR1, STR2) \
{\
const char* var_str1 = STR1;\
const char* var_str2 = STR2;\
if (0 == axutil_strcmp(var_str1,var_str2))\
{\
    expresions_ok++;\
}\
else\
{\
    TEST_FAILURE_PRINT\
    printf("Expected %s, received %s\n",var_str2,var_str1);\
    expresions_failed++;\
}\
}


#define EXPECT_STRNEQ(STR1, STR2) \
{\
const char* var_str1 = STR1;\
const char* var_str2 = STR2;\
if (0 != axutil_strcmp(var_str1,var_str2))\
{\
    expresions_ok++;\
}\
else\
{\
    TEST_FAILURE_PRINT\
    printf("Expected %s, received %s\n",var_str2,var_str1);\
    expresions_failed++;\
}\
}

#endif /* AXIS2C_TEST_MACROS_H_ */


<|start_filename|>xdocs/api/html/structaxiom__xml__reader__ops.html<|end_filename|>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html><head><meta http-equiv="Content-Type" content="text/html;charset=UTF-8">
<title>Axis2/C: axiom_xml_reader_ops Struct Reference</title>
<link href="doxygen.css" rel="stylesheet" type="text/css">
<link href="tabs.css" rel="stylesheet" type="text/css">
</head><body>
<!-- Generated by Doxygen 1.5.3 -->
<div class="tabs">
  <ul>
    <li><a href="index.html"><span>Main&nbsp;Page</span></a></li>
    <li><a href="modules.html"><span>Modules</span></a></li>
    <li class="current"><a href="annotated.html"><span>Classes</span></a></li>
    <li><a href="files.html"><span>Files</span></a></li>
    <li><a href="dirs.html"><span>Directories</span></a></li>
    <li><a href="pages.html"><span>Related&nbsp;Pages</span></a></li>
    <li><a href="examples.html"><span>Examples</span></a></li>
    <li>
      <form action="search.php" method="get">
        <table cellspacing="0" cellpadding="0" border="0">
          <tr>
            <td><label>&nbsp;<u>S</u>earch&nbsp;for&nbsp;</label></td>
            <td><input type="text" name="query" value="" size="20" accesskey="s"/></td>
          </tr>
        </table>
      </form>
    </li>
  </ul>
</div>
<div class="tabs">
  <ul>
    <li><a href="annotated.html"><span>Class&nbsp;List</span></a></li>
    <li><a href="functions.html"><span>Class&nbsp;Members</span></a></li>
  </ul>
</div>
<h1>axiom_xml_reader_ops Struct Reference<br>
<small>
[<a class="el" href="group__axiom__xml__reader.html">XML reader</a>]</small>
</h1><!-- doxytag: class="axiom_xml_reader_ops" -->AXIOM_XML_READER ops Encapsulator struct for ops of <a class="el" href="structaxiom__xml__reader.html" title="axiom_xml_reader struct Axis2 OM pull_parser">axiom_xml_reader</a>.  
<a href="#_details">More...</a>
<p>
<code>#include &lt;<a class="el" href="axiom__xml__reader_8h-source.html">axiom_xml_reader.h</a>&gt;</code>
<p>

<p>
<a href="structaxiom__xml__reader__ops-members.html">List of all members.</a><table border="0" cellpadding="0" cellspacing="0">
<tr><td></td></tr>
<tr><td colspan="2"><br><h2>Public Attributes</h2></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top">int(*&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="structaxiom__xml__reader__ops.html#27dc955258fc16d29d509b44cc34f5b2">next</a> )(<a class="el" href="structaxiom__xml__reader.html">axiom_xml_reader_t</a> *parser, const <a class="el" href="structaxutil__env.html">axutil_env_t</a> *env)</td></tr>

<tr><td class="memItemLeft" nowrap align="right" valign="top">void(*&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="structaxiom__xml__reader__ops.html#b6c0094b13a222f82a3362d30026dd70">free</a> )(<a class="el" href="structaxiom__xml__reader.html">axiom_xml_reader_t</a> *parser, const <a class="el" href="structaxutil__env.html">axutil_env_t</a> *env)</td></tr>

<tr><td class="memItemLeft" nowrap align="right" valign="top">int(*&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="structaxiom__xml__reader__ops.html#22a176378851114e11809eabd8b4ae46">get_attribute_count</a> )(<a class="el" href="structaxiom__xml__reader.html">axiom_xml_reader_t</a> *parser, const <a class="el" href="structaxutil__env.html">axutil_env_t</a> *env)</td></tr>

<tr><td class="memItemLeft" nowrap align="right" valign="top">axis2_char_t *(*&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="structaxiom__xml__reader__ops.html#2c68389efbe57ee92f34688edf4298df">get_attribute_name_by_number</a> )(<a class="el" href="structaxiom__xml__reader.html">axiom_xml_reader_t</a> *parser, const <a class="el" href="structaxutil__env.html">axutil_env_t</a> *env, int i)</td></tr>

<tr><td class="memItemLeft" nowrap align="right" valign="top">axis2_char_t *(*&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="structaxiom__xml__reader__ops.html#3ff29576e6e09c6f9eede201aaea50a3">get_attribute_prefix_by_number</a> )(<a class="el" href="structaxiom__xml__reader.html">axiom_xml_reader_t</a> *parser, const <a class="el" href="structaxutil__env.html">axutil_env_t</a> *env, int i)</td></tr>

<tr><td class="memItemLeft" nowrap align="right" valign="top">axis2_char_t *(*&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="structaxiom__xml__reader__ops.html#20f3de0e5c250e3af7552797e330efb6">get_attribute_value_by_number</a> )(<a class="el" href="structaxiom__xml__reader.html">axiom_xml_reader_t</a> *parser, const <a class="el" href="structaxutil__env.html">axutil_env_t</a> *env, int i)</td></tr>

<tr><td class="memItemLeft" nowrap align="right" valign="top">axis2_char_t *(*&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="structaxiom__xml__reader__ops.html#cd439813d81970e3776c59dbe4f293c8">get_attribute_namespace_by_number</a> )(<a class="el" href="structaxiom__xml__reader.html">axiom_xml_reader_t</a> *parser, const <a class="el" href="structaxutil__env.html">axutil_env_t</a> *env, int i)</td></tr>

<tr><td class="memItemLeft" nowrap align="right" valign="top">axis2_char_t *(*&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="structaxiom__xml__reader__ops.html#23269d48917339c1195c68548a1df6bd">get_value</a> )(<a class="el" href="structaxiom__xml__reader.html">axiom_xml_reader_t</a> *parser, const <a class="el" href="structaxutil__env.html">axutil_env_t</a> *env)</td></tr>

<tr><td class="memItemLeft" nowrap align="right" valign="top">int(*&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="structaxiom__xml__reader__ops.html#2313a482156cba054e9ab475f36a1606">get_namespace_count</a> )(<a class="el" href="structaxiom__xml__reader.html">axiom_xml_reader_t</a> *parser, const <a class="el" href="structaxutil__env.html">axutil_env_t</a> *env)</td></tr>

<tr><td class="memItemLeft" nowrap align="right" valign="top">axis2_char_t *(*&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="structaxiom__xml__reader__ops.html#9e6cb2a23eefe09daa1b6a6d9a470a52">get_namespace_uri_by_number</a> )(<a class="el" href="structaxiom__xml__reader.html">axiom_xml_reader_t</a> *parser, const <a class="el" href="structaxutil__env.html">axutil_env_t</a> *env, int i)</td></tr>

<tr><td class="memItemLeft" nowrap align="right" valign="top">axis2_char_t *(*&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="structaxiom__xml__reader__ops.html#038bd2b7b10d16ce5e33f0e0f8003d5c">get_namespace_prefix_by_number</a> )(<a class="el" href="structaxiom__xml__reader.html">axiom_xml_reader_t</a> *parser, const <a class="el" href="structaxutil__env.html">axutil_env_t</a> *env, int i)</td></tr>

<tr><td class="memItemLeft" nowrap align="right" valign="top">axis2_char_t *(*&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="structaxiom__xml__reader__ops.html#fb35c54f64deebf15f5e46040e12e47d">get_prefix</a> )(<a class="el" href="structaxiom__xml__reader.html">axiom_xml_reader_t</a> *parser, const <a class="el" href="structaxutil__env.html">axutil_env_t</a> *env)</td></tr>

<tr><td class="memItemLeft" nowrap align="right" valign="top">axis2_char_t *(*&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="structaxiom__xml__reader__ops.html#5f53ff51d077111b77cc6ba7806f8e34">get_name</a> )(<a class="el" href="structaxiom__xml__reader.html">axiom_xml_reader_t</a> *parser, const <a class="el" href="structaxutil__env.html">axutil_env_t</a> *env)</td></tr>

<tr><td class="memItemLeft" nowrap align="right" valign="top">axis2_char_t *(*&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="structaxiom__xml__reader__ops.html#65d6db8d669b488efa67f7b11aae87be">get_pi_target</a> )(<a class="el" href="structaxiom__xml__reader.html">axiom_xml_reader_t</a> *parser, const <a class="el" href="structaxutil__env.html">axutil_env_t</a> *env)</td></tr>

<tr><td class="memItemLeft" nowrap align="right" valign="top">axis2_char_t *(*&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="structaxiom__xml__reader__ops.html#22fa968eae5d05ca0c5e774ecf43c6e0">get_pi_data</a> )(<a class="el" href="structaxiom__xml__reader.html">axiom_xml_reader_t</a> *parser, const <a class="el" href="structaxutil__env.html">axutil_env_t</a> *env)</td></tr>

<tr><td class="memItemLeft" nowrap align="right" valign="top">axis2_char_t *(*&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="structaxiom__xml__reader__ops.html#a9507f65a18b044ed7e33f088101d397">get_dtd</a> )(<a class="el" href="structaxiom__xml__reader.html">axiom_xml_reader_t</a> *parser, const <a class="el" href="structaxutil__env.html">axutil_env_t</a> *env)</td></tr>

<tr><td class="memItemLeft" nowrap align="right" valign="top">void(*&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="structaxiom__xml__reader__ops.html#5fc97ffea35f86a12e538528e9024e04">xml_free</a> )(<a class="el" href="structaxiom__xml__reader.html">axiom_xml_reader_t</a> *parser, const <a class="el" href="structaxutil__env.html">axutil_env_t</a> *env, void *data)</td></tr>

<tr><td class="memItemLeft" nowrap align="right" valign="top">axis2_char_t *(*&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="structaxiom__xml__reader__ops.html#7f8c57bb6d5dcf59ff55fd3cbc677da2">get_char_set_encoding</a> )(<a class="el" href="structaxiom__xml__reader.html">axiom_xml_reader_t</a> *parser, const <a class="el" href="structaxutil__env.html">axutil_env_t</a> *env)</td></tr>

<tr><td class="memItemLeft" nowrap align="right" valign="top">axis2_char_t *(*&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="structaxiom__xml__reader__ops.html#61441a7ed7c3eb2d8e3755deb63383b2">get_namespace_uri</a> )(<a class="el" href="structaxiom__xml__reader.html">axiom_xml_reader_t</a> *parser, const <a class="el" href="structaxutil__env.html">axutil_env_t</a> *env)</td></tr>

<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="7de10de8f774ecee32d6ec0590e90501"></a><!-- doxytag: member="axiom_xml_reader_ops::get_namespace_uri_by_prefix" ref="7de10de8f774ecee32d6ec0590e90501" args=")(axiom_xml_reader_t *parser, const axutil_env_t *env, axis2_char_t *prefix)" -->
axis2_char_t *(*&nbsp;</td><td class="memItemRight" valign="bottom"><b>get_namespace_uri_by_prefix</b> )(<a class="el" href="structaxiom__xml__reader.html">axiom_xml_reader_t</a> *parser, const <a class="el" href="structaxutil__env.html">axutil_env_t</a> *env, axis2_char_t *prefix)</td></tr>

</table>
<hr><a name="_details"></a><h2>Detailed Description</h2>
AXIOM_XML_READER ops Encapsulator struct for ops of <a class="el" href="structaxiom__xml__reader.html" title="axiom_xml_reader struct Axis2 OM pull_parser">axiom_xml_reader</a>. <hr><h2>Member Data Documentation</h2>
<a class="anchor" name="27dc955258fc16d29d509b44cc34f5b2"></a><!-- doxytag: member="axiom_xml_reader_ops::next" ref="27dc955258fc16d29d509b44cc34f5b2" args=")(axiom_xml_reader_t *parser, const axutil_env_t *env)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">int( *  <a class="el" href="structaxiom__xml__reader__ops.html#27dc955258fc16d29d509b44cc34f5b2">axiom_xml_reader_ops::next</a>)(<a class="el" href="structaxiom__xml__reader.html">axiom_xml_reader_t</a> *parser, const <a class="el" href="structaxutil__env.html">axutil_env_t</a> *env)          </td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
causes the reader to read the next parse event. returns the event just read <dl compact><dt><b>Parameters:</b></dt><dd>
  <table border="0" cellspacing="2" cellpadding="0">
    <tr><td valign="top"></td><td valign="top"><em>parser</em>&nbsp;</td><td><a class="el" href="structaxiom__xml__reader.html" title="axiom_xml_reader struct Axis2 OM pull_parser">axiom_xml_reader</a> struct </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>env</em>&nbsp;</td><td>axutil_environment, MUST NOT be NULL </td></tr>
  </table>
</dl>
<dl class="return" compact><dt><b>Returns:</b></dt><dd>one of the events defined in axiom_xml_reader_event_types </dd></dl>

</div>
</div><p>
<a class="anchor" name="b6c0094b13a222f82a3362d30026dd70"></a><!-- doxytag: member="axiom_xml_reader_ops::free" ref="b6c0094b13a222f82a3362d30026dd70" args=")(axiom_xml_reader_t *parser, const axutil_env_t *env)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">void( *  <a class="el" href="structaxiom__xml__reader__ops.html#b6c0094b13a222f82a3362d30026dd70">axiom_xml_reader_ops::free</a>)(<a class="el" href="structaxiom__xml__reader.html">axiom_xml_reader_t</a> *parser, const <a class="el" href="structaxutil__env.html">axutil_env_t</a> *env)          </td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
free pull_parser <dl compact><dt><b>Parameters:</b></dt><dd>
  <table border="0" cellspacing="2" cellpadding="0">
    <tr><td valign="top"></td><td valign="top"><em>parser</em>&nbsp;</td><td><a class="el" href="structaxiom__xml__reader.html" title="axiom_xml_reader struct Axis2 OM pull_parser">axiom_xml_reader</a> struct </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>env</em>&nbsp;</td><td>axutil_environment MUST NOT be NULL </td></tr>
  </table>
</dl>
<dl class="return" compact><dt><b>Returns:</b></dt><dd>axis2_status_code </dd></dl>

</div>
</div><p>
<a class="anchor" name="22a176378851114e11809eabd8b4ae46"></a><!-- doxytag: member="axiom_xml_reader_ops::get_attribute_count" ref="22a176378851114e11809eabd8b4ae46" args=")(axiom_xml_reader_t *parser, const axutil_env_t *env)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">int( *  <a class="el" href="structaxiom__xml__reader__ops.html#22a176378851114e11809eabd8b4ae46">axiom_xml_reader_ops::get_attribute_count</a>)(<a class="el" href="structaxiom__xml__reader.html">axiom_xml_reader_t</a> *parser, const <a class="el" href="structaxutil__env.html">axutil_env_t</a> *env)          </td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
Get the Number of attributes in the current element <dl compact><dt><b>Parameters:</b></dt><dd>
  <table border="0" cellspacing="2" cellpadding="0">
    <tr><td valign="top"></td><td valign="top"><em>parser</em>&nbsp;</td><td><a class="el" href="structaxiom__xml__reader.html" title="axiom_xml_reader struct Axis2 OM pull_parser">axiom_xml_reader</a> </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>env</em>&nbsp;</td><td>axutil_environment, MUST NOT be NULL. </td></tr>
  </table>
</dl>
<dl class="return" compact><dt><b>Returns:</b></dt><dd>Number of attributes , AXIS2_FAILURE on error </dd></dl>

</div>
</div><p>
<a class="anchor" name="2c68389efbe57ee92f34688edf4298df"></a><!-- doxytag: member="axiom_xml_reader_ops::get_attribute_name_by_number" ref="2c68389efbe57ee92f34688edf4298df" args=")(axiom_xml_reader_t *parser, const axutil_env_t *env, int i)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">axis2_char_t*( *  <a class="el" href="structaxiom__xml__reader__ops.html#2c68389efbe57ee92f34688edf4298df">axiom_xml_reader_ops::get_attribute_name_by_number</a>)(<a class="el" href="structaxiom__xml__reader.html">axiom_xml_reader_t</a> *parser, const <a class="el" href="structaxutil__env.html">axutil_env_t</a> *env, int i)          </td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
This is used to get an attribute's localname using an index relative to current element.The iterations are not zero based. To access the first attribute use 1 for parameter i <dl compact><dt><b>Parameters:</b></dt><dd>
  <table border="0" cellspacing="2" cellpadding="0">
    <tr><td valign="top"></td><td valign="top"><em>parser</em>&nbsp;</td><td>parser struct </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>env</em>&nbsp;</td><td>environment struct </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>i</em>&nbsp;</td><td>attribute index </td></tr>
  </table>
</dl>
<dl class="return" compact><dt><b>Returns:</b></dt><dd>the attribute localname caller must free the value using axiom_xml_reader_xml_free macro </dd></dl>

</div>
</div><p>
<a class="anchor" name="3ff29576e6e09c6f9eede201aaea50a3"></a><!-- doxytag: member="axiom_xml_reader_ops::get_attribute_prefix_by_number" ref="3ff29576e6e09c6f9eede201aaea50a3" args=")(axiom_xml_reader_t *parser, const axutil_env_t *env, int i)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">axis2_char_t*( *  <a class="el" href="structaxiom__xml__reader__ops.html#3ff29576e6e09c6f9eede201aaea50a3">axiom_xml_reader_ops::get_attribute_prefix_by_number</a>)(<a class="el" href="structaxiom__xml__reader.html">axiom_xml_reader_t</a> *parser, const <a class="el" href="structaxutil__env.html">axutil_env_t</a> *env, int i)          </td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
This is used to get an attribute's prefix using an index relative to current element. The iterations are not zero based. To access the first attribute use 1 for parameter i <dl compact><dt><b>Parameters:</b></dt><dd>
  <table border="0" cellspacing="2" cellpadding="0">
    <tr><td valign="top"></td><td valign="top"><em>parser</em>&nbsp;</td><td>parser struct </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>env</em>&nbsp;</td><td>environment, MUST NOT be NULL </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>i</em>&nbsp;</td><td>attribute index. </td></tr>
  </table>
</dl>
<dl class="return" compact><dt><b>Returns:</b></dt><dd>the attribute prefix, returns NULL on error, caller must free the value using axiom_xml_reader_xml_free macro </dd></dl>

</div>
</div><p>
<a class="anchor" name="20f3de0e5c250e3af7552797e330efb6"></a><!-- doxytag: member="axiom_xml_reader_ops::get_attribute_value_by_number" ref="20f3de0e5c250e3af7552797e330efb6" args=")(axiom_xml_reader_t *parser, const axutil_env_t *env, int i)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">axis2_char_t*( *  <a class="el" href="structaxiom__xml__reader__ops.html#20f3de0e5c250e3af7552797e330efb6">axiom_xml_reader_ops::get_attribute_value_by_number</a>)(<a class="el" href="structaxiom__xml__reader.html">axiom_xml_reader_t</a> *parser, const <a class="el" href="structaxutil__env.html">axutil_env_t</a> *env, int i)          </td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
Gets an attribute's value using an index relative to current element. The iterations are not zero based. To access the first attribute use 1 for parameter i <dl compact><dt><b>Parameters:</b></dt><dd>
  <table border="0" cellspacing="2" cellpadding="0">
    <tr><td valign="top"></td><td valign="top"><em>parser</em>&nbsp;</td><td>parser struct </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>env</em>&nbsp;</td><td>environment, MUST NOT be NULL. </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>i</em>&nbsp;</td><td>attribute index </td></tr>
  </table>
</dl>
<dl class="return" compact><dt><b>Returns:</b></dt><dd>the attribute value, returns NULL on error, caller must free the value using axiom_xml_reader_xml_free macro </dd></dl>

</div>
</div><p>
<a class="anchor" name="cd439813d81970e3776c59dbe4f293c8"></a><!-- doxytag: member="axiom_xml_reader_ops::get_attribute_namespace_by_number" ref="cd439813d81970e3776c59dbe4f293c8" args=")(axiom_xml_reader_t *parser, const axutil_env_t *env, int i)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">axis2_char_t*( *  <a class="el" href="structaxiom__xml__reader__ops.html#cd439813d81970e3776c59dbe4f293c8">axiom_xml_reader_ops::get_attribute_namespace_by_number</a>)(<a class="el" href="structaxiom__xml__reader.html">axiom_xml_reader_t</a> *parser, const <a class="el" href="structaxutil__env.html">axutil_env_t</a> *env, int i)          </td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
Gets an attribute's namespace uri using an index relative to current element. The iterations are not zero based. To access the first attribute use 1 for parameter i <dl compact><dt><b>Parameters:</b></dt><dd>
  <table border="0" cellspacing="2" cellpadding="0">
    <tr><td valign="top"></td><td valign="top"><em>parser</em>&nbsp;</td><td>parser struct </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>env</em>&nbsp;</td><td>environment struct </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>i</em>&nbsp;</td><td>attribute index </td></tr>
  </table>
</dl>
<dl class="return" compact><dt><b>Returns:</b></dt><dd>the attribute value, returns NULL on error caller must free the value using axiom_xml_reader_xml_free macro </dd></dl>

</div>
</div><p>
<a class="anchor" name="23269d48917339c1195c68548a1df6bd"></a><!-- doxytag: member="axiom_xml_reader_ops::get_value" ref="23269d48917339c1195c68548a1df6bd" args=")(axiom_xml_reader_t *parser, const axutil_env_t *env)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">axis2_char_t*( *  <a class="el" href="structaxiom__xml__reader__ops.html#23269d48917339c1195c68548a1df6bd">axiom_xml_reader_ops::get_value</a>)(<a class="el" href="structaxiom__xml__reader.html">axiom_xml_reader_t</a> *parser, const <a class="el" href="structaxutil__env.html">axutil_env_t</a> *env)          </td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
Returns the text value of current element <dl compact><dt><b>Parameters:</b></dt><dd>
  <table border="0" cellspacing="2" cellpadding="0">
    <tr><td valign="top"></td><td valign="top"><em>parser</em>&nbsp;</td><td>pointer to parser </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>env</em>&nbsp;</td><td>environment, MUST not be NULL </td></tr>
  </table>
</dl>
<dl class="return" compact><dt><b>Returns:</b></dt><dd>Text Value, NULL on error caller must free the value using axiom_xml_reader_xml_free macro </dd></dl>

</div>
</div><p>
<a class="anchor" name="2313a482156cba054e9ab475f36a1606"></a><!-- doxytag: member="axiom_xml_reader_ops::get_namespace_count" ref="2313a482156cba054e9ab475f36a1606" args=")(axiom_xml_reader_t *parser, const axutil_env_t *env)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">int( *  <a class="el" href="structaxiom__xml__reader__ops.html#2313a482156cba054e9ab475f36a1606">axiom_xml_reader_ops::get_namespace_count</a>)(<a class="el" href="structaxiom__xml__reader.html">axiom_xml_reader_t</a> *parser, const <a class="el" href="structaxutil__env.html">axutil_env_t</a> *env)          </td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
Returns the namespace count of current element <dl compact><dt><b>Parameters:</b></dt><dd>
  <table border="0" cellspacing="2" cellpadding="0">
    <tr><td valign="top"></td><td valign="top"><em>parser</em>&nbsp;</td><td>parser struct </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>env</em>&nbsp;</td><td>environment </td></tr>
  </table>
</dl>
<dl class="return" compact><dt><b>Returns:</b></dt><dd>namespace count of current element, </dd></dl>

</div>
</div><p>
<a class="anchor" name="9e6cb2a23eefe09daa1b6a6d9a470a52"></a><!-- doxytag: member="axiom_xml_reader_ops::get_namespace_uri_by_number" ref="9e6cb2a23eefe09daa1b6a6d9a470a52" args=")(axiom_xml_reader_t *parser, const axutil_env_t *env, int i)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">axis2_char_t*( *  <a class="el" href="structaxiom__xml__reader__ops.html#9e6cb2a23eefe09daa1b6a6d9a470a52">axiom_xml_reader_ops::get_namespace_uri_by_number</a>)(<a class="el" href="structaxiom__xml__reader.html">axiom_xml_reader_t</a> *parser, const <a class="el" href="structaxutil__env.html">axutil_env_t</a> *env, int i)          </td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
Accesses the namespace uri of the namespaces declared in current element using an index <dl compact><dt><b>Parameters:</b></dt><dd>
  <table border="0" cellspacing="2" cellpadding="0">
    <tr><td valign="top"></td><td valign="top"><em>parser</em>&nbsp;</td><td>parser struct </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>env</em>&nbsp;</td><td>environment </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>i</em>&nbsp;</td><td>index </td></tr>
  </table>
</dl>
<dl class="return" compact><dt><b>Returns:</b></dt><dd>namespace uri of corresponding namespace caller must free the value using axiom_xml_reader_xml_free macro </dd></dl>

</div>
</div><p>
<a class="anchor" name="038bd2b7b10d16ce5e33f0e0f8003d5c"></a><!-- doxytag: member="axiom_xml_reader_ops::get_namespace_prefix_by_number" ref="038bd2b7b10d16ce5e33f0e0f8003d5c" args=")(axiom_xml_reader_t *parser, const axutil_env_t *env, int i)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">axis2_char_t*( *  <a class="el" href="structaxiom__xml__reader__ops.html#038bd2b7b10d16ce5e33f0e0f8003d5c">axiom_xml_reader_ops::get_namespace_prefix_by_number</a>)(<a class="el" href="structaxiom__xml__reader.html">axiom_xml_reader_t</a> *parser, const <a class="el" href="structaxutil__env.html">axutil_env_t</a> *env, int i)          </td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
Accesses the namespace prefix of the namespaces declared in current element using an index <dl compact><dt><b>Parameters:</b></dt><dd>
  <table border="0" cellspacing="2" cellpadding="0">
    <tr><td valign="top"></td><td valign="top"><em>parser</em>&nbsp;</td><td>parser struct </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>env</em>&nbsp;</td><td>environment </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>i</em>&nbsp;</td><td>index </td></tr>
  </table>
</dl>
<dl class="return" compact><dt><b>Returns:</b></dt><dd>namespace prefix of corresponding namespace caller must free the value using axiom_xml_reader_xml_free macro </dd></dl>

</div>
</div><p>
<a class="anchor" name="fb35c54f64deebf15f5e46040e12e47d"></a><!-- doxytag: member="axiom_xml_reader_ops::get_prefix" ref="fb35c54f64deebf15f5e46040e12e47d" args=")(axiom_xml_reader_t *parser, const axutil_env_t *env)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">axis2_char_t*( *  <a class="el" href="structaxiom__xml__reader__ops.html#fb35c54f64deebf15f5e46040e12e47d">axiom_xml_reader_ops::get_prefix</a>)(<a class="el" href="structaxiom__xml__reader.html">axiom_xml_reader_t</a> *parser, const <a class="el" href="structaxutil__env.html">axutil_env_t</a> *env)          </td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
Used to obtain the current element prefix <dl compact><dt><b>Parameters:</b></dt><dd>
  <table border="0" cellspacing="2" cellpadding="0">
    <tr><td valign="top"></td><td valign="top"><em>parser</em>&nbsp;</td><td>parser struct </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>env</em>&nbsp;</td><td>environment struct </td></tr>
  </table>
</dl>
<dl class="return" compact><dt><b>Returns:</b></dt><dd>prefix , NULL on error caller must free the value using axiom_xml_reader_xml_free macro </dd></dl>

</div>
</div><p>
<a class="anchor" name="5f53ff51d077111b77cc6ba7806f8e34"></a><!-- doxytag: member="axiom_xml_reader_ops::get_name" ref="5f53ff51d077111b77cc6ba7806f8e34" args=")(axiom_xml_reader_t *parser, const axutil_env_t *env)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">axis2_char_t*( *  <a class="el" href="structaxiom__xml__reader__ops.html#5f53ff51d077111b77cc6ba7806f8e34">axiom_xml_reader_ops::get_name</a>)(<a class="el" href="structaxiom__xml__reader.html">axiom_xml_reader_t</a> *parser, const <a class="el" href="structaxutil__env.html">axutil_env_t</a> *env)          </td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
Used to obtain the current element localname <dl compact><dt><b>Parameters:</b></dt><dd>
  <table border="0" cellspacing="2" cellpadding="0">
    <tr><td valign="top"></td><td valign="top"><em>parser</em>&nbsp;</td><td>parser struct </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>env</em>&nbsp;</td><td>environment struct </td></tr>
  </table>
</dl>
<dl class="return" compact><dt><b>Returns:</b></dt><dd>localname , NULL on error caller must free the value using axiom_xml_reader_xml_free macro </dd></dl>

</div>
</div><p>
<a class="anchor" name="65d6db8d669b488efa67f7b11aae87be"></a><!-- doxytag: member="axiom_xml_reader_ops::get_pi_target" ref="65d6db8d669b488efa67f7b11aae87be" args=")(axiom_xml_reader_t *parser, const axutil_env_t *env)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">axis2_char_t*( *  <a class="el" href="structaxiom__xml__reader__ops.html#65d6db8d669b488efa67f7b11aae87be">axiom_xml_reader_ops::get_pi_target</a>)(<a class="el" href="structaxiom__xml__reader.html">axiom_xml_reader_t</a> *parser, const <a class="el" href="structaxutil__env.html">axutil_env_t</a> *env)          </td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
Used to get the processingInstruction target <dl compact><dt><b>Parameters:</b></dt><dd>
  <table border="0" cellspacing="2" cellpadding="0">
    <tr><td valign="top"></td><td valign="top"><em>parser</em>&nbsp;</td><td>parser struct </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>env</em>&nbsp;</td><td>environment, MUST NOT be NULL. </td></tr>
  </table>
</dl>
<dl class="return" compact><dt><b>Returns:</b></dt><dd>target value of processingInstruction caller must free the value using axiom_xml_reader_xml_free macro </dd></dl>

</div>
</div><p>
<a class="anchor" name="22fa968eae5d05ca0c5e774ecf43c6e0"></a><!-- doxytag: member="axiom_xml_reader_ops::get_pi_data" ref="22fa968eae5d05ca0c5e774ecf43c6e0" args=")(axiom_xml_reader_t *parser, const axutil_env_t *env)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">axis2_char_t*( *  <a class="el" href="structaxiom__xml__reader__ops.html#22fa968eae5d05ca0c5e774ecf43c6e0">axiom_xml_reader_ops::get_pi_data</a>)(<a class="el" href="structaxiom__xml__reader.html">axiom_xml_reader_t</a> *parser, const <a class="el" href="structaxutil__env.html">axutil_env_t</a> *env)          </td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
Gets the processingInstruction data <dl compact><dt><b>Parameters:</b></dt><dd>
  <table border="0" cellspacing="2" cellpadding="0">
    <tr><td valign="top"></td><td valign="top"><em>parser</em>&nbsp;</td><td>parser struct </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>env</em>&nbsp;</td><td>environment, MUST NOT be NULL. </td></tr>
  </table>
</dl>
<dl class="return" compact><dt><b>Returns:</b></dt><dd>data of processingInstruction caller must free the value using axiom_xml_reader_xml_free macro </dd></dl>

</div>
</div><p>
<a class="anchor" name="a9507f65a18b044ed7e33f088101d397"></a><!-- doxytag: member="axiom_xml_reader_ops::get_dtd" ref="a9507f65a18b044ed7e33f088101d397" args=")(axiom_xml_reader_t *parser, const axutil_env_t *env)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">axis2_char_t*( *  <a class="el" href="structaxiom__xml__reader__ops.html#a9507f65a18b044ed7e33f088101d397">axiom_xml_reader_ops::get_dtd</a>)(<a class="el" href="structaxiom__xml__reader.html">axiom_xml_reader_t</a> *parser, const <a class="el" href="structaxutil__env.html">axutil_env_t</a> *env)          </td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
Used to get the DTD <dl compact><dt><b>Parameters:</b></dt><dd>
  <table border="0" cellspacing="2" cellpadding="0">
    <tr><td valign="top"></td><td valign="top"><em>parser</em>&nbsp;</td><td>pointer to pull parser struct </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>env</em>&nbsp;</td><td>environment, MUST NOT be NULL. </td></tr>
  </table>
</dl>
<dl class="return" compact><dt><b>Returns:</b></dt><dd>text of doctype declaration. NULL is returns of no data exists. </dd></dl>

</div>
</div><p>
<a class="anchor" name="5fc97ffea35f86a12e538528e9024e04"></a><!-- doxytag: member="axiom_xml_reader_ops::xml_free" ref="5fc97ffea35f86a12e538528e9024e04" args=")(axiom_xml_reader_t *parser, const axutil_env_t *env, void *data)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">void( *  <a class="el" href="structaxiom__xml__reader__ops.html#5fc97ffea35f86a12e538528e9024e04">axiom_xml_reader_ops::xml_free</a>)(<a class="el" href="structaxiom__xml__reader.html">axiom_xml_reader_t</a> *parser, const <a class="el" href="structaxutil__env.html">axutil_env_t</a> *env, void *data)          </td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
Free function , this function wraps the underlying parser's xml free function. For freeing values obatined by calling pull parser api methods, This function must be used. <dl compact><dt><b>Parameters:</b></dt><dd>
  <table border="0" cellspacing="2" cellpadding="0">
    <tr><td valign="top"></td><td valign="top"><em>parser</em>&nbsp;</td><td>pointer to <a class="el" href="structaxiom__xml__reader.html" title="axiom_xml_reader struct Axis2 OM pull_parser">axiom_xml_reader</a> </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>env</em>&nbsp;</td><td>environment, MUST NOT be NULL. </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>data</em>&nbsp;</td><td>data values to be destroyed </td></tr>
  </table>
</dl>
<dl class="return" compact><dt><b>Returns:</b></dt><dd>status of the op, AXIS2_SUCCESS on success, AXIS2_FAILURE on error. </dd></dl>

</div>
</div><p>
<a class="anchor" name="7f8c57bb6d5dcf59ff55fd3cbc677da2"></a><!-- doxytag: member="axiom_xml_reader_ops::get_char_set_encoding" ref="7f8c57bb6d5dcf59ff55fd3cbc677da2" args=")(axiom_xml_reader_t *parser, const axutil_env_t *env)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">axis2_char_t*( *  <a class="el" href="structaxiom__xml__reader__ops.html#7f8c57bb6d5dcf59ff55fd3cbc677da2">axiom_xml_reader_ops::get_char_set_encoding</a>)(<a class="el" href="structaxiom__xml__reader.html">axiom_xml_reader_t</a> *parser, const <a class="el" href="structaxutil__env.html">axutil_env_t</a> *env)          </td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
Gets the char set encoding of the parser <dl compact><dt><b>Parameters:</b></dt><dd>
  <table border="0" cellspacing="2" cellpadding="0">
    <tr><td valign="top"></td><td valign="top"><em>parser</em>&nbsp;</td><td>xml parser </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>env</em>&nbsp;</td><td>environment </td></tr>
  </table>
</dl>
<dl class="return" compact><dt><b>Returns:</b></dt><dd>char set encoding string or NULL in failure </dd></dl>

</div>
</div><p>
<a class="anchor" name="61441a7ed7c3eb2d8e3755deb63383b2"></a><!-- doxytag: member="axiom_xml_reader_ops::get_namespace_uri" ref="61441a7ed7c3eb2d8e3755deb63383b2" args=")(axiom_xml_reader_t *parser, const axutil_env_t *env)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">axis2_char_t*( *  <a class="el" href="structaxiom__xml__reader__ops.html#61441a7ed7c3eb2d8e3755deb63383b2">axiom_xml_reader_ops::get_namespace_uri</a>)(<a class="el" href="structaxiom__xml__reader.html">axiom_xml_reader_t</a> *parser, const <a class="el" href="structaxutil__env.html">axutil_env_t</a> *env)          </td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
Returns the namespace uri associated with current node 
</div>
</div><p>
<hr>The documentation for this struct was generated from the following file:<ul>
<li><a class="el" href="axiom__xml__reader_8h-source.html">axiom_xml_reader.h</a></ul>
<hr size="1"><address style="text-align: right;"><small>Generated on Fri Apr 17 11:49:47 2009 for Axis2/C by&nbsp;
<a href="http://www.doxygen.org/index.html">
<img src="doxygen.png" alt="doxygen" align="middle" border="0"></a> 1.5.3 </small></address>
</body>
</html>


<|start_filename|>src/core/transport/http/sender/libcurl/libcurl_stream.c<|end_filename|>
/*
 * 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.
 */
#ifdef AXIS2_LIBCURL_ENABLED

#include "libcurl_stream.h"
#include <string.h>

typedef struct libcurl_stream_impl
{
    axutil_stream_t stream;
    axutil_stream_type_t stream_type;
    axis2_char_t *buffer;
    int size;
    int read_len;
}
libcurl_stream_impl_t;

#define AXIS2_INTF_TO_IMPL(stream) ((libcurl_stream_impl_t *)(stream))

/********************************Function headers******************************/
axutil_stream_type_t AXIS2_CALL libcurl_stream_get_type(
    axutil_stream_t * stream,
    const axutil_env_t * env);

int AXIS2_CALL libcurl_stream_write(
    axutil_stream_t * stream,
    const axutil_env_t * env,
    const void *buffer,
    size_t count);

int AXIS2_CALL libcurl_stream_read(
    axutil_stream_t * stream,
    const axutil_env_t * env,
    void *buffer,
    size_t count);

int AXIS2_CALL libcurl_stream_skip(
    axutil_stream_t * stream,
    const axutil_env_t * env,
    int count);

int AXIS2_CALL libcurl_stream_get_char(
    axutil_stream_t * stream,
    const axutil_env_t * env);

/************************* End of function headers ****************************/

/*
 * Internal function. Not exposed to outside
 */
AXIS2_EXTERN axutil_stream_t *AXIS2_CALL
axutil_stream_create_libcurl(
    const axutil_env_t * env,
    axis2_char_t * buffer,
    unsigned int size)
{
    libcurl_stream_impl_t *stream_impl = NULL;

    AXIS2_PARAM_CHECK(env->error, buffer, NULL);

    stream_impl =
        (libcurl_stream_impl_t *) AXIS2_MALLOC(env->allocator,
                                               sizeof(libcurl_stream_impl_t));

    if (!stream_impl)
    {
        AXIS2_HANDLE_ERROR(env, AXIS2_ERROR_NO_MEMORY, AXIS2_FAILURE);
        return NULL;
    }

    stream_impl->buffer = buffer;
    stream_impl->size = size;
    stream_impl->read_len = 0;
    stream_impl->stream_type = AXIS2_STREAM_MANAGED;

    axutil_stream_set_read(&(stream_impl->stream), env, libcurl_stream_read);
    axutil_stream_set_write(&(stream_impl->stream), env, libcurl_stream_write);
    axutil_stream_set_skip(&(stream_impl->stream), env, libcurl_stream_skip);

    return &(stream_impl->stream);
}

void AXIS2_CALL
libcurl_stream_free(
    void * stream,
    const axutil_env_t * env)
{
    libcurl_stream_impl_t *stream_impl = NULL;

    stream_impl = AXIS2_INTF_TO_IMPL(stream);
    AXIS2_FREE(env->allocator, stream_impl);

    return;
}

int AXIS2_CALL
libcurl_stream_read(
    axutil_stream_t * stream,
    const axutil_env_t * env,
    void *buffer,
    size_t count)
{
    libcurl_stream_impl_t *stream_impl = NULL;
    int read = 0;
    int unread = 0;

    stream_impl = AXIS2_INTF_TO_IMPL(stream);
    if (stream_impl->size >= (int)count)
    /* We are sure that the difference lies within the int range */
    {
        if (buffer && (stream_impl->size > stream_impl->read_len))
        {
            unread = (stream_impl->size - stream_impl->read_len);
            if (unread > (int)count)
            /* We are sure that the difference lies within the int range */
            {
                memcpy(buffer, &stream_impl->buffer[stream_impl->read_len],
                       count);
                read = (int)count;
                /* We are sure that the difference lies within the int range */
                stream_impl->read_len += read;
            }
            else
            {
                memcpy(buffer, &stream_impl->buffer[stream_impl->read_len],
                       unread);
                read = unread;
                stream_impl->read_len += read;
            }
        }
        else
            read = 0;
    }
    else
    {
        if (buffer && (stream_impl->size > stream_impl->read_len))
        {
            memcpy(buffer, &stream_impl->buffer[stream_impl->read_len],
                   stream_impl->size - stream_impl->read_len);
            read = stream_impl->size - stream_impl->read_len;
            stream_impl->read_len += read;
        }
        else
            read = 0;
    }
    return read;
}

int AXIS2_CALL
libcurl_stream_write(
    axutil_stream_t * stream,
    const axutil_env_t * env,
    const void *buffer,
    size_t count)
{
    return (int)count;
    /* We are sure that the difference lies within the int range */
}

int AXIS2_CALL
libcurl_stream_skip(
    axutil_stream_t * stream,
    const axutil_env_t * env,
    int count)
{
    return 0;
}

int AXIS2_CALL
libcurl_stream_get_char(
    axutil_stream_t * stream,
    const axutil_env_t * env)
{
    return 0;
}

#endif                          /* AXIS2_LIBCURL_ENABLED */



<|start_filename|>xdocs/api/html/group__axutil__log.html<|end_filename|>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html><head><meta http-equiv="Content-Type" content="text/html;charset=UTF-8">
<title>Axis2/C: log</title>
<link href="doxygen.css" rel="stylesheet" type="text/css">
<link href="tabs.css" rel="stylesheet" type="text/css">
</head><body>
<!-- Generated by Doxygen 1.5.3 -->
<div class="tabs">
  <ul>
    <li><a href="index.html"><span>Main&nbsp;Page</span></a></li>
    <li><a href="modules.html"><span>Modules</span></a></li>
    <li><a href="annotated.html"><span>Classes</span></a></li>
    <li><a href="files.html"><span>Files</span></a></li>
    <li><a href="dirs.html"><span>Directories</span></a></li>
    <li><a href="pages.html"><span>Related&nbsp;Pages</span></a></li>
    <li><a href="examples.html"><span>Examples</span></a></li>
    <li>
      <form action="search.php" method="get">
        <table cellspacing="0" cellpadding="0" border="0">
          <tr>
            <td><label>&nbsp;<u>S</u>earch&nbsp;for&nbsp;</label></td>
            <td><input type="text" name="query" value="" size="20" accesskey="s"/></td>
          </tr>
        </table>
      </form>
    </li>
  </ul>
</div>
<h1>log<br>
<small>
[<a class="el" href="group__axis2__util.html">utilities</a>]</small>
</h1><table border="0" cellpadding="0" cellspacing="0">
<tr><td></td></tr>
<tr><td colspan="2"><br><h2>Classes</h2></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top">struct &nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="structaxutil__log__ops.html">axutil_log_ops</a></td></tr>

<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Axis2 log ops struct.  <a href="structaxutil__log__ops.html#_details">More...</a><br></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top">struct &nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="structaxutil__log.html">axutil_log</a></td></tr>

<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Axis2 Log struct.  <a href="structaxutil__log.html#_details">More...</a><br></td></tr>
<tr><td colspan="2"><br><h2>Defines</h2></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="g5ab7c46437ad4fa1a63439e87bc1bfc2"></a><!-- doxytag: member="axutil_log::AXIS2_LOG_FREE" ref="g5ab7c46437ad4fa1a63439e87bc1bfc2" args="(allocator, log)" -->
#define&nbsp;</td><td class="memItemRight" valign="bottom"><b>AXIS2_LOG_FREE</b>(allocator, log)&nbsp;&nbsp;&nbsp;axutil_log_free(allocator, log)</td></tr>

<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="g0d322dbc6a5fa08d12c606f466763117"></a><!-- doxytag: member="axutil_log::AXIS2_LOG_WRITE" ref="g0d322dbc6a5fa08d12c606f466763117" args="(log, buffer, level, file)" -->
#define&nbsp;</td><td class="memItemRight" valign="bottom"><b>AXIS2_LOG_WRITE</b>(log, buffer, level, file)&nbsp;&nbsp;&nbsp;axutil_log_write(log, buffer, level, file, AXIS2_LOG_SI)</td></tr>

<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="gb59fc09f7e7becb91b363dffe6a6d932"></a><!-- doxytag: member="axutil_log::AXIS2_LOG_USER" ref="gb59fc09f7e7becb91b363dffe6a6d932" args="" -->
#define&nbsp;</td><td class="memItemRight" valign="bottom"><b>AXIS2_LOG_USER</b>&nbsp;&nbsp;&nbsp;axutil_log_impl_log_user</td></tr>

<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="g1b47453e0a3e4ab403f0ff82bc5c85fa"></a><!-- doxytag: member="axutil_log::AXIS2_LOG_DEBUG" ref="g1b47453e0a3e4ab403f0ff82bc5c85fa" args="" -->
#define&nbsp;</td><td class="memItemRight" valign="bottom"><b>AXIS2_LOG_DEBUG</b>&nbsp;&nbsp;&nbsp;axutil_log_impl_log_debug</td></tr>

<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="ged5d4b0fe87464cdd3949848a0054269"></a><!-- doxytag: member="axutil_log::AXIS2_LOG_INFO" ref="ged5d4b0fe87464cdd3949848a0054269" args="" -->
#define&nbsp;</td><td class="memItemRight" valign="bottom"><b>AXIS2_LOG_INFO</b>&nbsp;&nbsp;&nbsp;axutil_log_impl_log_info</td></tr>

<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="gda21302538ba7583b7c4f15f6675d477"></a><!-- doxytag: member="axutil_log::AXIS2_LOG_WARNING" ref="gda21302538ba7583b7c4f15f6675d477" args="" -->
#define&nbsp;</td><td class="memItemRight" valign="bottom"><b>AXIS2_LOG_WARNING</b>&nbsp;&nbsp;&nbsp;axutil_log_impl_log_warning</td></tr>

<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="g6dc83224f4b014a75b5373fd257fd6c7"></a><!-- doxytag: member="axutil_log::AXIS2_LOG_ERROR" ref="g6dc83224f4b014a75b5373fd257fd6c7" args="" -->
#define&nbsp;</td><td class="memItemRight" valign="bottom"><b>AXIS2_LOG_ERROR</b>&nbsp;&nbsp;&nbsp;axutil_log_impl_log_error</td></tr>

<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="g919cd3654aefc4b7aedc84a23aa142aa"></a><!-- doxytag: member="axutil_log::AXIS2_LOG_CRITICAL" ref="g919cd3654aefc4b7aedc84a23aa142aa" args="" -->
#define&nbsp;</td><td class="memItemRight" valign="bottom"><b>AXIS2_LOG_CRITICAL</b>&nbsp;&nbsp;&nbsp;axutil_log_impl_log_critical</td></tr>

<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="gc9dec581c7dfadcc1f0f0cae1a322729"></a><!-- doxytag: member="axutil_log::AXIS2_LOG_TRACE" ref="gc9dec581c7dfadcc1f0f0cae1a322729" args="" -->
#define&nbsp;</td><td class="memItemRight" valign="bottom"><b>AXIS2_LOG_TRACE</b>&nbsp;&nbsp;&nbsp;axutil_log_impl_log_trace</td></tr>

<tr><td class="memItemLeft" nowrap align="right" valign="top">#define&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__axutil__log.html#gf01a406e8f8b40a092a8e32c337ef029">AXIS2_LOG_PROJECT_PREFIX</a>&nbsp;&nbsp;&nbsp;&quot;[axis2c]&quot;</td></tr>

<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="gb865d69c9520f5805b5e4e939e867c9c"></a><!-- doxytag: member="axutil_log::AXIS2_LOG_USER_MSG" ref="gb865d69c9520f5805b5e4e939e867c9c" args="(log, msg)" -->
#define&nbsp;</td><td class="memItemRight" valign="bottom"><b>AXIS2_LOG_USER_MSG</b>(log, msg)&nbsp;&nbsp;&nbsp;AXIS2_LOG_USER (log, AXIS2_LOG_SI, &quot;%s %s&quot;, AXIS2_LOG_PROJECT_PREFIX, msg)</td></tr>

<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="gf58845a1ca2510250b0a50b38327e226"></a><!-- doxytag: member="axutil_log::AXIS2_LOG_DEBUG_MSG" ref="gf58845a1ca2510250b0a50b38327e226" args="(log, msg)" -->
#define&nbsp;</td><td class="memItemRight" valign="bottom"><b>AXIS2_LOG_DEBUG_MSG</b>(log, msg)&nbsp;&nbsp;&nbsp;AXIS2_LOG_DEBUG (log, AXIS2_LOG_SI, &quot;%s %s&quot;, AXIS2_LOG_PROJECT_PREFIX, msg)</td></tr>

<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="ge14e679de3b1f7ea298bb60ef22d6930"></a><!-- doxytag: member="axutil_log::AXIS2_LOG_INFO_MSG" ref="ge14e679de3b1f7ea298bb60ef22d6930" args="(log, msg)" -->
#define&nbsp;</td><td class="memItemRight" valign="bottom"><b>AXIS2_LOG_INFO_MSG</b>(log, msg)&nbsp;&nbsp;&nbsp;AXIS2_LOG_INFO (log, &quot;%s %s&quot;, AXIS2_LOG_PROJECT_PREFIX, msg)</td></tr>

<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="g12c9909faca5dee154aa61522a16b5f1"></a><!-- doxytag: member="axutil_log::AXIS2_LOG_WARNING_MSG" ref="g12c9909faca5dee154aa61522a16b5f1" args="(log, msg)" -->
#define&nbsp;</td><td class="memItemRight" valign="bottom"><b>AXIS2_LOG_WARNING_MSG</b>(log, msg)&nbsp;&nbsp;&nbsp;AXIS2_LOG_WARNING (log, AXIS2_LOG_SI, &quot;%s %s&quot;, AXIS2_LOG_PROJECT_PREFIX, msg)</td></tr>

<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="gc2f795ff09f4aeb95dd0a561214b2135"></a><!-- doxytag: member="axutil_log::AXIS2_LOG_ERROR_MSG" ref="gc2f795ff09f4aeb95dd0a561214b2135" args="(log, msg)" -->
#define&nbsp;</td><td class="memItemRight" valign="bottom"><b>AXIS2_LOG_ERROR_MSG</b>(log, msg)&nbsp;&nbsp;&nbsp;AXIS2_LOG_ERROR (log, AXIS2_LOG_SI, &quot;%s %s&quot;, AXIS2_LOG_PROJECT_PREFIX, msg)</td></tr>

<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="g2b61303ec226e10951315787e8358794"></a><!-- doxytag: member="axutil_log::AXIS2_LOG_CRITICAL_MSG" ref="g2b61303ec226e10951315787e8358794" args="(log, msg)" -->
#define&nbsp;</td><td class="memItemRight" valign="bottom"><b>AXIS2_LOG_CRITICAL_MSG</b>(log, msg)&nbsp;&nbsp;&nbsp;AXIS2_LOG_CRITICAL (log, AXIS2_LOG_SI, &quot;%s %s&quot;, AXIS2_LOG_PROJECT_PREFIX, msg)</td></tr>

<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="g5708db08e730a072aedb715b7f329e5a"></a><!-- doxytag: member="axutil_log::AXIS2_LOG_TRACE_MSG" ref="g5708db08e730a072aedb715b7f329e5a" args="(log, msg)" -->
#define&nbsp;</td><td class="memItemRight" valign="bottom"><b>AXIS2_LOG_TRACE_MSG</b>(log, msg)&nbsp;&nbsp;&nbsp;AXIS2_LOG_TRACE (log, AXIS2_LOG_SI, &quot;%s %s&quot;, AXIS2_LOG_PROJECT_PREFIX, msg)</td></tr>

<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="g32188d0af06439b70c3ba50f5f502305"></a><!-- doxytag: member="axutil_log::AXIS2_LEN_VALUE" ref="g32188d0af06439b70c3ba50f5f502305" args="" -->
#define&nbsp;</td><td class="memItemRight" valign="bottom"><b>AXIS2_LEN_VALUE</b>&nbsp;&nbsp;&nbsp;6000</td></tr>

<tr><td colspan="2"><br><h2>Typedefs</h2></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top">typedef enum <br>
<a class="el" href="group__axutil__log.html#gd0a4d978fc80ce29636196b75e21b06d">axutil_log_levels</a>&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__axutil__log.html#g0c477f6f8724a6258a9caaabfcf2c482">axutil_log_levels_t</a></td></tr>

<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Axis2 log levels.  <a href="#g0c477f6f8724a6258a9caaabfcf2c482"></a><br></td></tr>
<tr><td colspan="2"><br><h2>Enumerations</h2></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top">enum &nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__axutil__log.html#gd0a4d978fc80ce29636196b75e21b06d">axutil_log_levels</a> { <br>
&nbsp;&nbsp;<a class="el" href="group__axutil__log.html#ggd0a4d978fc80ce29636196b75e21b06d3d9bff0d07c3094f69ff9e74ef717ed7">AXIS2_LOG_LEVEL_CRITICAL</a> =  0, 
<a class="el" href="group__axutil__log.html#ggd0a4d978fc80ce29636196b75e21b06d410d801a5f0eb97df330d0da1047619e">AXIS2_LOG_LEVEL_ERROR</a>, 
<a class="el" href="group__axutil__log.html#ggd0a4d978fc80ce29636196b75e21b06de7f00415a79bf4f624bda5ddd6bbbf8e">AXIS2_LOG_LEVEL_WARNING</a>, 
<a class="el" href="group__axutil__log.html#ggd0a4d978fc80ce29636196b75e21b06dd53347fbe4d1731713539c819a5a5b4f">AXIS2_LOG_LEVEL_INFO</a>, 
<br>
&nbsp;&nbsp;<a class="el" href="group__axutil__log.html#ggd0a4d978fc80ce29636196b75e21b06d4768c51dc9b67f5e514c96012f636f1a">AXIS2_LOG_LEVEL_DEBUG</a>, 
<a class="el" href="group__axutil__log.html#ggd0a4d978fc80ce29636196b75e21b06d441caacbd7c7caa46d508d5c12e78a4f">AXIS2_LOG_LEVEL_USER</a>, 
<a class="el" href="group__axutil__log.html#ggd0a4d978fc80ce29636196b75e21b06d2d474b93f843a054c6025515cef68aea">AXIS2_LOG_LEVEL_TRACE</a>
<br>
 }</td></tr>

<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Axis2 log levels.  <a href="group__axutil__log.html#gd0a4d978fc80ce29636196b75e21b06d">More...</a><br></td></tr>
<tr><td colspan="2"><br><h2>Functions</h2></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="g19929b09aca81790b1d774e867aecde3"></a><!-- doxytag: member="axutil_log::axutil_log_impl_log_critical" ref="g19929b09aca81790b1d774e867aecde3" args="(axutil_log_t *log, const axis2_char_t *filename, const int linenumber, const axis2_char_t *format,...)" -->
AXIS2_EXTERN void&nbsp;</td><td class="memItemRight" valign="bottom"><b>axutil_log_impl_log_critical</b> (<a class="el" href="structaxutil__log.html">axutil_log_t</a> *log, const axis2_char_t *filename, const int linenumber, const axis2_char_t *format,...)</td></tr>

<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="g2e356a5a2d8637ad91b083dcd3565f8d"></a><!-- doxytag: member="axutil_log::axutil_log_impl_log_error" ref="g2e356a5a2d8637ad91b083dcd3565f8d" args="(axutil_log_t *log, const axis2_char_t *filename, const int linenumber, const axis2_char_t *format,...)" -->
AXIS2_EXTERN void&nbsp;</td><td class="memItemRight" valign="bottom"><b>axutil_log_impl_log_error</b> (<a class="el" href="structaxutil__log.html">axutil_log_t</a> *log, const axis2_char_t *filename, const int linenumber, const axis2_char_t *format,...)</td></tr>

<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="gf3582db1ae8af00cce321f0de5d98402"></a><!-- doxytag: member="axutil_log::axutil_log_impl_log_warning" ref="gf3582db1ae8af00cce321f0de5d98402" args="(axutil_log_t *log, const axis2_char_t *filename, const int linenumber, const axis2_char_t *format,...)" -->
AXIS2_EXTERN void&nbsp;</td><td class="memItemRight" valign="bottom"><b>axutil_log_impl_log_warning</b> (<a class="el" href="structaxutil__log.html">axutil_log_t</a> *log, const axis2_char_t *filename, const int linenumber, const axis2_char_t *format,...)</td></tr>

<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="ga4dd2eaee66e6166d1365aa7e1e59a93"></a><!-- doxytag: member="axutil_log::axutil_log_impl_log_info" ref="ga4dd2eaee66e6166d1365aa7e1e59a93" args="(axutil_log_t *log, const axis2_char_t *format,...)" -->
AXIS2_EXTERN void&nbsp;</td><td class="memItemRight" valign="bottom"><b>axutil_log_impl_log_info</b> (<a class="el" href="structaxutil__log.html">axutil_log_t</a> *log, const axis2_char_t *format,...)</td></tr>

<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="g3328fbc44be82f945fc6e6b93edbb7ad"></a><!-- doxytag: member="axutil_log::axutil_log_impl_log_user" ref="g3328fbc44be82f945fc6e6b93edbb7ad" args="(axutil_log_t *log, const axis2_char_t *filename, const int linenumber, const axis2_char_t *format,...)" -->
AXIS2_EXTERN void&nbsp;</td><td class="memItemRight" valign="bottom"><b>axutil_log_impl_log_user</b> (<a class="el" href="structaxutil__log.html">axutil_log_t</a> *log, const axis2_char_t *filename, const int linenumber, const axis2_char_t *format,...)</td></tr>

<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="g09fd82d5f61f601855bad52a0dd4ba14"></a><!-- doxytag: member="axutil_log::axutil_log_impl_log_debug" ref="g09fd82d5f61f601855bad52a0dd4ba14" args="(axutil_log_t *log, const axis2_char_t *filename, const int linenumber, const axis2_char_t *format,...)" -->
AXIS2_EXTERN void&nbsp;</td><td class="memItemRight" valign="bottom"><b>axutil_log_impl_log_debug</b> (<a class="el" href="structaxutil__log.html">axutil_log_t</a> *log, const axis2_char_t *filename, const int linenumber, const axis2_char_t *format,...)</td></tr>

<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="g951c8904b99a0009c2d3decab82c16e2"></a><!-- doxytag: member="axutil_log::axutil_log_impl_log_trace" ref="g951c8904b99a0009c2d3decab82c16e2" args="(axutil_log_t *log, const axis2_char_t *filename, const int linenumber, const axis2_char_t *format,...)" -->
AXIS2_EXTERN void&nbsp;</td><td class="memItemRight" valign="bottom"><b>axutil_log_impl_log_trace</b> (<a class="el" href="structaxutil__log.html">axutil_log_t</a> *log, const axis2_char_t *filename, const int linenumber, const axis2_char_t *format,...)</td></tr>

<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="gd1b57eac0cf4e90bf6c6fed6b058aa36"></a><!-- doxytag: member="axutil_log::axutil_log_free" ref="gd1b57eac0cf4e90bf6c6fed6b058aa36" args="(axutil_allocator_t *allocator, struct axutil_log *log)" -->
AXIS2_EXTERN void&nbsp;</td><td class="memItemRight" valign="bottom"><b>axutil_log_free</b> (<a class="el" href="structaxutil__allocator.html">axutil_allocator_t</a> *allocator, struct <a class="el" href="structaxutil__log.html">axutil_log</a> *log)</td></tr>

<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="g6c6c2b2a80ae4fa9f7090e3d5c7d53ec"></a><!-- doxytag: member="axutil_log::axutil_log_write" ref="g6c6c2b2a80ae4fa9f7090e3d5c7d53ec" args="(axutil_log_t *log, const axis2_char_t *buffer, axutil_log_levels_t level, const axis2_char_t *file, const int line)" -->
AXIS2_EXTERN void&nbsp;</td><td class="memItemRight" valign="bottom"><b>axutil_log_write</b> (<a class="el" href="structaxutil__log.html">axutil_log_t</a> *log, const axis2_char_t *buffer, <a class="el" href="group__axutil__log.html#g0c477f6f8724a6258a9caaabfcf2c482">axutil_log_levels_t</a> level, const axis2_char_t *file, const int line)</td></tr>

<tr><td class="memItemLeft" nowrap align="right" valign="top">AXIS2_EXTERN <br>
<a class="el" href="structaxutil__log.html">axutil_log_t</a> *&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__axutil__log.html#g812821326a1fb8ee54b2d1b5adbd8c9d">axutil_log_create</a> (<a class="el" href="structaxutil__allocator.html">axutil_allocator_t</a> *allocator, <a class="el" href="structaxutil__log__ops.html">axutil_log_ops_t</a> *ops, const axis2_char_t *stream_name)</td></tr>

<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="g0a28c225228582e51392ee0c8bc264c4"></a><!-- doxytag: member="axutil_log::axutil_log_impl_get_time_str" ref="g0a28c225228582e51392ee0c8bc264c4" args="(void)" -->
AXIS2_EXTERN <br>
axis2_char_t *&nbsp;</td><td class="memItemRight" valign="bottom"><b>axutil_log_impl_get_time_str</b> (void)</td></tr>

<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="g4e372dee3999df3b961708add2895e3d"></a><!-- doxytag: member="axutil_log::axutil_log_create_default" ref="g4e372dee3999df3b961708add2895e3d" args="(axutil_allocator_t *allocator)" -->
AXIS2_EXTERN <br>
<a class="el" href="structaxutil__log.html">axutil_log_t</a> *&nbsp;</td><td class="memItemRight" valign="bottom"><b>axutil_log_create_default</b> (<a class="el" href="structaxutil__allocator.html">axutil_allocator_t</a> *allocator)</td></tr>

</table>
<hr><h2>Define Documentation</h2>
<a class="anchor" name="gf01a406e8f8b40a092a8e32c337ef029"></a><!-- doxytag: member="axutil_log.h::AXIS2_LOG_PROJECT_PREFIX" ref="gf01a406e8f8b40a092a8e32c337ef029" args="" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">#define AXIS2_LOG_PROJECT_PREFIX&nbsp;&nbsp;&nbsp;&quot;[axis2c]&quot;          </td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
Each module/project should undef and define the following.. 
</div>
</div><p>
<hr><h2>Typedef Documentation</h2>
<a class="anchor" name="g0c477f6f8724a6258a9caaabfcf2c482"></a><!-- doxytag: member="axutil_log.h::axutil_log_levels_t" ref="g0c477f6f8724a6258a9caaabfcf2c482" args="" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">typedef enum <a class="el" href="group__axutil__log.html#gd0a4d978fc80ce29636196b75e21b06d">axutil_log_levels</a>  <a class="el" href="group__axutil__log.html#g0c477f6f8724a6258a9caaabfcf2c482">axutil_log_levels_t</a>          </td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
Axis2 log levels. 
<p>
Examples To write debug information to log AXIS2_LOG_DEBUG(log,AXIS2_LOG_SI,"log this %s %d","test",123); This would log "log this test 123" into the log file<p>
similar macros are defined for different log levels: CRITICAL,ERROR,WARNING and INFO and SERVICE<p>
CRITICAL and ERROR logs are always written to file and other logs are written depending on the log level set (log-&gt;level) 
</div>
</div><p>
<hr><h2>Enumeration Type Documentation</h2>
<a class="anchor" name="gd0a4d978fc80ce29636196b75e21b06d"></a><!-- doxytag: member="axutil_log.h::axutil_log_levels" ref="gd0a4d978fc80ce29636196b75e21b06d" args="" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">enum <a class="el" href="group__axutil__log.html#gd0a4d978fc80ce29636196b75e21b06d">axutil_log_levels</a>          </td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
Axis2 log levels. 
<p>
Examples To write debug information to log AXIS2_LOG_DEBUG(log,AXIS2_LOG_SI,"log this %s %d","test",123); This would log "log this test 123" into the log file<p>
similar macros are defined for different log levels: CRITICAL,ERROR,WARNING and INFO and SERVICE<p>
CRITICAL and ERROR logs are always written to file and other logs are written depending on the log level set (log-&gt;level) <dl compact><dt><b>Enumerator: </b></dt><dd>
<table border="0" cellspacing="2" cellpadding="0">
<tr><td valign="top"><em><a class="anchor" name="ggd0a4d978fc80ce29636196b75e21b06d3d9bff0d07c3094f69ff9e74ef717ed7"></a><!-- doxytag: member="AXIS2_LOG_LEVEL_CRITICAL" ref="ggd0a4d978fc80ce29636196b75e21b06d3d9bff0d07c3094f69ff9e74ef717ed7" args="" -->AXIS2_LOG_LEVEL_CRITICAL</em>&nbsp;</td><td>
Critical level, logs only critical errors </td></tr>
<tr><td valign="top"><em><a class="anchor" name="ggd0a4d978fc80ce29636196b75e21b06d410d801a5f0eb97df330d0da1047619e"></a><!-- doxytag: member="AXIS2_LOG_LEVEL_ERROR" ref="ggd0a4d978fc80ce29636196b75e21b06d410d801a5f0eb97df330d0da1047619e" args="" -->AXIS2_LOG_LEVEL_ERROR</em>&nbsp;</td><td>
Error level, logs only errors </td></tr>
<tr><td valign="top"><em><a class="anchor" name="ggd0a4d978fc80ce29636196b75e21b06de7f00415a79bf4f624bda5ddd6bbbf8e"></a><!-- doxytag: member="AXIS2_LOG_LEVEL_WARNING" ref="ggd0a4d978fc80ce29636196b75e21b06de7f00415a79bf4f624bda5ddd6bbbf8e" args="" -->AXIS2_LOG_LEVEL_WARNING</em>&nbsp;</td><td>
Warning level, logs only warnings </td></tr>
<tr><td valign="top"><em><a class="anchor" name="ggd0a4d978fc80ce29636196b75e21b06dd53347fbe4d1731713539c819a5a5b4f"></a><!-- doxytag: member="AXIS2_LOG_LEVEL_INFO" ref="ggd0a4d978fc80ce29636196b75e21b06dd53347fbe4d1731713539c819a5a5b4f" args="" -->AXIS2_LOG_LEVEL_INFO</em>&nbsp;</td><td>
Info level, logs information </td></tr>
<tr><td valign="top"><em><a class="anchor" name="ggd0a4d978fc80ce29636196b75e21b06d4768c51dc9b67f5e514c96012f636f1a"></a><!-- doxytag: member="AXIS2_LOG_LEVEL_DEBUG" ref="ggd0a4d978fc80ce29636196b75e21b06d4768c51dc9b67f5e514c96012f636f1a" args="" -->AXIS2_LOG_LEVEL_DEBUG</em>&nbsp;</td><td>
Debug level, logs everything </td></tr>
<tr><td valign="top"><em><a class="anchor" name="ggd0a4d978fc80ce29636196b75e21b06d441caacbd7c7caa46d508d5c12e78a4f"></a><!-- doxytag: member="AXIS2_LOG_LEVEL_USER" ref="ggd0a4d978fc80ce29636196b75e21b06d441caacbd7c7caa46d508d5c12e78a4f" args="" -->AXIS2_LOG_LEVEL_USER</em>&nbsp;</td><td>
User level, logs only user level debug messages </td></tr>
<tr><td valign="top"><em><a class="anchor" name="ggd0a4d978fc80ce29636196b75e21b06d2d474b93f843a054c6025515cef68aea"></a><!-- doxytag: member="AXIS2_LOG_LEVEL_TRACE" ref="ggd0a4d978fc80ce29636196b75e21b06d2d474b93f843a054c6025515cef68aea" args="" -->AXIS2_LOG_LEVEL_TRACE</em>&nbsp;</td><td>
Trace level, Enable with compiler time option AXIS2_TRACE </td></tr>
</table>
</dl>

</div>
</div><p>
<hr><h2>Function Documentation</h2>
<a class="anchor" name="g812821326a1fb8ee54b2d1b5adbd8c9d"></a><!-- doxytag: member="axutil_log_default.h::axutil_log_create" ref="g812821326a1fb8ee54b2d1b5adbd8c9d" args="(axutil_allocator_t *allocator, axutil_log_ops_t *ops, const axis2_char_t *stream_name)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">AXIS2_EXTERN <a class="el" href="structaxutil__log.html">axutil_log_t</a>* axutil_log_create           </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="structaxutil__allocator.html">axutil_allocator_t</a> *&nbsp;</td>
          <td class="paramname"> <em>allocator</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype"><a class="el" href="structaxutil__log__ops.html">axutil_log_ops_t</a> *&nbsp;</td>
          <td class="paramname"> <em>ops</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const axis2_char_t *&nbsp;</td>
          <td class="paramname"> <em>stream_name</em></td><td>&nbsp;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td><td width="100%"></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
Creates a log struct <dl compact><dt><b>Parameters:</b></dt><dd>
  <table border="0" cellspacing="2" cellpadding="0">
    <tr><td valign="top"></td><td valign="top"><em>allocator</em>&nbsp;</td><td>allocator to be used. Mandatory, cannot be NULL </td></tr>
  </table>
</dl>
<dl class="return" compact><dt><b>Returns:</b></dt><dd>pointer to the newly created log struct </dd></dl>

</div>
</div><p>
<hr size="1"><address style="text-align: right;"><small>Generated on Fri Apr 17 11:49:46 2009 for Axis2/C by&nbsp;
<a href="http://www.doxygen.org/index.html">
<img src="doxygen.png" alt="doxygen" align="middle" border="0"></a> 1.5.3 </small></address>
</body>
</html>


<|start_filename|>src/core/transport/http/server/IIS/axis2_iis_stream.c<|end_filename|>

/*
 * 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.
 */

#include <string.h>
#include <stdlib.h>
#include "axis2_iis_stream.h"
#include <httpext.h>

/**
 * @brief Stream struct impl
 * Streaming mechanisms for iis web server
 */

typedef struct iis_stream_impl
{
    axutil_stream_t stream;
    axutil_stream_type_t stream_type;
    LPEXTENSION_CONTROL_BLOCK lpECB;
    unsigned int cur_pos;
    void *cur_position;
}
iis_stream_impl_t;

#define AXIS2_INTF_TO_IMPL(stream) ((iis_stream_impl_t *)(stream))

axutil_stream_type_t AXIS2_CALL iis_stream_get_type(
    axutil_stream_t * stream,
    const axutil_env_t * env);

int AXIS2_CALL iis_stream_write(
    axutil_stream_t * stream,
    const axutil_env_t * env,
    const void *buffer,
    size_t count);

int AXIS2_CALL iis_stream_read(
    axutil_stream_t * stream,
    const axutil_env_t * env,
    void *buffer,
    size_t count);

int AXIS2_CALL iis_stream_skip(
    axutil_stream_t * stream,
    const axutil_env_t * env,
    int count);

int AXIS2_CALL iis_stream_get_char(
    axutil_stream_t * stream,
    const axutil_env_t * env);

axutil_stream_t *AXIS2_CALL
axutil_stream_create_iis(
    const axutil_env_t * env,
    LPEXTENSION_CONTROL_BLOCK lpECB)
{
    iis_stream_impl_t *stream_impl = NULL;
    AXIS2_ENV_CHECK(env, NULL);
    AXIS2_PARAM_CHECK(env->error, lpECB, NULL);

    stream_impl =
        (iis_stream_impl_t *) AXIS2_MALLOC(env->allocator,
                                           sizeof(iis_stream_impl_t));

    if (!stream_impl)
    {
        AXIS2_ERROR_SET(env->error, AXIS2_ERROR_NO_MEMORY, AXIS2_FAILURE);
        return NULL;
    }
    stream_impl->cur_pos = 0;
    stream_impl->cur_position = NULL;
    stream_impl->lpECB = lpECB;
    stream_impl->stream_type = AXIS2_STREAM_MANAGED;

    axutil_stream_set_read(&(stream_impl->stream), env, iis_stream_read);
    axutil_stream_set_write(&(stream_impl->stream), env, iis_stream_write);
    axutil_stream_set_skip(&(stream_impl->stream), env, iis_stream_skip);

    return &(stream_impl->stream);
}

int AXIS2_CALL
iis_stream_read(
    axutil_stream_t * stream,
    const axutil_env_t * env,
    void *buffer,
    size_t count)
{
    void *temp_buff = NULL;
    unsigned int data_to_read = 0;
    DWORD ret_val = TRUE;
    DWORD read_bytes = (DWORD) count;
    iis_stream_impl_t *stream_impl = NULL;
    char *temp = NULL;

    AXIS2_ENV_CHECK(env, AXIS2_CRITICAL_FAILURE);
    stream_impl = (iis_stream_impl_t *) stream;
    
    if (stream_impl->cur_pos == 0)
        stream_impl->cur_position = stream_impl->lpECB->lpbData;

    /* If this is the case all the bytes are in the lpECB->lpbData buffer*/
    if (stream_impl->lpECB->cbAvailable == stream_impl->lpECB->cbTotalBytes)
    {
        /* Cannot read more than in the buffer.*/
        if (count + stream_impl->cur_pos <= stream_impl->lpECB->cbAvailable)
            data_to_read = (unsigned) count;
        else
            data_to_read =
                stream_impl->lpECB->cbTotalBytes - stream_impl->cur_pos;

        memcpy(buffer, stream_impl->cur_position, data_to_read);
        temp = (char *)(stream_impl->cur_position);
        temp += data_to_read;
        stream_impl->cur_position = temp;
        temp = NULL;
        stream_impl->cur_pos += data_to_read;
        read_bytes = data_to_read;
    }
    else if (stream_impl->lpECB->cbAvailable == -1)
    {
        ret_val =
            stream_impl->lpECB->ReadClient(stream_impl->lpECB->ConnID, buffer,
                                           &read_bytes);
    }
    else if (stream_impl->lpECB->cbAvailable < stream_impl->lpECB->cbTotalBytes)
    {
        if (stream_impl->cur_pos > stream_impl->lpECB->cbAvailable)
        {
            ret_val =
                stream_impl->lpECB->ReadClient(stream_impl->lpECB->ConnID,
                                               buffer, &read_bytes);
        }
        else if (stream_impl->cur_pos + count > stream_impl->lpECB->cbAvailable
                 && stream_impl->cur_pos < stream_impl->lpECB->cbAvailable)
        {
            int read_length = 0;
            if (count + stream_impl->cur_pos <= stream_impl->lpECB->cbAvailable)
                read_length = (unsigned) count;
            else
                read_length = 
                    stream_impl->lpECB->cbTotalBytes - stream_impl->cur_pos;
            data_to_read =
                stream_impl->lpECB->cbAvailable - stream_impl->cur_pos;
            memcpy(buffer, stream_impl->cur_position, data_to_read);
            
            read_bytes =
                stream_impl->cur_pos + read_length - stream_impl->lpECB->cbAvailable;
            temp_buff = malloc(read_bytes);

            if (temp_buff == NULL)
                return data_to_read;
            ret_val =
                stream_impl->lpECB->ReadClient(stream_impl->lpECB->ConnID,
                                               temp_buff, &read_bytes);
            memcpy(((char *) buffer + data_to_read), temp_buff, read_bytes);
            read_bytes += data_to_read;
            temp = (char *)(stream_impl->cur_position);
            temp += read_bytes;
            stream_impl->cur_position = temp;
            stream_impl->cur_pos += (unsigned) read_bytes;
        }
        else
        {
            memcpy(buffer, stream_impl->cur_position, count);
            temp = (char *)(stream_impl->cur_position);
            temp += count;
            stream_impl->cur_position = temp;
            temp = NULL;
            stream_impl->cur_pos += (unsigned) count;
            read_bytes = (int) count;
        }
    }
    if (ret_val == TRUE)
        return read_bytes;
    else
        return -1;
}

int AXIS2_CALL
iis_stream_write(
    axutil_stream_t * stream,
    const axutil_env_t * env,
    const void *buf,
    size_t count)
{
    DWORD ret_val = NO_ERROR;
    unsigned long bytes_sent = 0;
    iis_stream_impl_t *stream_impl = NULL;
    axis2_char_t *buffer = NULL;

    AXIS2_ENV_CHECK(env, AXIS2_CRITICAL_FAILURE);
    AXIS2_PARAM_CHECK(env->error, buf, AXIS2_FAILURE);
    stream_impl = AXIS2_INTF_TO_IMPL(stream);
    buffer = (axis2_char_t *) buf;
    bytes_sent = (unsigned) strlen(buffer);
    
    if (count <= 0)
    {
        return (int) count;
    }
    /* assume that buffer is not null terminated */
    ret_val =
        stream_impl->lpECB->WriteClient(stream_impl->lpECB->ConnID, buffer,
                                        &bytes_sent, HSE_IO_SYNC);
    if (ret_val == TRUE)
        return (int)bytes_sent;
    else
        return -1;
}

int AXIS2_CALL
iis_stream_skip(
    axutil_stream_t * stream,
    const axutil_env_t * env,
    int count)
{
    DWORD ret_val = TRUE;
    iis_stream_impl_t *stream_impl = NULL;
    void *temp_buff = NULL;
    int data_to_read = 0;
    DWORD read_bytes = (DWORD) count;
    char *temp = NULL;

    AXIS2_ENV_CHECK(env, AXIS2_CRITICAL_FAILURE);
    stream_impl = (iis_stream_impl_t *) stream;

    if (stream_impl->cur_pos == 0)
        stream_impl->cur_position = stream_impl->lpECB->lpbData;

    if (stream_impl->lpECB->cbAvailable == stream_impl->lpECB->cbTotalBytes)
    {
        if (count + stream_impl->cur_pos <= stream_impl->lpECB->cbAvailable)
            data_to_read = count;
        else
            data_to_read =
                stream_impl->lpECB->cbAvailable - stream_impl->cur_pos;

        temp = (char *)(stream_impl->cur_position);
        temp += data_to_read;
        stream_impl->cur_position = temp;
        temp = NULL;
        stream_impl->cur_pos += data_to_read;
        read_bytes = data_to_read;
    }
    else if (stream_impl->lpECB->cbAvailable == -1)
    {
        temp_buff = malloc(read_bytes);
        ret_val =
            stream_impl->lpECB->ReadClient(stream_impl->lpECB->ConnID,
                                           temp_buff, &read_bytes);
        free(temp_buff);
    }
    else if (stream_impl->lpECB->cbAvailable < stream_impl->lpECB->cbTotalBytes)
    {
        if (stream_impl->cur_pos > stream_impl->lpECB->cbAvailable)
        {
            temp_buff = malloc(read_bytes);
            ret_val =
                stream_impl->lpECB->ReadClient(stream_impl->lpECB->ConnID,
                                               temp_buff, &read_bytes);
            free(temp_buff);
        }
        else if (stream_impl->cur_pos + count > stream_impl->lpECB->cbAvailable
                 && stream_impl->cur_pos < stream_impl->lpECB->cbAvailable)
        {
            data_to_read =
                stream_impl->lpECB->cbAvailable - stream_impl->cur_pos;
            read_bytes =
                stream_impl->cur_pos + count - stream_impl->lpECB->cbAvailable;
            temp_buff = malloc(read_bytes);

            if (temp_buff == NULL)
                return data_to_read;

            ret_val =
                stream_impl->lpECB->ReadClient(stream_impl->lpECB->ConnID,
                                               temp_buff, &read_bytes);
            read_bytes += data_to_read;
            free(temp_buff);
        }
        else
        {
            temp = (char *)(stream_impl->cur_position);
            temp += count;
            stream_impl->cur_position = temp;
            temp = NULL;
            stream_impl->cur_pos += count;
            read_bytes = count;
        }
    }
    if (ret_val == FALSE)
    {
        return -1;
    }
    return read_bytes;
}

int AXIS2_CALL
iis_stream_get_char(
    axutil_stream_t * stream,
    const axutil_env_t * env)
{
    int ret = -1;
    AXIS2_ENV_CHECK(env, AXIS2_CRITICAL_FAILURE);

    return ret;
}

axutil_stream_type_t AXIS2_CALL
iis_stream_get_type(
    axutil_stream_t * stream,
    const axutil_env_t * env)
{
    AXIS2_ENV_CHECK(env, AXIS2_CRITICAL_FAILURE);
    return AXIS2_INTF_TO_IMPL(stream)->stream_type;
}


<|start_filename|>src/core/transport/tcp/receiver/tcp_receiver.c<|end_filename|>

/*
 * 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.
 */

#include <axis2_tcp_transport.h>
#include <axis2_tcp_svr_thread.h>
#include <axis2_tcp_server.h>
#include <axis2_transport_in_desc.h>
#include <axutil_param_container.h>
#include <axutil_url.h>
#include <axis2_conf_init.h>
#include <stdlib.h>

/**
 * @brief TCP Client struct impl
 *   Axis2 TCP Client impl
 */

typedef struct axis2_tcp_server_impl
{
    axis2_transport_receiver_t tcp_server;
    axis2_tcp_svr_thread_t *svr_thread;
    int port;
    axis2_conf_ctx_t *conf_ctx;
    axis2_conf_ctx_t *conf_ctx_private;
    axis2_conf_t *conf;
}
axis2_tcp_server_impl_t;

#define AXIS2_INTF_TO_IMPL(tcp_server) \
                ((axis2_tcp_server_impl_t *)(tcp_server))

/***************************** Function headers *******************************/

axis2_status_t AXIS2_CALL axis2_tcp_server_init(
    axis2_transport_receiver_t * server,
    const axutil_env_t * env,
    axis2_conf_ctx_t * conf_ctx,
    axis2_transport_in_desc_t * in_desc);

axis2_status_t AXIS2_CALL axis2_tcp_server_start(
    axis2_transport_receiver_t * server,
    const axutil_env_t * env);

axis2_status_t AXIS2_CALL axis2_tcp_server_stop(
    axis2_transport_receiver_t * server,
    const axutil_env_t * env);

axis2_conf_ctx_t *AXIS2_CALL axis2_tcp_server_get_conf_ctx(
    axis2_transport_receiver_t * server,
    const axutil_env_t * env);

axis2_endpoint_ref_t *AXIS2_CALL axis2_tcp_server_get_reply_to_epr(
    axis2_transport_receiver_t * server,
    const axutil_env_t * env,
    const axis2_char_t * svc_name);

axis2_bool_t AXIS2_CALL axis2_tcp_server_is_running(
    axis2_transport_receiver_t * server,
    const axutil_env_t * env);

void AXIS2_CALL axis2_tcp_server_free(
    axis2_transport_receiver_t * server,
    const axutil_env_t * env);

static const axis2_transport_receiver_ops_t tcp_transport_receiver_ops_var = {
    axis2_tcp_server_init,
    axis2_tcp_server_start,
    axis2_tcp_server_get_reply_to_epr,
    axis2_tcp_server_get_conf_ctx,
    axis2_tcp_server_is_running,
    axis2_tcp_server_stop,
    axis2_tcp_server_free
};

AXIS2_EXTERN axis2_transport_receiver_t *AXIS2_CALL
axis2_tcp_server_create(
    const axutil_env_t * env,
    const axis2_char_t * repo,
    const int port)
{
    axis2_tcp_server_impl_t *server_impl = NULL;
    AXIS2_ENV_CHECK(env, NULL);

    server_impl = (axis2_tcp_server_impl_t *) AXIS2_MALLOC
        (env->allocator, sizeof(axis2_tcp_server_impl_t));

    if (!server_impl)
    {
        AXIS2_ERROR_SET(env->error, AXIS2_ERROR_NO_MEMORY, AXIS2_FAILURE);
        return NULL;
    }

    server_impl->svr_thread = NULL;
    server_impl->conf_ctx = NULL;
    server_impl->conf_ctx_private = NULL;
    server_impl->port = port;

    server_impl->tcp_server.ops = &tcp_transport_receiver_ops_var;

    if (repo)
    {

        /**
         * We first create a private conf ctx which is owned by this server
         * we only free this private conf context. We should never free the
         * server_impl->conf_ctx because it may own to any other object which
         * may lead to double free
         */
        server_impl->conf_ctx_private = axis2_build_conf_ctx(env, repo);
        if (!server_impl->conf_ctx_private)
        {
            axis2_tcp_server_free((axis2_transport_receiver_t *) server_impl,
                                  env);
            return NULL;
        }
        server_impl->conf_ctx = server_impl->conf_ctx_private;
    }
    return &(server_impl->tcp_server);
}

void AXIS2_CALL
axis2_tcp_server_free(
    axis2_transport_receiver_t * server,
    const axutil_env_t * env)
{
    axis2_tcp_server_impl_t *server_impl = NULL;
    AXIS2_ENV_CHECK(env, void);
    server_impl = AXIS2_INTF_TO_IMPL(server);
    if (server_impl->svr_thread)
    {
        axis2_tcp_svr_thread_destroy(server_impl->svr_thread, env);
        axis2_tcp_svr_thread_free(server_impl->svr_thread, env);
        server_impl->svr_thread = NULL;
    }

    if (server_impl->conf_ctx_private)
    {
        axis2_conf_ctx_free(server_impl->conf_ctx_private, env);
        server_impl->conf_ctx_private = NULL;
    }

    /**
     * Do not free this. It may own to some other object
     */
    server_impl->conf_ctx = NULL;
    AXIS2_FREE(env->allocator, server_impl);
    return;
}

axis2_status_t AXIS2_CALL
axis2_tcp_server_init(
    axis2_transport_receiver_t * server,
    const axutil_env_t * env,
    axis2_conf_ctx_t * conf_ctx,
    axis2_transport_in_desc_t * in_desc)
{
    axis2_tcp_server_impl_t *server_impl = NULL;
    axis2_char_t *port_str = NULL;
    axutil_param_t *param = NULL;

    AXIS2_ENV_CHECK(env, AXIS2_FAILURE);
    server_impl = AXIS2_INTF_TO_IMPL(server);

    server_impl->conf_ctx = conf_ctx;
    param =
        (axutil_param_t *)
        axutil_param_container_get_param(axis2_transport_in_desc_param_container
                                         (in_desc, env), env, "port");
    if (param)
    {
        port_str = axutil_param_get_value(param, env);
    }
    if (port_str)
    {
        server_impl->port = atoi(port_str);
    }
    return AXIS2_SUCCESS;
}

axis2_status_t AXIS2_CALL
axis2_tcp_server_start(
    axis2_transport_receiver_t * server,
    const axutil_env_t * env)
{

    axis2_tcp_server_impl_t *server_impl = NULL;
    axis2_tcp_worker_t *worker = NULL;
    AXIS2_ENV_CHECK(env, AXIS2_FAILURE);

    server_impl = AXIS2_INTF_TO_IMPL(server);
    server_impl->svr_thread = axis2_tcp_svr_thread_create(env,
                                                          server_impl->port);
    if (!server_impl->svr_thread)
    {
        return AXIS2_FAILURE;
    }
    worker = axis2_tcp_worker_create(env, server_impl->conf_ctx);
    axis2_tcp_worker_set_svr_port(worker, env, server_impl->port);
    if (!worker)
    {
        axis2_tcp_svr_thread_free(server_impl->svr_thread, env);
        return AXIS2_FAILURE;
    }
    AXIS2_LOG_INFO(env->log, "Starting TCP server thread");
    axis2_tcp_svr_thread_set_worker(server_impl->svr_thread, env, worker);
    axis2_tcp_svr_thread_run(server_impl->svr_thread, env);
    return AXIS2_SUCCESS;
}

AXIS2_EXTERN axis2_status_t AXIS2_CALL
axis2_tcp_server_stop(
    axis2_transport_receiver_t * server,
    const axutil_env_t * env)
{
    AXIS2_ENV_CHECK(env, AXIS2_FAILURE);

    AXIS2_LOG_INFO(env->log, "Terminating TCP server thread");
    if (AXIS2_INTF_TO_IMPL(server)->svr_thread)
    {
        axis2_tcp_svr_thread_destroy(AXIS2_INTF_TO_IMPL(server)->svr_thread,
                                     env);
    }
    AXIS2_LOG_INFO(env->log, "Successfully terminated  TCP server" " thread");
    return AXIS2_SUCCESS;
}

axis2_conf_ctx_t *AXIS2_CALL
axis2_tcp_server_get_conf_ctx(
    axis2_transport_receiver_t * server,
    const axutil_env_t * env)
{
    AXIS2_ENV_CHECK(env, NULL);
    return AXIS2_INTF_TO_IMPL(server)->conf_ctx;
}

axis2_endpoint_ref_t *AXIS2_CALL
axis2_tcp_server_get_reply_to_epr(
    axis2_transport_receiver_t * server,
    const axutil_env_t * env,
    const axis2_char_t * svc_name)
{
    axis2_endpoint_ref_t *epr = NULL;
    const axis2_char_t *host_address = NULL;
    axis2_char_t *svc_path = NULL;
    axutil_url_t *url = NULL;
    AXIS2_ENV_CHECK(env, NULL);
    AXIS2_PARAM_CHECK(env->error, svc_name, NULL);

    host_address = "127.0.0.1"; /* TODO : get from axis2.xml */
    svc_path = axutil_stracat(env, "/axis2/services/", svc_name);
    url = axutil_url_create(env, "tcp", host_address,
                            AXIS2_INTF_TO_IMPL(server)->port, svc_path);
    AXIS2_FREE(env->allocator, svc_path);
    if (!url)
    {
        return NULL;
    }
    epr = axis2_endpoint_ref_create(env, axutil_url_to_external_form(url, env));
    axutil_url_free(url, env);
    return epr;
}

axis2_bool_t AXIS2_CALL
axis2_tcp_server_is_running(
    axis2_transport_receiver_t * server,
    const axutil_env_t * env)
{
    axis2_tcp_server_impl_t *server_impl = NULL;
    AXIS2_ENV_CHECK(env, AXIS2_FAILURE);
    server_impl = AXIS2_INTF_TO_IMPL(server);
    if (!server_impl->svr_thread)
    {
        return AXIS2_FALSE;
    }
    return axis2_tcp_svr_thread_is_running(server_impl->svr_thread, env);
}

/**
 * Following block distinguish the exposed part of the dll.
 */
AXIS2_EXPORT int
axis2_get_instance(
    struct axis2_transport_receiver **inst,
    const axutil_env_t * env)
{
    *inst = axis2_tcp_server_create(env, NULL, -1);
    if (!(*inst))
    {
        return AXIS2_FAILURE;
    }

    return AXIS2_SUCCESS;
}

AXIS2_EXPORT int
axis2_remove_instance(
    axis2_transport_receiver_t * inst,
    const axutil_env_t * env)
{
    if (inst)
    {
        axis2_transport_receiver_free(inst, env);
    }
    return AXIS2_SUCCESS;
}


<|start_filename|>src/core/transport/http/server/apache2/mod_axis2.c<|end_filename|>

/*
 * 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.
 */

#include <httpd.h>
#include <http_config.h>
#include <http_log.h>
#include <http_protocol.h>
#include <ap_config.h>
#include <apr_strings.h>
#include "axis2_apache2_worker.h"
#include <axutil_error_default.h>
#include <axutil_log_default.h>
#include <axutil_thread_pool.h>
#include <axiom_xml_reader.h>
#include <axutil_version.h>
#include <apr_rmm.h>
#include <apr_shm.h>
#include <axis2_http_transport.h>

/* Configuration structure populated by apache2.conf */
typedef struct axis2_config_rec
{
    char *axutil_log_file;
    char *axis2_repo_path;
    axutil_log_levels_t log_level;
    int max_log_file_size;
	int axis2_global_pool_size;
}
axis2_config_rec_t;

axis2_apache2_worker_t *axis2_worker = NULL;
const axutil_env_t *axutil_env = NULL;
apr_rmm_t* rmm = NULL;
apr_global_mutex_t *global_mutex = NULL;

/******************************Function Headers********************************/
static void *axis2_create_svr(
    apr_pool_t * p,
    server_rec * s);

static const char *axis2_set_repo_path(
    cmd_parms * cmd,
    void *dummy,
    const char *arg);

static const char *axis2_set_log_file(
    cmd_parms * cmd,
    void *dummy,
    const char *arg);

static const char *
axis2_set_max_log_file_size(
    cmd_parms * cmd,
    void *dummy,
    const char *arg);

static const char *
axis2_set_global_pool_size(
	cmd_parms * cmd, 
	void * dummy,
	const char *arg);

static const char *axis2_set_log_level(
    cmd_parms * cmd,
    void *dummy,
    const char *arg);

static const char *axis2_set_svc_url_prefix(
    cmd_parms * cmd,
    void *dummy,
    const char *arg);

static int axis2_handler(
    request_rec * req);

/* Shutdown Axis2 */
apr_status_t 
axis2_shutdown(void *tmp);

void *AXIS2_CALL axis2_module_malloc(
    axutil_allocator_t * allocator,
    size_t size);

void *AXIS2_CALL axis2_module_realloc(
    axutil_allocator_t * allocator,
    void *ptr,
    size_t size);

void AXIS2_CALL axis2_module_free(
    axutil_allocator_t * allocator,
    void *ptr);

static void axis2_module_init(
    apr_pool_t * p,
    server_rec * svr_rec);

static void axis2_register_hooks(
    apr_pool_t * p);

/***************************End of Function Headers****************************/

static const command_rec axis2_cmds[] = {
    AP_INIT_TAKE1("Axis2RepoPath", axis2_set_repo_path, NULL, RSRC_CONF,
                  "Axis2/C repository path"),
    AP_INIT_TAKE1("Axis2LogFile", axis2_set_log_file, NULL, RSRC_CONF,
                  "Axis2/C log file name"),
    AP_INIT_TAKE1("Axis2LogLevel", axis2_set_log_level, NULL, RSRC_CONF,
                  "Axis2/C log level"),
    AP_INIT_TAKE1("Axis2MaxLogFileSize", axis2_set_max_log_file_size, NULL, RSRC_CONF,
                  "Axis2/C maximum log file size"),
    AP_INIT_TAKE1("Axis2GlobalPoolSize", axis2_set_global_pool_size, NULL, RSRC_CONF,
                  "Axis2/C global pool size"),
    AP_INIT_TAKE1("Axis2ServiceURLPrefix", axis2_set_svc_url_prefix, NULL,
                  RSRC_CONF,
                  "Axis2/C service URL prifix"),
    {NULL}
};

/* Dispatch list for API hooks */
module AP_MODULE_DECLARE_DATA axis2_module = {
    STANDARD20_MODULE_STUFF,
    NULL,                       /* create per-dir    config structures */
    NULL,                       /* merge  per-dir    config structures */
    axis2_create_svr,           /* create per-server config structures */
    NULL,                       /* merge  per-server config structures */
    axis2_cmds,                 /* table of config file commands       */
    axis2_register_hooks        /* register hooks                      */
};

static void *
axis2_create_svr(
    apr_pool_t * p,
    server_rec * s)
{
    axis2_config_rec_t *conf = apr_palloc(p, sizeof(*conf));
    conf->axutil_log_file = NULL;
    conf->axis2_repo_path = NULL;
    conf->log_level = AXIS2_LOG_LEVEL_DEBUG;
    conf->axis2_global_pool_size = 0;
	conf->max_log_file_size = 1;
    return conf;
}

static const char *
axis2_set_repo_path(
    cmd_parms * cmd,
    void *dummy,
    const char *arg)
{
    axis2_config_rec_t *conf = NULL;
    const char *err = ap_check_cmd_context(cmd, GLOBAL_ONLY);
    if (err != NULL)
    {
        return err;
    }
    conf =
        (axis2_config_rec_t *) ap_get_module_config(cmd->server->module_config,
                                                    &axis2_module);
    conf->axis2_repo_path = apr_pstrdup(cmd->pool, arg);
    return NULL;
}

static const char *
axis2_set_log_file(
    cmd_parms * cmd,
    void *dummy,
    const char *arg)
{
    axis2_config_rec_t *conf = NULL;
    const char *err = ap_check_cmd_context(cmd, GLOBAL_ONLY);
    if (err != NULL)
    {
        return err;
    }

    conf =
        (axis2_config_rec_t *) ap_get_module_config(cmd->server->module_config,
                                                    &axis2_module);
    conf->axutil_log_file = apr_pstrdup(cmd->pool, arg);
    return NULL;
}

static const char *
axis2_set_max_log_file_size(
    cmd_parms * cmd,
    void *dummy,
    const char *arg)
{
    axis2_config_rec_t *conf = NULL;
    const char *err = ap_check_cmd_context(cmd, GLOBAL_ONLY);
    if (err != NULL)
    {
        return err;
    }

    conf =
        (axis2_config_rec_t *) ap_get_module_config(cmd->server->module_config,
                                                    &axis2_module);
    conf->max_log_file_size = 1024 * 1024 * atoi(arg);
    return NULL;
}

static const char *
axis2_set_global_pool_size(
    cmd_parms * cmd,
    void *dummy,
    const char *arg)
{
    axis2_config_rec_t *conf = NULL;
    const char *err = ap_check_cmd_context(cmd, GLOBAL_ONLY);
    if (err != NULL)
    {
        return err;
    }

    conf =
        (axis2_config_rec_t *) ap_get_module_config(cmd->server->module_config,
                                                    &axis2_module);
    conf->axis2_global_pool_size = 1024 * 1024 * atoi(arg);
    return NULL;
}

static const char *
axis2_set_log_level(
    cmd_parms * cmd,
    void *dummy,
    const char *arg)
{
    char *str;
    axutil_log_levels_t level = AXIS2_LOG_LEVEL_DEBUG;
    axis2_config_rec_t *conf = NULL;
    const char *err = ap_check_cmd_context(cmd, GLOBAL_ONLY);
    if (err != NULL)
    {
        return err;
    }

    conf =
        (axis2_config_rec_t *) ap_get_module_config(cmd->server->module_config,
                                                    &axis2_module);

    str = ap_getword_conf(cmd->pool, &arg);
    if (str)
    {
        if (!strcasecmp(str, "crit"))
        {
            level = AXIS2_LOG_LEVEL_CRITICAL;
        }
        else if (!strcasecmp(str, "error"))
        {
            level = AXIS2_LOG_LEVEL_ERROR;
        }
        else if (!strcasecmp(str, "warn"))
        {
            level = AXIS2_LOG_LEVEL_WARNING;
        }
        else if (!strcasecmp(str, "info"))
        {
            level = AXIS2_LOG_LEVEL_INFO;
        }
        else if (!strcasecmp(str, "debug"))
        {
            level = AXIS2_LOG_LEVEL_DEBUG;
        }
        else if (!strcasecmp(str, "user"))
        {
            level = AXIS2_LOG_LEVEL_USER;
        }
        else if (!strcasecmp(str, "trace"))
        {
            level = AXIS2_LOG_LEVEL_TRACE;
        }
    }
    conf->log_level = level;
    return NULL;
}

static const char *
axis2_set_svc_url_prefix(
    cmd_parms * cmd,
    void *dummy,
    const char *arg)
{
    AXIS2_IMPORT extern axis2_char_t *axis2_request_url_prefix;
    const char *err = ap_check_cmd_context(cmd, GLOBAL_ONLY);

    axis2_request_url_prefix = AXIS2_REQUEST_URL_PREFIX;
    if (!err)
    {
        axis2_char_t *prefix = apr_pstrdup(cmd->pool, arg);
        if (prefix)
            axis2_request_url_prefix = prefix;
    }

    return NULL;
}

/* The sample content handler */
static int
axis2_handler(
    request_rec * req)
{
    int rv = 0;
    axutil_env_t *thread_env = NULL;
    axutil_allocator_t *allocator = NULL;
    axutil_error_t *error = NULL;

    apr_allocator_t *local_allocator = NULL;
    apr_pool_t *local_pool = NULL;

    if (strcmp(req->handler, "axis2_module"))
    {
        return DECLINED;
    }

    /* Set up the read policy from the client. */
    if ((rv = ap_setup_client_block(req, REQUEST_CHUNKED_DECHUNK)) != OK)
    {
        return rv;
    }
    ap_should_client_block(req);

    apr_allocator_create(&local_allocator);
    apr_pool_create_ex(&local_pool, NULL, NULL, local_allocator);

    

    /*thread_env = axutil_init_thread_env(axutil_env);*/

    /*axutil_env->allocator->current_pool = (void *) req->pool;
    rv = AXIS2_APACHE2_WORKER_PROCESS_REQUEST(axis2_worker, axutil_env, req);*/

    /* create new allocator for this request */
    /*allocator = (axutil_allocator_t *) apr_palloc(req->pool,
                                                  sizeof(axutil_allocator_t));*/

    allocator = (axutil_allocator_t *) apr_palloc(local_pool,
                                                  sizeof(axutil_allocator_t));

    if (!allocator)
    {
        return HTTP_INTERNAL_SERVER_ERROR;
    }
    allocator->malloc_fn = axis2_module_malloc;
    allocator->realloc = axis2_module_realloc;
    allocator->free_fn = axis2_module_free;
    allocator->local_pool = (void *)local_pool;
    allocator->current_pool = (void *)local_pool;
    allocator->global_pool = axutil_env->allocator->global_pool;

    error = axutil_error_create(allocator);
    thread_env = axutil_env_create_with_error_log_thread_pool(allocator,
                                                        error, axutil_env->log,
                                                        axutil_env->
                                                        thread_pool);
    thread_env->allocator = allocator;

    rv = AXIS2_APACHE2_WORKER_PROCESS_REQUEST(axis2_worker, thread_env, req);
    if (AXIS2_CRITICAL_FAILURE == rv)
    {
        return HTTP_INTERNAL_SERVER_ERROR;
    }

    apr_pool_destroy(local_pool);
    apr_allocator_destroy(local_allocator);


    return rv;
}

void *AXIS2_CALL
axis2_module_malloc(
    axutil_allocator_t * allocator,
    size_t size)
{
#if APR_HAS_SHARED_MEMORY
	if (rmm == allocator->current_pool)
	{
		
		void* ptr = NULL;
		apr_rmm_off_t offset;
		apr_global_mutex_lock(global_mutex);
		offset = apr_rmm_malloc(rmm, size);
		if (offset)
			ptr = apr_rmm_addr_get(rmm, offset);
		apr_global_mutex_unlock(global_mutex);
		return ptr;
	}
#endif
	return apr_palloc((apr_pool_t *) (allocator->current_pool), size);
}

void *AXIS2_CALL
axis2_module_realloc(
    axutil_allocator_t * allocator,
    void *ptr,
    size_t size)
{
#if APR_HAS_SHARED_MEMORY
	if (rmm == allocator->current_pool)
	{
		void* ptr = NULL;
		apr_rmm_off_t offset;
		apr_global_mutex_lock(global_mutex);
		offset = apr_rmm_realloc(rmm, ptr, size);
		if (offset)
			ptr = apr_rmm_addr_get(rmm, offset);
		apr_global_mutex_unlock(global_mutex);
		return ptr;
	}
#endif
	/* can't be easily implemented */
	return NULL;
}

void AXIS2_CALL
axis2_module_free(
    axutil_allocator_t * allocator,
    void *ptr)
{
#if APR_HAS_SHARED_MEMORY
	if (rmm == allocator->current_pool)
	{
		apr_rmm_off_t offset;
		apr_global_mutex_lock(global_mutex);
		offset = apr_rmm_offset_get(rmm, ptr);
		apr_rmm_free(rmm, offset);
		apr_global_mutex_unlock(global_mutex);
	}
#endif
}

static int axis2_post_config(apr_pool_t *pconf, apr_pool_t *plog,
								 apr_pool_t *ptemp, server_rec *svr_rec)
{
	apr_status_t status = APR_SUCCESS;
    axutil_allocator_t *allocator = NULL;
    axutil_error_t *error = NULL;
    axutil_log_t *axutil_logger = NULL;
    axutil_thread_pool_t *thread_pool = NULL;
	void *data = NULL;
	const char *userdata_key = "axis2_init";
	axis2_config_rec_t *conf =
		(axis2_config_rec_t *) ap_get_module_config(svr_rec->module_config,
													&axis2_module);

	/* axis2_post_config() will be called twice. Don't bother
	 * going through all of the initialization on the first call
	 * because it will just be thrown away.*/
    
    ap_add_version_component(pconf, AXIS2_HTTP_HEADER_SERVER_AXIS2C);

	apr_pool_userdata_get(&data, userdata_key, svr_rec->process->pool);
	if (!data) 
	{
		apr_pool_userdata_set((const void *)1, userdata_key,
								apr_pool_cleanup_null, svr_rec->process->pool);
		return OK;
	}

#if APR_HAS_SHARED_MEMORY
	if (conf->axis2_global_pool_size > 0)
	{
		apr_shm_t *shm;
		apr_rmm_off_t offset;

		status = apr_shm_create(&shm, conf->axis2_global_pool_size, NULL, pconf);
		if (status != APR_SUCCESS)
		{
			ap_log_error(APLOG_MARK, APLOG_EMERG, status, svr_rec,
										 "[Axis2] Error creating shared memory pool");
			exit(APEXIT_INIT);
		}
		
		status = apr_rmm_init(&rmm, NULL, apr_shm_baseaddr_get(shm), conf->axis2_global_pool_size,
				                      pconf);
		if (status != APR_SUCCESS)
		{
			ap_log_error(APLOG_MARK, APLOG_EMERG, status, svr_rec,
										"[Axis2] Error creating relocatable memory pool");
			exit(APEXIT_INIT);
		}

		status = apr_global_mutex_create(&global_mutex, NULL,
										  APR_LOCK_DEFAULT, pconf);
		if (status != APR_SUCCESS)
		{
			ap_log_error(APLOG_MARK, APLOG_EMERG, status, svr_rec,
									"[Axis2] Error creating global mutex");
			exit(APEXIT_INIT);
		} 

		/*status = unixd_set_global_mutex_perms(global_mutex);
		if (status != APR_SUCCESS)
		{
			 ap_log_error(APLOG_MARK, APLOG_EMERG, status, svr_rec, 
					 				"[Axis2] Permision cannot be set to global mutex");
			 exit(APEXIT_INIT);
		}
		*/

		offset = apr_rmm_malloc(rmm, sizeof(axutil_allocator_t));
		if (!offset)
		{
			ap_log_error(APLOG_MARK, APLOG_EMERG, status, svr_rec,
									"[Axis2] Error in creating allocator in global pool");
			exit(APEXIT_INIT);
		}
		allocator = apr_rmm_addr_get(rmm, offset);
		allocator->malloc_fn = axis2_module_malloc;
		allocator->realloc = axis2_module_realloc;
		allocator->free_fn = axis2_module_free;
		allocator->local_pool = (void *) rmm;
		allocator->current_pool = (void *) rmm;
		allocator->global_pool = (void *) rmm;

        /* We need to init xml readers before we go into threaded env
         */
        axiom_xml_reader_init();
        axutil_error_init();

        error = axutil_error_create(allocator);
        if (!error)
        {
            ap_log_error(APLOG_MARK, APLOG_EMERG, APR_EGENERAL, svr_rec,
                         "[Axis2] Error creating mod_axis2 error structure");
            exit(APEXIT_CHILDFATAL);
        }
    	
        axutil_logger = axutil_log_create(allocator, NULL, conf->axutil_log_file);
        if (!axutil_logger)
        {
            ap_log_error(APLOG_MARK, APLOG_EMERG, APR_EGENERAL, svr_rec,
                         "[Axis2] Error creating mod_axis2 log structure");
            exit(APEXIT_CHILDFATAL);
        }
        thread_pool = axutil_thread_pool_init(allocator);
        if (!thread_pool)
        {
            ap_log_error(APLOG_MARK, APLOG_EMERG, APR_EGENERAL, svr_rec,
                         "[Axis2] Error initializing mod_axis2 thread pool");
            exit(APEXIT_CHILDFATAL);
        }
        axutil_env = axutil_env_create_with_error_log_thread_pool(allocator, error,
                                                                  axutil_logger,
                                                                  thread_pool);
        if (!axutil_env)
        {
            ap_log_error(APLOG_MARK, APLOG_EMERG, APR_EGENERAL, svr_rec,
                         "[Axis2] Error creating mod_axis2 environment");
            exit(APEXIT_CHILDFATAL);
        }
        if (axutil_logger)
        {
            axutil_logger->level = conf->log_level;
            axutil_logger->size = conf->max_log_file_size;
            AXIS2_LOG_INFO(axutil_env->log, "Apache Axis2/C version in use : %s",
                           axis2_version_string());
            AXIS2_LOG_INFO(axutil_env->log, 
                "Starting log with log level %d and max log file size %d",
                           conf->log_level, conf->max_log_file_size);
        }

	    axis2_worker = axis2_apache2_worker_create(axutil_env,
												    conf->axis2_repo_path);
        if (!axis2_worker)
        {
            ap_log_error(APLOG_MARK, APLOG_EMERG, APR_EGENERAL, svr_rec,
                         "[Axis2] Error creating mod_axis2 apache2 worker");
            exit(APEXIT_CHILDFATAL);
        }
	}
	
#endif
    
	return OK;
}

static void
axis2_module_init(
    apr_pool_t * p,
    server_rec * svr_rec)
{
    apr_pool_t *pool;
    apr_status_t status;
    axutil_allocator_t *allocator = NULL;
    axutil_error_t *error = NULL;
    axutil_log_t *axutil_logger = NULL;
    axutil_thread_pool_t *thread_pool = NULL;
    axis2_config_rec_t *conf = (axis2_config_rec_t*)ap_get_module_config(
                svr_rec->module_config, &axis2_module);

    if (conf->axis2_global_pool_size > 0)
	{
        /*
            If we are using shared memory, no need to init the child, as the 
            worker has been created in post config.
        */
        return;
    }


    /* We need to init xml readers before we go into threaded env
     */
    axiom_xml_reader_init();

    /* create an allocator that uses APR memory pools and lasts the
     * lifetime of the httpd server child process
     */
    status = apr_pool_create(&pool, p);
    if (status)
    {
        ap_log_error(APLOG_MARK, APLOG_EMERG, status, svr_rec,
                     "[Axis2] Error allocating mod_axis2 memory pool");
        exit(APEXIT_CHILDFATAL);
    }
    allocator = (axutil_allocator_t*) apr_palloc(pool,
                                                sizeof(axutil_allocator_t));
    if (! allocator)
    {
        ap_log_error(APLOG_MARK, APLOG_EMERG, APR_ENOMEM, svr_rec,
                     "[Axis2] Error allocating mod_axis2 allocator");
        exit(APEXIT_CHILDFATAL);
    }
    allocator->malloc_fn = axis2_module_malloc;
    allocator->realloc = axis2_module_realloc;
    allocator->free_fn = axis2_module_free;
    allocator->local_pool = (void*) pool;
    allocator->current_pool = (void*) pool;
    allocator->global_pool = (void*) pool;

    if (! allocator)
    {
        ap_log_error(APLOG_MARK, APLOG_EMERG, APR_EGENERAL, svr_rec,
                         "[Axis2] Error initializing mod_axis2 allocator");
        exit(APEXIT_CHILDFATAL);
    }
    
    axutil_error_init();
    
    error = axutil_error_create(allocator);
    if (! error)
    {
        ap_log_error(APLOG_MARK, APLOG_EMERG, APR_EGENERAL, svr_rec,
                     "[Axis2] Error creating mod_axis2 error structure");
        exit(APEXIT_CHILDFATAL);
    }
    axutil_logger = axutil_log_create(allocator, NULL, conf->axutil_log_file);
    if (! axutil_logger)
    {
        ap_log_error(APLOG_MARK, APLOG_EMERG, APR_EGENERAL, svr_rec,
                     "[Axis2] Error creating mod_axis2 log structure");
        exit(APEXIT_CHILDFATAL);
    }
    thread_pool = axutil_thread_pool_init(allocator);
    if (! thread_pool)
    {
        ap_log_error(APLOG_MARK, APLOG_EMERG, APR_EGENERAL, svr_rec,
                     "[Axis2] Error initializing mod_axis2 thread pool");
        exit(APEXIT_CHILDFATAL);
    }
    axutil_env = axutil_env_create_with_error_log_thread_pool(allocator, error,
            axutil_logger, thread_pool);
    if (! axutil_env)
    {
        ap_log_error(APLOG_MARK, APLOG_EMERG, APR_EGENERAL, svr_rec,
                     "[Axis2] Error creating mod_axis2 environment");
        exit(APEXIT_CHILDFATAL);
    }
    if (axutil_logger)
    {

        axutil_logger->level = conf->log_level;
        AXIS2_LOG_INFO(axutil_env->log, "Apache Axis2/C version in use : %s", 
            axis2_version_string());
        AXIS2_LOG_INFO(axutil_env->log, "Starting log with log level %d",
            conf->log_level);
    }
    axis2_worker = axis2_apache2_worker_create(axutil_env,
            conf->axis2_repo_path);
    if (! axis2_worker)
    {
        ap_log_error(APLOG_MARK, APLOG_EMERG, APR_EGENERAL, svr_rec,
                     "[Axis2] Error creating mod_axis2 apache2 worker");
        exit(APEXIT_CHILDFATAL);
    }
	/* If we are initialized we register a clean up as well */
	/* apr_pool_cleanup_register(p, NULL, axis2_shutdown, apr_pool_cleanup_null);*/
}

static void
axis2_register_hooks(
    apr_pool_t * p)
{
	ap_hook_post_config(axis2_post_config, NULL, NULL, APR_HOOK_MIDDLE);
    ap_hook_handler(axis2_handler, NULL, NULL, APR_HOOK_MIDDLE);
    ap_hook_child_init(axis2_module_init, NULL, NULL, APR_HOOK_MIDDLE);
}

apr_status_t 
axis2_shutdown(void *tmp)
{
	if (axis2_worker)
	{
		axis2_apache2_worker_free(axis2_worker, axutil_env);
	}
	return APR_SUCCESS;
}



<|start_filename|>include/axis2_http_status_line.h<|end_filename|>

/*
 * 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 AXIS2_HTTP_STATUS_LINE_H
#define AXIS2_HTTP_STATUS_LINE_H

/**
 * @defgroup axis2_http_status_line http status line
 * @ingroup axis2_core_trans_http
 * @{
 */

/**
 * @file axis2_http_status_line.h
 * @brief axis2 HTTP Status Line
 */

#include <axis2_const.h>
#include <axis2_defines.h>
#include <axutil_env.h>

#ifdef __cplusplus
extern "C"
{
#endif

    /** Type name for struct axis2_http_status_line */
    typedef struct axis2_http_status_line axis2_http_status_line_t;

    /**
     * @param status_line pointer to status line
     * @param env pointer to environment struct
     */
    AXIS2_EXTERN int AXIS2_CALL
    axis2_http_status_line_get_status_code(
        const axis2_http_status_line_t * status_line,
        const axutil_env_t * env);

    /**
     * @param status_line pointer to status line
     * @param env pointer to environment struct
     */
    AXIS2_EXTERN axis2_char_t *AXIS2_CALL

    axis2_http_status_line_get_http_version(
        const axis2_http_status_line_t * status_line,
        const axutil_env_t * env);

    /**
     * @param status_line pointer to status line
     * @param env pointer to environment struct
     */
    AXIS2_EXTERN axis2_char_t *AXIS2_CALL

    axis2_http_status_line_get_reason_phrase(
        const axis2_http_status_line_t * status_line,
        const axutil_env_t * env);

    /**
     * @param status_line pointer to status line
     * @param env pointer to environment struct
     */
    AXIS2_EXTERN axis2_bool_t AXIS2_CALL

    axis2_http_status_line_starts_with_http(
        axis2_http_status_line_t * status_line,
        const axutil_env_t * env);

    /**
     * @param status_line pointer to status line
     * @param env pointer to environment struct
     */
    AXIS2_EXTERN axis2_char_t *AXIS2_CALL
    axis2_http_status_line_to_string(
        axis2_http_status_line_t * status_line,
        const axutil_env_t * env);

    /**
     * @param status_line pointer to status line
     * @param env pointer to environment struct
     * @return AXIS2_SUCCESS on success, else AXIS2_FAILURE
     */
    AXIS2_EXTERN void AXIS2_CALL
    axis2_http_status_line_free(
        axis2_http_status_line_t * status_line,
        const axutil_env_t * env);

    /**
     * @param env pointer to environment struct
     * @param str pointer to str
     */
    AXIS2_EXTERN axis2_http_status_line_t *AXIS2_CALL

    axis2_http_status_line_create(
        const axutil_env_t * env,
        const axis2_char_t * str);

    AXIS2_EXTERN void AXIS2_CALL
    axis2_http_status_line_set_http_version(
        axis2_http_status_line_t * status_line,
        const axutil_env_t * env,
        axis2_char_t *http_version);



    /** @} */
#ifdef __cplusplus
}
#endif
#endif                          /* AXIS2_HTTP_STATUS_LINE_H */


<|start_filename|>xdocs/api/html/group__axutil__error.html<|end_filename|>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html><head><meta http-equiv="Content-Type" content="text/html;charset=UTF-8">
<title>Axis2/C: error</title>
<link href="doxygen.css" rel="stylesheet" type="text/css">
<link href="tabs.css" rel="stylesheet" type="text/css">
</head><body>
<!-- Generated by Doxygen 1.5.3 -->
<div class="tabs">
  <ul>
    <li><a href="index.html"><span>Main&nbsp;Page</span></a></li>
    <li><a href="modules.html"><span>Modules</span></a></li>
    <li><a href="annotated.html"><span>Classes</span></a></li>
    <li><a href="files.html"><span>Files</span></a></li>
    <li><a href="dirs.html"><span>Directories</span></a></li>
    <li><a href="pages.html"><span>Related&nbsp;Pages</span></a></li>
    <li><a href="examples.html"><span>Examples</span></a></li>
    <li>
      <form action="search.php" method="get">
        <table cellspacing="0" cellpadding="0" border="0">
          <tr>
            <td><label>&nbsp;<u>S</u>earch&nbsp;for&nbsp;</label></td>
            <td><input type="text" name="query" value="" size="20" accesskey="s"/></td>
          </tr>
        </table>
      </form>
    </li>
  </ul>
</div>
<h1>error<br>
<small>
[<a class="el" href="group__axis2__util.html">utilities</a>]</small>
</h1><table border="0" cellpadding="0" cellspacing="0">
<tr><td></td></tr>
<tr><td colspan="2"><br><h2>Classes</h2></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top">struct &nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="structaxutil__error.html">axutil_error</a></td></tr>

<tr><td colspan="2"><br><h2>Defines</h2></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top">#define&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__axutil__error.html#g0d679c0b9abcee889fc0dc0b694fab99">AXIS2_ERROR_FREE</a>(error)&nbsp;&nbsp;&nbsp;axutil_error_free(error)</td></tr>

<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="ge773ce075b4c0df2fe3029569b28d7e0"></a><!-- doxytag: member="axutil_error::AXIS2_ERROR_GET_MESSAGE" ref="ge773ce075b4c0df2fe3029569b28d7e0" args="(error)" -->
#define&nbsp;</td><td class="memItemRight" valign="bottom"><b>AXIS2_ERROR_GET_MESSAGE</b>(error)&nbsp;&nbsp;&nbsp;axutil_error_get_message(error)</td></tr>

<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="g82980c1d75cb61f526b9defebf908a34"></a><!-- doxytag: member="axutil_error::AXIS2_ERROR_SET_MESSAGE" ref="g82980c1d75cb61f526b9defebf908a34" args="(error, message)" -->
#define&nbsp;</td><td class="memItemRight" valign="bottom"><b>AXIS2_ERROR_SET_MESSAGE</b>(error, message)&nbsp;&nbsp;&nbsp;axutil_error_set_error_message(error, message)</td></tr>

<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="g51dcd252b2ee68e265bb661ea3b9b2e9"></a><!-- doxytag: member="axutil_error::AXIS2_ERROR_SET_ERROR_NUMBER" ref="g51dcd252b2ee68e265bb661ea3b9b2e9" args="(error, error_number)" -->
#define&nbsp;</td><td class="memItemRight" valign="bottom"><b>AXIS2_ERROR_SET_ERROR_NUMBER</b>(error, error_number)&nbsp;&nbsp;&nbsp;axutil_error_set_error_number(error, error_number)</td></tr>

<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="gfabdf846f951b8bbe3e316a4903ca938"></a><!-- doxytag: member="axutil_error::AXIS2_ERROR_SET_STATUS_CODE" ref="gfabdf846f951b8bbe3e316a4903ca938" args="(error, status_code)" -->
#define&nbsp;</td><td class="memItemRight" valign="bottom"><b>AXIS2_ERROR_SET_STATUS_CODE</b>(error, status_code)&nbsp;&nbsp;&nbsp;axutil_error_set_status_code(error, status_code)</td></tr>

<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="g860cf8959eeacf02d3fd3cbe0cf5bd04"></a><!-- doxytag: member="axutil_error::AXIS2_ERROR_GET_STATUS_CODE" ref="g860cf8959eeacf02d3fd3cbe0cf5bd04" args="(error)" -->
#define&nbsp;</td><td class="memItemRight" valign="bottom"><b>AXIS2_ERROR_GET_STATUS_CODE</b>(error)&nbsp;&nbsp;&nbsp;axutil_error_get_status_code(error)</td></tr>

<tr><td colspan="2"><br><h2>Typedefs</h2></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top">typedef struct <br>
<a class="el" href="structaxutil__error.html">axutil_error</a>&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__axutil__error.html#gd3e0dd837fed2e7c5a7ba30d21846cf4">axutil_error_t</a></td></tr>

<tr><td colspan="2"><br><h2>Functions</h2></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top">AXIS2_EXTERN const <br>
axis2_char_t *&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__axutil__error.html#ga5db58c2bae8083db45dcb933511480c">axutil_error_get_message</a> (const struct <a class="el" href="structaxutil__error.html">axutil_error</a> *error)</td></tr>

<tr><td class="memItemLeft" nowrap align="right" valign="top">AXIS2_EXTERN <br>
axis2_status_t&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__axutil__error.html#g46da3d930c143544e58b130b2ebbbb4b">axutil_error_set_error_number</a> (struct <a class="el" href="structaxutil__error.html">axutil_error</a> *error, axutil_error_codes_t error_number)</td></tr>

<tr><td class="memItemLeft" nowrap align="right" valign="top">AXIS2_EXTERN <br>
axis2_status_t&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__axutil__error.html#gaaab973f27097ae5e3dd036a9c452355">axutil_error_set_status_code</a> (struct <a class="el" href="structaxutil__error.html">axutil_error</a> *error, axis2_status_codes_t status_code)</td></tr>

<tr><td class="memItemLeft" nowrap align="right" valign="top">AXIS2_EXTERN <br>
axis2_status_t&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__axutil__error.html#g4107c6db677ebcb721f7a99654813eda">axutil_error_get_status_code</a> (struct <a class="el" href="structaxutil__error.html">axutil_error</a> *error)</td></tr>

<tr><td class="memItemLeft" nowrap align="right" valign="top">AXIS2_EXTERN <br>
axis2_status_t&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__axutil__error.html#g14d4772cbdc268f1c20c13281360f2ec">axutil_error_set_error_message</a> (struct <a class="el" href="structaxutil__error.html">axutil_error</a> *error, axis2_char_t *message)</td></tr>

<tr><td class="memItemLeft" nowrap align="right" valign="top">AXIS2_EXTERN <br>
axis2_status_t&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__axutil__error.html#gca400ab90e600bfe18efe4804727900d">axutil_error_init</a> (void)</td></tr>

<tr><td class="memItemLeft" nowrap align="right" valign="top">AXIS2_EXTERN void&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__axutil__error.html#g3ccdfbc08ec8a92def154e96c9716b78">axutil_error_free</a> (struct <a class="el" href="structaxutil__error.html">axutil_error</a> *error)</td></tr>

<tr><td class="memItemLeft" nowrap align="right" valign="top">AXIS2_EXTERN <br>
<a class="el" href="structaxutil__error.html">axutil_error_t</a> *&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__axutil__error.html#gb06c94ea0b09855f7b2d1f51a0187b70">axutil_error_create</a> (<a class="el" href="structaxutil__allocator.html">axutil_allocator_t</a> *allocator)</td></tr>

</table>
<hr><h2>Define Documentation</h2>
<a class="anchor" name="g0d679c0b9abcee889fc0dc0b694fab99"></a><!-- doxytag: member="axutil_error.h::AXIS2_ERROR_FREE" ref="g0d679c0b9abcee889fc0dc0b694fab99" args="(error)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">#define AXIS2_ERROR_FREE          </td>
          <td>(</td>
          <td class="paramtype">error&nbsp;</td>
          <td class="paramname">          </td>
          <td>&nbsp;)&nbsp;</td>
          <td width="100%">&nbsp;&nbsp;&nbsp;axutil_error_free(error)</td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
<dl compact><dt><b><a class="el" href="deprecated.html#_deprecated000004">Deprecated:</a></b></dt><dd>The following macros are no longer useful as we can use the function calls directly. Hence these macros should be removed </dd></dl>

</div>
</div><p>
<hr><h2>Typedef Documentation</h2>
<a class="anchor" name="gd3e0dd837fed2e7c5a7ba30d21846cf4"></a><!-- doxytag: member="axutil_error.h::axutil_error_t" ref="gd3e0dd837fed2e7c5a7ba30d21846cf4" args="" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">typedef struct <a class="el" href="structaxutil__error.html">axutil_error</a>
     <a class="el" href="structaxutil__error.html">axutil_error_t</a>          </td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
Axutil error struct. Error holds the last error number, the status code as well as the last error message. 
</div>
</div><p>
<hr><h2>Function Documentation</h2>
<a class="anchor" name="gb06c94ea0b09855f7b2d1f51a0187b70"></a><!-- doxytag: member="axutil_error_default.h::axutil_error_create" ref="gb06c94ea0b09855f7b2d1f51a0187b70" args="(axutil_allocator_t *allocator)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">AXIS2_EXTERN <a class="el" href="structaxutil__error.html">axutil_error_t</a>* axutil_error_create           </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="structaxutil__allocator.html">axutil_allocator_t</a> *&nbsp;</td>
          <td class="paramname"> <em>allocator</em>          </td>
          <td>&nbsp;)&nbsp;</td>
          <td width="100%"></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
Creates an error struct <dl compact><dt><b>Parameters:</b></dt><dd>
  <table border="0" cellspacing="2" cellpadding="0">
    <tr><td valign="top"></td><td valign="top"><em>allocator</em>&nbsp;</td><td>allocator to be used. Mandatory, cannot be NULL </td></tr>
  </table>
</dl>
<dl class="return" compact><dt><b>Returns:</b></dt><dd>pointer to the newly created error struct </dd></dl>

</div>
</div><p>
<a class="anchor" name="g3ccdfbc08ec8a92def154e96c9716b78"></a><!-- doxytag: member="axutil_error.h::axutil_error_free" ref="g3ccdfbc08ec8a92def154e96c9716b78" args="(struct axutil_error *error)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">AXIS2_EXTERN void axutil_error_free           </td>
          <td>(</td>
          <td class="paramtype">struct <a class="el" href="structaxutil__error.html">axutil_error</a> *&nbsp;</td>
          <td class="paramname"> <em>error</em>          </td>
          <td>&nbsp;)&nbsp;</td>
          <td width="100%"></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
De-allocates an error struct instance. <dl compact><dt><b>Parameters:</b></dt><dd>
  <table border="0" cellspacing="2" cellpadding="0">
    <tr><td valign="top"></td><td valign="top"><em>error</em>&nbsp;</td><td>pointer to error struct instance to be freed. </td></tr>
  </table>
</dl>
<dl class="return" compact><dt><b>Returns:</b></dt><dd>void </dd></dl>

</div>
</div><p>
<a class="anchor" name="ga5db58c2bae8083db45dcb933511480c"></a><!-- doxytag: member="axutil_error.h::axutil_error_get_message" ref="ga5db58c2bae8083db45dcb933511480c" args="(const struct axutil_error *error)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">AXIS2_EXTERN const axis2_char_t* axutil_error_get_message           </td>
          <td>(</td>
          <td class="paramtype">const struct <a class="el" href="structaxutil__error.html">axutil_error</a> *&nbsp;</td>
          <td class="paramname"> <em>error</em>          </td>
          <td>&nbsp;)&nbsp;</td>
          <td width="100%"></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
Gets the error message corresponding to the last error occurred. <dl compact><dt><b>Parameters:</b></dt><dd>
  <table border="0" cellspacing="2" cellpadding="0">
    <tr><td valign="top"></td><td valign="top"><em>error</em>&nbsp;</td><td>pointer to error struct </td></tr>
  </table>
</dl>
<dl class="return" compact><dt><b>Returns:</b></dt><dd>string representing the error message for the last error occurred </dd></dl>

</div>
</div><p>
<a class="anchor" name="g4107c6db677ebcb721f7a99654813eda"></a><!-- doxytag: member="axutil_error.h::axutil_error_get_status_code" ref="g4107c6db677ebcb721f7a99654813eda" args="(struct axutil_error *error)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">AXIS2_EXTERN axis2_status_t axutil_error_get_status_code           </td>
          <td>(</td>
          <td class="paramtype">struct <a class="el" href="structaxutil__error.html">axutil_error</a> *&nbsp;</td>
          <td class="paramname"> <em>error</em>          </td>
          <td>&nbsp;)&nbsp;</td>
          <td width="100%"></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
Gets the status code. <dl compact><dt><b>Parameters:</b></dt><dd>
  <table border="0" cellspacing="2" cellpadding="0">
    <tr><td valign="top"></td><td valign="top"><em>error</em>&nbsp;</td><td>pointer to error struct </td></tr>
  </table>
</dl>
<dl class="return" compact><dt><b>Returns:</b></dt><dd>last status code set on error struct </dd></dl>

</div>
</div><p>
<a class="anchor" name="gca400ab90e600bfe18efe4804727900d"></a><!-- doxytag: member="axutil_error.h::axutil_error_init" ref="gca400ab90e600bfe18efe4804727900d" args="(void)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">AXIS2_EXTERN axis2_status_t axutil_error_init           </td>
          <td>(</td>
          <td class="paramtype">void&nbsp;</td>
          <td class="paramname">          </td>
          <td>&nbsp;)&nbsp;</td>
          <td width="100%"></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
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. <dl class="return" compact><dt><b>Returns:</b></dt><dd>AXIS2_SUCCESS on success, else AXIS2_FAILURE </dd></dl>

</div>
</div><p>
<a class="anchor" name="g14d4772cbdc268f1c20c13281360f2ec"></a><!-- doxytag: member="axutil_error.h::axutil_error_set_error_message" ref="g14d4772cbdc268f1c20c13281360f2ec" args="(struct axutil_error *error, axis2_char_t *message)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">AXIS2_EXTERN axis2_status_t axutil_error_set_error_message           </td>
          <td>(</td>
          <td class="paramtype">struct <a class="el" href="structaxutil__error.html">axutil_error</a> *&nbsp;</td>
          <td class="paramname"> <em>error</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">axis2_char_t *&nbsp;</td>
          <td class="paramname"> <em>message</em></td><td>&nbsp;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td><td width="100%"></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
Sets error message to the given value. <dl compact><dt><b>Parameters:</b></dt><dd>
  <table border="0" cellspacing="2" cellpadding="0">
    <tr><td valign="top"></td><td valign="top"><em>error</em>&nbsp;</td><td>pointer to error struct </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>message</em>&nbsp;</td><td>error message to be set </td></tr>
  </table>
</dl>
<dl class="return" compact><dt><b>Returns:</b></dt><dd>AXIS2_SUCCESS on success, else AXIS2_FAILURE </dd></dl>

</div>
</div><p>
<a class="anchor" name="g46da3d930c143544e58b130b2ebbbb4b"></a><!-- doxytag: member="axutil_error.h::axutil_error_set_error_number" ref="g46da3d930c143544e58b130b2ebbbb4b" args="(struct axutil_error *error, axutil_error_codes_t error_number)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">AXIS2_EXTERN axis2_status_t axutil_error_set_error_number           </td>
          <td>(</td>
          <td class="paramtype">struct <a class="el" href="structaxutil__error.html">axutil_error</a> *&nbsp;</td>
          <td class="paramname"> <em>error</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">axutil_error_codes_t&nbsp;</td>
          <td class="paramname"> <em>error_number</em></td><td>&nbsp;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td><td width="100%"></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
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. <dl class="return" compact><dt><b>Returns:</b></dt><dd>error message for the extended struct. </dd></dl>
<dl compact><dt><b><a class="el" href="deprecated.html#_deprecated000003">Deprecated:</a></b></dt><dd>this function is not in use, so should be removed. </dd></dl>
Sets the error number. <dl compact><dt><b>Parameters:</b></dt><dd>
  <table border="0" cellspacing="2" cellpadding="0">
    <tr><td valign="top"></td><td valign="top"><em>error</em>&nbsp;</td><td>pointer to error struct </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>error_number</em>&nbsp;</td><td>error number to be set </td></tr>
  </table>
</dl>
<dl class="return" compact><dt><b>Returns:</b></dt><dd>AXIS2_SUCCESS on success, else AXIS2_FAILURE </dd></dl>

</div>
</div><p>
<a class="anchor" name="gaaab973f27097ae5e3dd036a9c452355"></a><!-- doxytag: member="axutil_error.h::axutil_error_set_status_code" ref="gaaab973f27097ae5e3dd036a9c452355" args="(struct axutil_error *error, axis2_status_codes_t status_code)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">AXIS2_EXTERN axis2_status_t axutil_error_set_status_code           </td>
          <td>(</td>
          <td class="paramtype">struct <a class="el" href="structaxutil__error.html">axutil_error</a> *&nbsp;</td>
          <td class="paramname"> <em>error</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">axis2_status_codes_t&nbsp;</td>
          <td class="paramname"> <em>status_code</em></td><td>&nbsp;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td><td width="100%"></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
Sets the status code. <dl compact><dt><b>Parameters:</b></dt><dd>
  <table border="0" cellspacing="2" cellpadding="0">
    <tr><td valign="top"></td><td valign="top"><em>error</em>&nbsp;</td><td>pointer to error struct </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>status_code</em>&nbsp;</td><td>status code to be set </td></tr>
  </table>
</dl>
<dl class="return" compact><dt><b>Returns:</b></dt><dd>AXIS2_SUCCESS on success, else AXIS2_FAILURE </dd></dl>

</div>
</div><p>
<hr size="1"><address style="text-align: right;"><small>Generated on Fri Apr 17 11:49:46 2009 for Axis2/C by&nbsp;
<a href="http://www.doxygen.org/index.html">
<img src="doxygen.png" alt="doxygen" align="middle" border="0"></a> 1.5.3 </small></address>
</body>
</html>


<|start_filename|>xdocs/api/html/tcpmon__session_8h-source.html<|end_filename|>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html><head><meta http-equiv="Content-Type" content="text/html;charset=UTF-8">
<title>Axis2/C: tcpmon_session.h Source File</title>
<link href="doxygen.css" rel="stylesheet" type="text/css">
<link href="tabs.css" rel="stylesheet" type="text/css">
</head><body>
<!-- Generated by Doxygen 1.5.3 -->
<div class="tabs">
  <ul>
    <li><a href="index.html"><span>Main&nbsp;Page</span></a></li>
    <li><a href="modules.html"><span>Modules</span></a></li>
    <li><a href="annotated.html"><span>Classes</span></a></li>
    <li class="current"><a href="files.html"><span>Files</span></a></li>
    <li><a href="dirs.html"><span>Directories</span></a></li>
    <li><a href="pages.html"><span>Related&nbsp;Pages</span></a></li>
    <li><a href="examples.html"><span>Examples</span></a></li>
    <li>
      <form action="search.php" method="get">
        <table cellspacing="0" cellpadding="0" border="0">
          <tr>
            <td><label>&nbsp;<u>S</u>earch&nbsp;for&nbsp;</label></td>
            <td><input type="text" name="query" value="" size="20" accesskey="s"/></td>
          </tr>
        </table>
      </form>
    </li>
  </ul>
</div>
<div class="nav">
<a class="el" href="dir_f60961de8e5edc3b2658ef023e959e45.html">deploy</a>&nbsp;&raquo&nbsp;<a class="el" href="dir_6b4e91e54b7316b376882a6402adbf44.html">include</a>&nbsp;&raquo&nbsp;<a class="el" href="dir_df3a7695d5a9e696f30b948b566829e7.html">axis2-1.6.0</a></div>
<h1>tcpmon_session.h</h1><a href="tcpmon__session_8h.html">Go to the documentation of this file.</a><div class="fragment"><pre class="fragment"><a name="l00001"></a>00001 
<a name="l00002"></a>00002 <span class="comment">/*</span>
<a name="l00003"></a>00003 <span class="comment"> * Licensed to the Apache Software Foundation (ASF) under one or more</span>
<a name="l00004"></a>00004 <span class="comment"> * contributor license agreements.  See the NOTICE file distributed with</span>
<a name="l00005"></a>00005 <span class="comment"> * this work for additional information regarding copyright ownership.</span>
<a name="l00006"></a>00006 <span class="comment"> * The ASF licenses this file to You under the Apache License, Version 2.0</span>
<a name="l00007"></a>00007 <span class="comment"> * (the "License"); you may not use this file except in compliance with</span>
<a name="l00008"></a>00008 <span class="comment"> * the License.  You may obtain a copy of the License at</span>
<a name="l00009"></a>00009 <span class="comment"> *</span>
<a name="l00010"></a>00010 <span class="comment"> *      http://www.apache.org/licenses/LICENSE-2.0</span>
<a name="l00011"></a>00011 <span class="comment"> *</span>
<a name="l00012"></a>00012 <span class="comment"> * Unless required by applicable law or agreed to in writing, software</span>
<a name="l00013"></a>00013 <span class="comment"> * distributed under the License is distributed on an "AS IS" BASIS,</span>
<a name="l00014"></a>00014 <span class="comment"> * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.</span>
<a name="l00015"></a>00015 <span class="comment"> * See the License for the specific language governing permissions and</span>
<a name="l00016"></a>00016 <span class="comment"> * limitations under the License.</span>
<a name="l00017"></a>00017 <span class="comment"> */</span>
<a name="l00018"></a>00018 
<a name="l00019"></a>00019 <span class="preprocessor">#ifndef TCPMON_SESSION_H</span>
<a name="l00020"></a>00020 <span class="preprocessor"></span><span class="preprocessor">#define TCPMON_SESSION_H</span>
<a name="l00021"></a>00021 <span class="preprocessor"></span>
<a name="l00022"></a>00022 <span class="preprocessor">#include &lt;<a class="code" href="axutil__env_8h.html" title="Axis2 environment that acts as a container for error, log and memory allocator routines...">axutil_env.h</a>&gt;</span>
<a name="l00023"></a>00023 <span class="preprocessor">#include &lt;<a class="code" href="tcpmon__entry_8h.html" title="represent entry of tcpmon">tcpmon_entry.h</a>&gt;</span>
<a name="l00024"></a>00024 <span class="preprocessor">#include &lt;axutil_string.h&gt;</span>
<a name="l00025"></a>00025 
<a name="l00031"></a>00031 <span class="preprocessor">#ifdef __cplusplus</span>
<a name="l00032"></a>00032 <span class="preprocessor"></span><span class="keyword">extern</span> <span class="stringliteral">"C"</span>
<a name="l00033"></a>00033 {
<a name="l00034"></a>00034 <span class="preprocessor">#endif</span>
<a name="l00035"></a>00035 <span class="preprocessor"></span>
<a name="l00042"></a>00042     <span class="keyword">typedef</span> <span class="keyword">struct </span>tcpmon_session_ops tcpmon_session_ops_t;
<a name="l00043"></a>00043     <span class="keyword">typedef</span> <span class="keyword">struct </span>tcpmon_session tcpmon_session_t;
<a name="l00044"></a>00044 
<a name="l00048"></a>00048     <span class="keyword">typedef</span> int(
<a name="l00049"></a><a class="code" href="group__represent.html#g87bd5fe0ef0ee83fd083df2de523f7d2">00049</a>         *<a class="code" href="group__represent.html#g87bd5fe0ef0ee83fd083df2de523f7d2">TCPMON_SESSION_NEW_ENTRY_FUNCT</a>)(
<a name="l00050"></a>00050             <span class="keyword">const</span> <a class="code" href="structaxutil__env.html" title="Axis2 Environment struct.">axutil_env_t</a> * env,
<a name="l00051"></a>00051             tcpmon_entry_t * entry,
<a name="l00052"></a>00052             <span class="keywordtype">int</span> status);            <span class="comment">/* 0-started, 1-finished */</span>
<a name="l00053"></a>00053 
<a name="l00054"></a>00054     <span class="keyword">typedef</span> int(
<a name="l00055"></a>00055         *TCPMON_SESSION_TRANS_ERROR_FUNCT)(
<a name="l00056"></a>00056             <span class="keyword">const</span> <a class="code" href="structaxutil__env.html" title="Axis2 Environment struct.">axutil_env_t</a> * env,
<a name="l00057"></a>00057             axis2_char_t * error_message);
<a name="l00058"></a>00058 
<a name="l00059"></a>00059     <span class="keyword">struct </span>tcpmon_session_ops
<a name="l00060"></a>00060     {
<a name="l00061"></a>00061 
<a name="l00068"></a>00068         axis2_status_t(
<a name="l00069"></a>00069             AXIS2_CALL
<a name="l00070"></a>00070             * free)(
<a name="l00071"></a>00071                 tcpmon_session_t * session,
<a name="l00072"></a>00072                 <span class="keyword">const</span> <a class="code" href="structaxutil__env.html" title="Axis2 Environment struct.">axutil_env_t</a> * env);
<a name="l00073"></a>00073 
<a name="l00074"></a>00074         axis2_status_t(
<a name="l00075"></a>00075             AXIS2_CALL
<a name="l00076"></a>00076             * set_test_bit)(
<a name="l00077"></a>00077                 tcpmon_session_t * session,
<a name="l00078"></a>00078                 <span class="keyword">const</span> <a class="code" href="structaxutil__env.html" title="Axis2 Environment struct.">axutil_env_t</a> * env,
<a name="l00079"></a>00079                 <span class="keywordtype">int</span> test_bit);
<a name="l00080"></a>00080 
<a name="l00081"></a>00081         axis2_status_t(
<a name="l00082"></a>00082             AXIS2_CALL
<a name="l00083"></a>00083             * get_test_bit)(
<a name="l00084"></a>00084                 tcpmon_session_t * session,
<a name="l00085"></a>00085                 <span class="keyword">const</span> <a class="code" href="structaxutil__env.html" title="Axis2 Environment struct.">axutil_env_t</a> * env);
<a name="l00086"></a>00086         axis2_status_t(
<a name="l00087"></a>00087             AXIS2_CALL
<a name="l00088"></a>00088             * set_format_bit)(
<a name="l00089"></a>00089                 tcpmon_session_t * session,
<a name="l00090"></a>00090                 <span class="keyword">const</span> <a class="code" href="structaxutil__env.html" title="Axis2 Environment struct.">axutil_env_t</a> * env,
<a name="l00091"></a>00091                 <span class="keywordtype">int</span> format_bit);
<a name="l00092"></a>00092 
<a name="l00093"></a>00093         int(
<a name="l00094"></a>00094             AXIS2_CALL
<a name="l00095"></a>00095             * get_format_bit)(
<a name="l00096"></a>00096                 tcpmon_session_t * session,
<a name="l00097"></a>00097                 <span class="keyword">const</span> <a class="code" href="structaxutil__env.html" title="Axis2 Environment struct.">axutil_env_t</a> * env);
<a name="l00098"></a>00098 
<a name="l00106"></a>00106         axis2_status_t(
<a name="l00107"></a>00107             AXIS2_CALL
<a name="l00108"></a>00108             * set_listen_port)(
<a name="l00109"></a>00109                 tcpmon_session_t * session,
<a name="l00110"></a>00110                 <span class="keyword">const</span> <a class="code" href="structaxutil__env.html" title="Axis2 Environment struct.">axutil_env_t</a> * env,
<a name="l00111"></a>00111                 <span class="keywordtype">int</span> listen_port);
<a name="l00112"></a>00112 
<a name="l00118"></a>00118         int(
<a name="l00119"></a>00119             AXIS2_CALL
<a name="l00120"></a>00120             * get_listen_port)(
<a name="l00121"></a>00121                 tcpmon_session_t * session,
<a name="l00122"></a>00122                 <span class="keyword">const</span> <a class="code" href="structaxutil__env.html" title="Axis2 Environment struct.">axutil_env_t</a> * env);
<a name="l00123"></a>00123 
<a name="l00131"></a>00131         axis2_status_t(
<a name="l00132"></a>00132             AXIS2_CALL
<a name="l00133"></a>00133             * set_target_port)(
<a name="l00134"></a>00134                 tcpmon_session_t * session,
<a name="l00135"></a>00135                 <span class="keyword">const</span> <a class="code" href="structaxutil__env.html" title="Axis2 Environment struct.">axutil_env_t</a> * env,
<a name="l00136"></a>00136                 <span class="keywordtype">int</span> target_port);
<a name="l00137"></a>00137 
<a name="l00143"></a>00143         int(
<a name="l00144"></a>00144             AXIS2_CALL
<a name="l00145"></a>00145             * get_target_port)(
<a name="l00146"></a>00146                 tcpmon_session_t * session,
<a name="l00147"></a>00147                 <span class="keyword">const</span> <a class="code" href="structaxutil__env.html" title="Axis2 Environment struct.">axutil_env_t</a> * env);
<a name="l00148"></a>00148 
<a name="l00156"></a>00156         axis2_status_t(
<a name="l00157"></a>00157             AXIS2_CALL
<a name="l00158"></a>00158             * set_target_host)(
<a name="l00159"></a>00159                 tcpmon_session_t * session,
<a name="l00160"></a>00160                 <span class="keyword">const</span> <a class="code" href="structaxutil__env.html" title="Axis2 Environment struct.">axutil_env_t</a> * env,
<a name="l00161"></a>00161                 axis2_char_t * target_host);
<a name="l00162"></a>00162 
<a name="l00168"></a>00168         axis2_char_t *(
<a name="l00169"></a>00169             AXIS2_CALL
<a name="l00170"></a>00170             * get_target_host)(
<a name="l00171"></a>00171                 tcpmon_session_t * session,
<a name="l00172"></a>00172                 <span class="keyword">const</span> <a class="code" href="structaxutil__env.html" title="Axis2 Environment struct.">axutil_env_t</a> * env);
<a name="l00173"></a>00173 
<a name="l00179"></a>00179         axis2_status_t(
<a name="l00180"></a>00180             AXIS2_CALL
<a name="l00181"></a>00181             * start)(
<a name="l00182"></a>00182                 tcpmon_session_t * session,
<a name="l00183"></a>00183                 <span class="keyword">const</span> <a class="code" href="structaxutil__env.html" title="Axis2 Environment struct.">axutil_env_t</a> * env);
<a name="l00184"></a>00184 
<a name="l00190"></a>00190         axis2_status_t(
<a name="l00191"></a>00191             AXIS2_CALL
<a name="l00192"></a>00192             * stop)(
<a name="l00193"></a>00193                 tcpmon_session_t * session,
<a name="l00194"></a>00194                 <span class="keyword">const</span> <a class="code" href="structaxutil__env.html" title="Axis2 Environment struct.">axutil_env_t</a> * env);
<a name="l00195"></a>00195 
<a name="l00202"></a>00202         axis2_status_t(
<a name="l00203"></a>00203             AXIS2_CALL
<a name="l00204"></a>00204             * on_new_entry)(
<a name="l00205"></a>00205                 tcpmon_session_t * session,
<a name="l00206"></a>00206                 <span class="keyword">const</span> <a class="code" href="structaxutil__env.html" title="Axis2 Environment struct.">axutil_env_t</a> * env,
<a name="l00207"></a>00207                 <a class="code" href="group__represent.html#g87bd5fe0ef0ee83fd083df2de523f7d2">TCPMON_SESSION_NEW_ENTRY_FUNCT</a> on_new_entry_funct);
<a name="l00208"></a>00208 
<a name="l00215"></a>00215         axis2_status_t(
<a name="l00216"></a>00216             AXIS2_CALL
<a name="l00217"></a>00217             * on_trans_fault)(
<a name="l00218"></a>00218                 tcpmon_session_t * session,
<a name="l00219"></a>00219                 <span class="keyword">const</span> <a class="code" href="structaxutil__env.html" title="Axis2 Environment struct.">axutil_env_t</a> * env,
<a name="l00220"></a>00220                 TCPMON_SESSION_TRANS_ERROR_FUNCT on_trans_fault_funct);
<a name="l00221"></a>00221 
<a name="l00222"></a>00222     };
<a name="l00223"></a>00223 
<a name="l00224"></a>00224     <span class="keyword">struct </span>tcpmon_session
<a name="l00225"></a>00225     {
<a name="l00226"></a>00226         tcpmon_session_ops_t *ops;
<a name="l00227"></a>00227     };
<a name="l00228"></a>00228 
<a name="l00234"></a>00234     tcpmon_session_t *AXIS2_CALL
<a name="l00235"></a>00235     <a class="code" href="group__represent.html#gb84102cd177590afd476474a02ba7083">tcpmon_session_create</a>(
<a name="l00236"></a>00236         <span class="keyword">const</span> <a class="code" href="structaxutil__env.html" title="Axis2 Environment struct.">axutil_env_t</a> * env);
<a name="l00237"></a>00237 
<a name="l00238"></a>00238     <span class="comment">/*************************** Function macros **********************************/</span>
<a name="l00239"></a>00239 
<a name="l00240"></a>00240 <span class="preprocessor">#define TCPMON_SESSION_FREE(session, env) \</span>
<a name="l00241"></a>00241 <span class="preprocessor">        ((session)-&gt;ops-&gt;free (session, env))</span>
<a name="l00242"></a>00242 <span class="preprocessor"></span>
<a name="l00243"></a>00243 <span class="preprocessor">#define TCPMON_SESSION_SET_TEST_BIT(session, env, test_bit) \</span>
<a name="l00244"></a>00244 <span class="preprocessor">        ((session)-&gt;ops-&gt;set_test_bit(session, env, test_bit))</span>
<a name="l00245"></a>00245 <span class="preprocessor"></span>
<a name="l00246"></a>00246 <span class="preprocessor">#define TCPMON_SESSION_GET_TEST_BIT(session, env) \</span>
<a name="l00247"></a>00247 <span class="preprocessor">        ((session)-&gt;ops-&gt;get_test_bit(session, env))</span>
<a name="l00248"></a>00248 <span class="preprocessor"></span>
<a name="l00249"></a>00249 <span class="preprocessor">#define TCPMON_SESSION_SET_FORMAT_BIT(session, env, format_bit) \</span>
<a name="l00250"></a>00250 <span class="preprocessor">        ((session)-&gt;ops-&gt;set_format_bit(session, env, format_bit))</span>
<a name="l00251"></a>00251 <span class="preprocessor"></span>
<a name="l00252"></a>00252 <span class="preprocessor">#define TCPMON_SESSION_GET_FORMAT_BIT(session, env) \</span>
<a name="l00253"></a>00253 <span class="preprocessor">        ((session)-&gt;ops-&gt;get_format_bit(session, env))</span>
<a name="l00254"></a>00254 <span class="preprocessor"></span>
<a name="l00255"></a>00255 <span class="preprocessor">#define TCPMON_SESSION_SET_LISTEN_PORT(session, env, listen_port) \</span>
<a name="l00256"></a>00256 <span class="preprocessor">        ((session)-&gt;ops-&gt;set_listen_port(session, env, listen_port))</span>
<a name="l00257"></a>00257 <span class="preprocessor"></span>
<a name="l00258"></a>00258 <span class="preprocessor">#define TCPMON_SESSION_GET_LISTEN_PORT(session, env) \</span>
<a name="l00259"></a>00259 <span class="preprocessor">        ((session)-&gt;ops-&gt;get_listen_port(session, env))</span>
<a name="l00260"></a>00260 <span class="preprocessor"></span>
<a name="l00261"></a>00261 <span class="preprocessor">#define TCPMON_SESSION_SET_TARGET_PORT(session, env, target_port) \</span>
<a name="l00262"></a>00262 <span class="preprocessor">        ((session)-&gt;ops-&gt;set_target_port(session, env, target_port))</span>
<a name="l00263"></a>00263 <span class="preprocessor"></span>
<a name="l00264"></a>00264 <span class="preprocessor">#define TCPMON_SESSION_GET_TARGET_PORT(session, env) \</span>
<a name="l00265"></a>00265 <span class="preprocessor">        ((session)-&gt;ops-&gt;get_target_port(session, env))</span>
<a name="l00266"></a>00266 <span class="preprocessor"></span>
<a name="l00267"></a>00267 <span class="preprocessor">#define TCPMON_SESSION_SET_TARGET_HOST(session, env, target_host) \</span>
<a name="l00268"></a>00268 <span class="preprocessor">        ((session)-&gt;ops-&gt;set_target_host(session, env, target_host))</span>
<a name="l00269"></a>00269 <span class="preprocessor"></span>
<a name="l00270"></a>00270 <span class="preprocessor">#define TCPMON_SESSION_GET_TARGET_HOST(session, env) \</span>
<a name="l00271"></a>00271 <span class="preprocessor">        ((session)-&gt;ops-&gt;get_target_host(session, env))</span>
<a name="l00272"></a>00272 <span class="preprocessor"></span>
<a name="l00273"></a>00273 <span class="preprocessor">#define TCPMON_SESSION_START(session, env) \</span>
<a name="l00274"></a>00274 <span class="preprocessor">        ((session)-&gt;ops-&gt;start(session, env))</span>
<a name="l00275"></a>00275 <span class="preprocessor"></span>
<a name="l00276"></a>00276 <span class="preprocessor">#define TCPMON_SESSION_STOP(session, env) \</span>
<a name="l00277"></a>00277 <span class="preprocessor">        ((session)-&gt;ops-&gt;stop(session, env))</span>
<a name="l00278"></a>00278 <span class="preprocessor"></span>
<a name="l00279"></a>00279 <span class="preprocessor">#define TCPMON_SESSION_ON_TRANS_FAULT(session, env, funct) \</span>
<a name="l00280"></a>00280 <span class="preprocessor">        ((session)-&gt;ops-&gt;on_trans_fault(session, env, funct))</span>
<a name="l00281"></a>00281 <span class="preprocessor"></span>
<a name="l00282"></a>00282 <span class="preprocessor">#define TCPMON_SESSION_ON_NEW_ENTRY(session, env, funct) \</span>
<a name="l00283"></a>00283 <span class="preprocessor">        ((session)-&gt;ops-&gt;on_new_entry(session, env, funct))</span>
<a name="l00284"></a>00284 <span class="preprocessor"></span>
<a name="l00287"></a>00287 <span class="preprocessor">#ifdef __cplusplus</span>
<a name="l00288"></a>00288 <span class="preprocessor"></span>}
<a name="l00289"></a>00289 <span class="preprocessor">#endif</span>
<a name="l00290"></a>00290 <span class="preprocessor"></span>
<a name="l00291"></a>00291 <span class="preprocessor">#endif                          </span><span class="comment">/* TCPMON_SESSION_H */</span>
</pre></div><hr size="1"><address style="text-align: right;"><small>Generated on Thu Apr 16 11:31:21 2009 for Axis2/C by&nbsp;
<a href="http://www.doxygen.org/index.html">
<img src="doxygen.png" alt="doxygen" align="middle" border="0"></a> 1.5.3 </small></address>
</body>
</html>


<|start_filename|>tools/tcpmon/src/tcpmon_session_local.h<|end_filename|>
#include <tcpmon_session.h>
#include <tcpmon_entry.h>

axis2_status_t tcpmon_session_add_new_entry(
    tcpmon_session_t * session,
    const axutil_env_t * env,
    tcpmon_entry_t * entry);

TCPMON_SESSION_TRANS_ERROR_FUNCT tcpmon_session_get_on_trans_fault(
    tcpmon_session_t * session,
    const axutil_env_t * env);

TCPMON_SESSION_NEW_ENTRY_FUNCT tcpmon_session_get_on_new_entry(
    tcpmon_session_t * session,
    const axutil_env_t * env);


<|start_filename|>xdocs/api/html/globals_type.html<|end_filename|>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html><head><meta http-equiv="Content-Type" content="text/html;charset=UTF-8">
<title>Axis2/C: Class Members</title>
<link href="doxygen.css" rel="stylesheet" type="text/css">
<link href="tabs.css" rel="stylesheet" type="text/css">
</head><body>
<!-- Generated by Doxygen 1.5.3 -->
<div class="tabs">
  <ul>
    <li><a href="index.html"><span>Main&nbsp;Page</span></a></li>
    <li><a href="modules.html"><span>Modules</span></a></li>
    <li><a href="annotated.html"><span>Classes</span></a></li>
    <li class="current"><a href="files.html"><span>Files</span></a></li>
    <li><a href="dirs.html"><span>Directories</span></a></li>
    <li><a href="pages.html"><span>Related&nbsp;Pages</span></a></li>
    <li><a href="examples.html"><span>Examples</span></a></li>
    <li>
      <form action="search.php" method="get">
        <table cellspacing="0" cellpadding="0" border="0">
          <tr>
            <td><label>&nbsp;<u>S</u>earch&nbsp;for&nbsp;</label></td>
            <td><input type="text" name="query" value="" size="20" accesskey="s"/></td>
          </tr>
        </table>
      </form>
    </li>
  </ul>
</div>
<div class="tabs">
  <ul>
    <li><a href="files.html"><span>File&nbsp;List</span></a></li>
    <li class="current"><a href="globals.html"><span>File&nbsp;Members</span></a></li>
  </ul>
</div>
<div class="tabs">
  <ul>
    <li><a href="globals.html"><span>All</span></a></li>
    <li><a href="globals_func.html"><span>Functions</span></a></li>
    <li class="current"><a href="globals_type.html"><span>Typedefs</span></a></li>
    <li><a href="globals_enum.html"><span>Enumerations</span></a></li>
    <li><a href="globals_eval.html"><span>Enumerator</span></a></li>
    <li><a href="globals_defs.html"><span>Defines</span></a></li>
  </ul>
</div>
<div class="tabs">
  <ul>
    <li><a href="#index_a"><span>a</span></a></li>
    <li><a href="#index_e"><span>e</span></a></li>
  </ul>
</div>

<p>
&nbsp;
<p>
<h3><a class="anchor" name="index_a">- a -</a></h3><ul>
<li>axiom_data_source_t
: <a class="el" href="group__axiom__data__source.html#gb52389bbd2e986cbd069892a92583ef4">axiom_data_source.h</a>
<li>axiom_mtom_caching_callback_ops_t
: <a class="el" href="group__caching__callback.html#gdba5b402b3a5bf007882d7f5e569435a">axiom_mtom_caching_callback.h</a>
<li>axiom_mtom_caching_callback_t
: <a class="el" href="group__caching__callback.html#g118942e9e22791ec1c8217d68de51f11">axiom_mtom_caching_callback.h</a>
<li>axiom_mtom_sending_callback_ops_t
: <a class="el" href="group__mtom__sending__callback.html#g2ec4f4b0d36484d7d80600f079ad153c">axiom_mtom_sending_callback.h</a>
<li>axiom_mtom_sending_callback_t
: <a class="el" href="group__mtom__sending__callback.html#g1b8c0dbaa427283987be2131fcb340ee">axiom_mtom_sending_callback.h</a>
<li>axis2_any_content_type_t
: <a class="el" href="group__axis2__any__content__type.html#g44968ee69ad6bda6b83de21f2105ef70">axis2_any_content_type.h</a>
<li>axis2_async_result_t
: <a class="el" href="group__axis2__async__result.html#g7f79cfe086dfb98806cc3c0c3b408c3c">axis2_async_result.h</a>
<li>axis2_callback_t
: <a class="el" href="group__axis2__callback.html#g0d855254802281de06d16c71627226b5">axis2_callback.h</a>
<li>axis2_conf_ctx_t
: <a class="el" href="group__axis2__conf__ctx.html#gab2f89df328e63d4f9fa3a4d035d18f0">axis2_conf_ctx.h</a>
<li>axis2_conf_t
: <a class="el" href="group__axis2__config.html#gd32db334e748bbdcaebd55156e493d3b">axis2_conf.h</a>
<li>axis2_ctx_t
: <a class="el" href="group__axis2__ctx.html#ga705ff779281577f08fef5330c23402c">axis2_ctx.h</a>
<li>axis2_desc_t
: <a class="el" href="group__axis2__description.html#g9bbf771ae43a8364c5f453c7077f0f1e">axis2_desc.h</a>
<li>axis2_disp_t
: <a class="el" href="group__axis2__disp.html#g8f0bac449c79895127179ee88604be65">axis2_disp.h</a>
<li>axis2_endpoint_ref_t
: <a class="el" href="group__axis2__endpoint__ref.html#gf6e89c83a6b553e7e3f11e787b3fecd4">axis2_endpoint_ref.h</a>
<li>axis2_engine_t
: <a class="el" href="group__axis2__engine.html#g9e253706c74ca12c9674c3714861fe74">axis2_engine.h</a>
<li>axis2_flow_container_t
: <a class="el" href="group__axis2__flow__container.html#g645e6696dcbc315b06681604a150254f">axis2_flow_container.h</a>
<li>axis2_flow_t
: <a class="el" href="group__axis2__flow.html#gd6d04c1c62cbffd6140a8df8fcbe5a09">axis2_flow.h</a>
<li>AXIS2_HANDLER_CREATE_FUNC
: <a class="el" href="group__axis2__handler.html#g097dac3689f86e2e189065c772a551f8">axis2_handler.h</a>
<li>axis2_handler_desc_t
: <a class="el" href="group__axis2__handler__desc.html#gafcabd9d344f36395e60f1b4677835d9">axis2_handler_desc.h</a>
<li>axis2_handler_t
: <a class="el" href="group__axis2__handler.html#g62e76f39f224fb84e98b6b77fdf4655c">axis2_handler.h</a>
<li>axis2_http_accept_record_t
: <a class="el" href="group__axis2__http__accept__record.html#ge384ef207777c3f8a0e151650e043b90">axis2_http_accept_record.h</a>
<li>axis2_http_client_t
: <a class="el" href="group__axis2__http__client.html#gdeeb1e1752239a9e3696e1aa75fe331d">axis2_http_client.h</a>
<li>axis2_http_header_t
: <a class="el" href="group__axis2__http__header.html#gd8f14a5acb342f2f99bcfe3c71e7857e">axis2_http_header.h</a>
<li>axis2_http_out_transport_info_t
: <a class="el" href="group__axis2__http__out__transport__info.html#g488b445412c39ae4b2a3edd1df4f319c">axis2_http_out_transport_info.h</a>
<li>axis2_http_request_line_t
: <a class="el" href="group__axis2__http__request__line.html#g1070304508a3dd97050d86758db6b3e4">axis2_http_request_line.h</a>
<li>axis2_http_response_writer_t
: <a class="el" href="group__axis2__http__response__writer.html#g2259f3ec5abf54528a6b9797e8188771">axis2_http_response_writer.h</a>
<li>axis2_http_sender_t
: <a class="el" href="axis2__http__sender_8h.html#6cd798fd88a2c7e86e4a93497b43fc50">axis2_http_sender.h</a>
<li>axis2_http_simple_request_t
: <a class="el" href="group__axis2__http__simple__request.html#g587c6b13c2e9b94b68e3a2a142cc3416">axis2_http_simple_request.h</a>
<li>axis2_http_status_line_t
: <a class="el" href="group__axis2__http__status__line.html#gdfb55bd473dfd8c73003b9c20d7e4e4b">axis2_http_status_line.h</a>
<li>axis2_http_svr_thread_t
: <a class="el" href="group__axis2__http__svr__thread.html#gc9b1bf4adaabb85af85ffc9f56099239">axis2_http_svr_thread.h</a>
<li>axis2_http_worker_t
: <a class="el" href="group__axis2__http__worker.html#g91faee703d8722cd152199811c1e4c4f">axis2_http_worker.h</a>
<li>axis2_listener_manager_t
: <a class="el" href="group__axis2__listener__manager.html#g1b9eeb7e6361aff1035273fbaa47cf47">axis2_listener_manager.h</a>
<li>axis2_module_desc_t
: <a class="el" href="group__axis2__module__desc.html#g2d21719bf20fcf0dbd25ea4093e28acf">axis2_module_desc.h</a>
<li>axis2_module_ops_t
: <a class="el" href="group__axis2__module.html#gd48171d2877468bdaca74a22473c9c09">axis2_module.h</a>
<li>axis2_module_t
: <a class="el" href="group__axis2__module.html#gd7178056a81383c23d68a1ec747a90e5">axis2_module.h</a>
<li>AXIS2_MSG_CTX_FIND_OP
: <a class="el" href="group__axis2__msg__ctx.html#g0b84b027d9bcb64409d21de24751e904">axis2_msg_ctx.h</a>
<li>AXIS2_MSG_CTX_FIND_SVC
: <a class="el" href="group__axis2__msg__ctx.html#g9949f405b8bfac0ee5015d67d3ee949c">axis2_msg_ctx.h</a>
<li>axis2_msg_ctx_t
: <a class="el" href="group__axis2__msg__ctx.html#g160acae289ac39cb49fa625ffd88e410">axis2_msg_ctx.h</a>
<li>axis2_msg_info_headers_t
: <a class="el" href="group__axis2__msg__info__headers.html#g556873fdfa94e29e43d96728871f3192">axis2_msg_info_headers.h</a>
<li>axis2_msg_recv_t
: <a class="el" href="group__axis2__msg__recv.html#g7547da0893782e6165696315481247de">axis2_msg_recv.h</a>
<li>axis2_msg_t
: <a class="el" href="group__axis2__msg.html#g20e480486e264ed4fb5df0517ce76b09">axis2_msg.h</a>
<li>axis2_on_complete_func_ptr
: <a class="el" href="group__axis2__callback.html#g24412ea84a2372e48f030ff7fa2f57ce">axis2_callback.h</a>
<li>axis2_on_error_func_ptr
: <a class="el" href="group__axis2__callback.html#g195846304fc14b2bd2a55b19b04d220f">axis2_callback.h</a>
<li>axis2_op_client_t
: <a class="el" href="group__axis2__op__client.html#g6bc9ac9f149e65002cdfc265f8a7e505">axis2_op_client.h</a>
<li>axis2_op_ctx_t
: <a class="el" href="group__axis2__op__ctx.html#ga1a3bbd22f2313e8da5bd031ea8190c9">axis2_op_ctx.h</a>
<li>axis2_options_t
: <a class="el" href="group__axis2__options.html#g26794bbdc46cdd3481c7e9079c0d6094">axis2_options.h</a>
<li>axis2_out_transport_info_t
: <a class="el" href="group__axis2__out__transport__info.html#gb841f7dbcba89c8b6f55c193007d68c7">axis2_out_transport_info.h</a>
<li>AXIS2_PARAM_VALUE_FREE
: <a class="el" href="group__axutil__param.html#ga5c678036ca483c53d4a73a1fa85c8da">axutil_param.h</a>
<li>axis2_phase_holder_t
: <a class="el" href="group__axis2__phase__holder.html#g10df00c78200bd75b25c443e6c6d568e">axis2_phase_holder.h</a>
<li>axis2_phase_resolver_t
: <a class="el" href="group__axis2__phase__resolver.html#g1d7f5ab5b7042b14e61751be6e6bcb7c">axis2_phase_resolver.h</a>
<li>axis2_phase_rule_t
: <a class="el" href="group__axis2__phase__rule.html#g9c63c3673a8a009300b1d5c6d89cc3f5">axis2_phase_rule.h</a>
<li>axis2_phase_t
: <a class="el" href="group__axis2__phase.html#gbd87daad5497d3a4d756e20c008e3ac4">axis2_phase.h</a>
<li>axis2_port_t
: <a class="el" href="group__axutil__uri.html#ge872059061cd893ffffc348e725bd021">axutil_uri.h</a>
<li>axis2_relates_to_t
: <a class="el" href="group__axis2__relates__to.html#gd92fd7b0e63b44c6343db15b61aeba45">axis2_relates_to.h</a>
<li>axis2_stub_t
: <a class="el" href="group__axis2__stub.html#g8ffbf8bf99ffec0caa07cf7aacf17281">axis2_stub.h</a>
<li>axis2_svc_client_t
: <a class="el" href="group__axis2__svc__client.html#g09ddaee99db86733d6550231293be4e7">axis2_svc_client.h</a>
<li>axis2_svc_ctx_t
: <a class="el" href="group__axis2__svc__ctx.html#g2a3845db3eb9e9a47b992f6c8882e482">axis2_svc_ctx.h</a>
<li>axis2_svc_grp_ctx_t
: <a class="el" href="group__axis2__svc__grp__ctx.html#g340e0c5f75d6579013ff5768b37e4a07">axis2_svc_grp_ctx.h</a>
<li>axis2_svc_grp_t
: <a class="el" href="group__axis2__svc__grp.html#g5ef2d05d92b41f84d9dc381ad21d54c4">axis2_svc_grp.h</a>
<li>axis2_svc_name_t
: <a class="el" href="group__axis2__svc__name.html#gf3d9c6a25fce098b03819d1ac546270c">axis2_svc_name.h</a>
<li>axis2_svc_skeleton_ops_t
: <a class="el" href="group__axis2__svc__skeleton.html#gcaa7c83955b9bfe9476b6afc73833b28">axis2_svc_skeleton.h</a>
<li>axis2_svc_skeleton_t
: <a class="el" href="group__axis2__svc__skeleton.html#gc1e79d5cf892025c1f663b2122c5ea50">axis2_svc_skeleton.h</a>
<li>axis2_svc_t
: <a class="el" href="group__axis2__svc.html#gc4a9229f924f3af161d02183a9dd6ca3">axis2_svc.h</a>
<li>axis2_svr_callback_t
: <a class="el" href="group__axis2__svr__callback.html#gbae96544b63cca63da330e4d6ccb489c">axis2_svr_callback.h</a>
<li>axis2_transport_in_desc_t
: <a class="el" href="group__axis2__transport__in__desc.html#g9185c8c5307454b74f49523666f7bda6">axis2_transport_in_desc.h</a>
<li>axis2_transport_out_desc_t
: <a class="el" href="group__axis2__transport__out__desc.html#g30caf90fd8fb7b0c89700bcb12e250df">axis2_transport_out_desc.h</a>
<li>axis2_transport_receiver_ops_t
: <a class="el" href="group__axis2__transport__receiver.html#gf65f9d0fa8f0c218a317c0c53c692a2b">axis2_transport_receiver.h</a>
<li>axis2_transport_receiver_t
: <a class="el" href="group__axis2__transport__receiver.html#gc3080d6ec44ab99a8d64ba4b5196daeb">axis2_transport_receiver.h</a>
<li>axis2_transport_sender_ops_t
: <a class="el" href="group__axis2__transport__sender.html#ga6fa9ad0eb8d6d93e6549a0517d8ac73">axis2_transport_sender.h</a>
<li>axis2_transport_sender_t
: <a class="el" href="group__axis2__transport__sender.html#gaec2671b224403aa77de843348bb7711">axis2_transport_sender.h</a>
<li>axutil_allocator_t
: <a class="el" href="group__axutil__allocator.html#g24403baa66b6208837ff50b46f8ba930">axutil_allocator.h</a>
<li>axutil_array_list_t
: <a class="el" href="group__axutil__array__list.html#g1a6a89777db876cfa0cc86787b7be6a0">axutil_array_list.h</a>
<li>axutil_base64_binary_t
: <a class="el" href="group__axutil__base64__binary.html#gd87df1cdeeff79315010179147857acb">axutil_base64_binary.h</a>
<li>axutil_env_t
: <a class="el" href="group__axutil__env.html#gd1083f9198686518871a41ce0e08cd0a">axutil_env.h</a>
<li>axutil_hash_index_t
: <a class="el" href="group__axutil__hash.html#g3c624ec6d027cc0a7e8f07fb849f51f8">axutil_hash.h</a>
<li>axutil_hash_t
: <a class="el" href="group__axutil__hash.html#gb2d7d14db2de92a101573f44421ac12a">axutil_hash.h</a>
<li>axutil_hashfunc_t
: <a class="el" href="group__axutil__hash.html#gb07fdbe39a3c5b3fdaed1a8c8d1a177b">axutil_hash.h</a>
<li>axutil_http_chunked_stream_t
: <a class="el" href="group__axutil__http__chunked__stream.html#g4f21d685413463e10ac26b40046a25ff">axutil_http_chunked_stream.h</a>
<li>axutil_thread_mutex_t
: <a class="el" href="group__axutil__thread.html#g3d6a99be71c7c750b4ac37efae2bdf87">axutil_thread.h</a>
<li>axutil_thread_once_t
: <a class="el" href="group__axutil__thread.html#g62e2f1428e742cdfad365b22fc2c271b">axutil_thread.h</a>
<li>axutil_thread_start_t
: <a class="el" href="group__axutil__thread.html#g8b1ee6e8fa770ee290503c43c087f633">axutil_thread.h</a>
<li>axutil_thread_t
: <a class="el" href="group__axutil__thread.html#g7b2442c6150883ffac05fd2c4844b7cc">axutil_thread.h</a>
<li>axutil_threadattr_t
: <a class="el" href="group__axutil__thread.html#g00ba127eb9ea681435b79dfd52132bc9">axutil_thread.h</a>
<li>axutil_threadkey_t
: <a class="el" href="group__axutil__thread.html#g48b4d7958a921bd9780ef76e1b76c3a4">axutil_thread.h</a>
</ul>
<h3><a class="anchor" name="index_e">- e -</a></h3><ul>
<li>entry_t
: <a class="el" href="group__axutil__linked__list.html#gc8fdf0a0a29c429a84e7beb8bcbd00ce">axutil_linked_list.h</a>
</ul>
<hr size="1"><address style="text-align: right;"><small>Generated on Fri Apr 17 11:49:48 2009 for Axis2/C by&nbsp;
<a href="http://www.doxygen.org/index.html">
<img src="doxygen.png" alt="doxygen" align="middle" border="0"></a> 1.5.3 </small></address>
</body>
</html>


<|start_filename|>xdocs/api/html/axiom__attribute_8h.html<|end_filename|>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html><head><meta http-equiv="Content-Type" content="text/html;charset=UTF-8">
<title>Axis2/C: axiom_attribute.h File Reference</title>
<link href="doxygen.css" rel="stylesheet" type="text/css">
<link href="tabs.css" rel="stylesheet" type="text/css">
</head><body>
<!-- Generated by Doxygen 1.5.3 -->
<div class="tabs">
  <ul>
    <li><a href="index.html"><span>Main&nbsp;Page</span></a></li>
    <li><a href="modules.html"><span>Modules</span></a></li>
    <li><a href="annotated.html"><span>Classes</span></a></li>
    <li class="current"><a href="files.html"><span>Files</span></a></li>
    <li><a href="dirs.html"><span>Directories</span></a></li>
    <li><a href="pages.html"><span>Related&nbsp;Pages</span></a></li>
    <li><a href="examples.html"><span>Examples</span></a></li>
    <li>
      <form action="search.php" method="get">
        <table cellspacing="0" cellpadding="0" border="0">
          <tr>
            <td><label>&nbsp;<u>S</u>earch&nbsp;for&nbsp;</label></td>
            <td><input type="text" name="query" value="" size="20" accesskey="s"/></td>
          </tr>
        </table>
      </form>
    </li>
  </ul>
</div>
<div class="nav">
<a class="el" href="dir_f60961de8e5edc3b2658ef023e959e45.html">deploy</a>&nbsp;&raquo&nbsp;<a class="el" href="dir_6b4e91e54b7316b376882a6402adbf44.html">include</a>&nbsp;&raquo&nbsp;<a class="el" href="dir_df3a7695d5a9e696f30b948b566829e7.html">axis2-1.6.0</a></div>
<h1>axiom_attribute.h File Reference</h1>om attribute struct represents an xml attribute <a href="#_details">More...</a>
<p>
<code>#include &lt;<a class="el" href="axutil__env_8h-source.html">axutil_env.h</a>&gt;</code><br>
<code>#include &lt;<a class="el" href="axutil__qname_8h-source.html">axutil_qname.h</a>&gt;</code><br>
<code>#include &lt;axiom_namespace.h&gt;</code><br>
<code>#include &lt;axiom_output.h&gt;</code><br>

<p>
<a href="axiom__attribute_8h-source.html">Go to the source code of this file.</a><table border="0" cellpadding="0" cellspacing="0">
<tr><td></td></tr>
<tr><td colspan="2"><br><h2>Typedefs</h2></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="gf77817edfc3f692871ad6e3a4d1160ff"></a><!-- doxytag: member="axiom_attribute.h::axiom_attribute_t" ref="gf77817edfc3f692871ad6e3a4d1160ff" args="" -->
typedef struct <br>
axiom_attribute&nbsp;</td><td class="memItemRight" valign="bottom"><b>axiom_attribute_t</b></td></tr>

<tr><td colspan="2"><br><h2>Functions</h2></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top">AXIS2_EXTERN <br>
axiom_attribute_t *&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__axiom__attribute.html#gda66e5da53578d93c34f0c717394605d">axiom_attribute_create</a> (const <a class="el" href="structaxutil__env.html">axutil_env_t</a> *env, const axis2_char_t *localname, const axis2_char_t *value, axiom_namespace_t *ns)</td></tr>

<tr><td class="memItemLeft" nowrap align="right" valign="top">AXIS2_EXTERN void&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__axiom__attribute.html#geb9ac7efe5dbb33273cd37c9ddc99b0a">axiom_attribute_free_void_arg</a> (void *om_attribute, const <a class="el" href="structaxutil__env.html">axutil_env_t</a> *env)</td></tr>

<tr><td class="memItemLeft" nowrap align="right" valign="top">AXIS2_EXTERN void&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__axiom__attribute.html#gd28f7c80adad15d93a1be5a8918c92c9">axiom_attribute_free</a> (struct axiom_attribute *om_attribute, const <a class="el" href="structaxutil__env.html">axutil_env_t</a> *env)</td></tr>

<tr><td class="memItemLeft" nowrap align="right" valign="top">AXIS2_EXTERN <br>
axutil_qname_t *&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__axiom__attribute.html#g749197cc40576ff4139c9d19298f9f24">axiom_attribute_get_qname</a> (struct axiom_attribute *om_attribute, const <a class="el" href="structaxutil__env.html">axutil_env_t</a> *env)</td></tr>

<tr><td class="memItemLeft" nowrap align="right" valign="top">AXIS2_EXTERN int&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__axiom__attribute.html#gac6dabe7926ef1275437d5b5d1363108">axiom_attribute_serialize</a> (struct axiom_attribute *om_attribute, const <a class="el" href="structaxutil__env.html">axutil_env_t</a> *env, <a class="el" href="group__axiom__output.html#gfe1ea804d7a8179e85371f065cd9df09">axiom_output_t</a> *om_output)</td></tr>

<tr><td class="memItemLeft" nowrap align="right" valign="top">AXIS2_EXTERN <br>
axis2_char_t *&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__axiom__attribute.html#g7ec0c8a1b00cdd260d3bbbe9c25d48d6">axiom_attribute_get_localname</a> (struct axiom_attribute *om_attribute, const <a class="el" href="structaxutil__env.html">axutil_env_t</a> *env)</td></tr>

<tr><td class="memItemLeft" nowrap align="right" valign="top">AXIS2_EXTERN <br>
axis2_char_t *&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__axiom__attribute.html#g95d26b917b6beea23aada61bf1402376">axiom_attribute_get_value</a> (struct axiom_attribute *om_attribute, const <a class="el" href="structaxutil__env.html">axutil_env_t</a> *env)</td></tr>

<tr><td class="memItemLeft" nowrap align="right" valign="top">AXIS2_EXTERN <br>
axiom_namespace_t *&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__axiom__attribute.html#gf5237ea2eed7bb6326f19e2cda6ffe9c">axiom_attribute_get_namespace</a> (struct axiom_attribute *om_attribute, const <a class="el" href="structaxutil__env.html">axutil_env_t</a> *env)</td></tr>

<tr><td class="memItemLeft" nowrap align="right" valign="top">AXIS2_EXTERN <br>
axis2_status_t&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__axiom__attribute.html#g45d596e4d7eaf81d205f9b8f01c580e5">axiom_attribute_set_localname</a> (struct axiom_attribute *om_attribute, const <a class="el" href="structaxutil__env.html">axutil_env_t</a> *env, const axis2_char_t *localname)</td></tr>

<tr><td class="memItemLeft" nowrap align="right" valign="top">AXIS2_EXTERN <br>
axis2_status_t&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__axiom__attribute.html#g04e602a4d9456b9111bdbad5ea89a0ec">axiom_attribute_set_value</a> (struct axiom_attribute *om_attribute, const <a class="el" href="structaxutil__env.html">axutil_env_t</a> *env, const axis2_char_t *value)</td></tr>

<tr><td class="memItemLeft" nowrap align="right" valign="top">AXIS2_EXTERN <br>
axis2_status_t&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__axiom__attribute.html#g4b27824f6bb94509562fe09644adf9a3">axiom_attribute_set_namespace</a> (struct axiom_attribute *om_attribute, const <a class="el" href="structaxutil__env.html">axutil_env_t</a> *env, axiom_namespace_t *om_namespace)</td></tr>

<tr><td class="memItemLeft" nowrap align="right" valign="top">AXIS2_EXTERN struct <br>
axiom_attribute *&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__axiom__attribute.html#g21014966fb2d80f589bbbe23a66ff478">axiom_attribute_clone</a> (struct axiom_attribute *om_attribute, const <a class="el" href="structaxutil__env.html">axutil_env_t</a> *env)</td></tr>

<tr><td class="memItemLeft" nowrap align="right" valign="top">AXIS2_EXTERN <br>
axis2_status_t&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__axiom__attribute.html#g4e9157492474b5a0e828935b606f943e">axiom_attribute_increment_ref</a> (struct axiom_attribute *om_attribute, const <a class="el" href="structaxutil__env.html">axutil_env_t</a> *env)</td></tr>

<tr><td class="memItemLeft" nowrap align="right" valign="top">AXIS2_EXTERN <br>
axiom_attribute_t *&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__axiom__attribute.html#gb9836150f9d8af4256bcadace600c79f">axiom_attribute_create_str</a> (const <a class="el" href="structaxutil__env.html">axutil_env_t</a> *env, axutil_string_t *localname, axutil_string_t *value, axiom_namespace_t *ns)</td></tr>

<tr><td class="memItemLeft" nowrap align="right" valign="top">AXIS2_EXTERN <br>
axutil_string_t *&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__axiom__attribute.html#g9e36fa98afd7d60eff62da45e760dce4">axiom_attribute_get_localname_str</a> (axiom_attribute_t *attribute, const <a class="el" href="structaxutil__env.html">axutil_env_t</a> *env)</td></tr>

<tr><td class="memItemLeft" nowrap align="right" valign="top">AXIS2_EXTERN <br>
axutil_string_t *&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__axiom__attribute.html#g0f1e956758b142ba21d18dcd30cca1d9">axiom_attribute_get_value_str</a> (axiom_attribute_t *attribute, const <a class="el" href="structaxutil__env.html">axutil_env_t</a> *env)</td></tr>

<tr><td class="memItemLeft" nowrap align="right" valign="top">AXIS2_EXTERN <br>
axis2_status_t&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__axiom__attribute.html#g5433c75c8f87f602ae89c9943f45df81">axiom_attribute_set_localname_str</a> (axiom_attribute_t *attribute, const <a class="el" href="structaxutil__env.html">axutil_env_t</a> *env, axutil_string_t *localname)</td></tr>

<tr><td class="memItemLeft" nowrap align="right" valign="top">AXIS2_EXTERN <br>
axis2_status_t&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__axiom__attribute.html#g10bfe30de55eb9f2f19829b1578913c1">axiom_attribute_set_value_str</a> (axiom_attribute_t *attribute, const <a class="el" href="structaxutil__env.html">axutil_env_t</a> *env, axutil_string_t *value)</td></tr>

</table>
<hr><a name="_details"></a><h2>Detailed Description</h2>
om attribute struct represents an xml attribute 
<p>
<hr size="1"><address style="text-align: right;"><small>Generated on Fri Apr 17 11:49:43 2009 for Axis2/C by&nbsp;
<a href="http://www.doxygen.org/index.html">
<img src="doxygen.png" alt="doxygen" align="middle" border="0"></a> 1.5.3 </small></address>
</body>
</html>


<|start_filename|>src/core/transport/http/sender/json/axis2_json_writer.c<|end_filename|>
/*
 *  Copyright 2013-2014 <NAME>
 *
 *  Licensed 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.
 */

#include <axutil_utils_defines.h>
#include <axiom_element.h>
#include <axiom_attribute.h>
#include <json.h>
#include <axis2_json_writer.h>

#define AXIS2_JSON_XSI_URI "http://www.w3.org/2001/XMLSchema-instance"
#define AXIS2_JSON_SOAPENC_URI "http://schemas.xmlsoap.org/soap/encoding/"

struct axis2_json_writer
{
    json_object* json_obj;
};

json_type axis2_json_string_to_type(const axis2_char_t* type_str)
{
    if (!type_str)
        return json_type_string;
    if (!strcmp(type_str, "null"))
        return json_type_null;
    if (!strcmp(type_str, "boolean"))
        return json_type_boolean;
    if (!strcmp(type_str, "double"))
        return json_type_double;
    if (!strcmp(type_str, "int"))
        return json_type_int;
    if (!strcmp(type_str, "object"))
        return json_type_object;
    if (!strcmp(type_str, "array"))
        return json_type_array;
    return json_type_string;
}

axis2_char_t* axis2_json_element_get_type(axiom_element_t* om_element, const axutil_env_t* env)
{
    axiom_attribute_t* attr = NULL;
    axutil_hash_index_t* index;
    axutil_hash_t* attr_hash = axiom_element_get_all_attributes(om_element, env);
    axiom_namespace_t* ns;
    axis2_char_t* local_name;

    if (!attr_hash)
        return AXIS2_FALSE;

    for (index = axutil_hash_first(attr_hash, env);
         index; index = axutil_hash_next(env, index))
    {
        axutil_hash_this(index, NULL, NULL, (void**)&attr);
        if (!attr)
            continue;

        ns = axiom_attribute_get_namespace(attr, env);

        if (ns && !strcmp(axiom_namespace_get_uri(ns, env), AXIS2_JSON_XSI_URI))
        {
            local_name = axiom_attribute_get_localname(attr, env);
            if (!strcmp(local_name, "type"))
                return axiom_attribute_get_value(attr, env);
            if (!strcmp(local_name, "nil"))
            {
                axis2_char_t* attr_value =
                        axiom_attribute_get_value(attr, env);
                if (!strcmp(attr_value, "true") || !strcmp(attr_value, "1"))
                    return "null";
            }
        }
    }

    return NULL;
}

axis2_bool_t axis2_json_element_is_array(axiom_element_t* om_element, const axutil_env_t* env)
{
    axiom_attribute_t* attr = NULL;
    axutil_hash_index_t* index;
    axutil_hash_t* attr_hash = axiom_element_get_all_attributes(om_element, env);

    if (!attr_hash)
        return AXIS2_FALSE;

    for (index = axutil_hash_first(attr_hash, env);
         index; index = axutil_hash_next(env, index))
    {
        axutil_hash_this(index, NULL, NULL, (void**)&attr);
        if (attr && !strcmp(axiom_attribute_get_localname(attr, env), "arrayType"))
        {
            /* found some "arrayType" attribute, check it's namespace */
            axutil_qname_t* qname = axiom_attribute_get_qname(attr, env);
            if (qname && !strcmp(axutil_qname_get_uri(qname, env), AXIS2_JSON_SOAPENC_URI))
                return AXIS2_TRUE;
        }
    }

    return AXIS2_FALSE;
}

void axis2_json_write_node(json_object* parent, axiom_node_t* om_node, const axutil_env_t* env,
                           axis2_bool_t parent_is_array)
{
    axiom_element_t* elem;
    axiom_node_t* child_node;
    const axis2_char_t* local_name;
    json_object* obj;
    json_object* array = NULL;
    axis2_bool_t is_array = AXIS2_FALSE;

    if (!om_node || axiom_node_get_node_type(om_node, env) != AXIOM_ELEMENT)
        return;

    elem = (axiom_element_t*)axiom_node_get_data_element(om_node, env);
    local_name = axiom_element_get_localname(elem, env);

    child_node = axiom_node_get_first_element(om_node, env);

    if (!parent_is_array)
    {
        /* find existing object */
        if (json_object_object_get_ex(parent, local_name, &obj))
        {
            /* check that object is array? */
            if (!json_object_is_type(obj, json_type_array))
            {
                /* convert to array */
                obj = json_object_get(obj);
                array = json_object_new_array();
                json_object_array_add(array, obj);
                json_object_object_del(parent, local_name);
                json_object_object_add(parent, local_name, array);
            }
            else
                array = obj;
        }
        else
        {
            if (axis2_json_element_is_array(elem, env))
            {
                array = json_object_new_array();
                json_object_object_add(parent, local_name, array);
                is_array = AXIS2_TRUE;
            }
        }
    }

    if (!child_node)
    {
        /* this is a leaf node */
        json_object* json_value = NULL;
        json_type type;

        if (is_array) /* don't add array element as empty item */
            return;

        type = axis2_json_string_to_type(axis2_json_element_get_type(elem, env));

        /* check for nillable */
        if (type != json_type_null)
        {
            const axis2_char_t* value =
                    axiom_element_get_text(elem, env, om_node);
            if (!value)
                value = "";

            switch (type) {
            case json_type_boolean:
                json_value = json_object_new_boolean(!strcmp(value, "true")
                                                     || !strcmp(value, "1"));
                break;

            case json_type_double:
            {
                double double_value = 0.;
                json_parse_double(value, &double_value);
                json_value = json_object_new_double(double_value);
                break;
            }

            case json_type_int:
            {
                int64_t int_value = 0;
                json_parse_int64(value, &int_value);
                json_value = json_object_new_int64(int_value);
                break;
            }

            default:
                json_value = json_object_new_string(value);
            }
        }


        if (parent_is_array)
            json_object_array_add(parent, json_value);
        else
        if (array)
            json_object_array_add(array, json_value);
        else
            json_object_object_add(parent, local_name, json_value);

        return;
    }

    /* iterate through children elements */
    if (!is_array)
    {
        obj = json_object_new_object();
        if (parent_is_array)
            json_object_array_add(parent, obj);
        else
        if (array)
            json_object_array_add(array, obj);
        else
            json_object_object_add(parent, local_name, obj);
    }
    else
    {
        obj = array;
    }

    for (; child_node; child_node = axiom_node_get_next_sibling(child_node, env))
        if (axiom_node_get_node_type(child_node, env) == AXIOM_ELEMENT)
            axis2_json_write_node(obj, child_node, env, is_array);
}


AXIS2_EXTERN axis2_json_writer_t* AXIS2_CALL
axis2_json_writer_create(
        const axutil_env_t* env)
{
    axis2_json_writer_t* writer = (axis2_json_writer_t*)AXIS2_MALLOC(env->allocator,
                                                                     sizeof(struct axis2_json_writer));
    if (writer)
        writer->json_obj = NULL;

    return writer;
}


AXIS2_EXTERN void AXIS2_CALL
axis2_json_writer_free(
        axis2_json_writer_t* writer,
        const axutil_env_t* env)
{
    json_object_put(writer->json_obj);
    AXIS2_FREE(env->allocator, writer);
}


AXIS2_EXTERN void AXIS2_CALL
axis2_json_writer_write(
        axis2_json_writer_t* writer,
        const axiom_node_t* node,
        const axutil_env_t* env)
{
    /* free existing object */
    if (writer->json_obj)
        json_object_put(writer->json_obj);

    writer->json_obj = json_object_new_object();
    axis2_json_write_node(writer->json_obj, (axiom_node_t*)node, env, AXIS2_FALSE);
}


AXIS2_EXTERN const axis2_char_t* AXIS2_CALL
axis2_json_writer_get_json_string(
        axis2_json_writer_t* writer,
        const axutil_env_t* env,
        int* json_string_length)
{
    const axis2_char_t* result =
            (const axis2_char_t*)json_object_to_json_string_ext(writer->json_obj,
                                                               JSON_C_TO_STRING_PLAIN);
    (void)env;

    if (json_string_length)
        *json_string_length = strlen(result);

    return result;
}


<|start_filename|>src/modules/mod_addr/addr_out_handler.c<|end_filename|>

/*
 * 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.
 */

#include <axis2_handler_desc.h>
#include <axutil_qname.h>
#include <axis2_svc.h>
#include <axiom_soap_header.h>
#include <axiom_soap_body.h>
#include <axis2_addr.h>
#include <axiom_soap_header_block.h>
#include <axis2_endpoint_ref.h>
#include <axutil_property.h>
#include <stdio.h>

axis2_status_t AXIS2_CALL axis2_addr_out_handler_invoke(
    struct axis2_handler * handler,
    const axutil_env_t * env,
    struct axis2_msg_ctx * msg_ctx);

axis2_status_t axis2_addr_out_handler_add_to_soap_header(
    const axutil_env_t * env,
    axis2_endpoint_ref_t * endpoint_ref,
    const axis2_char_t * type,
    axiom_soap_header_t * soap_header,
    const axis2_char_t * addr_ns);

axis2_status_t axis2_addr_out_handler_add_to_header(
    const axutil_env_t * env,
    axis2_endpoint_ref_t * epr,
    axiom_node_t ** parent_node,
    const axis2_char_t * addr_ns);

axis2_status_t axis2_addr_out_handler_process_any_content_type(
    const axutil_env_t * env,
    axis2_any_content_type_t * reference_values,
    axiom_node_t * parent_ele_node,
    const axis2_char_t * addr_ns);

axiom_node_t *axis2_addr_out_handler_process_string_info(
    const axutil_env_t * env,
    const axis2_char_t * value,
    const axis2_char_t * type,
    axiom_soap_header_t ** soap_header,
    const axis2_char_t * addr_ns);

AXIS2_EXTERN axis2_handler_t *AXIS2_CALL
axis2_addr_out_handler_create(
    const axutil_env_t * env,
    axutil_string_t * name)
{
    axis2_handler_t *handler = NULL;

    AXIS2_ENV_CHECK(env, NULL);

    handler = axis2_handler_create(env);
    if (!handler)
    {
        AXIS2_ERROR_SET(env->error, AXIS2_ERROR_NO_MEMORY, AXIS2_FAILURE);
        AXIS2_LOG_ERROR(env->log, AXIS2_LOG_SI,
                        "No memory. Cannot create addressing out handler");
        return NULL;
    }

    axis2_handler_set_invoke(handler, env, axis2_addr_out_handler_invoke);

    return handler;
}

axis2_status_t AXIS2_CALL
axis2_addr_out_handler_invoke(
    struct axis2_handler * handler,
    const axutil_env_t * env,
    axis2_msg_ctx_t * msg_ctx)
{
    axis2_char_t *addr_ver_from_msg_ctx = NULL;
    const axis2_char_t *addr_ns = NULL;
    axis2_msg_info_headers_t *msg_info_headers = NULL;
    axis2_ctx_t *ctx = NULL;
    axiom_soap_envelope_t *soap_envelope = NULL;
    axiom_soap_header_t *soap_header = NULL;
    axiom_node_t *soap_header_node = NULL;
    axiom_element_t *soap_header_ele = NULL;
    axis2_endpoint_ref_t *epr_to = NULL;
    axis2_endpoint_ref_t *epr_reply_to = NULL;
    axis2_endpoint_ref_t *epr_from = NULL;
    axis2_endpoint_ref_t *epr_fault_to = NULL;
    axutil_property_t *property = NULL;
    const axis2_char_t *wsa_action = NULL;

    AXIS2_ENV_CHECK(env, AXIS2_FAILURE);
    AXIS2_PARAM_CHECK(env->error, msg_ctx, AXIS2_FAILURE);
   
    AXIS2_LOG_INFO(env->log, "Starting addressing out handler");

    soap_envelope = axis2_msg_ctx_get_soap_envelope(msg_ctx, env);
    if (!soap_envelope)
    {
        AXIS2_LOG_DEBUG(env->log, AXIS2_LOG_SI,
            "No SOAP envelope. Stop processing addressing");
        return AXIS2_SUCCESS;   /* Can happen in case of ONE-WAY services/clients */
    }

    msg_info_headers = axis2_msg_ctx_get_msg_info_headers(msg_ctx, env);
   
    if (msg_info_headers)
    {
        wsa_action = axis2_msg_info_headers_get_action(msg_info_headers, env);
    }
    else
    {
        AXIS2_LOG_DEBUG(env->log, AXIS2_LOG_SI,
            "No addressing in use");
        return AXIS2_SUCCESS; /* No addressing in use */
    }
    
    if (!wsa_action || !*wsa_action)
    {
        AXIS2_LOG_DEBUG(env->log, AXIS2_LOG_SI,
            "No action present. Stop processing addressing");
        return AXIS2_SUCCESS;   /* If no action present, assume no addressing in use */
    }
    
    ctx = axis2_msg_ctx_get_base(msg_ctx, env);
    property = axis2_ctx_get_property(ctx, env, AXIS2_WSA_VERSION);

    if (property)
    {
        addr_ver_from_msg_ctx = axutil_property_get_value(property,
                                                                    env);
        property = NULL;
    }

    /* Setting version 1.0 as the default addressing namespace */
    addr_ns = AXIS2_WSA_NAMESPACE;

    if (addr_ver_from_msg_ctx)
    {
        if (!axutil_strcmp(AXIS2_WSA_NAMESPACE_SUBMISSION, 
                    addr_ver_from_msg_ctx))
        {
            addr_ns = AXIS2_WSA_NAMESPACE_SUBMISSION;
        }
    }
    else if (axis2_msg_ctx_get_op_ctx(msg_ctx, env))
    {
        axis2_op_ctx_t *op_ctx = NULL;
        axis2_msg_ctx_t *in_msg_ctx = NULL;
        op_ctx = axis2_msg_ctx_get_op_ctx(msg_ctx, env);
        
        if (op_ctx)
        {
            in_msg_ctx = axis2_op_ctx_get_msg_ctx(op_ctx, env, 
                            AXIS2_WSDL_MESSAGE_LABEL_IN);
        }

        if (in_msg_ctx)
        {
            axis2_ctx_t *in_ctx = NULL;
            in_ctx = axis2_msg_ctx_get_base(in_msg_ctx, env);

            property = axis2_ctx_get_property(in_ctx, env, AXIS2_WSA_VERSION);
            if (property)
            {
                addr_ns = axutil_property_get_value(property, env);
                property = NULL;
            }

            if (!addr_ns || !*addr_ns)
            {
                addr_ns = AXIS2_WSA_NAMESPACE;
            }
        }
    }

    
    soap_header = axiom_soap_envelope_get_header(soap_envelope, env);
    if (!soap_header)
    {
        AXIS2_LOG_DEBUG(env->log, AXIS2_LOG_SI,
            "No SOAP header. Stop processing addressing");
        return AXIS2_SUCCESS;   /* No SOAP header, so no point proceeding */
    }
    else
    {
       /* By this time, we definitely have some addressing information to be sent. This is because,
        * we have tested at the start of this whether msg_info_headers are null or not.
        * So rather than declaring addressing namespace in each and every addressing header, lets
        * define that in the Header itself. 
        */
        const axis2_char_t *action = NULL;
        const axis2_char_t *address = NULL;
        const axis2_char_t *svc_group_context_id = NULL;
        const axis2_char_t *message_id = NULL;
        axis2_relates_to_t *relates_to = NULL;
        axiom_node_t *relates_to_header_node = NULL;
        axiom_element_t *relates_to_header_ele = NULL;
        axiom_namespace_t *addressing_namespace = NULL;

        soap_header_node = axiom_soap_header_get_base_node(soap_header, env);
        soap_header_ele = (axiom_element_t *)
            axiom_node_get_data_element(soap_header_node, env);
        
        addressing_namespace =
            axiom_namespace_create(env, addr_ns, AXIS2_WSA_DEFAULT_PREFIX);
        
        axiom_element_declare_namespace(soap_header_ele, env,
                                        soap_header_node, addressing_namespace);

        epr_to = axis2_msg_info_headers_get_to(msg_info_headers, env);

        if (epr_to)
        {
            axiom_soap_body_t *body =
                axiom_soap_envelope_get_body(soap_envelope, env);
            
            if (body)
            {
                /* In case of a SOAP fault, we got to send the response to
                   the adress specified by FaultTo */
                if (axiom_soap_body_has_fault(body, env))
                {
                    axis2_endpoint_ref_t *epr_fault_to =
                        axis2_msg_info_headers_get_fault_to(msg_info_headers,
                                                            env);
                    if (epr_fault_to)
                    {
                        const axis2_char_t *fault_to_address =
                            axis2_endpoint_ref_get_address(epr_fault_to, env);
                        if (fault_to_address)
                        {
                            if (axutil_strcmp(AXIS2_WSA_NONE_URL, fault_to_address) 
                                &&  
                                axutil_strcmp(AXIS2_WSA_NONE_URL_SUBMISSION,
                                              fault_to_address))
                            {
                                axis2_endpoint_ref_set_address(epr_to, env,
                                                               fault_to_address);
                            }
                        }
                    }
                }
            } 
            
            address = axis2_endpoint_ref_get_address(epr_to, env);
            if (address && *address)
            {
                axiom_node_t *to_header_block_node = NULL;
                axiom_soap_header_block_t *to_header_block = NULL;
                axutil_array_list_t *ref_param_list = NULL;
                int size = 0;

                to_header_block =
                    axiom_soap_header_add_header_block(soap_header, env,
                                                       AXIS2_WSA_TO,
                                                       addressing_namespace);
                to_header_block_node =
                    axiom_soap_header_block_get_base_node(to_header_block, env);
                if (to_header_block_node)
                {
                    axiom_element_t *to_header_block_element = NULL;
                    to_header_block_element = (axiom_element_t *)
                        axiom_node_get_data_element(to_header_block_node, env);
                    if (to_header_block_element)
                    {
                        axiom_element_set_text(to_header_block_element, env,
                                               address, to_header_block_node);
                    }
                }

                ref_param_list =
                    axis2_endpoint_ref_get_ref_param_list(epr_to, env);
                
                size = axutil_array_list_size(ref_param_list, env);
                if (ref_param_list && size > 0)
                {
                    axiom_soap_header_block_t *reference_header_block = NULL;
                    axiom_node_t *reference_node = NULL;
                    int i = 0;

                    for (i = 0; i < size; i++)
                    {
                        axiom_node_t *temp_node = NULL;

                        temp_node = (axiom_node_t *)
                            axutil_array_list_get(ref_param_list, env, i);
                        if (temp_node)
                        {
                            axiom_element_t *temp_ele = NULL;

                            temp_ele =
                                axiom_node_get_data_element(temp_node, env);
                            if (temp_ele)
                            {
                                reference_header_block =
                                    axiom_soap_header_add_header_block
                                    (soap_header, env,
                                     axiom_element_get_localname(temp_ele, env),
                                     axiom_element_get_namespace(temp_ele, env,
                                                                 temp_node));

                                reference_node =
                                    axiom_soap_header_block_get_base_node
                                    (reference_header_block, env);
                                if (reference_node)
                                {
                                    axiom_element_t *reference_ele = NULL;
                                    reference_ele =
                                        (axiom_element_t *)
                                        axiom_node_get_data_element
                                        (reference_node, env);

                                    if (reference_ele)
                                    {
                                        axiom_namespace_t *addr_ns_obj = NULL;
                                        axiom_attribute_t *reference_attr =
                                            NULL;

                                        addr_ns_obj =
                                            axiom_namespace_create(env, addr_ns,
                                                                   AXIS2_WSA_DEFAULT_PREFIX);
                                        reference_attr =
                                            axiom_attribute_create(env,
                                                                   /*"isReferenceParameter"*/
                                                                   AXIS2_WSA_IS_REFERENCE_PARAMETER_ATTRIBUTE,
                                                                   "true",
                                                                   addr_ns_obj);
                                        axiom_element_add_attribute
                                            (reference_ele, env, reference_attr,
                                             reference_node);
                                        axiom_element_set_text(reference_ele,
                                                               env,
                                                               axiom_element_get_text
                                                               (temp_ele, env,
                                                                temp_node),
                                                               reference_node);
                                    }
                                }
                            }
                        }
                    }
                }
            }
        }/* if(epr_to) */

        action = axis2_msg_info_headers_get_action(msg_info_headers, env);
        if (action && *action)
        {
            axis2_addr_out_handler_process_string_info(env, action,
                                                       AXIS2_WSA_ACTION,
                                                       &soap_header, addr_ns);
        }

        epr_reply_to = axis2_msg_info_headers_get_reply_to(msg_info_headers, env);
        if (!epr_reply_to)
        {
            const axis2_char_t *anonymous_uri = NULL;
            axis2_bool_t anonymous =
                axis2_msg_info_headers_get_reply_to_anonymous(msg_info_headers,
                                                              env);
            axis2_bool_t none =
                axis2_msg_info_headers_get_reply_to_none(msg_info_headers, env);
            if (!axutil_strcmp(addr_ns, AXIS2_WSA_NAMESPACE_SUBMISSION))
            {
                if (none)
                {
                    anonymous_uri = AXIS2_WSA_NONE_URL_SUBMISSION;
                }
                else if (anonymous)
                {
                    anonymous_uri = AXIS2_WSA_ANONYMOUS_URL_SUBMISSION;
                }
            }
            else
            {
                if (none)
                {
                    anonymous_uri = AXIS2_WSA_NONE_URL;
                }
                else if (anonymous)
                {
                    anonymous_uri = AXIS2_WSA_ANONYMOUS_URL;
                }
            }

            if (anonymous_uri)
            {
                epr_reply_to = axis2_endpoint_ref_create(env, anonymous_uri);
            }
            
            if (epr_reply_to)
            {
                axis2_msg_info_headers_set_reply_to(msg_info_headers, env, epr_reply_to);
            }
        }

        /* add the service group id as a reference parameter */
        svc_group_context_id =
            axutil_string_get_buffer(axis2_msg_ctx_get_svc_grp_ctx_id
                                     (msg_ctx, env), env);

        axis2_addr_out_handler_add_to_soap_header(env, epr_reply_to,
                                                  AXIS2_WSA_REPLY_TO,
                                                  soap_header, addr_ns);


        epr_from = axis2_msg_info_headers_get_from(msg_info_headers, env);

        if (epr_from)
        {
            axis2_addr_out_handler_add_to_soap_header(env, epr_from,
                                                      AXIS2_WSA_FROM,
                                                      soap_header, addr_ns);

        }

        epr_fault_to = axis2_msg_info_headers_get_fault_to(msg_info_headers, env);
        if (!epr_fault_to)
        {
            const axis2_char_t *anonymous_uri = NULL;
            axis2_bool_t anonymous =
                axis2_msg_info_headers_get_fault_to_anonymous(msg_info_headers,
                                                              env);
            axis2_bool_t none =
                axis2_msg_info_headers_get_fault_to_none(msg_info_headers, env);
            if (!axutil_strcmp(addr_ns, AXIS2_WSA_NAMESPACE_SUBMISSION))
            {
                if (none)
                {
                    anonymous_uri = AXIS2_WSA_NONE_URL_SUBMISSION;
                }
                else if (anonymous)
                {
                    anonymous_uri = AXIS2_WSA_ANONYMOUS_URL_SUBMISSION;
                }
            }
            else
            {
                if (none)
                    anonymous_uri = AXIS2_WSA_NONE_URL;
                else if (anonymous)
                    anonymous_uri = AXIS2_WSA_ANONYMOUS_URL;
            }

            if (anonymous_uri)
            {
                epr_fault_to = axis2_endpoint_ref_create(env, anonymous_uri);
            }
        }

        if (epr_fault_to)
        {
            /* optional */
            axis2_addr_out_handler_add_to_soap_header(env, epr_fault_to,
                                                      AXIS2_WSA_FAULT_TO,
                                                      soap_header, addr_ns);
        }

        message_id =
            axis2_msg_info_headers_get_message_id(msg_info_headers, env);

        if (message_id)
        {
            axis2_addr_out_handler_process_string_info(env, message_id,
                                                       AXIS2_WSA_MESSAGE_ID,
                                                       &soap_header, addr_ns);
        }
        
        relates_to =
            axis2_msg_info_headers_get_relates_to(msg_info_headers, env);

        if (relates_to)
        {
            const axis2_char_t *value = NULL;
            value = axis2_relates_to_get_value(relates_to, env);
            relates_to_header_node =
                axis2_addr_out_handler_process_string_info(env, value,
                                                           AXIS2_WSA_RELATES_TO,
                                                           &soap_header,
                                                           addr_ns);
        }

        if (relates_to_header_node)
        {
            const axis2_char_t *relationship_type = NULL;
            relationship_type =
                axis2_relates_to_get_relationship_type(relates_to, env);
            if (relationship_type  && *relationship_type)
            {
                axiom_attribute_t *om_attr = NULL;
                axiom_namespace_t *addr_ns_obj = NULL;
                axiom_namespace_t *dec_ns = NULL;
                relates_to_header_ele =
                    (axiom_element_t *)
                    axiom_node_get_data_element(relates_to_header_node, env);
                if (relates_to_header_ele)
                {
                    dec_ns =
                        axiom_element_find_declared_namespace
                        (relates_to_header_ele, env, addr_ns,
                         AXIS2_WSA_DEFAULT_PREFIX);
                    if (dec_ns)
                    {
                        addr_ns_obj = dec_ns;
                    }
                    else
                    {
                        addr_ns_obj =
                            axiom_namespace_create(env, addr_ns,
                                                   AXIS2_WSA_DEFAULT_PREFIX);
                    }

                    if (!axutil_strcmp(addr_ns, AXIS2_WSA_NAMESPACE_SUBMISSION))
                    {
                        om_attr = axiom_attribute_create(env,
                                                     AXIS2_WSA_RELATES_TO_RELATIONSHIP_TYPE,
                                                     AXIS2_WSA_RELATES_TO_RELATIONSHIP_TYPE_DEFAULT_VALUE_SUBMISSION,
                                                     addr_ns_obj);
                    } 
                    else 
                    {
                        om_attr = axiom_attribute_create(env,
                                                         AXIS2_WSA_RELATES_TO_RELATIONSHIP_TYPE,
                                                         AXIS2_WSA_RELATES_TO_RELATIONSHIP_TYPE_DEFAULT_VALUE,
                                                         addr_ns_obj);
                    }                    

                    axiom_element_add_attribute(relates_to_header_ele, env,
                                                om_attr,
                                                relates_to_header_node);

                    dec_ns =
                        axiom_element_find_declared_namespace
                        (relates_to_header_ele, env, addr_ns,
                         AXIS2_WSA_DEFAULT_PREFIX);
                    if (!dec_ns)
                    {
                        dec_ns =
                            axiom_element_find_namespace(relates_to_header_ele,
                                                         env,
                                                         relates_to_header_node,
                                                         addr_ns,
                                                         AXIS2_WSA_DEFAULT_PREFIX);
                        if (dec_ns)
                        {
                            axiom_namespace_free(addr_ns_obj, env);
                            addr_ns_obj = NULL;
                            axiom_attribute_set_namespace(om_attr, env, dec_ns);
                        }
                    }
                }

            }
        }
    }
    return AXIS2_SUCCESS;
}

axiom_node_t *
axis2_addr_out_handler_process_string_info(
    const axutil_env_t * env,
    const axis2_char_t * value,
    const axis2_char_t * type,
    axiom_soap_header_t ** soap_header_p,
    const axis2_char_t * addr_ns)
{
    axiom_soap_header_t *soap_header = NULL;
    axiom_soap_header_block_t *header_block = NULL;
    axiom_node_t *header_block_node = NULL;
    axiom_element_t *header_block_ele = NULL;

    AXIS2_ENV_CHECK(env, NULL);
    AXIS2_PARAM_CHECK(env->error, value, NULL);
    AXIS2_PARAM_CHECK(env->error, type, NULL);
    AXIS2_PARAM_CHECK(env->error, soap_header_p, NULL);
    AXIS2_PARAM_CHECK(env->error, addr_ns, NULL);

    soap_header = *(soap_header_p);

    if (value && *value)
    {
        axiom_namespace_t *addr_ns_obj = NULL;
        addr_ns_obj =
            axiom_namespace_create(env, addr_ns, AXIS2_WSA_DEFAULT_PREFIX);
        header_block =
            axiom_soap_header_add_header_block(soap_header, env, type,
                                               addr_ns_obj);
        header_block_node =
            axiom_soap_header_block_get_base_node(header_block, env);
        header_block_ele =
            (axiom_element_t *)
            axiom_node_get_data_element(header_block_node, env);
        if (header_block_ele)
        {
            axiom_namespace_t *dec_ns = NULL;
            axiom_element_set_text(header_block_ele, env, value,
                                   header_block_node);
            dec_ns =
                axiom_element_find_declared_namespace(header_block_ele, env,
                                                      addr_ns,
                                                      AXIS2_WSA_DEFAULT_PREFIX);
            if (!dec_ns)
            {
                axiom_namespace_free(addr_ns_obj, env);
                addr_ns_obj = NULL;
            }
        }
    }
    return header_block_node;
}

axis2_status_t
axis2_addr_out_handler_add_to_soap_header(
    const axutil_env_t * env,
    axis2_endpoint_ref_t * endpoint_ref,
    const axis2_char_t * type,
    axiom_soap_header_t * soap_header,
    const axis2_char_t * addr_ns)
{
    axiom_soap_header_block_t *header_block = NULL;
    const axis2_char_t *address = NULL;
    axutil_array_list_t *ref_param_list = NULL;
    axutil_array_list_t *meta_data_list = NULL;
    axutil_array_list_t *extension_list = NULL;
    axiom_node_t *header_block_node = NULL;
    axiom_node_t *header_node = NULL;
    axiom_namespace_t *addr_ns_obj = NULL;
    int size = 0;

    AXIS2_PARAM_CHECK(env->error, endpoint_ref, AXIS2_FAILURE);
    AXIS2_PARAM_CHECK(env->error, type, AXIS2_FAILURE);
    AXIS2_PARAM_CHECK(env->error, soap_header, AXIS2_FAILURE);

    header_node = axiom_soap_header_get_base_node(soap_header, env);

    addr_ns_obj = axiom_namespace_create(env,
                                         addr_ns, AXIS2_WSA_DEFAULT_PREFIX);
    header_block =
        axiom_soap_header_add_header_block(soap_header, env, type, addr_ns_obj);

    if (addr_ns_obj)
    {
        axiom_namespace_free(addr_ns_obj, env);
        addr_ns_obj = NULL;
    }

    address = axis2_endpoint_ref_get_address(endpoint_ref, env);
    if (address && *address)
    {
        axiom_node_t *hb_node = NULL;
        axiom_element_t *hb_ele = NULL;
        axiom_node_t *address_node = NULL;
        axiom_element_t *address_ele = NULL;
        hb_node = axiom_soap_header_block_get_base_node(header_block, env);
        hb_ele = (axiom_element_t *) axiom_node_get_data_element(hb_node, env);

        addr_ns_obj =
            axiom_namespace_create(env, addr_ns, AXIS2_WSA_DEFAULT_PREFIX);

        address_ele =
            axiom_element_create(env, hb_node, EPR_ADDRESS, addr_ns_obj,
                                 &address_node);
        if (address_ele)
        {
            axiom_namespace_t *dec_ns = NULL;
            axiom_element_set_text(address_ele, env, address, address_node);
            dec_ns = axiom_element_find_declared_namespace(address_ele, env,
                                                           addr_ns,
                                                           AXIS2_WSA_DEFAULT_PREFIX);
        }
    }

    header_block_node =
        axiom_soap_header_block_get_base_node(header_block, env);
    axis2_addr_out_handler_add_to_header(env, endpoint_ref,
                                         &header_block_node, addr_ns);

    ref_param_list = axis2_endpoint_ref_get_ref_param_list(endpoint_ref, env);
    if (ref_param_list && axutil_array_list_size(ref_param_list, env) > 0)
    {
        axiom_node_t *reference_node = NULL;
        axiom_element_t *reference_ele = NULL;
        axutil_array_list_t *ref_attribute_list = NULL;
        int i = 0;

        addr_ns_obj =
            axiom_namespace_create(env, addr_ns, AXIS2_WSA_DEFAULT_PREFIX);

        reference_ele = axiom_element_create(env,
                                             header_block_node,
                                             EPR_REFERENCE_PARAMETERS,
                                             addr_ns_obj, &reference_node);

        ref_attribute_list =
            axis2_endpoint_ref_get_ref_attribute_list(endpoint_ref, env);
        if (ref_attribute_list)
        {
            int j = 0;

            size = axutil_array_list_size(ref_attribute_list, env);
            for (j = 0; j < size; j++)
            {
                axiom_attribute_t *attr =
                    (axiom_attribute_t *)
                    axutil_array_list_get(ref_attribute_list, env, j);
                if (attr)
                {
                    axiom_element_add_attribute(reference_ele, env, attr,
                                                reference_node);
                }
            }
        }

        size = axutil_array_list_size(ref_param_list, env);
        for (i = 0; i < size; i++)
        {
            axiom_node_t *ref_node =
                (axiom_node_t *) axutil_array_list_get(ref_param_list, env, i);
            if (ref_node)
            {
                axiom_node_add_child(reference_node, env, ref_node);
            }
        }

    }

    meta_data_list = axis2_endpoint_ref_get_metadata_list(endpoint_ref, env);
    if (meta_data_list && axutil_array_list_size(meta_data_list, env) > 0)
    {
        axiom_node_t *reference_node = NULL;
        axiom_element_t *reference_ele = NULL;
        axutil_array_list_t *meta_attribute_list = NULL;
        int i = 0;

        if (!reference_node)    /* may be we alredy created this in ref params block */
        {
            addr_ns_obj =
                axiom_namespace_create(env, addr_ns, AXIS2_WSA_DEFAULT_PREFIX);

            reference_ele = axiom_element_create(env,
                                                 header_block_node,
                                                 AXIS2_WSA_METADATA,
                                                 addr_ns_obj, &reference_node);
        }

        meta_attribute_list =
            axis2_endpoint_ref_get_metadata_attribute_list(endpoint_ref, env);
        if (meta_attribute_list)
        {
            int j = 0;
            size = axutil_array_list_size(meta_attribute_list, env);
            for (j = 0; j < size; j++)
            {
                axiom_attribute_t *attr =
                    (axiom_attribute_t *)
                    axutil_array_list_get(meta_attribute_list, env, j);
                if (attr)
                {
                    axiom_element_add_attribute(reference_ele, env, attr,
                                                reference_node);
                }
            }
        }

        size = axutil_array_list_size(meta_data_list, env);
        for (i = 0; i < size; i++)
        {
            axiom_node_t *ref_node =
                (axiom_node_t *) axutil_array_list_get(meta_data_list, env, i);
            if (ref_node)
            {
                axiom_node_add_child(reference_node, env, ref_node);
            }
        }
    }

    extension_list = axis2_endpoint_ref_get_extension_list(endpoint_ref, env);
    if (extension_list && axutil_array_list_size(extension_list, env) > 0)
    {
        int i = 0;

        size =  axutil_array_list_size(extension_list, env);
        for (i = 0; i < size; i++)
        {
            axiom_node_t *ref_node =
                (axiom_node_t *) axutil_array_list_get(extension_list, env, i);
            if (ref_node)
            {
                axiom_node_add_child(header_block_node, env, ref_node);
            }
        }
    }

    return AXIS2_SUCCESS;
}

axis2_status_t
axis2_addr_out_handler_add_to_header(
    const axutil_env_t * env,
    axis2_endpoint_ref_t * epr,
    axiom_node_t ** parent_node_p,
    const axis2_char_t * addr_ns)
{
    axiom_node_t *parent_node = NULL;
    const axutil_qname_t *interface_qname = NULL;
    axiom_node_t *interface_node = NULL;
    axiom_element_t *interface_ele = NULL;
    const axis2_char_t *element_localname = NULL;
    axis2_svc_name_t *service_name = NULL;
    axiom_namespace_t *addr_ns_obj = NULL;

    AXIS2_PARAM_CHECK(env->error, epr, AXIS2_FAILURE);
    AXIS2_PARAM_CHECK(env->error, parent_node_p, AXIS2_FAILURE);

    parent_node = *(parent_node_p);

    interface_qname = axis2_endpoint_ref_get_interface_qname(epr, env);

    if (interface_qname)
    {
        axis2_char_t *text = NULL;
        axis2_char_t *qname_prefix = NULL;
        axis2_char_t *qname_localpart = NULL;

        addr_ns_obj =
            axiom_namespace_create(env, addr_ns, AXIS2_WSA_DEFAULT_PREFIX);

        if (!axutil_strcmp(addr_ns, AXIS2_WSA_NAMESPACE_SUBMISSION))
        {
            element_localname = EPR_PORT_TYPE;
        }
        else
        {
            element_localname = AXIS2_WSA_INTERFACE_NAME;
        }

        interface_ele = axiom_element_create(env, parent_node,
                                             element_localname,
                                             addr_ns_obj, &interface_node);
        qname_prefix = axutil_qname_get_prefix(interface_qname, env);
        qname_localpart = axutil_qname_get_localpart(interface_qname, env);

        text =
            AXIS2_MALLOC(env->allocator,
                         sizeof(axis2_char_t) *
                         (axutil_strlen(qname_prefix) +
                          axutil_strlen(qname_localpart) + 2));
        sprintf(text, "%s:%s", qname_prefix, qname_localpart);
        axiom_element_set_text(interface_ele, env, text, interface_node);
        AXIS2_FREE(env->allocator, text);
        if (interface_ele)
        {
            axiom_namespace_t *dec_ns = NULL;
            dec_ns = axiom_element_find_declared_namespace(interface_ele, env,
                                                           addr_ns,
                                                           AXIS2_WSA_DEFAULT_PREFIX);
            if (!dec_ns)
            {
                axiom_namespace_free(addr_ns_obj, env);
                addr_ns_obj = NULL;
            }
        }

    }

    service_name = axis2_endpoint_ref_get_svc_name(epr, env);
    return AXIS2_SUCCESS;
}

axis2_status_t
axis2_addr_out_handler_process_any_content_type(
    const axutil_env_t * env,
    axis2_any_content_type_t * reference_values,
    axiom_node_t * parent_ele_node,
    const axis2_char_t * addr_ns)
{
    axutil_hash_t *value_ht = NULL;
    axutil_hash_index_t *hash_index = NULL;


    if (reference_values)
    {
        const void *key = NULL;
        void *val = NULL;
        axis2_ssize_t len = 0;
        value_ht = axis2_any_content_type_get_value_map(reference_values, env);
        if (!value_ht)
        {
            return AXIS2_FAILURE;
        }

        for (hash_index = axutil_hash_first(value_ht, env); hash_index;
             hash_index = axutil_hash_next(env, hash_index))
        {
            axutil_hash_this(hash_index, &key, &len, &val);
            if (key)
            {
                axiom_node_t *node = NULL;
                axiom_element_t *ele = NULL;
                ele =
                    axiom_element_create(env, parent_ele_node, key, NULL, &node);
                if (ele)
                {
                    if (!axutil_strcmp(AXIS2_WSA_NAMESPACE, addr_ns))
                    {
                        axiom_namespace_t *addr_ns_obj = NULL;
                        axiom_attribute_t *att = NULL;
                        addr_ns_obj =
                            axiom_namespace_create(env, addr_ns,
                                                   AXIS2_WSA_DEFAULT_PREFIX);
                        att =
                            axiom_attribute_create(env,
                                                   AXIS2_WSA_IS_REFERENCE_PARAMETER_ATTRIBUTE,
                                                   AXIS2_WSA_TYPE_ATTRIBUTE_VALUE,
                                                   addr_ns_obj);
                    }
                    axiom_element_set_text(ele, env, val, node);
                }
            }
        }
    }
    return AXIS2_SUCCESS;
}


<|start_filename|>xdocs/api/html/axiom__soap__header_8h-source.html<|end_filename|>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html><head><meta http-equiv="Content-Type" content="text/html;charset=UTF-8">
<title>Axis2/C: axiom_soap_header.h Source File</title>
<link href="doxygen.css" rel="stylesheet" type="text/css">
<link href="tabs.css" rel="stylesheet" type="text/css">
</head><body>
<!-- Generated by Doxygen 1.5.3 -->
<div class="tabs">
  <ul>
    <li><a href="index.html"><span>Main&nbsp;Page</span></a></li>
    <li><a href="modules.html"><span>Modules</span></a></li>
    <li><a href="annotated.html"><span>Classes</span></a></li>
    <li class="current"><a href="files.html"><span>Files</span></a></li>
    <li><a href="dirs.html"><span>Directories</span></a></li>
    <li><a href="pages.html"><span>Related&nbsp;Pages</span></a></li>
    <li><a href="examples.html"><span>Examples</span></a></li>
    <li>
      <form action="search.php" method="get">
        <table cellspacing="0" cellpadding="0" border="0">
          <tr>
            <td><label>&nbsp;<u>S</u>earch&nbsp;for&nbsp;</label></td>
            <td><input type="text" name="query" value="" size="20" accesskey="s"/></td>
          </tr>
        </table>
      </form>
    </li>
  </ul>
</div>
<div class="nav">
<a class="el" href="dir_f60961de8e5edc3b2658ef023e959e45.html">deploy</a>&nbsp;&raquo&nbsp;<a class="el" href="dir_6b4e91e54b7316b376882a6402adbf44.html">include</a>&nbsp;&raquo&nbsp;<a class="el" href="dir_df3a7695d5a9e696f30b948b566829e7.html">axis2-1.6.0</a></div>
<h1>axiom_soap_header.h</h1><a href="axiom__soap__header_8h.html">Go to the documentation of this file.</a><div class="fragment"><pre class="fragment"><a name="l00001"></a>00001 
<a name="l00002"></a>00002 <span class="comment">/*</span>
<a name="l00003"></a>00003 <span class="comment"> * Licensed to the Apache Software Foundation (ASF) under one or more</span>
<a name="l00004"></a>00004 <span class="comment"> * contributor license agreements.  See the NOTICE file distributed with</span>
<a name="l00005"></a>00005 <span class="comment"> * this work for additional information regarding copyright ownership.</span>
<a name="l00006"></a>00006 <span class="comment"> * The ASF licenses this file to You under the Apache License, Version 2.0</span>
<a name="l00007"></a>00007 <span class="comment"> * (the "License"); you may not use this file except in compliance with</span>
<a name="l00008"></a>00008 <span class="comment"> * the License.  You may obtain a copy of the License at</span>
<a name="l00009"></a>00009 <span class="comment"> *</span>
<a name="l00010"></a>00010 <span class="comment"> *      http://www.apache.org/licenses/LICENSE-2.0</span>
<a name="l00011"></a>00011 <span class="comment"> *</span>
<a name="l00012"></a>00012 <span class="comment"> * Unless required by applicable law or agreed to in writing, software</span>
<a name="l00013"></a>00013 <span class="comment"> * distributed under the License is distributed on an "AS IS" BASIS,</span>
<a name="l00014"></a>00014 <span class="comment"> * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.</span>
<a name="l00015"></a>00015 <span class="comment"> * See the License for the specific language governing permissions and</span>
<a name="l00016"></a>00016 <span class="comment"> * limitations under the License.</span>
<a name="l00017"></a>00017 <span class="comment"> */</span>
<a name="l00018"></a>00018 
<a name="l00019"></a>00019 <span class="preprocessor">#ifndef AXIOM_SOAP_HEADER_H</span>
<a name="l00020"></a>00020 <span class="preprocessor"></span><span class="preprocessor">#define AXIOM_SOAP_HEADER_H</span>
<a name="l00021"></a>00021 <span class="preprocessor"></span>
<a name="l00026"></a>00026 <span class="preprocessor">#include &lt;<a class="code" href="axutil__env_8h.html" title="Axis2 environment that acts as a container for error, log and memory allocator routines...">axutil_env.h</a>&gt;</span>
<a name="l00027"></a>00027 <span class="preprocessor">#include &lt;<a class="code" href="axiom__node_8h.html" title="defines axiom_node struct">axiom_node.h</a>&gt;</span>
<a name="l00028"></a>00028 <span class="preprocessor">#include &lt;axiom_element.h&gt;</span>
<a name="l00029"></a>00029 <span class="preprocessor">#include &lt;<a class="code" href="axutil__array__list_8h.html" title="Axis2 array_list interface.">axutil_array_list.h</a>&gt;</span>
<a name="l00030"></a>00030 <span class="preprocessor">#include &lt;<a class="code" href="axiom__children__qname__iterator_8h.html" title="this is the iterator for om nodes using qname">axiom_children_qname_iterator.h</a>&gt;</span>
<a name="l00031"></a>00031 <span class="preprocessor">#include &lt;<a class="code" href="axiom__children__with__specific__attribute__iterator_8h.html" title="this is the iterator for om nodes">axiom_children_with_specific_attribute_iterator.h</a>&gt;</span>
<a name="l00032"></a>00032 <span class="preprocessor">#include &lt;<a class="code" href="axutil__hash_8h.html" title="Axis2 Hash Tables.">axutil_hash.h</a>&gt;</span>
<a name="l00033"></a>00033 <span class="preprocessor">#include &lt;<a class="code" href="axiom__soap__envelope_8h.html" title="axiom_soap_envelope struct corresponds to root element of soap message">axiom_soap_envelope.h</a>&gt;</span>
<a name="l00034"></a>00034 
<a name="l00035"></a>00035 <span class="preprocessor">#ifdef __cplusplus</span>
<a name="l00036"></a>00036 <span class="preprocessor"></span><span class="keyword">extern</span> <span class="stringliteral">"C"</span>
<a name="l00037"></a>00037 {
<a name="l00038"></a>00038 <span class="preprocessor">#endif</span>
<a name="l00039"></a>00039 <span class="preprocessor"></span>
<a name="l00040"></a>00040     <span class="keyword">typedef</span> <span class="keyword">struct </span>axiom_soap_header axiom_soap_header_t;
<a name="l00041"></a>00041 
<a name="l00042"></a>00042     <span class="keyword">struct </span>axiom_soap_header_block;
<a name="l00043"></a>00043     <span class="keyword">struct </span>axiom_soap_builder;
<a name="l00044"></a>00044 
<a name="l00051"></a>00051     AXIS2_EXTERN axiom_soap_header_t *AXIS2_CALL
<a name="l00052"></a>00052     axiom_soap_header_create_with_parent(
<a name="l00053"></a>00053         <span class="keyword">const</span> <a class="code" href="structaxutil__env.html" title="Axis2 Environment struct.">axutil_env_t</a> * env,
<a name="l00054"></a>00054         <span class="keyword">struct</span> axiom_soap_envelope *envelope);
<a name="l00055"></a>00055 
<a name="l00063"></a>00063     AXIS2_EXTERN <span class="keywordtype">void</span> AXIS2_CALL
<a name="l00064"></a>00064     <a class="code" href="group__axiom__soap__header.html#gb4bd1325c0f03050c79ec4302fb9fb12">axiom_soap_header_free</a>(
<a name="l00065"></a>00065         axiom_soap_header_t * header,
<a name="l00066"></a>00066         <span class="keyword">const</span> <a class="code" href="structaxutil__env.html" title="Axis2 Environment struct.">axutil_env_t</a> * env);
<a name="l00067"></a>00067 
<a name="l00077"></a>00077     AXIS2_EXTERN <span class="keyword">struct </span>axiom_soap_header_block *AXIS2_CALL
<a name="l00078"></a>00078 
<a name="l00079"></a>00079                 <a class="code" href="group__axiom__soap__header.html#g88dc23b19a4bd564638b4ffcaab955f9">axiom_soap_header_add_header_block</a>(
<a name="l00080"></a>00080                     axiom_soap_header_t * header,
<a name="l00081"></a>00081                     <span class="keyword">const</span> <a class="code" href="structaxutil__env.html" title="Axis2 Environment struct.">axutil_env_t</a> * env,
<a name="l00082"></a>00082                     <span class="keyword">const</span> axis2_char_t * localname,
<a name="l00083"></a>00083                     axiom_namespace_t * ns);
<a name="l00084"></a>00084 
<a name="l00100"></a>00100     AXIS2_EXTERN <a class="code" href="group__axutil__hash.html#gb2d7d14db2de92a101573f44421ac12a">axutil_hash_t</a> *AXIS2_CALL
<a name="l00101"></a>00101     <a class="code" href="group__axiom__soap__header.html#g1715ee6353da48cd2148b8adfd227814">axiom_soap_header_examine_header_blocks</a>(
<a name="l00102"></a>00102         axiom_soap_header_t * header,
<a name="l00103"></a>00103         <span class="keyword">const</span> <a class="code" href="structaxutil__env.html" title="Axis2 Environment struct.">axutil_env_t</a> * env,
<a name="l00104"></a>00104         axis2_char_t * param_role);
<a name="l00105"></a>00105 
<a name="l00115"></a>00115     AXIS2_EXTERN <a class="code" href="group__axutil__array__list.html#g1a6a89777db876cfa0cc86787b7be6a0">axutil_array_list_t</a> *AXIS2_CALL
<a name="l00116"></a>00116     <a class="code" href="group__axiom__soap__header.html#g15e88be95ee0a6652bb04f8b8e555b9d">axiom_soap_header_get_header_blocks_with_namespace_uri</a>(
<a name="l00117"></a>00117         axiom_soap_header_t * header,
<a name="l00118"></a>00118         <span class="keyword">const</span> <a class="code" href="structaxutil__env.html" title="Axis2 Environment struct.">axutil_env_t</a> * env,
<a name="l00119"></a>00119         <span class="keyword">const</span> axis2_char_t * ns_uri);
<a name="l00120"></a>00120 
<a name="l00128"></a>00128     AXIS2_EXTERN axiom_children_qname_iterator_t *AXIS2_CALL
<a name="l00129"></a>00129     <a class="code" href="group__axiom__soap__header.html#g74a56d9fd3b49055bae4091fcd5bb4ff">axiom_soap_header_examine_all_header_blocks</a>(
<a name="l00130"></a>00130         axiom_soap_header_t * header,
<a name="l00131"></a>00131         <span class="keyword">const</span> <a class="code" href="structaxutil__env.html" title="Axis2 Environment struct.">axutil_env_t</a> * env);
<a name="l00132"></a>00132 
<a name="l00142"></a>00142     AXIS2_EXTERN axiom_children_with_specific_attribute_iterator_t
<a name="l00143"></a>00143     *AXIS2_CALL
<a name="l00144"></a>00144     <a class="code" href="group__axiom__soap__header.html#gba1977d593ac1686da79c207b5caa797">axiom_soap_header_extract_header_blocks</a>(
<a name="l00145"></a>00145         axiom_soap_header_t * header,
<a name="l00146"></a>00146         <span class="keyword">const</span> <a class="code" href="structaxutil__env.html" title="Axis2 Environment struct.">axutil_env_t</a> * env,
<a name="l00147"></a>00147         axis2_char_t * role);
<a name="l00148"></a>00148 
<a name="l00156"></a>00156     AXIS2_EXTERN axiom_node_t *AXIS2_CALL
<a name="l00157"></a>00157     <a class="code" href="group__axiom__soap__header.html#g91bacc73f64c81dbb156c1159083fa7a">axiom_soap_header_get_base_node</a>(
<a name="l00158"></a>00158         axiom_soap_header_t * header,
<a name="l00159"></a>00159         <span class="keyword">const</span> <a class="code" href="structaxutil__env.html" title="Axis2 Environment struct.">axutil_env_t</a> * env);
<a name="l00160"></a>00160 
<a name="l00168"></a>00168     AXIS2_EXTERN <span class="keywordtype">int</span> AXIS2_CALL
<a name="l00169"></a>00169     <a class="code" href="group__axiom__soap__header.html#g97f0b56a661fd9a5fd793a3eb22c963c">axiom_soap_header_get_soap_version</a>(
<a name="l00170"></a>00170         axiom_soap_header_t * header,
<a name="l00171"></a>00171         <span class="keyword">const</span> <a class="code" href="structaxutil__env.html" title="Axis2 Environment struct.">axutil_env_t</a> * env);
<a name="l00172"></a>00172 
<a name="l00181"></a>00181     AXIS2_EXTERN <a class="code" href="group__axutil__hash.html#gb2d7d14db2de92a101573f44421ac12a">axutil_hash_t</a> *AXIS2_CALL
<a name="l00182"></a>00182     <a class="code" href="group__axiom__soap__header.html#gcb53361d89fd484c1b66661b7fa75b02">axiom_soap_header_get_all_header_blocks</a>(
<a name="l00183"></a>00183         axiom_soap_header_t * header,
<a name="l00184"></a>00184         <span class="keyword">const</span> <a class="code" href="structaxutil__env.html" title="Axis2 Environment struct.">axutil_env_t</a> * env);
<a name="l00185"></a>00185 
<a name="l00195"></a>00195     AXIS2_EXTERN axis2_status_t AXIS2_CALL
<a name="l00196"></a>00196     <a class="code" href="group__axiom__soap__header.html#g4d36a1f5427197087a29703d8ac74ac6">axiom_soap_header_remove_header_block</a>(
<a name="l00197"></a>00197         axiom_soap_header_t * header,
<a name="l00198"></a>00198         <span class="keyword">const</span> <a class="code" href="structaxutil__env.html" title="Axis2 Environment struct.">axutil_env_t</a> * env,
<a name="l00199"></a>00199         axutil_qname_t * qname);
<a name="l00200"></a>00200 
<a name="l00202"></a>00202 <span class="preprocessor">#ifdef __cplusplus</span>
<a name="l00203"></a>00203 <span class="preprocessor"></span>}
<a name="l00204"></a>00204 <span class="preprocessor">#endif</span>
<a name="l00205"></a>00205 <span class="preprocessor"></span><span class="preprocessor">#endif                          </span><span class="comment">/* AXIOM_SOAP_HEADER_H */</span>
</pre></div><hr size="1"><address style="text-align: right;"><small>Generated on Fri Apr 17 11:49:42 2009 for Axis2/C by&nbsp;
<a href="http://www.doxygen.org/index.html">
<img src="doxygen.png" alt="doxygen" align="middle" border="0"></a> 1.5.3 </small></address>
</body>
</html>


<|start_filename|>neethi/src/rmpolicy/rm_assertion.c<|end_filename|>

/*
 * 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.
 */

#include <axis2_rm_assertion.h>
#include <neethi_assertion.h>
#include <neethi_all.h>

struct axis2_rm_assertion_t
{
    /* RM Policy 1.1 assertions */
    axis2_bool_t is_sequence_str;
    axis2_bool_t is_sequence_transport_security;
    axis2_bool_t is_exactly_once;
    axis2_bool_t is_atleast_once;
    axis2_bool_t is_atmost_once;
    axis2_bool_t is_inorder;

    /* RM Policy 1.0 assertions */
    axis2_char_t *inactivity_timeout;
    axis2_char_t *retrans_interval;
    axis2_char_t *ack_interval;
    axis2_bool_t is_exp_backoff;

    /* Sandesha2 specific assrtions */
    axis2_char_t *storage_mgr;
    axis2_char_t *message_types_to_drop;
    axis2_char_t *max_retrans_count;
    axis2_char_t *sender_sleep_time;    
    axis2_char_t *invoker_sleep_time;
    axis2_char_t *polling_wait_time;
    axis2_char_t *terminate_delay;
    axis2_char_t *sandesha2_db;
};

AXIS2_EXTERN axis2_rm_assertion_t *AXIS2_CALL
axis2_rm_assertion_create(
    const axutil_env_t * env)
{
    axis2_rm_assertion_t *rm_assertion;

    rm_assertion = (axis2_rm_assertion_t *) AXIS2_MALLOC(env->allocator,
                                                sizeof(axis2_rm_assertion_t));

    if (rm_assertion == NULL)
    {
        AXIS2_ERROR_SET(env->error, AXIS2_ERROR_NO_MEMORY, AXIS2_FAILURE);
        return NULL;
    }

    rm_assertion->is_sequence_str = AXIS2_FALSE;
    rm_assertion->is_sequence_transport_security = AXIS2_FALSE;
    rm_assertion->is_exactly_once = AXIS2_TRUE;
    rm_assertion->is_atleast_once = AXIS2_FALSE;
    rm_assertion->is_atmost_once = AXIS2_FALSE;
    rm_assertion->is_inorder = AXIS2_FALSE;

    /* RM Policy 1.0 assertions */
    rm_assertion->inactivity_timeout = NULL;
    rm_assertion->retrans_interval = NULL;
    rm_assertion->ack_interval = NULL;
    rm_assertion->is_exp_backoff = AXIS2_FALSE;

    /* Sandesha2 specific assrtions */
    rm_assertion->storage_mgr = NULL;
    rm_assertion->message_types_to_drop = NULL;
    rm_assertion->max_retrans_count = NULL;
    rm_assertion->sender_sleep_time = NULL;
    rm_assertion->invoker_sleep_time = NULL;
    rm_assertion->polling_wait_time = NULL;
    rm_assertion->terminate_delay = NULL;
    rm_assertion->sandesha2_db = NULL;

    return rm_assertion;
}

AXIS2_EXTERN void AXIS2_CALL
axis2_rm_assertion_free(
    axis2_rm_assertion_t * rm_assertion,
    const axutil_env_t * env)
{
    if(rm_assertion)
    {
        AXIS2_FREE(env->allocator, rm_assertion);
        rm_assertion = NULL;
    }

    return;
}

/* Implementations.
 * Following functions are getters and setters 
 * for rm_assertion struct */

AXIS2_EXTERN axis2_bool_t AXIS2_CALL
axis2_rm_assertion_get_is_sequence_str(
    axis2_rm_assertion_t *rm_assertion,
    const axutil_env_t * env)
{
    return rm_assertion->is_sequence_str;
}

AXIS2_EXTERN axis2_status_t AXIS2_CALL
axis2_rm_assertion_set_is_sequence_str(
    axis2_rm_assertion_t *rm_assertion,
    const axutil_env_t * env,
    axis2_bool_t is_sequence_str)
{
    rm_assertion->is_sequence_str = is_sequence_str;
 
    return AXIS2_SUCCESS;
}

AXIS2_EXTERN axis2_bool_t AXIS2_CALL
axis2_rm_assertion_get_is_sequence_transport_security(
    axis2_rm_assertion_t *rm_assertion,
    const axutil_env_t * env)
{
    return rm_assertion->is_sequence_transport_security;
}

AXIS2_EXTERN axis2_status_t AXIS2_CALL
axis2_rm_assertion_set_is_sequence_transport_security(
    axis2_rm_assertion_t *rm_assertion,
    const axutil_env_t * env,
    axis2_bool_t is_sequence_transport_security)
{
    rm_assertion->is_sequence_transport_security = 
        is_sequence_transport_security;
 
    return AXIS2_SUCCESS;
}

AXIS2_EXTERN axis2_bool_t AXIS2_CALL
axis2_rm_assertion_get_is_exactly_once(
    axis2_rm_assertion_t *rm_assertion,
    const axutil_env_t * env)
{
    return rm_assertion->is_exactly_once;
}

AXIS2_EXTERN axis2_status_t AXIS2_CALL
axis2_rm_assertion_set_is_exactly_once(
    axis2_rm_assertion_t *rm_assertion,
    const axutil_env_t * env,
    axis2_bool_t is_exactly_once)
{
    rm_assertion->is_exactly_once = is_exactly_once;
 
    return AXIS2_SUCCESS;
}


AXIS2_EXTERN axis2_bool_t AXIS2_CALL
axis2_rm_assertion_get_is_atleast_once(
    axis2_rm_assertion_t *rm_assertion,
    const axutil_env_t * env)
{
    return rm_assertion->is_atleast_once;
}

AXIS2_EXTERN axis2_status_t AXIS2_CALL
axis2_rm_assertion_set_is_atleast_once(
    axis2_rm_assertion_t *rm_assertion,
    const axutil_env_t * env,
    axis2_bool_t is_atleast_once)
{
    rm_assertion->is_atleast_once = is_atleast_once;
 
    return AXIS2_SUCCESS;
}

AXIS2_EXTERN axis2_bool_t AXIS2_CALL
axis2_rm_assertion_get_is_atmost_once(
    axis2_rm_assertion_t *rm_assertion,
    const axutil_env_t * env)
{
    return rm_assertion->is_atmost_once;
}

AXIS2_EXTERN axis2_status_t AXIS2_CALL
axis2_rm_assertion_set_is_atmost_once(
    axis2_rm_assertion_t *rm_assertion,
    const axutil_env_t * env,
    axis2_bool_t is_atmost_once)
{
    rm_assertion->is_atmost_once = is_atmost_once;
 
    return AXIS2_SUCCESS;
}

AXIS2_EXTERN axis2_bool_t AXIS2_CALL
axis2_rm_assertion_get_is_inorder(
    axis2_rm_assertion_t *rm_assertion,
    const axutil_env_t * env)
{
    return rm_assertion->is_inorder;
}

AXIS2_EXTERN axis2_status_t AXIS2_CALL
axis2_rm_assertion_set_is_inorder(
    axis2_rm_assertion_t *rm_assertion,
    const axutil_env_t * env,
    axis2_bool_t is_inorder)
{
    rm_assertion->is_inorder = is_inorder;
 
    return AXIS2_SUCCESS;
}

AXIS2_EXTERN axis2_char_t* AXIS2_CALL
axis2_rm_assertion_get_inactivity_timeout(
    axis2_rm_assertion_t *rm_assertion,
    const axutil_env_t * env)
{
    return rm_assertion->inactivity_timeout;
}

AXIS2_EXTERN axis2_status_t AXIS2_CALL
axis2_rm_assertion_set_inactivity_timeout(
    axis2_rm_assertion_t *rm_assertion,
    const axutil_env_t * env,
    axis2_char_t* inactivity_timeout)
{
    rm_assertion->inactivity_timeout = inactivity_timeout;
 
    return AXIS2_SUCCESS;
}

AXIS2_EXTERN axis2_char_t* AXIS2_CALL
axis2_rm_assertion_get_retrans_interval(
    axis2_rm_assertion_t *rm_assertion,
    const axutil_env_t * env)
{
    return rm_assertion->retrans_interval;
}

AXIS2_EXTERN axis2_status_t AXIS2_CALL
axis2_rm_assertion_set_retrans_interval(
    axis2_rm_assertion_t *rm_assertion,
    const axutil_env_t * env,
    axis2_char_t* retrans_interval)
{
    rm_assertion->retrans_interval = retrans_interval;
 
    return AXIS2_SUCCESS;
}


AXIS2_EXTERN axis2_char_t* AXIS2_CALL
axis2_rm_assertion_get_ack_interval(
    axis2_rm_assertion_t *rm_assertion,
    const axutil_env_t * env)
{
    return rm_assertion->ack_interval;
}

AXIS2_EXTERN axis2_status_t AXIS2_CALL
axis2_rm_assertion_set_ack_interval(
    axis2_rm_assertion_t *rm_assertion,
    const axutil_env_t * env,
    axis2_char_t* ack_interval)
{
    rm_assertion->ack_interval = ack_interval;
 
    return AXIS2_SUCCESS;
}


AXIS2_EXTERN axis2_bool_t AXIS2_CALL
axis2_rm_assertion_get_is_exp_backoff(
    axis2_rm_assertion_t *rm_assertion,
    const axutil_env_t * env)
{
    return rm_assertion->is_exp_backoff;
}

AXIS2_EXTERN axis2_status_t AXIS2_CALL
axis2_rm_assertion_set_is_exp_backoff(
    axis2_rm_assertion_t *rm_assertion,
    const axutil_env_t * env,
    axis2_bool_t is_exp_backoff)
{
    rm_assertion->is_exp_backoff = is_exp_backoff;
 
    return AXIS2_SUCCESS;
}



AXIS2_EXTERN axis2_char_t* AXIS2_CALL
axis2_rm_assertion_get_storage_mgr(
    axis2_rm_assertion_t *rm_assertion,
    const axutil_env_t * env)
{
    return rm_assertion->storage_mgr;
}

AXIS2_EXTERN axis2_status_t AXIS2_CALL
axis2_rm_assertion_set_storage_mgr(
    axis2_rm_assertion_t *rm_assertion,
    const axutil_env_t * env,
    axis2_char_t* storage_mgr)
{
    rm_assertion->storage_mgr = storage_mgr;
 
    return AXIS2_SUCCESS;
}



AXIS2_EXTERN axis2_char_t* AXIS2_CALL
axis2_rm_assertion_get_message_types_to_drop(
    axis2_rm_assertion_t *rm_assertion,
    const axutil_env_t * env)
{
    return rm_assertion->message_types_to_drop;
}

AXIS2_EXTERN axis2_status_t AXIS2_CALL
axis2_rm_assertion_set_message_types_to_drop(
    axis2_rm_assertion_t *rm_assertion,
    const axutil_env_t * env,
    axis2_char_t* message_types_to_drop)
{
    rm_assertion->message_types_to_drop = message_types_to_drop;
 
    return AXIS2_SUCCESS;
}


AXIS2_EXTERN axis2_char_t* AXIS2_CALL
axis2_rm_assertion_get_max_retrans_count(
    axis2_rm_assertion_t *rm_assertion,
    const axutil_env_t * env)
{
    return rm_assertion->max_retrans_count;
}

AXIS2_EXTERN axis2_status_t AXIS2_CALL
axis2_rm_assertion_set_max_retrans_count(
    axis2_rm_assertion_t *rm_assertion,
    const axutil_env_t * env,
    axis2_char_t* max_retrans_count)
{
    rm_assertion->max_retrans_count = max_retrans_count;
 
    return AXIS2_SUCCESS;
}


AXIS2_EXTERN axis2_char_t* AXIS2_CALL
axis2_rm_assertion_get_sender_sleep_time(
    axis2_rm_assertion_t *rm_assertion,
    const axutil_env_t * env)
{
    return rm_assertion->sender_sleep_time;
}

AXIS2_EXTERN axis2_status_t AXIS2_CALL
axis2_rm_assertion_set_sender_sleep_time(
    axis2_rm_assertion_t *rm_assertion,
    const axutil_env_t * env,
    axis2_char_t* sender_sleep_time)
{
    rm_assertion->sender_sleep_time = sender_sleep_time;
 
    return AXIS2_SUCCESS;
}


AXIS2_EXTERN axis2_char_t* AXIS2_CALL
axis2_rm_assertion_get_invoker_sleep_time(
    axis2_rm_assertion_t *rm_assertion,
    const axutil_env_t * env)
{
    return rm_assertion->invoker_sleep_time;
}

AXIS2_EXTERN axis2_status_t AXIS2_CALL
axis2_rm_assertion_set_invoker_sleep_time(
    axis2_rm_assertion_t *rm_assertion,
    const axutil_env_t * env,
    axis2_char_t* invoker_sleep_time)
{
    rm_assertion->invoker_sleep_time = invoker_sleep_time;
 
    return AXIS2_SUCCESS;
}



AXIS2_EXTERN axis2_char_t* AXIS2_CALL
axis2_rm_assertion_get_polling_wait_time(
    axis2_rm_assertion_t *rm_assertion,
    const axutil_env_t * env)
{
    return rm_assertion->polling_wait_time;
}

AXIS2_EXTERN axis2_status_t AXIS2_CALL
axis2_rm_assertion_set_polling_wait_time(
    axis2_rm_assertion_t *rm_assertion,
    const axutil_env_t * env,
    axis2_char_t* polling_wait_time)
{
    rm_assertion->polling_wait_time = polling_wait_time;
 
    return AXIS2_SUCCESS;
}

AXIS2_EXTERN axis2_char_t* AXIS2_CALL
axis2_rm_assertion_get_terminate_delay(
    axis2_rm_assertion_t *rm_assertion,
    const axutil_env_t * env)
{
    return rm_assertion->terminate_delay;
}

AXIS2_EXTERN axis2_status_t AXIS2_CALL
axis2_rm_assertion_set_terminate_delay(
    axis2_rm_assertion_t *rm_assertion,
    const axutil_env_t * env,
    axis2_char_t* terminate_delay)
{
    rm_assertion->terminate_delay = terminate_delay;
 
    return AXIS2_SUCCESS;
}


AXIS2_EXTERN axis2_char_t* AXIS2_CALL
axis2_rm_assertion_get_sandesha2_db(
    axis2_rm_assertion_t *rm_assertion,
    const axutil_env_t * env)
{
    return rm_assertion->sandesha2_db;
}

AXIS2_EXTERN axis2_status_t AXIS2_CALL
axis2_rm_assertion_set_sandesha2_db(
    axis2_rm_assertion_t *rm_assertion,
    const axutil_env_t * env,
    axis2_char_t* sandesha2_db)
{
    rm_assertion->sandesha2_db = sandesha2_db;
 
    return AXIS2_SUCCESS;
}


AXIS2_EXTERN axis2_rm_assertion_t* AXIS2_CALL
axis2_rm_assertion_get_from_policy(
    const axutil_env_t *env,
    neethi_policy_t *policy)
{
    axutil_array_list_t *alternatives = NULL;
    neethi_operator_t *component = NULL;
    neethi_all_t *all = NULL;
    axutil_array_list_t *arraylist = NULL;
    neethi_operator_t *operator = NULL;
    neethi_assertion_t *assertion = NULL;
    neethi_assertion_type_t type;
    void *value = NULL;
    int i = 0;

    alternatives = neethi_policy_get_alternatives(policy, env);

    component =
        (neethi_operator_t *) axutil_array_list_get(alternatives, env, 0);
    all = (neethi_all_t *) neethi_operator_get_value(component, env);

    arraylist = neethi_all_get_policy_components(all, env);

    for (i = 0; i < axutil_array_list_size(arraylist, env); i++)
    {
        operator =(neethi_operator_t *) axutil_array_list_get(arraylist, env,
                                                              i);
        assertion =
            (neethi_assertion_t *) neethi_operator_get_value(operator, env);
        value = neethi_assertion_get_value(assertion, env);
        type = neethi_assertion_get_type(assertion, env);

        if (value)
        {
            if (type == ASSERTION_TYPE_RM_ASSERTION)
            {
                return (axis2_rm_assertion_t *)value;
            }
        }
    }
    
    return NULL;
}



<|start_filename|>xdocs/api/html/group__axis2__handler__desc.html<|end_filename|>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html><head><meta http-equiv="Content-Type" content="text/html;charset=UTF-8">
<title>Axis2/C: handler description</title>
<link href="doxygen.css" rel="stylesheet" type="text/css">
<link href="tabs.css" rel="stylesheet" type="text/css">
</head><body>
<!-- Generated by Doxygen 1.5.3 -->
<div class="tabs">
  <ul>
    <li><a href="index.html"><span>Main&nbsp;Page</span></a></li>
    <li><a href="modules.html"><span>Modules</span></a></li>
    <li><a href="annotated.html"><span>Classes</span></a></li>
    <li><a href="files.html"><span>Files</span></a></li>
    <li><a href="dirs.html"><span>Directories</span></a></li>
    <li><a href="pages.html"><span>Related&nbsp;Pages</span></a></li>
    <li><a href="examples.html"><span>Examples</span></a></li>
    <li>
      <form action="search.php" method="get">
        <table cellspacing="0" cellpadding="0" border="0">
          <tr>
            <td><label>&nbsp;<u>S</u>earch&nbsp;for&nbsp;</label></td>
            <td><input type="text" name="query" value="" size="20" accesskey="s"/></td>
          </tr>
        </table>
      </form>
    </li>
  </ul>
</div>
<h1>handler description<br>
<small>
[<a class="el" href="group__axis2__desc.html">description</a>]</small>
</h1><table border="0" cellpadding="0" cellspacing="0">
<tr><td></td></tr>
<tr><td colspan="2"><br><h2>Files</h2></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top">file &nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="axis2__handler__desc_8h.html">axis2_handler_desc.h</a></td></tr>

<tr><td colspan="2"><br><h2>Typedefs</h2></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top">typedef struct <br>
axis2_handler_desc&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__axis2__handler__desc.html#gafcabd9d344f36395e60f1b4677835d9">axis2_handler_desc_t</a></td></tr>

<tr><td colspan="2"><br><h2>Functions</h2></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top">AXIS2_EXTERN const <br>
axutil_string_t *&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__axis2__handler__desc.html#g11aa71d93a360714ef716667458b545f">axis2_handler_desc_get_name</a> (const <a class="el" href="group__axis2__handler__desc.html#gafcabd9d344f36395e60f1b4677835d9">axis2_handler_desc_t</a> *handler_desc, const <a class="el" href="structaxutil__env.html">axutil_env_t</a> *env)</td></tr>

<tr><td class="memItemLeft" nowrap align="right" valign="top">AXIS2_EXTERN <br>
axis2_status_t&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__axis2__handler__desc.html#gae78bea7a133eae9b6c479400a2249d3">axis2_handler_desc_set_name</a> (<a class="el" href="group__axis2__handler__desc.html#gafcabd9d344f36395e60f1b4677835d9">axis2_handler_desc_t</a> *handler_desc, const <a class="el" href="structaxutil__env.html">axutil_env_t</a> *env, axutil_string_t *name)</td></tr>

<tr><td class="memItemLeft" nowrap align="right" valign="top">AXIS2_EXTERN <br>
<a class="el" href="group__axis2__phase__rule.html#g9c63c3673a8a009300b1d5c6d89cc3f5">axis2_phase_rule_t</a> *&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__axis2__handler__desc.html#g7b4d3746f2bd22d912ef0f92b6359749">axis2_handler_desc_get_rules</a> (const <a class="el" href="group__axis2__handler__desc.html#gafcabd9d344f36395e60f1b4677835d9">axis2_handler_desc_t</a> *handler_desc, const <a class="el" href="structaxutil__env.html">axutil_env_t</a> *env)</td></tr>

<tr><td class="memItemLeft" nowrap align="right" valign="top">AXIS2_EXTERN <br>
axis2_status_t&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__axis2__handler__desc.html#g6f0e73a9285c1d118d5d7de0ef0d2877">axis2_handler_desc_set_rules</a> (<a class="el" href="group__axis2__handler__desc.html#gafcabd9d344f36395e60f1b4677835d9">axis2_handler_desc_t</a> *handler_desc, const <a class="el" href="structaxutil__env.html">axutil_env_t</a> *env, <a class="el" href="group__axis2__phase__rule.html#g9c63c3673a8a009300b1d5c6d89cc3f5">axis2_phase_rule_t</a> *phase_rule)</td></tr>

<tr><td class="memItemLeft" nowrap align="right" valign="top">AXIS2_EXTERN <br>
axutil_param_t *&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__axis2__handler__desc.html#g8123741b6af07768a2259a2d15102e13">axis2_handler_desc_get_param</a> (const <a class="el" href="group__axis2__handler__desc.html#gafcabd9d344f36395e60f1b4677835d9">axis2_handler_desc_t</a> *handler_desc, const <a class="el" href="structaxutil__env.html">axutil_env_t</a> *env, const axis2_char_t *name)</td></tr>

<tr><td class="memItemLeft" nowrap align="right" valign="top">AXIS2_EXTERN <br>
axis2_status_t&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__axis2__handler__desc.html#g737790760fbba87a858641543d446814">axis2_handler_desc_add_param</a> (<a class="el" href="group__axis2__handler__desc.html#gafcabd9d344f36395e60f1b4677835d9">axis2_handler_desc_t</a> *handler_desc, const <a class="el" href="structaxutil__env.html">axutil_env_t</a> *env, axutil_param_t *param)</td></tr>

<tr><td class="memItemLeft" nowrap align="right" valign="top">AXIS2_EXTERN <br>
<a class="el" href="group__axutil__array__list.html#g1a6a89777db876cfa0cc86787b7be6a0">axutil_array_list_t</a> *&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__axis2__handler__desc.html#gd3abdf743cd711b6277f2e4754211396">axis2_handler_desc_get_all_params</a> (const <a class="el" href="group__axis2__handler__desc.html#gafcabd9d344f36395e60f1b4677835d9">axis2_handler_desc_t</a> *handler_desc, const <a class="el" href="structaxutil__env.html">axutil_env_t</a> *env)</td></tr>

<tr><td class="memItemLeft" nowrap align="right" valign="top">AXIS2_EXTERN axis2_bool_t&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__axis2__handler__desc.html#g0ecc479c307be432ced66fc9cb18764a">axis2_handler_desc_is_param_locked</a> (const <a class="el" href="group__axis2__handler__desc.html#gafcabd9d344f36395e60f1b4677835d9">axis2_handler_desc_t</a> *handler_desc, const <a class="el" href="structaxutil__env.html">axutil_env_t</a> *env, const axis2_char_t *param_name)</td></tr>

<tr><td class="memItemLeft" nowrap align="right" valign="top">AXIS2_EXTERN <br>
<a class="el" href="group__axis2__handler.html#g62e76f39f224fb84e98b6b77fdf4655c">axis2_handler_t</a> *&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__axis2__handler__desc.html#g802a79e88268339bb7e5f867cf34f216">axis2_handler_desc_get_handler</a> (const <a class="el" href="group__axis2__handler__desc.html#gafcabd9d344f36395e60f1b4677835d9">axis2_handler_desc_t</a> *handler_desc, const <a class="el" href="structaxutil__env.html">axutil_env_t</a> *env)</td></tr>

<tr><td class="memItemLeft" nowrap align="right" valign="top">AXIS2_EXTERN <br>
axis2_status_t&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__axis2__handler__desc.html#gba47ad772ed9b1efa3b1ac2a66d1a2cd">axis2_handler_desc_set_handler</a> (<a class="el" href="group__axis2__handler__desc.html#gafcabd9d344f36395e60f1b4677835d9">axis2_handler_desc_t</a> *handler_desc, const <a class="el" href="structaxutil__env.html">axutil_env_t</a> *env, <a class="el" href="group__axis2__handler.html#g62e76f39f224fb84e98b6b77fdf4655c">axis2_handler_t</a> *handler)</td></tr>

<tr><td class="memItemLeft" nowrap align="right" valign="top">AXIS2_EXTERN const <br>
axis2_char_t *&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__axis2__handler__desc.html#g6a12dc3e24a7db6642ef3392db1853cb">axis2_handler_desc_get_class_name</a> (const <a class="el" href="group__axis2__handler__desc.html#gafcabd9d344f36395e60f1b4677835d9">axis2_handler_desc_t</a> *handler_desc, const <a class="el" href="structaxutil__env.html">axutil_env_t</a> *env)</td></tr>

<tr><td class="memItemLeft" nowrap align="right" valign="top">AXIS2_EXTERN <br>
axis2_status_t&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__axis2__handler__desc.html#g29292b75f8442364eeaa7cf81dfde2d6">axis2_handler_desc_set_class_name</a> (<a class="el" href="group__axis2__handler__desc.html#gafcabd9d344f36395e60f1b4677835d9">axis2_handler_desc_t</a> *handler_desc, const <a class="el" href="structaxutil__env.html">axutil_env_t</a> *env, const axis2_char_t *class_name)</td></tr>

<tr><td class="memItemLeft" nowrap align="right" valign="top">AXIS2_EXTERN <br>
axutil_param_container_t *&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__axis2__handler__desc.html#gc4ff89737d616b5c948731965e00b564">axis2_handler_desc_get_parent</a> (const <a class="el" href="group__axis2__handler__desc.html#gafcabd9d344f36395e60f1b4677835d9">axis2_handler_desc_t</a> *handler_desc, const <a class="el" href="structaxutil__env.html">axutil_env_t</a> *env)</td></tr>

<tr><td class="memItemLeft" nowrap align="right" valign="top">AXIS2_EXTERN <br>
axis2_status_t&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__axis2__handler__desc.html#g92b9ba1b7c76d813c580f22abb2a028f">axis2_handler_desc_set_parent</a> (<a class="el" href="group__axis2__handler__desc.html#gafcabd9d344f36395e60f1b4677835d9">axis2_handler_desc_t</a> *handler_desc, const <a class="el" href="structaxutil__env.html">axutil_env_t</a> *env, axutil_param_container_t *parent)</td></tr>

<tr><td class="memItemLeft" nowrap align="right" valign="top">AXIS2_EXTERN void&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__axis2__handler__desc.html#g8c30a90d80ac928f900cd20e42577840">axis2_handler_desc_free</a> (<a class="el" href="group__axis2__handler__desc.html#gafcabd9d344f36395e60f1b4677835d9">axis2_handler_desc_t</a> *handler_desc, const <a class="el" href="structaxutil__env.html">axutil_env_t</a> *env)</td></tr>

<tr><td class="memItemLeft" nowrap align="right" valign="top">AXIS2_EXTERN <br>
axutil_param_container_t *&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__axis2__handler__desc.html#g09fbdbcc01525968858a53740aaf164e">axis2_handler_desc_get_param_container</a> (const <a class="el" href="group__axis2__handler__desc.html#gafcabd9d344f36395e60f1b4677835d9">axis2_handler_desc_t</a> *handler_desc, const <a class="el" href="structaxutil__env.html">axutil_env_t</a> *env)</td></tr>

<tr><td class="memItemLeft" nowrap align="right" valign="top">AXIS2_EXTERN <br>
<a class="el" href="group__axis2__handler__desc.html#gafcabd9d344f36395e60f1b4677835d9">axis2_handler_desc_t</a> *&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__axis2__handler__desc.html#g87d6dacc6e0aba457cad85bbc1ed037f">axis2_handler_desc_create</a> (const <a class="el" href="structaxutil__env.html">axutil_env_t</a> *env, axutil_string_t *name)</td></tr>

</table>
<hr><a name="_details"></a><h2>Detailed Description</h2>
handler description captures information on a handler. Each handler in the system has an associated handler description. Deployment engine would create handler descriptions based on configuration information. When handlers are loaded from shared libraries, the information captured in handler description would be used. <hr><h2>Typedef Documentation</h2>
<a class="anchor" name="gafcabd9d344f36395e60f1b4677835d9"></a><!-- doxytag: member="axis2_handler_desc.h::axis2_handler_desc_t" ref="gafcabd9d344f36395e60f1b4677835d9" args="" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">typedef struct axis2_handler_desc <a class="el" href="group__axis2__handler__desc.html#gafcabd9d344f36395e60f1b4677835d9">axis2_handler_desc_t</a>          </td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
Type name for struct axis2_handler_desc 
</div>
</div><p>
<hr><h2>Function Documentation</h2>
<a class="anchor" name="g737790760fbba87a858641543d446814"></a><!-- doxytag: member="axis2_handler_desc.h::axis2_handler_desc_add_param" ref="g737790760fbba87a858641543d446814" args="(axis2_handler_desc_t *handler_desc, const axutil_env_t *env, axutil_param_t *param)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">AXIS2_EXTERN axis2_status_t axis2_handler_desc_add_param           </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="group__axis2__handler__desc.html#gafcabd9d344f36395e60f1b4677835d9">axis2_handler_desc_t</a> *&nbsp;</td>
          <td class="paramname"> <em>handler_desc</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const <a class="el" href="structaxutil__env.html">axutil_env_t</a> *&nbsp;</td>
          <td class="paramname"> <em>env</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">axutil_param_t *&nbsp;</td>
          <td class="paramname"> <em>param</em></td><td>&nbsp;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td><td width="100%"></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
Adds given parameter to the parameter list. <dl compact><dt><b>Parameters:</b></dt><dd>
  <table border="0" cellspacing="2" cellpadding="0">
    <tr><td valign="top"></td><td valign="top"><em>handler_desc</em>&nbsp;</td><td>pointer to handler description </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>env</em>&nbsp;</td><td>pointer to environment struct </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>param</em>&nbsp;</td><td>pointer to param </td></tr>
  </table>
</dl>
<dl class="return" compact><dt><b>Returns:</b></dt><dd>AXIS2_SUCCESS on success, else AXIS2_FAILURE </dd></dl>

</div>
</div><p>
<a class="anchor" name="g87d6dacc6e0aba457cad85bbc1ed037f"></a><!-- doxytag: member="axis2_handler_desc.h::axis2_handler_desc_create" ref="g87d6dacc6e0aba457cad85bbc1ed037f" args="(const axutil_env_t *env, axutil_string_t *name)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">AXIS2_EXTERN <a class="el" href="group__axis2__handler__desc.html#gafcabd9d344f36395e60f1b4677835d9">axis2_handler_desc_t</a>* axis2_handler_desc_create           </td>
          <td>(</td>
          <td class="paramtype">const <a class="el" href="structaxutil__env.html">axutil_env_t</a> *&nbsp;</td>
          <td class="paramname"> <em>env</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">axutil_string_t *&nbsp;</td>
          <td class="paramname"> <em>name</em></td><td>&nbsp;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td><td width="100%"></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
Creates handler description struct instance. <dl compact><dt><b>Parameters:</b></dt><dd>
  <table border="0" cellspacing="2" cellpadding="0">
    <tr><td valign="top"></td><td valign="top"><em>env</em>&nbsp;</td><td>pointer to env pointer to environment struct </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>name</em>&nbsp;</td><td>pointer to string representing handler name, can be NULL, create function clones this </td></tr>
  </table>
</dl>
<dl class="return" compact><dt><b>Returns:</b></dt><dd>pointer to newly created handler description struct </dd></dl>

</div>
</div><p>
<a class="anchor" name="g8c30a90d80ac928f900cd20e42577840"></a><!-- doxytag: member="axis2_handler_desc.h::axis2_handler_desc_free" ref="g8c30a90d80ac928f900cd20e42577840" args="(axis2_handler_desc_t *handler_desc, const axutil_env_t *env)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">AXIS2_EXTERN void axis2_handler_desc_free           </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="group__axis2__handler__desc.html#gafcabd9d344f36395e60f1b4677835d9">axis2_handler_desc_t</a> *&nbsp;</td>
          <td class="paramname"> <em>handler_desc</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const <a class="el" href="structaxutil__env.html">axutil_env_t</a> *&nbsp;</td>
          <td class="paramname"> <em>env</em></td><td>&nbsp;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td><td width="100%"></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
Frees handler description. <dl compact><dt><b>Parameters:</b></dt><dd>
  <table border="0" cellspacing="2" cellpadding="0">
    <tr><td valign="top"></td><td valign="top"><em>handler_desc</em>&nbsp;</td><td>pointer to handler description </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>env</em>&nbsp;</td><td>pointer to environment struct </td></tr>
  </table>
</dl>
<dl class="return" compact><dt><b>Returns:</b></dt><dd>AXIS2_SUCCESS on success, else AXIS2_FAILURE </dd></dl>

</div>
</div><p>
<a class="anchor" name="gd3abdf743cd711b6277f2e4754211396"></a><!-- doxytag: member="axis2_handler_desc.h::axis2_handler_desc_get_all_params" ref="gd3abdf743cd711b6277f2e4754211396" args="(const axis2_handler_desc_t *handler_desc, const axutil_env_t *env)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">AXIS2_EXTERN <a class="el" href="group__axutil__array__list.html#g1a6a89777db876cfa0cc86787b7be6a0">axutil_array_list_t</a>* axis2_handler_desc_get_all_params           </td>
          <td>(</td>
          <td class="paramtype">const <a class="el" href="group__axis2__handler__desc.html#gafcabd9d344f36395e60f1b4677835d9">axis2_handler_desc_t</a> *&nbsp;</td>
          <td class="paramname"> <em>handler_desc</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const <a class="el" href="structaxutil__env.html">axutil_env_t</a> *&nbsp;</td>
          <td class="paramname"> <em>env</em></td><td>&nbsp;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td><td width="100%"></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
Gets all parameters stored within handler description. <dl compact><dt><b>Parameters:</b></dt><dd>
  <table border="0" cellspacing="2" cellpadding="0">
    <tr><td valign="top"></td><td valign="top"><em>handler_desc</em>&nbsp;</td><td>pointer to handler description </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>env</em>&nbsp;</td><td>pointer to environment struct </td></tr>
  </table>
</dl>
<dl class="return" compact><dt><b>Returns:</b></dt><dd>pointer to array list containing parameters, returns a reference, not a cloned copy </dd></dl>

</div>
</div><p>
<a class="anchor" name="g6a12dc3e24a7db6642ef3392db1853cb"></a><!-- doxytag: member="axis2_handler_desc.h::axis2_handler_desc_get_class_name" ref="g6a12dc3e24a7db6642ef3392db1853cb" args="(const axis2_handler_desc_t *handler_desc, const axutil_env_t *env)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">AXIS2_EXTERN const axis2_char_t* axis2_handler_desc_get_class_name           </td>
          <td>(</td>
          <td class="paramtype">const <a class="el" href="group__axis2__handler__desc.html#gafcabd9d344f36395e60f1b4677835d9">axis2_handler_desc_t</a> *&nbsp;</td>
          <td class="paramname"> <em>handler_desc</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const <a class="el" href="structaxutil__env.html">axutil_env_t</a> *&nbsp;</td>
          <td class="paramname"> <em>env</em></td><td>&nbsp;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td><td width="100%"></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
Gets the class name. Class name is the name of the shared library file that contains the implementation of the handler. <dl compact><dt><b>Parameters:</b></dt><dd>
  <table border="0" cellspacing="2" cellpadding="0">
    <tr><td valign="top"></td><td valign="top"><em>handler_desc</em>&nbsp;</td><td>pointer to handler description </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>env</em>&nbsp;</td><td>pointer to environment struct </td></tr>
  </table>
</dl>
<dl class="return" compact><dt><b>Returns:</b></dt><dd>class name string </dd></dl>

</div>
</div><p>
<a class="anchor" name="g802a79e88268339bb7e5f867cf34f216"></a><!-- doxytag: member="axis2_handler_desc.h::axis2_handler_desc_get_handler" ref="g802a79e88268339bb7e5f867cf34f216" args="(const axis2_handler_desc_t *handler_desc, const axutil_env_t *env)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">AXIS2_EXTERN <a class="el" href="group__axis2__handler.html#g62e76f39f224fb84e98b6b77fdf4655c">axis2_handler_t</a>* axis2_handler_desc_get_handler           </td>
          <td>(</td>
          <td class="paramtype">const <a class="el" href="group__axis2__handler__desc.html#gafcabd9d344f36395e60f1b4677835d9">axis2_handler_desc_t</a> *&nbsp;</td>
          <td class="paramname"> <em>handler_desc</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const <a class="el" href="structaxutil__env.html">axutil_env_t</a> *&nbsp;</td>
          <td class="paramname"> <em>env</em></td><td>&nbsp;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td><td width="100%"></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
Gets the handler associated with the handler description. <dl compact><dt><b>Parameters:</b></dt><dd>
  <table border="0" cellspacing="2" cellpadding="0">
    <tr><td valign="top"></td><td valign="top"><em>handler_desc</em>&nbsp;</td><td>pointer to handler description </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>env</em>&nbsp;</td><td>pointer to environment struct </td></tr>
  </table>
</dl>
<dl class="return" compact><dt><b>Returns:</b></dt><dd>pointer to handler, returns a reference, not a cloned copy </dd></dl>

</div>
</div><p>
<a class="anchor" name="g11aa71d93a360714ef716667458b545f"></a><!-- doxytag: member="axis2_handler_desc.h::axis2_handler_desc_get_name" ref="g11aa71d93a360714ef716667458b545f" args="(const axis2_handler_desc_t *handler_desc, const axutil_env_t *env)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">AXIS2_EXTERN const axutil_string_t* axis2_handler_desc_get_name           </td>
          <td>(</td>
          <td class="paramtype">const <a class="el" href="group__axis2__handler__desc.html#gafcabd9d344f36395e60f1b4677835d9">axis2_handler_desc_t</a> *&nbsp;</td>
          <td class="paramname"> <em>handler_desc</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const <a class="el" href="structaxutil__env.html">axutil_env_t</a> *&nbsp;</td>
          <td class="paramname"> <em>env</em></td><td>&nbsp;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td><td width="100%"></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
Gets QName. <dl compact><dt><b>Parameters:</b></dt><dd>
  <table border="0" cellspacing="2" cellpadding="0">
    <tr><td valign="top"></td><td valign="top"><em>handler_desc</em>&nbsp;</td><td>pointer to handler description </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>env</em>&nbsp;</td><td>pointer to environment struct </td></tr>
  </table>
</dl>
<dl class="return" compact><dt><b>Returns:</b></dt><dd>pointer to QName, returns a reference, not a cloned copy </dd></dl>

</div>
</div><p>
<a class="anchor" name="g8123741b6af07768a2259a2d15102e13"></a><!-- doxytag: member="axis2_handler_desc.h::axis2_handler_desc_get_param" ref="g8123741b6af07768a2259a2d15102e13" args="(const axis2_handler_desc_t *handler_desc, const axutil_env_t *env, const axis2_char_t *name)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">AXIS2_EXTERN axutil_param_t* axis2_handler_desc_get_param           </td>
          <td>(</td>
          <td class="paramtype">const <a class="el" href="group__axis2__handler__desc.html#gafcabd9d344f36395e60f1b4677835d9">axis2_handler_desc_t</a> *&nbsp;</td>
          <td class="paramname"> <em>handler_desc</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const <a class="el" href="structaxutil__env.html">axutil_env_t</a> *&nbsp;</td>
          <td class="paramname"> <em>env</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const axis2_char_t *&nbsp;</td>
          <td class="paramname"> <em>name</em></td><td>&nbsp;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td><td width="100%"></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
Gets named parameter. <dl compact><dt><b>Parameters:</b></dt><dd>
  <table border="0" cellspacing="2" cellpadding="0">
    <tr><td valign="top"></td><td valign="top"><em>handler_desc</em>&nbsp;</td><td>pointer to handler description </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>env</em>&nbsp;</td><td>pointer to environment struct </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>name</em>&nbsp;</td><td>parameter name string </td></tr>
  </table>
</dl>
<dl class="return" compact><dt><b>Returns:</b></dt><dd>pointer to parameter if found, else NULL. Return a reference not a cloned copy </dd></dl>

</div>
</div><p>
<a class="anchor" name="g09fbdbcc01525968858a53740aaf164e"></a><!-- doxytag: member="axis2_handler_desc.h::axis2_handler_desc_get_param_container" ref="g09fbdbcc01525968858a53740aaf164e" args="(const axis2_handler_desc_t *handler_desc, const axutil_env_t *env)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">AXIS2_EXTERN axutil_param_container_t* axis2_handler_desc_get_param_container           </td>
          <td>(</td>
          <td class="paramtype">const <a class="el" href="group__axis2__handler__desc.html#gafcabd9d344f36395e60f1b4677835d9">axis2_handler_desc_t</a> *&nbsp;</td>
          <td class="paramname"> <em>handler_desc</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const <a class="el" href="structaxutil__env.html">axutil_env_t</a> *&nbsp;</td>
          <td class="paramname"> <em>env</em></td><td>&nbsp;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td><td width="100%"></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
Gets the param container. <dl compact><dt><b>Parameters:</b></dt><dd>
  <table border="0" cellspacing="2" cellpadding="0">
    <tr><td valign="top"></td><td valign="top"><em>handler_desc</em>&nbsp;</td><td>pointer to handler description </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>env</em>&nbsp;</td><td>pointer to environment struct </td></tr>
  </table>
</dl>
<dl class="return" compact><dt><b>Returns:</b></dt><dd>pointer to parameter container, returns a reference, not a cloned copy </dd></dl>

</div>
</div><p>
<a class="anchor" name="gc4ff89737d616b5c948731965e00b564"></a><!-- doxytag: member="axis2_handler_desc.h::axis2_handler_desc_get_parent" ref="gc4ff89737d616b5c948731965e00b564" args="(const axis2_handler_desc_t *handler_desc, const axutil_env_t *env)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">AXIS2_EXTERN axutil_param_container_t* axis2_handler_desc_get_parent           </td>
          <td>(</td>
          <td class="paramtype">const <a class="el" href="group__axis2__handler__desc.html#gafcabd9d344f36395e60f1b4677835d9">axis2_handler_desc_t</a> *&nbsp;</td>
          <td class="paramname"> <em>handler_desc</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const <a class="el" href="structaxutil__env.html">axutil_env_t</a> *&nbsp;</td>
          <td class="paramname"> <em>env</em></td><td>&nbsp;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td><td width="100%"></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
Gets the parent. Parent of handler description is of type parameter container. <dl compact><dt><b>Parameters:</b></dt><dd>
  <table border="0" cellspacing="2" cellpadding="0">
    <tr><td valign="top"></td><td valign="top"><em>handler_desc</em>&nbsp;</td><td>pointer to handler description </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>env</em>&nbsp;</td><td>pointer to environment struct </td></tr>
  </table>
</dl>
<dl class="return" compact><dt><b>Returns:</b></dt><dd>pointer to parent parameter container, returns a reference, not a cloned copy </dd></dl>

</div>
</div><p>
<a class="anchor" name="g7b4d3746f2bd22d912ef0f92b6359749"></a><!-- doxytag: member="axis2_handler_desc.h::axis2_handler_desc_get_rules" ref="g7b4d3746f2bd22d912ef0f92b6359749" args="(const axis2_handler_desc_t *handler_desc, const axutil_env_t *env)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">AXIS2_EXTERN <a class="el" href="group__axis2__phase__rule.html#g9c63c3673a8a009300b1d5c6d89cc3f5">axis2_phase_rule_t</a>* axis2_handler_desc_get_rules           </td>
          <td>(</td>
          <td class="paramtype">const <a class="el" href="group__axis2__handler__desc.html#gafcabd9d344f36395e60f1b4677835d9">axis2_handler_desc_t</a> *&nbsp;</td>
          <td class="paramname"> <em>handler_desc</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const <a class="el" href="structaxutil__env.html">axutil_env_t</a> *&nbsp;</td>
          <td class="paramname"> <em>env</em></td><td>&nbsp;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td><td width="100%"></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
Gets phase rules. <dl compact><dt><b>Parameters:</b></dt><dd>
  <table border="0" cellspacing="2" cellpadding="0">
    <tr><td valign="top"></td><td valign="top"><em>handler_desc</em>&nbsp;</td><td>pointer to handler description </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>env</em>&nbsp;</td><td>pointer to environment struct </td></tr>
  </table>
</dl>
<dl class="return" compact><dt><b>Returns:</b></dt><dd>pointer to phase rule struct containing phase rules </dd></dl>

</div>
</div><p>
<a class="anchor" name="g0ecc479c307be432ced66fc9cb18764a"></a><!-- doxytag: member="axis2_handler_desc.h::axis2_handler_desc_is_param_locked" ref="g0ecc479c307be432ced66fc9cb18764a" args="(const axis2_handler_desc_t *handler_desc, const axutil_env_t *env, const axis2_char_t *param_name)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">AXIS2_EXTERN axis2_bool_t axis2_handler_desc_is_param_locked           </td>
          <td>(</td>
          <td class="paramtype">const <a class="el" href="group__axis2__handler__desc.html#gafcabd9d344f36395e60f1b4677835d9">axis2_handler_desc_t</a> *&nbsp;</td>
          <td class="paramname"> <em>handler_desc</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const <a class="el" href="structaxutil__env.html">axutil_env_t</a> *&nbsp;</td>
          <td class="paramname"> <em>env</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const axis2_char_t *&nbsp;</td>
          <td class="paramname"> <em>param_name</em></td><td>&nbsp;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td><td width="100%"></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
Checks if the named parameter is locked at any level <dl compact><dt><b>Parameters:</b></dt><dd>
  <table border="0" cellspacing="2" cellpadding="0">
    <tr><td valign="top"></td><td valign="top"><em>handler_desc</em>&nbsp;</td><td>pointer to handler description </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>env</em>&nbsp;</td><td>pointer to environment struct </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>param_name</em>&nbsp;</td><td>parameter name string </td></tr>
  </table>
</dl>
<dl class="return" compact><dt><b>Returns:</b></dt><dd>AXIS2_TRUE if the parameter is locked, else AXIS2_FALSE </dd></dl>

</div>
</div><p>
<a class="anchor" name="g29292b75f8442364eeaa7cf81dfde2d6"></a><!-- doxytag: member="axis2_handler_desc.h::axis2_handler_desc_set_class_name" ref="g29292b75f8442364eeaa7cf81dfde2d6" args="(axis2_handler_desc_t *handler_desc, const axutil_env_t *env, const axis2_char_t *class_name)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">AXIS2_EXTERN axis2_status_t axis2_handler_desc_set_class_name           </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="group__axis2__handler__desc.html#gafcabd9d344f36395e60f1b4677835d9">axis2_handler_desc_t</a> *&nbsp;</td>
          <td class="paramname"> <em>handler_desc</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const <a class="el" href="structaxutil__env.html">axutil_env_t</a> *&nbsp;</td>
          <td class="paramname"> <em>env</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const axis2_char_t *&nbsp;</td>
          <td class="paramname"> <em>class_name</em></td><td>&nbsp;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td><td width="100%"></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
Sets the class name. Class name is the name of the shared library file that contains the implementation of the handler. <dl compact><dt><b>Parameters:</b></dt><dd>
  <table border="0" cellspacing="2" cellpadding="0">
    <tr><td valign="top"></td><td valign="top"><em>handler_desc</em>&nbsp;</td><td>pointer to handler description </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>env</em>&nbsp;</td><td>pointer to environment struct </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>class_name</em>&nbsp;</td><td>class name string </td></tr>
  </table>
</dl>
<dl class="return" compact><dt><b>Returns:</b></dt><dd>AXIS2_SUCCESS on success, else AXIS2_FAILURE </dd></dl>

</div>
</div><p>
<a class="anchor" name="gba47ad772ed9b1efa3b1ac2a66d1a2cd"></a><!-- doxytag: member="axis2_handler_desc.h::axis2_handler_desc_set_handler" ref="gba47ad772ed9b1efa3b1ac2a66d1a2cd" args="(axis2_handler_desc_t *handler_desc, const axutil_env_t *env, axis2_handler_t *handler)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">AXIS2_EXTERN axis2_status_t axis2_handler_desc_set_handler           </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="group__axis2__handler__desc.html#gafcabd9d344f36395e60f1b4677835d9">axis2_handler_desc_t</a> *&nbsp;</td>
          <td class="paramname"> <em>handler_desc</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const <a class="el" href="structaxutil__env.html">axutil_env_t</a> *&nbsp;</td>
          <td class="paramname"> <em>env</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype"><a class="el" href="group__axis2__handler.html#g62e76f39f224fb84e98b6b77fdf4655c">axis2_handler_t</a> *&nbsp;</td>
          <td class="paramname"> <em>handler</em></td><td>&nbsp;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td><td width="100%"></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
Sets the handler associated with the handler description. <dl compact><dt><b>Parameters:</b></dt><dd>
  <table border="0" cellspacing="2" cellpadding="0">
    <tr><td valign="top"></td><td valign="top"><em>handler_desc</em>&nbsp;</td><td>pointer to handler description </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>env</em>&nbsp;</td><td>pointer to environment struct </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>handler</em>&nbsp;</td><td>pointer to handler, handler description assumes the ownership of the handler </td></tr>
  </table>
</dl>
<dl class="return" compact><dt><b>Returns:</b></dt><dd>AXIS2_SUCCESS on success, else AXIS2_FAILURE </dd></dl>

</div>
</div><p>
<a class="anchor" name="gae78bea7a133eae9b6c479400a2249d3"></a><!-- doxytag: member="axis2_handler_desc.h::axis2_handler_desc_set_name" ref="gae78bea7a133eae9b6c479400a2249d3" args="(axis2_handler_desc_t *handler_desc, const axutil_env_t *env, axutil_string_t *name)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">AXIS2_EXTERN axis2_status_t axis2_handler_desc_set_name           </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="group__axis2__handler__desc.html#gafcabd9d344f36395e60f1b4677835d9">axis2_handler_desc_t</a> *&nbsp;</td>
          <td class="paramname"> <em>handler_desc</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const <a class="el" href="structaxutil__env.html">axutil_env_t</a> *&nbsp;</td>
          <td class="paramname"> <em>env</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">axutil_string_t *&nbsp;</td>
          <td class="paramname"> <em>name</em></td><td>&nbsp;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td><td width="100%"></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
Sets QName. <dl compact><dt><b>Parameters:</b></dt><dd>
  <table border="0" cellspacing="2" cellpadding="0">
    <tr><td valign="top"></td><td valign="top"><em>handler_desc</em>&nbsp;</td><td>pointer to handler description </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>env</em>&nbsp;</td><td>pointer to environment struct </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>name</em>&nbsp;</td><td>pointer to string representing handler name of QName </td></tr>
  </table>
</dl>
<dl class="return" compact><dt><b>Returns:</b></dt><dd>AXIS2_SUCCESS on success, else AXIS2_FAILURE </dd></dl>

</div>
</div><p>
<a class="anchor" name="g92b9ba1b7c76d813c580f22abb2a028f"></a><!-- doxytag: member="axis2_handler_desc.h::axis2_handler_desc_set_parent" ref="g92b9ba1b7c76d813c580f22abb2a028f" args="(axis2_handler_desc_t *handler_desc, const axutil_env_t *env, axutil_param_container_t *parent)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">AXIS2_EXTERN axis2_status_t axis2_handler_desc_set_parent           </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="group__axis2__handler__desc.html#gafcabd9d344f36395e60f1b4677835d9">axis2_handler_desc_t</a> *&nbsp;</td>
          <td class="paramname"> <em>handler_desc</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const <a class="el" href="structaxutil__env.html">axutil_env_t</a> *&nbsp;</td>
          <td class="paramname"> <em>env</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">axutil_param_container_t *&nbsp;</td>
          <td class="paramname"> <em>parent</em></td><td>&nbsp;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td><td width="100%"></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
Gets the parent. Parent of handler description is of type parameter container. <dl compact><dt><b>Parameters:</b></dt><dd>
  <table border="0" cellspacing="2" cellpadding="0">
    <tr><td valign="top"></td><td valign="top"><em>handler_desc</em>&nbsp;</td><td>pointer to handler description </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>env</em>&nbsp;</td><td>pointer to environment struct </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>parent</em>&nbsp;</td><td>pointer to parent parameter container struct, handler description assumes ownership of struct </td></tr>
  </table>
</dl>
<dl class="return" compact><dt><b>Returns:</b></dt><dd>AXIS2_SUCCESS on success, else AXIS2_FAILURE </dd></dl>

</div>
</div><p>
<a class="anchor" name="g6f0e73a9285c1d118d5d7de0ef0d2877"></a><!-- doxytag: member="axis2_handler_desc.h::axis2_handler_desc_set_rules" ref="g6f0e73a9285c1d118d5d7de0ef0d2877" args="(axis2_handler_desc_t *handler_desc, const axutil_env_t *env, axis2_phase_rule_t *phase_rule)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">AXIS2_EXTERN axis2_status_t axis2_handler_desc_set_rules           </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="group__axis2__handler__desc.html#gafcabd9d344f36395e60f1b4677835d9">axis2_handler_desc_t</a> *&nbsp;</td>
          <td class="paramname"> <em>handler_desc</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const <a class="el" href="structaxutil__env.html">axutil_env_t</a> *&nbsp;</td>
          <td class="paramname"> <em>env</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype"><a class="el" href="group__axis2__phase__rule.html#g9c63c3673a8a009300b1d5c6d89cc3f5">axis2_phase_rule_t</a> *&nbsp;</td>
          <td class="paramname"> <em>phase_rule</em></td><td>&nbsp;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td><td width="100%"></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
Sets phase rules. <dl compact><dt><b>Parameters:</b></dt><dd>
  <table border="0" cellspacing="2" cellpadding="0">
    <tr><td valign="top"></td><td valign="top"><em>handler_desc</em>&nbsp;</td><td>pointer to handler description </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>env</em>&nbsp;</td><td>pointer to environment struct </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>phase_rule</em>&nbsp;</td><td>pointer to phase rule struct, handler description assumes ownership of the struct </td></tr>
  </table>
</dl>
<dl class="return" compact><dt><b>Returns:</b></dt><dd>AXIS2_SUCCESS on success, else AXIS2_FAILURE </dd></dl>

</div>
</div><p>
<hr size="1"><address style="text-align: right;"><small>Generated on Fri Apr 17 11:49:44 2009 for Axis2/C by&nbsp;
<a href="http://www.doxygen.org/index.html">
<img src="doxygen.png" alt="doxygen" align="middle" border="0"></a> 1.5.3 </small></address>
</body>
</html>


<|start_filename|>xdocs/api/html/axutil__url_8h.html<|end_filename|>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html><head><meta http-equiv="Content-Type" content="text/html;charset=UTF-8">
<title>Axis2/C: axutil_url.h File Reference</title>
<link href="doxygen.css" rel="stylesheet" type="text/css">
<link href="tabs.css" rel="stylesheet" type="text/css">
</head><body>
<!-- Generated by Doxygen 1.5.3 -->
<div class="tabs">
  <ul>
    <li><a href="index.html"><span>Main&nbsp;Page</span></a></li>
    <li><a href="modules.html"><span>Modules</span></a></li>
    <li><a href="annotated.html"><span>Classes</span></a></li>
    <li class="current"><a href="files.html"><span>Files</span></a></li>
    <li><a href="dirs.html"><span>Directories</span></a></li>
    <li><a href="pages.html"><span>Related&nbsp;Pages</span></a></li>
    <li><a href="examples.html"><span>Examples</span></a></li>
    <li>
      <form action="search.php" method="get">
        <table cellspacing="0" cellpadding="0" border="0">
          <tr>
            <td><label>&nbsp;<u>S</u>earch&nbsp;for&nbsp;</label></td>
            <td><input type="text" name="query" value="" size="20" accesskey="s"/></td>
          </tr>
        </table>
      </form>
    </li>
  </ul>
</div>
<div class="nav">
<a class="el" href="dir_f60961de8e5edc3b2658ef023e959e45.html">deploy</a>&nbsp;&raquo&nbsp;<a class="el" href="dir_6b4e91e54b7316b376882a6402adbf44.html">include</a>&nbsp;&raquo&nbsp;<a class="el" href="dir_df3a7695d5a9e696f30b948b566829e7.html">axis2-1.6.0</a></div>
<h1>axutil_url.h File Reference</h1>axis2 URL container implementation <a href="#_details">More...</a>
<p>
<code>#include &lt;<a class="el" href="axutil__utils_8h-source.html">axutil_utils.h</a>&gt;</code><br>
<code>#include &lt;axutil_utils_defines.h&gt;</code><br>
<code>#include &lt;<a class="el" href="axutil__env_8h-source.html">axutil_env.h</a>&gt;</code><br>
<code>#include &lt;<a class="el" href="axutil__uri_8h-source.html">axutil_uri.h</a>&gt;</code><br>

<p>
<a href="axutil__url_8h-source.html">Go to the source code of this file.</a><table border="0" cellpadding="0" cellspacing="0">
<tr><td></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="g2995bfe02958f78d04ccc19241dd921b"></a><!-- doxytag: member="axutil_url.h::axutil_url_t" ref="g2995bfe02958f78d04ccc19241dd921b" args="" -->
typedef struct axutil_url&nbsp;</td><td class="memItemRight" valign="bottom"><b>axutil_url_t</b></td></tr>

<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="gac4b861aae3cb849ec4ff7ebaa288bb3"></a><!-- doxytag: member="axutil_url.h::axutil_url_create" ref="gac4b861aae3cb849ec4ff7ebaa288bb3" args="(const axutil_env_t *env, const axis2_char_t *protocol, const axis2_char_t *host, const int port, const axis2_char_t *path)" -->
AXIS2_EXTERN <br>
axutil_url_t *&nbsp;</td><td class="memItemRight" valign="bottom"><b>axutil_url_create</b> (const <a class="el" href="structaxutil__env.html">axutil_env_t</a> *env, const axis2_char_t *protocol, const axis2_char_t *host, const int port, const axis2_char_t *path)</td></tr>

<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="g9109e28b9f161b847046706471c28515"></a><!-- doxytag: member="axutil_url.h::axutil_url_parse_string" ref="g9109e28b9f161b847046706471c28515" args="(const axutil_env_t *env, const axis2_char_t *str_url)" -->
AXIS2_EXTERN <br>
axutil_url_t *&nbsp;</td><td class="memItemRight" valign="bottom"><b>axutil_url_parse_string</b> (const <a class="el" href="structaxutil__env.html">axutil_env_t</a> *env, const axis2_char_t *str_url)</td></tr>

<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="g9ada03eda8fce058ea92a4672ba331c8"></a><!-- doxytag: member="axutil_url.h::axutil_url_to_uri" ref="g9ada03eda8fce058ea92a4672ba331c8" args="(axutil_url_t *url, const axutil_env_t *env)" -->
AXIS2_EXTERN <br>
axutil_uri_t *&nbsp;</td><td class="memItemRight" valign="bottom"><b>axutil_url_to_uri</b> (axutil_url_t *url, const <a class="el" href="structaxutil__env.html">axutil_env_t</a> *env)</td></tr>

<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="gd7799e682b56a35ce09dbe290b1f5fda"></a><!-- doxytag: member="axutil_url.h::axutil_url_to_external_form" ref="gd7799e682b56a35ce09dbe290b1f5fda" args="(axutil_url_t *url, const axutil_env_t *env)" -->
AXIS2_EXTERN <br>
axis2_char_t *&nbsp;</td><td class="memItemRight" valign="bottom"><b>axutil_url_to_external_form</b> (axutil_url_t *url, const <a class="el" href="structaxutil__env.html">axutil_env_t</a> *env)</td></tr>

<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="gb0aa03c494f84d75568c55aaf8edee36"></a><!-- doxytag: member="axutil_url.h::axutil_url_set_protocol" ref="gb0aa03c494f84d75568c55aaf8edee36" args="(axutil_url_t *url, const axutil_env_t *env, axis2_char_t *protocol)" -->
AXIS2_EXTERN <br>
axis2_status_t&nbsp;</td><td class="memItemRight" valign="bottom"><b>axutil_url_set_protocol</b> (axutil_url_t *url, const <a class="el" href="structaxutil__env.html">axutil_env_t</a> *env, axis2_char_t *protocol)</td></tr>

<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="g38b6181e61324e637565d7e0a6bc6012"></a><!-- doxytag: member="axutil_url.h::axutil_url_get_protocol" ref="g38b6181e61324e637565d7e0a6bc6012" args="(axutil_url_t *url, const axutil_env_t *env)" -->
AXIS2_EXTERN <br>
axis2_char_t *&nbsp;</td><td class="memItemRight" valign="bottom"><b>axutil_url_get_protocol</b> (axutil_url_t *url, const <a class="el" href="structaxutil__env.html">axutil_env_t</a> *env)</td></tr>

<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="ge63489233ed0372f6e5f68892d6b6ba8"></a><!-- doxytag: member="axutil_url.h::axutil_url_set_host" ref="ge63489233ed0372f6e5f68892d6b6ba8" args="(axutil_url_t *url, const axutil_env_t *env, axis2_char_t *host)" -->
AXIS2_EXTERN <br>
axis2_status_t&nbsp;</td><td class="memItemRight" valign="bottom"><b>axutil_url_set_host</b> (axutil_url_t *url, const <a class="el" href="structaxutil__env.html">axutil_env_t</a> *env, axis2_char_t *host)</td></tr>

<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="gad9bb5d4abf512b67080b8fce4d03f12"></a><!-- doxytag: member="axutil_url.h::axutil_url_get_host" ref="gad9bb5d4abf512b67080b8fce4d03f12" args="(axutil_url_t *url, const axutil_env_t *env)" -->
AXIS2_EXTERN <br>
axis2_char_t *&nbsp;</td><td class="memItemRight" valign="bottom"><b>axutil_url_get_host</b> (axutil_url_t *url, const <a class="el" href="structaxutil__env.html">axutil_env_t</a> *env)</td></tr>

<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="gc57e4c24c42fa7b7fe49dfcf5f43ab2c"></a><!-- doxytag: member="axutil_url.h::axutil_url_set_server" ref="gc57e4c24c42fa7b7fe49dfcf5f43ab2c" args="(axutil_url_t *url, const axutil_env_t *env, axis2_char_t *server)" -->
AXIS2_EXTERN <br>
axis2_status_t&nbsp;</td><td class="memItemRight" valign="bottom"><b>axutil_url_set_server</b> (axutil_url_t *url, const <a class="el" href="structaxutil__env.html">axutil_env_t</a> *env, axis2_char_t *server)</td></tr>

<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="ga30b443b3e72903920e56410f91d83cc"></a><!-- doxytag: member="axutil_url.h::axutil_url_get_server" ref="ga30b443b3e72903920e56410f91d83cc" args="(axutil_url_t *url, const axutil_env_t *env)" -->
AXIS2_EXTERN <br>
axis2_char_t *&nbsp;</td><td class="memItemRight" valign="bottom"><b>axutil_url_get_server</b> (axutil_url_t *url, const <a class="el" href="structaxutil__env.html">axutil_env_t</a> *env)</td></tr>

<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="gd501b4d46e8e72cf5aef32c666f0848f"></a><!-- doxytag: member="axutil_url.h::axutil_url_set_port" ref="gd501b4d46e8e72cf5aef32c666f0848f" args="(axutil_url_t *url, const axutil_env_t *env, int port)" -->
AXIS2_EXTERN <br>
axis2_status_t&nbsp;</td><td class="memItemRight" valign="bottom"><b>axutil_url_set_port</b> (axutil_url_t *url, const <a class="el" href="structaxutil__env.html">axutil_env_t</a> *env, int port)</td></tr>

<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="gb646b26c999e60306479be7db8036d55"></a><!-- doxytag: member="axutil_url.h::axutil_url_get_port" ref="gb646b26c999e60306479be7db8036d55" args="(axutil_url_t *url, const axutil_env_t *env)" -->
AXIS2_EXTERN int&nbsp;</td><td class="memItemRight" valign="bottom"><b>axutil_url_get_port</b> (axutil_url_t *url, const <a class="el" href="structaxutil__env.html">axutil_env_t</a> *env)</td></tr>

<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="gab145b757ab29cc16d40fdad2b388000"></a><!-- doxytag: member="axutil_url.h::axutil_url_set_path" ref="gab145b757ab29cc16d40fdad2b388000" args="(axutil_url_t *url, const axutil_env_t *env, axis2_char_t *path)" -->
AXIS2_EXTERN <br>
axis2_status_t&nbsp;</td><td class="memItemRight" valign="bottom"><b>axutil_url_set_path</b> (axutil_url_t *url, const <a class="el" href="structaxutil__env.html">axutil_env_t</a> *env, axis2_char_t *path)</td></tr>

<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="g6b3dda22f4a9894f8eda3171721b9ee1"></a><!-- doxytag: member="axutil_url.h::axutil_url_get_path" ref="g6b3dda22f4a9894f8eda3171721b9ee1" args="(axutil_url_t *url, const axutil_env_t *env)" -->
AXIS2_EXTERN <br>
axis2_char_t *&nbsp;</td><td class="memItemRight" valign="bottom"><b>axutil_url_get_path</b> (axutil_url_t *url, const <a class="el" href="structaxutil__env.html">axutil_env_t</a> *env)</td></tr>

<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="gede18e70d76d9bb3542106eb5f0d9d98"></a><!-- doxytag: member="axutil_url.h::axutil_url_clone" ref="gede18e70d76d9bb3542106eb5f0d9d98" args="(axutil_url_t *url, const axutil_env_t *env)" -->
AXIS2_EXTERN <br>
axutil_url_t *&nbsp;</td><td class="memItemRight" valign="bottom"><b>axutil_url_clone</b> (axutil_url_t *url, const <a class="el" href="structaxutil__env.html">axutil_env_t</a> *env)</td></tr>

<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="ga59362fd1492a43a2403d045122f1641"></a><!-- doxytag: member="axutil_url.h::axutil_url_free" ref="ga59362fd1492a43a2403d045122f1641" args="(axutil_url_t *url, const axutil_env_t *env)" -->
AXIS2_EXTERN void&nbsp;</td><td class="memItemRight" valign="bottom"><b>axutil_url_free</b> (axutil_url_t *url, const <a class="el" href="structaxutil__env.html">axutil_env_t</a> *env)</td></tr>

<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="g5985b2e930a5c92fe5c31ed603887d3d"></a><!-- doxytag: member="axutil_url.h::axutil_url_encode" ref="g5985b2e930a5c92fe5c31ed603887d3d" args="(const axutil_env_t *env, axis2_char_t *dest, axis2_char_t *buff, int len)" -->
AXIS2_EXTERN <br>
axis2_char_t *&nbsp;</td><td class="memItemRight" valign="bottom"><b>axutil_url_encode</b> (const <a class="el" href="structaxutil__env.html">axutil_env_t</a> *env, axis2_char_t *dest, axis2_char_t *buff, int len)</td></tr>

<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="gf7befb7b76d23590bba5057e6a18da35"></a><!-- doxytag: member="axutil_url.h::axutil_url_get_query" ref="gf7befb7b76d23590bba5057e6a18da35" args="(axutil_url_t *url, const axutil_env_t *env)" -->
AXIS2_EXTERN <br>
axis2_char_t *&nbsp;</td><td class="memItemRight" valign="bottom"><b>axutil_url_get_query</b> (axutil_url_t *url, const <a class="el" href="structaxutil__env.html">axutil_env_t</a> *env)</td></tr>

</table>
<hr><a name="_details"></a><h2>Detailed Description</h2>
axis2 URL container implementation 
<p>
<hr size="1"><address style="text-align: right;"><small>Generated on Fri Apr 17 11:49:43 2009 for Axis2/C by&nbsp;
<a href="http://www.doxygen.org/index.html">
<img src="doxygen.png" alt="doxygen" align="middle" border="0"></a> 1.5.3 </small></address>
</body>
</html>


<|start_filename|>src/core/context/svc_grp_ctx.c<|end_filename|>

/*
 * 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.
 */

#include <axis2_svc_grp_ctx.h>
#include <axis2_svc_grp.h>
#include <axis2_const.h>
#include <axutil_hash.h>

struct axis2_svc_grp_ctx
{

    /** base context struct */
    axis2_ctx_t *base;

    /** parent of service group context is a configuration context instance */
    struct axis2_conf_ctx *parent;

    /** service group context ID */
    axis2_char_t *id;

    /** map of service contexts belonging to this service context group */
    axutil_hash_t *svc_ctx_map;

    /** service group associated with this service group context */
    axis2_svc_grp_t *svc_grp;

    /** name of the service group associated with this context */
    axis2_char_t *svc_grp_name;
};

AXIS2_EXTERN axis2_svc_grp_ctx_t *AXIS2_CALL
axis2_svc_grp_ctx_create(
    const axutil_env_t * env,
    axis2_svc_grp_t * svc_grp,
    struct axis2_conf_ctx *conf_ctx)
{
    axis2_svc_grp_ctx_t *svc_grp_ctx = NULL;

    svc_grp_ctx = AXIS2_MALLOC(env->allocator, sizeof(axis2_svc_grp_ctx_t));
    if (!svc_grp_ctx)
    {
        AXIS2_ERROR_SET(env->error, AXIS2_ERROR_NO_MEMORY, AXIS2_FAILURE);
        return NULL;
    }

    svc_grp_ctx->base = NULL;
    svc_grp_ctx->parent = NULL;
    svc_grp_ctx->id = NULL;
    svc_grp_ctx->svc_ctx_map = NULL;
    svc_grp_ctx->svc_grp = NULL;
    svc_grp_ctx->svc_grp_name = NULL;

    svc_grp_ctx->base = axis2_ctx_create(env);
    if (!(svc_grp_ctx->base))
    {
        axis2_svc_grp_ctx_free(svc_grp_ctx, env);
        return NULL;
    }

    if (svc_grp)
    {
        svc_grp_ctx->svc_grp = svc_grp;
        svc_grp_ctx->svc_grp_name =
            (axis2_char_t *) axis2_svc_grp_get_name(svc_grp_ctx->svc_grp, env);
        svc_grp_ctx->id = axutil_strdup(env, svc_grp_ctx->svc_grp_name);
    }

    if (conf_ctx)
    {
        svc_grp_ctx->parent = conf_ctx;
    }

    svc_grp_ctx->svc_ctx_map = axutil_hash_make(env);
    if (!(svc_grp_ctx->svc_ctx_map))
    {
        axis2_svc_grp_ctx_free(svc_grp_ctx, env);
        return NULL;
    }

    axis2_svc_grp_ctx_fill_svc_ctx_map((svc_grp_ctx), env);

    return svc_grp_ctx;
}

AXIS2_EXTERN axis2_ctx_t *AXIS2_CALL
axis2_svc_grp_ctx_get_base(
    const axis2_svc_grp_ctx_t * svc_grp_ctx,
    const axutil_env_t * env)
{
    return svc_grp_ctx->base;
}

AXIS2_EXTERN struct axis2_conf_ctx *AXIS2_CALL
axis2_svc_grp_ctx_get_parent(
    const axis2_svc_grp_ctx_t * svc_grp_ctx,
    const axutil_env_t * env)
{
    return svc_grp_ctx->parent;
}

AXIS2_EXTERN void AXIS2_CALL
axis2_svc_grp_ctx_free(
    struct axis2_svc_grp_ctx *svc_grp_ctx,
    const axutil_env_t * env)
{
    if (svc_grp_ctx->id)
    {
        AXIS2_FREE(env->allocator, svc_grp_ctx->id);
    }

    if (svc_grp_ctx->base)
    {
        axis2_ctx_free(svc_grp_ctx->base, env);
    }

    if (svc_grp_ctx->svc_ctx_map)
    {
        axutil_hash_index_t *hi = NULL;
        void *val = NULL;
        for (hi = axutil_hash_first(svc_grp_ctx->svc_ctx_map, env);
             hi; hi = axutil_hash_next(env, hi))
        {
            axutil_hash_this(hi, NULL, NULL, &val);
            if (val)
            {
                axis2_svc_ctx_t *svc_ctx = NULL;
                svc_ctx = (axis2_svc_ctx_t *) val;
                axis2_svc_ctx_free(svc_ctx, env);
            }
        }

        axutil_hash_free(svc_grp_ctx->svc_ctx_map, env);
        svc_grp_ctx->base = NULL;
    }

    AXIS2_FREE(env->allocator, svc_grp_ctx);

    return;
}

AXIS2_EXTERN axis2_status_t AXIS2_CALL
axis2_svc_grp_ctx_init(
    struct axis2_svc_grp_ctx * svc_grp_ctx,
    const axutil_env_t * env,
    axis2_conf_t * conf)
{
    if (svc_grp_ctx->svc_grp_name)
    {
        svc_grp_ctx->svc_grp =
            axis2_conf_get_svc_grp(conf, env, svc_grp_ctx->svc_grp_name);
    }

    return AXIS2_SUCCESS;
}

AXIS2_EXTERN const axis2_char_t *AXIS2_CALL
axis2_svc_grp_ctx_get_id(
    const axis2_svc_grp_ctx_t * svc_grp_ctx,
    const axutil_env_t * env)
{
    return svc_grp_ctx->id;
}

AXIS2_EXTERN axis2_status_t AXIS2_CALL
axis2_svc_grp_ctx_set_id(
    struct axis2_svc_grp_ctx * svc_grp_ctx,
    const axutil_env_t * env,
    const axis2_char_t * id)
{
    if (svc_grp_ctx->id)
    {
        AXIS2_FREE(env->allocator, svc_grp_ctx->id);
        svc_grp_ctx->id = NULL;
    }

    if (id)
    {
        svc_grp_ctx->id = axutil_strdup(env, id);
    }

    return AXIS2_SUCCESS;
}

AXIS2_EXTERN axis2_svc_ctx_t *AXIS2_CALL
axis2_svc_grp_ctx_get_svc_ctx(
    const axis2_svc_grp_ctx_t * svc_grp_ctx,
    const axutil_env_t * env,
    const axis2_char_t * svc_name)
{
    return (axis2_svc_ctx_t *) axutil_hash_get(svc_grp_ctx->svc_ctx_map,
                                               svc_name, AXIS2_HASH_KEY_STRING);
}

AXIS2_EXTERN axis2_status_t AXIS2_CALL
axis2_svc_grp_ctx_fill_svc_ctx_map(
    struct axis2_svc_grp_ctx * svc_grp_ctx,
    const axutil_env_t * env)
{
    axutil_hash_index_t *hi = NULL;
    void *next_svc = NULL;

    if (svc_grp_ctx->svc_grp)
    {
        axutil_hash_t *service_map =
            axis2_svc_grp_get_all_svcs(svc_grp_ctx->svc_grp, env);
        if (service_map)
        {
            for (hi = axutil_hash_first(service_map, env);
                 hi; hi = axutil_hash_next(env, hi))
            {
                axutil_hash_this(hi, NULL, NULL, &next_svc);
                if (next_svc)
                {
                    axis2_svc_t *svc = NULL;
                    axis2_svc_ctx_t *svc_ctx = NULL;
                    axis2_char_t *svc_name = NULL;
                    svc = (axis2_svc_t *) next_svc;
                    svc_ctx = axis2_svc_ctx_create(env, svc, svc_grp_ctx);
                    svc_name =
                        axutil_qname_get_localpart(axis2_svc_get_qname
                                                   (svc, env), env);
                    if (svc_name)
                        axutil_hash_set(svc_grp_ctx->svc_ctx_map, svc_name,
                                        AXIS2_HASH_KEY_STRING, svc_ctx);
                }
            }
        }
    }
    return AXIS2_SUCCESS;
}

AXIS2_EXTERN axis2_svc_grp_t *AXIS2_CALL
axis2_svc_grp_ctx_get_svc_grp(
    const axis2_svc_grp_ctx_t * svc_grp_ctx,
    const axutil_env_t * env)
{
    return svc_grp_ctx->svc_grp;
}

AXIS2_EXTERN axutil_hash_t *AXIS2_CALL
axis2_svc_grp_ctx_get_svc_ctx_map(
    const axis2_svc_grp_ctx_t * svc_grp_ctx,
    const axutil_env_t * env)
{
    return svc_grp_ctx->svc_ctx_map;
}



<|start_filename|>xdocs/api/html/group__axiom__element.html<|end_filename|>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html><head><meta http-equiv="Content-Type" content="text/html;charset=UTF-8">
<title>Axis2/C: element</title>
<link href="doxygen.css" rel="stylesheet" type="text/css">
<link href="tabs.css" rel="stylesheet" type="text/css">
</head><body>
<!-- Generated by Doxygen 1.5.3 -->
<div class="tabs">
  <ul>
    <li><a href="index.html"><span>Main&nbsp;Page</span></a></li>
    <li><a href="modules.html"><span>Modules</span></a></li>
    <li><a href="annotated.html"><span>Classes</span></a></li>
    <li><a href="files.html"><span>Files</span></a></li>
    <li><a href="dirs.html"><span>Directories</span></a></li>
    <li><a href="pages.html"><span>Related&nbsp;Pages</span></a></li>
    <li><a href="examples.html"><span>Examples</span></a></li>
    <li>
      <form action="search.php" method="get">
        <table cellspacing="0" cellpadding="0" border="0">
          <tr>
            <td><label>&nbsp;<u>S</u>earch&nbsp;for&nbsp;</label></td>
            <td><input type="text" name="query" value="" size="20" accesskey="s"/></td>
          </tr>
        </table>
      </form>
    </li>
  </ul>
</div>
<h1>element<br>
<small>
[<a class="el" href="group__axiom__om.html">AXIOM</a>]</small>
</h1><table border="0" cellpadding="0" cellspacing="0">
<tr><td></td></tr>
<tr><td colspan="2"><br><h2>Functions</h2></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top">AXIS2_EXTERN <br>
axiom_element_t *&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__axiom__element.html#g5f39a92b374c459df18a43bd8946ca0b">axiom_element_create</a> (const <a class="el" href="structaxutil__env.html">axutil_env_t</a> *env, axiom_node_t *parent, const axis2_char_t *localname, axiom_namespace_t *ns, axiom_node_t **node)</td></tr>

<tr><td class="memItemLeft" nowrap align="right" valign="top">AXIS2_EXTERN <br>
axiom_element_t *&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__axiom__element.html#g28d9a5d1d04720c5a152284f106a506c">axiom_element_create_with_qname</a> (const <a class="el" href="structaxutil__env.html">axutil_env_t</a> *env, axiom_node_t *parent, const axutil_qname_t *qname, axiom_node_t **node)</td></tr>

<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="g65e5b5895356ac73e806618ff314983a"></a><!-- doxytag: member="axiom_element::axiom_element_find_namespace" ref="g65e5b5895356ac73e806618ff314983a" args="(axiom_element_t *om_element, const axutil_env_t *env, axiom_node_t *node, const axis2_char_t *uri, const axis2_char_t *prefix)" -->
AXIS2_EXTERN <br>
axiom_namespace_t *&nbsp;</td><td class="memItemRight" valign="bottom"><b>axiom_element_find_namespace</b> (axiom_element_t *om_element, const <a class="el" href="structaxutil__env.html">axutil_env_t</a> *env, axiom_node_t *node, const axis2_char_t *uri, const axis2_char_t *prefix)</td></tr>

<tr><td class="memItemLeft" nowrap align="right" valign="top">AXIS2_EXTERN <br>
axis2_status_t&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__axiom__element.html#gb45f118ce5531c486879b1bf7c1f1cff">axiom_element_declare_namespace</a> (axiom_element_t *om_element, const <a class="el" href="structaxutil__env.html">axutil_env_t</a> *env, axiom_node_t *node, axiom_namespace_t *ns)</td></tr>

<tr><td class="memItemLeft" nowrap align="right" valign="top">AXIS2_EXTERN <br>
axis2_status_t&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__axiom__element.html#g5ee04cdb4b674180c16c1068ae474e05">axiom_element_declare_namespace_assume_param_ownership</a> (axiom_element_t *om_element, const <a class="el" href="structaxutil__env.html">axutil_env_t</a> *env, axiom_namespace_t *ns)</td></tr>

<tr><td class="memItemLeft" nowrap align="right" valign="top">AXIS2_EXTERN <br>
axiom_namespace_t *&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__axiom__element.html#gc363654f71f94ab91d12842cbbcc0ead">axiom_element_find_namespace_with_qname</a> (axiom_element_t *om_element, const <a class="el" href="structaxutil__env.html">axutil_env_t</a> *env, axiom_node_t *node, axutil_qname_t *qname)</td></tr>

<tr><td class="memItemLeft" nowrap align="right" valign="top">AXIS2_EXTERN <br>
axis2_status_t&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__axiom__element.html#g85f27529264c69b4678b5e10cf1417c8">axiom_element_add_attribute</a> (axiom_element_t *om_element, const <a class="el" href="structaxutil__env.html">axutil_env_t</a> *env, axiom_attribute_t *attribute, axiom_node_t *node)</td></tr>

<tr><td class="memItemLeft" nowrap align="right" valign="top">AXIS2_EXTERN <br>
axiom_attribute_t *&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__axiom__element.html#g3576a6b54cbe7d1b5f0967fc91e17424">axiom_element_get_attribute</a> (axiom_element_t *om_element, const <a class="el" href="structaxutil__env.html">axutil_env_t</a> *env, axutil_qname_t *qname)</td></tr>

<tr><td class="memItemLeft" nowrap align="right" valign="top">AXIS2_EXTERN <br>
axis2_char_t *&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__axiom__element.html#g430ca6654bedc354b143b4c424691a2a">axiom_element_get_attribute_value</a> (axiom_element_t *om_element, const <a class="el" href="structaxutil__env.html">axutil_env_t</a> *env, axutil_qname_t *qname)</td></tr>

<tr><td class="memItemLeft" nowrap align="right" valign="top">AXIS2_EXTERN void&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__axiom__element.html#ga93dfaff8cd3e00e6f691089a5700d90">axiom_element_free</a> (axiom_element_t *element, const <a class="el" href="structaxutil__env.html">axutil_env_t</a> *env)</td></tr>

<tr><td class="memItemLeft" nowrap align="right" valign="top">AXIS2_EXTERN <br>
axis2_status_t&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__axiom__element.html#g8e6697b5ebbad4a3ebccd3d2904e77a2">axiom_element_serialize_start_part</a> (axiom_element_t *om_element, const <a class="el" href="structaxutil__env.html">axutil_env_t</a> *env, <a class="el" href="group__axiom__output.html#gfe1ea804d7a8179e85371f065cd9df09">axiom_output_t</a> *om_output, axiom_node_t *ele_node)</td></tr>

<tr><td class="memItemLeft" nowrap align="right" valign="top">AXIS2_EXTERN <br>
axis2_status_t&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__axiom__element.html#ge12cd52e93534b7f123bc97a828eb967">axiom_element_serialize_end_part</a> (axiom_element_t *om_element, const <a class="el" href="structaxutil__env.html">axutil_env_t</a> *env, <a class="el" href="group__axiom__output.html#gfe1ea804d7a8179e85371f065cd9df09">axiom_output_t</a> *om_output)</td></tr>

<tr><td class="memItemLeft" nowrap align="right" valign="top">AXIS2_EXTERN <br>
axiom_namespace_t *&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__axiom__element.html#g593519ca013b852b980cca016479ed4d">axiom_element_find_declared_namespace</a> (axiom_element_t *om_element, const <a class="el" href="structaxutil__env.html">axutil_env_t</a> *env, const axis2_char_t *uri, const axis2_char_t *prefix)</td></tr>

<tr><td class="memItemLeft" nowrap align="right" valign="top">AXIS2_EXTERN <br>
axis2_char_t *&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__axiom__element.html#g93563b0b55fa7a91c90b359be5945ac2">axiom_element_get_localname</a> (axiom_element_t *om_element, const <a class="el" href="structaxutil__env.html">axutil_env_t</a> *env)</td></tr>

<tr><td class="memItemLeft" nowrap align="right" valign="top">AXIS2_EXTERN <br>
axis2_status_t&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__axiom__element.html#ga7b390c6b772f6c529cab878331ec45f">axiom_element_set_localname</a> (axiom_element_t *om_element, const <a class="el" href="structaxutil__env.html">axutil_env_t</a> *env, const axis2_char_t *localname)</td></tr>

<tr><td class="memItemLeft" nowrap align="right" valign="top">AXIS2_EXTERN <br>
axiom_namespace_t *&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__axiom__element.html#g53fce175e2e0f41af39fe374b26fd370">axiom_element_get_namespace</a> (axiom_element_t *om_element, const <a class="el" href="structaxutil__env.html">axutil_env_t</a> *env, axiom_node_t *ele_node)</td></tr>

<tr><td class="memItemLeft" nowrap align="right" valign="top">AXIS2_EXTERN <br>
axis2_status_t&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__axiom__element.html#gfc6727d644dabb556f46a2901f317093">axiom_element_set_namespace</a> (axiom_element_t *om_element, const <a class="el" href="structaxutil__env.html">axutil_env_t</a> *env, axiom_namespace_t *ns, axiom_node_t *node)</td></tr>

<tr><td class="memItemLeft" nowrap align="right" valign="top">AXIS2_EXTERN <br>
axis2_status_t&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__axiom__element.html#g5d69b8b24799663e5dc0252877b11145">axiom_element_set_namespace_assume_param_ownership</a> (axiom_element_t *om_element, const <a class="el" href="structaxutil__env.html">axutil_env_t</a> *env, axiom_namespace_t *ns)</td></tr>

<tr><td class="memItemLeft" nowrap align="right" valign="top">AXIS2_EXTERN <br>
<a class="el" href="group__axutil__hash.html#gb2d7d14db2de92a101573f44421ac12a">axutil_hash_t</a> *&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__axiom__element.html#g723f2020e8872c13fd7f7a0cf58ccf0b">axiom_element_get_all_attributes</a> (axiom_element_t *om_element, const <a class="el" href="structaxutil__env.html">axutil_env_t</a> *env)</td></tr>

<tr><td class="memItemLeft" nowrap align="right" valign="top">AXIS2_EXTERN <br>
<a class="el" href="group__axutil__hash.html#gb2d7d14db2de92a101573f44421ac12a">axutil_hash_t</a> *&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__axiom__element.html#g84e26919d5e3473cbe1ef5294c0dd9e1">axiom_element_get_namespaces</a> (axiom_element_t *om_element, const <a class="el" href="structaxutil__env.html">axutil_env_t</a> *env)</td></tr>

<tr><td class="memItemLeft" nowrap align="right" valign="top">AXIS2_EXTERN <br>
axutil_qname_t *&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__axiom__element.html#g7624c9f5fdebd0d20baba3909d147262">axiom_element_get_qname</a> (axiom_element_t *om_element, const <a class="el" href="structaxutil__env.html">axutil_env_t</a> *env, axiom_node_t *ele_node)</td></tr>

<tr><td class="memItemLeft" nowrap align="right" valign="top">AXIS2_EXTERN <br>
axiom_children_iterator_t *&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__axiom__element.html#g17f61bf6ca1ba4f7280a62381533ffb9">axiom_element_get_children</a> (axiom_element_t *om_element, const <a class="el" href="structaxutil__env.html">axutil_env_t</a> *env, axiom_node_t *element_node)</td></tr>

<tr><td class="memItemLeft" nowrap align="right" valign="top">AXIS2_EXTERN <br>
axiom_children_qname_iterator_t *&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__axiom__element.html#gd10f3b1eafe5c095f90c9086da45b657">axiom_element_get_children_with_qname</a> (axiom_element_t *om_element, const <a class="el" href="structaxutil__env.html">axutil_env_t</a> *env, axutil_qname_t *element_qname, axiom_node_t *element_node)</td></tr>

<tr><td class="memItemLeft" nowrap align="right" valign="top">AXIS2_EXTERN <br>
axiom_element_t *&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__axiom__element.html#gd3f2d1134ad645414483e3f84add0ab6">axiom_element_get_first_child_with_qname</a> (axiom_element_t *om_element, const <a class="el" href="structaxutil__env.html">axutil_env_t</a> *env, axutil_qname_t *element_qname, axiom_node_t *element_node, axiom_node_t **child_node)</td></tr>

<tr><td class="memItemLeft" nowrap align="right" valign="top">AXIS2_EXTERN <br>
axis2_status_t&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__axiom__element.html#g357eef9527ea48d774a7531b43c5e188">axiom_element_remove_attribute</a> (axiom_element_t *om_element, const <a class="el" href="structaxutil__env.html">axutil_env_t</a> *env, axiom_attribute_t *om_attribute)</td></tr>

<tr><td class="memItemLeft" nowrap align="right" valign="top">AXIS2_EXTERN <br>
axis2_status_t&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__axiom__element.html#g01aeeeff52453bbee70f8b2dfd224b10">axiom_element_set_text</a> (axiom_element_t *om_element, const <a class="el" href="structaxutil__env.html">axutil_env_t</a> *env, const axis2_char_t *text, axiom_node_t *element_node)</td></tr>

<tr><td class="memItemLeft" nowrap align="right" valign="top">AXIS2_EXTERN <br>
axis2_char_t *&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__axiom__element.html#gd8bad88ee39396639a639f2d6943e631">axiom_element_get_text</a> (axiom_element_t *om_element, const <a class="el" href="structaxutil__env.html">axutil_env_t</a> *env, axiom_node_t *element_node)</td></tr>

<tr><td class="memItemLeft" nowrap align="right" valign="top">AXIS2_EXTERN <br>
axiom_element_t *&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__axiom__element.html#g83dd3135f56980148c1a5c25fbc2e231">axiom_element_get_first_element</a> (axiom_element_t *om_element, const <a class="el" href="structaxutil__env.html">axutil_env_t</a> *env, axiom_node_t *element_node, axiom_node_t **first_element_node)</td></tr>

<tr><td class="memItemLeft" nowrap align="right" valign="top">AXIS2_EXTERN <br>
axis2_char_t *&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__axiom__element.html#g5aadee18159a878019124f7f5ec063f3">axiom_element_to_string</a> (axiom_element_t *om_element, const <a class="el" href="structaxutil__env.html">axutil_env_t</a> *env, axiom_node_t *element_node)</td></tr>

<tr><td class="memItemLeft" nowrap align="right" valign="top">AXIS2_EXTERN <br>
axiom_child_element_iterator_t *&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__axiom__element.html#g199de4cfc7d507edca6d2b11e9a9bd9d">axiom_element_get_child_elements</a> (axiom_element_t *om_element, const <a class="el" href="structaxutil__env.html">axutil_env_t</a> *env, axiom_node_t *element_node)</td></tr>

<tr><td class="memItemLeft" nowrap align="right" valign="top">AXIS2_EXTERN <br>
axis2_status_t&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__axiom__element.html#g83e7bba094816b770c93c78ec9b96d13">axiom_element_build</a> (axiom_element_t *om_element, const <a class="el" href="structaxutil__env.html">axutil_env_t</a> *env, axiom_node_t *element_node)</td></tr>

<tr><td class="memItemLeft" nowrap align="right" valign="top">AXIS2_EXTERN <br>
axiom_namespace_t *&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__axiom__element.html#g8edbc11277ad8a54770466bbffc26158">axiom_element_get_default_namespace</a> (axiom_element_t *om_element, const <a class="el" href="structaxutil__env.html">axutil_env_t</a> *env, axiom_node_t *element_node)</td></tr>

<tr><td class="memItemLeft" nowrap align="right" valign="top">AXIS2_EXTERN <br>
axiom_namespace_t *&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__axiom__element.html#g804e9f7129b76afbea9d19420dfe5a2b">axiom_element_declare_default_namespace</a> (axiom_element_t *om_element, const <a class="el" href="structaxutil__env.html">axutil_env_t</a> *env, axis2_char_t *uri)</td></tr>

<tr><td class="memItemLeft" nowrap align="right" valign="top">AXIS2_EXTERN <br>
axiom_namespace_t *&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__axiom__element.html#gf9f1cddbbc96f961843ff476dd583fae">axiom_element_find_namespace_uri</a> (axiom_element_t *om_element, const <a class="el" href="structaxutil__env.html">axutil_env_t</a> *env, const axis2_char_t *prefix, axiom_node_t *element_node)</td></tr>

<tr><td class="memItemLeft" nowrap align="right" valign="top">AXIS2_EXTERN <br>
axis2_status_t&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__axiom__element.html#g7681fce86bf29f713d1444d9cfacf83d">axiom_element_set_namespace_with_no_find_in_current_scope</a> (axiom_element_t *om_element, const <a class="el" href="structaxutil__env.html">axutil_env_t</a> *env, axiom_namespace_t *om_ns)</td></tr>

<tr><td class="memItemLeft" nowrap align="right" valign="top">AXIS2_EXTERN <br>
<a class="el" href="group__axutil__hash.html#gb2d7d14db2de92a101573f44421ac12a">axutil_hash_t</a> *&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__axiom__element.html#g3bec8c8381b6f16b44077c75e3880f6f">axiom_element_extract_attributes</a> (axiom_element_t *om_element, const <a class="el" href="structaxutil__env.html">axutil_env_t</a> *env, axiom_node_t *ele_node)</td></tr>

<tr><td class="memItemLeft" nowrap align="right" valign="top">AXIS2_EXTERN <br>
axis2_char_t *&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__axiom__element.html#g177a16ba7e740dc06496f0ed2551c4bd">axiom_element_get_attribute_value_by_name</a> (axiom_element_t *om_ele, const <a class="el" href="structaxutil__env.html">axutil_env_t</a> *env, axis2_char_t *attr_name)</td></tr>

<tr><td class="memItemLeft" nowrap align="right" valign="top">AXIS2_EXTERN <br>
axiom_element_t *&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__axiom__element.html#g90e269817d14b24aee50b703c0825552">axiom_element_create_str</a> (const <a class="el" href="structaxutil__env.html">axutil_env_t</a> *env, axiom_node_t *parent, axutil_string_t *localname, axiom_namespace_t *ns, axiom_node_t **node)</td></tr>

<tr><td class="memItemLeft" nowrap align="right" valign="top">AXIS2_EXTERN <br>
axutil_string_t *&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__axiom__element.html#g2cc5e8c0e639efdcab57e1c0276c7223">axiom_element_get_localname_str</a> (axiom_element_t *om_element, const <a class="el" href="structaxutil__env.html">axutil_env_t</a> *env)</td></tr>

<tr><td class="memItemLeft" nowrap align="right" valign="top">AXIS2_EXTERN <br>
axis2_status_t&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__axiom__element.html#ga3b45a51539b2bd11c3b631b90f2b2b6">axiom_element_set_localname_str</a> (axiom_element_t *om_element, const <a class="el" href="structaxutil__env.html">axutil_env_t</a> *env, axutil_string_t *localname)</td></tr>

<tr><td class="memItemLeft" nowrap align="right" valign="top">AXIS2_EXTERN axis2_bool_t&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__axiom__element.html#g26bc8c60cd61379014ea37dcae83dec7">axiom_element_get_is_empty</a> (axiom_element_t *om_element, const <a class="el" href="structaxutil__env.html">axutil_env_t</a> *env)</td></tr>

<tr><td class="memItemLeft" nowrap align="right" valign="top">AXIS2_EXTERN void&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__axiom__element.html#g645cc8a03a1dbdb3d846c0cdb801cc0d">axiom_element_set_is_empty</a> (axiom_element_t *om_element, const <a class="el" href="structaxutil__env.html">axutil_env_t</a> *env, axis2_bool_t is_empty)</td></tr>

<tr><td class="memItemLeft" nowrap align="right" valign="top">AXIS2_EXTERN <br>
<a class="el" href="group__axutil__hash.html#gb2d7d14db2de92a101573f44421ac12a">axutil_hash_t</a> *&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__axiom__element.html#gc8dab634252188bf3c3d28705aed8659">axiom_element_gather_parent_namespaces</a> (axiom_element_t *om_element, const <a class="el" href="structaxutil__env.html">axutil_env_t</a> *env, axiom_node_t *om_node)</td></tr>

<tr><td class="memItemLeft" nowrap align="right" valign="top">AXIS2_EXTERN void&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__axiom__element.html#g4ba9f367967bd316db956b33d3d33608">axiom_element_use_parent_namespace</a> (axiom_element_t *om_element, const <a class="el" href="structaxutil__env.html">axutil_env_t</a> *env, axiom_node_t *om_node, axiom_namespace_t *ns, axiom_element_t *root_element, <a class="el" href="group__axutil__hash.html#gb2d7d14db2de92a101573f44421ac12a">axutil_hash_t</a> *inscope_namespaces)</td></tr>

<tr><td class="memItemLeft" nowrap align="right" valign="top">AXIS2_EXTERN void&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__axiom__element.html#ga81ac198c70919220ad1ec3b61c8de27">axiom_element_redeclare_parent_namespaces</a> (axiom_element_t *om_element, const <a class="el" href="structaxutil__env.html">axutil_env_t</a> *env, axiom_node_t *om_node, axiom_element_t *root_element, <a class="el" href="group__axutil__hash.html#gb2d7d14db2de92a101573f44421ac12a">axutil_hash_t</a> *inscope_namespaces)</td></tr>

</table>
<hr><h2>Function Documentation</h2>
<a class="anchor" name="g85f27529264c69b4678b5e10cf1417c8"></a><!-- doxytag: member="axiom_element.h::axiom_element_add_attribute" ref="g85f27529264c69b4678b5e10cf1417c8" args="(axiom_element_t *om_element, const axutil_env_t *env, axiom_attribute_t *attribute, axiom_node_t *node)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">AXIS2_EXTERN axis2_status_t axiom_element_add_attribute           </td>
          <td>(</td>
          <td class="paramtype">axiom_element_t *&nbsp;</td>
          <td class="paramname"> <em>om_element</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const <a class="el" href="structaxutil__env.html">axutil_env_t</a> *&nbsp;</td>
          <td class="paramname"> <em>env</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">axiom_attribute_t *&nbsp;</td>
          <td class="paramname"> <em>attribute</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">axiom_node_t *&nbsp;</td>
          <td class="paramname"> <em>node</em></td><td>&nbsp;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td><td width="100%"></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
Adds an attribute to current element The current element takes responsibility of the assigned attribute <dl compact><dt><b>Parameters:</b></dt><dd>
  <table border="0" cellspacing="2" cellpadding="0">
    <tr><td valign="top"></td><td valign="top"><em>om_element</em>&nbsp;</td><td>element to which the attribute is to be added.cannot be NULL. </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>env</em>&nbsp;</td><td>Environment. MUST NOT be NULL. </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>attribute</em>&nbsp;</td><td>attribute to be added. </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>node</em>&nbsp;</td><td>axiom_node_t node that om_element is contained in </td></tr>
  </table>
</dl>
<dl class="return" compact><dt><b>Returns:</b></dt><dd>satus of the op. AXIS2_SUCCESS on success else AXIS2_FAILURE. </dd></dl>

</div>
</div><p>
<a class="anchor" name="g83e7bba094816b770c93c78ec9b96d13"></a><!-- doxytag: member="axiom_element.h::axiom_element_build" ref="g83e7bba094816b770c93c78ec9b96d13" args="(axiom_element_t *om_element, const axutil_env_t *env, axiom_node_t *element_node)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">AXIS2_EXTERN axis2_status_t axiom_element_build           </td>
          <td>(</td>
          <td class="paramtype">axiom_element_t *&nbsp;</td>
          <td class="paramname"> <em>om_element</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const <a class="el" href="structaxutil__env.html">axutil_env_t</a> *&nbsp;</td>
          <td class="paramname"> <em>env</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">axiom_node_t *&nbsp;</td>
          <td class="paramname"> <em>element_node</em></td><td>&nbsp;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td><td width="100%"></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
builds this om_element_node completely, This is only possible if the om_stax_builder is associated with the om_element_node, <dl compact><dt><b>Parameters:</b></dt><dd>
  <table border="0" cellspacing="2" cellpadding="0">
    <tr><td valign="top"></td><td valign="top"><em>om_element</em>&nbsp;</td><td>pointer to om_element </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>env</em>&nbsp;</td><td>environment MUST not be NULL </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>om_node</em>&nbsp;</td><td>pointer to this element node </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>element_node</em>&nbsp;</td><td>corresponding om element node of this om element struct </td></tr>
  </table>
</dl>
<dl class="return" compact><dt><b>Returns:</b></dt><dd>AXIS2_SUCCESS if this element node was successfully completed, otherwise returns AXIS2_FAILURE </dd></dl>

</div>
</div><p>
<a class="anchor" name="g5f39a92b374c459df18a43bd8946ca0b"></a><!-- doxytag: member="axiom_element.h::axiom_element_create" ref="g5f39a92b374c459df18a43bd8946ca0b" args="(const axutil_env_t *env, axiom_node_t *parent, const axis2_char_t *localname, axiom_namespace_t *ns, axiom_node_t **node)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">AXIS2_EXTERN axiom_element_t* axiom_element_create           </td>
          <td>(</td>
          <td class="paramtype">const <a class="el" href="structaxutil__env.html">axutil_env_t</a> *&nbsp;</td>
          <td class="paramname"> <em>env</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">axiom_node_t *&nbsp;</td>
          <td class="paramname"> <em>parent</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const axis2_char_t *&nbsp;</td>
          <td class="paramname"> <em>localname</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">axiom_namespace_t *&nbsp;</td>
          <td class="paramname"> <em>ns</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">axiom_node_t **&nbsp;</td>
          <td class="paramname"> <em>node</em></td><td>&nbsp;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td><td width="100%"></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
Creates an AXIOM element with given local name <dl compact><dt><b>Parameters:</b></dt><dd>
  <table border="0" cellspacing="2" cellpadding="0">
    <tr><td valign="top"></td><td valign="top"><em>env</em>&nbsp;</td><td>Environment. MUST NOT be NULL. </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>parent</em>&nbsp;</td><td>parent of the element node to be created. can be NULL. </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>localname</em>&nbsp;</td><td>local name of the elment. cannot be NULL. </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>ns</em>&nbsp;</td><td>namespace of the element. can be NULL. If the value of the namespace has not already been declared then the namespace structure ns will be declared and will be freed when the tree is freed. If the value of the namespace has already been declared using another namespace structure then the namespace structure ns will be freed. </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>node</em>&nbsp;</td><td>This is an out parameter. cannot be NULL. Returns the node corresponding to the comment created. Node type will be set to AXIOM_ELEMENT </td></tr>
  </table>
</dl>
<dl class="return" compact><dt><b>Returns:</b></dt><dd>a pointer to the newly created element struct </dd></dl>

</div>
</div><p>
<a class="anchor" name="g90e269817d14b24aee50b703c0825552"></a><!-- doxytag: member="axiom_element.h::axiom_element_create_str" ref="g90e269817d14b24aee50b703c0825552" args="(const axutil_env_t *env, axiom_node_t *parent, axutil_string_t *localname, axiom_namespace_t *ns, axiom_node_t **node)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">AXIS2_EXTERN axiom_element_t* axiom_element_create_str           </td>
          <td>(</td>
          <td class="paramtype">const <a class="el" href="structaxutil__env.html">axutil_env_t</a> *&nbsp;</td>
          <td class="paramname"> <em>env</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">axiom_node_t *&nbsp;</td>
          <td class="paramname"> <em>parent</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">axutil_string_t *&nbsp;</td>
          <td class="paramname"> <em>localname</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">axiom_namespace_t *&nbsp;</td>
          <td class="paramname"> <em>ns</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">axiom_node_t **&nbsp;</td>
          <td class="paramname"> <em>node</em></td><td>&nbsp;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td><td width="100%"></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
Create an OM Element and an OM node from given string params <dl compact><dt><b>Parameters:</b></dt><dd>
  <table border="0" cellspacing="2" cellpadding="0">
    <tr><td valign="top"></td><td valign="top"><em>env</em>&nbsp;</td><td>environment MUST not be NULL </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>parent</em>&nbsp;</td><td>pointer to this parent element node </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>localname</em>&nbsp;</td><td>the locanmae of the element </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>ns</em>&nbsp;</td><td>the namespace of the element </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>node</em>&nbsp;</td><td>the reference ot the created node </td></tr>
  </table>
</dl>
<dl class="return" compact><dt><b>Returns:</b></dt><dd></dd></dl>

</div>
</div><p>
<a class="anchor" name="g28d9a5d1d04720c5a152284f106a506c"></a><!-- doxytag: member="axiom_element.h::axiom_element_create_with_qname" ref="g28d9a5d1d04720c5a152284f106a506c" args="(const axutil_env_t *env, axiom_node_t *parent, const axutil_qname_t *qname, axiom_node_t **node)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">AXIS2_EXTERN axiom_element_t* axiom_element_create_with_qname           </td>
          <td>(</td>
          <td class="paramtype">const <a class="el" href="structaxutil__env.html">axutil_env_t</a> *&nbsp;</td>
          <td class="paramname"> <em>env</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">axiom_node_t *&nbsp;</td>
          <td class="paramname"> <em>parent</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const axutil_qname_t *&nbsp;</td>
          <td class="paramname"> <em>qname</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">axiom_node_t **&nbsp;</td>
          <td class="paramname"> <em>node</em></td><td>&nbsp;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td><td width="100%"></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
Creates an AXIOM element with given qname <dl compact><dt><b>Parameters:</b></dt><dd>
  <table border="0" cellspacing="2" cellpadding="0">
    <tr><td valign="top"></td><td valign="top"><em>env</em>&nbsp;</td><td>Environment. MUST NOT be NULL. </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>parent</em>&nbsp;</td><td>parent of the element node to be created. can be NULL. </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>qname</em>&nbsp;</td><td>qname of the elment.cannot be NULL. </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>node</em>&nbsp;</td><td>This is an out parameter. cannot be NULL. Returns the node corresponding to the comment created. Node type will be set to AXIOM_ELEMENT </td></tr>
  </table>
</dl>
<dl class="return" compact><dt><b>Returns:</b></dt><dd>a pointer to the newly created element struct </dd></dl>

</div>
</div><p>
<a class="anchor" name="g804e9f7129b76afbea9d19420dfe5a2b"></a><!-- doxytag: member="axiom_element.h::axiom_element_declare_default_namespace" ref="g804e9f7129b76afbea9d19420dfe5a2b" args="(axiom_element_t *om_element, const axutil_env_t *env, axis2_char_t *uri)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">AXIS2_EXTERN axiom_namespace_t* axiom_element_declare_default_namespace           </td>
          <td>(</td>
          <td class="paramtype">axiom_element_t *&nbsp;</td>
          <td class="paramname"> <em>om_element</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const <a class="el" href="structaxutil__env.html">axutil_env_t</a> *&nbsp;</td>
          <td class="paramname"> <em>env</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">axis2_char_t *&nbsp;</td>
          <td class="paramname"> <em>uri</em></td><td>&nbsp;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td><td width="100%"></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
declared a default namespace explicitly <dl compact><dt><b>Parameters:</b></dt><dd>
  <table border="0" cellspacing="2" cellpadding="0">
    <tr><td valign="top"></td><td valign="top"><em>om_element</em>&nbsp;</td><td>pointer to om element </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>env</em>&nbsp;</td><td>environment MUST not be NULL </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>uri</em>&nbsp;</td><td>namespace uri of the default namespace </td></tr>
  </table>
</dl>
<dl class="return" compact><dt><b>Returns:</b></dt><dd>the declared namespace </dd></dl>

</div>
</div><p>
<a class="anchor" name="gb45f118ce5531c486879b1bf7c1f1cff"></a><!-- doxytag: member="axiom_element.h::axiom_element_declare_namespace" ref="gb45f118ce5531c486879b1bf7c1f1cff" args="(axiom_element_t *om_element, const axutil_env_t *env, axiom_node_t *node, axiom_namespace_t *ns)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">AXIS2_EXTERN axis2_status_t axiom_element_declare_namespace           </td>
          <td>(</td>
          <td class="paramtype">axiom_element_t *&nbsp;</td>
          <td class="paramname"> <em>om_element</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const <a class="el" href="structaxutil__env.html">axutil_env_t</a> *&nbsp;</td>
          <td class="paramname"> <em>env</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">axiom_node_t *&nbsp;</td>
          <td class="paramname"> <em>node</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">axiom_namespace_t *&nbsp;</td>
          <td class="paramname"> <em>ns</em></td><td>&nbsp;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td><td width="100%"></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
Declare a namespace in current element (in the scope of this element ). It checks to see if it is already declared. <dl compact><dt><b>Parameters:</b></dt><dd>
  <table border="0" cellspacing="2" cellpadding="0">
    <tr><td valign="top"></td><td valign="top"><em>om_element</em>&nbsp;</td><td>contained in the om node struct </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>env</em>&nbsp;</td><td>Environment. MUST NOT be NULL. </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>node</em>&nbsp;</td><td>node containing an instance of an AXIOM element. </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>ns</em>&nbsp;</td><td>pointer to the namespace struct to be declared </td></tr>
  </table>
</dl>
<dl class="return" compact><dt><b>Returns:</b></dt><dd>satus of the op. AXIS2_SUCCESS on success else AXIS2_FAILURE. </dd></dl>

</div>
</div><p>
<a class="anchor" name="g5ee04cdb4b674180c16c1068ae474e05"></a><!-- doxytag: member="axiom_element.h::axiom_element_declare_namespace_assume_param_ownership" ref="g5ee04cdb4b674180c16c1068ae474e05" args="(axiom_element_t *om_element, const axutil_env_t *env, axiom_namespace_t *ns)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">AXIS2_EXTERN axis2_status_t axiom_element_declare_namespace_assume_param_ownership           </td>
          <td>(</td>
          <td class="paramtype">axiom_element_t *&nbsp;</td>
          <td class="paramname"> <em>om_element</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const <a class="el" href="structaxutil__env.html">axutil_env_t</a> *&nbsp;</td>
          <td class="paramname"> <em>env</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">axiom_namespace_t *&nbsp;</td>
          <td class="paramname"> <em>ns</em></td><td>&nbsp;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td><td width="100%"></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
<dl compact><dt><b>Parameters:</b></dt><dd>
  <table border="0" cellspacing="2" cellpadding="0">
    <tr><td valign="top"></td><td valign="top"><em>om_element</em>&nbsp;</td><td>pointer to om_element </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>env</em>&nbsp;</td><td>environment MUST not be NULL </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>om_node</em>&nbsp;</td><td>pointer to this element node </td></tr>
  </table>
</dl>
<dl class="return" compact><dt><b>Returns:</b></dt><dd>satus of the op. AXIS2_SUCCESS on success else AXIS2_FAILURE. </dd></dl>

</div>
</div><p>
<a class="anchor" name="g3bec8c8381b6f16b44077c75e3880f6f"></a><!-- doxytag: member="axiom_element.h::axiom_element_extract_attributes" ref="g3bec8c8381b6f16b44077c75e3880f6f" args="(axiom_element_t *om_element, const axutil_env_t *env, axiom_node_t *ele_node)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">AXIS2_EXTERN <a class="el" href="group__axutil__hash.html#gb2d7d14db2de92a101573f44421ac12a">axutil_hash_t</a>* axiom_element_extract_attributes           </td>
          <td>(</td>
          <td class="paramtype">axiom_element_t *&nbsp;</td>
          <td class="paramname"> <em>om_element</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const <a class="el" href="structaxutil__env.html">axutil_env_t</a> *&nbsp;</td>
          <td class="paramname"> <em>env</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">axiom_node_t *&nbsp;</td>
          <td class="paramname"> <em>ele_node</em></td><td>&nbsp;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td><td width="100%"></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
Extract attributes , returns a clones hash table of attributes, if attributes are associated with a namespace it is also cloned <dl compact><dt><b>Parameters:</b></dt><dd>
  <table border="0" cellspacing="2" cellpadding="0">
    <tr><td valign="top"></td><td valign="top"><em>om_element</em>&nbsp;</td><td>pointer to om_element </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>env</em>&nbsp;</td><td>environment MUST not be NULL </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>om_node</em>&nbsp;</td><td>pointer to this element node </td></tr>
  </table>
</dl>

</div>
</div><p>
<a class="anchor" name="g593519ca013b852b980cca016479ed4d"></a><!-- doxytag: member="axiom_element.h::axiom_element_find_declared_namespace" ref="g593519ca013b852b980cca016479ed4d" args="(axiom_element_t *om_element, const axutil_env_t *env, const axis2_char_t *uri, const axis2_char_t *prefix)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">AXIS2_EXTERN axiom_namespace_t* axiom_element_find_declared_namespace           </td>
          <td>(</td>
          <td class="paramtype">axiom_element_t *&nbsp;</td>
          <td class="paramname"> <em>om_element</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const <a class="el" href="structaxutil__env.html">axutil_env_t</a> *&nbsp;</td>
          <td class="paramname"> <em>env</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const axis2_char_t *&nbsp;</td>
          <td class="paramname"> <em>uri</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const axis2_char_t *&nbsp;</td>
          <td class="paramname"> <em>prefix</em></td><td>&nbsp;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td><td width="100%"></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
finds a namespace in current element's scope, by uri or prefix or both <dl compact><dt><b>Parameters:</b></dt><dd>
  <table border="0" cellspacing="2" cellpadding="0">
    <tr><td valign="top"></td><td valign="top"><em>om_element</em>&nbsp;</td><td>pointer to om_element </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>env</em>&nbsp;</td><td>environment MUST not be NULL </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>uri</em>&nbsp;</td><td>namespace uri, may be null </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>prefix</em>&nbsp;</td><td>prefix </td></tr>
  </table>
</dl>
<dl class="return" compact><dt><b>Returns:</b></dt><dd>axiom_namespace_t if found, else return NULL </dd></dl>

</div>
</div><p>
<a class="anchor" name="gf9f1cddbbc96f961843ff476dd583fae"></a><!-- doxytag: member="axiom_element.h::axiom_element_find_namespace_uri" ref="gf9f1cddbbc96f961843ff476dd583fae" args="(axiom_element_t *om_element, const axutil_env_t *env, const axis2_char_t *prefix, axiom_node_t *element_node)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">AXIS2_EXTERN axiom_namespace_t* axiom_element_find_namespace_uri           </td>
          <td>(</td>
          <td class="paramtype">axiom_element_t *&nbsp;</td>
          <td class="paramname"> <em>om_element</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const <a class="el" href="structaxutil__env.html">axutil_env_t</a> *&nbsp;</td>
          <td class="paramname"> <em>env</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const axis2_char_t *&nbsp;</td>
          <td class="paramname"> <em>prefix</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">axiom_node_t *&nbsp;</td>
          <td class="paramname"> <em>element_node</em></td><td>&nbsp;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td><td width="100%"></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
checks for the namespace in the context of this element with the given prefix <dl compact><dt><b>Parameters:</b></dt><dd>
  <table border="0" cellspacing="2" cellpadding="0">
    <tr><td valign="top"></td><td valign="top"><em>om_element</em>&nbsp;</td><td>pointer to om_element </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>env</em>&nbsp;</td><td>environment MUST not be NULL </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>om_element_node</em>&nbsp;</td><td>pointer to this element node </td></tr>
  </table>
</dl>
<dl class="return" compact><dt><b>Returns:</b></dt><dd>pointer to relevent namespace </dd></dl>

</div>
</div><p>
<a class="anchor" name="gc363654f71f94ab91d12842cbbcc0ead"></a><!-- doxytag: member="axiom_element.h::axiom_element_find_namespace_with_qname" ref="gc363654f71f94ab91d12842cbbcc0ead" args="(axiom_element_t *om_element, const axutil_env_t *env, axiom_node_t *node, axutil_qname_t *qname)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">AXIS2_EXTERN axiom_namespace_t* axiom_element_find_namespace_with_qname           </td>
          <td>(</td>
          <td class="paramtype">axiom_element_t *&nbsp;</td>
          <td class="paramname"> <em>om_element</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const <a class="el" href="structaxutil__env.html">axutil_env_t</a> *&nbsp;</td>
          <td class="paramname"> <em>env</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">axiom_node_t *&nbsp;</td>
          <td class="paramname"> <em>node</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">axutil_qname_t *&nbsp;</td>
          <td class="paramname"> <em>qname</em></td><td>&nbsp;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td><td width="100%"></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
Finds a namespace using qname Start to find from the given node and go up the hierarchy. <dl compact><dt><b>Parameters:</b></dt><dd>
  <table border="0" cellspacing="2" cellpadding="0">
    <tr><td valign="top"></td><td valign="top"><em>om_element</em>&nbsp;</td><td>om_element contained in node </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>env</em>&nbsp;</td><td>Environment. MUST NOT be NULL. </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>node</em>&nbsp;</td><td>node containing an instance of an AXIOM element, cannot be NULL. </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>qname</em>&nbsp;</td><td>qname of the namespace to be found. cannot be NULL. </td></tr>
  </table>
</dl>
<dl class="return" compact><dt><b>Returns:</b></dt><dd>pointer to the namespace, if found, else NULL. On error, returns NULL and sets the error code in environment's error struct. </dd></dl>

</div>
</div><p>
<a class="anchor" name="ga93dfaff8cd3e00e6f691089a5700d90"></a><!-- doxytag: member="axiom_element.h::axiom_element_free" ref="ga93dfaff8cd3e00e6f691089a5700d90" args="(axiom_element_t *element, const axutil_env_t *env)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">AXIS2_EXTERN void axiom_element_free           </td>
          <td>(</td>
          <td class="paramtype">axiom_element_t *&nbsp;</td>
          <td class="paramname"> <em>element</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const <a class="el" href="structaxutil__env.html">axutil_env_t</a> *&nbsp;</td>
          <td class="paramname"> <em>env</em></td><td>&nbsp;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td><td width="100%"></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
Frees given element <dl compact><dt><b>Parameters:</b></dt><dd>
  <table border="0" cellspacing="2" cellpadding="0">
    <tr><td valign="top"></td><td valign="top"><em>element</em>&nbsp;</td><td>AXIOM element to be freed. </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>env</em>&nbsp;</td><td>Environment. MUST NOT be NULL. </td></tr>
  </table>
</dl>
<dl class="return" compact><dt><b>Returns:</b></dt><dd>satus of the op. AXIS2_SUCCESS on success ,AXIS2_FAILURE on error. </dd></dl>

</div>
</div><p>
<a class="anchor" name="gc8dab634252188bf3c3d28705aed8659"></a><!-- doxytag: member="axiom_element.h::axiom_element_gather_parent_namespaces" ref="gc8dab634252188bf3c3d28705aed8659" args="(axiom_element_t *om_element, const axutil_env_t *env, axiom_node_t *om_node)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">AXIS2_EXTERN <a class="el" href="group__axutil__hash.html#gb2d7d14db2de92a101573f44421ac12a">axutil_hash_t</a>* axiom_element_gather_parent_namespaces           </td>
          <td>(</td>
          <td class="paramtype">axiom_element_t *&nbsp;</td>
          <td class="paramname"> <em>om_element</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const <a class="el" href="structaxutil__env.html">axutil_env_t</a> *&nbsp;</td>
          <td class="paramname"> <em>env</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">axiom_node_t *&nbsp;</td>
          <td class="paramname"> <em>om_node</em></td><td>&nbsp;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td><td width="100%"></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
Collect all the namespaces with distinct prefixes in the parents of the given element. Effectively this is the set of namespaces declared above this element that are inscope at this element and might be used by it or its children. <dl compact><dt><b>Parameters:</b></dt><dd>
  <table border="0" cellspacing="2" cellpadding="0">
    <tr><td valign="top"></td><td valign="top"><em>om_element</em>&nbsp;</td><td>pointer to om_element </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>env</em>&nbsp;</td><td>environment MUST not be NULL </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>om_node</em>&nbsp;</td><td>pointer to this element node </td></tr>
  </table>
</dl>
<dl class="return" compact><dt><b>Returns:</b></dt><dd>pointer to hash of relevent namespaces </dd></dl>

</div>
</div><p>
<a class="anchor" name="g723f2020e8872c13fd7f7a0cf58ccf0b"></a><!-- doxytag: member="axiom_element.h::axiom_element_get_all_attributes" ref="g723f2020e8872c13fd7f7a0cf58ccf0b" args="(axiom_element_t *om_element, const axutil_env_t *env)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">AXIS2_EXTERN <a class="el" href="group__axutil__hash.html#gb2d7d14db2de92a101573f44421ac12a">axutil_hash_t</a>* axiom_element_get_all_attributes           </td>
          <td>(</td>
          <td class="paramtype">axiom_element_t *&nbsp;</td>
          <td class="paramname"> <em>om_element</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const <a class="el" href="structaxutil__env.html">axutil_env_t</a> *&nbsp;</td>
          <td class="paramname"> <em>env</em></td><td>&nbsp;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td><td width="100%"></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
get the attribute list of the element <dl compact><dt><b>Parameters:</b></dt><dd>
  <table border="0" cellspacing="2" cellpadding="0">
    <tr><td valign="top"></td><td valign="top"><em>om_element</em>&nbsp;</td><td>pointer to om_element </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>env</em>&nbsp;</td><td>environment MUST not be NULL </td></tr>
  </table>
</dl>
<dl class="return" compact><dt><b>Returns:</b></dt><dd>axutil_hash poiner to attributes hash This hash table is read only </dd></dl>

</div>
</div><p>
<a class="anchor" name="g3576a6b54cbe7d1b5f0967fc91e17424"></a><!-- doxytag: member="axiom_element.h::axiom_element_get_attribute" ref="g3576a6b54cbe7d1b5f0967fc91e17424" args="(axiom_element_t *om_element, const axutil_env_t *env, axutil_qname_t *qname)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">AXIS2_EXTERN axiom_attribute_t* axiom_element_get_attribute           </td>
          <td>(</td>
          <td class="paramtype">axiom_element_t *&nbsp;</td>
          <td class="paramname"> <em>om_element</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const <a class="el" href="structaxutil__env.html">axutil_env_t</a> *&nbsp;</td>
          <td class="paramname"> <em>env</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">axutil_qname_t *&nbsp;</td>
          <td class="paramname"> <em>qname</em></td><td>&nbsp;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td><td width="100%"></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
Gets (finds) the attribute with the given qname <dl compact><dt><b>Parameters:</b></dt><dd>
  <table border="0" cellspacing="2" cellpadding="0">
    <tr><td valign="top"></td><td valign="top"><em>element</em>&nbsp;</td><td>element whose attribute is to be found. </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>env</em>&nbsp;</td><td>Environment. MUST NOT be NULL.  qname qname of the attribute to be found. should not be NULL. </td></tr>
  </table>
</dl>
<dl class="return" compact><dt><b>Returns:</b></dt><dd>a pointer to the attribute with given qname if found, else NULL. On error, returns NULL and sets the error code in environment's error struct. </dd></dl>

</div>
</div><p>
<a class="anchor" name="g430ca6654bedc354b143b4c424691a2a"></a><!-- doxytag: member="axiom_element.h::axiom_element_get_attribute_value" ref="g430ca6654bedc354b143b4c424691a2a" args="(axiom_element_t *om_element, const axutil_env_t *env, axutil_qname_t *qname)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">AXIS2_EXTERN axis2_char_t* axiom_element_get_attribute_value           </td>
          <td>(</td>
          <td class="paramtype">axiom_element_t *&nbsp;</td>
          <td class="paramname"> <em>om_element</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const <a class="el" href="structaxutil__env.html">axutil_env_t</a> *&nbsp;</td>
          <td class="paramname"> <em>env</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">axutil_qname_t *&nbsp;</td>
          <td class="paramname"> <em>qname</em></td><td>&nbsp;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td><td width="100%"></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
Gets (finds) the attribute value with the given qname <dl compact><dt><b>Parameters:</b></dt><dd>
  <table border="0" cellspacing="2" cellpadding="0">
    <tr><td valign="top"></td><td valign="top"><em>element</em>&nbsp;</td><td>element whose attribute is to be found. </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>env</em>&nbsp;</td><td>Environment. MUST NOT be NULL.  qname qname of the attribute to be found. should not be NULL. </td></tr>
  </table>
</dl>
<dl class="return" compact><dt><b>Returns:</b></dt><dd>the attribute value with given qname if found, else NULL. On error, returns NULL and sets the error code in environment's error struct. </dd></dl>

</div>
</div><p>
<a class="anchor" name="g177a16ba7e740dc06496f0ed2551c4bd"></a><!-- doxytag: member="axiom_element.h::axiom_element_get_attribute_value_by_name" ref="g177a16ba7e740dc06496f0ed2551c4bd" args="(axiom_element_t *om_ele, const axutil_env_t *env, axis2_char_t *attr_name)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">AXIS2_EXTERN axis2_char_t* axiom_element_get_attribute_value_by_name           </td>
          <td>(</td>
          <td class="paramtype">axiom_element_t *&nbsp;</td>
          <td class="paramname"> <em>om_ele</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const <a class="el" href="structaxutil__env.html">axutil_env_t</a> *&nbsp;</td>
          <td class="paramname"> <em>env</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">axis2_char_t *&nbsp;</td>
          <td class="paramname"> <em>attr_name</em></td><td>&nbsp;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td><td width="100%"></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
Returns the attribute value as a string for the given element <dl compact><dt><b>Parameters:</b></dt><dd>
  <table border="0" cellspacing="2" cellpadding="0">
    <tr><td valign="top"></td><td valign="top"><em>om_element</em>&nbsp;</td><td>pointer to om_element </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>env</em>&nbsp;</td><td>environment MUST not be NULL </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>attr_name</em>&nbsp;</td><td>the attribute name</td></tr>
  </table>
</dl>
<dl class="return" compact><dt><b>Returns:</b></dt><dd>the attribute value as a string </dd></dl>

</div>
</div><p>
<a class="anchor" name="g199de4cfc7d507edca6d2b11e9a9bd9d"></a><!-- doxytag: member="axiom_element.h::axiom_element_get_child_elements" ref="g199de4cfc7d507edca6d2b11e9a9bd9d" args="(axiom_element_t *om_element, const axutil_env_t *env, axiom_node_t *element_node)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">AXIS2_EXTERN axiom_child_element_iterator_t* axiom_element_get_child_elements           </td>
          <td>(</td>
          <td class="paramtype">axiom_element_t *&nbsp;</td>
          <td class="paramname"> <em>om_element</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const <a class="el" href="structaxutil__env.html">axutil_env_t</a> *&nbsp;</td>
          <td class="paramname"> <em>env</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">axiom_node_t *&nbsp;</td>
          <td class="paramname"> <em>element_node</em></td><td>&nbsp;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td><td width="100%"></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
returns an iterator with child elements of type AXIOM_ELEMENT iterator is freed when om_element node is freed <dl compact><dt><b>Parameters:</b></dt><dd>
  <table border="0" cellspacing="2" cellpadding="0">
    <tr><td valign="top"></td><td valign="top"><em>om_element</em>&nbsp;</td><td>pointer to om_element </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>env</em>&nbsp;</td><td>environment MUST not be NULL </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>element_node</em>&nbsp;</td><td></td></tr>
  </table>
</dl>
<dl class="return" compact><dt><b>Returns:</b></dt><dd>axiom_child_element_iterator_t , NULL on error </dd></dl>

</div>
</div><p>
<a class="anchor" name="g17f61bf6ca1ba4f7280a62381533ffb9"></a><!-- doxytag: member="axiom_element.h::axiom_element_get_children" ref="g17f61bf6ca1ba4f7280a62381533ffb9" args="(axiom_element_t *om_element, const axutil_env_t *env, axiom_node_t *element_node)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">AXIS2_EXTERN axiom_children_iterator_t* axiom_element_get_children           </td>
          <td>(</td>
          <td class="paramtype">axiom_element_t *&nbsp;</td>
          <td class="paramname"> <em>om_element</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const <a class="el" href="structaxutil__env.html">axutil_env_t</a> *&nbsp;</td>
          <td class="paramname"> <em>env</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">axiom_node_t *&nbsp;</td>
          <td class="paramname"> <em>element_node</em></td><td>&nbsp;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td><td width="100%"></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
returns a list of children iterator returned iterator is freed when om_element struct is freed iterators reset function must be called by user <dl compact><dt><b>Parameters:</b></dt><dd>
  <table border="0" cellspacing="2" cellpadding="0">
    <tr><td valign="top"></td><td valign="top"><em>om_element</em>&nbsp;</td><td>pointer to om_element </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>env</em>&nbsp;</td><td>environment MUST not be NULL </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>element_node</em>&nbsp;</td><td>pointer to this element node </td></tr>
  </table>
</dl>

</div>
</div><p>
<a class="anchor" name="gd10f3b1eafe5c095f90c9086da45b657"></a><!-- doxytag: member="axiom_element.h::axiom_element_get_children_with_qname" ref="gd10f3b1eafe5c095f90c9086da45b657" args="(axiom_element_t *om_element, const axutil_env_t *env, axutil_qname_t *element_qname, axiom_node_t *element_node)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">AXIS2_EXTERN axiom_children_qname_iterator_t* axiom_element_get_children_with_qname           </td>
          <td>(</td>
          <td class="paramtype">axiom_element_t *&nbsp;</td>
          <td class="paramname"> <em>om_element</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const <a class="el" href="structaxutil__env.html">axutil_env_t</a> *&nbsp;</td>
          <td class="paramname"> <em>env</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">axutil_qname_t *&nbsp;</td>
          <td class="paramname"> <em>element_qname</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">axiom_node_t *&nbsp;</td>
          <td class="paramname"> <em>element_node</em></td><td>&nbsp;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td><td width="100%"></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
returns a list of children iterator with qname returned iterator is freed when om element struct is freed <dl compact><dt><b>Parameters:</b></dt><dd>
  <table border="0" cellspacing="2" cellpadding="0">
    <tr><td valign="top"></td><td valign="top"><em>om_element</em>&nbsp;</td><td>pointer to om_element </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>env</em>&nbsp;</td><td>environment MUST not be NULL </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>element_node</em>&nbsp;</td><td>pointer to this element node </td></tr>
  </table>
</dl>
<dl class="return" compact><dt><b>Returns:</b></dt><dd>children qname iterator struct </dd></dl>

</div>
</div><p>
<a class="anchor" name="g8edbc11277ad8a54770466bbffc26158"></a><!-- doxytag: member="axiom_element.h::axiom_element_get_default_namespace" ref="g8edbc11277ad8a54770466bbffc26158" args="(axiom_element_t *om_element, const axutil_env_t *env, axiom_node_t *element_node)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">AXIS2_EXTERN axiom_namespace_t* axiom_element_get_default_namespace           </td>
          <td>(</td>
          <td class="paramtype">axiom_element_t *&nbsp;</td>
          <td class="paramname"> <em>om_element</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const <a class="el" href="structaxutil__env.html">axutil_env_t</a> *&nbsp;</td>
          <td class="paramname"> <em>env</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">axiom_node_t *&nbsp;</td>
          <td class="paramname"> <em>element_node</em></td><td>&nbsp;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td><td width="100%"></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
retrieves the default namespace of this element , if available, <dl compact><dt><b>Parameters:</b></dt><dd>
  <table border="0" cellspacing="2" cellpadding="0">
    <tr><td valign="top"></td><td valign="top"><em>om_element</em>&nbsp;</td><td>pointer to om element </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>env</em>&nbsp;</td><td>axutil_environment MUST Not be NULL </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>element_node</em>&nbsp;</td><td>corresponding om element node of this om element </td></tr>
  </table>
</dl>
<dl class="return" compact><dt><b>Returns:</b></dt><dd>pointer to default namespace if availale , NULL otherwise </dd></dl>

</div>
</div><p>
<a class="anchor" name="gd3f2d1134ad645414483e3f84add0ab6"></a><!-- doxytag: member="axiom_element.h::axiom_element_get_first_child_with_qname" ref="gd3f2d1134ad645414483e3f84add0ab6" args="(axiom_element_t *om_element, const axutil_env_t *env, axutil_qname_t *element_qname, axiom_node_t *element_node, axiom_node_t **child_node)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">AXIS2_EXTERN axiom_element_t* axiom_element_get_first_child_with_qname           </td>
          <td>(</td>
          <td class="paramtype">axiom_element_t *&nbsp;</td>
          <td class="paramname"> <em>om_element</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const <a class="el" href="structaxutil__env.html">axutil_env_t</a> *&nbsp;</td>
          <td class="paramname"> <em>env</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">axutil_qname_t *&nbsp;</td>
          <td class="paramname"> <em>element_qname</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">axiom_node_t *&nbsp;</td>
          <td class="paramname"> <em>element_node</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">axiom_node_t **&nbsp;</td>
          <td class="paramname"> <em>child_node</em></td><td>&nbsp;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td><td width="100%"></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
Returns the om_element corresponding to element_qname <dl compact><dt><b>Parameters:</b></dt><dd>
  <table border="0" cellspacing="2" cellpadding="0">
    <tr><td valign="top"></td><td valign="top"><em>om_element</em>&nbsp;</td><td>pointer to om_element </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>env</em>&nbsp;</td><td>environment MUST not be NULL </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>element_qname</em>&nbsp;</td><td>qname of the element </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>om_node</em>&nbsp;</td><td>pointer to this element node </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>element_node</em>&nbsp;</td><td></td></tr>
    <tr><td valign="top"></td><td valign="top"><em>child_node</em>&nbsp;</td><td></td></tr>
  </table>
</dl>
<dl class="return" compact><dt><b>Returns:</b></dt><dd>children qname iterator struct </dd></dl>

</div>
</div><p>
<a class="anchor" name="g83dd3135f56980148c1a5c25fbc2e231"></a><!-- doxytag: member="axiom_element.h::axiom_element_get_first_element" ref="g83dd3135f56980148c1a5c25fbc2e231" args="(axiom_element_t *om_element, const axutil_env_t *env, axiom_node_t *element_node, axiom_node_t **first_element_node)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">AXIS2_EXTERN axiom_element_t* axiom_element_get_first_element           </td>
          <td>(</td>
          <td class="paramtype">axiom_element_t *&nbsp;</td>
          <td class="paramname"> <em>om_element</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const <a class="el" href="structaxutil__env.html">axutil_env_t</a> *&nbsp;</td>
          <td class="paramname"> <em>env</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">axiom_node_t *&nbsp;</td>
          <td class="paramname"> <em>element_node</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">axiom_node_t **&nbsp;</td>
          <td class="paramname"> <em>first_element_node</em></td><td>&nbsp;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td><td width="100%"></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
returns the first child om element of this om element node <dl compact><dt><b>Parameters:</b></dt><dd>
  <table border="0" cellspacing="2" cellpadding="0">
    <tr><td valign="top"></td><td valign="top"><em>om_element</em>&nbsp;</td><td>pointer to om_element </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>env</em>&nbsp;</td><td>environment MUST not be NULL </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>om_node</em>&nbsp;</td><td>pointer to this element node </td></tr>
  </table>
</dl>
<dl class="return" compact><dt><b>Returns:</b></dt><dd>om_element if one is availble otherwise return NULL </dd></dl>

</div>
</div><p>
<a class="anchor" name="g26bc8c60cd61379014ea37dcae83dec7"></a><!-- doxytag: member="axiom_element.h::axiom_element_get_is_empty" ref="g26bc8c60cd61379014ea37dcae83dec7" args="(axiom_element_t *om_element, const axutil_env_t *env)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">AXIS2_EXTERN axis2_bool_t axiom_element_get_is_empty           </td>
          <td>(</td>
          <td class="paramtype">axiom_element_t *&nbsp;</td>
          <td class="paramname"> <em>om_element</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const <a class="el" href="structaxutil__env.html">axutil_env_t</a> *&nbsp;</td>
          <td class="paramname"> <em>env</em></td><td>&nbsp;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td><td width="100%"></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
Return whether the element is empty or not <dl compact><dt><b>Parameters:</b></dt><dd>
  <table border="0" cellspacing="2" cellpadding="0">
    <tr><td valign="top"></td><td valign="top"><em>om_element</em>&nbsp;</td><td>pointer to om_element </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>env</em>&nbsp;</td><td>environment MUST not be NULL</td></tr>
  </table>
</dl>
<dl class="return" compact><dt><b>Returns:</b></dt><dd>AXIS2_TRUE if empty AXIS2_FALSE if not empty </dd></dl>

</div>
</div><p>
<a class="anchor" name="g93563b0b55fa7a91c90b359be5945ac2"></a><!-- doxytag: member="axiom_element.h::axiom_element_get_localname" ref="g93563b0b55fa7a91c90b359be5945ac2" args="(axiom_element_t *om_element, const axutil_env_t *env)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">AXIS2_EXTERN axis2_char_t* axiom_element_get_localname           </td>
          <td>(</td>
          <td class="paramtype">axiom_element_t *&nbsp;</td>
          <td class="paramname"> <em>om_element</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const <a class="el" href="structaxutil__env.html">axutil_env_t</a> *&nbsp;</td>
          <td class="paramname"> <em>env</em></td><td>&nbsp;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td><td width="100%"></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
returns the localname of this element <dl compact><dt><b>Parameters:</b></dt><dd>
  <table border="0" cellspacing="2" cellpadding="0">
    <tr><td valign="top"></td><td valign="top"><em>om_element</em>&nbsp;</td><td>pointer to om_element </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>env</em>&nbsp;</td><td>environment MUST not be NULL </td></tr>
  </table>
</dl>
<dl class="return" compact><dt><b>Returns:</b></dt><dd>localname of element, returns NULL on error. </dd></dl>

</div>
</div><p>
<a class="anchor" name="g2cc5e8c0e639efdcab57e1c0276c7223"></a><!-- doxytag: member="axiom_element.h::axiom_element_get_localname_str" ref="g2cc5e8c0e639efdcab57e1c0276c7223" args="(axiom_element_t *om_element, const axutil_env_t *env)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">AXIS2_EXTERN axutil_string_t* axiom_element_get_localname_str           </td>
          <td>(</td>
          <td class="paramtype">axiom_element_t *&nbsp;</td>
          <td class="paramname"> <em>om_element</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const <a class="el" href="structaxutil__env.html">axutil_env_t</a> *&nbsp;</td>
          <td class="paramname"> <em>env</em></td><td>&nbsp;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td><td width="100%"></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
Returns the Local name of the element <dl compact><dt><b>Parameters:</b></dt><dd>
  <table border="0" cellspacing="2" cellpadding="0">
    <tr><td valign="top"></td><td valign="top"><em>om_element</em>&nbsp;</td><td>pointer to om_element </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>env</em>&nbsp;</td><td>environment MUST not be NULL </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>om_node</em>&nbsp;</td><td>pointer to this element node</td></tr>
  </table>
</dl>
<dl class="return" compact><dt><b>Returns:</b></dt><dd>the Local name of the element </dd></dl>

</div>
</div><p>
<a class="anchor" name="g53fce175e2e0f41af39fe374b26fd370"></a><!-- doxytag: member="axiom_element.h::axiom_element_get_namespace" ref="g53fce175e2e0f41af39fe374b26fd370" args="(axiom_element_t *om_element, const axutil_env_t *env, axiom_node_t *ele_node)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">AXIS2_EXTERN axiom_namespace_t* axiom_element_get_namespace           </td>
          <td>(</td>
          <td class="paramtype">axiom_element_t *&nbsp;</td>
          <td class="paramname"> <em>om_element</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const <a class="el" href="structaxutil__env.html">axutil_env_t</a> *&nbsp;</td>
          <td class="paramname"> <em>env</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">axiom_node_t *&nbsp;</td>
          <td class="paramname"> <em>ele_node</em></td><td>&nbsp;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td><td width="100%"></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
get the namespace of om_element <dl compact><dt><b>Parameters:</b></dt><dd>
  <table border="0" cellspacing="2" cellpadding="0">
    <tr><td valign="top"></td><td valign="top"><em>om_element</em>&nbsp;</td><td>om_element struct </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>env</em>&nbsp;</td><td>environemt, MUST NOT be NULL. </td></tr>
  </table>
</dl>
<dl class="return" compact><dt><b>Returns:</b></dt><dd>pointer to axiom_namespace_t struct NULL if there is no namespace associated with the element, NULL on error with error code set to environment's error </dd></dl>

</div>
</div><p>
<a class="anchor" name="g84e26919d5e3473cbe1ef5294c0dd9e1"></a><!-- doxytag: member="axiom_element.h::axiom_element_get_namespaces" ref="g84e26919d5e3473cbe1ef5294c0dd9e1" args="(axiom_element_t *om_element, const axutil_env_t *env)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">AXIS2_EXTERN <a class="el" href="group__axutil__hash.html#gb2d7d14db2de92a101573f44421ac12a">axutil_hash_t</a>* axiom_element_get_namespaces           </td>
          <td>(</td>
          <td class="paramtype">axiom_element_t *&nbsp;</td>
          <td class="paramname"> <em>om_element</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const <a class="el" href="structaxutil__env.html">axutil_env_t</a> *&nbsp;</td>
          <td class="paramname"> <em>env</em></td><td>&nbsp;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td><td width="100%"></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
get the namespace list of the element <dl compact><dt><b>Parameters:</b></dt><dd>
  <table border="0" cellspacing="2" cellpadding="0">
    <tr><td valign="top"></td><td valign="top"><em>om_element</em>&nbsp;</td><td>pointer to om_element </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>env</em>&nbsp;</td><td>environment MUST not be NULL </td></tr>
  </table>
</dl>
<dl class="return" compact><dt><b>Returns:</b></dt><dd>axutil_hash pointer to namespaces hash this hash table is read only </dd></dl>

</div>
</div><p>
<a class="anchor" name="g7624c9f5fdebd0d20baba3909d147262"></a><!-- doxytag: member="axiom_element.h::axiom_element_get_qname" ref="g7624c9f5fdebd0d20baba3909d147262" args="(axiom_element_t *om_element, const axutil_env_t *env, axiom_node_t *ele_node)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">AXIS2_EXTERN axutil_qname_t* axiom_element_get_qname           </td>
          <td>(</td>
          <td class="paramtype">axiom_element_t *&nbsp;</td>
          <td class="paramname"> <em>om_element</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const <a class="el" href="structaxutil__env.html">axutil_env_t</a> *&nbsp;</td>
          <td class="paramname"> <em>env</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">axiom_node_t *&nbsp;</td>
          <td class="paramname"> <em>ele_node</em></td><td>&nbsp;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td><td width="100%"></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
<dl class="return" compact><dt><b>Returns:</b></dt><dd>qname of this element the returned qname should not be externaly freed when om_element struct is freed qname is also freed </dd></dl>
<dl compact><dt><b>Parameters:</b></dt><dd>
  <table border="0" cellspacing="2" cellpadding="0">
    <tr><td valign="top"></td><td valign="top"><em>om_element</em>&nbsp;</td><td>pointer to om_element </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>env</em>&nbsp;</td><td>environment MUST not be NULL </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>ele_node</em>&nbsp;</td><td>pointer to this element node</td></tr>
  </table>
</dl>
<dl class="return" compact><dt><b>Returns:</b></dt><dd>axutil_qname_t struct , NULL on failure </dd></dl>

</div>
</div><p>
<a class="anchor" name="gd8bad88ee39396639a639f2d6943e631"></a><!-- doxytag: member="axiom_element.h::axiom_element_get_text" ref="gd8bad88ee39396639a639f2d6943e631" args="(axiom_element_t *om_element, const axutil_env_t *env, axiom_node_t *element_node)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">AXIS2_EXTERN axis2_char_t* axiom_element_get_text           </td>
          <td>(</td>
          <td class="paramtype">axiom_element_t *&nbsp;</td>
          <td class="paramname"> <em>om_element</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const <a class="el" href="structaxutil__env.html">axutil_env_t</a> *&nbsp;</td>
          <td class="paramname"> <em>env</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">axiom_node_t *&nbsp;</td>
          <td class="paramname"> <em>element_node</em></td><td>&nbsp;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td><td width="100%"></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
Select all the text children and concat them to a single string. The string returned by this method call will be free by axiom when this method is called again. So it is recomended to have a copy of the return value if this method is going to be called more that once and the return values of the earlier calls are important. <dl compact><dt><b>Parameters:</b></dt><dd>
  <table border="0" cellspacing="2" cellpadding="0">
    <tr><td valign="top"></td><td valign="top"><em>om_element</em>&nbsp;</td><td>pointer to om_element </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>env</em>&nbsp;</td><td>environment MUST not be NULL </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>element</em>&nbsp;</td><td>node , the container node of this om element </td></tr>
  </table>
</dl>
<dl class="return" compact><dt><b>Returns:</b></dt><dd>the contanated text of all text childrens text values return null if no text children is avilable or on error </dd></dl>

</div>
</div><p>
<a class="anchor" name="ga81ac198c70919220ad1ec3b61c8de27"></a><!-- doxytag: member="axiom_element.h::axiom_element_redeclare_parent_namespaces" ref="ga81ac198c70919220ad1ec3b61c8de27" args="(axiom_element_t *om_element, const axutil_env_t *env, axiom_node_t *om_node, axiom_element_t *root_element, axutil_hash_t *inscope_namespaces)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">AXIS2_EXTERN void axiom_element_redeclare_parent_namespaces           </td>
          <td>(</td>
          <td class="paramtype">axiom_element_t *&nbsp;</td>
          <td class="paramname"> <em>om_element</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const <a class="el" href="structaxutil__env.html">axutil_env_t</a> *&nbsp;</td>
          <td class="paramname"> <em>env</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">axiom_node_t *&nbsp;</td>
          <td class="paramname"> <em>om_node</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">axiom_element_t *&nbsp;</td>
          <td class="paramname"> <em>root_element</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype"><a class="el" href="group__axutil__hash.html#gb2d7d14db2de92a101573f44421ac12a">axutil_hash_t</a> *&nbsp;</td>
          <td class="paramname"> <em>inscope_namespaces</em></td><td>&nbsp;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td><td width="100%"></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
Examines the subtree beginning at the provided element For each element or attribute, if it refers to a namespace declared in a parent of the subtree root element, redeclares that namespace at the level of the subtree root and removes it from the set of parent namespaces in scope and not yet declared <dl compact><dt><b>Parameters:</b></dt><dd>
  <table border="0" cellspacing="2" cellpadding="0">
    <tr><td valign="top"></td><td valign="top"><em>om_element</em>&nbsp;</td><td>pointer to om_element </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>env</em>&nbsp;</td><td>environment MUST not be NULL </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>om_node</em>&nbsp;</td><td>pointer to this element node</td></tr>
    <tr><td valign="top"></td><td valign="top"><em>root_element</em>&nbsp;</td><td>pointer to the subtree root element node </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>inscope_namespaces</em>&nbsp;</td><td>pointer to hash of parent namespaces </td></tr>
  </table>
</dl>

</div>
</div><p>
<a class="anchor" name="g357eef9527ea48d774a7531b43c5e188"></a><!-- doxytag: member="axiom_element.h::axiom_element_remove_attribute" ref="g357eef9527ea48d774a7531b43c5e188" args="(axiom_element_t *om_element, const axutil_env_t *env, axiom_attribute_t *om_attribute)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">AXIS2_EXTERN axis2_status_t axiom_element_remove_attribute           </td>
          <td>(</td>
          <td class="paramtype">axiom_element_t *&nbsp;</td>
          <td class="paramname"> <em>om_element</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const <a class="el" href="structaxutil__env.html">axutil_env_t</a> *&nbsp;</td>
          <td class="paramname"> <em>env</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">axiom_attribute_t *&nbsp;</td>
          <td class="paramname"> <em>om_attribute</em></td><td>&nbsp;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td><td width="100%"></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
removes an attribute from the element attribute list user must free this attribute, element free function does not free attributes that are not is it's attribute list <dl compact><dt><b>Parameters:</b></dt><dd>
  <table border="0" cellspacing="2" cellpadding="0">
    <tr><td valign="top"></td><td valign="top"><em>om_element</em>&nbsp;</td><td>pointer to om_element </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>env</em>&nbsp;</td><td>environment MUST not be NULL </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>om_attribute</em>&nbsp;</td><td>attribute to be removed </td></tr>
  </table>
</dl>
<dl class="return" compact><dt><b>Returns:</b></dt><dd>AXIS2_SUCCESS if attribute was found and removed, else AXIS2_FAILURE </dd></dl>

</div>
</div><p>
<a class="anchor" name="ge12cd52e93534b7f123bc97a828eb967"></a><!-- doxytag: member="axiom_element.h::axiom_element_serialize_end_part" ref="ge12cd52e93534b7f123bc97a828eb967" args="(axiom_element_t *om_element, const axutil_env_t *env, axiom_output_t *om_output)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">AXIS2_EXTERN axis2_status_t axiom_element_serialize_end_part           </td>
          <td>(</td>
          <td class="paramtype">axiom_element_t *&nbsp;</td>
          <td class="paramname"> <em>om_element</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const <a class="el" href="structaxutil__env.html">axutil_env_t</a> *&nbsp;</td>
          <td class="paramname"> <em>env</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype"><a class="el" href="group__axiom__output.html#gfe1ea804d7a8179e85371f065cd9df09">axiom_output_t</a> *&nbsp;</td>
          <td class="paramname"> <em>om_output</em></td><td>&nbsp;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td><td width="100%"></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
Serializes the end part of the given element. serialize_start_part must have been called before calling this method. <dl compact><dt><b>Parameters:</b></dt><dd>
  <table border="0" cellspacing="2" cellpadding="0">
    <tr><td valign="top"></td><td valign="top"><em>om_element</em>&nbsp;</td><td>pointer to om_element </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>env</em>&nbsp;</td><td>environment MUST not be NULL </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>om_node</em>&nbsp;</td><td>pointer to this element node </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>om_output</em>&nbsp;</td><td>AXIOM output handler to be used in serializing </td></tr>
  </table>
</dl>
<dl class="return" compact><dt><b>Returns:</b></dt><dd>satus of the op. AXIS2_SUCCESS on success else AXIS2_FAILURE </dd></dl>

</div>
</div><p>
<a class="anchor" name="g8e6697b5ebbad4a3ebccd3d2904e77a2"></a><!-- doxytag: member="axiom_element.h::axiom_element_serialize_start_part" ref="g8e6697b5ebbad4a3ebccd3d2904e77a2" args="(axiom_element_t *om_element, const axutil_env_t *env, axiom_output_t *om_output, axiom_node_t *ele_node)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">AXIS2_EXTERN axis2_status_t axiom_element_serialize_start_part           </td>
          <td>(</td>
          <td class="paramtype">axiom_element_t *&nbsp;</td>
          <td class="paramname"> <em>om_element</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const <a class="el" href="structaxutil__env.html">axutil_env_t</a> *&nbsp;</td>
          <td class="paramname"> <em>env</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype"><a class="el" href="group__axiom__output.html#gfe1ea804d7a8179e85371f065cd9df09">axiom_output_t</a> *&nbsp;</td>
          <td class="paramname"> <em>om_output</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">axiom_node_t *&nbsp;</td>
          <td class="paramname"> <em>ele_node</em></td><td>&nbsp;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td><td width="100%"></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
Serializes the start part of the given element <dl compact><dt><b>Parameters:</b></dt><dd>
  <table border="0" cellspacing="2" cellpadding="0">
    <tr><td valign="top"></td><td valign="top"><em>element</em>&nbsp;</td><td>element to be serialized. </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>env</em>&nbsp;</td><td>Environment. MUST NOT be NULL. </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>om_output</em>&nbsp;</td><td>AXIOM output handler to be used in serializing </td></tr>
  </table>
</dl>
<dl class="return" compact><dt><b>Returns:</b></dt><dd>satus of the op. AXIS2_SUCCESS on success else AXIS2_FAILURE </dd></dl>

</div>
</div><p>
<a class="anchor" name="g645cc8a03a1dbdb3d846c0cdb801cc0d"></a><!-- doxytag: member="axiom_element.h::axiom_element_set_is_empty" ref="g645cc8a03a1dbdb3d846c0cdb801cc0d" args="(axiom_element_t *om_element, const axutil_env_t *env, axis2_bool_t is_empty)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">AXIS2_EXTERN void axiom_element_set_is_empty           </td>
          <td>(</td>
          <td class="paramtype">axiom_element_t *&nbsp;</td>
          <td class="paramname"> <em>om_element</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const <a class="el" href="structaxutil__env.html">axutil_env_t</a> *&nbsp;</td>
          <td class="paramname"> <em>env</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">axis2_bool_t&nbsp;</td>
          <td class="paramname"> <em>is_empty</em></td><td>&nbsp;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td><td width="100%"></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
Set whether the element is empty or not <dl compact><dt><b>Parameters:</b></dt><dd>
  <table border="0" cellspacing="2" cellpadding="0">
    <tr><td valign="top"></td><td valign="top"><em>om_element</em>&nbsp;</td><td>pointer to om_element </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>env</em>&nbsp;</td><td>environment MUST not be NULL </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>is_empty</em>&nbsp;</td><td>AXIS2_TRUE if empty AXIS2_FALSE if not empty</td></tr>
  </table>
</dl>
<dl class="return" compact><dt><b>Returns:</b></dt><dd>VOID </dd></dl>

</div>
</div><p>
<a class="anchor" name="ga7b390c6b772f6c529cab878331ec45f"></a><!-- doxytag: member="axiom_element.h::axiom_element_set_localname" ref="ga7b390c6b772f6c529cab878331ec45f" args="(axiom_element_t *om_element, const axutil_env_t *env, const axis2_char_t *localname)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">AXIS2_EXTERN axis2_status_t axiom_element_set_localname           </td>
          <td>(</td>
          <td class="paramtype">axiom_element_t *&nbsp;</td>
          <td class="paramname"> <em>om_element</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const <a class="el" href="structaxutil__env.html">axutil_env_t</a> *&nbsp;</td>
          <td class="paramname"> <em>env</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const axis2_char_t *&nbsp;</td>
          <td class="paramname"> <em>localname</em></td><td>&nbsp;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td><td width="100%"></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
set the localname of this element <dl compact><dt><b>Parameters:</b></dt><dd>
  <table border="0" cellspacing="2" cellpadding="0">
    <tr><td valign="top"></td><td valign="top"><em>om_element</em>&nbsp;</td><td>pointer to om_element </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>env</em>&nbsp;</td><td>environment MUST not be NULL  text value to be set as localname </td></tr>
  </table>
</dl>
<dl class="return" compact><dt><b>Returns:</b></dt><dd>status code of op, AXIS2_SUCCESS on success, AXIS2_FAILURE on error. </dd></dl>

</div>
</div><p>
<a class="anchor" name="ga3b45a51539b2bd11c3b631b90f2b2b6"></a><!-- doxytag: member="axiom_element.h::axiom_element_set_localname_str" ref="ga3b45a51539b2bd11c3b631b90f2b2b6" args="(axiom_element_t *om_element, const axutil_env_t *env, axutil_string_t *localname)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">AXIS2_EXTERN axis2_status_t axiom_element_set_localname_str           </td>
          <td>(</td>
          <td class="paramtype">axiom_element_t *&nbsp;</td>
          <td class="paramname"> <em>om_element</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const <a class="el" href="structaxutil__env.html">axutil_env_t</a> *&nbsp;</td>
          <td class="paramname"> <em>env</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">axutil_string_t *&nbsp;</td>
          <td class="paramname"> <em>localname</em></td><td>&nbsp;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td><td width="100%"></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
Set the Local name of the element <dl compact><dt><b>Parameters:</b></dt><dd>
  <table border="0" cellspacing="2" cellpadding="0">
    <tr><td valign="top"></td><td valign="top"><em>om_element</em>&nbsp;</td><td>pointer to om_element </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>env</em>&nbsp;</td><td>environment MUST not be NULL </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>localname</em>&nbsp;</td><td>the Local name of the element</td></tr>
  </table>
</dl>
<dl class="return" compact><dt><b>Returns:</b></dt><dd></dd></dl>

</div>
</div><p>
<a class="anchor" name="gfc6727d644dabb556f46a2901f317093"></a><!-- doxytag: member="axiom_element.h::axiom_element_set_namespace" ref="gfc6727d644dabb556f46a2901f317093" args="(axiom_element_t *om_element, const axutil_env_t *env, axiom_namespace_t *ns, axiom_node_t *node)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">AXIS2_EXTERN axis2_status_t axiom_element_set_namespace           </td>
          <td>(</td>
          <td class="paramtype">axiom_element_t *&nbsp;</td>
          <td class="paramname"> <em>om_element</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const <a class="el" href="structaxutil__env.html">axutil_env_t</a> *&nbsp;</td>
          <td class="paramname"> <em>env</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">axiom_namespace_t *&nbsp;</td>
          <td class="paramname"> <em>ns</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">axiom_node_t *&nbsp;</td>
          <td class="paramname"> <em>node</em></td><td>&nbsp;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td><td width="100%"></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
set the namespace of the element <dl compact><dt><b>Parameters:</b></dt><dd>
  <table border="0" cellspacing="2" cellpadding="0">
    <tr><td valign="top"></td><td valign="top"><em>om_element</em>&nbsp;</td><td>pointer to om_element </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>env</em>&nbsp;</td><td>environment MUST not be NULL </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>ns</em>&nbsp;</td><td>pointer to namespace If the value of the namespace has not already been declared then the namespace structure ns will be declared and will be freed when the tree is freed. </td></tr>
  </table>
</dl>
<dl class="return" compact><dt><b>Returns:</b></dt><dd>status code of the op, with error code set to environment's error </dd></dl>

</div>
</div><p>
<a class="anchor" name="g5d69b8b24799663e5dc0252877b11145"></a><!-- doxytag: member="axiom_element.h::axiom_element_set_namespace_assume_param_ownership" ref="g5d69b8b24799663e5dc0252877b11145" args="(axiom_element_t *om_element, const axutil_env_t *env, axiom_namespace_t *ns)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">AXIS2_EXTERN axis2_status_t axiom_element_set_namespace_assume_param_ownership           </td>
          <td>(</td>
          <td class="paramtype">axiom_element_t *&nbsp;</td>
          <td class="paramname"> <em>om_element</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const <a class="el" href="structaxutil__env.html">axutil_env_t</a> *&nbsp;</td>
          <td class="paramname"> <em>env</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">axiom_namespace_t *&nbsp;</td>
          <td class="paramname"> <em>ns</em></td><td>&nbsp;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td><td width="100%"></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
unconditionally set the namespace of the element <dl compact><dt><b>Parameters:</b></dt><dd>
  <table border="0" cellspacing="2" cellpadding="0">
    <tr><td valign="top"></td><td valign="top"><em>om_element</em>&nbsp;</td><td>pointer to om_element </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>env</em>&nbsp;</td><td>environment MUST not be NULL </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>ns</em>&nbsp;</td><td>pointer to namespace The namespace ns is assumed to have been declared already. </td></tr>
  </table>
</dl>
<dl class="return" compact><dt><b>Returns:</b></dt><dd>status code of the op, with error code set to environment's error </dd></dl>

</div>
</div><p>
<a class="anchor" name="g7681fce86bf29f713d1444d9cfacf83d"></a><!-- doxytag: member="axiom_element.h::axiom_element_set_namespace_with_no_find_in_current_scope" ref="g7681fce86bf29f713d1444d9cfacf83d" args="(axiom_element_t *om_element, const axutil_env_t *env, axiom_namespace_t *om_ns)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">AXIS2_EXTERN axis2_status_t axiom_element_set_namespace_with_no_find_in_current_scope           </td>
          <td>(</td>
          <td class="paramtype">axiom_element_t *&nbsp;</td>
          <td class="paramname"> <em>om_element</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const <a class="el" href="structaxutil__env.html">axutil_env_t</a> *&nbsp;</td>
          <td class="paramname"> <em>env</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">axiom_namespace_t *&nbsp;</td>
          <td class="paramname"> <em>om_ns</em></td><td>&nbsp;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td><td width="100%"></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
This will not search the namespace in the scope nor will declare in the current element, as in set_namespace. This will just assign the given namespace to the element. <dl compact><dt><b>Parameters:</b></dt><dd>
  <table border="0" cellspacing="2" cellpadding="0">
    <tr><td valign="top"></td><td valign="top"><em>om_element</em>&nbsp;</td><td>pointer to om_element </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>env</em>&nbsp;</td><td>environment MUST not be NULL </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>om_node</em>&nbsp;</td><td>pointer to this element node </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>om_ns</em>&nbsp;</td><td>pointer to namespace to be set </td></tr>
  </table>
</dl>
<dl class="return" compact><dt><b>Returns:</b></dt><dd></dd></dl>

</div>
</div><p>
<a class="anchor" name="g01aeeeff52453bbee70f8b2dfd224b10"></a><!-- doxytag: member="axiom_element.h::axiom_element_set_text" ref="g01aeeeff52453bbee70f8b2dfd224b10" args="(axiom_element_t *om_element, const axutil_env_t *env, const axis2_char_t *text, axiom_node_t *element_node)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">AXIS2_EXTERN axis2_status_t axiom_element_set_text           </td>
          <td>(</td>
          <td class="paramtype">axiom_element_t *&nbsp;</td>
          <td class="paramname"> <em>om_element</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const <a class="el" href="structaxutil__env.html">axutil_env_t</a> *&nbsp;</td>
          <td class="paramname"> <em>env</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const axis2_char_t *&nbsp;</td>
          <td class="paramname"> <em>text</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">axiom_node_t *&nbsp;</td>
          <td class="paramname"> <em>element_node</em></td><td>&nbsp;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td><td width="100%"></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
Sets the text of the given element. caution - This method will wipe out all the text elements (and hence any mixed content) before setting the text <dl compact><dt><b>Parameters:</b></dt><dd>
  <table border="0" cellspacing="2" cellpadding="0">
    <tr><td valign="top"></td><td valign="top"><em>om_element</em>&nbsp;</td><td>pointer to om_element </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>env</em>&nbsp;</td><td>environment MUST not be NULL </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>text</em>&nbsp;</td><td>text to set. </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>element_node</em>&nbsp;</td><td>node of element. </td></tr>
  </table>
</dl>
<dl class="return" compact><dt><b>Returns:</b></dt><dd>AXIS2_SUCCESS if attribute was found and removed, else AXIS2_FAILURE </dd></dl>

</div>
</div><p>
<a class="anchor" name="g5aadee18159a878019124f7f5ec063f3"></a><!-- doxytag: member="axiom_element.h::axiom_element_to_string" ref="g5aadee18159a878019124f7f5ec063f3" args="(axiom_element_t *om_element, const axutil_env_t *env, axiom_node_t *element_node)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">AXIS2_EXTERN axis2_char_t* axiom_element_to_string           </td>
          <td>(</td>
          <td class="paramtype">axiom_element_t *&nbsp;</td>
          <td class="paramname"> <em>om_element</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const <a class="el" href="structaxutil__env.html">axutil_env_t</a> *&nbsp;</td>
          <td class="paramname"> <em>env</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">axiom_node_t *&nbsp;</td>
          <td class="paramname"> <em>element_node</em></td><td>&nbsp;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td><td width="100%"></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
returns the serilized text of this element and its children <dl compact><dt><b>Parameters:</b></dt><dd>
  <table border="0" cellspacing="2" cellpadding="0">
    <tr><td valign="top"></td><td valign="top"><em>om_element</em>&nbsp;</td><td>pointer to om_element </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>env</em>&nbsp;</td><td>environment MUST not be NULL </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>element_node</em>&nbsp;</td><td>the container node this on element is contained </td></tr>
  </table>
</dl>
<dl class="return" compact><dt><b>Returns:</b></dt><dd>a char array of xml , returns NULL on error </dd></dl>

</div>
</div><p>
<a class="anchor" name="g4ba9f367967bd316db956b33d3d33608"></a><!-- doxytag: member="axiom_element.h::axiom_element_use_parent_namespace" ref="g4ba9f367967bd316db956b33d3d33608" args="(axiom_element_t *om_element, const axutil_env_t *env, axiom_node_t *om_node, axiom_namespace_t *ns, axiom_element_t *root_element, axutil_hash_t *inscope_namespaces)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">AXIS2_EXTERN void axiom_element_use_parent_namespace           </td>
          <td>(</td>
          <td class="paramtype">axiom_element_t *&nbsp;</td>
          <td class="paramname"> <em>om_element</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const <a class="el" href="structaxutil__env.html">axutil_env_t</a> *&nbsp;</td>
          <td class="paramname"> <em>env</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">axiom_node_t *&nbsp;</td>
          <td class="paramname"> <em>om_node</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">axiom_namespace_t *&nbsp;</td>
          <td class="paramname"> <em>ns</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">axiom_element_t *&nbsp;</td>
          <td class="paramname"> <em>root_element</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype"><a class="el" href="group__axutil__hash.html#gb2d7d14db2de92a101573f44421ac12a">axutil_hash_t</a> *&nbsp;</td>
          <td class="paramname"> <em>inscope_namespaces</em></td><td>&nbsp;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td><td width="100%"></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
If the provided namespace used by the provided element is one of the namespaces from the parent of the root root element, redeclares that namespace at the root element and removes it from the hash of parent namespaces <dl compact><dt><b>Parameters:</b></dt><dd>
  <table border="0" cellspacing="2" cellpadding="0">
    <tr><td valign="top"></td><td valign="top"><em>om_element</em>&nbsp;</td><td>pointer to om_element </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>env</em>&nbsp;</td><td>environment MUST not be NULL </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>om_node</em>&nbsp;</td><td>pointer to this element node </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>ns</em>&nbsp;</td><td>pointer to namespace to redeclare </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>root_element</em>&nbsp;</td><td>pointer to the subtree root element node </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>inscope_namespaces</em>&nbsp;</td><td>pointer to hash of parent namespaces </td></tr>
  </table>
</dl>

</div>
</div><p>
<hr size="1"><address style="text-align: right;"><small>Generated on Fri Apr 17 11:49:44 2009 for Axis2/C by&nbsp;
<a href="http://www.doxygen.org/index.html">
<img src="doxygen.png" alt="doxygen" align="middle" border="0"></a> 1.5.3 </small></address>
</body>
</html>


<|start_filename|>xdocs/api/html/axiom__element_8h-source.html<|end_filename|>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html><head><meta http-equiv="Content-Type" content="text/html;charset=UTF-8">
<title>Axis2/C: axiom_element.h Source File</title>
<link href="doxygen.css" rel="stylesheet" type="text/css">
<link href="tabs.css" rel="stylesheet" type="text/css">
</head><body>
<!-- Generated by Doxygen 1.5.3 -->
<div class="tabs">
  <ul>
    <li><a href="index.html"><span>Main&nbsp;Page</span></a></li>
    <li><a href="modules.html"><span>Modules</span></a></li>
    <li><a href="annotated.html"><span>Classes</span></a></li>
    <li class="current"><a href="files.html"><span>Files</span></a></li>
    <li><a href="dirs.html"><span>Directories</span></a></li>
    <li><a href="pages.html"><span>Related&nbsp;Pages</span></a></li>
    <li><a href="examples.html"><span>Examples</span></a></li>
    <li>
      <form action="search.php" method="get">
        <table cellspacing="0" cellpadding="0" border="0">
          <tr>
            <td><label>&nbsp;<u>S</u>earch&nbsp;for&nbsp;</label></td>
            <td><input type="text" name="query" value="" size="20" accesskey="s"/></td>
          </tr>
        </table>
      </form>
    </li>
  </ul>
</div>
<div class="nav">
<a class="el" href="dir_f60961de8e5edc3b2658ef023e959e45.html">deploy</a>&nbsp;&raquo&nbsp;<a class="el" href="dir_6b4e91e54b7316b376882a6402adbf44.html">include</a>&nbsp;&raquo&nbsp;<a class="el" href="dir_df3a7695d5a9e696f30b948b566829e7.html">axis2-1.6.0</a></div>
<h1>axiom_element.h</h1><div class="fragment"><pre class="fragment"><a name="l00001"></a>00001 
<a name="l00002"></a>00002 <span class="comment">/*</span>
<a name="l00003"></a>00003 <span class="comment"> * Licensed to the Apache Software Foundation (ASF) under one or more</span>
<a name="l00004"></a>00004 <span class="comment"> * contributor license agreements.  See the NOTICE file distributed with</span>
<a name="l00005"></a>00005 <span class="comment"> * this work for additional information regarding copyright ownership.</span>
<a name="l00006"></a>00006 <span class="comment"> * The ASF licenses this file to You under the Apache License, Version 2.0</span>
<a name="l00007"></a>00007 <span class="comment"> * (the "License"); you may not use this file except in compliance with</span>
<a name="l00008"></a>00008 <span class="comment"> * the License.  You may obtain a copy of the License at</span>
<a name="l00009"></a>00009 <span class="comment"> *</span>
<a name="l00010"></a>00010 <span class="comment"> *      http://www.apache.org/licenses/LICENSE-2.0</span>
<a name="l00011"></a>00011 <span class="comment"> *</span>
<a name="l00012"></a>00012 <span class="comment"> * Unless required by applicable law or agreed to in writing, software</span>
<a name="l00013"></a>00013 <span class="comment"> * distributed under the License is distributed on an "AS IS" BASIS,</span>
<a name="l00014"></a>00014 <span class="comment"> * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.</span>
<a name="l00015"></a>00015 <span class="comment"> * See the License for the specific language governing permissions and</span>
<a name="l00016"></a>00016 <span class="comment"> * limitations under the License.</span>
<a name="l00017"></a>00017 <span class="comment"> */</span>
<a name="l00018"></a>00018 
<a name="l00019"></a>00019 <span class="preprocessor">#ifndef AXIOM_ELEMENT_H</span>
<a name="l00020"></a>00020 <span class="preprocessor"></span><span class="preprocessor">#define AXIOM_ELEMENT_H</span>
<a name="l00021"></a>00021 <span class="preprocessor"></span>
<a name="l00022"></a>00022 <span class="preprocessor">#include &lt;axiom_namespace.h&gt;</span>
<a name="l00023"></a>00023 <span class="preprocessor">#include &lt;<a class="code" href="axiom__attribute_8h.html" title="om attribute struct represents an xml attribute">axiom_attribute.h</a>&gt;</span>
<a name="l00024"></a>00024 <span class="preprocessor">#include &lt;axiom_output.h&gt;</span>
<a name="l00025"></a>00025 <span class="preprocessor">#include &lt;<a class="code" href="axiom__node_8h.html" title="defines axiom_node struct">axiom_node.h</a>&gt;</span>
<a name="l00026"></a>00026 <span class="preprocessor">#include &lt;<a class="code" href="axiom__children__iterator_8h.html" title="this is the iterator for om nodes">axiom_children_iterator.h</a>&gt;</span>
<a name="l00027"></a>00027 <span class="preprocessor">#include &lt;<a class="code" href="axiom__children__qname__iterator_8h.html" title="this is the iterator for om nodes using qname">axiom_children_qname_iterator.h</a>&gt;</span>
<a name="l00028"></a>00028 <span class="preprocessor">#include &lt;<a class="code" href="axiom__child__element__iterator_8h.html" title="this is the iterator for om elemnts">axiom_child_element_iterator.h</a>&gt;</span>
<a name="l00029"></a>00029 <span class="preprocessor">#include &lt;<a class="code" href="axutil__hash_8h.html" title="Axis2 Hash Tables.">axutil_hash.h</a>&gt;</span>
<a name="l00030"></a>00030 <span class="preprocessor">#include &lt;<a class="code" href="axutil__utils_8h.html">axutil_utils.h</a>&gt;</span>
<a name="l00031"></a>00031 
<a name="l00032"></a>00032 <span class="preprocessor">#ifdef __cplusplus</span>
<a name="l00033"></a>00033 <span class="preprocessor"></span><span class="keyword">extern</span> <span class="stringliteral">"C"</span>
<a name="l00034"></a>00034 {
<a name="l00035"></a>00035 <span class="preprocessor">#endif</span>
<a name="l00036"></a>00036 <span class="preprocessor"></span>
<a name="l00037"></a>00037     <span class="keyword">typedef</span> <span class="keyword">struct </span>axiom_element axiom_element_t;
<a name="l00038"></a>00038 
<a name="l00062"></a>00062     AXIS2_EXTERN axiom_element_t *AXIS2_CALL
<a name="l00063"></a>00063     <a class="code" href="group__axiom__element.html#g5f39a92b374c459df18a43bd8946ca0b">axiom_element_create</a>(
<a name="l00064"></a>00064         <span class="keyword">const</span> <a class="code" href="structaxutil__env.html" title="Axis2 Environment struct.">axutil_env_t</a> * env,
<a name="l00065"></a>00065         axiom_node_t * parent,
<a name="l00066"></a>00066         <span class="keyword">const</span> axis2_char_t * localname,
<a name="l00067"></a>00067         axiom_namespace_t * ns,
<a name="l00068"></a>00068         axiom_node_t ** node);
<a name="l00069"></a>00069 
<a name="l00080"></a>00080     AXIS2_EXTERN axiom_element_t *AXIS2_CALL
<a name="l00081"></a>00081     <a class="code" href="group__axiom__element.html#g28d9a5d1d04720c5a152284f106a506c">axiom_element_create_with_qname</a>(
<a name="l00082"></a>00082         <span class="keyword">const</span> <a class="code" href="structaxutil__env.html" title="Axis2 Environment struct.">axutil_env_t</a> * env,
<a name="l00083"></a>00083         axiom_node_t * parent,
<a name="l00084"></a>00084         <span class="keyword">const</span> axutil_qname_t * qname,
<a name="l00085"></a>00085         axiom_node_t ** node);
<a name="l00086"></a>00086     <span class="comment">/*</span>
<a name="l00087"></a>00087 <span class="comment">     * Find a namespace in the scope of the document.</span>
<a name="l00088"></a>00088 <span class="comment">     * Start to find from the given node and go up the hierarchy.</span>
<a name="l00089"></a>00089 <span class="comment">     * @param om_element pointer to om_element_struct contained in</span>
<a name="l00090"></a>00090 <span class="comment">     *        node , </span>
<a name="l00091"></a>00091 <span class="comment">     * @param env Environment. MUST NOT be NULL.</span>
<a name="l00092"></a>00092 <span class="comment">     * @param node node containing an instance of an AXIOM element,cannot be NULL.</span>
<a name="l00093"></a>00093 <span class="comment">     * @param uri namespace uri..</span>
<a name="l00094"></a>00094 <span class="comment">     * @param prefix namespace prefix. can be NULL.</span>
<a name="l00095"></a>00095 <span class="comment">     * @return pointer to the namespace, if found, else NULL. On error, returns </span>
<a name="l00096"></a>00096 <span class="comment">     *           NULL and sets error code in environment,s error</span>
<a name="l00097"></a>00097 <span class="comment">     */</span>
<a name="l00098"></a>00098     AXIS2_EXTERN axiom_namespace_t *AXIS2_CALL
<a name="l00099"></a>00099     axiom_element_find_namespace(
<a name="l00100"></a>00100         axiom_element_t * om_element,
<a name="l00101"></a>00101         <span class="keyword">const</span> <a class="code" href="structaxutil__env.html" title="Axis2 Environment struct.">axutil_env_t</a> * env,
<a name="l00102"></a>00102         axiom_node_t * node,
<a name="l00103"></a>00103         <span class="keyword">const</span> axis2_char_t * uri,
<a name="l00104"></a>00104         <span class="keyword">const</span> axis2_char_t * prefix);
<a name="l00105"></a>00105 
<a name="l00115"></a>00115     AXIS2_EXTERN axis2_status_t AXIS2_CALL
<a name="l00116"></a>00116     <a class="code" href="group__axiom__element.html#gb45f118ce5531c486879b1bf7c1f1cff">axiom_element_declare_namespace</a>(
<a name="l00117"></a>00117         axiom_element_t * om_element,
<a name="l00118"></a>00118         <span class="keyword">const</span> <a class="code" href="structaxutil__env.html" title="Axis2 Environment struct.">axutil_env_t</a> * env,
<a name="l00119"></a>00119         axiom_node_t * node,
<a name="l00120"></a>00120         axiom_namespace_t * ns);
<a name="l00128"></a>00128     AXIS2_EXTERN axis2_status_t AXIS2_CALL
<a name="l00129"></a>00129     <a class="code" href="group__axiom__element.html#g5ee04cdb4b674180c16c1068ae474e05">axiom_element_declare_namespace_assume_param_ownership</a>(
<a name="l00130"></a>00130         axiom_element_t * om_element,
<a name="l00131"></a>00131         <span class="keyword">const</span> <a class="code" href="structaxutil__env.html" title="Axis2 Environment struct.">axutil_env_t</a> * env,
<a name="l00132"></a>00132         axiom_namespace_t * ns);
<a name="l00133"></a>00133 
<a name="l00144"></a>00144     AXIS2_EXTERN axiom_namespace_t *AXIS2_CALL
<a name="l00145"></a>00145     <a class="code" href="group__axiom__element.html#gc363654f71f94ab91d12842cbbcc0ead">axiom_element_find_namespace_with_qname</a>(
<a name="l00146"></a>00146         axiom_element_t * om_element,
<a name="l00147"></a>00147         <span class="keyword">const</span> <a class="code" href="structaxutil__env.html" title="Axis2 Environment struct.">axutil_env_t</a> * env,
<a name="l00148"></a>00148         axiom_node_t * node,
<a name="l00149"></a>00149         axutil_qname_t * qname);
<a name="l00150"></a>00150 
<a name="l00159"></a>00159     AXIS2_EXTERN axis2_status_t AXIS2_CALL
<a name="l00160"></a>00160     <a class="code" href="group__axiom__element.html#g85f27529264c69b4678b5e10cf1417c8">axiom_element_add_attribute</a>(
<a name="l00161"></a>00161         axiom_element_t * om_element,
<a name="l00162"></a>00162         <span class="keyword">const</span> <a class="code" href="structaxutil__env.html" title="Axis2 Environment struct.">axutil_env_t</a> * env,
<a name="l00163"></a>00163         axiom_attribute_t * attribute,
<a name="l00164"></a>00164         axiom_node_t * node);
<a name="l00165"></a>00165 
<a name="l00174"></a>00174     AXIS2_EXTERN axiom_attribute_t *AXIS2_CALL
<a name="l00175"></a>00175     <a class="code" href="group__axiom__element.html#g3576a6b54cbe7d1b5f0967fc91e17424">axiom_element_get_attribute</a>(
<a name="l00176"></a>00176         axiom_element_t * om_element,
<a name="l00177"></a>00177         <span class="keyword">const</span> <a class="code" href="structaxutil__env.html" title="Axis2 Environment struct.">axutil_env_t</a> * env,
<a name="l00178"></a>00178         axutil_qname_t * qname);
<a name="l00179"></a>00179 
<a name="l00188"></a>00188     AXIS2_EXTERN axis2_char_t *AXIS2_CALL
<a name="l00189"></a>00189     <a class="code" href="group__axiom__element.html#g430ca6654bedc354b143b4c424691a2a">axiom_element_get_attribute_value</a>(
<a name="l00190"></a>00190         axiom_element_t * om_element,
<a name="l00191"></a>00191         <span class="keyword">const</span> <a class="code" href="structaxutil__env.html" title="Axis2 Environment struct.">axutil_env_t</a> * env,
<a name="l00192"></a>00192         axutil_qname_t * qname);
<a name="l00193"></a>00193 
<a name="l00200"></a>00200     AXIS2_EXTERN <span class="keywordtype">void</span> AXIS2_CALL
<a name="l00201"></a>00201     <a class="code" href="group__axiom__element.html#ga93dfaff8cd3e00e6f691089a5700d90">axiom_element_free</a>(
<a name="l00202"></a>00202         axiom_element_t * element,
<a name="l00203"></a>00203         <span class="keyword">const</span> <a class="code" href="structaxutil__env.html" title="Axis2 Environment struct.">axutil_env_t</a> * env);
<a name="l00204"></a>00204 
<a name="l00212"></a>00212     AXIS2_EXTERN axis2_status_t AXIS2_CALL
<a name="l00213"></a>00213     <a class="code" href="group__axiom__element.html#g8e6697b5ebbad4a3ebccd3d2904e77a2">axiom_element_serialize_start_part</a>(
<a name="l00214"></a>00214         axiom_element_t * om_element,
<a name="l00215"></a>00215         <span class="keyword">const</span> <a class="code" href="structaxutil__env.html" title="Axis2 Environment struct.">axutil_env_t</a> * env,
<a name="l00216"></a>00216         <a class="code" href="group__axiom__output.html#gfe1ea804d7a8179e85371f065cd9df09" title="output struct The XML writer interface struct of om">axiom_output_t</a> * om_output,
<a name="l00217"></a>00217         axiom_node_t * ele_node);
<a name="l00218"></a>00218 
<a name="l00228"></a>00228     AXIS2_EXTERN axis2_status_t AXIS2_CALL
<a name="l00229"></a>00229     <a class="code" href="group__axiom__element.html#ge12cd52e93534b7f123bc97a828eb967">axiom_element_serialize_end_part</a>(
<a name="l00230"></a>00230         axiom_element_t * om_element,
<a name="l00231"></a>00231         <span class="keyword">const</span> <a class="code" href="structaxutil__env.html" title="Axis2 Environment struct.">axutil_env_t</a> * env,
<a name="l00232"></a>00232         <a class="code" href="group__axiom__output.html#gfe1ea804d7a8179e85371f065cd9df09" title="output struct The XML writer interface struct of om">axiom_output_t</a> * om_output);
<a name="l00233"></a>00233 
<a name="l00244"></a>00244     AXIS2_EXTERN axiom_namespace_t *AXIS2_CALL
<a name="l00245"></a>00245     <a class="code" href="group__axiom__element.html#g593519ca013b852b980cca016479ed4d">axiom_element_find_declared_namespace</a>(
<a name="l00246"></a>00246         axiom_element_t * om_element,
<a name="l00247"></a>00247         <span class="keyword">const</span> <a class="code" href="structaxutil__env.html" title="Axis2 Environment struct.">axutil_env_t</a> * env,
<a name="l00248"></a>00248         <span class="keyword">const</span> axis2_char_t * uri,
<a name="l00249"></a>00249         <span class="keyword">const</span> axis2_char_t * prefix);
<a name="l00250"></a>00250 
<a name="l00257"></a>00257     AXIS2_EXTERN axis2_char_t *AXIS2_CALL
<a name="l00258"></a>00258     <a class="code" href="group__axiom__element.html#g93563b0b55fa7a91c90b359be5945ac2">axiom_element_get_localname</a>(
<a name="l00259"></a>00259         axiom_element_t * om_element,
<a name="l00260"></a>00260         <span class="keyword">const</span> <a class="code" href="structaxutil__env.html" title="Axis2 Environment struct.">axutil_env_t</a> * env);
<a name="l00261"></a>00261 
<a name="l00270"></a>00270     AXIS2_EXTERN axis2_status_t AXIS2_CALL
<a name="l00271"></a>00271     <a class="code" href="group__axiom__element.html#ga7b390c6b772f6c529cab878331ec45f">axiom_element_set_localname</a>(
<a name="l00272"></a>00272         axiom_element_t * om_element,
<a name="l00273"></a>00273         <span class="keyword">const</span> <a class="code" href="structaxutil__env.html" title="Axis2 Environment struct.">axutil_env_t</a> * env,
<a name="l00274"></a>00274         <span class="keyword">const</span> axis2_char_t * localname);
<a name="l00275"></a>00275 
<a name="l00284"></a>00284     AXIS2_EXTERN axiom_namespace_t *AXIS2_CALL
<a name="l00285"></a>00285     <a class="code" href="group__axiom__element.html#g53fce175e2e0f41af39fe374b26fd370">axiom_element_get_namespace</a>(
<a name="l00286"></a>00286         axiom_element_t * om_element,
<a name="l00287"></a>00287         <span class="keyword">const</span> <a class="code" href="structaxutil__env.html" title="Axis2 Environment struct.">axutil_env_t</a> * env,
<a name="l00288"></a>00288         axiom_node_t * ele_node);
<a name="l00289"></a>00289 
<a name="l00301"></a>00301     AXIS2_EXTERN axis2_status_t AXIS2_CALL
<a name="l00302"></a>00302     <a class="code" href="group__axiom__element.html#gfc6727d644dabb556f46a2901f317093">axiom_element_set_namespace</a>(
<a name="l00303"></a>00303         axiom_element_t * om_element,
<a name="l00304"></a>00304         <span class="keyword">const</span> <a class="code" href="structaxutil__env.html" title="Axis2 Environment struct.">axutil_env_t</a> * env,
<a name="l00305"></a>00305         axiom_namespace_t * ns,
<a name="l00306"></a>00306         axiom_node_t * node);
<a name="l00307"></a>00307 
<a name="l00308"></a>00308 
<a name="l00318"></a>00318     AXIS2_EXTERN axis2_status_t AXIS2_CALL
<a name="l00319"></a>00319     <a class="code" href="group__axiom__element.html#g5d69b8b24799663e5dc0252877b11145">axiom_element_set_namespace_assume_param_ownership</a>(
<a name="l00320"></a>00320         axiom_element_t * om_element,
<a name="l00321"></a>00321         <span class="keyword">const</span> <a class="code" href="structaxutil__env.html" title="Axis2 Environment struct.">axutil_env_t</a> * env,
<a name="l00322"></a>00322         axiom_namespace_t * ns);
<a name="l00323"></a>00323 
<a name="l00331"></a>00331     AXIS2_EXTERN <a class="code" href="group__axutil__hash.html#gb2d7d14db2de92a101573f44421ac12a">axutil_hash_t</a> *AXIS2_CALL
<a name="l00332"></a>00332     <a class="code" href="group__axiom__element.html#g723f2020e8872c13fd7f7a0cf58ccf0b">axiom_element_get_all_attributes</a>(
<a name="l00333"></a>00333         axiom_element_t * om_element,
<a name="l00334"></a>00334         <span class="keyword">const</span> <a class="code" href="structaxutil__env.html" title="Axis2 Environment struct.">axutil_env_t</a> * env);
<a name="l00335"></a>00335 
<a name="l00343"></a>00343     AXIS2_EXTERN <a class="code" href="group__axutil__hash.html#gb2d7d14db2de92a101573f44421ac12a">axutil_hash_t</a> *AXIS2_CALL
<a name="l00344"></a>00344     <a class="code" href="group__axiom__element.html#g84e26919d5e3473cbe1ef5294c0dd9e1">axiom_element_get_namespaces</a>(
<a name="l00345"></a>00345         axiom_element_t * om_element,
<a name="l00346"></a>00346         <span class="keyword">const</span> <a class="code" href="structaxutil__env.html" title="Axis2 Environment struct.">axutil_env_t</a> * env);
<a name="l00347"></a>00347 
<a name="l00359"></a>00359     AXIS2_EXTERN axutil_qname_t *AXIS2_CALL
<a name="l00360"></a>00360     <a class="code" href="group__axiom__element.html#g7624c9f5fdebd0d20baba3909d147262">axiom_element_get_qname</a>(
<a name="l00361"></a>00361         axiom_element_t * om_element,
<a name="l00362"></a>00362         <span class="keyword">const</span> <a class="code" href="structaxutil__env.html" title="Axis2 Environment struct.">axutil_env_t</a> * env,
<a name="l00363"></a>00363         axiom_node_t * ele_node);
<a name="l00364"></a>00364 
<a name="l00375"></a>00375     AXIS2_EXTERN axiom_children_iterator_t *AXIS2_CALL
<a name="l00376"></a>00376     <a class="code" href="group__axiom__element.html#g17f61bf6ca1ba4f7280a62381533ffb9">axiom_element_get_children</a>(
<a name="l00377"></a>00377         axiom_element_t * om_element,
<a name="l00378"></a>00378         <span class="keyword">const</span> <a class="code" href="structaxutil__env.html" title="Axis2 Environment struct.">axutil_env_t</a> * env,
<a name="l00379"></a>00379         axiom_node_t * element_node);
<a name="l00380"></a>00380 
<a name="l00391"></a>00391     AXIS2_EXTERN axiom_children_qname_iterator_t *AXIS2_CALL
<a name="l00392"></a>00392     <a class="code" href="group__axiom__element.html#gd10f3b1eafe5c095f90c9086da45b657">axiom_element_get_children_with_qname</a>(
<a name="l00393"></a>00393         axiom_element_t * om_element,
<a name="l00394"></a>00394         <span class="keyword">const</span> <a class="code" href="structaxutil__env.html" title="Axis2 Environment struct.">axutil_env_t</a> * env,
<a name="l00395"></a>00395         axutil_qname_t * element_qname,
<a name="l00396"></a>00396         axiom_node_t * element_node);
<a name="l00397"></a>00397 
<a name="l00409"></a>00409     AXIS2_EXTERN axiom_element_t *AXIS2_CALL
<a name="l00410"></a>00410     <a class="code" href="group__axiom__element.html#gd3f2d1134ad645414483e3f84add0ab6">axiom_element_get_first_child_with_qname</a>(
<a name="l00411"></a>00411         axiom_element_t * om_element,
<a name="l00412"></a>00412         <span class="keyword">const</span> <a class="code" href="structaxutil__env.html" title="Axis2 Environment struct.">axutil_env_t</a> * env,
<a name="l00413"></a>00413         axutil_qname_t * element_qname,
<a name="l00414"></a>00414         axiom_node_t * element_node,
<a name="l00415"></a>00415         axiom_node_t ** child_node);
<a name="l00416"></a>00416 
<a name="l00427"></a>00427     AXIS2_EXTERN axis2_status_t AXIS2_CALL
<a name="l00428"></a>00428     <a class="code" href="group__axiom__element.html#g357eef9527ea48d774a7531b43c5e188">axiom_element_remove_attribute</a>(
<a name="l00429"></a>00429         axiom_element_t * om_element,
<a name="l00430"></a>00430         <span class="keyword">const</span> <a class="code" href="structaxutil__env.html" title="Axis2 Environment struct.">axutil_env_t</a> * env,
<a name="l00431"></a>00431         axiom_attribute_t * om_attribute);
<a name="l00432"></a>00432 
<a name="l00444"></a>00444     AXIS2_EXTERN axis2_status_t AXIS2_CALL
<a name="l00445"></a>00445     <a class="code" href="group__axiom__element.html#g01aeeeff52453bbee70f8b2dfd224b10">axiom_element_set_text</a>(
<a name="l00446"></a>00446         axiom_element_t * om_element,
<a name="l00447"></a>00447         <span class="keyword">const</span> <a class="code" href="structaxutil__env.html" title="Axis2 Environment struct.">axutil_env_t</a> * env,
<a name="l00448"></a>00448         <span class="keyword">const</span> axis2_char_t * text,
<a name="l00449"></a>00449         axiom_node_t * element_node);
<a name="l00450"></a>00450 
<a name="l00462"></a>00462     AXIS2_EXTERN axis2_char_t *AXIS2_CALL
<a name="l00463"></a>00463     <a class="code" href="group__axiom__element.html#gd8bad88ee39396639a639f2d6943e631">axiom_element_get_text</a>(
<a name="l00464"></a>00464         axiom_element_t * om_element,
<a name="l00465"></a>00465         <span class="keyword">const</span> <a class="code" href="structaxutil__env.html" title="Axis2 Environment struct.">axutil_env_t</a> * env,
<a name="l00466"></a>00466         axiom_node_t * element_node);
<a name="l00467"></a>00467 
<a name="l00475"></a>00475     AXIS2_EXTERN axiom_element_t *AXIS2_CALL
<a name="l00476"></a>00476     <a class="code" href="group__axiom__element.html#g83dd3135f56980148c1a5c25fbc2e231">axiom_element_get_first_element</a>(
<a name="l00477"></a>00477         axiom_element_t * om_element,
<a name="l00478"></a>00478         <span class="keyword">const</span> <a class="code" href="structaxutil__env.html" title="Axis2 Environment struct.">axutil_env_t</a> * env,
<a name="l00479"></a>00479         axiom_node_t * element_node,
<a name="l00480"></a>00480         axiom_node_t ** first_element_node);
<a name="l00481"></a>00481 
<a name="l00489"></a>00489     AXIS2_EXTERN axis2_char_t *AXIS2_CALL
<a name="l00490"></a>00490     <a class="code" href="group__axiom__element.html#g5aadee18159a878019124f7f5ec063f3">axiom_element_to_string</a>(
<a name="l00491"></a>00491         axiom_element_t * om_element,
<a name="l00492"></a>00492         <span class="keyword">const</span> <a class="code" href="structaxutil__env.html" title="Axis2 Environment struct.">axutil_env_t</a> * env,
<a name="l00493"></a>00493         axiom_node_t * element_node);
<a name="l00494"></a>00494 
<a name="l00503"></a>00503     AXIS2_EXTERN axiom_child_element_iterator_t *AXIS2_CALL
<a name="l00504"></a>00504     <a class="code" href="group__axiom__element.html#g199de4cfc7d507edca6d2b11e9a9bd9d">axiom_element_get_child_elements</a>(
<a name="l00505"></a>00505         axiom_element_t * om_element,
<a name="l00506"></a>00506         <span class="keyword">const</span> <a class="code" href="structaxutil__env.html" title="Axis2 Environment struct.">axutil_env_t</a> * env,
<a name="l00507"></a>00507         axiom_node_t * element_node);
<a name="l00508"></a>00508 
<a name="l00520"></a>00520     AXIS2_EXTERN axis2_status_t AXIS2_CALL
<a name="l00521"></a>00521     <a class="code" href="group__axiom__element.html#g83e7bba094816b770c93c78ec9b96d13">axiom_element_build</a>(
<a name="l00522"></a>00522         axiom_element_t * om_element,
<a name="l00523"></a>00523         <span class="keyword">const</span> <a class="code" href="structaxutil__env.html" title="Axis2 Environment struct.">axutil_env_t</a> * env,
<a name="l00524"></a>00524         axiom_node_t * element_node);
<a name="l00525"></a>00525 
<a name="l00533"></a>00533     AXIS2_EXTERN axiom_namespace_t *AXIS2_CALL
<a name="l00534"></a>00534     <a class="code" href="group__axiom__element.html#g8edbc11277ad8a54770466bbffc26158">axiom_element_get_default_namespace</a>(
<a name="l00535"></a>00535         axiom_element_t * om_element,
<a name="l00536"></a>00536         <span class="keyword">const</span> <a class="code" href="structaxutil__env.html" title="Axis2 Environment struct.">axutil_env_t</a> * env,
<a name="l00537"></a>00537         axiom_node_t * element_node);
<a name="l00538"></a>00538 
<a name="l00546"></a>00546     AXIS2_EXTERN axiom_namespace_t *AXIS2_CALL
<a name="l00547"></a>00547     <a class="code" href="group__axiom__element.html#g804e9f7129b76afbea9d19420dfe5a2b">axiom_element_declare_default_namespace</a>(
<a name="l00548"></a>00548         axiom_element_t * om_element,
<a name="l00549"></a>00549         <span class="keyword">const</span> <a class="code" href="structaxutil__env.html" title="Axis2 Environment struct.">axutil_env_t</a> * env,
<a name="l00550"></a>00550         axis2_char_t * uri);
<a name="l00551"></a>00551 
<a name="l00560"></a>00560     AXIS2_EXTERN axiom_namespace_t *AXIS2_CALL
<a name="l00561"></a>00561     <a class="code" href="group__axiom__element.html#gf9f1cddbbc96f961843ff476dd583fae">axiom_element_find_namespace_uri</a>(
<a name="l00562"></a>00562         axiom_element_t * om_element,
<a name="l00563"></a>00563         <span class="keyword">const</span> <a class="code" href="structaxutil__env.html" title="Axis2 Environment struct.">axutil_env_t</a> * env,
<a name="l00564"></a>00564         <span class="keyword">const</span> axis2_char_t * prefix,
<a name="l00565"></a>00565         axiom_node_t * element_node);
<a name="l00566"></a>00566 
<a name="l00577"></a>00577     AXIS2_EXTERN axis2_status_t AXIS2_CALL
<a name="l00578"></a>00578     <a class="code" href="group__axiom__element.html#g7681fce86bf29f713d1444d9cfacf83d">axiom_element_set_namespace_with_no_find_in_current_scope</a>(
<a name="l00579"></a>00579         axiom_element_t * om_element,
<a name="l00580"></a>00580         <span class="keyword">const</span> <a class="code" href="structaxutil__env.html" title="Axis2 Environment struct.">axutil_env_t</a> * env,
<a name="l00581"></a>00581         axiom_namespace_t * om_ns);
<a name="l00582"></a>00582 
<a name="l00591"></a>00591     AXIS2_EXTERN <a class="code" href="group__axutil__hash.html#gb2d7d14db2de92a101573f44421ac12a">axutil_hash_t</a> *AXIS2_CALL
<a name="l00592"></a>00592     <a class="code" href="group__axiom__element.html#g3bec8c8381b6f16b44077c75e3880f6f">axiom_element_extract_attributes</a>(
<a name="l00593"></a>00593         axiom_element_t * om_element,
<a name="l00594"></a>00594         <span class="keyword">const</span> <a class="code" href="structaxutil__env.html" title="Axis2 Environment struct.">axutil_env_t</a> * env,
<a name="l00595"></a>00595         axiom_node_t * ele_node);
<a name="l00596"></a>00596 
<a name="l00605"></a>00605     AXIS2_EXTERN axis2_char_t *AXIS2_CALL
<a name="l00606"></a>00606     <a class="code" href="group__axiom__element.html#g177a16ba7e740dc06496f0ed2551c4bd">axiom_element_get_attribute_value_by_name</a>(
<a name="l00607"></a>00607         axiom_element_t * om_ele,
<a name="l00608"></a>00608         <span class="keyword">const</span> <a class="code" href="structaxutil__env.html" title="Axis2 Environment struct.">axutil_env_t</a> * env,
<a name="l00609"></a>00609         axis2_char_t * attr_name);
<a name="l00610"></a>00610 
<a name="l00620"></a>00620     AXIS2_EXTERN axiom_element_t *AXIS2_CALL
<a name="l00621"></a>00621     <a class="code" href="group__axiom__element.html#g90e269817d14b24aee50b703c0825552">axiom_element_create_str</a>(
<a name="l00622"></a>00622         <span class="keyword">const</span> <a class="code" href="structaxutil__env.html" title="Axis2 Environment struct.">axutil_env_t</a> * env,
<a name="l00623"></a>00623         axiom_node_t * parent,
<a name="l00624"></a>00624         axutil_string_t * localname,
<a name="l00625"></a>00625         axiom_namespace_t * ns,
<a name="l00626"></a>00626         axiom_node_t ** node);
<a name="l00627"></a>00627 
<a name="l00636"></a>00636     AXIS2_EXTERN axutil_string_t *AXIS2_CALL
<a name="l00637"></a>00637     <a class="code" href="group__axiom__element.html#g2cc5e8c0e639efdcab57e1c0276c7223">axiom_element_get_localname_str</a>(
<a name="l00638"></a>00638         axiom_element_t * om_element,
<a name="l00639"></a>00639         <span class="keyword">const</span> <a class="code" href="structaxutil__env.html" title="Axis2 Environment struct.">axutil_env_t</a> * env);
<a name="l00640"></a>00640 
<a name="l00649"></a>00649     AXIS2_EXTERN axis2_status_t AXIS2_CALL
<a name="l00650"></a>00650     <a class="code" href="group__axiom__element.html#ga3b45a51539b2bd11c3b631b90f2b2b6">axiom_element_set_localname_str</a>(
<a name="l00651"></a>00651         axiom_element_t * om_element,
<a name="l00652"></a>00652         <span class="keyword">const</span> <a class="code" href="structaxutil__env.html" title="Axis2 Environment struct.">axutil_env_t</a> * env,
<a name="l00653"></a>00653         axutil_string_t * localname);
<a name="l00654"></a>00654 
<a name="l00662"></a>00662     AXIS2_EXTERN axis2_bool_t AXIS2_CALL
<a name="l00663"></a>00663     <a class="code" href="group__axiom__element.html#g26bc8c60cd61379014ea37dcae83dec7">axiom_element_get_is_empty</a>(
<a name="l00664"></a>00664         axiom_element_t * om_element,
<a name="l00665"></a>00665         <span class="keyword">const</span> <a class="code" href="structaxutil__env.html" title="Axis2 Environment struct.">axutil_env_t</a> * env);
<a name="l00666"></a>00666 
<a name="l00675"></a>00675     AXIS2_EXTERN <span class="keywordtype">void</span> AXIS2_CALL
<a name="l00676"></a>00676     <a class="code" href="group__axiom__element.html#g645cc8a03a1dbdb3d846c0cdb801cc0d">axiom_element_set_is_empty</a>(
<a name="l00677"></a>00677         axiom_element_t * om_element,
<a name="l00678"></a>00678         <span class="keyword">const</span> <a class="code" href="structaxutil__env.html" title="Axis2 Environment struct.">axutil_env_t</a> * env,
<a name="l00679"></a>00679         axis2_bool_t is_empty);
<a name="l00680"></a>00680 
<a name="l00692"></a>00692     AXIS2_EXTERN <a class="code" href="group__axutil__hash.html#gb2d7d14db2de92a101573f44421ac12a">axutil_hash_t</a> * AXIS2_CALL
<a name="l00693"></a>00693     <a class="code" href="group__axiom__element.html#gc8dab634252188bf3c3d28705aed8659">axiom_element_gather_parent_namespaces</a>(
<a name="l00694"></a>00694         axiom_element_t * om_element,
<a name="l00695"></a>00695         <span class="keyword">const</span> <a class="code" href="structaxutil__env.html" title="Axis2 Environment struct.">axutil_env_t</a> * env,
<a name="l00696"></a>00696         axiom_node_t * om_node);
<a name="l00697"></a>00697 
<a name="l00710"></a>00710     AXIS2_EXTERN <span class="keywordtype">void</span> AXIS2_CALL
<a name="l00711"></a>00711     <a class="code" href="group__axiom__element.html#g4ba9f367967bd316db956b33d3d33608">axiom_element_use_parent_namespace</a>(
<a name="l00712"></a>00712         axiom_element_t * om_element,
<a name="l00713"></a>00713         <span class="keyword">const</span> <a class="code" href="structaxutil__env.html" title="Axis2 Environment struct.">axutil_env_t</a> * env,
<a name="l00714"></a>00714         axiom_node_t * om_node,
<a name="l00715"></a>00715         axiom_namespace_t *ns,
<a name="l00716"></a>00716         axiom_element_t * root_element,
<a name="l00717"></a>00717         <a class="code" href="group__axutil__hash.html#gb2d7d14db2de92a101573f44421ac12a">axutil_hash_t</a> *inscope_namespaces);
<a name="l00718"></a>00718 
<a name="l00733"></a>00733     AXIS2_EXTERN <span class="keywordtype">void</span> AXIS2_CALL
<a name="l00734"></a>00734     <a class="code" href="group__axiom__element.html#ga81ac198c70919220ad1ec3b61c8de27">axiom_element_redeclare_parent_namespaces</a>(
<a name="l00735"></a>00735         axiom_element_t * om_element,
<a name="l00736"></a>00736         <span class="keyword">const</span> <a class="code" href="structaxutil__env.html" title="Axis2 Environment struct.">axutil_env_t</a> * env,
<a name="l00737"></a>00737         axiom_node_t * om_node,
<a name="l00738"></a>00738         axiom_element_t * root_element,
<a name="l00739"></a>00739         <a class="code" href="group__axutil__hash.html#gb2d7d14db2de92a101573f44421ac12a">axutil_hash_t</a> *inscope_namespaces);
<a name="l00740"></a>00740 
<a name="l00743"></a>00743 <span class="preprocessor">#ifdef __cplusplus</span>
<a name="l00744"></a>00744 <span class="preprocessor"></span>}
<a name="l00745"></a>00745 <span class="preprocessor">#endif</span>
<a name="l00746"></a>00746 <span class="preprocessor"></span>
<a name="l00747"></a>00747 <span class="preprocessor">#endif                          </span><span class="comment">/* AXIOM_ELEMENT_H */</span>
</pre></div><hr size="1"><address style="text-align: right;"><small>Generated on Fri Apr 17 11:49:42 2009 for Axis2/C by&nbsp;
<a href="http://www.doxygen.org/index.html">
<img src="doxygen.png" alt="doxygen" align="middle" border="0"></a> 1.5.3 </small></address>
</body>
</html>


<|start_filename|>xdocs/api/html/neethi__operator_8h.html<|end_filename|>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html><head><meta http-equiv="Content-Type" content="text/html;charset=UTF-8">
<title>Axis2/C: neethi_operator.h File Reference</title>
<link href="doxygen.css" rel="stylesheet" type="text/css">
<link href="tabs.css" rel="stylesheet" type="text/css">
</head><body>
<!-- Generated by Doxygen 1.5.3 -->
<div class="tabs">
  <ul>
    <li><a href="index.html"><span>Main&nbsp;Page</span></a></li>
    <li><a href="modules.html"><span>Modules</span></a></li>
    <li><a href="annotated.html"><span>Classes</span></a></li>
    <li class="current"><a href="files.html"><span>Files</span></a></li>
    <li><a href="dirs.html"><span>Directories</span></a></li>
    <li><a href="pages.html"><span>Related&nbsp;Pages</span></a></li>
    <li><a href="examples.html"><span>Examples</span></a></li>
    <li>
      <form action="search.php" method="get">
        <table cellspacing="0" cellpadding="0" border="0">
          <tr>
            <td><label>&nbsp;<u>S</u>earch&nbsp;for&nbsp;</label></td>
            <td><input type="text" name="query" value="" size="20" accesskey="s"/></td>
          </tr>
        </table>
      </form>
    </li>
  </ul>
</div>
<div class="nav">
<a class="el" href="dir_f60961de8e5edc3b2658ef023e959e45.html">deploy</a>&nbsp;&raquo&nbsp;<a class="el" href="dir_6b4e91e54b7316b376882a6402adbf44.html">include</a>&nbsp;&raquo&nbsp;<a class="el" href="dir_df3a7695d5a9e696f30b948b566829e7.html">axis2-1.6.0</a></div>
<h1>neethi_operator.h File Reference</h1><code>#include &lt;<a class="el" href="axis2__defines_8h-source.html">axis2_defines.h</a>&gt;</code><br>
<code>#include &lt;<a class="el" href="axutil__env_8h-source.html">axutil_env.h</a>&gt;</code><br>
<code>#include &lt;<a class="el" href="neethi__includes_8h-source.html">neethi_includes.h</a>&gt;</code><br>

<p>
<a href="neethi__operator_8h-source.html">Go to the source code of this file.</a><table border="0" cellpadding="0" cellspacing="0">
<tr><td></td></tr>
<tr><td colspan="2"><br><h2>Typedefs</h2></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="d921218f477fc16b44ee060b1780ac33"></a><!-- doxytag: member="neethi_operator.h::neethi_operator_t" ref="d921218f477fc16b44ee060b1780ac33" args="" -->
typedef struct <br>
neethi_operator_t&nbsp;</td><td class="memItemRight" valign="bottom"><b>neethi_operator_t</b></td></tr>

<tr><td colspan="2"><br><h2>Enumerations</h2></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top">enum &nbsp;</td><td class="memItemRight" valign="bottom"><b>neethi_operator_type_t</b> { <br>
&nbsp;&nbsp;<b>OPERATOR_TYPE_POLICY</b> =  0, 
<b>OPERATOR_TYPE_ALL</b>, 
<b>OPERATOR_TYPE_EXACTLYONE</b>, 
<b>OPERATOR_TYPE_REFERENCE</b>, 
<br>
&nbsp;&nbsp;<b>OPERATOR_TYPE_ASSERTION</b>, 
<b>OPERATOR_TYPE_UNKNOWN</b>
<br>
 }</td></tr>

<tr><td colspan="2"><br><h2>Functions</h2></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="232e5b68fc85376fcd3744a7eca30b99"></a><!-- doxytag: member="neethi_operator.h::neethi_operator_create" ref="232e5b68fc85376fcd3744a7eca30b99" args="(const axutil_env_t *env)" -->
AXIS2_EXTERN <br>
neethi_operator_t *&nbsp;</td><td class="memItemRight" valign="bottom"><b>neethi_operator_create</b> (const <a class="el" href="structaxutil__env.html">axutil_env_t</a> *env)</td></tr>

<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="338af3286c7c2b3444f31808898f61c7"></a><!-- doxytag: member="neethi_operator.h::neethi_operator_free" ref="338af3286c7c2b3444f31808898f61c7" args="(neethi_operator_t *neethi_operator, const axutil_env_t *env)" -->
AXIS2_EXTERN void&nbsp;</td><td class="memItemRight" valign="bottom"><b>neethi_operator_free</b> (neethi_operator_t *neethi_operator, const <a class="el" href="structaxutil__env.html">axutil_env_t</a> *env)</td></tr>

<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="890188bb62af3b6f20f6f27b7519a957"></a><!-- doxytag: member="neethi_operator.h::neethi_operator_get_type" ref="890188bb62af3b6f20f6f27b7519a957" args="(neethi_operator_t *neethi_operator, const axutil_env_t *env)" -->
AXIS2_EXTERN <br>
neethi_operator_type_t&nbsp;</td><td class="memItemRight" valign="bottom"><b>neethi_operator_get_type</b> (neethi_operator_t *neethi_operator, const <a class="el" href="structaxutil__env.html">axutil_env_t</a> *env)</td></tr>

<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="901269dda7d00a0fddd7a20021d1a33c"></a><!-- doxytag: member="neethi_operator.h::neethi_operator_get_value" ref="901269dda7d00a0fddd7a20021d1a33c" args="(neethi_operator_t *neethi_operator, const axutil_env_t *env)" -->
AXIS2_EXTERN void *&nbsp;</td><td class="memItemRight" valign="bottom"><b>neethi_operator_get_value</b> (neethi_operator_t *neethi_operator, const <a class="el" href="structaxutil__env.html">axutil_env_t</a> *env)</td></tr>

<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="8f23f35b4529e771dbf3f6d6572c9caa"></a><!-- doxytag: member="neethi_operator.h::neethi_operator_set_value" ref="8f23f35b4529e771dbf3f6d6572c9caa" args="(neethi_operator_t *neethi_operator, const axutil_env_t *env, void *value, neethi_operator_type_t type)" -->
AXIS2_EXTERN <br>
axis2_status_t&nbsp;</td><td class="memItemRight" valign="bottom"><b>neethi_operator_set_value</b> (neethi_operator_t *neethi_operator, const <a class="el" href="structaxutil__env.html">axutil_env_t</a> *env, void *value, neethi_operator_type_t type)</td></tr>

<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="023f23460bd1719c28b44866fc9297ab"></a><!-- doxytag: member="neethi_operator.h::neethi_operator_serialize" ref="023f23460bd1719c28b44866fc9297ab" args="(neethi_operator_t *neethi_operator, const axutil_env_t *env, axiom_node_t *parent)" -->
AXIS2_EXTERN <br>
axis2_status_t&nbsp;</td><td class="memItemRight" valign="bottom"><b>neethi_operator_serialize</b> (neethi_operator_t *neethi_operator, const <a class="el" href="structaxutil__env.html">axutil_env_t</a> *env, axiom_node_t *parent)</td></tr>

<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="44fc7d06dab790d3c9e6c7d3d32df18d"></a><!-- doxytag: member="neethi_operator.h::neethi_operator_set_value_null" ref="44fc7d06dab790d3c9e6c7d3d32df18d" args="(neethi_operator_t *neethi_operator, const axutil_env_t *env)" -->
AXIS2_EXTERN <br>
axis2_status_t&nbsp;</td><td class="memItemRight" valign="bottom"><b>neethi_operator_set_value_null</b> (neethi_operator_t *neethi_operator, const <a class="el" href="structaxutil__env.html">axutil_env_t</a> *env)</td></tr>

<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="226414d593d19daf8859e6275a726c05"></a><!-- doxytag: member="neethi_operator.h::neethi_operator_increment_ref" ref="226414d593d19daf8859e6275a726c05" args="(neethi_operator_t *neethi_operator, const axutil_env_t *env)" -->
AXIS2_EXTERN <br>
axis2_status_t&nbsp;</td><td class="memItemRight" valign="bottom"><b>neethi_operator_increment_ref</b> (neethi_operator_t *neethi_operator, const <a class="el" href="structaxutil__env.html">axutil_env_t</a> *env)</td></tr>

</table>
<hr><a name="_details"></a><h2>Detailed Description</h2>
struct for policy operators. <hr size="1"><address style="text-align: right;"><small>Generated on Fri Apr 17 11:49:44 2009 for Axis2/C by&nbsp;
<a href="http://www.doxygen.org/index.html">
<img src="doxygen.png" alt="doxygen" align="middle" border="0"></a> 1.5.3 </small></address>
</body>
</html>


<|start_filename|>util/include/platforms/windows/axutil_uuid_gen_windows.h<|end_filename|>

/*
 * Copyright 2004,2005 The Apache Software Foundation.
 *
 * Licensed 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 AXIS2_UDDI_GEN_WINDOWS_H
#define AXIS2_UDDI_GEN_WINDOWS_H

#include <axutil_utils_defines.h>

#ifdef __cplusplus
extern "C"
{

#endif  /* 
 */
    

    /* Function prototypes */
    


    /**
      * Generate universally unique id
      * @return a char pointer to uuid
      */
    AXIS2_EXTERN axis2_char_t * AXIS2_CALL
    
 axutil_platform_uuid_gen(
        
char *s);
    




    /** @} */
#ifdef __cplusplus
}
#endif  /* 
 */

#endif  /* AXIS2_UDDI_GEN_WINDOWS_H */


<|start_filename|>xdocs/api/html/axutil__file__handler_8h-source.html<|end_filename|>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html><head><meta http-equiv="Content-Type" content="text/html;charset=UTF-8">
<title>Axis2/C: axutil_file_handler.h Source File</title>
<link href="doxygen.css" rel="stylesheet" type="text/css">
<link href="tabs.css" rel="stylesheet" type="text/css">
</head><body>
<!-- Generated by Doxygen 1.5.3 -->
<div class="tabs">
  <ul>
    <li><a href="index.html"><span>Main&nbsp;Page</span></a></li>
    <li><a href="modules.html"><span>Modules</span></a></li>
    <li><a href="annotated.html"><span>Classes</span></a></li>
    <li class="current"><a href="files.html"><span>Files</span></a></li>
    <li><a href="dirs.html"><span>Directories</span></a></li>
    <li><a href="pages.html"><span>Related&nbsp;Pages</span></a></li>
    <li><a href="examples.html"><span>Examples</span></a></li>
    <li>
      <form action="search.php" method="get">
        <table cellspacing="0" cellpadding="0" border="0">
          <tr>
            <td><label>&nbsp;<u>S</u>earch&nbsp;for&nbsp;</label></td>
            <td><input type="text" name="query" value="" size="20" accesskey="s"/></td>
          </tr>
        </table>
      </form>
    </li>
  </ul>
</div>
<div class="nav">
<a class="el" href="dir_f60961de8e5edc3b2658ef023e959e45.html">deploy</a>&nbsp;&raquo&nbsp;<a class="el" href="dir_6b4e91e54b7316b376882a6402adbf44.html">include</a>&nbsp;&raquo&nbsp;<a class="el" href="dir_df3a7695d5a9e696f30b948b566829e7.html">axis2-1.6.0</a></div>
<h1>axutil_file_handler.h</h1><div class="fragment"><pre class="fragment"><a name="l00001"></a>00001 
<a name="l00002"></a>00002 <span class="comment">/*</span>
<a name="l00003"></a>00003 <span class="comment"> * Copyright 2004,2005 The Apache Software Foundation.</span>
<a name="l00004"></a>00004 <span class="comment"> *</span>
<a name="l00005"></a>00005 <span class="comment"> * Licensed under the Apache License, Version 2.0 (the "License");</span>
<a name="l00006"></a>00006 <span class="comment"> * you may not use this file except in compliance with the License.</span>
<a name="l00007"></a>00007 <span class="comment"> * You may obtain count copy of the License at</span>
<a name="l00008"></a>00008 <span class="comment"> *</span>
<a name="l00009"></a>00009 <span class="comment"> *      http://www.apache.org/licenses/LICENSE-2.0</span>
<a name="l00010"></a>00010 <span class="comment"> *</span>
<a name="l00011"></a>00011 <span class="comment"> * Unless required by applicable law or agreed to in writing, software</span>
<a name="l00012"></a>00012 <span class="comment"> * distributed under the License is distributed on an "AS IS" BASIS,</span>
<a name="l00013"></a>00013 <span class="comment"> * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.</span>
<a name="l00014"></a>00014 <span class="comment"> * See the License for the specific language governing permissions and</span>
<a name="l00015"></a>00015 <span class="comment"> * limitations under the License.</span>
<a name="l00016"></a>00016 <span class="comment"> */</span>
<a name="l00017"></a>00017 
<a name="l00018"></a>00018 <span class="preprocessor">#ifndef AXUTIL_FILE_HANDLER_H</span>
<a name="l00019"></a>00019 <span class="preprocessor"></span><span class="preprocessor">#define AXUTIL_FILE_HANDLER_H</span>
<a name="l00020"></a>00020 <span class="preprocessor"></span>
<a name="l00021"></a>00021 <span class="preprocessor">#include &lt;axutil_string.h&gt;</span>
<a name="l00022"></a>00022 <span class="preprocessor">#include &lt;stdio.h&gt;</span>
<a name="l00023"></a>00023 
<a name="l00024"></a>00024 <span class="preprocessor">#ifdef __cplusplus</span>
<a name="l00025"></a>00025 <span class="preprocessor"></span><span class="keyword">extern</span> <span class="stringliteral">"C"</span>
<a name="l00026"></a>00026 {
<a name="l00027"></a>00027 <span class="preprocessor">#endif</span>
<a name="l00028"></a>00028 <span class="preprocessor"></span>
<a name="l00041"></a>00041     AXIS2_EXTERN <span class="keywordtype">void</span> *AXIS2_CALL
<a name="l00042"></a>00042     <a class="code" href="group__axutil__file__handler.html#ga530cb76dd78fa86c1e419d80c9b53fb">axutil_file_handler_open</a>(
<a name="l00043"></a>00043         <span class="keyword">const</span> <span class="keywordtype">char</span> *file_name,
<a name="l00044"></a>00044         <span class="keyword">const</span> <span class="keywordtype">char</span> *options);
<a name="l00045"></a>00045 
<a name="l00051"></a>00051     AXIS2_EXTERN axis2_status_t AXIS2_CALL
<a name="l00052"></a>00052     <a class="code" href="group__axutil__file__handler.html#g3d33d43657d61b1d2b6bf092791f6ec4">axutil_file_handler_close</a>(
<a name="l00053"></a>00053         <span class="keywordtype">void</span> *file_ptr);
<a name="l00054"></a>00054 
<a name="l00071"></a>00071     AXIS2_EXTERN axis2_status_t AXIS2_CALL
<a name="l00072"></a>00072     <a class="code" href="group__axutil__file__handler.html#g7180e54d81c91e00f030a6b6b5e49b2e">axutil_file_handler_access</a>(
<a name="l00073"></a>00073         <span class="keyword">const</span> axis2_char_t * path,
<a name="l00074"></a>00074         <span class="keywordtype">int</span> mode);
<a name="l00075"></a>00075 
<a name="l00076"></a>00076     AXIS2_EXTERN axis2_status_t AXIS2_CALL
<a name="l00077"></a>00077     axutil_file_handler_copy(
<a name="l00078"></a>00078         FILE *from, 
<a name="l00079"></a>00079         FILE *to);
<a name="l00080"></a>00080 
<a name="l00081"></a>00081     AXIS2_EXTERN <span class="keywordtype">long</span> AXIS2_CALL 
<a name="l00082"></a>00082     axutil_file_handler_size(
<a name="l00083"></a>00083         <span class="keyword">const</span> axis2_char_t *<span class="keyword">const</span> name);
<a name="l00084"></a>00084 
<a name="l00087"></a>00087 <span class="preprocessor">#ifdef __cplusplus</span>
<a name="l00088"></a>00088 <span class="preprocessor"></span>}
<a name="l00089"></a>00089 <span class="preprocessor">#endif</span>
<a name="l00090"></a>00090 <span class="preprocessor"></span>
<a name="l00091"></a>00091 <span class="preprocessor">#endif                          </span><span class="comment">/* AXIS2_FILE_HANDLER_H */</span>
</pre></div><hr size="1"><address style="text-align: right;"><small>Generated on Fri Apr 17 11:49:42 2009 for Axis2/C by&nbsp;
<a href="http://www.doxygen.org/index.html">
<img src="doxygen.png" alt="doxygen" align="middle" border="0"></a> 1.5.3 </small></address>
</body>
</html>


<|start_filename|>axiom/include/axiom_xml_reader.h<|end_filename|>

/*
 *   Copyright 2004,2005 The Apache Software Foundation.
 *
 *   Licensed 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 AXIOM_XML_READER_H
#define AXIOM_XML_READER_H

/**
 *@file axiom_xml_reader.h
 *@brief this is the parser abstraction layer for axis2
 */

#include <axutil_env.h>
#include <axutil_utils.h>
#include <axiom_defines.h>

#ifdef __cplusplus
extern "C"
{
#endif

    typedef struct axiom_xml_reader_ops axiom_xml_reader_ops_t;
    typedef struct axiom_xml_reader axiom_xml_reader_t;

    /**
      * @defgroup axiom_parser parser
      * @ingroup axiom
      * @{
      * @}
      */

    /**
     * @defgroup axiom_xml_reader XML reader
     * @ingroup axiom_parser
     * @{
     */

    typedef enum axiom_xml_reader_event_types
    {
        AXIOM_XML_READER_START_DOCUMENT = 0,
        AXIOM_XML_READER_START_ELEMENT,
        AXIOM_XML_READER_END_ELEMENT,
        AXIOM_XML_READER_SPACE,
        AXIOM_XML_READER_EMPTY_ELEMENT,
        AXIOM_XML_READER_CHARACTER,
        AXIOM_XML_READER_ENTITY_REFERENCE,
        AXIOM_XML_READER_COMMENT,
        AXIOM_XML_READER_PROCESSING_INSTRUCTION,
        AXIOM_XML_READER_CDATA,
        AXIOM_XML_READER_DOCUMENT_TYPE
    } axiom_xml_reader_event_types;

    /**
      * \brief AXIOM_XML_READER ops
      * Encapsulator struct for ops of axiom_xml_reader
      */

    struct axiom_xml_reader_ops
    {

        /**
         * causes the reader to read the next parse event. 
         * returns the event just read
         * @param parser axiom_xml_reader struct 
         * @param env    axutil_environment, MUST NOT be NULL
         * @returns one of the events defined in 
         *          axiom_xml_reader_event_types
         */

        int(
            AXIS2_CALL
            * next)(
                axiom_xml_reader_t * parser,
                const axutil_env_t * env);

        /**
        * free pull_parser
        * @param parser axiom_xml_reader struct 
        * @param env    axutil_environment MUST NOT be NULL 
        * @returns axis2_status_code
        */

        void(
            AXIS2_CALL
            * free)(
                axiom_xml_reader_t * parser,
                const axutil_env_t * env);

        /**
         * Get the Number of attributes in the current element 
         * @param parser axiom_xml_reader  
         * @param env    axutil_environment, MUST NOT be NULL.
         * @returns Number of attributes , AXIS2_FAILURE on error 
         */

        int(
            AXIS2_CALL
            * get_attribute_count)(
                axiom_xml_reader_t * parser,
                const axutil_env_t * env);

        /** This is used to get an attribute's localname using an index relative to
          * current element.The iterations are not zero based. 
          * To access the first attribute use 1 for parameter i
          * @param parser parser struct 
          * @param env environment struct
          * @param i attribute index
          * @returns the attribute localname 
          *          caller must free the value using axiom_xml_reader_xml_free macro       
          */
        axis2_char_t *(
            AXIS2_CALL
            * get_attribute_name_by_number)(
                axiom_xml_reader_t * parser,
                const axutil_env_t * env,
                int i);

        /** This is used to get an attribute's prefix using an index relative to
          * current element. The iterations are not zero based. 
          * To access the first attribute use 1 for parameter i
          * @param parser parser struct 
          * @param env environment, MUST NOT be NULL
          * @param i attribute index.
          * @returns the attribute prefix, returns NULL on error,  
          *          caller must free the value using axiom_xml_reader_xml_free macro       
          */

        axis2_char_t *(
            AXIS2_CALL
            * get_attribute_prefix_by_number)(
                axiom_xml_reader_t * parser,
                const axutil_env_t * env,
                int i);

        /** Gets an attribute's value using an index relative to
         * current element. The iterations are not zero based. 
         * To access the first attribute use 1 for parameter i
         * @param parser parser struct 
         * @param env environment, MUST NOT be NULL.
         * @param i attribute index
         * @returns the attribute value, returns NULL on error,
         *          caller must free the value using axiom_xml_reader_xml_free macro        
         */

        axis2_char_t *(
            AXIS2_CALL
            * get_attribute_value_by_number)(
                axiom_xml_reader_t * parser,
                const axutil_env_t * env,
                int i);

        /** Gets an attribute's namespace uri using an index relative to
         * current element. The iterations are not zero based. 
         * To access the first attribute use 1 for parameter i
         * @param parser parser struct 
         * @param env environment struct
         * @param i attribute index
         * @returns the attribute value, returns NULL on error  
         *          caller must free the value using axiom_xml_reader_xml_free macro        
         */

        axis2_char_t *(
            AXIS2_CALL
            * get_attribute_namespace_by_number)(
                axiom_xml_reader_t * parser,
                const axutil_env_t * env,
                int i);

        /** Returns the text value of current element
          * @param parser pointer to parser
          * @param env environment, MUST not be NULL
          * @returns Text Value, NULL on error 
          *          caller must free the value using axiom_xml_reader_xml_free macro 
          */
        axis2_char_t *(
            AXIS2_CALL
            * get_value)(
                axiom_xml_reader_t * parser,
                const axutil_env_t * env);

        /**
         * Returns the namespace count of current element 
         * @param parser parser struct 
         * @param env environment
         * @returns namespace count of current element,
         */
        int(
            AXIS2_CALL
            * get_namespace_count)(
                axiom_xml_reader_t * parser,
                const axutil_env_t * env);

        /**
         * Accesses the namespace uri of the namespaces declared in current element 
         * using an index 
         * @param parser parser struct 
         * @param env environment 
         * @param i index
         * @returns namespace uri of corresponding namespace
         * caller must free the value using axiom_xml_reader_xml_free macro        
         */
        axis2_char_t *(
            AXIS2_CALL
            * get_namespace_uri_by_number)(
                axiom_xml_reader_t * parser,
                const axutil_env_t * env,
                int i);

        /**
         * Accesses the namespace prefix of the namespaces declared in current element 
         * using an index 
         * @param parser parser struct 
         * @param env environment 
         * @param i index
         * @returns namespace prefix of corresponding namespace 
         * caller must free the value using axiom_xml_reader_xml_free macro        
         */
        axis2_char_t *(
            AXIS2_CALL
            * get_namespace_prefix_by_number)(
                axiom_xml_reader_t * parser,
                const axutil_env_t * env,
                int i);

        /**
         * Used to obtain the current element prefix
         * @param parser parser struct 
         * @param env environment struct
         * @returns prefix , NULL on error 
         * caller must free the value using axiom_xml_reader_xml_free macro
         */
        axis2_char_t *(
            AXIS2_CALL
            * get_prefix)(
                axiom_xml_reader_t * parser,
                const axutil_env_t * env);

        /**
         * Used to obtain the current element localname
         * @param parser parser struct 
         * @param env environment struct
         * @returns localname , NULL on error 
         *          caller must free the value using axiom_xml_reader_xml_free macro
         */
        axis2_char_t *(
            AXIS2_CALL
            * get_name)(
                axiom_xml_reader_t * parser,
                const axutil_env_t * env);

        /**
         * Used to get the processingInstruction target
         * @param parser parser struct
         * @param env environment, MUST NOT be NULL.
         * @returns target value of processingInstruction
         * caller must free the value using axiom_xml_reader_xml_free macro
         */
        axis2_char_t *(
            AXIS2_CALL
            * get_pi_target)(
                axiom_xml_reader_t * parser,
                const axutil_env_t * env);

        /**
         * Gets the processingInstruction data
         * @param parser parser struct
         * @param env environment, MUST NOT be NULL.
         * @returns data of processingInstruction
         * caller must free the value using axiom_xml_reader_xml_free macro
         */
        axis2_char_t *(
            AXIS2_CALL
            * get_pi_data)(
                axiom_xml_reader_t * parser,
                const axutil_env_t * env);

        /**
         * Used to get the DTD 
         * @param parser pointer to pull parser struct
         * @param env environment, MUST NOT be NULL.
         * @return text of doctype declaration. NULL is returns of no data 
         * exists.
         */
        axis2_char_t *(
            AXIS2_CALL
            * get_dtd)(
                axiom_xml_reader_t * parser,
                const axutil_env_t * env);

        /**
         *  Free function , this function wraps the underlying parser's 
         *  xml free function. For freeing values obatined by calling
         *  pull parser api methods, This function must be used.
         * @param parser pointer to axiom_xml_reader
         * @param env environment, MUST NOT be NULL.
         * @param data data values to be destroyed
         * @return status of the op, AXIS2_SUCCESS on success,
         * AXIS2_FAILURE on error.
         */
        void(
            AXIS2_CALL
            * xml_free)(
                axiom_xml_reader_t * parser,
                const axutil_env_t * env,
                void *data);

        /**
         * Gets the char set encoding of the parser 
         * @param parser xml parser
         * @param env environment
         * @returns char set encoding string or NULL in failure
         */

        axis2_char_t *(
            AXIS2_CALL
            * get_char_set_encoding)(
                axiom_xml_reader_t * parser,
                const axutil_env_t * env);

        /** Returns the namespace uri associated with current node */
        axis2_char_t *(
            AXIS2_CALL
            * get_namespace_uri)(
                axiom_xml_reader_t * parser,
                const axutil_env_t * env);

        axis2_char_t *(
            AXIS2_CALL
            * get_namespace_uri_by_prefix)(
                axiom_xml_reader_t * parser,
                const axutil_env_t * env,
                axis2_char_t * prefix);
    };

    /**
     * @brief axiom_xml_reader struct
      *   Axis2 OM pull_parser
     */
    struct axiom_xml_reader
    {
        const axiom_xml_reader_ops_t *ops;
    };

    /**
     * Creates an instance of axiom_xml_reader to parse
     * a file using an xml document in a file system
     * @param env environment struct, must not be null
     * @param filename url of an xml document
     * @returns a pointer to xml_pull_parser_t struct
     * NULL on error with error code set in the environment's error
     */
    AXIS2_EXTERN axiom_xml_reader_t *AXIS2_CALL
    axiom_xml_reader_create_for_file(
        const axutil_env_t * env,
        char *filename,
        const axis2_char_t * encoding);

    /**
     * This create an instance of axiom_xml_reader to
     * parse a xml document in a buffer. It takes a callback
     * function that takes a buffer and the size of the buffer
     * The user must implement a function that takes in buffer
     * and size and fill the buffer with specified size
     * with xml stream, parser will call this function to fill the
     * buffer on the fly while parsing.
     * @param env environment MUST NOT be NULL.
     * @param read_input_callback() callback function that fills
     * a char buffer.
     * @param close_input_callback() callback function that closes
     * the input stream.
     * @param ctx, context can be any data that needs to be passed
     * to the callback method.
     * @param encoding encoding scheme of the xml stream
     */
    AXIS2_EXTERN axiom_xml_reader_t *AXIS2_CALL
    axiom_xml_reader_create_for_io(
        const axutil_env_t * env,
        AXIS2_READ_INPUT_CALLBACK,
        AXIS2_CLOSE_INPUT_CALLBACK,
        void *ctx,
        const axis2_char_t * encoding);

    /**
     * Create an axiom_xml_reader_t using a buffer, which is the xml input
     * @param env environment, MUST not be NULL
     * @param container any data that needs to passed to the corresponding
     * parser's create_for_memory method. The reader does not take ownership
     * of this data.
     * @param size size of the buffer
     * @param encoding encoding of the xml
     * @return pointer to axiom_xml_reader_t struct on success , NULL otherwise
     */
    AXIS2_EXTERN axiom_xml_reader_t *AXIS2_CALL
    axiom_xml_reader_create_for_memory(
        const axutil_env_t * env,
        void *container,
        int size,
        const axis2_char_t * encoding,
        int type);

    /**
     * init function initializes the parser. When using libxml2 parser, this function 
     * is needed to initialize libxml2. 
     */
    AXIS2_EXTERN axis2_status_t AXIS2_CALL
    axiom_xml_reader_init(void
    );

    /**
     * parser cleanup function. This function is used to clean up the globals of libxml2
     * parser.
     */
    AXIS2_EXTERN axis2_status_t AXIS2_CALL
    axiom_xml_reader_cleanup(void
    );

    /**
     * while parsing through this method is calling for each and every
     * time it parse a charactor.This is the atomic method which parse charactors.
     * @param parser pointer to the OM XML Reader struct
     * @param env environment struct, must not be null
     *
     * @return 
     */
    AXIS2_EXTERN int AXIS2_CALL
    axiom_xml_reader_next(
        axiom_xml_reader_t * parser,
        const axutil_env_t * env);

    /**
     * @param parser pointer to the OM XML Reader struct
     * @param env environment struct, must not be null
     *
     * @return 
     */
    AXIS2_EXTERN void AXIS2_CALL
    axiom_xml_reader_free(
        axiom_xml_reader_t * parser,
        const axutil_env_t * env);

    /**
     * free method for xml reader
     * @param parser pointer to the OM XML Reader struct
     * @param env environment struct, must not be null
     *
     * @return 
     */
    AXIS2_EXTERN int AXIS2_CALL
    axiom_xml_reader_get_attribute_count(
        axiom_xml_reader_t * parser,
        const axutil_env_t * env);

    /**
     * @param parser pointer to the OM XML Reader struct
     * @param env environment struct, must not be null
     *
     * @return number of attributes in an element
     */
    AXIS2_EXTERN axis2_char_t *AXIS2_CALL
    axiom_xml_reader_get_attribute_name_by_number(
        axiom_xml_reader_t * parser,
        const axutil_env_t * env,
        int i);

    /**
     * @param parser pointer to the OM XML Reader struct
     * @param env environment struct, must not be null
     *
     * @return the attribute name by number
     */
    AXIS2_EXTERN axis2_char_t *AXIS2_CALL
    axiom_xml_reader_get_attribute_prefix_by_number(
        axiom_xml_reader_t * parser,
        const axutil_env_t * env,
        int i);

    /**
     * @param parser pointer to the OM XML Reader struct
     * @param env environment struct, must not be null
     *
     * @return the attribute prefix by number
     */
    AXIS2_EXTERN axis2_char_t *AXIS2_CALL
    axiom_xml_reader_get_attribute_value_by_number(
        axiom_xml_reader_t * parser,
        const axutil_env_t * env,
        int i);

    /**
     * @param parser pointer to the OM XML Reader struct
     * @param env environment struct, must not be null
     *
     * @return attribute value by number
     */
    AXIS2_EXTERN axis2_char_t *AXIS2_CALL
    axiom_xml_reader_get_attribute_namespace_by_number(
        axiom_xml_reader_t * parser,
        const axutil_env_t * env,
        int i);

    /**
     * @param parser pointer to the OM XML Reader struct
     * @param env environment struct, must not be null
     *
     * @return attribute namespace by number
     */
    AXIS2_EXTERN axis2_char_t *AXIS2_CALL
    axiom_xml_reader_get_value(
        axiom_xml_reader_t * parser,
        const axutil_env_t * env);

    /**
     * @param parser pointer to the OM XML Reader struct
     * @param env environment struct, must not be null
     *
     * @return value of the element
     */
    AXIS2_EXTERN int AXIS2_CALL
    axiom_xml_reader_get_namespace_count(
        axiom_xml_reader_t * parser,
        const axutil_env_t * env);

    /**
     * @param parser pointer to the OM XML Reader struct
     * @param env environment struct, must not be null
     *
     * @return the number of namespaces in an element
     */
    AXIS2_EXTERN axis2_char_t *AXIS2_CALL
    axiom_xml_reader_get_namespace_uri_by_number(
        axiom_xml_reader_t * parser,
        const axutil_env_t * env,
        int i);

    /**
     * @param parser pointer to the OM XML Reader struct
     * @param env environment struct, must not be null
     *
     * @return uri or the namespace by number
     */
    AXIS2_EXTERN axis2_char_t *AXIS2_CALL
    axiom_xml_reader_get_namespace_prefix_by_number(
        axiom_xml_reader_t * parser,
        const axutil_env_t * env,
        int i);

    /**
     * @param parser pointer to the OM XML Reader struct
     * @param env environment struct, must not be null
     *
     * @return prefix of the namespace by number
     */
    AXIS2_EXTERN axis2_char_t *AXIS2_CALL
    axiom_xml_reader_get_prefix(
        axiom_xml_reader_t * parser,
        const axutil_env_t * env);

    /**
     * @param parser pointer to the OM XML Reader struct
     * @param env environment struct, must not be null
     *
     * @return namespace prefix
     */
    AXIS2_EXTERN axis2_char_t *AXIS2_CALL
    axiom_xml_reader_get_name(
        axiom_xml_reader_t * parser,
        const axutil_env_t * env);

    /**
     * @param parser pointer to the OM XML Reader struct
     * @param env environment struct, must not be null
     *
     * @return name of the element
     */
    AXIS2_EXTERN axis2_char_t *AXIS2_CALL
    axiom_xml_reader_get_pi_target(
        axiom_xml_reader_t * parser,
        const axutil_env_t * env);

    /**
     * @param parser pointer to the OM XML Reader struct
     * @param env environment struct, must not be null
     *
     * @return 
     */
    AXIS2_EXTERN axis2_char_t *AXIS2_CALL
    axiom_xml_reader_get_pi_data(
        axiom_xml_reader_t * parser,
        const axutil_env_t * env);

    /**
     * @param parser pointer to the OM XML Reader struct
     * @param env environment struct, must not be null
     *
     * @return 
     */
    AXIS2_EXTERN axis2_char_t *AXIS2_CALL
    axiom_xml_reader_get_dtd(
        axiom_xml_reader_t * parser,
        const axutil_env_t * env);

    /**
     * @param parser pointer to the OM XML Reader struct
     * @param env environment struct, must not be null
     *
     * @return 
     */
    AXIS2_EXTERN void AXIS2_CALL
    axiom_xml_reader_xml_free(
        axiom_xml_reader_t * parser,
        const axutil_env_t * env,
        void *data);

    /**
     * free method for xml 
     * @param parser pointer to the OM XML Reader struct
     * @param env environment struct, must not be null
     *
     * @return 
     */
    AXIS2_EXTERN axis2_char_t *AXIS2_CALL
    axiom_xml_reader_get_char_set_encoding(
        axiom_xml_reader_t * parser,
        const axutil_env_t * env);

    /**
     * @param parser pointer to the OM XML Reader struct
     * @param env environment struct, must not be null
     *
     * @return charactor encoding
     */
    AXIS2_EXTERN axis2_char_t *AXIS2_CALL
    axiom_xml_reader_get_namespace_uri(
        axiom_xml_reader_t * parser,
        const axutil_env_t * env);

    /**
     * 
     * @param parser pointer to the OM XML Reader struct
     * @param env environment struct, must not be null
     *
     * @return 
     */
    AXIS2_EXTERN axis2_char_t *AXIS2_CALL
    axiom_xml_reader_get_namespace_uri_by_prefix(
        axiom_xml_reader_t * parser,
        const axutil_env_t * env,
        axis2_char_t * prefix);

    /** @} */

#ifdef __cplusplus
}
#endif

#endif                          /* AXIOM_XML_READER_H */
















<|start_filename|>build/win32/bindist.bat<|end_filename|>
@if "%VV32CALLED%"=="" goto call_vv32

:call_nmake
@nmake /NOLOGO dist
@goto end

:call_vv32
@call vcvars32.bat > vc.tmp
@del vc.tmp
@set VV32CALLED="YES"
@goto call_nmake

:end


<|start_filename|>test/core/clientapi/test_clientapi.c<|end_filename|>

/*
 * 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.
 */

#include <axis2_const.h>
#include <axutil_env.h>
#include <axis2_engine.h>
#include <axutil_allocator.h>
#include <axis2_svc_client.h>
#include <axis2_options.h>
#include <platforms/axutil_platform_auto_sense.h>

axiom_node_t *build_om_payload_for_echo_svc(
    const axutil_env_t * env,
    const axis2_char_t * echo_str);

void
axis2_test_svc_client_blocking(
    )
{
    axutil_env_t *env = NULL;
    axis2_options_t *options = NULL;
    const axis2_char_t *client_home = NULL;
    axis2_svc_client_t *svc_client = NULL;
    axiom_node_t *payload = NULL;
    axiom_node_t *ret_node = NULL;
    const axis2_char_t *address = NULL;
    axis2_endpoint_ref_t *endpoint_ref = NULL;

    axutil_allocator_t *allocator = axutil_allocator_init(NULL);
    env = axutil_env_create(allocator);
    axiom_element_t *result_ele = NULL;
    const axis2_char_t *echo_text = "echo_text";
    axis2_char_t *result = NULL;

    address = "http://localhost:9090/axis2/services/echo/echo";
    endpoint_ref = axis2_endpoint_ref_create(env, address);
    client_home = AXIS2_GETENV("AXIS2C_HOME");
    if (!client_home)
        client_home = "../../deploy";

    svc_client = axis2_svc_client_create(env, client_home);

    if (!svc_client)
    {
        printf("axis2_test axis2_svc_client_create FAILURE\n");
        printf
            ("Client repository path not properly set. Please check AXIS2C_HOME setting\n");
        return;
    }

    options = axis2_options_create(env);
    axis2_options_set_to(options, env, endpoint_ref);
    axis2_svc_client_set_options(svc_client, env, options);

    payload = build_om_payload_for_echo_svc(env, echo_text);
    ret_node = axis2_svc_client_send_receive(svc_client, env, payload);
    if (ret_node)
    {
        if (axiom_node_get_node_type(ret_node, env) == AXIOM_ELEMENT)
        {
            ret_node = axiom_node_get_first_child(ret_node, env);
            result_ele =
                (axiom_element_t *) axiom_node_get_data_element(ret_node, env);
            result = axiom_element_get_text(result_ele, env, ret_node);
            if (!strcmp(result, echo_text))
                printf("axis2_test SVC_CLIENT_SEND_RECEIVE SUCCESS\n");
            else
                printf("axis2_test SVC_CLIENT_SEND_RECEIVE FAILURE\n");
        }
    }
    axis2_svc_client_free(svc_client, env);
}

/* build SOAP request message content using OM */
axiom_node_t *
build_om_payload_for_echo_svc(
    const axutil_env_t * env,
    const axis2_char_t * echo_text)
{
    axiom_node_t *echo_om_node = NULL;
    axiom_element_t *echo_om_ele = NULL;
    axiom_node_t *text_om_node = NULL;
    axiom_element_t *text_om_ele = NULL;
    axiom_namespace_t *ns1 = NULL;

    ns1 =
        axiom_namespace_create(env, "http://ws.apache.org/axis2/c/samples",
                               "ns1");
    echo_om_ele =
        axiom_element_create(env, NULL, "echoString", ns1, &echo_om_node);
    text_om_ele =
        axiom_element_create(env, echo_om_node, "text", NULL, &text_om_node);
    axiom_element_set_text(text_om_ele, env, echo_text, text_om_node);

    return echo_om_node;
}

int
main(
    )
{
    axis2_test_svc_client_blocking();
    return 0;
}


<|start_filename|>xdocs/api/html/axiom__mime__parser_8h-source.html<|end_filename|>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html><head><meta http-equiv="Content-Type" content="text/html;charset=UTF-8">
<title>Axis2/C: axiom_mime_parser.h Source File</title>
<link href="doxygen.css" rel="stylesheet" type="text/css">
<link href="tabs.css" rel="stylesheet" type="text/css">
</head><body>
<!-- Generated by Doxygen 1.5.3 -->
<div class="tabs">
  <ul>
    <li><a href="index.html"><span>Main&nbsp;Page</span></a></li>
    <li><a href="modules.html"><span>Modules</span></a></li>
    <li><a href="annotated.html"><span>Classes</span></a></li>
    <li class="current"><a href="files.html"><span>Files</span></a></li>
    <li><a href="dirs.html"><span>Directories</span></a></li>
    <li><a href="pages.html"><span>Related&nbsp;Pages</span></a></li>
    <li><a href="examples.html"><span>Examples</span></a></li>
    <li>
      <form action="search.php" method="get">
        <table cellspacing="0" cellpadding="0" border="0">
          <tr>
            <td><label>&nbsp;<u>S</u>earch&nbsp;for&nbsp;</label></td>
            <td><input type="text" name="query" value="" size="20" accesskey="s"/></td>
          </tr>
        </table>
      </form>
    </li>
  </ul>
</div>
<div class="nav">
<a class="el" href="dir_f60961de8e5edc3b2658ef023e959e45.html">deploy</a>&nbsp;&raquo&nbsp;<a class="el" href="dir_6b4e91e54b7316b376882a6402adbf44.html">include</a>&nbsp;&raquo&nbsp;<a class="el" href="dir_df3a7695d5a9e696f30b948b566829e7.html">axis2-1.6.0</a></div>
<h1>axiom_mime_parser.h</h1><a href="axiom__mime__parser_8h.html">Go to the documentation of this file.</a><div class="fragment"><pre class="fragment"><a name="l00001"></a>00001 
<a name="l00002"></a>00002 <span class="comment">/*</span>
<a name="l00003"></a>00003 <span class="comment"> * Licensed to the Apache Software Foundation (ASF) under one or more</span>
<a name="l00004"></a>00004 <span class="comment"> * contributor license agreements.  See the NOTICE file distributed with</span>
<a name="l00005"></a>00005 <span class="comment"> * this work for additional information regarding copyright ownership.</span>
<a name="l00006"></a>00006 <span class="comment"> * The ASF licenses this file to You under the Apache License, Version 2.0</span>
<a name="l00007"></a>00007 <span class="comment"> * (the "License"); you may not use this file except in compliance with</span>
<a name="l00008"></a>00008 <span class="comment"> * the License.  You may obtain a copy of the License at</span>
<a name="l00009"></a>00009 <span class="comment"> *</span>
<a name="l00010"></a>00010 <span class="comment"> *      http://www.apache.org/licenses/LICENSE-2.0</span>
<a name="l00011"></a>00011 <span class="comment"> *</span>
<a name="l00012"></a>00012 <span class="comment"> * Unless required by applicable law or agreed to in writing, software</span>
<a name="l00013"></a>00013 <span class="comment"> * distributed under the License is distributed on an "AS IS" BASIS,</span>
<a name="l00014"></a>00014 <span class="comment"> * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.</span>
<a name="l00015"></a>00015 <span class="comment"> * See the License for the specific language governing permissions and</span>
<a name="l00016"></a>00016 <span class="comment"> * limitations under the License.</span>
<a name="l00017"></a>00017 <span class="comment"> */</span>
<a name="l00018"></a>00018 
<a name="l00019"></a>00019 <span class="preprocessor">#ifndef AXIOM_MIME_PARSER_H</span>
<a name="l00020"></a>00020 <span class="preprocessor"></span><span class="preprocessor">#define AXIOM_MIME_PARSER_H</span>
<a name="l00021"></a>00021 <span class="preprocessor"></span>
<a name="l00027"></a>00027 <span class="preprocessor">#include &lt;<a class="code" href="axutil__utils_8h.html">axutil_utils.h</a>&gt;</span>
<a name="l00028"></a>00028 <span class="preprocessor">#include &lt;axutil_error.h&gt;</span>
<a name="l00029"></a>00029 <span class="preprocessor">#include &lt;axutil_utils_defines.h&gt;</span>
<a name="l00030"></a>00030 <span class="preprocessor">#include &lt;<a class="code" href="axutil__env_8h.html" title="Axis2 environment that acts as a container for error, log and memory allocator routines...">axutil_env.h</a>&gt;</span>
<a name="l00031"></a>00031 <span class="preprocessor">#include &lt;<a class="code" href="axutil__allocator_8h.html" title="Axis2 memory allocator interface.">axutil_allocator.h</a>&gt;</span>
<a name="l00032"></a>00032 <span class="preprocessor">#include &lt;axutil_string.h&gt;</span>
<a name="l00033"></a>00033 <span class="preprocessor">#include &lt;<a class="code" href="axutil__hash_8h.html" title="Axis2 Hash Tables.">axutil_hash.h</a>&gt;</span>
<a name="l00034"></a>00034 <span class="preprocessor">#include &lt;axiom_mime_const.h&gt;</span>
<a name="l00035"></a>00035 
<a name="l00036"></a>00036 <span class="preprocessor">#ifdef __cplusplus</span>
<a name="l00037"></a>00037 <span class="preprocessor"></span><span class="keyword">extern</span> <span class="stringliteral">"C"</span>
<a name="l00038"></a>00038 {
<a name="l00039"></a>00039 <span class="preprocessor">#endif</span>
<a name="l00040"></a>00040 <span class="preprocessor"></span>
<a name="l00041"></a>00041 <span class="preprocessor">#define AXIOM_MIME_PARSER_BUFFER_SIZE (1024 * 1024/2)</span>
<a name="l00042"></a>00042 <span class="preprocessor"></span><span class="preprocessor">#define AXIOM_MIME_PARSER_MAX_BUFFERS 1000</span>
<a name="l00043"></a>00043 <span class="preprocessor"></span>
<a name="l00044"></a>00044 <span class="preprocessor">#define AXIOM_MIME_PARSER_END_OF_MIME_MAX_COUNT 100</span>
<a name="l00045"></a>00045 <span class="preprocessor"></span>
<a name="l00046"></a>00046 
<a name="l00047"></a>00047     <span class="keyword">typedef</span> <span class="keyword">struct </span>axiom_mime_parser axiom_mime_parser_t;
<a name="l00048"></a>00048 
<a name="l00062"></a>00062     <span class="comment">/*AXIS2_EXTERN axutil_hash_t *AXIS2_CALL</span>
<a name="l00063"></a>00063 <span class="comment">    axiom_mime_parser_parse(</span>
<a name="l00064"></a>00064 <span class="comment">        axiom_mime_parser_t * mime_parser,</span>
<a name="l00065"></a>00065 <span class="comment">        const axutil_env_t * env,</span>
<a name="l00066"></a>00066 <span class="comment">        AXIS2_READ_INPUT_CALLBACK,</span>
<a name="l00067"></a>00067 <span class="comment">        void *callback_ctx,</span>
<a name="l00068"></a>00068 <span class="comment">        axis2_char_t * mime_boundary);*/</span>
<a name="l00069"></a>00069 
<a name="l00070"></a>00070     AXIS2_EXTERN axis2_status_t AXIS2_CALL
<a name="l00071"></a>00071     <a class="code" href="group__axiom__mime__parser.html#gdc5c7fd17d2589e7bcb82db28a2ee2c7">axiom_mime_parser_parse_for_soap</a>(
<a name="l00072"></a>00072         axiom_mime_parser_t * mime_parser,
<a name="l00073"></a>00073         <span class="keyword">const</span> <a class="code" href="structaxutil__env.html" title="Axis2 Environment struct.">axutil_env_t</a> * env,
<a name="l00074"></a>00074         AXIS2_READ_INPUT_CALLBACK callback,
<a name="l00075"></a>00075         <span class="keywordtype">void</span> *callback_ctx,
<a name="l00076"></a>00076         axis2_char_t * mime_boundary);
<a name="l00077"></a>00077 
<a name="l00078"></a>00078 
<a name="l00079"></a>00079     AXIS2_EXTERN <a class="code" href="group__axutil__hash.html#gb2d7d14db2de92a101573f44421ac12a">axutil_hash_t</a> *AXIS2_CALL
<a name="l00080"></a>00080     axiom_mime_parser_parse_for_attachments(
<a name="l00081"></a>00081         axiom_mime_parser_t * mime_parser,
<a name="l00082"></a>00082         <span class="keyword">const</span> <a class="code" href="structaxutil__env.html" title="Axis2 Environment struct.">axutil_env_t</a> * env,
<a name="l00083"></a>00083         AXIS2_READ_INPUT_CALLBACK callback,
<a name="l00084"></a>00084         <span class="keywordtype">void</span> *callback_ctx,
<a name="l00085"></a>00085         axis2_char_t * mime_boundary,
<a name="l00086"></a>00086         <span class="keywordtype">void</span> *user_param);
<a name="l00087"></a>00087 
<a name="l00088"></a>00088 
<a name="l00095"></a>00095     AXIS2_EXTERN <a class="code" href="group__axutil__hash.html#gb2d7d14db2de92a101573f44421ac12a">axutil_hash_t</a> *AXIS2_CALL
<a name="l00096"></a>00096     <a class="code" href="group__axiom__mime__parser.html#g617b19ac339bcd891757054a089c3f84">axiom_mime_parser_get_mime_parts_map</a>(
<a name="l00097"></a>00097         axiom_mime_parser_t * mime_parser,
<a name="l00098"></a>00098         <span class="keyword">const</span> <a class="code" href="structaxutil__env.html" title="Axis2 Environment struct.">axutil_env_t</a> * env);
<a name="l00099"></a>00099 
<a name="l00106"></a>00106     AXIS2_EXTERN <span class="keywordtype">void</span> AXIS2_CALL
<a name="l00107"></a>00107     <a class="code" href="group__axiom__mime__parser.html#g0d0558064a7fca5445a4840be45b2600">axiom_mime_parser_free</a>(
<a name="l00108"></a>00108         axiom_mime_parser_t * mime_parser,
<a name="l00109"></a>00109         <span class="keyword">const</span> <a class="code" href="structaxutil__env.html" title="Axis2 Environment struct.">axutil_env_t</a> * env);
<a name="l00110"></a>00110 
<a name="l00117"></a>00117     AXIS2_EXTERN <span class="keywordtype">int</span> AXIS2_CALL
<a name="l00118"></a>00118     <a class="code" href="group__axiom__mime__parser.html#g40a67e95af791703fa91d7b796ea89a2">axiom_mime_parser_get_soap_body_len</a>(
<a name="l00119"></a>00119         axiom_mime_parser_t * mime_parser,
<a name="l00120"></a>00120         <span class="keyword">const</span> <a class="code" href="structaxutil__env.html" title="Axis2 Environment struct.">axutil_env_t</a> * env);
<a name="l00121"></a>00121 
<a name="l00128"></a>00128     AXIS2_EXTERN axis2_char_t *AXIS2_CALL
<a name="l00129"></a>00129     <a class="code" href="group__axiom__mime__parser.html#g6550688f1ddcc45d11363947f441e2be">axiom_mime_parser_get_soap_body_str</a>(
<a name="l00130"></a>00130         axiom_mime_parser_t * mime_parser,
<a name="l00131"></a>00131         <span class="keyword">const</span> <a class="code" href="structaxutil__env.html" title="Axis2 Environment struct.">axutil_env_t</a> * env);
<a name="l00132"></a>00132 
<a name="l00138"></a>00138     AXIS2_EXTERN axiom_mime_parser_t *AXIS2_CALL
<a name="l00139"></a>00139     <a class="code" href="group__axiom__mime__parser.html#g05b3c82c78a50ffe9d1d05fffdc4c2ee">axiom_mime_parser_create</a>(
<a name="l00140"></a>00140         <span class="keyword">const</span> <a class="code" href="structaxutil__env.html" title="Axis2 Environment struct.">axutil_env_t</a> * env);
<a name="l00141"></a>00141 
<a name="l00149"></a>00149     AXIS2_EXTERN <span class="keywordtype">void</span> AXIS2_CALL
<a name="l00150"></a>00150     <a class="code" href="group__axiom__mime__parser.html#gbe1b6ea790d1a5315b0b46df54e26a2e">axiom_mime_parser_set_buffer_size</a>(
<a name="l00151"></a>00151         axiom_mime_parser_t * mime_parser,
<a name="l00152"></a>00152         <span class="keyword">const</span> <a class="code" href="structaxutil__env.html" title="Axis2 Environment struct.">axutil_env_t</a> * env,
<a name="l00153"></a>00153         <span class="keywordtype">int</span> size);
<a name="l00154"></a>00154 
<a name="l00162"></a>00162     AXIS2_EXTERN <span class="keywordtype">void</span> AXIS2_CALL
<a name="l00163"></a>00163     <a class="code" href="group__axiom__mime__parser.html#g5673d9d89ee85532d51e16756c712e68">axiom_mime_parser_set_max_buffers</a>(
<a name="l00164"></a>00164         axiom_mime_parser_t * mime_parser,
<a name="l00165"></a>00165         <span class="keyword">const</span> <a class="code" href="structaxutil__env.html" title="Axis2 Environment struct.">axutil_env_t</a> * env,
<a name="l00166"></a>00166         <span class="keywordtype">int</span> num);
<a name="l00167"></a>00167 
<a name="l00168"></a>00168     
<a name="l00177"></a>00177     AXIS2_EXTERN <span class="keywordtype">void</span> AXIS2_CALL
<a name="l00178"></a>00178     <a class="code" href="group__axiom__mime__parser.html#gd8edc291c3b20e88329ee6e077ca3a0c">axiom_mime_parser_set_attachment_dir</a>(
<a name="l00179"></a>00179         axiom_mime_parser_t *mime_parser,
<a name="l00180"></a>00180         <span class="keyword">const</span> <a class="code" href="structaxutil__env.html" title="Axis2 Environment struct.">axutil_env_t</a> *env,
<a name="l00181"></a>00181         axis2_char_t *attachment_dir);
<a name="l00182"></a>00182 
<a name="l00183"></a>00183 
<a name="l00193"></a>00193     AXIS2_EXTERN <span class="keywordtype">void</span> AXIS2_CALL
<a name="l00194"></a>00194     <a class="code" href="group__axiom__mime__parser.html#g6440482e9821e7bd06be17382568f9b2">axiom_mime_parser_set_caching_callback_name</a>(
<a name="l00195"></a>00195         axiom_mime_parser_t *mime_parser,
<a name="l00196"></a>00196         <span class="keyword">const</span> <a class="code" href="structaxutil__env.html" title="Axis2 Environment struct.">axutil_env_t</a> *env,
<a name="l00197"></a>00197         axis2_char_t *callback_name);
<a name="l00198"></a>00198 
<a name="l00199"></a>00199 
<a name="l00200"></a>00200     AXIS2_EXTERN <span class="keywordtype">void</span> AXIS2_CALL
<a name="l00201"></a>00201     axiom_mime_parser_set_mime_boundary(
<a name="l00202"></a>00202         axiom_mime_parser_t *mime_parser,
<a name="l00203"></a>00203         <span class="keyword">const</span> <a class="code" href="structaxutil__env.html" title="Axis2 Environment struct.">axutil_env_t</a> *env,
<a name="l00204"></a>00204         axis2_char_t *mime_boundary);
<a name="l00205"></a>00205 
<a name="l00206"></a>00206 
<a name="l00207"></a>00207     AXIS2_EXTERN axis2_char_t *AXIS2_CALL
<a name="l00208"></a>00208     axiom_mime_parser_get_mime_boundary(
<a name="l00209"></a>00209         axiom_mime_parser_t *mime_parser,
<a name="l00210"></a>00210         <span class="keyword">const</span> <a class="code" href="structaxutil__env.html" title="Axis2 Environment struct.">axutil_env_t</a> *env);
<a name="l00211"></a>00211 
<a name="l00212"></a>00212 
<a name="l00213"></a>00213 
<a name="l00214"></a>00214 
<a name="l00217"></a>00217 <span class="preprocessor">#ifdef __cplusplus</span>
<a name="l00218"></a>00218 <span class="preprocessor"></span>}
<a name="l00219"></a>00219 <span class="preprocessor">#endif</span>
<a name="l00220"></a>00220 <span class="preprocessor"></span><span class="preprocessor">#endif                          </span><span class="comment">/* AXIOM_MIME_PARSER_H */</span>
</pre></div><hr size="1"><address style="text-align: right;"><small>Generated on Fri Apr 17 11:49:42 2009 for Axis2/C by&nbsp;
<a href="http://www.doxygen.org/index.html">
<img src="doxygen.png" alt="doxygen" align="middle" border="0"></a> 1.5.3 </small></address>
</body>
</html>


<|start_filename|>src/core/transport/amqp/receiver/qpid_receiver/axis2_qpid_receiver_interface.cpp<|end_filename|>
/*
* 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.
*/

#include <axis2_qpid_receiver.h>
#include <axis2_qpid_receiver_interface.h>

#ifdef __cplusplus
extern "C"
{
#endif

AXIS2_EXTERN axis2_qpid_receiver_resource_pack_t* AXIS2_CALL
axis2_qpid_receiver_create(
	const axutil_env_t* env,
	axis2_conf_ctx_t* conf_ctx)
{
	AXIS2_ENV_CHECK(env, NULL);
	
	axis2_qpid_receiver_resource_pack_t* resource_pack = NULL;

	resource_pack = (axis2_qpid_receiver_resource_pack_t*)AXIS2_MALLOC
		(env->allocator, sizeof(axis2_qpid_receiver_resource_pack_t));

	if (!resource_pack)
	{
		AXIS2_ERROR_SET(env->error, AXIS2_ERROR_NO_MEMORY, AXIS2_FAILURE);
		return NULL;
	}

	/* Create Qpid Receiver */
	Axis2QpidReceiver* qpid_receiver = new Axis2QpidReceiver(env, conf_ctx);
	
	resource_pack->qpid_receiver = qpid_receiver;

	return resource_pack;
}


AXIS2_EXTERN axis2_status_t AXIS2_CALL
axis2_qpid_receiver_start(
	axis2_qpid_receiver_resource_pack_t* receiver_resource_pack,
	const axutil_env_t* env)
{
	AXIS2_ENV_CHECK(env, AXIS2_FAILURE);

	axis2_status_t status = AXIS2_FAILURE;

	/* Start Qpid Receiver */
	Axis2QpidReceiver* qpid_receiver = (Axis2QpidReceiver*)receiver_resource_pack->qpid_receiver;

	if ((qpid_receiver) && (qpid_receiver->start()))
	{
		status = AXIS2_SUCCESS;
	}

	return status;
}


AXIS2_EXTERN axis2_bool_t AXIS2_CALL
axis2_qpid_receiver_is_running(
	axis2_qpid_receiver_resource_pack_t* receiver_resource_pack,
	const axutil_env_t* env)
{
	return AXIS2_TRUE;
}


AXIS2_EXTERN void AXIS2_CALL
axis2_qpid_receiver_free(
	axis2_qpid_receiver_resource_pack_t* receiver_resource_pack,
	const axutil_env_t* env)
{
	AXIS2_ENV_CHECK(env, void);
	
	if (receiver_resource_pack)
	{
		Axis2QpidReceiver* qpid_receiver = (Axis2QpidReceiver*)receiver_resource_pack->qpid_receiver;
		if (qpid_receiver)
			delete qpid_receiver;
		
		AXIS2_FREE(env->allocator, receiver_resource_pack);
	}
}

#ifdef __cplusplus
}
#endif


<|start_filename|>xdocs/api/html/group__mtom__sending__callback.html<|end_filename|>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html><head><meta http-equiv="Content-Type" content="text/html;charset=UTF-8">
<title>Axis2/C: Mtom_sending_callback</title>
<link href="doxygen.css" rel="stylesheet" type="text/css">
<link href="tabs.css" rel="stylesheet" type="text/css">
</head><body>
<!-- Generated by Doxygen 1.5.3 -->
<div class="tabs">
  <ul>
    <li><a href="index.html"><span>Main&nbsp;Page</span></a></li>
    <li><a href="modules.html"><span>Modules</span></a></li>
    <li><a href="annotated.html"><span>Classes</span></a></li>
    <li><a href="files.html"><span>Files</span></a></li>
    <li><a href="dirs.html"><span>Directories</span></a></li>
    <li><a href="pages.html"><span>Related&nbsp;Pages</span></a></li>
    <li><a href="examples.html"><span>Examples</span></a></li>
    <li>
      <form action="search.php" method="get">
        <table cellspacing="0" cellpadding="0" border="0">
          <tr>
            <td><label>&nbsp;<u>S</u>earch&nbsp;for&nbsp;</label></td>
            <td><input type="text" name="query" value="" size="20" accesskey="s"/></td>
          </tr>
        </table>
      </form>
    </li>
  </ul>
</div>
<h1>Mtom_sending_callback<br>
<small>
[<a class="el" href="group__axiom.html">AXIOM project</a>]</small>
</h1><table border="0" cellpadding="0" cellspacing="0">
<tr><td></td></tr>
<tr><td colspan="2"><br><h2>Classes</h2></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top">struct &nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="structaxiom__mtom__sending__callback__ops.html">axiom_mtom_sending_callback_ops</a></td></tr>

<tr><td class="memItemLeft" nowrap align="right" valign="top">struct &nbsp;</td><td class="memItemRight" valign="bottom"><b>axiom_mtom_sending_callback</b></td></tr>

<tr><td colspan="2"><br><h2>Defines</h2></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="g94942a31b2618aab652c761b4b8c0b10"></a><!-- doxytag: member="mtom_sending_callback::AXIOM_MTOM_SENDING_CALLBACK_INIT_HANDLER" ref="g94942a31b2618aab652c761b4b8c0b10" args="(mtom_sending_callback, env, user_param)" -->
#define&nbsp;</td><td class="memItemRight" valign="bottom"><b>AXIOM_MTOM_SENDING_CALLBACK_INIT_HANDLER</b>(mtom_sending_callback, env, user_param)&nbsp;&nbsp;&nbsp;((mtom_sending_callback)-&gt;ops-&gt;init_handler(mtom_sending_callback, env, user_param))</td></tr>

<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="g4bd56dcddd5fe934a05b794317878f8e"></a><!-- doxytag: member="mtom_sending_callback::AXIOM_MTOM_SENDING_CALLBACK_LOAD_DATA" ref="g4bd56dcddd5fe934a05b794317878f8e" args="(mtom_sending_callback, env, handler, buffer)" -->
#define&nbsp;</td><td class="memItemRight" valign="bottom"><b>AXIOM_MTOM_SENDING_CALLBACK_LOAD_DATA</b>(mtom_sending_callback, env, handler, buffer)&nbsp;&nbsp;&nbsp;((mtom_sending_callback)-&gt;ops-&gt;load_data(mtom_sending_callback, env, handler, buffer))</td></tr>

<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="gad9fbb348469253ab2f95b1e73322102"></a><!-- doxytag: member="mtom_sending_callback::AXIOM_MTOM_SENDING_CALLBACK_CLOSE_HANDLER" ref="gad9fbb348469253ab2f95b1e73322102" args="(mtom_sending_callback, env, handler)" -->
#define&nbsp;</td><td class="memItemRight" valign="bottom"><b>AXIOM_MTOM_SENDING_CALLBACK_CLOSE_HANDLER</b>(mtom_sending_callback, env, handler)&nbsp;&nbsp;&nbsp;((mtom_sending_callback)-&gt;ops-&gt;close_handler(mtom_sending_callback, env, handler))</td></tr>

<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="g211dda45a1cf339794a6ed55fe4f94d9"></a><!-- doxytag: member="mtom_sending_callback::AXIOM_MTOM_SENDING_CALLBACK_FREE" ref="g211dda45a1cf339794a6ed55fe4f94d9" args="(mtom_sending_callback, env)" -->
#define&nbsp;</td><td class="memItemRight" valign="bottom"><b>AXIOM_MTOM_SENDING_CALLBACK_FREE</b>(mtom_sending_callback, env)&nbsp;&nbsp;&nbsp;((mtom_sending_callback)-&gt;ops-&gt;free(mtom_sending_callback, env))</td></tr>

<tr><td colspan="2"><br><h2>Typedefs</h2></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top">typedef struct <br>
<a class="el" href="structaxiom__mtom__sending__callback__ops.html">axiom_mtom_sending_callback_ops</a>&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__mtom__sending__callback.html#g2ec4f4b0d36484d7d80600f079ad153c">axiom_mtom_sending_callback_ops_t</a></td></tr>

<tr><td class="memItemLeft" nowrap align="right" valign="top">typedef struct <br>
axiom_mtom_sending_callback&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__mtom__sending__callback.html#g1b8c0dbaa427283987be2131fcb340ee">axiom_mtom_sending_callback_t</a></td></tr>

</table>
<hr><h2>Typedef Documentation</h2>
<a class="anchor" name="g2ec4f4b0d36484d7d80600f079ad153c"></a><!-- doxytag: member="axiom_mtom_sending_callback.h::axiom_mtom_sending_callback_ops_t" ref="g2ec4f4b0d36484d7d80600f079ad153c" args="" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">typedef struct <a class="el" href="structaxiom__mtom__sending__callback__ops.html">axiom_mtom_sending_callback_ops</a> <a class="el" href="structaxiom__mtom__sending__callback__ops.html">axiom_mtom_sending_callback_ops_t</a>          </td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
Type name for struct <a class="el" href="structaxiom__mtom__sending__callback__ops.html">axiom_mtom_sending_callback_ops</a> 
</div>
</div><p>
<a class="anchor" name="g1b8c0dbaa427283987be2131fcb340ee"></a><!-- doxytag: member="axiom_mtom_sending_callback.h::axiom_mtom_sending_callback_t" ref="g1b8c0dbaa427283987be2131fcb340ee" args="" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">typedef struct axiom_mtom_sending_callback <a class="el" href="group__mtom__sending__callback.html#g1b8c0dbaa427283987be2131fcb340ee">axiom_mtom_sending_callback_t</a>          </td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
Type name for struct axiom_mtom_sending_callback 
</div>
</div><p>
<hr size="1"><address style="text-align: right;"><small>Generated on Fri Apr 17 11:49:44 2009 for Axis2/C by&nbsp;
<a href="http://www.doxygen.org/index.html">
<img src="doxygen.png" alt="doxygen" align="middle" border="0"></a> 1.5.3 </small></address>
</body>
</html>


<|start_filename|>src/core/transport/http/common/simple_http_svr_conn.c<|end_filename|>
/*
 * 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.
 */

#include <axis2_simple_http_svr_conn.h>
#include <axis2_http_transport.h>
#include <axutil_string.h>
#include <axutil_network_handler.h>
#include <axutil_http_chunked_stream.h>
#include <platforms/axutil_platform_auto_sense.h>
#include <string.h>
#include <axis2_http_simple_response.h>
#include <axis2_http_transport_utils.h>

struct axis2_simple_http_svr_conn
{
    int socket;
    axutil_stream_t *stream;
    axis2_bool_t keep_alive;
};

AXIS2_EXTERN axis2_simple_http_svr_conn_t *AXIS2_CALL
axis2_simple_http_svr_conn_create(
    const axutil_env_t * env,
    int sockfd)
{
    axis2_simple_http_svr_conn_t *svr_conn = NULL;

    svr_conn = (axis2_simple_http_svr_conn_t *)
        AXIS2_MALLOC(env->allocator, sizeof(axis2_simple_http_svr_conn_t));

    if (!svr_conn)
    {
        AXIS2_HANDLE_ERROR(env, AXIS2_ERROR_NO_MEMORY, AXIS2_FAILURE);
        return NULL;
    }
    memset ((void *)svr_conn, 0, sizeof (axis2_simple_http_svr_conn_t));
    svr_conn->socket = sockfd;
    svr_conn->stream = NULL;
    svr_conn->keep_alive = AXIS2_FALSE;

    if (-1 != svr_conn->socket)
    {
        svr_conn->stream = axutil_stream_create_socket(env, svr_conn->socket);
        if (!svr_conn->stream)
        {
            AXIS2_LOG_ERROR (env->log, AXIS2_LOG_SI, 
                             "socket creation failed, socket %d", (int)sockfd);
            axis2_simple_http_svr_conn_free((axis2_simple_http_svr_conn_t *)
                                            svr_conn, env);
            return NULL;
        }
    }
    return svr_conn;
}

AXIS2_EXTERN void AXIS2_CALL
axis2_simple_http_svr_conn_free(
    axis2_simple_http_svr_conn_t * svr_conn,
    const axutil_env_t * env)
{
    if (!svr_conn)
    {
        return;
    }

    axis2_simple_http_svr_conn_close(svr_conn, env);
    AXIS2_FREE(env->allocator, svr_conn);

    return;
}

AXIS2_EXTERN axis2_status_t AXIS2_CALL
axis2_simple_http_svr_conn_close(
    axis2_simple_http_svr_conn_t * svr_conn,
    const axutil_env_t * env)
{
    axutil_stream_free(svr_conn->stream, env);
    if (-1 != svr_conn->socket)
    {
        axutil_network_handler_close_socket(env, svr_conn->socket);
        svr_conn->socket = -1;
    }
    return AXIS2_SUCCESS;
}


AXIS2_EXTERN axis2_bool_t AXIS2_CALL
axis2_simple_http_svr_conn_is_open(
    axis2_simple_http_svr_conn_t * svr_conn,
    const axutil_env_t * env)
{
    if (-1 != svr_conn->socket)
    {
        return AXIS2_TRUE;
    }
    return AXIS2_FALSE;
}


AXIS2_EXTERN axis2_status_t AXIS2_CALL
axis2_simple_http_svr_conn_set_keep_alive(
    axis2_simple_http_svr_conn_t * svr_conn,
    const axutil_env_t * env,
    axis2_bool_t keep_alive)
{
    svr_conn->keep_alive = keep_alive;
    return AXIS2_SUCCESS;
}


AXIS2_EXTERN axis2_bool_t AXIS2_CALL
axis2_simple_http_svr_conn_is_keep_alive(
    axis2_simple_http_svr_conn_t * svr_conn,
    const axutil_env_t * env)
{
    return svr_conn->keep_alive;
}


AXIS2_EXTERN axutil_stream_t *AXIS2_CALL
axis2_simple_http_svr_conn_get_stream(
    const axis2_simple_http_svr_conn_t * svr_conn,
    const axutil_env_t * env)
{
    return svr_conn->stream;
}


AXIS2_EXTERN axis2_http_response_writer_t *AXIS2_CALL
axis2_simple_http_svr_conn_get_writer(
    const axis2_simple_http_svr_conn_t * svr_conn,
    const axutil_env_t * env)
{
    return axis2_http_response_writer_create(env, svr_conn->stream);
}


AXIS2_EXTERN axis2_http_simple_request_t *AXIS2_CALL
axis2_simple_http_svr_conn_read_request(
    axis2_simple_http_svr_conn_t * svr_conn,
    const axutil_env_t * env)
{
    axis2_char_t* str_line = NULL;
    axis2_char_t tmp_buf[2048];
    int read = -1;
    axis2_bool_t end_of_line = AXIS2_FALSE;
    axis2_bool_t end_of_headers = AXIS2_FALSE;
    axis2_http_request_line_t *request_line = NULL;
    axis2_http_simple_request_t *request = NULL;

    while ((read =
            axutil_stream_peek_socket(svr_conn->stream, env, tmp_buf,
                                      2048 - 1)) > 0)
    {
        axis2_char_t *start = tmp_buf;
        axis2_char_t *end = NULL;
        tmp_buf[read] = AXIS2_ESC_NULL;
        end = strstr(tmp_buf, AXIS2_HTTP_CRLF);
        if (end)
        {
            read =
                axutil_stream_read(svr_conn->stream, env, tmp_buf,
                                   end - start + 2);
            if (read > 0)
            {
                axis2_char_t* tmp_str_line = NULL;
                tmp_buf[read] = AXIS2_ESC_NULL;
                tmp_str_line = axutil_stracat(env, str_line, tmp_buf);
                if(tmp_str_line)
                {
                    AXIS2_FREE(env->allocator, str_line);
                    str_line = tmp_str_line;
                }
                break;
            }
            else
            {
                /* read returns 0 or negative value, this could be an error */
                break;
            }
        }
        else
        {
            /* not reached end yet */
            read = axutil_stream_read(svr_conn->stream, env, tmp_buf, 2048 - 1);
            if (read > 0)
            {
                axis2_char_t* tmp_str_line = NULL;
                tmp_buf[read] = AXIS2_ESC_NULL;
                tmp_str_line = axutil_stracat(env, str_line, tmp_buf);
                if(tmp_str_line)
                {
                    AXIS2_FREE(env->allocator, str_line);
                    str_line = tmp_str_line;
                }
            }
        }
    }

    request_line = axis2_http_request_line_parse_line(env, str_line);
    AXIS2_FREE(env->allocator, str_line);
    str_line = NULL;

    if (!request_line)
    {
        AXIS2_HANDLE_ERROR(env,
                        AXIS2_ERROR_INVALID_HTTP_HEADER_START_LINE,
                        AXIS2_FAILURE);
        return NULL;
    }
    request = axis2_http_simple_request_create(env, request_line, NULL, 0,
                                               svr_conn->stream);
    /* now read the headers */
    end_of_line = AXIS2_FALSE;
    while (AXIS2_FALSE == end_of_headers)
    {
        axis2_bool_t is_read = AXIS2_FALSE;
        while ((read =
                axutil_stream_peek_socket(svr_conn->stream, env, tmp_buf,
                                          2048 - 1)) > 0)
        {
            axis2_char_t *start = tmp_buf;
            axis2_char_t *end = NULL;
            is_read = AXIS2_TRUE;
            tmp_buf[read] = AXIS2_ESC_NULL;
            end = strstr(tmp_buf, AXIS2_HTTP_CRLF);
            if (end)
            {
                read =
                    axutil_stream_read(svr_conn->stream, env, tmp_buf,
                                       end - start + 2);
                if (read > 0)
                {
		    axis2_char_t* tmp_str_line = NULL;
                    tmp_buf[read] = AXIS2_ESC_NULL;
                    tmp_str_line = axutil_stracat(env, str_line, tmp_buf);
                    if(tmp_str_line)
                    {
                        AXIS2_FREE(env->allocator, str_line);
                        str_line = tmp_str_line;
                    }
                    end_of_line = AXIS2_TRUE;
                    break;
                }
                else
                {
                    break;
                }
            }
            else
            {
                read =
                    axutil_stream_read(svr_conn->stream, env, tmp_buf,
                                       2048 - 1);
                if (read > 0)
                {
		    axis2_char_t* tmp_str_line = NULL;
                    tmp_buf[read] = AXIS2_ESC_NULL;
                    tmp_str_line = axutil_stracat(env, str_line, tmp_buf);
                    if(tmp_str_line)
                    {
                        AXIS2_FREE(env->allocator, str_line);
                        str_line = tmp_str_line;
                    }
                }
            }

        }

        if (AXIS2_TRUE == end_of_line)
        {
            if (0 == axutil_strcmp(str_line, AXIS2_HTTP_CRLF))
            {
                end_of_headers = AXIS2_TRUE;
            }
            else
            {
                axis2_http_header_t *tmp_header =
                    axis2_http_header_create_by_str(env, str_line);
                AXIS2_FREE(env->allocator, str_line);
                str_line = NULL;
                if (tmp_header)
                {
                    axis2_http_simple_request_add_header(request, env,
                                                         tmp_header);
                }
            }
        }
        end_of_line = AXIS2_FALSE;
        if(!is_read)
        {
            /*if nothing is read, this loop should be broken. Otherwise, going to be endless loop */
            break; 
        }
    }

    AXIS2_FREE(env->allocator, str_line);

    return request;
}

AXIS2_EXTERN axis2_status_t AXIS2_CALL
axis2_simple_http_svr_conn_write_response(
    axis2_simple_http_svr_conn_t * svr_conn,
    const axutil_env_t * env,
    axis2_http_simple_response_t * response)
{
    axis2_http_response_writer_t *response_writer = NULL;
    axutil_array_list_t *headers = NULL;
    axutil_stream_t *response_stream = NULL;
    axis2_char_t *response_body = NULL;
    int body_size = 0;
    int i = 0;
    axis2_http_header_t *enc_header = NULL;
    axis2_bool_t chuked_encoding = AXIS2_FALSE;
    axis2_char_t *status_line = NULL;
    axis2_bool_t binary_content = AXIS2_FALSE;
    axis2_char_t *content_type = NULL;

    AXIS2_PARAM_CHECK(env->error, response, AXIS2_FAILURE);

    response_writer = axis2_http_response_writer_create(env, svr_conn->stream);
    content_type =
        (axis2_char_t *) axis2_http_simple_response_get_content_type(response,
                                                                     env);
    if (content_type)
    {
        if (strstr(content_type, AXIS2_HTTP_HEADER_ACCEPT_MULTIPART_RELATED)
            && strstr(content_type, AXIS2_HTTP_HEADER_ACCEPT_XOP_XML))
            binary_content = AXIS2_TRUE;
    }
    if (!response_writer)
    {
        return AXIS2_FAILURE;
    }
    enc_header = axis2_http_simple_response_get_first_header(response, env,
                                                             AXIS2_HTTP_HEADER_TRANSFER_ENCODING);
    if (enc_header)
    {
        axis2_char_t *enc_value = axis2_http_header_get_value(enc_header, env);
        if (enc_value)
        {
            if (0 == axutil_strcmp(enc_value,
                                   AXIS2_HTTP_HEADER_TRANSFER_ENCODING_CHUNKED))
            {
                chuked_encoding = AXIS2_TRUE;
                /* remove the content length header */
                if (AXIS2_TRUE ==
                    axis2_http_simple_response_contains_header(response, env,
                                                               AXIS2_HTTP_HEADER_CONTENT_LENGTH))
                {
                    axis2_http_simple_response_remove_headers(response, env,
                                                              AXIS2_HTTP_HEADER_CONTENT_LENGTH);
                }
            }
        }
    }
    status_line = axis2_http_simple_response_get_status_line(response, env);
    if (!status_line)
    {
        AXIS2_HANDLE_ERROR(env,
                           AXIS2_ERROR_INVALID_HTTP_HEADER_START_LINE,
                           AXIS2_FAILURE);
        axis2_http_response_writer_free(response_writer, env);
        response_writer = NULL;
        return AXIS2_FAILURE;
    }
    axis2_http_response_writer_print_str(response_writer, env, status_line);
    headers = axis2_http_simple_response_get_headers(response, env);

    if (headers)
    {
        for (i = 0; i < axutil_array_list_size(headers, env); i++)
        {
            axis2_http_header_t *header = NULL;
            header = (axis2_http_header_t *) axutil_array_list_get(headers, env,
                                                                   i);
            if (header)
            {
                axis2_char_t *header_ext_form =
                    axis2_http_header_to_external_form((axis2_http_header_t *)
                                                       header, env);
                axis2_http_response_writer_print_str(response_writer, env,
                                                     header_ext_form);
                AXIS2_FREE(env->allocator, header_ext_form);
            }
        }
    }
    axis2_http_response_writer_println(response_writer, env);

    response_stream = axis2_http_simple_response_get_body(response, env);
    if (response_stream)
    {
        body_size = axutil_stream_get_len(response_stream, env);
        response_body = axutil_stream_get_buffer(response_stream, env);
        axutil_stream_flush_buffer(response_stream, env);
        response_body[body_size] = AXIS2_ESC_NULL;
    }

    if (body_size <= 0 && !binary_content)
    {
        axis2_http_response_writer_free(response_writer, env);
        return AXIS2_SUCCESS;
    }

    /* This sending a normal SOAP response without chunk transfer encoding */
    if (AXIS2_FALSE == chuked_encoding && !binary_content)
    {
        axis2_status_t write_stat = AXIS2_FAILURE;
        if (AXIS2_FALSE == binary_content)
        {
            write_stat = axis2_http_response_writer_println_str(response_writer,
                                                                env,
                                                                response_body);
        }
        else
        {
            write_stat = axis2_http_response_writer_write_buf(response_writer,
                                                              env,
                                                              response_body, 0,
                                                              body_size);
        }

        if (AXIS2_SUCCESS != write_stat)
        {
            AXIS2_HANDLE_ERROR(env, AXIS2_ERROR_WRITING_RESPONSE,
                               AXIS2_FAILURE);
            axis2_http_response_writer_free(response_writer, env);
            return AXIS2_FAILURE;
        }
    }
    
    /* In the MTOM case we enable chunking inorder to send the attachment */
    
    else if(binary_content)
    {
        axutil_http_chunked_stream_t *chunked_stream = NULL;
        axis2_status_t write_stat = AXIS2_FAILURE;
        axutil_array_list_t *mime_parts = NULL;
        axis2_char_t *mtom_sending_callback_name = NULL;
        
        mime_parts = axis2_http_simple_response_get_mime_parts(response, env);

        mtom_sending_callback_name = axis2_http_simple_response_get_mtom_sending_callback_name(
            response, env);

        /* If the callback name is not there, then we will check whether there 
         * is any mime_parts which has type callback. If we found then no point 
         * of continuing we should return a failure */

        if(!mtom_sending_callback_name)
        {
            if(axis2_http_transport_utils_is_callback_required(
                env, mime_parts))
            {
                AXIS2_LOG_ERROR(env->log, AXIS2_LOG_SI, "Sender callback not specified");
                return AXIS2_FAILURE;
            }
        }

        chunked_stream = axutil_http_chunked_stream_create(env,
                                                          svr_conn->stream);

        if(mime_parts)
        {            
            write_stat = axis2_http_transport_utils_send_mtom_message(
                    chunked_stream, env, mime_parts, mtom_sending_callback_name);
            axutil_http_chunked_stream_free(chunked_stream, env);
            chunked_stream = NULL;
                    
            if(write_stat == AXIS2_FAILURE)
            {
                return write_stat;
            }
        }    
        else
        {
            return AXIS2_FAILURE;
        }
    } 
    
    /* Sending a normal SOAP response enabling htpp chunking */
    else 
    {    
        axutil_http_chunked_stream_t *chunked_stream = NULL;
        int left = body_size;
        chunked_stream = axutil_http_chunked_stream_create(env, svr_conn->stream);
        while (left > 0)
        {
            left -= axutil_http_chunked_stream_write(chunked_stream, env,
                response_body, body_size);
        }
        axutil_http_chunked_stream_write_last_chunk(chunked_stream, env);
        axutil_http_chunked_stream_free(chunked_stream, env);
    }

    axis2_http_response_writer_free(response_writer, env);
    return AXIS2_SUCCESS;
}


AXIS2_EXTERN axis2_status_t AXIS2_CALL
axis2_simple_http_svr_conn_set_rcv_timeout(
    axis2_simple_http_svr_conn_t * svr_conn,
    const axutil_env_t * env,
    int timeout)
{
    return axutil_network_handler_set_sock_option(env,
                                                  svr_conn->socket, SO_RCVTIMEO,
                                                  timeout);
}


AXIS2_EXTERN axis2_status_t AXIS2_CALL
axis2_simple_http_svr_conn_set_snd_timeout(
    axis2_simple_http_svr_conn_t * svr_conn,
    const axutil_env_t * env,
    int timeout)
{
    return axutil_network_handler_set_sock_option(env,
                                                  svr_conn->socket, SO_SNDTIMEO,
                                                  timeout);
}


AXIS2_EXTERN axis2_char_t *AXIS2_CALL
axis2_simple_http_svr_conn_get_svr_ip(
    const axis2_simple_http_svr_conn_t * svr_conn,
    const axutil_env_t * env)
{
    return axutil_network_handler_get_svr_ip(env, svr_conn->socket);
}


AXIS2_EXTERN axis2_char_t *AXIS2_CALL
axis2_simple_http_svr_conn_get_peer_ip(
    const axis2_simple_http_svr_conn_t * svr_conn,
    const axutil_env_t * env)
{
    return axutil_network_handler_get_peer_ip(env, svr_conn->socket);
}




<|start_filename|>xdocs/api/html/axis2__http__out__transport__info_8h-source.html<|end_filename|>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html><head><meta http-equiv="Content-Type" content="text/html;charset=UTF-8">
<title>Axis2/C: axis2_http_out_transport_info.h Source File</title>
<link href="doxygen.css" rel="stylesheet" type="text/css">
<link href="tabs.css" rel="stylesheet" type="text/css">
</head><body>
<!-- Generated by Doxygen 1.5.3 -->
<div class="tabs">
  <ul>
    <li><a href="index.html"><span>Main&nbsp;Page</span></a></li>
    <li><a href="modules.html"><span>Modules</span></a></li>
    <li><a href="annotated.html"><span>Classes</span></a></li>
    <li class="current"><a href="files.html"><span>Files</span></a></li>
    <li><a href="dirs.html"><span>Directories</span></a></li>
    <li><a href="pages.html"><span>Related&nbsp;Pages</span></a></li>
    <li><a href="examples.html"><span>Examples</span></a></li>
    <li>
      <form action="search.php" method="get">
        <table cellspacing="0" cellpadding="0" border="0">
          <tr>
            <td><label>&nbsp;<u>S</u>earch&nbsp;for&nbsp;</label></td>
            <td><input type="text" name="query" value="" size="20" accesskey="s"/></td>
          </tr>
        </table>
      </form>
    </li>
  </ul>
</div>
<div class="nav">
<a class="el" href="dir_f60961de8e5edc3b2658ef023e959e45.html">deploy</a>&nbsp;&raquo&nbsp;<a class="el" href="dir_6b4e91e54b7316b376882a6402adbf44.html">include</a>&nbsp;&raquo&nbsp;<a class="el" href="dir_df3a7695d5a9e696f30b948b566829e7.html">axis2-1.6.0</a></div>
<h1>axis2_http_out_transport_info.h</h1><a href="axis2__http__out__transport__info_8h.html">Go to the documentation of this file.</a><div class="fragment"><pre class="fragment"><a name="l00001"></a>00001 
<a name="l00002"></a>00002 <span class="comment">/*</span>
<a name="l00003"></a>00003 <span class="comment">* Licensed to the Apache Software Foundation (ASF) under one or more</span>
<a name="l00004"></a>00004 <span class="comment">* contributor license agreements.  See the NOTICE file distributed with</span>
<a name="l00005"></a>00005 <span class="comment">* this work for additional information regarding copyright ownership.</span>
<a name="l00006"></a>00006 <span class="comment">* The ASF licenses this file to You under the Apache License, Version 2.0</span>
<a name="l00007"></a>00007 <span class="comment">* (the "License"); you may not use this file except in compliance with</span>
<a name="l00008"></a>00008 <span class="comment">* the License.  You may obtain a copy of the License at</span>
<a name="l00009"></a>00009 <span class="comment">*</span>
<a name="l00010"></a>00010 <span class="comment">*      http://www.apache.org/licenses/LICENSE-2.0</span>
<a name="l00011"></a>00011 <span class="comment">*</span>
<a name="l00012"></a>00012 <span class="comment">* Unless required by applicable law or agreed to in writing, software</span>
<a name="l00013"></a>00013 <span class="comment">* distributed under the License is distributed on an "AS IS" BASIS,</span>
<a name="l00014"></a>00014 <span class="comment">* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.</span>
<a name="l00015"></a>00015 <span class="comment">* See the License for the specific language governing permissions and</span>
<a name="l00016"></a>00016 <span class="comment">* limitations under the License.</span>
<a name="l00017"></a>00017 <span class="comment">*/</span>
<a name="l00018"></a>00018 
<a name="l00019"></a>00019 <span class="preprocessor">#ifndef AXIS2_HTTP_OUT_TRANSPORT_INFO_H</span>
<a name="l00020"></a>00020 <span class="preprocessor"></span><span class="preprocessor">#define AXIS2_HTTP_OUT_TRANSPORT_INFO_H</span>
<a name="l00021"></a>00021 <span class="preprocessor"></span>
<a name="l00034"></a>00034 <span class="preprocessor">#include &lt;axis2_const.h&gt;</span>
<a name="l00035"></a>00035 <span class="preprocessor">#include &lt;<a class="code" href="axis2__defines_8h.html" title="Useful definitions, which may have platform concerns.">axis2_defines.h</a>&gt;</span>
<a name="l00036"></a>00036 <span class="preprocessor">#include &lt;<a class="code" href="axutil__env_8h.html" title="Axis2 environment that acts as a container for error, log and memory allocator routines...">axutil_env.h</a>&gt;</span>
<a name="l00037"></a>00037 <span class="preprocessor">#include &lt;axis2_http_simple_response.h&gt;</span>
<a name="l00038"></a>00038 <span class="preprocessor">#include &lt;<a class="code" href="axis2__out__transport__info_8h.html" title="axis2 Out Transport Info">axis2_out_transport_info.h</a>&gt;</span>
<a name="l00039"></a>00039 
<a name="l00040"></a>00040 <span class="preprocessor">#ifdef __cplusplus</span>
<a name="l00041"></a>00041 <span class="preprocessor"></span><span class="keyword">extern</span> <span class="stringliteral">"C"</span>
<a name="l00042"></a>00042 {
<a name="l00043"></a>00043 <span class="preprocessor">#endif</span>
<a name="l00044"></a>00044 <span class="preprocessor"></span>
<a name="l00046"></a><a class="code" href="group__axis2__http__out__transport__info.html#g488b445412c39ae4b2a3edd1df4f319c">00046</a>     <span class="keyword">typedef</span> <span class="keyword">struct </span>axis2_http_out_transport_info
<a name="l00047"></a>00047                 <a class="code" href="group__axis2__http__out__transport__info.html#g488b445412c39ae4b2a3edd1df4f319c">axis2_http_out_transport_info_t</a>;
<a name="l00048"></a>00048 
<a name="l00049"></a>00049     <span class="keyword">struct </span>axis2_http_out_transport_info
<a name="l00050"></a>00050     {
<a name="l00051"></a>00051         <a class="code" href="group__axis2__out__transport__info.html#gb841f7dbcba89c8b6f55c193007d68c7">axis2_out_transport_info_t</a> out_transport;
<a name="l00052"></a>00052         <a class="code" href="group__axis2__http__simple__response.html#g5ebc18702d80d368692d1922f9accb1f">axis2_http_simple_response_t</a> *response;
<a name="l00053"></a>00053         axis2_char_t *encoding;
<a name="l00054"></a>00054 
<a name="l00055"></a>00055         axis2_status_t(
<a name="l00056"></a>00056             AXIS2_CALL
<a name="l00057"></a>00057             * set_content_type)(
<a name="l00058"></a>00058                 <a class="code" href="group__axis2__http__out__transport__info.html#g488b445412c39ae4b2a3edd1df4f319c">axis2_http_out_transport_info_t</a> * info,
<a name="l00059"></a>00059                 <span class="keyword">const</span> <a class="code" href="structaxutil__env.html" title="Axis2 Environment struct.">axutil_env_t</a> * env,
<a name="l00060"></a>00060                 <span class="keyword">const</span> axis2_char_t * content_type);
<a name="l00061"></a>00061 
<a name="l00062"></a>00062         axis2_status_t(
<a name="l00063"></a>00063             AXIS2_CALL
<a name="l00064"></a>00064             * set_char_encoding)(
<a name="l00065"></a>00065                 <a class="code" href="group__axis2__http__out__transport__info.html#g488b445412c39ae4b2a3edd1df4f319c">axis2_http_out_transport_info_t</a> * info,
<a name="l00066"></a>00066                 <span class="keyword">const</span> <a class="code" href="structaxutil__env.html" title="Axis2 Environment struct.">axutil_env_t</a> * env,
<a name="l00067"></a>00067                 <span class="keyword">const</span> axis2_char_t * encoding);
<a name="l00068"></a>00068 
<a name="l00069"></a>00069         void(
<a name="l00070"></a>00070             AXIS2_CALL
<a name="l00071"></a>00071             * free_function)(
<a name="l00072"></a>00072                 <a class="code" href="group__axis2__http__out__transport__info.html#g488b445412c39ae4b2a3edd1df4f319c">axis2_http_out_transport_info_t</a> * info,
<a name="l00073"></a>00073                 <span class="keyword">const</span> <a class="code" href="structaxutil__env.html" title="Axis2 Environment struct.">axutil_env_t</a> * env);
<a name="l00074"></a>00074     };
<a name="l00075"></a>00075 
<a name="l00081"></a>00081     AXIS2_EXTERN <span class="keywordtype">int</span> AXIS2_CALL
<a name="l00082"></a>00082 
<a name="l00083"></a>00083     <a class="code" href="group__axis2__http__out__transport__info.html#g6c6fc7b1cf689442c23c5d2db2353acf">axis2_http_out_transport_info_set_content_type</a>(
<a name="l00084"></a>00084         <a class="code" href="group__axis2__http__out__transport__info.html#g488b445412c39ae4b2a3edd1df4f319c">axis2_http_out_transport_info_t</a> * info,
<a name="l00085"></a>00085         <span class="keyword">const</span> <a class="code" href="structaxutil__env.html" title="Axis2 Environment struct.">axutil_env_t</a> * env,
<a name="l00086"></a>00086         <span class="keyword">const</span> axis2_char_t * content_type);
<a name="l00087"></a>00087 
<a name="l00094"></a>00094     AXIS2_EXTERN axis2_status_t AXIS2_CALL
<a name="l00095"></a>00095 
<a name="l00096"></a>00096     <a class="code" href="group__axis2__http__out__transport__info.html#g9368ed3e85952d69b382d57e6d8b9610">axis2_http_out_transport_info_set_char_encoding</a>(
<a name="l00097"></a>00097         <a class="code" href="group__axis2__http__out__transport__info.html#g488b445412c39ae4b2a3edd1df4f319c">axis2_http_out_transport_info_t</a> * info,
<a name="l00098"></a>00098         <span class="keyword">const</span> <a class="code" href="structaxutil__env.html" title="Axis2 Environment struct.">axutil_env_t</a> * env,
<a name="l00099"></a>00099         <span class="keyword">const</span> axis2_char_t * encoding);
<a name="l00100"></a>00100 
<a name="l00106"></a>00106     AXIS2_EXTERN <span class="keywordtype">void</span> AXIS2_CALL
<a name="l00107"></a>00107     <a class="code" href="group__axis2__http__out__transport__info.html#gd6d974df0df738b3e994146bf2445c17">axis2_http_out_transport_info_free</a>(
<a name="l00108"></a>00108         <a class="code" href="group__axis2__http__out__transport__info.html#g488b445412c39ae4b2a3edd1df4f319c">axis2_http_out_transport_info_t</a> * out_transport_info,
<a name="l00109"></a>00109         <span class="keyword">const</span> <a class="code" href="structaxutil__env.html" title="Axis2 Environment struct.">axutil_env_t</a> * env);
<a name="l00110"></a>00110 
<a name="l00115"></a>00115     AXIS2_EXTERN <a class="code" href="group__axis2__http__out__transport__info.html#g488b445412c39ae4b2a3edd1df4f319c">axis2_http_out_transport_info_t</a> *AXIS2_CALL
<a name="l00116"></a>00116 
<a name="l00117"></a>00117     <a class="code" href="group__axis2__http__out__transport__info.html#gdabad3886ddb36d456a502e6e257ad88">axis2_http_out_transport_info_create</a>(
<a name="l00118"></a>00118         <span class="keyword">const</span> <a class="code" href="structaxutil__env.html" title="Axis2 Environment struct.">axutil_env_t</a> * env,
<a name="l00119"></a>00119         <a class="code" href="group__axis2__http__simple__response.html#g5ebc18702d80d368692d1922f9accb1f">axis2_http_simple_response_t</a> * response);
<a name="l00120"></a>00120 
<a name="l00128"></a>00128     AXIS2_EXTERN <span class="keywordtype">void</span> AXIS2_CALL
<a name="l00129"></a>00129     <a class="code" href="group__axis2__http__out__transport__info.html#g8ff11c179d868a06362b9dea7edb3d5c">axis2_http_out_transport_info_free_void_arg</a>(
<a name="l00130"></a>00130         <span class="keywordtype">void</span> *transport_info,
<a name="l00131"></a>00131         <span class="keyword">const</span> <a class="code" href="structaxutil__env.html" title="Axis2 Environment struct.">axutil_env_t</a> * env);
<a name="l00132"></a>00132 
<a name="l00133"></a>00133     AXIS2_EXTERN <span class="keywordtype">void</span> AXIS2_CALL
<a name="l00134"></a>00134 
<a name="l00135"></a>00135     axis2_http_out_transport_info_set_char_encoding_func(
<a name="l00136"></a>00136         <a class="code" href="group__axis2__http__out__transport__info.html#g488b445412c39ae4b2a3edd1df4f319c">axis2_http_out_transport_info_t</a> * out_transport_info,
<a name="l00137"></a>00137         <span class="keyword">const</span> <a class="code" href="structaxutil__env.html" title="Axis2 Environment struct.">axutil_env_t</a> * env,
<a name="l00138"></a>00138         axis2_status_t(AXIS2_CALL
<a name="l00139"></a>00139                 * set_encoding)
<a name="l00140"></a>00140         (<a class="code" href="group__axis2__http__out__transport__info.html#g488b445412c39ae4b2a3edd1df4f319c">axis2_http_out_transport_info_t</a> *,
<a name="l00141"></a>00141                 <span class="keyword">const</span> <a class="code" href="structaxutil__env.html" title="Axis2 Environment struct.">axutil_env_t</a> *,
<a name="l00142"></a>00142                 <span class="keyword">const</span> axis2_char_t *));
<a name="l00143"></a>00143 
<a name="l00144"></a>00144     AXIS2_EXTERN <span class="keywordtype">void</span> AXIS2_CALL
<a name="l00145"></a>00145 
<a name="l00146"></a>00146     axis2_http_out_transport_info_set_content_type_func(
<a name="l00147"></a>00147         <a class="code" href="group__axis2__http__out__transport__info.html#g488b445412c39ae4b2a3edd1df4f319c">axis2_http_out_transport_info_t</a> * out_transport_info,
<a name="l00148"></a>00148         <span class="keyword">const</span> <a class="code" href="structaxutil__env.html" title="Axis2 Environment struct.">axutil_env_t</a> * env,
<a name="l00149"></a>00149         axis2_status_t(AXIS2_CALL
<a name="l00150"></a>00150                 *
<a name="l00151"></a>00151                 set_content_type)(<a class="code" href="group__axis2__http__out__transport__info.html#g488b445412c39ae4b2a3edd1df4f319c">axis2_http_out_transport_info_t</a> *,
<a name="l00152"></a>00152                         <span class="keyword">const</span> <a class="code" href="structaxutil__env.html" title="Axis2 Environment struct.">axutil_env_t</a> *,
<a name="l00153"></a>00153                         <span class="keyword">const</span> axis2_char_t *));
<a name="l00154"></a>00154 
<a name="l00155"></a>00155     AXIS2_EXTERN <span class="keywordtype">void</span> AXIS2_CALL
<a name="l00156"></a>00156     axis2_http_out_transport_info_set_free_func(
<a name="l00157"></a>00157         <a class="code" href="group__axis2__http__out__transport__info.html#g488b445412c39ae4b2a3edd1df4f319c">axis2_http_out_transport_info_t</a> * out_transport_info,
<a name="l00158"></a>00158         <span class="keyword">const</span> <a class="code" href="structaxutil__env.html" title="Axis2 Environment struct.">axutil_env_t</a> * env,
<a name="l00159"></a>00159         <span class="keywordtype">void</span>(AXIS2_CALL
<a name="l00160"></a>00160                 * free_function)(<a class="code" href="group__axis2__http__out__transport__info.html#g488b445412c39ae4b2a3edd1df4f319c">axis2_http_out_transport_info_t</a> *,
<a name="l00161"></a>00161                         <span class="keyword">const</span> <a class="code" href="structaxutil__env.html" title="Axis2 Environment struct.">axutil_env_t</a> *));
<a name="l00162"></a>00162 
<a name="l00164"></a>00164 <span class="preprocessor">#define AXIS2_HTTP_OUT_TRANSPORT_INFO_SET_CONTENT_TYPE(out_transport_info, \</span>
<a name="l00165"></a><a class="code" href="group__axis2__http__out__transport__info.html#gc65a46f52b077ea5b9355094f93db1d2">00165</a> <span class="preprocessor">               env, content_type) axis2_http_out_transport_info_set_content_type (out_transport_info, env, content_type)</span>
<a name="l00166"></a>00166 <span class="preprocessor"></span>
<a name="l00168"></a>00168 <span class="preprocessor">#define AXIS2_HTTP_OUT_TRANSPORT_INFO_SET_CHAR_ENCODING(out_transport_info,\</span>
<a name="l00169"></a><a class="code" href="group__axis2__http__out__transport__info.html#gc17624b984364754cbd36a32f62e1ba6">00169</a> <span class="preprocessor">               env, encoding) axis2_http_out_transport_info_set_char_encoding(out_transport_info, env, encoding)</span>
<a name="l00170"></a>00170 <span class="preprocessor"></span>
<a name="l00172"></a><a class="code" href="group__axis2__http__out__transport__info.html#g3174b25bfefbe35ad05b2ecf2a24efb0">00172</a> <span class="preprocessor">#define AXIS2_HTTP_OUT_TRANSPORT_INFO_FREE(out_transport_info, env)\</span>
<a name="l00173"></a>00173 <span class="preprocessor">                    axis2_http_out_transport_info_free(out_transport_info, env)</span>
<a name="l00174"></a>00174 <span class="preprocessor"></span>
<a name="l00176"></a>00176 <span class="preprocessor">#ifdef __cplusplus</span>
<a name="l00177"></a>00177 <span class="preprocessor"></span>}
<a name="l00178"></a>00178 <span class="preprocessor">#endif</span>
<a name="l00179"></a>00179 <span class="preprocessor"></span><span class="preprocessor">#endif                          </span><span class="comment">/* AXIS2_HTTP_OUT_TRANSPORT_INFO_H */</span>
</pre></div><hr size="1"><address style="text-align: right;"><small>Generated on Fri Apr 17 11:49:42 2009 for Axis2/C by&nbsp;
<a href="http://www.doxygen.org/index.html">
<img src="doxygen.png" alt="doxygen" align="middle" border="0"></a> 1.5.3 </small></address>
</body>
</html>


<|start_filename|>src/core/engine/phase.c<|end_filename|>

/*
 * 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.
 */

#include <axutil_string.h>
#include <axis2_phase.h>
#include <axutil_array_list.h>
#include <axis2_msg_ctx.h>
#include <axis2_const.h>

static axis2_status_t axis2_phase_add_unique(
    const axutil_env_t * env,
    axutil_array_list_t * list,
    axis2_handler_t * handler);

static axis2_status_t axis2_phase_remove_unique(
    const axutil_env_t * env,
    axutil_array_list_t * list,
    axis2_handler_t * handler);

struct axis2_phase
{

    /** phase name */
    axis2_char_t *name;

    /** array list of handlers */
    axutil_array_list_t *handlers;

    /** first handler of phase */
    axis2_handler_t *first_handler;

    /** first handler of phase set? */
    axis2_bool_t first_handler_set;

    /** last handler of phase */
    axis2_handler_t *last_handler;

    /** last handler of phase set? */
    axis2_bool_t last_handler_set;

    /**
     * handler_first and handler_last are the same handler
     * that is for this phase there is only one handler
     */
    axis2_bool_t is_one_handler;

    int ref;
};

AXIS2_EXTERN axis2_phase_t *AXIS2_CALL
axis2_phase_create(
    const axutil_env_t * env,
    const axis2_char_t * phase_name)
{
    axis2_phase_t *phase = NULL;

    phase = AXIS2_MALLOC(env->allocator, sizeof(axis2_phase_t));
    if (!phase)
    {
        AXIS2_ERROR_SET(env->error, AXIS2_ERROR_NO_MEMORY, AXIS2_FAILURE);
        AXIS2_LOG_ERROR(env->log, AXIS2_LOG_SI,
            "No memory");
        return NULL;
    }

    phase->name = NULL;
    phase->handlers = NULL;
    phase->first_handler = NULL;
    phase->first_handler_set = AXIS2_FALSE;
    phase->last_handler = NULL;
    phase->last_handler_set = AXIS2_FALSE;
    phase->is_one_handler = AXIS2_FALSE;
    phase->ref = 1;

    phase->handlers = axutil_array_list_create(env, 10);
    if (!(phase->handlers))
    {

        /** error is already set by last method array list container create */
        axis2_phase_free(phase, env);
        return NULL;
    }

    if (phase_name)
    {
        phase->name = axutil_strdup(env, phase_name);
        if (!(phase->name))
        {
            AXIS2_ERROR_SET(env->error, AXIS2_ERROR_NO_MEMORY, AXIS2_FAILURE);
            AXIS2_LOG_ERROR(env->log, AXIS2_LOG_SI, "No memory");
            axis2_phase_free(phase, env);
            return NULL;
        }
    }

    return phase;
}

AXIS2_EXTERN axis2_status_t AXIS2_CALL
axis2_phase_add_handler_at(
    axis2_phase_t * phase,
    const axutil_env_t * env,
    const int index,
    axis2_handler_t * handler)
{
    AXIS2_LOG_DEBUG(env->log, AXIS2_LOG_SI,
                    "axis2_handler_t *%s added to the index %d of the phase %s",
                    axutil_string_get_buffer(axis2_handler_get_name
                                             (handler, env), env), index,
                    phase->name);

    return axutil_array_list_add_at(phase->handlers, env, index, handler);
}

AXIS2_EXTERN axis2_status_t AXIS2_CALL
axis2_phase_add_handler(
    axis2_phase_t * phase,
    const axutil_env_t * env,
    axis2_handler_t * handler)
{
    AXIS2_LOG_INFO(env->log, "Handler %s added to phase %s",
                   axutil_string_get_buffer(axis2_handler_get_name
                                            (handler, env), env), phase->name);

    return axis2_phase_add_unique(env, phase->handlers, handler);
}

AXIS2_EXTERN axis2_status_t AXIS2_CALL
axis2_phase_remove_handler(
    axis2_phase_t * phase,
    const axutil_env_t * env,
    axis2_handler_t * handler)
{
    AXIS2_LOG_INFO(env->log, "Handler %s romoved from phase %s",
                   axutil_string_get_buffer(axis2_handler_get_name
                                            (handler, env), env), phase->name);

    return axis2_phase_remove_unique(env, phase->handlers, handler);
}

AXIS2_EXTERN axis2_status_t AXIS2_CALL
axis2_phase_invoke(
    axis2_phase_t * phase,
    const axutil_env_t * env,
    axis2_msg_ctx_t * msg_ctx)
{
    int index = 0,
        size = 0;
    axis2_status_t status = AXIS2_SUCCESS;
    
    AXIS2_LOG_TRACE(env->log, AXIS2_LOG_SI, "Entry:axis2_phase_invoke");
    axis2_msg_ctx_set_paused_phase_name(msg_ctx, env, phase->name);
    if (phase->first_handler)
    {
        if (axis2_msg_ctx_is_paused(msg_ctx, env))
        {
            AXIS2_LOG_INFO(env->log, "Message context is paused in the phase %s", 
                phase->name);
            return AXIS2_SUCCESS;
        }
        else
        {
            const axis2_char_t *handler_name = axutil_string_get_buffer(
                axis2_handler_get_name(phase->first_handler, env), env);
            AXIS2_LOG_INFO(env->log,
                "Invoke the first handler %s within the phase %s", handler_name, 
                    phase->name);

            status = axis2_handler_invoke(phase->first_handler, env, msg_ctx);
            if (!status)
            {
                AXIS2_LOG_ERROR(env->log, AXIS2_LOG_SI, 
                    "Handler %s invoke failed within phase %s", handler_name, 
                        phase->name);
                return status;
            }
        }
    }
    /* Invoking the rest of handlers except first_handler and last_handler */
    size = axutil_array_list_size(phase->handlers, env);
    while (index < size)
    {
        if (axis2_msg_ctx_is_paused(msg_ctx, env))
        {
            break;
        }
        else
        {
            axis2_handler_t *handler = (axis2_handler_t *)
                axutil_array_list_get(phase->handlers, env, index);
            if (handler)
            {
                const axis2_char_t *handler_name = axutil_string_get_buffer(
                    axis2_handler_get_name(handler, env), env);
                AXIS2_LOG_DEBUG(env->log, AXIS2_LOG_SI,
                    "Invoke the handler %s within the phase %s", handler_name,
                        phase->name);

                /* Test code. This is used when valgrind is used to find leaks in Axis2/C modules.*/
                /*if(!axutil_strcmp(handler_name, "SandeshaGlobalInHandler") || !axutil_strcmp(
                            handler_name, "SandeshaInHandler"))
                {
                    AXIS2_LOG_DEBUG(env->log, AXIS2_LOG_SI,
                        "dam_handler_name %s. dam_phase_name %s", handler_name, phase->name);
                    if(!axutil_strcmp(handler_name, "SandeshaGlobalInHandler"))
                    {
                        status = sandesha2_global_in_handler_invoke(phase->first_handler, env, msg_ctx);
                    }
                    if(!axutil_strcmp(handler_name, "SandeshaInHandler"))
                    {
                        status = sandesha2_in_handler_invoke(phase->first_handler, env, msg_ctx);
                    }
                }
                else*/
                    status = axis2_handler_invoke(handler, env, msg_ctx);
                if (!status)
                {
                    AXIS2_LOG_ERROR(env->log, AXIS2_LOG_SI, 
                        "Handler %s invoke failed within phase %s", 
                            handler_name, phase->name);
                    return status;
                }
                /* index increment should be done after the invoke function. If the invocation
                   failed this handler is taken care of and no need to revoke again */
                index++;
                axis2_msg_ctx_set_current_handler_index(msg_ctx, env, index);
            }
        }
    }

    /* If phase last handler is there invoke it here */
    if (phase->last_handler)
    {
        if (axis2_msg_ctx_is_paused(msg_ctx, env))
        {
            AXIS2_LOG_INFO(env->log, "Message context is paused in the phase %s", 
                phase->name);
            return AXIS2_SUCCESS;
        }
        else
        {
            const axis2_char_t *handler_name = axutil_string_get_buffer(
                axis2_handler_get_name(phase->last_handler, env), env);
            AXIS2_LOG_INFO(env->log,
                "Invoke the last handler %s within the phase %s", handler_name, 
                phase->name);
            
            status = axis2_handler_invoke(phase->last_handler, env, msg_ctx);
            if (!status)
            {
                AXIS2_LOG_ERROR(env->log, AXIS2_LOG_SI, 
                    "Handler %s invoke failed within  phase %s", handler_name, 
                        phase->name);
                return status;
            }
        }
    }
    AXIS2_LOG_TRACE(env->log, AXIS2_LOG_SI, "Exit:axis2_phase_invoke");
    return AXIS2_SUCCESS;
}

AXIS2_EXTERN const axis2_char_t *AXIS2_CALL
axis2_phase_get_name(
    const axis2_phase_t * phase,
    const axutil_env_t * env)
{
    return phase->name;
}

AXIS2_EXTERN int AXIS2_CALL
axis2_phase_get_handler_count(
    const axis2_phase_t * phase,
    const axutil_env_t * env)
{
    return axutil_array_list_size(phase->handlers, env);
}

AXIS2_EXTERN int AXIS2_CALL
_axis2_phase_get_before_after(
    axis2_handler_t * handler,
    const axutil_env_t * env)
{
    const axis2_char_t *before = NULL,
        *after = NULL;
    axis2_handler_desc_t *handler_desc = NULL;
    axis2_phase_rule_t *rules = NULL;
    const axis2_char_t *name = 
        axutil_string_get_buffer(axis2_handler_get_name(handler, env), env);

    handler_desc = axis2_handler_get_handler_desc(handler, env);
    if (!handler_desc)
    {
        AXIS2_ERROR_SET(env->error, AXIS2_ERROR_INVALID_NULL_PARAM,
                        AXIS2_FAILURE);
        AXIS2_LOG_ERROR(env->log, AXIS2_LOG_SI, 
            "Handler description is not set for the Handler %s", name);
        return AXIS2_FAILURE;
    }

    rules = axis2_handler_desc_get_rules(handler_desc, env);
    if (!rules)
    {
        AXIS2_ERROR_SET(env->error, AXIS2_ERROR_INVALID_NULL_PARAM,
                        AXIS2_FAILURE);
        AXIS2_LOG_ERROR(env->log, AXIS2_LOG_SI, 
            "Handler rules are not set for the Handler Description %s", name);
        return AXIS2_FAILURE;
    }

    before = axis2_phase_rule_get_before(rules, env);
    after = axis2_phase_rule_get_after(rules, env);

    if (before && after)
    {
        if (!axutil_strcmp(before, after))
        {
            AXIS2_ERROR_SET(env->error, AXIS2_ERROR_BEFORE_AFTER_HANDLERS_SAME,
                            AXIS2_FAILURE);
            AXIS2_LOG_ERROR(env->log, AXIS2_LOG_SI,
                "Both before and after handlers cannot be the same");
            return AXIS2_FAILURE;
        }
        return AXIS2_PHASE_BOTH_BEFORE_AFTER;
    }
    else if (before)
    {
        return AXIS2_PHASE_BEFORE;
    }
    else if (after)
    {
        return AXIS2_PHASE_AFTER;
    }
    else
    {
        return AXIS2_PHASE_ANYWHERE;
    }
}

AXIS2_EXTERN axis2_status_t AXIS2_CALL
axis2_phase_set_first_handler(
    axis2_phase_t * phase,
    const axutil_env_t * env,
    axis2_handler_t * handler)
{
    const axis2_char_t *handler_name = 
        axutil_string_get_buffer(axis2_handler_get_name(handler, env), env);
    const axis2_char_t *phase_name = axis2_phase_get_name(phase, env);
    if (phase->first_handler_set)
    {
        AXIS2_ERROR_SET(env->error, AXIS2_ERROR_PHASE_FIRST_HANDLER_ALREADY_SET,
                        AXIS2_FAILURE);
        AXIS2_LOG_ERROR(env->log, AXIS2_LOG_SI,
            "First handler of phase already set, so cannot set handler %s "\
            "in to the phase %s as first handler", handler_name, phase_name);
        return AXIS2_FAILURE;
    }
    else
    {
        if (_axis2_phase_get_before_after(handler, env) != AXIS2_PHASE_ANYWHERE)
        {
            AXIS2_ERROR_SET(env->error, AXIS2_ERROR_INVALID_PHASE_FIRST_HANDLER,
                            AXIS2_FAILURE);
            AXIS2_LOG_ERROR(env->log, AXIS2_LOG_SI, 
                "Invalid first handler %s set for the Phase %s", handler_name, 
                phase_name);
            return AXIS2_FAILURE;
        }
        phase->first_handler = handler;
        phase->first_handler_set = AXIS2_TRUE;
    }

    return AXIS2_SUCCESS;
}

AXIS2_EXTERN axis2_status_t AXIS2_CALL
axis2_phase_set_last_handler(
    axis2_phase_t * phase,
    const axutil_env_t * env,
    axis2_handler_t * handler)
{
    const axis2_char_t *handler_name = 
        axutil_string_get_buffer(axis2_handler_get_name(handler, env), env);
    const axis2_char_t *phase_name = axis2_phase_get_name(phase, env);
    if (phase->last_handler_set)
    {
        AXIS2_ERROR_SET(env->error, AXIS2_ERROR_PHASE_LAST_HANDLER_ALREADY_SET,
                        AXIS2_FAILURE);
        AXIS2_LOG_ERROR(env->log, AXIS2_LOG_SI,
            "Last handler of phase already set, so cannot set handler %s "\
            "in to the phase %s as last handler", handler_name, phase_name);
        return AXIS2_FAILURE;
    }
    else
    {
        if (_axis2_phase_get_before_after(handler, env) != AXIS2_PHASE_ANYWHERE)
        {
            AXIS2_ERROR_SET(env->error, AXIS2_ERROR_INVALID_PHASE_LAST_HANDLER,
                            AXIS2_FAILURE);
            AXIS2_LOG_ERROR(env->log, AXIS2_LOG_SI, 
                "Invalid last handler %s set for the Phase %s", handler_name, 
                phase_name);
            return AXIS2_FAILURE;
        }
        phase->last_handler = handler;
        phase->last_handler_set = AXIS2_TRUE;
    }

    return AXIS2_SUCCESS;
}

AXIS2_EXTERN axis2_status_t AXIS2_CALL
axis2_phase_add_handler_desc(
    axis2_phase_t * phase,
    const axutil_env_t * env,
    axis2_handler_desc_t * handler_desc)
{
    axis2_phase_rule_t *rules = NULL;
    axis2_handler_t *handler = NULL;
    axis2_status_t status = AXIS2_SUCCESS;
    axis2_bool_t first = AXIS2_FALSE,
        last = AXIS2_FALSE;
    const axis2_char_t *handler_desc_name = 
        axutil_string_get_buffer(axis2_handler_desc_get_name(handler_desc, env), 
            env);
    if (phase->is_one_handler)
    {
        AXIS2_ERROR_SET(env->error, AXIS2_ERROR_PHASE_ADD_HANDLER_INVALID,
                        AXIS2_FAILURE);
        AXIS2_LOG_ERROR(env->log, AXIS2_LOG_SI, 
            "Only one handler allowed for phase %s, adding handler %s is not "\
            "allowed", phase->name, handler_desc_name);
        return AXIS2_FAILURE;
    }
    else
    {
        rules = axis2_handler_desc_get_rules(handler_desc, env);
        if (!rules)
        {
            AXIS2_ERROR_SET(env->error, AXIS2_ERROR_INVALID_NULL_PARAM,
                            AXIS2_FAILURE);
            AXIS2_LOG_ERROR(env->log, AXIS2_LOG_SI,
                "Handler rules are not set for the Hanlder Description %s "\
                    "within phase %s", handler_desc_name, phase->name);
            return AXIS2_FAILURE;
        }

        first = axis2_phase_rule_is_first(rules, env);
        last = axis2_phase_rule_is_last(rules, env);

        if (first && last)
        {
            if (axutil_array_list_size(phase->handlers, env) > 0)
            {
                AXIS2_ERROR_SET(env->error, AXIS2_ERROR_INVALID_HANDLER_RULES,
                                AXIS2_FAILURE);
                AXIS2_LOG_ERROR(env->log, AXIS2_LOG_SI,
                    "Invalid handler rules, so unable to add handler %s to "\
                        "phase %s", handler_desc_name, phase->name);
                return AXIS2_FAILURE;
            }

            handler = axis2_handler_desc_get_handler(handler_desc, env);
            if (!handler)
            {
                AXIS2_ERROR_SET(env->error, AXIS2_ERROR_INVALID_NULL_PARAM,
                                AXIS2_FAILURE);
                AXIS2_LOG_ERROR(env->log, AXIS2_LOG_SI,
                    "Handler is not set for the Handler Description %s "\
                        "within phase %s", handler_desc_name, phase->name);
                return AXIS2_FAILURE;
            }

            /*status = axutil_array_list_add(phase->handlers, env, handler); */
            status = axis2_phase_add_unique(env, phase->handlers, handler);
            if (status)
                phase->is_one_handler = AXIS2_TRUE;
            return status;
        }
        else if (first)
        {
            handler = axis2_handler_desc_get_handler(handler_desc, env);
            if (!handler)
            {
                AXIS2_ERROR_SET(env->error, AXIS2_ERROR_INVALID_NULL_PARAM,
                                AXIS2_FAILURE);
                AXIS2_LOG_ERROR(env->log, AXIS2_LOG_SI,
                    "Handler is not set for the Handler Description %s "\
                        "within phase %s", handler_desc_name, phase->name);
                return AXIS2_FAILURE;
            }
            return axis2_phase_set_first_handler(phase, env, handler);
        }
        else if (last)
        {
            handler = axis2_handler_desc_get_handler(handler_desc, env);
            if (!handler)
            {
                AXIS2_ERROR_SET(env->error, AXIS2_ERROR_INVALID_NULL_PARAM,
                                AXIS2_FAILURE);
                AXIS2_LOG_ERROR(env->log, AXIS2_LOG_SI,
                    "Handler is not set for the Handler Description %s "\
                        "within phase %s", handler_desc_name, phase->name);
                return AXIS2_FAILURE;
            }
            return axis2_phase_set_last_handler(phase, env, handler);
        }
        else
        {
            handler = axis2_handler_desc_get_handler(handler_desc, env);
            if (!handler)
            {
                AXIS2_ERROR_SET(env->error, AXIS2_ERROR_INVALID_NULL_PARAM,
                                AXIS2_FAILURE);
                AXIS2_LOG_ERROR(env->log, AXIS2_LOG_SI,
                    "Handler is not set for the Handler Description %s "\
                        "within phase %s", handler_desc_name, phase->name);
                return AXIS2_FAILURE;
            }

            return axis2_phase_insert_handler_desc(phase, env, handler_desc);
        }
    }
}

AXIS2_EXTERN axis2_bool_t AXIS2_CALL
_axis2_phase_is_valid_before(
    axis2_phase_t * phase,
    const axutil_env_t * env,
    axis2_handler_t * handler)
{
    axis2_phase_rule_t *rules = NULL;
    axis2_handler_desc_t *handler_desc = NULL;
    const axis2_char_t *first_handler_name = NULL,
        *before = NULL;

    if (phase->first_handler)
    {
        handler_desc =
            axis2_handler_get_handler_desc(phase->first_handler, env);
        if (!handler_desc)
            return AXIS2_TRUE;

        first_handler_name =
            axutil_string_get_buffer(axis2_handler_desc_get_name
                                     (handler_desc, env), env);

        if (!first_handler_name)
            return AXIS2_TRUE;

        handler_desc = axis2_handler_get_handler_desc(handler, env);
        if (!handler_desc)
            return AXIS2_TRUE;

        rules = axis2_handler_desc_get_rules(handler_desc, env);
        if (!rules)
            return AXIS2_TRUE;

        before = axis2_phase_rule_get_before(rules, env);
        if (!before)
            return AXIS2_TRUE;

        if (!axutil_strcmp(first_handler_name, before))
            return AXIS2_FALSE;
        else
            return AXIS2_TRUE;

    }
    return AXIS2_TRUE;
}

AXIS2_EXTERN axis2_bool_t AXIS2_CALL
_axis2_phase_is_valid_after(
    axis2_phase_t * phase,
    const axutil_env_t * env,
    axis2_handler_t * handler)
{
    axis2_phase_rule_t *rules = NULL;
    axis2_handler_desc_t *handler_desc = NULL;
    const axis2_char_t *last_handler_name = NULL,
        *after = NULL;

    if (phase->last_handler)
    {
        handler_desc = axis2_handler_get_handler_desc(phase->last_handler, env);
        if (!handler_desc)
            return AXIS2_TRUE;

        last_handler_name =
            axutil_string_get_buffer(axis2_handler_desc_get_name
                                     (handler_desc, env), env);

        if (!last_handler_name)
            return AXIS2_TRUE;

        handler_desc = axis2_handler_get_handler_desc(handler, env);
        if (!handler_desc)
            return AXIS2_TRUE;

        rules = axis2_handler_desc_get_rules(handler_desc, env);
        if (!rules)
            return AXIS2_TRUE;

        after = axis2_phase_rule_get_after(rules, env);
        if (!after)
            return AXIS2_TRUE;

        if (!axutil_strcmp(last_handler_name, after))
            return AXIS2_FALSE;
        else
            return AXIS2_TRUE;

    }
    return AXIS2_TRUE;
}

AXIS2_EXTERN axis2_status_t AXIS2_CALL
axis2_phase_insert_before(
    axis2_phase_t * phase,
    const axutil_env_t * env,
    axis2_handler_t * handler)
{
    axis2_phase_rule_t *rules = NULL;
    axis2_handler_desc_t *handler_desc = NULL;
    const axis2_char_t *handler_name = NULL,
        *before = NULL;
    int i = 0;
    int size = 0;
    const axis2_char_t *name = 
        axutil_string_get_buffer(axis2_handler_get_name(handler, env), env);
    const axis2_char_t *handler_desc_name = NULL;

    handler_desc = axis2_handler_get_handler_desc(handler, env);
    if (!handler_desc)
    {
        AXIS2_ERROR_SET(env->error, AXIS2_ERROR_INVALID_NULL_PARAM,
                        AXIS2_FAILURE);
        AXIS2_LOG_ERROR(env->log, AXIS2_LOG_SI, 
            "Handler description is not set in the handler %s within phase %s", 
                name, phase->name);
        return AXIS2_FAILURE;
    }
    handler_desc_name = axutil_string_get_buffer(axis2_handler_desc_get_name(
        handler_desc, env), env);

    rules = axis2_handler_desc_get_rules(handler_desc, env);
    if (!rules)
    {
        AXIS2_ERROR_SET(env->error, AXIS2_ERROR_INVALID_NULL_PARAM,
                        AXIS2_FAILURE);
        AXIS2_LOG_ERROR(env->log, AXIS2_LOG_SI,
            "Handler rules are not set in the handler description %s within "\
                "phase %s", handler_desc_name, phase->name);
        return AXIS2_FAILURE;
    }

    before = axis2_phase_rule_get_before(rules, env);
    if (!before)
    {
        AXIS2_ERROR_SET(env->error, AXIS2_ERROR_INVALID_NULL_PARAM,
                        AXIS2_FAILURE);
        AXIS2_LOG_ERROR(env->log, AXIS2_LOG_SI,
            "Rule `before` is not set in the handler rules for handler %s "\
                "within phase %s", name, phase->name);
        return AXIS2_FAILURE;
    }

    if (phase->last_handler)
    {
        const axis2_char_t *last_handler_name = 
            axutil_string_get_buffer(axis2_handler_get_name(phase->last_handler, 
                env), env);
        handler_desc = axis2_handler_get_handler_desc(phase->last_handler, env);
        if (!handler_desc)
        {
            AXIS2_ERROR_SET(env->error, AXIS2_ERROR_INVALID_HANDLER_STATE,
                            AXIS2_FAILURE);
            AXIS2_LOG_ERROR(env->log, AXIS2_LOG_SI,
                "Handler description is not set in the last handler %s of "\
                    "phase %s", last_handler_name, phase->name);
            return AXIS2_FAILURE;
        }

        handler_name =
            axutil_string_get_buffer(axis2_handler_desc_get_name
                                     (handler_desc, env), env);
        if (!handler_name)
        {
            AXIS2_ERROR_SET(env->error, AXIS2_ERROR_INVALID_HANDLER_STATE,
                            AXIS2_FAILURE);
            AXIS2_LOG_ERROR(env->log, AXIS2_LOG_SI,
                "Handler name is not set in the handler description for "\
                    "last handler %s within phase %s", last_handler_name, 
                        phase->name);
            return AXIS2_FAILURE;
        }

        if (!axutil_strcmp(before, handler_name))
        {
            /*return axutil_array_list_add(phase->handlers, env, handler); */
            return axis2_phase_add_unique(env, phase->handlers, handler);
        }
    }

    size = axutil_array_list_size(phase->handlers, env);

    for (i = 0; i < size; i++)
    {
        axis2_handler_t *temp_handler =
            (axis2_handler_t *) axutil_array_list_get(phase->handlers, env, i);
        if (temp_handler)
        {
            const axis2_char_t *temp_handler_name = 
                axutil_string_get_buffer(axis2_handler_get_name(temp_handler, 
                    env), env);
            handler_desc = axis2_handler_get_handler_desc(temp_handler, env);
            if (!handler_desc)
            {
                AXIS2_ERROR_SET(env->error, AXIS2_ERROR_INVALID_HANDLER_STATE,
                                AXIS2_FAILURE);
                AXIS2_LOG_ERROR(env->log, AXIS2_LOG_SI,
                    "Handler Description is not set for the Handler %s "\
                        "within phase %s", temp_handler_name, phase->name);
                return AXIS2_FAILURE;
            }

            handler_name =
                axutil_string_get_buffer(axis2_handler_desc_get_name
                                         (handler_desc, env), env);
            if (!handler_name)
            {
                AXIS2_ERROR_SET(env->error, AXIS2_ERROR_INVALID_HANDLER_STATE,
                                AXIS2_FAILURE);
                AXIS2_LOG_ERROR(env->log, AXIS2_LOG_SI,
                    "Handler name is not set in the handler description for "\
                        "handler %s within phase %s", temp_handler_name, 
                            phase->name);
                return AXIS2_FAILURE;
            }

            if (!axutil_strcmp(before, handler_name))
            {
                return axutil_array_list_add_at(phase->handlers, env, i,
                                                handler);
            }
        }
    }
    /* add as the last handler */
    /* return axutil_array_list_add(phase->handlers, env, handler); */
    return axis2_phase_add_unique(env, phase->handlers, handler);
}

AXIS2_EXTERN axis2_status_t AXIS2_CALL
axis2_phase_insert_after(
    axis2_phase_t * phase,
    const axutil_env_t * env,
    axis2_handler_t * handler)
{
    axis2_phase_rule_t *rules = NULL;
    axis2_handler_desc_t *handler_desc = NULL;
    const axis2_char_t *handler_name = NULL;
    const axis2_char_t *after = NULL;
    int i = 0;
    int size = 0;
    const axis2_char_t *name = axutil_string_get_buffer(
        axis2_handler_get_name(handler, env), env);
    const axis2_char_t *handler_desc_name = NULL;

    handler_desc = axis2_handler_get_handler_desc(handler, env);
    if (!handler_desc)
    {
        AXIS2_ERROR_SET(env->error, AXIS2_ERROR_INVALID_NULL_PARAM,
                        AXIS2_FAILURE);
        AXIS2_LOG_ERROR(env->log, AXIS2_LOG_SI, 
            "Handler description is not set in the handler %s within phase %s",
                name, phase->name);
        return AXIS2_FAILURE;
    }
    handler_desc_name = axutil_string_get_buffer(
        axis2_handler_desc_get_name(handler_desc, env), env);
    rules = axis2_handler_desc_get_rules(handler_desc, env);
    if (!rules)
    {
        AXIS2_ERROR_SET(env->error, AXIS2_ERROR_INVALID_NULL_PARAM,
                        AXIS2_FAILURE);
        AXIS2_LOG_ERROR(env->log, AXIS2_LOG_SI,
            "Handler rules are not set in the handler description %s within "\
                "phase %s", handler_desc_name, phase->name);
        return AXIS2_FAILURE;
    }

    after = axis2_phase_rule_get_after(rules, env);
    if (!after)
    {
        AXIS2_ERROR_SET(env->error, AXIS2_ERROR_INVALID_NULL_PARAM,
                        AXIS2_FAILURE);
        AXIS2_LOG_ERROR(env->log, AXIS2_LOG_SI,
            "Rule `after` is not set in the handler rules for handler desc "\
                "%s within phase %s", handler_desc_name, phase->name);
        return AXIS2_FAILURE;
    }

    if (phase->first_handler)
    {
        const axis2_char_t *first_handler_name = axutil_string_get_buffer(
            axis2_handler_get_name(phase->first_handler, env), env);
        handler_desc =
            axis2_handler_get_handler_desc(phase->first_handler, env);
        if (!handler_desc)
        {
            AXIS2_ERROR_SET(env->error, AXIS2_ERROR_INVALID_HANDLER_STATE,
                            AXIS2_FAILURE);
            AXIS2_LOG_ERROR(env->log, AXIS2_LOG_SI,
                "Handler description is not set in the first handler %s "\
                    "within phase %s", first_handler_name, phase->name);
            return AXIS2_FAILURE;
        }

        handler_name =
            axutil_string_get_buffer(axis2_handler_desc_get_name
                                     (handler_desc, env), env);
        if (!handler_name)
        {
            AXIS2_ERROR_SET(env->error, AXIS2_ERROR_INVALID_HANDLER_STATE,
                            AXIS2_FAILURE);
            AXIS2_LOG_ERROR(env->log, AXIS2_LOG_SI,
                "Handler name is not set in the handler description for "\
                    "handler %s within phase %s", name, phase->name);
            return AXIS2_FAILURE;
        }

        if (!axutil_strcmp(after, handler_name))
        {
            return axutil_array_list_add_at(phase->handlers, env, 0, handler);
        }
    }

    size = axutil_array_list_size(phase->handlers, env);

    for (i = 0; i < size; i++)
    {
        axis2_handler_t *temp_handler =
            (axis2_handler_t *) axutil_array_list_get(phase->handlers, env, i);
        if (temp_handler)
        {
            const axis2_char_t *temp_handler_name = axutil_string_get_buffer(
                axis2_handler_get_name(temp_handler, env), env);
            handler_desc = axis2_handler_get_handler_desc(temp_handler, env);
            if (!handler_desc)
            {
                AXIS2_ERROR_SET(env->error, AXIS2_ERROR_INVALID_HANDLER_STATE,
                                AXIS2_FAILURE);
                AXIS2_LOG_ERROR(env->log, AXIS2_LOG_SI,
                    "Handler description is not set in the handler %s within"\
                        " phase %s", temp_handler_name, phase->name);
                return AXIS2_FAILURE;
            }

            handler_name =
                axutil_string_get_buffer(axis2_handler_desc_get_name
                                         (handler_desc, env), env);
            if (!handler_name)
            {
                AXIS2_ERROR_SET(env->error, AXIS2_ERROR_INVALID_HANDLER_STATE,
                                AXIS2_FAILURE);
                AXIS2_LOG_ERROR(env->log, AXIS2_LOG_SI,
                    "Handler name is not set in the handler description %s "\
                        "within phase %s", temp_handler_name, phase->name);
                return AXIS2_FAILURE;
            }

            if (!axutil_strcmp(after, handler_name))
            {
                if (i == (size - 1))
                {
                    return axis2_phase_add_unique(env, phase->handlers,
                                                  handler);
                }
                else
                    return axutil_array_list_add_at(phase->handlers, env, i + 1,
                                                    handler);
            }
        }
    }

    if (size > 0)
        return axutil_array_list_add_at(phase->handlers, env, 0, handler);
    else
    {
        return axis2_phase_add_unique(env, phase->handlers, handler);
    }
}

AXIS2_EXTERN axis2_status_t AXIS2_CALL
axis2_phase_insert_before_and_after(
    axis2_phase_t * phase,
    const axutil_env_t * env,
    axis2_handler_t * handler)
{
    int before = -1;
    int after = -1;
    axis2_phase_rule_t *rules = NULL;
    axis2_handler_desc_t *handler_desc = NULL;
    const axis2_char_t *before_handler_name = NULL,
        *after_handler_name = NULL,
        *after_name = NULL,
        *before_name = NULL,
        *handler_name = NULL;
    int i = 0;
    int size = 0;
    const axis2_char_t *name = axutil_string_get_buffer(
        axis2_handler_get_name(handler, env), env);
    const axis2_char_t *handler_desc_name = NULL;

    handler_desc = axis2_handler_get_handler_desc(handler, env);
    if (!handler_desc)
    {
        AXIS2_ERROR_SET(env->error, AXIS2_ERROR_INVALID_NULL_PARAM,
                        AXIS2_FAILURE);
        AXIS2_LOG_ERROR(env->log, AXIS2_LOG_SI, 
            "Handler description is not set in the handler %s within phase %s", 
                name, phase->name);
        return AXIS2_FAILURE;
    }
    handler_desc_name = axutil_string_get_buffer(
        axis2_handler_desc_get_name(handler_desc, env), env);

    rules = axis2_handler_desc_get_rules(handler_desc, env);
    if (!rules)
    {
        AXIS2_ERROR_SET(env->error, AXIS2_ERROR_INVALID_NULL_PARAM,
                        AXIS2_FAILURE);
        AXIS2_LOG_ERROR(env->log, AXIS2_LOG_SI,
            "Handler rules are not set in the handler description %s within "\
                "phase %s", handler_desc_name, phase->name);
        return AXIS2_FAILURE;
    }

    before_name = axis2_phase_rule_get_before(rules, env);
    if (!before_name)
    {
        AXIS2_ERROR_SET(env->error, AXIS2_ERROR_INVALID_NULL_PARAM,
                        AXIS2_FAILURE);
        AXIS2_LOG_ERROR(env->log, AXIS2_LOG_SI,
            "Rule `before` is not set in the handler rules for handler desc "\
            "   %s within phase %s", handler_desc_name, phase->name);
        return AXIS2_FAILURE;
    }

    after_name = axis2_phase_rule_get_after(rules, env);
    if (!after_name)
    {
        AXIS2_ERROR_SET(env->error, AXIS2_ERROR_INVALID_NULL_PARAM,
                        AXIS2_FAILURE);
        AXIS2_LOG_ERROR(env->log, AXIS2_LOG_SI,
            "Rule `after` is not set in the handler rules for handler desc "\
                "%s within phase %s", handler_desc_name, phase->name);
        return AXIS2_FAILURE;
    }

    if (phase->first_handler)
    {
        const axis2_char_t *first_handler_name = axutil_string_get_buffer(
            axis2_handler_get_name(phase->first_handler, env), env);
        handler_desc =
            axis2_handler_get_handler_desc(phase->first_handler, env);
        if (!handler_desc)
        {
            AXIS2_ERROR_SET(env->error, AXIS2_ERROR_INVALID_HANDLER_STATE,
                            AXIS2_FAILURE);
            AXIS2_LOG_ERROR(env->log, AXIS2_LOG_SI,
                "Handler description is not set in the first handler %s "\
                    "within phase %s", first_handler_name, phase->name);
            return AXIS2_FAILURE;
        }

        before_handler_name =
            axutil_string_get_buffer(axis2_handler_desc_get_name
                                     (handler_desc, env), env);
        if (!before_handler_name)
        {
            AXIS2_ERROR_SET(env->error, AXIS2_ERROR_INVALID_HANDLER_STATE,
                            AXIS2_FAILURE);
            AXIS2_LOG_ERROR(env->log, AXIS2_LOG_SI,
                "Handler name is not set in the handler description for the "\
                    "first handler %s within phase %s", first_handler_name, 
                        phase->name);
            return AXIS2_FAILURE;
        }
    }

    if (phase->last_handler)
    {
        const axis2_char_t *last_handler_name = axutil_string_get_buffer(
            axis2_handler_get_name(phase->last_handler, env), env);
        handler_desc = axis2_handler_get_handler_desc(phase->last_handler, env);
        if (!handler_desc)
        {
            AXIS2_ERROR_SET(env->error, AXIS2_ERROR_INVALID_HANDLER_STATE,
                            AXIS2_FAILURE);
            AXIS2_LOG_ERROR(env->log, AXIS2_LOG_SI,
                "Handler description is not set in the last handler %s "\
                    "within phase %s", last_handler_name, phase->name);
            return AXIS2_FAILURE;
        }

        after_handler_name =
            axutil_string_get_buffer(axis2_handler_desc_get_name
                                     (handler_desc, env), env);
        if (!after_handler_name)
        {
            AXIS2_ERROR_SET(env->error, AXIS2_ERROR_INVALID_HANDLER_STATE,
                            AXIS2_FAILURE);
            AXIS2_LOG_ERROR(env->log, AXIS2_LOG_SI,
                "Handler name is not set in the handler description for the "\
                    "last handler %s within phase %s", last_handler_name, 
                        phase->name);
            return AXIS2_FAILURE;
        }
    }

    if (before_handler_name && after_handler_name)
    {
        if (!axutil_strcmp(before_handler_name, before_name) &&
            !axutil_strcmp(after_handler_name, after_name))
        {
            return axis2_phase_add_unique(env, phase->handlers, handler);
        }
    }

    if (after_handler_name)
    {
        if (!axutil_strcmp(after_handler_name, after_name))
            after = 0;
    }

    size = axutil_array_list_size(phase->handlers, env);

    if (after_handler_name)
    {
        if (!axutil_strcmp(before_handler_name, before_name))
            before = size;
    }

    for (i = 0; i < size; i++)
    {
        axis2_handler_t *temp_handler =
            (axis2_handler_t *) axutil_array_list_get(phase->handlers, env, i);
        if (temp_handler)
        {
            const axis2_char_t *temp_handler_name = axutil_string_get_buffer(
                axis2_handler_get_name(temp_handler, env), env);
            handler_desc = axis2_handler_get_handler_desc(temp_handler, env);
            if (!handler_desc)
            {
                AXIS2_ERROR_SET(env->error, AXIS2_ERROR_INVALID_HANDLER_STATE,
                                AXIS2_FAILURE);
                AXIS2_LOG_ERROR(env->log, AXIS2_LOG_SI,
                    "Handler Description is not set for the Handler %s "\
                        "within phase %s", temp_handler_name, phase->name);
                return AXIS2_FAILURE;
            }

            handler_name =
                axutil_string_get_buffer(axis2_handler_desc_get_name
                                         (handler_desc, env), env);
            if (!handler_name)
            {
                AXIS2_ERROR_SET(env->error, AXIS2_ERROR_INVALID_HANDLER_STATE,
                                AXIS2_FAILURE);
                AXIS2_LOG_ERROR(env->log, AXIS2_LOG_SI,
                    "Handler name is not set in the handler Description for "\
                        "handler %s within phase %s", temp_handler_name, 
                            phase->name);
                return AXIS2_FAILURE;
            }

            if (!axutil_strcmp(handler_name, after_name))
                after = i;
            if (!axutil_strcmp(handler_name, before_name))
                before = i;
        }

        if ((after >= 0) && (before >= 0))
        {
            /*both the before and after indexes have been found */
            if (after > before)
            {
                AXIS2_ERROR_SET(env->error, AXIS2_ERROR_INVALID_HANDLER_STATE,
                                AXIS2_FAILURE);
                AXIS2_LOG_ERROR(env->log, AXIS2_LOG_SI,
                    "Both the before and after indexes have been found and "\
                    "`after` comes before `before` which is wrong within "\
                    "phase %s", phase->name);
                return AXIS2_FAILURE;
            }
            else
            {
                if (after + 1 < size)
                {
                    return axutil_array_list_add_at(phase->handlers, env,
                                                    after + 1, handler);
                }
                else
                {
                    return axis2_phase_add_unique(env, phase->handlers,
                                                  handler);
                }
            }
        }
    }
    return axis2_phase_add_unique(env, phase->handlers, handler);
}

AXIS2_EXTERN axis2_status_t AXIS2_CALL
axis2_phase_insert_handler_desc(
    axis2_phase_t * phase,
    const axutil_env_t * env,
    axis2_handler_desc_t * handler_desc)
{
    int type = 0;
    axis2_handler_t *handler = NULL;
    axis2_status_t status = AXIS2_FAILURE;
    const axis2_char_t *handler_desc_name = axutil_string_get_buffer(
        axis2_handler_desc_get_name(handler_desc, env), env);
    const axis2_char_t *handler_name = NULL;
    handler = axis2_handler_desc_get_handler(handler_desc, env);

    if (!handler)
    {
        AXIS2_ERROR_SET(env->error, AXIS2_ERROR_INVALID_NULL_PARAM,
                        AXIS2_FAILURE);
        AXIS2_LOG_ERROR(env->log, AXIS2_LOG_SI, 
            "Handler is not set in the handler description %s", 
            handler_desc_name);
        return AXIS2_FAILURE;
    }
    handler_name = axutil_string_get_buffer(
        axis2_handler_get_name(handler, env), env);

    if (!_axis2_phase_is_valid_after(phase, env, handler))
    {
        AXIS2_ERROR_SET(env->error, AXIS2_ERROR_INVALID_HANDLER_STATE,
                        AXIS2_FAILURE);
        AXIS2_LOG_ERROR(env->log, AXIS2_LOG_SI, 
            "Invalid Handler State for the handler %s within the phase %s", 
                handler_name, phase->name);
        return AXIS2_FAILURE;
    }

    if (!_axis2_phase_is_valid_before(phase, env, handler))
    {
        AXIS2_ERROR_SET(env->error,
                        AXIS2_ERROR_INVALID_HANDLER_STATE, AXIS2_FAILURE);
        AXIS2_LOG_ERROR(env->log, AXIS2_LOG_SI, 
            "Invalid Handler State for the handler %s within the phase %s", 
                handler_name, phase->name);
        return AXIS2_FAILURE;
    }

    type = _axis2_phase_get_before_after(handler, env);

    switch (type)
    {
    case 0:                    /*AXIS2_BOTH_BEFORE_AFTER: */
        status = axis2_phase_insert_before_and_after(phase, env, handler);
        break;
    case 1:                    /*AXIS2_BEFORE: */
        status = axis2_phase_insert_before(phase, env, handler);
        break;
    case 2:                    /*AXIS2_AFTER: */
        status = axis2_phase_insert_after(phase, env, handler);
        break;
    case 3:                    /*AXIS2_ANYWHERE: */
        status = axis2_phase_add_unique(env, phase->handlers, handler);
        break;
    default:
        AXIS2_LOG_ERROR(env->log, AXIS2_LOG_SI, 
            "Handler description %s insertion failed within the phase %s", 
                handler_desc_name, phase->name);
        status = AXIS2_FAILURE;
        break;
    }
    return status;
}

AXIS2_EXTERN axutil_array_list_t *AXIS2_CALL
axis2_phase_get_all_handlers(
    const axis2_phase_t * phase,
    const axutil_env_t * env)
{
    return phase->handlers;
}

AXIS2_EXTERN axis2_status_t AXIS2_CALL
axis2_phase_invoke_start_from_handler(
    axis2_phase_t * phase,
    const axutil_env_t * env,
    const int paused_handler_index,
    axis2_msg_ctx_t * msg_ctx)
{
    int i = 0,
        size = 0;
    axis2_status_t status = AXIS2_SUCCESS;

    axis2_msg_ctx_set_paused_phase_name(msg_ctx, env, phase->name);

    size = axutil_array_list_size(phase->handlers, env);
    for (i = paused_handler_index; i < size; i++)
    {
        axis2_handler_t *handler =
            (axis2_handler_t *) axutil_array_list_get(phase->handlers, env, i);
        if (handler)
        {
            const axis2_char_t *handler_name = axutil_string_get_buffer(
                axis2_handler_get_name(handler, env), env);
            int index = -1;

            axis2_handler_desc_t *handler_desc =
                axis2_handler_get_handler_desc(handler, env);
            if (!handler_desc)
            {
                AXIS2_ERROR_SET(env->error, AXIS2_ERROR_INVALID_HANDLER_STATE,
                                AXIS2_FAILURE);
                AXIS2_LOG_ERROR(env->log, AXIS2_LOG_SI, 
                    "Invalid Handler State for the handler %s within phase %s", 
                        handler_name, phase->name);
                return AXIS2_FAILURE;
            }

            axis2_handler_invoke(handler, env, msg_ctx);
            index = axis2_msg_ctx_get_current_handler_index(msg_ctx, env);
            axis2_msg_ctx_set_current_handler_index(msg_ctx, env, (index + 1));
        }
    }
    return status;
}

AXIS2_EXTERN void AXIS2_CALL
axis2_phase_free(
    axis2_phase_t * phase,
    const axutil_env_t * env)
{
    if (--(phase->ref) > 0)
    {
        return;
    }

    if (phase->name)
    {
        AXIS2_FREE(env->allocator, phase->name);
    }

    if (phase->handlers)
    {
        axutil_array_list_free(phase->handlers, env);
    }
    AXIS2_FREE(env->allocator, phase);
    return;
}

AXIS2_EXTERN axis2_status_t AXIS2_CALL
axis2_phase_remove_handler_desc(
    axis2_phase_t * phase,
    const axutil_env_t * env,
    axis2_handler_desc_t * handler_desc)
{
    axis2_handler_t *handler;
    const axis2_char_t *handler_desc_name = axutil_string_get_buffer(
        axis2_handler_desc_get_name(handler_desc, env), env);
    handler = axis2_handler_desc_get_handler(handler_desc, env);
    if (!handler)
    {
        AXIS2_ERROR_SET(env->error, AXIS2_ERROR_INVALID_NULL_PARAM,
                        AXIS2_FAILURE);
        AXIS2_LOG_ERROR(env->log, AXIS2_LOG_SI, 
            "Handler is not set in the Handler Description %s within phase %s", 
                handler_desc_name, phase->name);
        return AXIS2_FAILURE;
    }
    return axis2_phase_remove_unique(env, phase->handlers, handler);
}

static axis2_status_t
axis2_phase_add_unique(
    const axutil_env_t * env,
    axutil_array_list_t * list,
    axis2_handler_t * handler)
{
    int i = 0,
        size = 0;
    axis2_bool_t add_handler = AXIS2_TRUE;
    const axutil_string_t *handler_name = NULL;

    handler_name = axis2_handler_get_name(handler, env);
    size = axutil_array_list_size(list, env);
    for (i = 0; i < size; i++)
    {
        axis2_handler_t *obj = NULL;
        const axutil_string_t *obj_name = NULL;

        obj = (axis2_handler_t *) axutil_array_list_get(list, env, i);
        obj_name = axis2_handler_get_name(obj, env);
        if (obj == handler)
        {
            add_handler = AXIS2_FALSE;
            break;
        }
        else if (!axutil_strcmp(axutil_string_get_buffer(handler_name, env),
                                    axutil_string_get_buffer(obj_name, env)))
        {
            add_handler = AXIS2_FALSE;
            break;
        }
    }
    if (add_handler)
        axutil_array_list_add(list, env, handler);
    return AXIS2_SUCCESS;
}

static axis2_status_t
axis2_phase_remove_unique(
    const axutil_env_t * env,
    axutil_array_list_t * list,
    axis2_handler_t * handler)
{
    int i = 0,
        size = 0;
    axis2_bool_t remove_handler = AXIS2_FALSE;
    const axutil_string_t *handler_name = NULL;

    handler_name = axis2_handler_get_name(handler, env);
    size = axutil_array_list_size(list, env);
    for (i = 0; i < size; i++)
    {
        axis2_handler_t *obj = NULL;
        const axutil_string_t *obj_name = NULL;

        obj = (axis2_handler_t *) axutil_array_list_get(list, env, i);
        obj_name = axis2_handler_get_name(obj, env);
        if (obj == handler)
        {
            remove_handler = AXIS2_TRUE;
            break;
        }
        else if (!axutil_strcmp(axutil_string_get_buffer(handler_name, env),
                                axutil_string_get_buffer(obj_name, env)))
        {
            remove_handler = AXIS2_TRUE;
            break;
        }
    }
    if (remove_handler)
        axutil_array_list_remove(list, env, i);
    return AXIS2_SUCCESS;
}

AXIS2_EXTERN axis2_status_t AXIS2_CALL
axis2_phase_increment_ref(
    axis2_phase_t * phase,
    const axutil_env_t * env)
{
    phase->ref++;
    return AXIS2_SUCCESS;
}



<|start_filename|>xdocs/api/html/group__axis2__module__desc.html<|end_filename|>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html><head><meta http-equiv="Content-Type" content="text/html;charset=UTF-8">
<title>Axis2/C: module description</title>
<link href="doxygen.css" rel="stylesheet" type="text/css">
<link href="tabs.css" rel="stylesheet" type="text/css">
</head><body>
<!-- Generated by Doxygen 1.5.3 -->
<div class="tabs">
  <ul>
    <li><a href="index.html"><span>Main&nbsp;Page</span></a></li>
    <li><a href="modules.html"><span>Modules</span></a></li>
    <li><a href="annotated.html"><span>Classes</span></a></li>
    <li><a href="files.html"><span>Files</span></a></li>
    <li><a href="dirs.html"><span>Directories</span></a></li>
    <li><a href="pages.html"><span>Related&nbsp;Pages</span></a></li>
    <li><a href="examples.html"><span>Examples</span></a></li>
    <li>
      <form action="search.php" method="get">
        <table cellspacing="0" cellpadding="0" border="0">
          <tr>
            <td><label>&nbsp;<u>S</u>earch&nbsp;for&nbsp;</label></td>
            <td><input type="text" name="query" value="" size="20" accesskey="s"/></td>
          </tr>
        </table>
      </form>
    </li>
  </ul>
</div>
<h1>module description<br>
<small>
[<a class="el" href="group__axis2__desc.html">description</a>]</small>
</h1><table border="0" cellpadding="0" cellspacing="0">
<tr><td></td></tr>
<tr><td colspan="2"><br><h2>Files</h2></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top">file &nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="axis2__module__desc_8h.html">axis2_module_desc.h</a></td></tr>

<tr><td colspan="2"><br><h2>Typedefs</h2></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top">typedef struct <br>
axis2_module_desc&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__axis2__module__desc.html#g2d21719bf20fcf0dbd25ea4093e28acf">axis2_module_desc_t</a></td></tr>

<tr><td colspan="2"><br><h2>Functions</h2></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top">AXIS2_EXTERN void&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__axis2__module__desc.html#gc448952574bfefeaa624d2d3e053cf89">axis2_module_desc_free</a> (<a class="el" href="group__axis2__module__desc.html#g2d21719bf20fcf0dbd25ea4093e28acf">axis2_module_desc_t</a> *module_desc, const <a class="el" href="structaxutil__env.html">axutil_env_t</a> *env)</td></tr>

<tr><td class="memItemLeft" nowrap align="right" valign="top">AXIS2_EXTERN <br>
<a class="el" href="group__axis2__flow.html#gd6d04c1c62cbffd6140a8df8fcbe5a09">axis2_flow_t</a> *&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__axis2__module__desc.html#ga133856dcfeb27be4c08d8c353c66255">axis2_module_desc_get_in_flow</a> (const <a class="el" href="group__axis2__module__desc.html#g2d21719bf20fcf0dbd25ea4093e28acf">axis2_module_desc_t</a> *module_desc, const <a class="el" href="structaxutil__env.html">axutil_env_t</a> *env)</td></tr>

<tr><td class="memItemLeft" nowrap align="right" valign="top">AXIS2_EXTERN <br>
axis2_status_t&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__axis2__module__desc.html#g1dee42234c84e9a1f39829b03abd75ef">axis2_module_desc_set_in_flow</a> (<a class="el" href="group__axis2__module__desc.html#g2d21719bf20fcf0dbd25ea4093e28acf">axis2_module_desc_t</a> *module_desc, const <a class="el" href="structaxutil__env.html">axutil_env_t</a> *env, <a class="el" href="group__axis2__flow.html#gd6d04c1c62cbffd6140a8df8fcbe5a09">axis2_flow_t</a> *in_flow)</td></tr>

<tr><td class="memItemLeft" nowrap align="right" valign="top">AXIS2_EXTERN <br>
<a class="el" href="group__axis2__flow.html#gd6d04c1c62cbffd6140a8df8fcbe5a09">axis2_flow_t</a> *&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__axis2__module__desc.html#gee74a4f6384c34f35780864b8c36cc50">axis2_module_desc_get_out_flow</a> (const <a class="el" href="group__axis2__module__desc.html#g2d21719bf20fcf0dbd25ea4093e28acf">axis2_module_desc_t</a> *module_desc, const <a class="el" href="structaxutil__env.html">axutil_env_t</a> *env)</td></tr>

<tr><td class="memItemLeft" nowrap align="right" valign="top">AXIS2_EXTERN <br>
axis2_status_t&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__axis2__module__desc.html#g7eb90b76e13c85492f9b27c2eca2a965">axis2_module_desc_set_out_flow</a> (<a class="el" href="group__axis2__module__desc.html#g2d21719bf20fcf0dbd25ea4093e28acf">axis2_module_desc_t</a> *module_desc, const <a class="el" href="structaxutil__env.html">axutil_env_t</a> *env, <a class="el" href="group__axis2__flow.html#gd6d04c1c62cbffd6140a8df8fcbe5a09">axis2_flow_t</a> *out_flow)</td></tr>

<tr><td class="memItemLeft" nowrap align="right" valign="top">AXIS2_EXTERN <br>
<a class="el" href="group__axis2__flow.html#gd6d04c1c62cbffd6140a8df8fcbe5a09">axis2_flow_t</a> *&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__axis2__module__desc.html#g3ec33b603cdf59e705be51f6b91325f6">axis2_module_desc_get_fault_in_flow</a> (const <a class="el" href="group__axis2__module__desc.html#g2d21719bf20fcf0dbd25ea4093e28acf">axis2_module_desc_t</a> *module_desc, const <a class="el" href="structaxutil__env.html">axutil_env_t</a> *env)</td></tr>

<tr><td class="memItemLeft" nowrap align="right" valign="top">AXIS2_EXTERN <br>
axis2_status_t&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__axis2__module__desc.html#gc298b10b80e0259f8a0c44411d544ba0">axis2_module_desc_set_fault_in_flow</a> (<a class="el" href="group__axis2__module__desc.html#g2d21719bf20fcf0dbd25ea4093e28acf">axis2_module_desc_t</a> *module_desc, const <a class="el" href="structaxutil__env.html">axutil_env_t</a> *env, <a class="el" href="group__axis2__flow.html#gd6d04c1c62cbffd6140a8df8fcbe5a09">axis2_flow_t</a> *falut_in_flow)</td></tr>

<tr><td class="memItemLeft" nowrap align="right" valign="top">AXIS2_EXTERN <br>
<a class="el" href="group__axis2__flow.html#gd6d04c1c62cbffd6140a8df8fcbe5a09">axis2_flow_t</a> *&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__axis2__module__desc.html#g4879dd6cadbceca1634e17924429d6c0">axis2_module_desc_get_fault_out_flow</a> (const <a class="el" href="group__axis2__module__desc.html#g2d21719bf20fcf0dbd25ea4093e28acf">axis2_module_desc_t</a> *module_desc, const <a class="el" href="structaxutil__env.html">axutil_env_t</a> *env)</td></tr>

<tr><td class="memItemLeft" nowrap align="right" valign="top">AXIS2_EXTERN <br>
axis2_status_t&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__axis2__module__desc.html#ga36710d6c228635ea4223b1de3b40e97">axis2_module_desc_set_fault_out_flow</a> (<a class="el" href="group__axis2__module__desc.html#g2d21719bf20fcf0dbd25ea4093e28acf">axis2_module_desc_t</a> *module_desc, const <a class="el" href="structaxutil__env.html">axutil_env_t</a> *env, <a class="el" href="group__axis2__flow.html#gd6d04c1c62cbffd6140a8df8fcbe5a09">axis2_flow_t</a> *fault_out_flow)</td></tr>

<tr><td class="memItemLeft" nowrap align="right" valign="top">AXIS2_EXTERN const <br>
axutil_qname_t *&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__axis2__module__desc.html#g9438beca852762d657353cf0c31146af">axis2_module_desc_get_qname</a> (const <a class="el" href="group__axis2__module__desc.html#g2d21719bf20fcf0dbd25ea4093e28acf">axis2_module_desc_t</a> *module_desc, const <a class="el" href="structaxutil__env.html">axutil_env_t</a> *env)</td></tr>

<tr><td class="memItemLeft" nowrap align="right" valign="top">AXIS2_EXTERN <br>
axis2_status_t&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__axis2__module__desc.html#g85c96803117bc02ca8d224d4b9517372">axis2_module_desc_set_qname</a> (<a class="el" href="group__axis2__module__desc.html#g2d21719bf20fcf0dbd25ea4093e28acf">axis2_module_desc_t</a> *module_desc, const <a class="el" href="structaxutil__env.html">axutil_env_t</a> *env, const axutil_qname_t *qname)</td></tr>

<tr><td class="memItemLeft" nowrap align="right" valign="top">AXIS2_EXTERN <br>
axis2_status_t&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__axis2__module__desc.html#g6b5f55cbf9b71e1e662c7dc8fdc5489d">axis2_module_desc_add_op</a> (<a class="el" href="group__axis2__module__desc.html#g2d21719bf20fcf0dbd25ea4093e28acf">axis2_module_desc_t</a> *module_desc, const <a class="el" href="structaxutil__env.html">axutil_env_t</a> *env, struct axis2_op *op)</td></tr>

<tr><td class="memItemLeft" nowrap align="right" valign="top">AXIS2_EXTERN <br>
<a class="el" href="group__axutil__hash.html#gb2d7d14db2de92a101573f44421ac12a">axutil_hash_t</a> *&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__axis2__module__desc.html#gd780223e3a54586ef6bf173c49eb9d9b">axis2_module_desc_get_all_ops</a> (const <a class="el" href="group__axis2__module__desc.html#g2d21719bf20fcf0dbd25ea4093e28acf">axis2_module_desc_t</a> *module_desc, const <a class="el" href="structaxutil__env.html">axutil_env_t</a> *env)</td></tr>

<tr><td class="memItemLeft" nowrap align="right" valign="top">AXIS2_EXTERN struct <br>
axis2_conf *&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__axis2__module__desc.html#gb01c8f56f9c94ca518849c09bc7bf0d8">axis2_module_desc_get_parent</a> (const <a class="el" href="group__axis2__module__desc.html#g2d21719bf20fcf0dbd25ea4093e28acf">axis2_module_desc_t</a> *module_desc, const <a class="el" href="structaxutil__env.html">axutil_env_t</a> *env)</td></tr>

<tr><td class="memItemLeft" nowrap align="right" valign="top">AXIS2_EXTERN <br>
axis2_status_t&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__axis2__module__desc.html#g2571fdc9828be8ccf946ed5b9e0fc205">axis2_module_desc_set_parent</a> (<a class="el" href="group__axis2__module__desc.html#g2d21719bf20fcf0dbd25ea4093e28acf">axis2_module_desc_t</a> *module_desc, const <a class="el" href="structaxutil__env.html">axutil_env_t</a> *env, struct axis2_conf *parent)</td></tr>

<tr><td class="memItemLeft" nowrap align="right" valign="top">AXIS2_EXTERN <br>
axis2_status_t&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__axis2__module__desc.html#g47de5f2a697c6994862579db03050d92">axis2_module_desc_add_param</a> (<a class="el" href="group__axis2__module__desc.html#g2d21719bf20fcf0dbd25ea4093e28acf">axis2_module_desc_t</a> *module_desc, const <a class="el" href="structaxutil__env.html">axutil_env_t</a> *env, axutil_param_t *param)</td></tr>

<tr><td class="memItemLeft" nowrap align="right" valign="top">AXIS2_EXTERN <br>
axutil_param_t *&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__axis2__module__desc.html#g4c2f8d8e3b263468edc82aa1d53aea3a">axis2_module_desc_get_param</a> (const <a class="el" href="group__axis2__module__desc.html#g2d21719bf20fcf0dbd25ea4093e28acf">axis2_module_desc_t</a> *module_desc, const <a class="el" href="structaxutil__env.html">axutil_env_t</a> *env, const axis2_char_t *name)</td></tr>

<tr><td class="memItemLeft" nowrap align="right" valign="top">AXIS2_EXTERN <br>
<a class="el" href="group__axutil__array__list.html#g1a6a89777db876cfa0cc86787b7be6a0">axutil_array_list_t</a> *&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__axis2__module__desc.html#g4c5fa59c3c4ceca4cb2f57425f4e7838">axis2_module_desc_get_all_params</a> (const <a class="el" href="group__axis2__module__desc.html#g2d21719bf20fcf0dbd25ea4093e28acf">axis2_module_desc_t</a> *module_desc, const <a class="el" href="structaxutil__env.html">axutil_env_t</a> *env)</td></tr>

<tr><td class="memItemLeft" nowrap align="right" valign="top">AXIS2_EXTERN axis2_bool_t&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__axis2__module__desc.html#g889f5fc4ff540dc1c8a2b32b145bc2c9">axis2_module_desc_is_param_locked</a> (const <a class="el" href="group__axis2__module__desc.html#g2d21719bf20fcf0dbd25ea4093e28acf">axis2_module_desc_t</a> *module_desc, const <a class="el" href="structaxutil__env.html">axutil_env_t</a> *env, const axis2_char_t *param_name)</td></tr>

<tr><td class="memItemLeft" nowrap align="right" valign="top">AXIS2_EXTERN struct <br>
<a class="el" href="structaxis2__module.html">axis2_module</a> *&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__axis2__module__desc.html#gd421edfcd1fe5c5d9770b9ea74e8b4d9">axis2_module_desc_get_module</a> (const <a class="el" href="group__axis2__module__desc.html#g2d21719bf20fcf0dbd25ea4093e28acf">axis2_module_desc_t</a> *module_desc, const <a class="el" href="structaxutil__env.html">axutil_env_t</a> *env)</td></tr>

<tr><td class="memItemLeft" nowrap align="right" valign="top">AXIS2_EXTERN <br>
axis2_status_t&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__axis2__module__desc.html#g0177e17d95d9dff343c5a0383464b5fb">axis2_module_desc_set_module</a> (<a class="el" href="group__axis2__module__desc.html#g2d21719bf20fcf0dbd25ea4093e28acf">axis2_module_desc_t</a> *module_desc, const <a class="el" href="structaxutil__env.html">axutil_env_t</a> *env, struct <a class="el" href="structaxis2__module.html">axis2_module</a> *module)</td></tr>

<tr><td class="memItemLeft" nowrap align="right" valign="top">AXIS2_EXTERN <br>
axutil_param_container_t *&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__axis2__module__desc.html#g1a09ad8c0b308f4793ca1643059c7810">axis2_module_desc_get_param_container</a> (const <a class="el" href="group__axis2__module__desc.html#g2d21719bf20fcf0dbd25ea4093e28acf">axis2_module_desc_t</a> *module_desc, const <a class="el" href="structaxutil__env.html">axutil_env_t</a> *env)</td></tr>

<tr><td class="memItemLeft" nowrap align="right" valign="top">AXIS2_EXTERN <br>
<a class="el" href="group__axis2__flow__container.html#g645e6696dcbc315b06681604a150254f">axis2_flow_container_t</a> *&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__axis2__module__desc.html#g268f3d8499ddd8eb7a17d775dc1a2663">axis2_module_desc_get_flow_container</a> (const <a class="el" href="group__axis2__module__desc.html#g2d21719bf20fcf0dbd25ea4093e28acf">axis2_module_desc_t</a> *module_desc, const <a class="el" href="structaxutil__env.html">axutil_env_t</a> *env)</td></tr>

<tr><td class="memItemLeft" nowrap align="right" valign="top">AXIS2_EXTERN <br>
<a class="el" href="group__axis2__module__desc.html#g2d21719bf20fcf0dbd25ea4093e28acf">axis2_module_desc_t</a> *&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__axis2__module__desc.html#gb7bdee97a344fe15071d867b83b02d78">axis2_module_desc_create</a> (const <a class="el" href="structaxutil__env.html">axutil_env_t</a> *env)</td></tr>

<tr><td class="memItemLeft" nowrap align="right" valign="top">AXIS2_EXTERN <br>
<a class="el" href="group__axis2__module__desc.html#g2d21719bf20fcf0dbd25ea4093e28acf">axis2_module_desc_t</a> *&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__axis2__module__desc.html#g32a5747341faa2fd783403556d884802">axis2_module_desc_create_with_qname</a> (const <a class="el" href="structaxutil__env.html">axutil_env_t</a> *env, const axutil_qname_t *qname)</td></tr>

<tr><td class="memItemLeft" nowrap align="right" valign="top">AXIS2_EXTERN void&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__axis2__module__desc.html#g346c54cf62f63272833814eeb412904d">axis2_module_desc_free_void_arg</a> (void *module_desc, const <a class="el" href="structaxutil__env.html">axutil_env_t</a> *env)</td></tr>

</table>
<hr><a name="_details"></a><h2>Detailed Description</h2>
module holds information about a module. This information includes module parameters and handler information. Modules are available to all services if axis2.xml has a module reference entry. Alternatively, a module could be made available to selected services by including a module reference entry in services.xml. <hr><h2>Typedef Documentation</h2>
<a class="anchor" name="g2d21719bf20fcf0dbd25ea4093e28acf"></a><!-- doxytag: member="axis2_module_desc.h::axis2_module_desc_t" ref="g2d21719bf20fcf0dbd25ea4093e28acf" args="" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">typedef struct axis2_module_desc <a class="el" href="group__axis2__module__desc.html#g2d21719bf20fcf0dbd25ea4093e28acf">axis2_module_desc_t</a>          </td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
Type name for struct axis2_module_desc 
</div>
</div><p>
<hr><h2>Function Documentation</h2>
<a class="anchor" name="g6b5f55cbf9b71e1e662c7dc8fdc5489d"></a><!-- doxytag: member="axis2_module_desc.h::axis2_module_desc_add_op" ref="g6b5f55cbf9b71e1e662c7dc8fdc5489d" args="(axis2_module_desc_t *module_desc, const axutil_env_t *env, struct axis2_op *op)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">AXIS2_EXTERN axis2_status_t axis2_module_desc_add_op           </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="group__axis2__module__desc.html#g2d21719bf20fcf0dbd25ea4093e28acf">axis2_module_desc_t</a> *&nbsp;</td>
          <td class="paramname"> <em>module_desc</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const <a class="el" href="structaxutil__env.html">axutil_env_t</a> *&nbsp;</td>
          <td class="paramname"> <em>env</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">struct axis2_op *&nbsp;</td>
          <td class="paramname"> <em>op</em></td><td>&nbsp;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td><td width="100%"></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
Adds given operation to module. <dl compact><dt><b>Parameters:</b></dt><dd>
  <table border="0" cellspacing="2" cellpadding="0">
    <tr><td valign="top"></td><td valign="top"><em>module_desc</em>&nbsp;</td><td>pointer to module description </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>env</em>&nbsp;</td><td>pointer to environment struct </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>op</em>&nbsp;</td><td>pointer to operation, module assumes ownership of operation </td></tr>
  </table>
</dl>
<dl class="return" compact><dt><b>Returns:</b></dt><dd>AXIS2_SUCCESS on success, else AXIS2_FAILURE </dd></dl>

</div>
</div><p>
<a class="anchor" name="g47de5f2a697c6994862579db03050d92"></a><!-- doxytag: member="axis2_module_desc.h::axis2_module_desc_add_param" ref="g47de5f2a697c6994862579db03050d92" args="(axis2_module_desc_t *module_desc, const axutil_env_t *env, axutil_param_t *param)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">AXIS2_EXTERN axis2_status_t axis2_module_desc_add_param           </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="group__axis2__module__desc.html#g2d21719bf20fcf0dbd25ea4093e28acf">axis2_module_desc_t</a> *&nbsp;</td>
          <td class="paramname"> <em>module_desc</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const <a class="el" href="structaxutil__env.html">axutil_env_t</a> *&nbsp;</td>
          <td class="paramname"> <em>env</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">axutil_param_t *&nbsp;</td>
          <td class="paramname"> <em>param</em></td><td>&nbsp;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td><td width="100%"></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
Adds parameter to module description. <dl compact><dt><b>Parameters:</b></dt><dd>
  <table border="0" cellspacing="2" cellpadding="0">
    <tr><td valign="top"></td><td valign="top"><em>module_desc</em>&nbsp;</td><td>pointer to module description </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>env</em>&nbsp;</td><td>pointer to environment struct </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>param</em>&nbsp;</td><td>pointer to parameter struct </td></tr>
  </table>
</dl>
<dl class="return" compact><dt><b>Returns:</b></dt><dd>AXIS2_SUCCESS on success, else AXIS2_FAILURE </dd></dl>

</div>
</div><p>
<a class="anchor" name="gb7bdee97a344fe15071d867b83b02d78"></a><!-- doxytag: member="axis2_module_desc.h::axis2_module_desc_create" ref="gb7bdee97a344fe15071d867b83b02d78" args="(const axutil_env_t *env)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">AXIS2_EXTERN <a class="el" href="group__axis2__module__desc.html#g2d21719bf20fcf0dbd25ea4093e28acf">axis2_module_desc_t</a>* axis2_module_desc_create           </td>
          <td>(</td>
          <td class="paramtype">const <a class="el" href="structaxutil__env.html">axutil_env_t</a> *&nbsp;</td>
          <td class="paramname"> <em>env</em>          </td>
          <td>&nbsp;)&nbsp;</td>
          <td width="100%"></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
Creates module description struct instance. <dl compact><dt><b>Parameters:</b></dt><dd>
  <table border="0" cellspacing="2" cellpadding="0">
    <tr><td valign="top"></td><td valign="top"><em>env</em>&nbsp;</td><td>pointer to environment struct </td></tr>
  </table>
</dl>
<dl class="return" compact><dt><b>Returns:</b></dt><dd>pointer to newly created module description </dd></dl>

</div>
</div><p>
<a class="anchor" name="g32a5747341faa2fd783403556d884802"></a><!-- doxytag: member="axis2_module_desc.h::axis2_module_desc_create_with_qname" ref="g32a5747341faa2fd783403556d884802" args="(const axutil_env_t *env, const axutil_qname_t *qname)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">AXIS2_EXTERN <a class="el" href="group__axis2__module__desc.html#g2d21719bf20fcf0dbd25ea4093e28acf">axis2_module_desc_t</a>* axis2_module_desc_create_with_qname           </td>
          <td>(</td>
          <td class="paramtype">const <a class="el" href="structaxutil__env.html">axutil_env_t</a> *&nbsp;</td>
          <td class="paramname"> <em>env</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const axutil_qname_t *&nbsp;</td>
          <td class="paramname"> <em>qname</em></td><td>&nbsp;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td><td width="100%"></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
Creates module description struct instance with given QName. <dl compact><dt><b>Parameters:</b></dt><dd>
  <table border="0" cellspacing="2" cellpadding="0">
    <tr><td valign="top"></td><td valign="top"><em>env</em>&nbsp;</td><td>pointer to environment struct </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>qname</em>&nbsp;</td><td>pointer to QName </td></tr>
  </table>
</dl>
<dl class="return" compact><dt><b>Returns:</b></dt><dd>pointer to newly created module description </dd></dl>

</div>
</div><p>
<a class="anchor" name="gc448952574bfefeaa624d2d3e053cf89"></a><!-- doxytag: member="axis2_module_desc.h::axis2_module_desc_free" ref="gc448952574bfefeaa624d2d3e053cf89" args="(axis2_module_desc_t *module_desc, const axutil_env_t *env)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">AXIS2_EXTERN void axis2_module_desc_free           </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="group__axis2__module__desc.html#g2d21719bf20fcf0dbd25ea4093e28acf">axis2_module_desc_t</a> *&nbsp;</td>
          <td class="paramname"> <em>module_desc</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const <a class="el" href="structaxutil__env.html">axutil_env_t</a> *&nbsp;</td>
          <td class="paramname"> <em>env</em></td><td>&nbsp;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td><td width="100%"></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
Frees module description. <dl compact><dt><b>Parameters:</b></dt><dd>
  <table border="0" cellspacing="2" cellpadding="0">
    <tr><td valign="top"></td><td valign="top"><em>module_desc</em>&nbsp;</td><td>pointer to module description </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>env</em>&nbsp;</td><td>pointer to environment struct </td></tr>
  </table>
</dl>
<dl class="return" compact><dt><b>Returns:</b></dt><dd>void </dd></dl>

</div>
</div><p>
<a class="anchor" name="g346c54cf62f63272833814eeb412904d"></a><!-- doxytag: member="axis2_module_desc.h::axis2_module_desc_free_void_arg" ref="g346c54cf62f63272833814eeb412904d" args="(void *module_desc, const axutil_env_t *env)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">AXIS2_EXTERN void axis2_module_desc_free_void_arg           </td>
          <td>(</td>
          <td class="paramtype">void *&nbsp;</td>
          <td class="paramname"> <em>module_desc</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const <a class="el" href="structaxutil__env.html">axutil_env_t</a> *&nbsp;</td>
          <td class="paramname"> <em>env</em></td><td>&nbsp;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td><td width="100%"></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
Frees module description passed as void pointer. This method will cast the void pointer parameter into appropriate type and then call module description free method on top of that pointer. <dl compact><dt><b>Parameters:</b></dt><dd>
  <table border="0" cellspacing="2" cellpadding="0">
    <tr><td valign="top"></td><td valign="top"><em>module_desc</em>&nbsp;</td><td>pointer to module description as a void pointer </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>env</em>&nbsp;</td><td>pointer to environment struct </td></tr>
  </table>
</dl>
<dl class="return" compact><dt><b>Returns:</b></dt><dd>void </dd></dl>

</div>
</div><p>
<a class="anchor" name="gd780223e3a54586ef6bf173c49eb9d9b"></a><!-- doxytag: member="axis2_module_desc.h::axis2_module_desc_get_all_ops" ref="gd780223e3a54586ef6bf173c49eb9d9b" args="(const axis2_module_desc_t *module_desc, const axutil_env_t *env)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">AXIS2_EXTERN <a class="el" href="group__axutil__hash.html#gb2d7d14db2de92a101573f44421ac12a">axutil_hash_t</a>* axis2_module_desc_get_all_ops           </td>
          <td>(</td>
          <td class="paramtype">const <a class="el" href="group__axis2__module__desc.html#g2d21719bf20fcf0dbd25ea4093e28acf">axis2_module_desc_t</a> *&nbsp;</td>
          <td class="paramname"> <em>module_desc</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const <a class="el" href="structaxutil__env.html">axutil_env_t</a> *&nbsp;</td>
          <td class="paramname"> <em>env</em></td><td>&nbsp;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td><td width="100%"></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
Gets all operations associated with module. <dl compact><dt><b>Parameters:</b></dt><dd>
  <table border="0" cellspacing="2" cellpadding="0">
    <tr><td valign="top"></td><td valign="top"><em>module_desc</em>&nbsp;</td><td>pointer to module description </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>env</em>&nbsp;</td><td>pointer to environment struct </td></tr>
  </table>
</dl>
<dl class="return" compact><dt><b>Returns:</b></dt><dd>pointer to hash map containing the operations </dd></dl>

</div>
</div><p>
<a class="anchor" name="g4c5fa59c3c4ceca4cb2f57425f4e7838"></a><!-- doxytag: member="axis2_module_desc.h::axis2_module_desc_get_all_params" ref="g4c5fa59c3c4ceca4cb2f57425f4e7838" args="(const axis2_module_desc_t *module_desc, const axutil_env_t *env)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">AXIS2_EXTERN <a class="el" href="group__axutil__array__list.html#g1a6a89777db876cfa0cc86787b7be6a0">axutil_array_list_t</a>* axis2_module_desc_get_all_params           </td>
          <td>(</td>
          <td class="paramtype">const <a class="el" href="group__axis2__module__desc.html#g2d21719bf20fcf0dbd25ea4093e28acf">axis2_module_desc_t</a> *&nbsp;</td>
          <td class="paramname"> <em>module_desc</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const <a class="el" href="structaxutil__env.html">axutil_env_t</a> *&nbsp;</td>
          <td class="paramname"> <em>env</em></td><td>&nbsp;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td><td width="100%"></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
Gets all parameters associated with module. <dl compact><dt><b>Parameters:</b></dt><dd>
  <table border="0" cellspacing="2" cellpadding="0">
    <tr><td valign="top"></td><td valign="top"><em>module_desc</em>&nbsp;</td><td>pointer to module description </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>env</em>&nbsp;</td><td>pointer to environment struct </td></tr>
  </table>
</dl>
<dl class="return" compact><dt><b>Returns:</b></dt><dd>pointer to array list containing all parameters </dd></dl>

</div>
</div><p>
<a class="anchor" name="g3ec33b603cdf59e705be51f6b91325f6"></a><!-- doxytag: member="axis2_module_desc.h::axis2_module_desc_get_fault_in_flow" ref="g3ec33b603cdf59e705be51f6b91325f6" args="(const axis2_module_desc_t *module_desc, const axutil_env_t *env)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">AXIS2_EXTERN <a class="el" href="group__axis2__flow.html#gd6d04c1c62cbffd6140a8df8fcbe5a09">axis2_flow_t</a>* axis2_module_desc_get_fault_in_flow           </td>
          <td>(</td>
          <td class="paramtype">const <a class="el" href="group__axis2__module__desc.html#g2d21719bf20fcf0dbd25ea4093e28acf">axis2_module_desc_t</a> *&nbsp;</td>
          <td class="paramname"> <em>module_desc</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const <a class="el" href="structaxutil__env.html">axutil_env_t</a> *&nbsp;</td>
          <td class="paramname"> <em>env</em></td><td>&nbsp;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td><td width="100%"></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
Gets flow representing fault in flow. <dl compact><dt><b>Parameters:</b></dt><dd>
  <table border="0" cellspacing="2" cellpadding="0">
    <tr><td valign="top"></td><td valign="top"><em>module_desc</em>&nbsp;</td><td>pointer to module description </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>env</em>&nbsp;</td><td>pointer to environment struct </td></tr>
  </table>
</dl>
<dl class="return" compact><dt><b>Returns:</b></dt><dd>pointer to flow that represents fault in flow, returns a reference not a cloned copy </dd></dl>

</div>
</div><p>
<a class="anchor" name="g4879dd6cadbceca1634e17924429d6c0"></a><!-- doxytag: member="axis2_module_desc.h::axis2_module_desc_get_fault_out_flow" ref="g4879dd6cadbceca1634e17924429d6c0" args="(const axis2_module_desc_t *module_desc, const axutil_env_t *env)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">AXIS2_EXTERN <a class="el" href="group__axis2__flow.html#gd6d04c1c62cbffd6140a8df8fcbe5a09">axis2_flow_t</a>* axis2_module_desc_get_fault_out_flow           </td>
          <td>(</td>
          <td class="paramtype">const <a class="el" href="group__axis2__module__desc.html#g2d21719bf20fcf0dbd25ea4093e28acf">axis2_module_desc_t</a> *&nbsp;</td>
          <td class="paramname"> <em>module_desc</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const <a class="el" href="structaxutil__env.html">axutil_env_t</a> *&nbsp;</td>
          <td class="paramname"> <em>env</em></td><td>&nbsp;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td><td width="100%"></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
Gets flow representing fault out flow. <dl compact><dt><b>Parameters:</b></dt><dd>
  <table border="0" cellspacing="2" cellpadding="0">
    <tr><td valign="top"></td><td valign="top"><em>module_desc</em>&nbsp;</td><td>pointer to module description </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>env</em>&nbsp;</td><td>pointer to environment struct </td></tr>
  </table>
</dl>
<dl class="return" compact><dt><b>Returns:</b></dt><dd>pointer to flow that represents fault out flow, returns a reference not a cloned copy </dd></dl>

</div>
</div><p>
<a class="anchor" name="g268f3d8499ddd8eb7a17d775dc1a2663"></a><!-- doxytag: member="axis2_module_desc.h::axis2_module_desc_get_flow_container" ref="g268f3d8499ddd8eb7a17d775dc1a2663" args="(const axis2_module_desc_t *module_desc, const axutil_env_t *env)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">AXIS2_EXTERN <a class="el" href="group__axis2__flow__container.html#g645e6696dcbc315b06681604a150254f">axis2_flow_container_t</a>* axis2_module_desc_get_flow_container           </td>
          <td>(</td>
          <td class="paramtype">const <a class="el" href="group__axis2__module__desc.html#g2d21719bf20fcf0dbd25ea4093e28acf">axis2_module_desc_t</a> *&nbsp;</td>
          <td class="paramname"> <em>module_desc</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const <a class="el" href="structaxutil__env.html">axutil_env_t</a> *&nbsp;</td>
          <td class="paramname"> <em>env</em></td><td>&nbsp;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td><td width="100%"></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
Gets the container having all flows. <dl compact><dt><b>Parameters:</b></dt><dd>
  <table border="0" cellspacing="2" cellpadding="0">
    <tr><td valign="top"></td><td valign="top"><em>module_desc</em>&nbsp;</td><td>pointer to module description </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>env</em>&nbsp;</td><td>pointer to environment struct </td></tr>
  </table>
</dl>
<dl class="return" compact><dt><b>Returns:</b></dt><dd>pointer to param container </dd></dl>
<dl class="see" compact><dt><b>See also:</b></dt><dd><a class="el" href="group__axis2__flow__container.html">flow container</a> </dd></dl>

</div>
</div><p>
<a class="anchor" name="ga133856dcfeb27be4c08d8c353c66255"></a><!-- doxytag: member="axis2_module_desc.h::axis2_module_desc_get_in_flow" ref="ga133856dcfeb27be4c08d8c353c66255" args="(const axis2_module_desc_t *module_desc, const axutil_env_t *env)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">AXIS2_EXTERN <a class="el" href="group__axis2__flow.html#gd6d04c1c62cbffd6140a8df8fcbe5a09">axis2_flow_t</a>* axis2_module_desc_get_in_flow           </td>
          <td>(</td>
          <td class="paramtype">const <a class="el" href="group__axis2__module__desc.html#g2d21719bf20fcf0dbd25ea4093e28acf">axis2_module_desc_t</a> *&nbsp;</td>
          <td class="paramname"> <em>module_desc</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const <a class="el" href="structaxutil__env.html">axutil_env_t</a> *&nbsp;</td>
          <td class="paramname"> <em>env</em></td><td>&nbsp;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td><td width="100%"></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
Gets flow representing in flow. <dl compact><dt><b>Parameters:</b></dt><dd>
  <table border="0" cellspacing="2" cellpadding="0">
    <tr><td valign="top"></td><td valign="top"><em>module_desc</em>&nbsp;</td><td>pointer to module description </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>env</em>&nbsp;</td><td>pointer to environment struct </td></tr>
  </table>
</dl>
<dl class="return" compact><dt><b>Returns:</b></dt><dd>pointer to flow that represents in flow, returns a reference not a cloned copy </dd></dl>

</div>
</div><p>
<a class="anchor" name="gd421edfcd1fe5c5d9770b9ea74e8b4d9"></a><!-- doxytag: member="axis2_module_desc.h::axis2_module_desc_get_module" ref="gd421edfcd1fe5c5d9770b9ea74e8b4d9" args="(const axis2_module_desc_t *module_desc, const axutil_env_t *env)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">AXIS2_EXTERN struct <a class="el" href="structaxis2__module.html">axis2_module</a>* axis2_module_desc_get_module           </td>
          <td>(</td>
          <td class="paramtype">const <a class="el" href="group__axis2__module__desc.html#g2d21719bf20fcf0dbd25ea4093e28acf">axis2_module_desc_t</a> *&nbsp;</td>
          <td class="paramname"> <em>module_desc</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const <a class="el" href="structaxutil__env.html">axutil_env_t</a> *&nbsp;</td>
          <td class="paramname"> <em>env</em></td><td>&nbsp;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td><td width="100%"><code> [read]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
Gets module associated with module description. <dl compact><dt><b>Parameters:</b></dt><dd>
  <table border="0" cellspacing="2" cellpadding="0">
    <tr><td valign="top"></td><td valign="top"><em>module_desc</em>&nbsp;</td><td>pointer to module description </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>env</em>&nbsp;</td><td>pointer to environment struct </td></tr>
  </table>
</dl>
<dl class="return" compact><dt><b>Returns:</b></dt><dd>pointer to module </dd></dl>

</div>
</div><p>
<a class="anchor" name="gee74a4f6384c34f35780864b8c36cc50"></a><!-- doxytag: member="axis2_module_desc.h::axis2_module_desc_get_out_flow" ref="gee74a4f6384c34f35780864b8c36cc50" args="(const axis2_module_desc_t *module_desc, const axutil_env_t *env)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">AXIS2_EXTERN <a class="el" href="group__axis2__flow.html#gd6d04c1c62cbffd6140a8df8fcbe5a09">axis2_flow_t</a>* axis2_module_desc_get_out_flow           </td>
          <td>(</td>
          <td class="paramtype">const <a class="el" href="group__axis2__module__desc.html#g2d21719bf20fcf0dbd25ea4093e28acf">axis2_module_desc_t</a> *&nbsp;</td>
          <td class="paramname"> <em>module_desc</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const <a class="el" href="structaxutil__env.html">axutil_env_t</a> *&nbsp;</td>
          <td class="paramname"> <em>env</em></td><td>&nbsp;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td><td width="100%"></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
Gets flow representing out flow. <dl compact><dt><b>Parameters:</b></dt><dd>
  <table border="0" cellspacing="2" cellpadding="0">
    <tr><td valign="top"></td><td valign="top"><em>module_desc</em>&nbsp;</td><td>pointer to module description </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>env</em>&nbsp;</td><td>pointer to environment struct </td></tr>
  </table>
</dl>
<dl class="return" compact><dt><b>Returns:</b></dt><dd>pointer to flow that represents out flow, returns a reference not a cloned copy </dd></dl>

</div>
</div><p>
<a class="anchor" name="g4c2f8d8e3b263468edc82aa1d53aea3a"></a><!-- doxytag: member="axis2_module_desc.h::axis2_module_desc_get_param" ref="g4c2f8d8e3b263468edc82aa1d53aea3a" args="(const axis2_module_desc_t *module_desc, const axutil_env_t *env, const axis2_char_t *name)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">AXIS2_EXTERN axutil_param_t* axis2_module_desc_get_param           </td>
          <td>(</td>
          <td class="paramtype">const <a class="el" href="group__axis2__module__desc.html#g2d21719bf20fcf0dbd25ea4093e28acf">axis2_module_desc_t</a> *&nbsp;</td>
          <td class="paramname"> <em>module_desc</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const <a class="el" href="structaxutil__env.html">axutil_env_t</a> *&nbsp;</td>
          <td class="paramname"> <em>env</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const axis2_char_t *&nbsp;</td>
          <td class="paramname"> <em>name</em></td><td>&nbsp;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td><td width="100%"></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
Gets parameter with given name. <dl compact><dt><b>Parameters:</b></dt><dd>
  <table border="0" cellspacing="2" cellpadding="0">
    <tr><td valign="top"></td><td valign="top"><em>module_desc</em>&nbsp;</td><td>pointer to module description </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>env</em>&nbsp;</td><td>pointer to environment struct </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>name</em>&nbsp;</td><td>parameter name string </td></tr>
  </table>
</dl>
<dl class="return" compact><dt><b>Returns:</b></dt><dd>pointer to parameter corresponding to given name </dd></dl>

</div>
</div><p>
<a class="anchor" name="g1a09ad8c0b308f4793ca1643059c7810"></a><!-- doxytag: member="axis2_module_desc.h::axis2_module_desc_get_param_container" ref="g1a09ad8c0b308f4793ca1643059c7810" args="(const axis2_module_desc_t *module_desc, const axutil_env_t *env)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">AXIS2_EXTERN axutil_param_container_t* axis2_module_desc_get_param_container           </td>
          <td>(</td>
          <td class="paramtype">const <a class="el" href="group__axis2__module__desc.html#g2d21719bf20fcf0dbd25ea4093e28acf">axis2_module_desc_t</a> *&nbsp;</td>
          <td class="paramname"> <em>module_desc</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const <a class="el" href="structaxutil__env.html">axutil_env_t</a> *&nbsp;</td>
          <td class="paramname"> <em>env</em></td><td>&nbsp;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td><td width="100%"></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
Gets the container having all params. <dl compact><dt><b>Parameters:</b></dt><dd>
  <table border="0" cellspacing="2" cellpadding="0">
    <tr><td valign="top"></td><td valign="top"><em>module_desc</em>&nbsp;</td><td>pointer to module description </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>env</em>&nbsp;</td><td>pointer to environment struct </td></tr>
  </table>
</dl>
<dl class="return" compact><dt><b>Returns:</b></dt><dd>pointer to param container </dd></dl>
<dl class="see" compact><dt><b>See also:</b></dt><dd><a class="el" href="group__axutil__param__container.html">Parameter Container</a> </dd></dl>

</div>
</div><p>
<a class="anchor" name="gb01c8f56f9c94ca518849c09bc7bf0d8"></a><!-- doxytag: member="axis2_module_desc.h::axis2_module_desc_get_parent" ref="gb01c8f56f9c94ca518849c09bc7bf0d8" args="(const axis2_module_desc_t *module_desc, const axutil_env_t *env)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">AXIS2_EXTERN struct axis2_conf* axis2_module_desc_get_parent           </td>
          <td>(</td>
          <td class="paramtype">const <a class="el" href="group__axis2__module__desc.html#g2d21719bf20fcf0dbd25ea4093e28acf">axis2_module_desc_t</a> *&nbsp;</td>
          <td class="paramname"> <em>module_desc</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const <a class="el" href="structaxutil__env.html">axutil_env_t</a> *&nbsp;</td>
          <td class="paramname"> <em>env</em></td><td>&nbsp;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td><td width="100%"><code> [read]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
Gets parent which is of type configuration. <dl compact><dt><b>Parameters:</b></dt><dd>
  <table border="0" cellspacing="2" cellpadding="0">
    <tr><td valign="top"></td><td valign="top"><em>module_desc</em>&nbsp;</td><td>pointer to module description </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>env</em>&nbsp;</td><td>pointer to environment struct </td></tr>
  </table>
</dl>
<dl class="return" compact><dt><b>Returns:</b></dt><dd>pointer to configuration, returns a reference not a cloned copy </dd></dl>

</div>
</div><p>
<a class="anchor" name="g9438beca852762d657353cf0c31146af"></a><!-- doxytag: member="axis2_module_desc.h::axis2_module_desc_get_qname" ref="g9438beca852762d657353cf0c31146af" args="(const axis2_module_desc_t *module_desc, const axutil_env_t *env)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">AXIS2_EXTERN const axutil_qname_t* axis2_module_desc_get_qname           </td>
          <td>(</td>
          <td class="paramtype">const <a class="el" href="group__axis2__module__desc.html#g2d21719bf20fcf0dbd25ea4093e28acf">axis2_module_desc_t</a> *&nbsp;</td>
          <td class="paramname"> <em>module_desc</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const <a class="el" href="structaxutil__env.html">axutil_env_t</a> *&nbsp;</td>
          <td class="paramname"> <em>env</em></td><td>&nbsp;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td><td width="100%"></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
Gets module QName. <dl compact><dt><b>Parameters:</b></dt><dd>
  <table border="0" cellspacing="2" cellpadding="0">
    <tr><td valign="top"></td><td valign="top"><em>module_desc</em>&nbsp;</td><td>pointer to module description </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>env</em>&nbsp;</td><td>pointer to environment struct </td></tr>
  </table>
</dl>
<dl class="return" compact><dt><b>Returns:</b></dt><dd>pointer to QName </dd></dl>

</div>
</div><p>
<a class="anchor" name="g889f5fc4ff540dc1c8a2b32b145bc2c9"></a><!-- doxytag: member="axis2_module_desc.h::axis2_module_desc_is_param_locked" ref="g889f5fc4ff540dc1c8a2b32b145bc2c9" args="(const axis2_module_desc_t *module_desc, const axutil_env_t *env, const axis2_char_t *param_name)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">AXIS2_EXTERN axis2_bool_t axis2_module_desc_is_param_locked           </td>
          <td>(</td>
          <td class="paramtype">const <a class="el" href="group__axis2__module__desc.html#g2d21719bf20fcf0dbd25ea4093e28acf">axis2_module_desc_t</a> *&nbsp;</td>
          <td class="paramname"> <em>module_desc</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const <a class="el" href="structaxutil__env.html">axutil_env_t</a> *&nbsp;</td>
          <td class="paramname"> <em>env</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const axis2_char_t *&nbsp;</td>
          <td class="paramname"> <em>param_name</em></td><td>&nbsp;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td><td width="100%"></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
Checks if a given parameter is locked. <dl compact><dt><b>Parameters:</b></dt><dd>
  <table border="0" cellspacing="2" cellpadding="0">
    <tr><td valign="top"></td><td valign="top"><em>module_desc</em>&nbsp;</td><td>pointer to module description </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>env</em>&nbsp;</td><td>pointer to environment struct </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>param_name</em>&nbsp;</td><td>parameter name string </td></tr>
  </table>
</dl>
<dl class="return" compact><dt><b>Returns:</b></dt><dd>AXIS2_TRUE if named parameter is locked, else AXIS2_FALSE </dd></dl>

</div>
</div><p>
<a class="anchor" name="gc298b10b80e0259f8a0c44411d544ba0"></a><!-- doxytag: member="axis2_module_desc.h::axis2_module_desc_set_fault_in_flow" ref="gc298b10b80e0259f8a0c44411d544ba0" args="(axis2_module_desc_t *module_desc, const axutil_env_t *env, axis2_flow_t *falut_in_flow)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">AXIS2_EXTERN axis2_status_t axis2_module_desc_set_fault_in_flow           </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="group__axis2__module__desc.html#g2d21719bf20fcf0dbd25ea4093e28acf">axis2_module_desc_t</a> *&nbsp;</td>
          <td class="paramname"> <em>module_desc</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const <a class="el" href="structaxutil__env.html">axutil_env_t</a> *&nbsp;</td>
          <td class="paramname"> <em>env</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype"><a class="el" href="group__axis2__flow.html#gd6d04c1c62cbffd6140a8df8fcbe5a09">axis2_flow_t</a> *&nbsp;</td>
          <td class="paramname"> <em>falut_in_flow</em></td><td>&nbsp;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td><td width="100%"></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
Sets flow representing fault in flow. <dl compact><dt><b>Parameters:</b></dt><dd>
  <table border="0" cellspacing="2" cellpadding="0">
    <tr><td valign="top"></td><td valign="top"><em>module_desc</em>&nbsp;</td><td>pointer to module description </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>env</em>&nbsp;</td><td>pointer to environment struct </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>falut_in_flow</em>&nbsp;</td><td>pointer to flow representing fault in flow, module assumes ownership of flow </td></tr>
  </table>
</dl>
<dl class="return" compact><dt><b>Returns:</b></dt><dd>AXIS2_SUCCESS on success, else AXIS2_FAILURE </dd></dl>

</div>
</div><p>
<a class="anchor" name="ga36710d6c228635ea4223b1de3b40e97"></a><!-- doxytag: member="axis2_module_desc.h::axis2_module_desc_set_fault_out_flow" ref="ga36710d6c228635ea4223b1de3b40e97" args="(axis2_module_desc_t *module_desc, const axutil_env_t *env, axis2_flow_t *fault_out_flow)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">AXIS2_EXTERN axis2_status_t axis2_module_desc_set_fault_out_flow           </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="group__axis2__module__desc.html#g2d21719bf20fcf0dbd25ea4093e28acf">axis2_module_desc_t</a> *&nbsp;</td>
          <td class="paramname"> <em>module_desc</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const <a class="el" href="structaxutil__env.html">axutil_env_t</a> *&nbsp;</td>
          <td class="paramname"> <em>env</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype"><a class="el" href="group__axis2__flow.html#gd6d04c1c62cbffd6140a8df8fcbe5a09">axis2_flow_t</a> *&nbsp;</td>
          <td class="paramname"> <em>fault_out_flow</em></td><td>&nbsp;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td><td width="100%"></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
Sets flow representing fault out flow. <dl compact><dt><b>Parameters:</b></dt><dd>
  <table border="0" cellspacing="2" cellpadding="0">
    <tr><td valign="top"></td><td valign="top"><em>module_desc</em>&nbsp;</td><td>pointer to module description </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>env</em>&nbsp;</td><td>pointer to environment struct </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>fault_out_flow</em>&nbsp;</td><td>pointer to flow representing fault out flow, module assumes ownership of flow </td></tr>
  </table>
</dl>
<dl class="return" compact><dt><b>Returns:</b></dt><dd>AXIS2_SUCCESS on success, else AXIS2_FAILURE </dd></dl>

</div>
</div><p>
<a class="anchor" name="g1dee42234c84e9a1f39829b03abd75ef"></a><!-- doxytag: member="axis2_module_desc.h::axis2_module_desc_set_in_flow" ref="g1dee42234c84e9a1f39829b03abd75ef" args="(axis2_module_desc_t *module_desc, const axutil_env_t *env, axis2_flow_t *in_flow)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">AXIS2_EXTERN axis2_status_t axis2_module_desc_set_in_flow           </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="group__axis2__module__desc.html#g2d21719bf20fcf0dbd25ea4093e28acf">axis2_module_desc_t</a> *&nbsp;</td>
          <td class="paramname"> <em>module_desc</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const <a class="el" href="structaxutil__env.html">axutil_env_t</a> *&nbsp;</td>
          <td class="paramname"> <em>env</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype"><a class="el" href="group__axis2__flow.html#gd6d04c1c62cbffd6140a8df8fcbe5a09">axis2_flow_t</a> *&nbsp;</td>
          <td class="paramname"> <em>in_flow</em></td><td>&nbsp;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td><td width="100%"></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
Sets flow representing in flow. <dl compact><dt><b>Parameters:</b></dt><dd>
  <table border="0" cellspacing="2" cellpadding="0">
    <tr><td valign="top"></td><td valign="top"><em>module_desc</em>&nbsp;</td><td>pointer to module description </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>env</em>&nbsp;</td><td>pointer to environment struct </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>in_flow</em>&nbsp;</td><td>pointer to flow representing in flow, module assumes ownership of flow </td></tr>
  </table>
</dl>
<dl class="return" compact><dt><b>Returns:</b></dt><dd>AXIS2_SUCCESS on success, else AXIS2_FAILURE </dd></dl>

</div>
</div><p>
<a class="anchor" name="g0177e17d95d9dff343c5a0383464b5fb"></a><!-- doxytag: member="axis2_module_desc.h::axis2_module_desc_set_module" ref="g0177e17d95d9dff343c5a0383464b5fb" args="(axis2_module_desc_t *module_desc, const axutil_env_t *env, struct axis2_module *module)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">AXIS2_EXTERN axis2_status_t axis2_module_desc_set_module           </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="group__axis2__module__desc.html#g2d21719bf20fcf0dbd25ea4093e28acf">axis2_module_desc_t</a> *&nbsp;</td>
          <td class="paramname"> <em>module_desc</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const <a class="el" href="structaxutil__env.html">axutil_env_t</a> *&nbsp;</td>
          <td class="paramname"> <em>env</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">struct <a class="el" href="structaxis2__module.html">axis2_module</a> *&nbsp;</td>
          <td class="paramname"> <em>module</em></td><td>&nbsp;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td><td width="100%"></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
<dl compact><dt><b>Parameters:</b></dt><dd>
  <table border="0" cellspacing="2" cellpadding="0">
    <tr><td valign="top"></td><td valign="top"><em>module_desc</em>&nbsp;</td><td>pointer to module description </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>env</em>&nbsp;</td><td>pointer to environment struct </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>module</em>&nbsp;</td><td>pointer to module, module description assumes ownership of module </td></tr>
  </table>
</dl>
<dl class="return" compact><dt><b>Returns:</b></dt><dd>AXIS2_SUCCESS on success, else AXIS2_FAILURE </dd></dl>

</div>
</div><p>
<a class="anchor" name="g7eb90b76e13c85492f9b27c2eca2a965"></a><!-- doxytag: member="axis2_module_desc.h::axis2_module_desc_set_out_flow" ref="g7eb90b76e13c85492f9b27c2eca2a965" args="(axis2_module_desc_t *module_desc, const axutil_env_t *env, axis2_flow_t *out_flow)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">AXIS2_EXTERN axis2_status_t axis2_module_desc_set_out_flow           </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="group__axis2__module__desc.html#g2d21719bf20fcf0dbd25ea4093e28acf">axis2_module_desc_t</a> *&nbsp;</td>
          <td class="paramname"> <em>module_desc</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const <a class="el" href="structaxutil__env.html">axutil_env_t</a> *&nbsp;</td>
          <td class="paramname"> <em>env</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype"><a class="el" href="group__axis2__flow.html#gd6d04c1c62cbffd6140a8df8fcbe5a09">axis2_flow_t</a> *&nbsp;</td>
          <td class="paramname"> <em>out_flow</em></td><td>&nbsp;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td><td width="100%"></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
Sets flow representing out flow. <dl compact><dt><b>Parameters:</b></dt><dd>
  <table border="0" cellspacing="2" cellpadding="0">
    <tr><td valign="top"></td><td valign="top"><em>module_desc</em>&nbsp;</td><td>pointer to module description </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>env</em>&nbsp;</td><td>pointer to environment struct </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>out_flow</em>&nbsp;</td><td>pointer to flow representing out flow, module assumes ownership of flow </td></tr>
  </table>
</dl>
<dl class="return" compact><dt><b>Returns:</b></dt><dd>AXIS2_SUCCESS on success, else AXIS2_FAILURE </dd></dl>

</div>
</div><p>
<a class="anchor" name="g2571fdc9828be8ccf946ed5b9e0fc205"></a><!-- doxytag: member="axis2_module_desc.h::axis2_module_desc_set_parent" ref="g2571fdc9828be8ccf946ed5b9e0fc205" args="(axis2_module_desc_t *module_desc, const axutil_env_t *env, struct axis2_conf *parent)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">AXIS2_EXTERN axis2_status_t axis2_module_desc_set_parent           </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="group__axis2__module__desc.html#g2d21719bf20fcf0dbd25ea4093e28acf">axis2_module_desc_t</a> *&nbsp;</td>
          <td class="paramname"> <em>module_desc</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const <a class="el" href="structaxutil__env.html">axutil_env_t</a> *&nbsp;</td>
          <td class="paramname"> <em>env</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">struct axis2_conf *&nbsp;</td>
          <td class="paramname"> <em>parent</em></td><td>&nbsp;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td><td width="100%"></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
Sets parent which is of type configuration. <dl compact><dt><b>Parameters:</b></dt><dd>
  <table border="0" cellspacing="2" cellpadding="0">
    <tr><td valign="top"></td><td valign="top"><em>module_desc</em>&nbsp;</td><td>pointer to module description </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>env</em>&nbsp;</td><td>pointer to environment struct </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>parent</em>&nbsp;</td><td>pointer to parent configuration, module does not assume the ownership of configuration </td></tr>
  </table>
</dl>
<dl class="return" compact><dt><b>Returns:</b></dt><dd>AXIS2_SUCCESS on success, else AXIS2_FAILURE </dd></dl>

</div>
</div><p>
<a class="anchor" name="g85c96803117bc02ca8d224d4b9517372"></a><!-- doxytag: member="axis2_module_desc.h::axis2_module_desc_set_qname" ref="g85c96803117bc02ca8d224d4b9517372" args="(axis2_module_desc_t *module_desc, const axutil_env_t *env, const axutil_qname_t *qname)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">AXIS2_EXTERN axis2_status_t axis2_module_desc_set_qname           </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="group__axis2__module__desc.html#g2d21719bf20fcf0dbd25ea4093e28acf">axis2_module_desc_t</a> *&nbsp;</td>
          <td class="paramname"> <em>module_desc</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const <a class="el" href="structaxutil__env.html">axutil_env_t</a> *&nbsp;</td>
          <td class="paramname"> <em>env</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const axutil_qname_t *&nbsp;</td>
          <td class="paramname"> <em>qname</em></td><td>&nbsp;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td><td width="100%"></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
Sets module QName. <dl compact><dt><b>Parameters:</b></dt><dd>
  <table border="0" cellspacing="2" cellpadding="0">
    <tr><td valign="top"></td><td valign="top"><em>module_desc</em>&nbsp;</td><td>pointer to module description </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>env</em>&nbsp;</td><td>pointer to environment struct </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>qname</em>&nbsp;</td><td>pointer to qname </td></tr>
  </table>
</dl>
<dl class="return" compact><dt><b>Returns:</b></dt><dd>AXIS2_SUCCESS on success, else AXIS2_FAILURE </dd></dl>

</div>
</div><p>
<hr size="1"><address style="text-align: right;"><small>Generated on Fri Apr 17 11:49:45 2009 for Axis2/C by&nbsp;
<a href="http://www.doxygen.org/index.html">
<img src="doxygen.png" alt="doxygen" align="middle" border="0"></a> 1.5.3 </small></address>
</body>
</html>


<|start_filename|>xdocs/api/html/axiom__node_8h.html<|end_filename|>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html><head><meta http-equiv="Content-Type" content="text/html;charset=UTF-8">
<title>Axis2/C: axiom_node.h File Reference</title>
<link href="doxygen.css" rel="stylesheet" type="text/css">
<link href="tabs.css" rel="stylesheet" type="text/css">
</head><body>
<!-- Generated by Doxygen 1.5.3 -->
<div class="tabs">
  <ul>
    <li><a href="index.html"><span>Main&nbsp;Page</span></a></li>
    <li><a href="modules.html"><span>Modules</span></a></li>
    <li><a href="annotated.html"><span>Classes</span></a></li>
    <li class="current"><a href="files.html"><span>Files</span></a></li>
    <li><a href="dirs.html"><span>Directories</span></a></li>
    <li><a href="pages.html"><span>Related&nbsp;Pages</span></a></li>
    <li><a href="examples.html"><span>Examples</span></a></li>
    <li>
      <form action="search.php" method="get">
        <table cellspacing="0" cellpadding="0" border="0">
          <tr>
            <td><label>&nbsp;<u>S</u>earch&nbsp;for&nbsp;</label></td>
            <td><input type="text" name="query" value="" size="20" accesskey="s"/></td>
          </tr>
        </table>
      </form>
    </li>
  </ul>
</div>
<div class="nav">
<a class="el" href="dir_f60961de8e5edc3b2658ef023e959e45.html">deploy</a>&nbsp;&raquo&nbsp;<a class="el" href="dir_6b4e91e54b7316b376882a6402adbf44.html">include</a>&nbsp;&raquo&nbsp;<a class="el" href="dir_df3a7695d5a9e696f30b948b566829e7.html">axis2-1.6.0</a></div>
<h1>axiom_node.h File Reference</h1>defines axiom_node struct <a href="#_details">More...</a>
<p>
<code>#include &lt;<a class="el" href="axutil__env_8h-source.html">axutil_env.h</a>&gt;</code><br>
<code>#include &lt;<a class="el" href="axutil__utils_8h-source.html">axutil_utils.h</a>&gt;</code><br>

<p>
<a href="axiom__node_8h-source.html">Go to the source code of this file.</a><table border="0" cellpadding="0" cellspacing="0">
<tr><td></td></tr>
<tr><td colspan="2"><br><h2>Typedefs</h2></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="69f1378ea7db6ff0162d243792736648"></a><!-- doxytag: member="axiom_node.h::axiom_node_t" ref="69f1378ea7db6ff0162d243792736648" args="" -->
typedef struct axiom_node&nbsp;</td><td class="memItemRight" valign="bottom"><b>axiom_node_t</b></td></tr>

<tr><td colspan="2"><br><h2>Enumerations</h2></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top">enum &nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__axiom__node.html#g1d63f86448ef155d8b2baa77ef7ae2ab">axiom_types_t</a> { <br>
&nbsp;&nbsp;<a class="el" href="group__axiom__node.html#gg1d63f86448ef155d8b2baa77ef7ae2ab8095bbfed954c5b83f7cb2b9be88b424">AXIOM_INVALID</a> =  0, 
<a class="el" href="group__axiom__node.html#gg1d63f86448ef155d8b2baa77ef7ae2ab7d1cd7babba0b26f356b3551f3928137">AXIOM_DOCUMENT</a>, 
<a class="el" href="group__axiom__node.html#gg1d63f86448ef155d8b2baa77ef7ae2ab8f302659663027c648d09c5f7639e258">AXIOM_ELEMENT</a>, 
<a class="el" href="group__axiom__node.html#gg1d63f86448ef155d8b2baa77ef7ae2abb7b1deecbd2a868300f609d0fed32b03">AXIOM_DOCTYPE</a>, 
<br>
&nbsp;&nbsp;<a class="el" href="group__axiom__node.html#gg1d63f86448ef155d8b2baa77ef7ae2ab0dc6b4983ac7bf72b34cc272c8b2992d">AXIOM_COMMENT</a>, 
<a class="el" href="group__axiom__node.html#gg1d63f86448ef155d8b2baa77ef7ae2ab58d53d51f1f6b2c316e3566b2c7ba6b2">AXIOM_ATTRIBUTE</a>, 
<a class="el" href="group__axiom__node.html#gg1d63f86448ef155d8b2baa77ef7ae2ab0e3fa55c496c56b36ecb55b60221890d">AXIOM_NAMESPACE</a>, 
<a class="el" href="group__axiom__node.html#gg1d63f86448ef155d8b2baa77ef7ae2ab008f7c2f34ead9d68d3e3f0f6612f547">AXIOM_PROCESSING_INSTRUCTION</a>, 
<br>
&nbsp;&nbsp;<a class="el" href="group__axiom__node.html#gg1d63f86448ef155d8b2baa77ef7ae2ab8a11b652dbc4165765d21d3652b186d5">AXIOM_TEXT</a>, 
<a class="el" href="group__axiom__node.html#gg1d63f86448ef155d8b2baa77ef7ae2ab32efd4c02439b7c8314fcd8a4a4ae417">AXIOM_DATA_SOURCE</a>
<br>
 }</td></tr>

<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">AXIOM types.  <a href="group__axiom__node.html#g1d63f86448ef155d8b2baa77ef7ae2ab">More...</a><br></td></tr>
<tr><td colspan="2"><br><h2>Functions</h2></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top">AXIS2_EXTERN <br>
axiom_node_t *&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__axiom__node.html#g1558b403be5c6339997a7730596337bb">axiom_node_create</a> (const <a class="el" href="structaxutil__env.html">axutil_env_t</a> *env)</td></tr>

<tr><td class="memItemLeft" nowrap align="right" valign="top">AXIS2_EXTERN <br>
axiom_node_t *&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__axiom__node.html#gaf55148ae4b5101b0688900819eb6823">axiom_node_create_from_buffer</a> (const <a class="el" href="structaxutil__env.html">axutil_env_t</a> *env, axis2_char_t *buffer)</td></tr>

<tr><td class="memItemLeft" nowrap align="right" valign="top">AXIS2_EXTERN void&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__axiom__node.html#g934d857b13c36866a6c85078f156bc82">axiom_node_free_tree</a> (axiom_node_t *om_node, const <a class="el" href="structaxutil__env.html">axutil_env_t</a> *env)</td></tr>

<tr><td class="memItemLeft" nowrap align="right" valign="top">AXIS2_EXTERN <br>
axis2_status_t&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__axiom__node.html#gd0406c625e1dbde273a6010cf8bab38c">axiom_node_add_child</a> (axiom_node_t *om_node, const <a class="el" href="structaxutil__env.html">axutil_env_t</a> *env, axiom_node_t *child)</td></tr>

<tr><td class="memItemLeft" nowrap align="right" valign="top">AXIS2_EXTERN <br>
axiom_node_t *&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__axiom__node.html#g8b581d1db9d2a0f80abe5aa3bf6cae2d">axiom_node_detach</a> (axiom_node_t *om_node, const <a class="el" href="structaxutil__env.html">axutil_env_t</a> *env)</td></tr>

<tr><td class="memItemLeft" nowrap align="right" valign="top">AXIS2_EXTERN <br>
axis2_status_t&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__axiom__node.html#gd3f52c5c7c9886cc3dc3483c26919e72">axiom_node_insert_sibling_after</a> (axiom_node_t *om_node, const <a class="el" href="structaxutil__env.html">axutil_env_t</a> *env, axiom_node_t *node_to_insert)</td></tr>

<tr><td class="memItemLeft" nowrap align="right" valign="top">AXIS2_EXTERN <br>
axis2_status_t&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__axiom__node.html#ged3250c790969964a948b0469207a735">axiom_node_insert_sibling_before</a> (axiom_node_t *om_node, const <a class="el" href="structaxutil__env.html">axutil_env_t</a> *env, axiom_node_t *node_to_insert)</td></tr>

<tr><td class="memItemLeft" nowrap align="right" valign="top">AXIS2_EXTERN <br>
axis2_status_t&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__axiom__node.html#g1936a8e535927d9726d804092ad9d4d3">axiom_node_serialize</a> (axiom_node_t *om_node, const <a class="el" href="structaxutil__env.html">axutil_env_t</a> *env, struct axiom_output *om_output)</td></tr>

<tr><td class="memItemLeft" nowrap align="right" valign="top">AXIS2_EXTERN <br>
axiom_node_t *&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__axiom__node.html#g95cc9c4355bfab75e03ad61014b72075">axiom_node_get_parent</a> (axiom_node_t *om_node, const <a class="el" href="structaxutil__env.html">axutil_env_t</a> *env)</td></tr>

<tr><td class="memItemLeft" nowrap align="right" valign="top">AXIS2_EXTERN <br>
axiom_node_t *&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__axiom__node.html#gfc7806095f1e72667a49eab5945b66e3">axiom_node_get_first_child</a> (axiom_node_t *om_node, const <a class="el" href="structaxutil__env.html">axutil_env_t</a> *env)</td></tr>

<tr><td class="memItemLeft" nowrap align="right" valign="top">AXIS2_EXTERN <br>
axiom_node_t *&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__axiom__node.html#g2c569263c409668ff1b653aeb7712bb5">axiom_node_get_first_element</a> (axiom_node_t *om_node, const <a class="el" href="structaxutil__env.html">axutil_env_t</a> *env)</td></tr>

<tr><td class="memItemLeft" nowrap align="right" valign="top">AXIS2_EXTERN <br>
axiom_node_t *&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__axiom__node.html#g9f55bfff8ac1c89995dfc93d47ddcd0a">axiom_node_get_last_child</a> (axiom_node_t *om_node, const <a class="el" href="structaxutil__env.html">axutil_env_t</a> *env)</td></tr>

<tr><td class="memItemLeft" nowrap align="right" valign="top">AXIS2_EXTERN <br>
axiom_node_t *&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__axiom__node.html#g39a92d131beb6295b849d9853ee89db7">axiom_node_get_previous_sibling</a> (axiom_node_t *om_node, const <a class="el" href="structaxutil__env.html">axutil_env_t</a> *env)</td></tr>

<tr><td class="memItemLeft" nowrap align="right" valign="top">AXIS2_EXTERN <br>
axiom_node_t *&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__axiom__node.html#g6d91d78cb733d34724901e75887e85c9">axiom_node_get_next_sibling</a> (axiom_node_t *om_node, const <a class="el" href="structaxutil__env.html">axutil_env_t</a> *env)</td></tr>

<tr><td class="memItemLeft" nowrap align="right" valign="top">AXIS2_EXTERN <br>
<a class="el" href="group__axiom__node.html#g1d63f86448ef155d8b2baa77ef7ae2ab">axiom_types_t</a>&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__axiom__node.html#g5f0287bd7a7487da62528717787b69b4">axiom_node_get_node_type</a> (axiom_node_t *om_node, const <a class="el" href="structaxutil__env.html">axutil_env_t</a> *env)</td></tr>

<tr><td class="memItemLeft" nowrap align="right" valign="top">AXIS2_EXTERN void *&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__axiom__node.html#geb488e8c836956940ea4c01b92a0c421">axiom_node_get_data_element</a> (axiom_node_t *om_node, const <a class="el" href="structaxutil__env.html">axutil_env_t</a> *env)</td></tr>

<tr><td class="memItemLeft" nowrap align="right" valign="top">AXIS2_EXTERN axis2_bool_t&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__axiom__node.html#g94ec253a7993a968b8a2e5fc80c7f5f3">axiom_node_is_complete</a> (axiom_node_t *om_node, const <a class="el" href="structaxutil__env.html">axutil_env_t</a> *env)</td></tr>

<tr><td class="memItemLeft" nowrap align="right" valign="top">AXIS2_EXTERN struct <br>
axiom_document *&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__axiom__node.html#g2bdaabafdd623955d2837ad00e536603">axiom_node_get_document</a> (axiom_node_t *om_node, const <a class="el" href="structaxutil__env.html">axutil_env_t</a> *env)</td></tr>

<tr><td class="memItemLeft" nowrap align="right" valign="top">AXIS2_EXTERN <br>
axis2_char_t *&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__axiom__node.html#g0cf9fdca65f2b7c5ab0e485cf21bc3ba">axiom_node_to_string</a> (axiom_node_t *om_node, const <a class="el" href="structaxutil__env.html">axutil_env_t</a> *env)</td></tr>

<tr><td class="memItemLeft" nowrap align="right" valign="top">AXIS2_EXTERN <br>
axis2_status_t&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__axiom__node.html#ga5e126b3d2462d4569e0d4b0a9bcd80e">axiom_node_serialize_sub_tree</a> (axiom_node_t *om_node, const <a class="el" href="structaxutil__env.html">axutil_env_t</a> *env, struct axiom_output *om_output)</td></tr>

<tr><td class="memItemLeft" nowrap align="right" valign="top">AXIS2_EXTERN <br>
axis2_char_t *&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__axiom__node.html#g7fa2bbf70033a1eb6943a9b2c1c4de59">axiom_node_sub_tree_to_string</a> (axiom_node_t *om_node, const <a class="el" href="structaxutil__env.html">axutil_env_t</a> *env)</td></tr>

<tr><td class="memItemLeft" nowrap align="right" valign="top">AXIS2_EXTERN <br>
axis2_char_t *&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__axiom__node.html#g9f6d265d8c276d0925aef199396cda0a">axiom_node_to_string_non_optimized</a> (axiom_node_t *om_node, const <a class="el" href="structaxutil__env.html">axutil_env_t</a> *env)</td></tr>

</table>
<hr><a name="_details"></a><h2>Detailed Description</h2>
defines axiom_node struct 
<p>
<hr size="1"><address style="text-align: right;"><small>Generated on Fri Apr 17 11:49:43 2009 for Axis2/C by&nbsp;
<a href="http://www.doxygen.org/index.html">
<img src="doxygen.png" alt="doxygen" align="middle" border="0"></a> 1.5.3 </small></address>
</body>
</html>


<|start_filename|>xdocs/api/html/structaxutil__log__ops.html<|end_filename|>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html><head><meta http-equiv="Content-Type" content="text/html;charset=UTF-8">
<title>Axis2/C: axutil_log_ops Struct Reference</title>
<link href="doxygen.css" rel="stylesheet" type="text/css">
<link href="tabs.css" rel="stylesheet" type="text/css">
</head><body>
<!-- Generated by Doxygen 1.5.3 -->
<div class="tabs">
  <ul>
    <li><a href="index.html"><span>Main&nbsp;Page</span></a></li>
    <li><a href="modules.html"><span>Modules</span></a></li>
    <li class="current"><a href="annotated.html"><span>Classes</span></a></li>
    <li><a href="files.html"><span>Files</span></a></li>
    <li><a href="dirs.html"><span>Directories</span></a></li>
    <li><a href="pages.html"><span>Related&nbsp;Pages</span></a></li>
    <li><a href="examples.html"><span>Examples</span></a></li>
    <li>
      <form action="search.php" method="get">
        <table cellspacing="0" cellpadding="0" border="0">
          <tr>
            <td><label>&nbsp;<u>S</u>earch&nbsp;for&nbsp;</label></td>
            <td><input type="text" name="query" value="" size="20" accesskey="s"/></td>
          </tr>
        </table>
      </form>
    </li>
  </ul>
</div>
<div class="tabs">
  <ul>
    <li><a href="annotated.html"><span>Class&nbsp;List</span></a></li>
    <li><a href="functions.html"><span>Class&nbsp;Members</span></a></li>
  </ul>
</div>
<h1>axutil_log_ops Struct Reference<br>
<small>
[<a class="el" href="group__axutil__log.html">log</a>]</small>
</h1><!-- doxytag: class="axutil_log_ops" -->Axis2 log ops struct.  
<a href="#_details">More...</a>
<p>
<code>#include &lt;<a class="el" href="axutil__log_8h-source.html">axutil_log.h</a>&gt;</code>
<p>

<p>
<a href="structaxutil__log__ops-members.html">List of all members.</a><table border="0" cellpadding="0" cellspacing="0">
<tr><td></td></tr>
<tr><td colspan="2"><br><h2>Public Attributes</h2></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top">void(*&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="structaxutil__log__ops.html#b4996bdfbcd42be8cf62950dc59c2a7b">free</a> )(<a class="el" href="structaxutil__allocator.html">axutil_allocator_t</a> *allocator, struct <a class="el" href="structaxutil__log.html">axutil_log</a> *log)</td></tr>

<tr><td class="memItemLeft" nowrap align="right" valign="top">void(*&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="structaxutil__log__ops.html#8992fe7f68747b72629f1b3b73bcffbe">write</a> )(<a class="el" href="structaxutil__log.html">axutil_log_t</a> *log, const axis2_char_t *buffer, <a class="el" href="group__axutil__log.html#g0c477f6f8724a6258a9caaabfcf2c482">axutil_log_levels_t</a> level, const axis2_char_t *file, const int line)</td></tr>

</table>
<hr><a name="_details"></a><h2>Detailed Description</h2>
Axis2 log ops struct. 
<p>
Encapsulator struct for ops of <a class="el" href="structaxutil__log.html" title="Axis2 Log struct.">axutil_log</a> <hr><h2>Member Data Documentation</h2>
<a class="anchor" name="b4996bdfbcd42be8cf62950dc59c2a7b"></a><!-- doxytag: member="axutil_log_ops::free" ref="b4996bdfbcd42be8cf62950dc59c2a7b" args=")(axutil_allocator_t *allocator, struct axutil_log *log)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">void( *  <a class="el" href="structaxutil__log__ops.html#b4996bdfbcd42be8cf62950dc59c2a7b">axutil_log_ops::free</a>)(<a class="el" href="structaxutil__allocator.html">axutil_allocator_t</a> *allocator, struct <a class="el" href="structaxutil__log.html">axutil_log</a> *log)          </td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
deletes the log <dl class="return" compact><dt><b>Returns:</b></dt><dd>axis2_status_t AXIS2_SUCCESS on success else AXIS2_FAILURE </dd></dl>

</div>
</div><p>
<a class="anchor" name="8992fe7f68747b72629f1b3b73bcffbe"></a><!-- doxytag: member="axutil_log_ops::write" ref="8992fe7f68747b72629f1b3b73bcffbe" args=")(axutil_log_t *log, const axis2_char_t *buffer, axutil_log_levels_t level, const axis2_char_t *file, const int line)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">void( *  <a class="el" href="structaxutil__log__ops.html#8992fe7f68747b72629f1b3b73bcffbe">axutil_log_ops::write</a>)(<a class="el" href="structaxutil__log.html">axutil_log_t</a> *log, const axis2_char_t *buffer, <a class="el" href="group__axutil__log.html#g0c477f6f8724a6258a9caaabfcf2c482">axutil_log_levels_t</a> level, const axis2_char_t *file, const int line)          </td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
writes to the log <dl compact><dt><b>Parameters:</b></dt><dd>
  <table border="0" cellspacing="2" cellpadding="0">
    <tr><td valign="top"></td><td valign="top"><em>buffer</em>&nbsp;</td><td>buffer to be written to log </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>size</em>&nbsp;</td><td>size of the buffer to be written to log </td></tr>
  </table>
</dl>
<dl class="return" compact><dt><b>Returns:</b></dt><dd>satus of the op. AXIS2_SUCCESS on success else AXIS2_FAILURE </dd></dl>

</div>
</div><p>
<hr>The documentation for this struct was generated from the following file:<ul>
<li><a class="el" href="axutil__log_8h-source.html">axutil_log.h</a></ul>
<hr size="1"><address style="text-align: right;"><small>Generated on Fri Apr 17 11:49:48 2009 for Axis2/C by&nbsp;
<a href="http://www.doxygen.org/index.html">
<img src="doxygen.png" alt="doxygen" align="middle" border="0"></a> 1.5.3 </small></address>
</body>
</html>


<|start_filename|>tools/codegen/javatool/WSDL2C.bat<|end_filename|>
echo off
REM set AXIS2_HOME=C:\axis2-SNAPSHOT
setlocal EnableDelayedExpansion
set AXIS2_CLASSPATH=%AXIS2_HOME%
FOR %%c in ("%AXIS2_HOME%\lib\*.jar") DO set AXIS2_CLASSPATH=!AXIS2_CLASSPATH!;%%c;

java -classpath %AXIS2_CLASSPATH% org.apache.axis2.wsdl.WSDL2C %*




<|start_filename|>axiom/src/parser/xml_reader.c<|end_filename|>

/*
 * 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.
 */

#include <axiom_xml_reader.h>

AXIS2_EXTERN int AXIS2_CALL
axiom_xml_reader_next(
    axiom_xml_reader_t * parser,
    const axutil_env_t * env)
{
    return (parser)->ops->next(parser, env);
}

AXIS2_EXTERN void AXIS2_CALL
axiom_xml_reader_free(
    axiom_xml_reader_t * parser,
    const axutil_env_t * env)
{
    (parser)->ops->free(parser, env);
}

AXIS2_EXTERN int AXIS2_CALL
axiom_xml_reader_get_attribute_count(
    axiom_xml_reader_t * parser,
    const axutil_env_t * env)
{
    return (parser)->ops->get_attribute_count(parser, env);
}

AXIS2_EXTERN axis2_char_t *AXIS2_CALL
axiom_xml_reader_get_attribute_name_by_number(
    axiom_xml_reader_t * parser,
    const axutil_env_t * env,
    int i)
{
    return (parser)->ops->get_attribute_name_by_number(parser, env, i);
}

AXIS2_EXTERN axis2_char_t *AXIS2_CALL
axiom_xml_reader_get_attribute_prefix_by_number(
    axiom_xml_reader_t * parser,
    const axutil_env_t * env,
    int i)
{
    return (parser)->ops->get_attribute_prefix_by_number(parser, env, i);
}

AXIS2_EXTERN axis2_char_t *AXIS2_CALL
axiom_xml_reader_get_attribute_value_by_number(
    axiom_xml_reader_t * parser,
    const axutil_env_t * env,
    int i)
{
    return (parser)->ops->get_attribute_value_by_number(parser, env, i);
}

AXIS2_EXTERN axis2_char_t *AXIS2_CALL
axiom_xml_reader_get_attribute_namespace_by_number(
    axiom_xml_reader_t * parser,
    const axutil_env_t * env,
    int i)
{
    return (parser)->ops->get_attribute_namespace_by_number(parser, env, i);
}

AXIS2_EXTERN axis2_char_t *AXIS2_CALL
axiom_xml_reader_get_value(
    axiom_xml_reader_t * parser,
    const axutil_env_t * env)
{
    return (parser)->ops->get_value(parser, env);
}

AXIS2_EXTERN int AXIS2_CALL
axiom_xml_reader_get_namespace_count(
    axiom_xml_reader_t * parser,
    const axutil_env_t * env)
{
    return (parser)->ops->get_namespace_count(parser, env);
}

AXIS2_EXTERN axis2_char_t *AXIS2_CALL
axiom_xml_reader_get_namespace_uri_by_number(
    axiom_xml_reader_t * parser,
    const axutil_env_t * env,
    int i)
{
    return (parser)->ops->get_namespace_uri_by_number(parser, env, i);
}

AXIS2_EXTERN axis2_char_t *AXIS2_CALL
axiom_xml_reader_get_namespace_prefix_by_number(
    axiom_xml_reader_t * parser,
    const axutil_env_t * env,
    int i)
{
    return (parser)->ops->get_namespace_prefix_by_number(parser, env, i);
}

AXIS2_EXTERN axis2_char_t *AXIS2_CALL
axiom_xml_reader_get_prefix(
    axiom_xml_reader_t * parser,
    const axutil_env_t * env)
{
    return (parser)->ops->get_prefix(parser, env);
}

AXIS2_EXTERN axis2_char_t *AXIS2_CALL
axiom_xml_reader_get_name(
    axiom_xml_reader_t * parser,
    const axutil_env_t * env)
{
    return (parser)->ops->get_name(parser, env);
}

AXIS2_EXTERN axis2_char_t *AXIS2_CALL
axiom_xml_reader_get_pi_target(
    axiom_xml_reader_t * parser,
    const axutil_env_t * env)
{
    return (parser)->ops->get_pi_target(parser, env);
}

AXIS2_EXTERN axis2_char_t *AXIS2_CALL
axiom_xml_reader_get_pi_data(
    axiom_xml_reader_t * parser,
    const axutil_env_t * env)
{
    return (parser)->ops->get_pi_data(parser, env);
}

AXIS2_EXTERN axis2_char_t *AXIS2_CALL
axiom_xml_reader_get_dtd(
    axiom_xml_reader_t * parser,
    const axutil_env_t * env)
{
    return (parser)->ops->get_dtd(parser, env);
}

AXIS2_EXTERN void AXIS2_CALL
axiom_xml_reader_xml_free(
    axiom_xml_reader_t * parser,
    const axutil_env_t * env,
    void *data)
{
    (parser)->ops->xml_free(parser, env, data);
}

AXIS2_EXTERN axis2_char_t *AXIS2_CALL
axiom_xml_reader_get_char_set_encoding(
    axiom_xml_reader_t * parser,
    const axutil_env_t * env)
{
    return (parser)->ops->get_char_set_encoding(parser, env);
}

AXIS2_EXTERN axis2_char_t *AXIS2_CALL
axiom_xml_reader_get_namespace_uri(
    axiom_xml_reader_t * parser,
    const axutil_env_t * env)
{
    return (parser)->ops->get_namespace_uri(parser, env);
}

AXIS2_EXTERN axis2_char_t *AXIS2_CALL
axiom_xml_reader_get_namespace_uri_by_prefix(
    axiom_xml_reader_t * parser,
    const axutil_env_t * env,
    axis2_char_t * prefix)
{
    return (parser)->ops->get_namespace_uri_by_prefix(parser, env, prefix);
}


<|start_filename|>xdocs/api/html/axiom__data__handler_8h-source.html<|end_filename|>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html><head><meta http-equiv="Content-Type" content="text/html;charset=UTF-8">
<title>Axis2/C: axiom_data_handler.h Source File</title>
<link href="doxygen.css" rel="stylesheet" type="text/css">
<link href="tabs.css" rel="stylesheet" type="text/css">
</head><body>
<!-- Generated by Doxygen 1.5.3 -->
<div class="tabs">
  <ul>
    <li><a href="index.html"><span>Main&nbsp;Page</span></a></li>
    <li><a href="modules.html"><span>Modules</span></a></li>
    <li><a href="annotated.html"><span>Classes</span></a></li>
    <li class="current"><a href="files.html"><span>Files</span></a></li>
    <li><a href="dirs.html"><span>Directories</span></a></li>
    <li><a href="pages.html"><span>Related&nbsp;Pages</span></a></li>
    <li><a href="examples.html"><span>Examples</span></a></li>
    <li>
      <form action="search.php" method="get">
        <table cellspacing="0" cellpadding="0" border="0">
          <tr>
            <td><label>&nbsp;<u>S</u>earch&nbsp;for&nbsp;</label></td>
            <td><input type="text" name="query" value="" size="20" accesskey="s"/></td>
          </tr>
        </table>
      </form>
    </li>
  </ul>
</div>
<div class="nav">
<a class="el" href="dir_f60961de8e5edc3b2658ef023e959e45.html">deploy</a>&nbsp;&raquo&nbsp;<a class="el" href="dir_6b4e91e54b7316b376882a6402adbf44.html">include</a>&nbsp;&raquo&nbsp;<a class="el" href="dir_df3a7695d5a9e696f30b948b566829e7.html">axis2-1.6.0</a></div>
<h1>axiom_data_handler.h</h1><a href="axiom__data__handler_8h.html">Go to the documentation of this file.</a><div class="fragment"><pre class="fragment"><a name="l00001"></a>00001 
<a name="l00002"></a>00002 <span class="comment">/*</span>
<a name="l00003"></a>00003 <span class="comment"> * Licensed to the Apache Software Foundation (ASF) under one or more</span>
<a name="l00004"></a>00004 <span class="comment"> * contributor license agreements.  See the NOTICE file distributed with</span>
<a name="l00005"></a>00005 <span class="comment"> * this work for additional information regarding copyright ownership.</span>
<a name="l00006"></a>00006 <span class="comment"> * The ASF licenses this file to You under the Apache License, Version 2.0</span>
<a name="l00007"></a>00007 <span class="comment"> * (the "License"); you may not use this file except in compliance with</span>
<a name="l00008"></a>00008 <span class="comment"> * the License.  You may obtain a copy of the License at</span>
<a name="l00009"></a>00009 <span class="comment"> *</span>
<a name="l00010"></a>00010 <span class="comment"> *      http://www.apache.org/licenses/LICENSE-2.0</span>
<a name="l00011"></a>00011 <span class="comment"> *</span>
<a name="l00012"></a>00012 <span class="comment"> * Unless required by applicable law or agreed to in writing, software</span>
<a name="l00013"></a>00013 <span class="comment"> * distributed under the License is distributed on an "AS IS" BASIS,</span>
<a name="l00014"></a>00014 <span class="comment"> * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.</span>
<a name="l00015"></a>00015 <span class="comment"> * See the License for the specific language governing permissions and</span>
<a name="l00016"></a>00016 <span class="comment"> * limitations under the License.</span>
<a name="l00017"></a>00017 <span class="comment"> */</span>
<a name="l00018"></a>00018 
<a name="l00019"></a>00019 <span class="preprocessor">#ifndef AXIOM_DATA_HANDLER_H</span>
<a name="l00020"></a>00020 <span class="preprocessor"></span><span class="preprocessor">#define AXIOM_DATA_HANDLER_H</span>
<a name="l00021"></a>00021 <span class="preprocessor"></span>
<a name="l00027"></a>00027 <span class="preprocessor">#include &lt;<a class="code" href="axutil__utils_8h.html">axutil_utils.h</a>&gt;</span>
<a name="l00028"></a>00028 <span class="preprocessor">#include &lt;axutil_error.h&gt;</span>
<a name="l00029"></a>00029 <span class="preprocessor">#include &lt;axutil_utils_defines.h&gt;</span>
<a name="l00030"></a>00030 <span class="preprocessor">#include &lt;<a class="code" href="axutil__env_8h.html" title="Axis2 environment that acts as a container for error, log and memory allocator routines...">axutil_env.h</a>&gt;</span>
<a name="l00031"></a>00031 <span class="preprocessor">#include &lt;<a class="code" href="axutil__allocator_8h.html" title="Axis2 memory allocator interface.">axutil_allocator.h</a>&gt;</span>
<a name="l00032"></a>00032 <span class="preprocessor">#include &lt;axutil_string.h&gt;</span>
<a name="l00033"></a>00033 <span class="preprocessor">#include &lt;<a class="code" href="axutil__array__list_8h.html" title="Axis2 array_list interface.">axutil_array_list.h</a>&gt;</span>
<a name="l00034"></a>00034 
<a name="l00035"></a>00035 <span class="preprocessor">#ifdef __cplusplus</span>
<a name="l00036"></a>00036 <span class="preprocessor"></span><span class="keyword">extern</span> <span class="stringliteral">"C"</span>
<a name="l00037"></a>00037 {
<a name="l00038"></a>00038 <span class="preprocessor">#endif</span>
<a name="l00039"></a>00039 <span class="preprocessor"></span>
<a name="l00040"></a>00040     <span class="keyword">typedef</span> <span class="keyword">enum</span> axiom_data_handler_type
<a name="l00041"></a>00041     {
<a name="l00042"></a>00042         AXIOM_DATA_HANDLER_TYPE_FILE,
<a name="l00043"></a>00043         AXIOM_DATA_HANDLER_TYPE_BUFFER,
<a name="l00044"></a>00044         AXIOM_DATA_HANDLER_TYPE_CALLBACK
<a name="l00045"></a>00045     } axiom_data_handler_type_t;
<a name="l00046"></a>00046 
<a name="l00047"></a>00047     <span class="keyword">typedef</span> <span class="keyword">struct </span>axiom_data_handler axiom_data_handler_t;
<a name="l00048"></a>00048 
<a name="l00059"></a>00059     AXIS2_EXTERN axis2_char_t *AXIS2_CALL
<a name="l00060"></a>00060     <a class="code" href="group__axiom__data__handler.html#ga132e800329243265ca138c661fa34d5">axiom_data_handler_get_content_type</a>(
<a name="l00061"></a>00061         axiom_data_handler_t * data_handler,
<a name="l00062"></a>00062         <span class="keyword">const</span> <a class="code" href="structaxutil__env.html" title="Axis2 Environment struct.">axutil_env_t</a> * env);
<a name="l00063"></a>00063         
<a name="l00070"></a>00070     AXIS2_EXTERN axis2_status_t AXIS2_CALL
<a name="l00071"></a>00071     <a class="code" href="group__axiom__data__handler.html#gbd786bd0c93181d5232492e486d59799">axiom_data_handler_set_content_type</a>(
<a name="l00072"></a>00072         axiom_data_handler_t * data_handler,
<a name="l00073"></a>00073         <span class="keyword">const</span> <a class="code" href="structaxutil__env.html" title="Axis2 Environment struct.">axutil_env_t</a> * env,
<a name="l00074"></a>00074                 <span class="keyword">const</span> axis2_char_t *mime_type);
<a name="l00075"></a>00075 
<a name="l00081"></a>00081     AXIS2_EXTERN axis2_bool_t AXIS2_CALL
<a name="l00082"></a>00082     <a class="code" href="group__axiom__data__handler.html#g12b16a32671739f4faa56c72ec99bc8c">axiom_data_handler_get_cached</a>(
<a name="l00083"></a>00083         axiom_data_handler_t * data_handler,
<a name="l00084"></a>00084         <span class="keyword">const</span> <a class="code" href="structaxutil__env.html" title="Axis2 Environment struct.">axutil_env_t</a> * env);
<a name="l00085"></a>00085         
<a name="l00092"></a>00092     AXIS2_EXTERN <span class="keywordtype">void</span> AXIS2_CALL
<a name="l00093"></a>00093     <a class="code" href="group__axiom__data__handler.html#gc6da7f863c5e580fc47dcf6a380f4d57">axiom_data_handler_set_cached</a>(
<a name="l00094"></a>00094         axiom_data_handler_t * data_handler,
<a name="l00095"></a>00095         <span class="keyword">const</span> <a class="code" href="structaxutil__env.html" title="Axis2 Environment struct.">axutil_env_t</a> * env,
<a name="l00096"></a>00096                 axis2_bool_t cached);
<a name="l00097"></a>00097 
<a name="l00098"></a>00098 
<a name="l00104"></a>00104     AXIS2_EXTERN axis2_byte_t *AXIS2_CALL
<a name="l00105"></a>00105 
<a name="l00106"></a>00106     <a class="code" href="group__axiom__data__handler.html#g1fcb504cd3cdb758b5247066c1cb332c">axiom_data_handler_get_input_stream</a>(
<a name="l00107"></a>00107         axiom_data_handler_t * data_handler,
<a name="l00108"></a>00108         <span class="keyword">const</span> <a class="code" href="structaxutil__env.html" title="Axis2 Environment struct.">axutil_env_t</a> * env);
<a name="l00109"></a>00109 
<a name="l00115"></a>00115     AXIS2_EXTERN <span class="keywordtype">int</span> AXIS2_CALL
<a name="l00116"></a>00116     <a class="code" href="group__axiom__data__handler.html#g2f9ba62f37963b8425b85710a1873845">axiom_data_handler_get_input_stream_len</a>(
<a name="l00117"></a>00117         axiom_data_handler_t * data_handler,
<a name="l00118"></a>00118         <span class="keyword">const</span> <a class="code" href="structaxutil__env.html" title="Axis2 Environment struct.">axutil_env_t</a> * env);
<a name="l00119"></a>00119 
<a name="l00127"></a>00127     AXIS2_EXTERN axis2_status_t AXIS2_CALL
<a name="l00128"></a>00128     <a class="code" href="group__axiom__data__handler.html#ge35b85ccac0a5bd5fd659124c75d5ca2">axiom_data_handler_read_from</a>(
<a name="l00129"></a>00129         axiom_data_handler_t * data_handler,
<a name="l00130"></a>00130         <span class="keyword">const</span> <a class="code" href="structaxutil__env.html" title="Axis2 Environment struct.">axutil_env_t</a> * env,
<a name="l00131"></a>00131         axis2_byte_t ** output_stream,
<a name="l00132"></a>00132         <span class="keywordtype">int</span> *output_stream_size);
<a name="l00133"></a>00133 
<a name="l00139"></a>00139     AXIS2_EXTERN axis2_status_t AXIS2_CALL
<a name="l00140"></a>00140 
<a name="l00141"></a>00141     <a class="code" href="group__axiom__data__handler.html#gcdd5abcf6725059de9409e8ea486980b">axiom_data_handler_set_binary_data</a>(
<a name="l00142"></a>00142         axiom_data_handler_t * data_handler,
<a name="l00143"></a>00143         <span class="keyword">const</span> <a class="code" href="structaxutil__env.html" title="Axis2 Environment struct.">axutil_env_t</a> * env,
<a name="l00144"></a>00144         axis2_byte_t * input_stream,
<a name="l00145"></a>00145         <span class="keywordtype">int</span> input_stream_len);
<a name="l00146"></a>00146 
<a name="l00152"></a>00152     AXIS2_EXTERN axis2_status_t AXIS2_CALL
<a name="l00153"></a>00153     <a class="code" href="group__axiom__data__handler.html#g47e0e307ecd1fc27223fb67f10e194ed">axiom_data_handler_write_to</a>(
<a name="l00154"></a>00154         axiom_data_handler_t * data_handler,
<a name="l00155"></a>00155         <span class="keyword">const</span> <a class="code" href="structaxutil__env.html" title="Axis2 Environment struct.">axutil_env_t</a> * env);
<a name="l00156"></a>00156 
<a name="l00162"></a>00162     AXIS2_EXTERN axis2_status_t AXIS2_CALL
<a name="l00163"></a>00163     <a class="code" href="group__axiom__data__handler.html#g5a80fd78e575238e58fc38062a689258">axiom_data_handler_set_file_name</a>(
<a name="l00164"></a>00164         axiom_data_handler_t * data_handler,
<a name="l00165"></a>00165         <span class="keyword">const</span> <a class="code" href="structaxutil__env.html" title="Axis2 Environment struct.">axutil_env_t</a> * env,
<a name="l00166"></a>00166         axis2_char_t * file_name);
<a name="l00167"></a>00167 
<a name="l00173"></a>00173     AXIS2_EXTERN axis2_char_t *AXIS2_CALL
<a name="l00174"></a>00174     <a class="code" href="group__axiom__data__handler.html#g0eb87b388f6a8d1c8df21b685cea0161">axiom_data_handler_get_file_name</a>(
<a name="l00175"></a>00175         axiom_data_handler_t * data_handler,
<a name="l00176"></a>00176         <span class="keyword">const</span> <a class="code" href="structaxutil__env.html" title="Axis2 Environment struct.">axutil_env_t</a> * env);
<a name="l00177"></a>00177 
<a name="l00183"></a>00183     AXIS2_EXTERN <span class="keywordtype">void</span> AXIS2_CALL
<a name="l00184"></a>00184     <a class="code" href="group__axiom__data__handler.html#g790d6d952b28f7aa0202216ef5074489">axiom_data_handler_free</a>(
<a name="l00185"></a>00185         axiom_data_handler_t * data_handler,
<a name="l00186"></a>00186         <span class="keyword">const</span> <a class="code" href="structaxutil__env.html" title="Axis2 Environment struct.">axutil_env_t</a> * env);
<a name="l00187"></a>00187 
<a name="l00192"></a>00192     AXIS2_EXTERN axiom_data_handler_t *AXIS2_CALL
<a name="l00193"></a>00193     <a class="code" href="group__axiom__data__handler.html#gf1a1862c29144a3234025b1218a83c97">axiom_data_handler_create</a>(
<a name="l00194"></a>00194         <span class="keyword">const</span> <a class="code" href="structaxutil__env.html" title="Axis2 Environment struct.">axutil_env_t</a> * env,
<a name="l00195"></a>00195         <span class="keyword">const</span> axis2_char_t * file_name,
<a name="l00196"></a>00196         <span class="keyword">const</span> axis2_char_t * mime_type);
<a name="l00197"></a>00197 
<a name="l00198"></a>00198     <span class="comment">/* Add the binary to the array_list</span>
<a name="l00199"></a>00199 <span class="comment">     * @param data_handler, a pointer to data handler struct</span>
<a name="l00200"></a>00200 <span class="comment">     * data_handler, a pointer to data handler struct</span>
<a name="l00201"></a>00201 <span class="comment">     * list, a pointer to an array_list which containing some message parts need </span>
<a name="l00202"></a>00202 <span class="comment">     * to be written to the wire</span>
<a name="l00203"></a>00203 <span class="comment">     * data_handler, a pointer to data handler struct</span>
<a name="l00204"></a>00204 <span class="comment">     */</span> 
<a name="l00205"></a>00205     
<a name="l00206"></a>00206     AXIS2_EXTERN axis2_status_t AXIS2_CALL
<a name="l00207"></a>00207     axiom_data_handler_add_binary_data(
<a name="l00208"></a>00208         axiom_data_handler_t *data_handler,
<a name="l00209"></a>00209         <span class="keyword">const</span> <a class="code" href="structaxutil__env.html" title="Axis2 Environment struct.">axutil_env_t</a> *env,
<a name="l00210"></a>00210         <a class="code" href="group__axutil__array__list.html#g1a6a89777db876cfa0cc86787b7be6a0">axutil_array_list_t</a> *list);
<a name="l00211"></a>00211    
<a name="l00212"></a>00212  
<a name="l00213"></a>00213     AXIS2_EXTERN axis2_char_t *AXIS2_CALL
<a name="l00214"></a>00214     axiom_data_handler_get_mime_id(
<a name="l00215"></a>00215         axiom_data_handler_t *data_handler,
<a name="l00216"></a>00216         <span class="keyword">const</span> <a class="code" href="structaxutil__env.html" title="Axis2 Environment struct.">axutil_env_t</a> *env);
<a name="l00217"></a>00217 
<a name="l00225"></a>00225     AXIS2_EXTERN axis2_status_t AXIS2_CALL
<a name="l00226"></a>00226     <a class="code" href="group__axiom__data__handler.html#g276407df5df9bf7600ee499c4c2952ba">axiom_data_handler_set_mime_id</a>(
<a name="l00227"></a>00227         axiom_data_handler_t *data_handler,
<a name="l00228"></a>00228         <span class="keyword">const</span> <a class="code" href="structaxutil__env.html" title="Axis2 Environment struct.">axutil_env_t</a> *env,
<a name="l00229"></a>00229         <span class="keyword">const</span> axis2_char_t *mime_id);
<a name="l00230"></a>00230 
<a name="l00231"></a>00231 
<a name="l00232"></a>00232     AXIS2_EXTERN axiom_data_handler_type_t AXIS2_CALL
<a name="l00233"></a>00233     axiom_data_handler_get_data_handler_type(
<a name="l00234"></a>00234         axiom_data_handler_t *data_handler,
<a name="l00235"></a>00235         <span class="keyword">const</span> <a class="code" href="structaxutil__env.html" title="Axis2 Environment struct.">axutil_env_t</a> *env);
<a name="l00236"></a>00236 
<a name="l00237"></a>00237     AXIS2_EXTERN <span class="keywordtype">void</span> AXIS2_CALL
<a name="l00238"></a>00238     axiom_data_handler_set_data_handler_type(
<a name="l00239"></a>00239         axiom_data_handler_t *data_handler,
<a name="l00240"></a>00240         <span class="keyword">const</span> <a class="code" href="structaxutil__env.html" title="Axis2 Environment struct.">axutil_env_t</a> *env,
<a name="l00241"></a>00241         axiom_data_handler_type_t data_handler_type);
<a name="l00242"></a>00242 
<a name="l00243"></a>00243     AXIS2_EXTERN <span class="keywordtype">void</span> *AXIS2_CALL
<a name="l00244"></a>00244     axiom_data_handler_get_user_param(
<a name="l00245"></a>00245         axiom_data_handler_t *data_handler,
<a name="l00246"></a>00246         <span class="keyword">const</span> <a class="code" href="structaxutil__env.html" title="Axis2 Environment struct.">axutil_env_t</a> *env);
<a name="l00247"></a>00247 
<a name="l00248"></a>00248     AXIS2_EXTERN <span class="keywordtype">void</span> AXIS2_CALL
<a name="l00249"></a>00249     axiom_data_handler_set_user_param(
<a name="l00250"></a>00250         axiom_data_handler_t *data_handler,
<a name="l00251"></a>00251         <span class="keyword">const</span> <a class="code" href="structaxutil__env.html" title="Axis2 Environment struct.">axutil_env_t</a> *env,
<a name="l00252"></a>00252         <span class="keywordtype">void</span> *user_param);
<a name="l00253"></a>00253 
<a name="l00254"></a>00254     
<a name="l00257"></a>00257 <span class="preprocessor">#ifdef __cplusplus</span>
<a name="l00258"></a>00258 <span class="preprocessor"></span>}
<a name="l00259"></a>00259 <span class="preprocessor">#endif</span>
<a name="l00260"></a>00260 <span class="preprocessor"></span><span class="preprocessor">#endif                          </span><span class="comment">/* AXIOM_DATA_HANDLER_H */</span>
</pre></div><hr size="1"><address style="text-align: right;"><small>Generated on Fri Apr 17 11:49:42 2009 for Axis2/C by&nbsp;
<a href="http://www.doxygen.org/index.html">
<img src="doxygen.png" alt="doxygen" align="middle" border="0"></a> 1.5.3 </small></address>
</body>
</html>


<|start_filename|>xdocs/api/html/group__axutil__param__container.html<|end_filename|>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html><head><meta http-equiv="Content-Type" content="text/html;charset=UTF-8">
<title>Axis2/C: Parameter Container</title>
<link href="doxygen.css" rel="stylesheet" type="text/css">
<link href="tabs.css" rel="stylesheet" type="text/css">
</head><body>
<!-- Generated by Doxygen 1.5.3 -->
<div class="tabs">
  <ul>
    <li><a href="index.html"><span>Main&nbsp;Page</span></a></li>
    <li><a href="modules.html"><span>Modules</span></a></li>
    <li><a href="annotated.html"><span>Classes</span></a></li>
    <li><a href="files.html"><span>Files</span></a></li>
    <li><a href="dirs.html"><span>Directories</span></a></li>
    <li><a href="pages.html"><span>Related&nbsp;Pages</span></a></li>
    <li><a href="examples.html"><span>Examples</span></a></li>
    <li>
      <form action="search.php" method="get">
        <table cellspacing="0" cellpadding="0" border="0">
          <tr>
            <td><label>&nbsp;<u>S</u>earch&nbsp;for&nbsp;</label></td>
            <td><input type="text" name="query" value="" size="20" accesskey="s"/></td>
          </tr>
        </table>
      </form>
    </li>
  </ul>
</div>
<h1>Parameter Container</h1><table border="0" cellpadding="0" cellspacing="0">
<tr><td></td></tr>
<tr><td colspan="2"><br><h2>Files</h2></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top">file &nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="axutil__param__container_8h.html">axutil_param_container.h</a></td></tr>

<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Axis2 Param container interface. <br></td></tr>

<p>
<tr><td colspan="2"><br><h2>Typedefs</h2></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="g8af5f81b6afd788f15cb87ac5c992e9c"></a><!-- doxytag: member="axutil_param_container::axutil_param_container_t" ref="g8af5f81b6afd788f15cb87ac5c992e9c" args="" -->
typedef struct <br>
axutil_param_container&nbsp;</td><td class="memItemRight" valign="bottom"><b>axutil_param_container_t</b></td></tr>

<tr><td colspan="2"><br><h2>Functions</h2></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top">AXIS2_EXTERN <br>
axutil_param_container_t *&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__axutil__param__container.html#g6bddcede7bd592f0f22bd03bdf2ecd32">axutil_param_container_create</a> (const <a class="el" href="structaxutil__env.html">axutil_env_t</a> *env)</td></tr>

<tr><td class="memItemLeft" nowrap align="right" valign="top">AXIS2_EXTERN void&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__axutil__param__container.html#ge74cdd6e7cb30d2617d806899b7209c7">axutil_param_container_free_void_arg</a> (void *param_container, const <a class="el" href="structaxutil__env.html">axutil_env_t</a> *env)</td></tr>

<tr><td class="memItemLeft" nowrap align="right" valign="top">AXIS2_EXTERN void&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__axutil__param__container.html#g8da05e09f9c6144927118bb7d7e0b53e">axutil_param_container_free</a> (axutil_param_container_t *param_container, const <a class="el" href="structaxutil__env.html">axutil_env_t</a> *env)</td></tr>

<tr><td class="memItemLeft" nowrap align="right" valign="top">AXIS2_EXTERN <br>
axis2_status_t&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__axutil__param__container.html#g9a877505574102079a55cbdb6aae06fd">axutil_param_container_add_param</a> (axutil_param_container_t *param_container, const <a class="el" href="structaxutil__env.html">axutil_env_t</a> *env, axutil_param_t *param)</td></tr>

<tr><td class="memItemLeft" nowrap align="right" valign="top">AXIS2_EXTERN <br>
axutil_param_t *&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__axutil__param__container.html#g0be3762df4b647179952763acbe0c272">axutil_param_container_get_param</a> (axutil_param_container_t *param_container, const <a class="el" href="structaxutil__env.html">axutil_env_t</a> *env, const axis2_char_t *name)</td></tr>

<tr><td class="memItemLeft" nowrap align="right" valign="top">AXIS2_EXTERN <br>
<a class="el" href="group__axutil__array__list.html#g1a6a89777db876cfa0cc86787b7be6a0">axutil_array_list_t</a> *&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__axutil__param__container.html#geb219d10e4cff60dde4b8af15548d13a">axutil_param_container_get_params</a> (axutil_param_container_t *param_container, const <a class="el" href="structaxutil__env.html">axutil_env_t</a> *env)</td></tr>

<tr><td class="memItemLeft" nowrap align="right" valign="top">AXIS2_EXTERN axis2_bool_t&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__axutil__param__container.html#g7b92618a34e898b748abd9ad5312d5b8">axutil_param_container_is_param_locked</a> (axutil_param_container_t *param_container, const <a class="el" href="structaxutil__env.html">axutil_env_t</a> *env, const axis2_char_t *param_name)</td></tr>

</table>
<hr><h2>Function Documentation</h2>
<a class="anchor" name="g9a877505574102079a55cbdb6aae06fd"></a><!-- doxytag: member="axutil_param_container.h::axutil_param_container_add_param" ref="g9a877505574102079a55cbdb6aae06fd" args="(axutil_param_container_t *param_container, const axutil_env_t *env, axutil_param_t *param)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">AXIS2_EXTERN axis2_status_t axutil_param_container_add_param           </td>
          <td>(</td>
          <td class="paramtype">axutil_param_container_t *&nbsp;</td>
          <td class="paramname"> <em>param_container</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const <a class="el" href="structaxutil__env.html">axutil_env_t</a> *&nbsp;</td>
          <td class="paramname"> <em>env</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">axutil_param_t *&nbsp;</td>
          <td class="paramname"> <em>param</em></td><td>&nbsp;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td><td width="100%"></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
Add a param <dl compact><dt><b>Parameters:</b></dt><dd>
  <table border="0" cellspacing="2" cellpadding="0">
    <tr><td valign="top"></td><td valign="top"><em>param</em>&nbsp;</td><td>param to be added </td></tr>
  </table>
</dl>
<dl class="return" compact><dt><b>Returns:</b></dt><dd>status code </dd></dl>

</div>
</div><p>
<a class="anchor" name="g6bddcede7bd592f0f22bd03bdf2ecd32"></a><!-- doxytag: member="axutil_param_container.h::axutil_param_container_create" ref="g6bddcede7bd592f0f22bd03bdf2ecd32" args="(const axutil_env_t *env)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">AXIS2_EXTERN axutil_param_container_t* axutil_param_container_create           </td>
          <td>(</td>
          <td class="paramtype">const <a class="el" href="structaxutil__env.html">axutil_env_t</a> *&nbsp;</td>
          <td class="paramname"> <em>env</em>          </td>
          <td>&nbsp;)&nbsp;</td>
          <td width="100%"></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
Creates param container struct <dl class="return" compact><dt><b>Returns:</b></dt><dd>pointer to newly created param container </dd></dl>

</div>
</div><p>
<a class="anchor" name="g8da05e09f9c6144927118bb7d7e0b53e"></a><!-- doxytag: member="axutil_param_container.h::axutil_param_container_free" ref="g8da05e09f9c6144927118bb7d7e0b53e" args="(axutil_param_container_t *param_container, const axutil_env_t *env)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">AXIS2_EXTERN void axutil_param_container_free           </td>
          <td>(</td>
          <td class="paramtype">axutil_param_container_t *&nbsp;</td>
          <td class="paramname"> <em>param_container</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const <a class="el" href="structaxutil__env.html">axutil_env_t</a> *&nbsp;</td>
          <td class="paramname"> <em>env</em></td><td>&nbsp;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td><td width="100%"></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
De-allocate memory <dl class="return" compact><dt><b>Returns:</b></dt><dd>status code </dd></dl>

</div>
</div><p>
<a class="anchor" name="ge74cdd6e7cb30d2617d806899b7209c7"></a><!-- doxytag: member="axutil_param_container.h::axutil_param_container_free_void_arg" ref="ge74cdd6e7cb30d2617d806899b7209c7" args="(void *param_container, const axutil_env_t *env)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">AXIS2_EXTERN void axutil_param_container_free_void_arg           </td>
          <td>(</td>
          <td class="paramtype">void *&nbsp;</td>
          <td class="paramname"> <em>param_container</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const <a class="el" href="structaxutil__env.html">axutil_env_t</a> *&nbsp;</td>
          <td class="paramname"> <em>env</em></td><td>&nbsp;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td><td width="100%"></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
Free param_container passed as void pointer. This will be cast into appropriate type and then pass the cast object into the param_container structure's free method 
</div>
</div><p>
<a class="anchor" name="g0be3762df4b647179952763acbe0c272"></a><!-- doxytag: member="axutil_param_container.h::axutil_param_container_get_param" ref="g0be3762df4b647179952763acbe0c272" args="(axutil_param_container_t *param_container, const axutil_env_t *env, const axis2_char_t *name)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">AXIS2_EXTERN axutil_param_t* axutil_param_container_get_param           </td>
          <td>(</td>
          <td class="paramtype">axutil_param_container_t *&nbsp;</td>
          <td class="paramname"> <em>param_container</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const <a class="el" href="structaxutil__env.html">axutil_env_t</a> *&nbsp;</td>
          <td class="paramname"> <em>env</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const axis2_char_t *&nbsp;</td>
          <td class="paramname"> <em>name</em></td><td>&nbsp;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td><td width="100%"></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
To get a param in a given description <dl compact><dt><b>Parameters:</b></dt><dd>
  <table border="0" cellspacing="2" cellpadding="0">
    <tr><td valign="top"></td><td valign="top"><em>name</em>&nbsp;</td><td>param name </td></tr>
  </table>
</dl>
<dl class="return" compact><dt><b>Returns:</b></dt><dd>param </dd></dl>

</div>
</div><p>
<a class="anchor" name="geb219d10e4cff60dde4b8af15548d13a"></a><!-- doxytag: member="axutil_param_container.h::axutil_param_container_get_params" ref="geb219d10e4cff60dde4b8af15548d13a" args="(axutil_param_container_t *param_container, const axutil_env_t *env)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">AXIS2_EXTERN <a class="el" href="group__axutil__array__list.html#g1a6a89777db876cfa0cc86787b7be6a0">axutil_array_list_t</a>* axutil_param_container_get_params           </td>
          <td>(</td>
          <td class="paramtype">axutil_param_container_t *&nbsp;</td>
          <td class="paramname"> <em>param_container</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const <a class="el" href="structaxutil__env.html">axutil_env_t</a> *&nbsp;</td>
          <td class="paramname"> <em>env</em></td><td>&nbsp;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td><td width="100%"></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
To get all the params in a given description <dl class="return" compact><dt><b>Returns:</b></dt><dd>all the params contained </dd></dl>

</div>
</div><p>
<a class="anchor" name="g7b92618a34e898b748abd9ad5312d5b8"></a><!-- doxytag: member="axutil_param_container.h::axutil_param_container_is_param_locked" ref="g7b92618a34e898b748abd9ad5312d5b8" args="(axutil_param_container_t *param_container, const axutil_env_t *env, const axis2_char_t *param_name)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">AXIS2_EXTERN axis2_bool_t axutil_param_container_is_param_locked           </td>
          <td>(</td>
          <td class="paramtype">axutil_param_container_t *&nbsp;</td>
          <td class="paramname"> <em>param_container</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const <a class="el" href="structaxutil__env.html">axutil_env_t</a> *&nbsp;</td>
          <td class="paramname"> <em>env</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const axis2_char_t *&nbsp;</td>
          <td class="paramname"> <em>param_name</em></td><td>&nbsp;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td><td width="100%"></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
To check whether the paramter is locked at any level <dl compact><dt><b>Parameters:</b></dt><dd>
  <table border="0" cellspacing="2" cellpadding="0">
    <tr><td valign="top"></td><td valign="top"><em>param_name</em>&nbsp;</td><td>name of the param </td></tr>
  </table>
</dl>
<dl class="return" compact><dt><b>Returns:</b></dt><dd>whether param is locked </dd></dl>

</div>
</div><p>
<hr size="1"><address style="text-align: right;"><small>Generated on Fri Apr 17 11:49:46 2009 for Axis2/C by&nbsp;
<a href="http://www.doxygen.org/index.html">
<img src="doxygen.png" alt="doxygen" align="middle" border="0"></a> 1.5.3 </small></address>
</body>
</html>


<|start_filename|>util/src/http_chunked_stream.c<|end_filename|>
/*
 * 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.
 */

#include <axutil_http_chunked_stream.h>
#include <axutil_string.h>
#include <string.h>
#include <stdlib.h>

#define AXIS2_HTTP_CRLF "\r\n"

struct axutil_http_chunked_stream
{
    axutil_stream_t *stream;
    int current_chunk_size;
    int unread_len;
    axis2_bool_t end_of_chunks;
    axis2_bool_t chunk_started;
};

static axis2_status_t axutil_http_chunked_stream_start_chunk(
    axutil_http_chunked_stream_t * chunked_stream,
    const axutil_env_t *env);

AXIS2_EXTERN axutil_http_chunked_stream_t *AXIS2_CALL
axutil_http_chunked_stream_create(
    const axutil_env_t *env,
    axutil_stream_t *stream)
{
    axutil_http_chunked_stream_t *chunked_stream = NULL;
    AXIS2_ENV_CHECK(env, NULL);
    AXIS2_PARAM_CHECK(env->error, stream, NULL);

    chunked_stream = (axutil_http_chunked_stream_t *) AXIS2_MALLOC
        (env->allocator, sizeof(axutil_http_chunked_stream_t));

    if (!chunked_stream)
    {
        AXIS2_ERROR_SET(env->error, AXIS2_ERROR_NO_MEMORY, AXIS2_FAILURE);
        AXIS2_LOG_ERROR(env->log, AXIS2_LOG_SI, "Out of memory");
        return NULL;
    }
    chunked_stream->stream = stream;
    chunked_stream->current_chunk_size = -1;
    chunked_stream->unread_len = -1;
    chunked_stream->end_of_chunks = AXIS2_FALSE;
    chunked_stream->chunk_started = AXIS2_FALSE;

    return chunked_stream;
}

AXIS2_EXTERN void AXIS2_CALL
axutil_http_chunked_stream_free(
    axutil_http_chunked_stream_t *chunked_stream,
    const axutil_env_t *env)
{
    AXIS2_ENV_CHECK(env, void);

    AXIS2_FREE(env->allocator, chunked_stream);
    return;
}

AXIS2_EXTERN int AXIS2_CALL
axutil_http_chunked_stream_read(
    axutil_http_chunked_stream_t *chunked_stream,
    const axutil_env_t *env,
    void *buffer,
    size_t count)
{
    int len = -1;
    int yet_to_read = 0;
    axutil_stream_t *stream = chunked_stream->stream;

    if (!buffer)
    {
        return -1;
    }
    if (!stream)
    {
        AXIS2_ERROR_SET(env->error, AXIS2_ERROR_NULL_STREAM_IN_CHUNKED_STREAM,
            AXIS2_FAILURE);
        return -1;
    }
    if (AXIS2_TRUE == chunked_stream->end_of_chunks)
    {
        return 0;
    }
    if (AXIS2_FALSE == chunked_stream->chunk_started)
    {
        axutil_http_chunked_stream_start_chunk(chunked_stream, env);
    }
    yet_to_read = (int)count;
    /* We are sure that the difference lies within the int range */
    while (AXIS2_FALSE == chunked_stream->end_of_chunks && yet_to_read > 0)
    {
        if (chunked_stream->unread_len < yet_to_read)
        {
            len = axutil_stream_read(chunked_stream->stream, env,
                (axis2_char_t *) buffer + count -
                yet_to_read, chunked_stream->unread_len);
            yet_to_read -= len;
            chunked_stream->unread_len -= len;
            if (chunked_stream->unread_len <= 0)
            {
                axutil_http_chunked_stream_start_chunk(chunked_stream, env);
            }
        }
        else
        {
            len = axutil_stream_read(chunked_stream->stream, env,
                (axis2_char_t *) buffer + count -
                yet_to_read, yet_to_read);
            yet_to_read -= len;
            chunked_stream->unread_len -= len;
        }
    }
    return ((int)count - yet_to_read);
    /* We are sure that the difference lies within the int range */
}

AXIS2_EXTERN int AXIS2_CALL
axutil_http_chunked_stream_write(
    axutil_http_chunked_stream_t *chunked_stream,
    const axutil_env_t *env,
    const void *buffer,
    size_t count)
{
    axutil_stream_t *stream = chunked_stream->stream;
    int len = -1;
    axis2_char_t tmp_buf[10];

    if (!buffer)
    {
        return -1;
    }
    if (!stream)
    {
        AXIS2_ERROR_SET(env->error, AXIS2_ERROR_NULL_STREAM_IN_CHUNKED_STREAM,
            AXIS2_FAILURE);
        return -1;
    }
    sprintf(tmp_buf, "%x%s", (unsigned int) count, AXIS2_HTTP_CRLF);
    len = axutil_stream_write(stream, env, tmp_buf, axutil_strlen(tmp_buf));
    len = axutil_stream_write(stream, env, buffer, count);
    axutil_stream_write(stream, env, AXIS2_HTTP_CRLF, 2);
    return len;
}

AXIS2_EXTERN int AXIS2_CALL
axutil_http_chunked_stream_get_current_chunk_size(
    const axutil_http_chunked_stream_t *chunked_stream,
    const axutil_env_t *env)
{
    return chunked_stream->current_chunk_size;
}

static axis2_status_t
axutil_http_chunked_stream_start_chunk(
    axutil_http_chunked_stream_t *chunked_stream,
    const axutil_env_t *env)
{
    axis2_char_t tmp_buf[3] = "";
    axis2_char_t str_chunk_len[512] = "";
    axis2_char_t *tmp = NULL;
    int read = -1;

    /* remove the last CRLF of the previous chunk if any */
    if (AXIS2_TRUE == chunked_stream->chunk_started)
    {
        read = axutil_stream_read(chunked_stream->stream, env, tmp_buf, 2);
        chunked_stream->chunk_started = AXIS2_FALSE;
    }
    /* read the len and chunk extension */
    while ((read = axutil_stream_read(chunked_stream->stream, env, tmp_buf,
                                      1)) > 0)
    {
        tmp_buf[read] = '\0';
        strcat(str_chunk_len, tmp_buf);
        if (0 != strstr(str_chunk_len, AXIS2_HTTP_CRLF))
        {
            break;
        }
    }
    /* check whether we have extensions */
    tmp = strchr(str_chunk_len, ';');
    if (tmp)
    {
        /* we don't use extensions right now */
        *tmp = '\0';
    }
    chunked_stream->current_chunk_size = strtol(str_chunk_len, NULL, 16);
    if (0 == chunked_stream->current_chunk_size)
    {
        /* Read the last CRLF */
        read = axutil_stream_read(chunked_stream->stream, env, tmp_buf, 2);
        chunked_stream->end_of_chunks = AXIS2_TRUE;
    }
    else
    {
        chunked_stream->chunk_started = AXIS2_TRUE;
        chunked_stream->unread_len = chunked_stream->current_chunk_size;
    }
    return AXIS2_SUCCESS;
}

AXIS2_EXTERN axis2_status_t AXIS2_CALL
axutil_http_chunked_stream_write_last_chunk(
    axutil_http_chunked_stream_t *chunked_stream,
    const axutil_env_t *env)
{
    axutil_stream_t *stream = NULL;

    stream = chunked_stream->stream;
    if (axutil_stream_write(stream, env, "0\r\n\r\n", 5) == 5)
    {
        return AXIS2_SUCCESS;
    }
    return AXIS2_FAILURE;
}

AXIS2_EXTERN axis2_bool_t AXIS2_CALL
axutil_http_chunked_stream_get_end_of_chunks(
    axutil_http_chunked_stream_t *chunked_stream,
    const axutil_env_t *env)
{
    return chunked_stream->end_of_chunks; 
}



<|start_filename|>xdocs/api/html/group__axutil__base64__binary.html<|end_filename|>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html><head><meta http-equiv="Content-Type" content="text/html;charset=UTF-8">
<title>Axis2/C: encoding holder</title>
<link href="doxygen.css" rel="stylesheet" type="text/css">
<link href="tabs.css" rel="stylesheet" type="text/css">
</head><body>
<!-- Generated by Doxygen 1.5.3 -->
<div class="tabs">
  <ul>
    <li><a href="index.html"><span>Main&nbsp;Page</span></a></li>
    <li><a href="modules.html"><span>Modules</span></a></li>
    <li><a href="annotated.html"><span>Classes</span></a></li>
    <li><a href="files.html"><span>Files</span></a></li>
    <li><a href="dirs.html"><span>Directories</span></a></li>
    <li><a href="pages.html"><span>Related&nbsp;Pages</span></a></li>
    <li><a href="examples.html"><span>Examples</span></a></li>
    <li>
      <form action="search.php" method="get">
        <table cellspacing="0" cellpadding="0" border="0">
          <tr>
            <td><label>&nbsp;<u>S</u>earch&nbsp;for&nbsp;</label></td>
            <td><input type="text" name="query" value="" size="20" accesskey="s"/></td>
          </tr>
        </table>
      </form>
    </li>
  </ul>
</div>
<h1>encoding holder<br>
<small>
[<a class="el" href="group__axis2__util.html">utilities</a>]</small>
</h1><table border="0" cellpadding="0" cellspacing="0">
<tr><td></td></tr>
<tr><td colspan="2"><br><h2>Files</h2></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top">file &nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="axutil__base64__binary_8h.html">axutil_base64_binary.h</a></td></tr>

<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">axis2-util base64 encoding holder <br></td></tr>

<p>
<tr><td colspan="2"><br><h2>Typedefs</h2></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top">typedef struct <br>
axutil_base64_binary&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__axutil__base64__binary.html#gd87df1cdeeff79315010179147857acb">axutil_base64_binary_t</a></td></tr>

<tr><td colspan="2"><br><h2>Functions</h2></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top">AXIS2_EXTERN <br>
<a class="el" href="group__axutil__base64__binary.html#gd87df1cdeeff79315010179147857acb">axutil_base64_binary_t</a> *&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__axutil__base64__binary.html#gd4034fe75ef4f78c96a3d4a621e05261">axutil_base64_binary_create</a> (const <a class="el" href="structaxutil__env.html">axutil_env_t</a> *env)</td></tr>

<tr><td class="memItemLeft" nowrap align="right" valign="top">AXIS2_EXTERN <br>
<a class="el" href="group__axutil__base64__binary.html#gd87df1cdeeff79315010179147857acb">axutil_base64_binary_t</a> *&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__axutil__base64__binary.html#g60d56fa636505ebc10eed632dc345f1f">axutil_base64_binary_create_with_plain_binary</a> (const <a class="el" href="structaxutil__env.html">axutil_env_t</a> *env, const unsigned char *plain_binary, int plain_binary_len)</td></tr>

<tr><td class="memItemLeft" nowrap align="right" valign="top">AXIS2_EXTERN <br>
<a class="el" href="group__axutil__base64__binary.html#gd87df1cdeeff79315010179147857acb">axutil_base64_binary_t</a> *&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__axutil__base64__binary.html#gf28fde47d4e1d8dcef7e561960a868e6">axutil_base64_binary_create_with_encoded_binary</a> (const <a class="el" href="structaxutil__env.html">axutil_env_t</a> *env, const char *encoded_binary)</td></tr>

<tr><td class="memItemLeft" nowrap align="right" valign="top">AXIS2_EXTERN void&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__axutil__base64__binary.html#gc8130363c9fd8ed48a903fef17e0cb43">axutil_base64_binary_free</a> (<a class="el" href="group__axutil__base64__binary.html#gd87df1cdeeff79315010179147857acb">axutil_base64_binary_t</a> *base64_binary, const <a class="el" href="structaxutil__env.html">axutil_env_t</a> *env)</td></tr>

<tr><td class="memItemLeft" nowrap align="right" valign="top">AXIS2_EXTERN <br>
axis2_status_t&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__axutil__base64__binary.html#gff50faa77b39aa4f87d72427a2c090b2">axutil_base64_binary_set_plain_binary</a> (<a class="el" href="group__axutil__base64__binary.html#gd87df1cdeeff79315010179147857acb">axutil_base64_binary_t</a> *base64_binary, const <a class="el" href="structaxutil__env.html">axutil_env_t</a> *env, const unsigned char *plain_binary, int plain_binary_len)</td></tr>

<tr><td class="memItemLeft" nowrap align="right" valign="top">AXIS2_EXTERN <br>
unsigned char *&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__axutil__base64__binary.html#gaba8514ab627d46d5bd4ca28471620c3">axutil_base64_binary_get_plain_binary</a> (<a class="el" href="group__axutil__base64__binary.html#gd87df1cdeeff79315010179147857acb">axutil_base64_binary_t</a> *base64_binary, const <a class="el" href="structaxutil__env.html">axutil_env_t</a> *env, int *plain_binary_len)</td></tr>

<tr><td class="memItemLeft" nowrap align="right" valign="top">AXIS2_EXTERN <br>
axis2_status_t&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__axutil__base64__binary.html#g86b05bf454e80645877f1a55d55b5150">axutil_base64_binary_set_encoded_binary</a> (<a class="el" href="group__axutil__base64__binary.html#gd87df1cdeeff79315010179147857acb">axutil_base64_binary_t</a> *base64_binary, const <a class="el" href="structaxutil__env.html">axutil_env_t</a> *env, const char *encoded_binary)</td></tr>

<tr><td class="memItemLeft" nowrap align="right" valign="top">AXIS2_EXTERN char *&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__axutil__base64__binary.html#g417e167050fc9c2f38f129979ba2e0a8">axutil_base64_binary_get_encoded_binary</a> (<a class="el" href="group__axutil__base64__binary.html#gd87df1cdeeff79315010179147857acb">axutil_base64_binary_t</a> *base64_binary, const <a class="el" href="structaxutil__env.html">axutil_env_t</a> *env)</td></tr>

<tr><td class="memItemLeft" nowrap align="right" valign="top">AXIS2_EXTERN int&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__axutil__base64__binary.html#ge89f2a3f7e788c995ab764df3ba896cd">axutil_base64_binary_get_encoded_binary_len</a> (<a class="el" href="group__axutil__base64__binary.html#gd87df1cdeeff79315010179147857acb">axutil_base64_binary_t</a> *base64_binary, const <a class="el" href="structaxutil__env.html">axutil_env_t</a> *env)</td></tr>

<tr><td class="memItemLeft" nowrap align="right" valign="top">AXIS2_EXTERN int&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__axutil__base64__binary.html#g034abbbb58b90573b08d649d3c8939a4">axutil_base64_binary_get_decoded_binary_len</a> (<a class="el" href="group__axutil__base64__binary.html#gd87df1cdeeff79315010179147857acb">axutil_base64_binary_t</a> *base64_binary, const <a class="el" href="structaxutil__env.html">axutil_env_t</a> *env)</td></tr>

</table>
<hr><h2>Typedef Documentation</h2>
<a class="anchor" name="gd87df1cdeeff79315010179147857acb"></a><!-- doxytag: member="axutil_base64_binary.h::axutil_base64_binary_t" ref="gd87df1cdeeff79315010179147857acb" args="" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">typedef struct axutil_base64_binary <a class="el" href="group__axutil__base64__binary.html#gd87df1cdeeff79315010179147857acb">axutil_base64_binary_t</a>          </td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
Type name for struct axutil_base64_binary 
</div>
</div><p>
<hr><h2>Function Documentation</h2>
<a class="anchor" name="gd4034fe75ef4f78c96a3d4a621e05261"></a><!-- doxytag: member="axutil_base64_binary.h::axutil_base64_binary_create" ref="gd4034fe75ef4f78c96a3d4a621e05261" args="(const axutil_env_t *env)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">AXIS2_EXTERN <a class="el" href="group__axutil__base64__binary.html#gd87df1cdeeff79315010179147857acb">axutil_base64_binary_t</a>* axutil_base64_binary_create           </td>
          <td>(</td>
          <td class="paramtype">const <a class="el" href="structaxutil__env.html">axutil_env_t</a> *&nbsp;</td>
          <td class="paramname"> <em>env</em>          </td>
          <td>&nbsp;)&nbsp;</td>
          <td width="100%"></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
Creates axutil_base64_binary struct <dl compact><dt><b>Parameters:</b></dt><dd>
  <table border="0" cellspacing="2" cellpadding="0">
    <tr><td valign="top"></td><td valign="top"><em>env</em>&nbsp;</td><td>double pointer to environment struct. MUST NOT be NULL </td></tr>
  </table>
</dl>
<dl class="return" compact><dt><b>Returns:</b></dt><dd>pointer to newly created axutil_base64_binary struct </dd></dl>

</div>
</div><p>
<a class="anchor" name="gf28fde47d4e1d8dcef7e561960a868e6"></a><!-- doxytag: member="axutil_base64_binary.h::axutil_base64_binary_create_with_encoded_binary" ref="gf28fde47d4e1d8dcef7e561960a868e6" args="(const axutil_env_t *env, const char *encoded_binary)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">AXIS2_EXTERN <a class="el" href="group__axutil__base64__binary.html#gd87df1cdeeff79315010179147857acb">axutil_base64_binary_t</a>* axutil_base64_binary_create_with_encoded_binary           </td>
          <td>(</td>
          <td class="paramtype">const <a class="el" href="structaxutil__env.html">axutil_env_t</a> *&nbsp;</td>
          <td class="paramname"> <em>env</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const char *&nbsp;</td>
          <td class="paramname"> <em>encoded_binary</em></td><td>&nbsp;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td><td width="100%"></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
Creates axutil_base64_binary struct. <dl compact><dt><b>Parameters:</b></dt><dd>
  <table border="0" cellspacing="2" cellpadding="0">
    <tr><td valign="top"></td><td valign="top"><em>env</em>&nbsp;</td><td>double pointer to environment struct. MUST NOT be NULL </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>encoded_binary</em>&nbsp;</td><td>binary buffer to initialize </td></tr>
  </table>
</dl>
<dl class="return" compact><dt><b>Returns:</b></dt><dd>pointer to newly created axutil_base64_binary struct </dd></dl>

</div>
</div><p>
<a class="anchor" name="g60d56fa636505ebc10eed632dc345f1f"></a><!-- doxytag: member="axutil_base64_binary.h::axutil_base64_binary_create_with_plain_binary" ref="g60d56fa636505ebc10eed632dc345f1f" args="(const axutil_env_t *env, const unsigned char *plain_binary, int plain_binary_len)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">AXIS2_EXTERN <a class="el" href="group__axutil__base64__binary.html#gd87df1cdeeff79315010179147857acb">axutil_base64_binary_t</a>* axutil_base64_binary_create_with_plain_binary           </td>
          <td>(</td>
          <td class="paramtype">const <a class="el" href="structaxutil__env.html">axutil_env_t</a> *&nbsp;</td>
          <td class="paramname"> <em>env</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const unsigned char *&nbsp;</td>
          <td class="paramname"> <em>plain_binary</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">int&nbsp;</td>
          <td class="paramname"> <em>plain_binary_len</em></td><td>&nbsp;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td><td width="100%"></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
Creates axutil_base64_binary struct <dl compact><dt><b>Parameters:</b></dt><dd>
  <table border="0" cellspacing="2" cellpadding="0">
    <tr><td valign="top"></td><td valign="top"><em>env</em>&nbsp;</td><td>double pointer to environment struct. MUST NOT be NULL </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>plain_binary</em>&nbsp;</td><td>binary buffer to initialize </td></tr>
  </table>
</dl>
<dl class="return" compact><dt><b>Returns:</b></dt><dd>pointer to newly created axutil_base64_binary struct </dd></dl>

</div>
</div><p>
<a class="anchor" name="gc8130363c9fd8ed48a903fef17e0cb43"></a><!-- doxytag: member="axutil_base64_binary.h::axutil_base64_binary_free" ref="gc8130363c9fd8ed48a903fef17e0cb43" args="(axutil_base64_binary_t *base64_binary, const axutil_env_t *env)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">AXIS2_EXTERN void axutil_base64_binary_free           </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="group__axutil__base64__binary.html#gd87df1cdeeff79315010179147857acb">axutil_base64_binary_t</a> *&nbsp;</td>
          <td class="paramname"> <em>base64_binary</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const <a class="el" href="structaxutil__env.html">axutil_env_t</a> *&nbsp;</td>
          <td class="paramname"> <em>env</em></td><td>&nbsp;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td><td width="100%"></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
free the axutil_base64_binary. <dl compact><dt><b>Parameters:</b></dt><dd>
  <table border="0" cellspacing="2" cellpadding="0">
    <tr><td valign="top"></td><td valign="top"><em>base64_binary</em>&nbsp;</td><td>represet the type object </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>env</em>&nbsp;</td><td>pointer to environment struct. MUST NOT be NULL </td></tr>
  </table>
</dl>
<dl class="return" compact><dt><b>Returns:</b></dt><dd>AXIS2_SUCCESS on success, else AXIS2_FAILURE </dd></dl>

</div>
</div><p>
<a class="anchor" name="g034abbbb58b90573b08d649d3c8939a4"></a><!-- doxytag: member="axutil_base64_binary.h::axutil_base64_binary_get_decoded_binary_len" ref="g034abbbb58b90573b08d649d3c8939a4" args="(axutil_base64_binary_t *base64_binary, const axutil_env_t *env)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">AXIS2_EXTERN int axutil_base64_binary_get_decoded_binary_len           </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="group__axutil__base64__binary.html#gd87df1cdeeff79315010179147857acb">axutil_base64_binary_t</a> *&nbsp;</td>
          <td class="paramname"> <em>base64_binary</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const <a class="el" href="structaxutil__env.html">axutil_env_t</a> *&nbsp;</td>
          <td class="paramname"> <em>env</em></td><td>&nbsp;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td><td width="100%"></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
retrieve the value from decoded binary length. <dl compact><dt><b>Parameters:</b></dt><dd>
  <table border="0" cellspacing="2" cellpadding="0">
    <tr><td valign="top"></td><td valign="top"><em>base64_binary</em>&nbsp;</td><td>represet the type object </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>env</em>&nbsp;</td><td>pointer to environment struct. MUST NOT be NULL </td></tr>
  </table>
</dl>
<dl class="return" compact><dt><b>Returns:</b></dt><dd>the decoded binary length </dd></dl>

</div>
</div><p>
<a class="anchor" name="g417e167050fc9c2f38f129979ba2e0a8"></a><!-- doxytag: member="axutil_base64_binary.h::axutil_base64_binary_get_encoded_binary" ref="g417e167050fc9c2f38f129979ba2e0a8" args="(axutil_base64_binary_t *base64_binary, const axutil_env_t *env)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">AXIS2_EXTERN char* axutil_base64_binary_get_encoded_binary           </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="group__axutil__base64__binary.html#gd87df1cdeeff79315010179147857acb">axutil_base64_binary_t</a> *&nbsp;</td>
          <td class="paramname"> <em>base64_binary</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const <a class="el" href="structaxutil__env.html">axutil_env_t</a> *&nbsp;</td>
          <td class="paramname"> <em>env</em></td><td>&nbsp;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td><td width="100%"></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
retrieve the value from encoded binary. <dl compact><dt><b>Parameters:</b></dt><dd>
  <table border="0" cellspacing="2" cellpadding="0">
    <tr><td valign="top"></td><td valign="top"><em>base64_binary</em>&nbsp;</td><td>represet the type object </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>env</em>&nbsp;</td><td>pointer to environment struct. MUST NOT be NULL </td></tr>
  </table>
</dl>
<dl class="return" compact><dt><b>Returns:</b></dt><dd>the encoded binary </dd></dl>

</div>
</div><p>
<a class="anchor" name="ge89f2a3f7e788c995ab764df3ba896cd"></a><!-- doxytag: member="axutil_base64_binary.h::axutil_base64_binary_get_encoded_binary_len" ref="ge89f2a3f7e788c995ab764df3ba896cd" args="(axutil_base64_binary_t *base64_binary, const axutil_env_t *env)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">AXIS2_EXTERN int axutil_base64_binary_get_encoded_binary_len           </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="group__axutil__base64__binary.html#gd87df1cdeeff79315010179147857acb">axutil_base64_binary_t</a> *&nbsp;</td>
          <td class="paramname"> <em>base64_binary</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const <a class="el" href="structaxutil__env.html">axutil_env_t</a> *&nbsp;</td>
          <td class="paramname"> <em>env</em></td><td>&nbsp;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td><td width="100%"></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
retrieve the value from encoded binary length. <dl compact><dt><b>Parameters:</b></dt><dd>
  <table border="0" cellspacing="2" cellpadding="0">
    <tr><td valign="top"></td><td valign="top"><em>base64_binary</em>&nbsp;</td><td>represet the type object </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>env</em>&nbsp;</td><td>pointer to environment struct. MUST NOT be NULL </td></tr>
  </table>
</dl>
<dl class="return" compact><dt><b>Returns:</b></dt><dd>the encoded binary length </dd></dl>

</div>
</div><p>
<a class="anchor" name="gaba8514ab627d46d5bd4ca28471620c3"></a><!-- doxytag: member="axutil_base64_binary.h::axutil_base64_binary_get_plain_binary" ref="gaba8514ab627d46d5bd4ca28471620c3" args="(axutil_base64_binary_t *base64_binary, const axutil_env_t *env, int *plain_binary_len)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">AXIS2_EXTERN unsigned char* axutil_base64_binary_get_plain_binary           </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="group__axutil__base64__binary.html#gd87df1cdeeff79315010179147857acb">axutil_base64_binary_t</a> *&nbsp;</td>
          <td class="paramname"> <em>base64_binary</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const <a class="el" href="structaxutil__env.html">axutil_env_t</a> *&nbsp;</td>
          <td class="paramname"> <em>env</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">int *&nbsp;</td>
          <td class="paramname"> <em>plain_binary_len</em></td><td>&nbsp;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td><td width="100%"></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
retrieve the value from plain binary. <dl compact><dt><b>Parameters:</b></dt><dd>
  <table border="0" cellspacing="2" cellpadding="0">
    <tr><td valign="top"></td><td valign="top"><em>base64_binary</em>&nbsp;</td><td>represet the type object </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>env</em>&nbsp;</td><td>pointer to environment struct. MUST NOT be NULL </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>plain_binary_len</em>&nbsp;</td><td>length of the plain_binary binary buffer </td></tr>
  </table>
</dl>
<dl class="return" compact><dt><b>Returns:</b></dt><dd>the plain binary </dd></dl>

</div>
</div><p>
<a class="anchor" name="g86b05bf454e80645877f1a55d55b5150"></a><!-- doxytag: member="axutil_base64_binary.h::axutil_base64_binary_set_encoded_binary" ref="g86b05bf454e80645877f1a55d55b5150" args="(axutil_base64_binary_t *base64_binary, const axutil_env_t *env, const char *encoded_binary)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">AXIS2_EXTERN axis2_status_t axutil_base64_binary_set_encoded_binary           </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="group__axutil__base64__binary.html#gd87df1cdeeff79315010179147857acb">axutil_base64_binary_t</a> *&nbsp;</td>
          <td class="paramname"> <em>base64_binary</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const <a class="el" href="structaxutil__env.html">axutil_env_t</a> *&nbsp;</td>
          <td class="paramname"> <em>env</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const char *&nbsp;</td>
          <td class="paramname"> <em>encoded_binary</em></td><td>&nbsp;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td><td width="100%"></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
store the value from encoded binary. <dl compact><dt><b>Parameters:</b></dt><dd>
  <table border="0" cellspacing="2" cellpadding="0">
    <tr><td valign="top"></td><td valign="top"><em>base64_binary</em>&nbsp;</td><td>represet the type object </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>env</em>&nbsp;</td><td>pointer to environment struct. MUST NOT be NULL </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>encoded_binary</em>&nbsp;</td><td>encoded binary buffer to store </td></tr>
  </table>
</dl>
<dl class="return" compact><dt><b>Returns:</b></dt><dd>AXIS2_SUCCESS on success, else AXIS2_FAILURE </dd></dl>

</div>
</div><p>
<a class="anchor" name="gff50faa77b39aa4f87d72427a2c090b2"></a><!-- doxytag: member="axutil_base64_binary.h::axutil_base64_binary_set_plain_binary" ref="gff50faa77b39aa4f87d72427a2c090b2" args="(axutil_base64_binary_t *base64_binary, const axutil_env_t *env, const unsigned char *plain_binary, int plain_binary_len)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">AXIS2_EXTERN axis2_status_t axutil_base64_binary_set_plain_binary           </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="group__axutil__base64__binary.html#gd87df1cdeeff79315010179147857acb">axutil_base64_binary_t</a> *&nbsp;</td>
          <td class="paramname"> <em>base64_binary</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const <a class="el" href="structaxutil__env.html">axutil_env_t</a> *&nbsp;</td>
          <td class="paramname"> <em>env</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const unsigned char *&nbsp;</td>
          <td class="paramname"> <em>plain_binary</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">int&nbsp;</td>
          <td class="paramname"> <em>plain_binary_len</em></td><td>&nbsp;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td><td width="100%"></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
store the value from plain binary. <dl compact><dt><b>Parameters:</b></dt><dd>
  <table border="0" cellspacing="2" cellpadding="0">
    <tr><td valign="top"></td><td valign="top"><em>base64_binary</em>&nbsp;</td><td>represet the type object </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>env</em>&nbsp;</td><td>pointer to environment struct. MUST NOT be NULL </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>plain_binary</em>&nbsp;</td><td>binary buffer to store </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>plain_binary_len</em>&nbsp;</td><td>length of the plain_binary binary buffer </td></tr>
  </table>
</dl>
<dl class="return" compact><dt><b>Returns:</b></dt><dd>AXIS2_SUCCESS on success, else AXIS2_FAILURE </dd></dl>

</div>
</div><p>
<hr size="1"><address style="text-align: right;"><small>Generated on Fri Apr 17 11:49:45 2009 for Axis2/C by&nbsp;
<a href="http://www.doxygen.org/index.html">
<img src="doxygen.png" alt="doxygen" align="middle" border="0"></a> 1.5.3 </small></address>
</body>
</html>


<|start_filename|>xdocs/api/html/deprecated.html<|end_filename|>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html><head><meta http-equiv="Content-Type" content="text/html;charset=UTF-8">
<title>Axis2/C: Deprecated List</title>
<link href="doxygen.css" rel="stylesheet" type="text/css">
<link href="tabs.css" rel="stylesheet" type="text/css">
</head><body>
<!-- Generated by Doxygen 1.5.3 -->
<div class="tabs">
  <ul>
    <li><a href="index.html"><span>Main&nbsp;Page</span></a></li>
    <li><a href="modules.html"><span>Modules</span></a></li>
    <li><a href="annotated.html"><span>Classes</span></a></li>
    <li><a href="files.html"><span>Files</span></a></li>
    <li><a href="dirs.html"><span>Directories</span></a></li>
    <li><a href="pages.html"><span>Related&nbsp;Pages</span></a></li>
    <li><a href="examples.html"><span>Examples</span></a></li>
    <li>
      <form action="search.php" method="get">
        <table cellspacing="0" cellpadding="0" border="0">
          <tr>
            <td><label>&nbsp;<u>S</u>earch&nbsp;for&nbsp;</label></td>
            <td><input type="text" name="query" value="" size="20" accesskey="s"/></td>
          </tr>
        </table>
      </form>
    </li>
  </ul>
</div>
<h1><a class="anchor" name="deprecated">Deprecated List</a></h1><a class="anchor" name="_deprecated000001"></a> <dl>
<dt>Member <a class="el" href="group__axis2__phase__holder.html#g0994dce48be4df6e0100cf3ca382e768">axis2_phase_holder_build_transport_handler_chain</a>  </dt>
<dd><dl compact><dt><b>Parameters:</b></dt><dd>
  <table border="0" cellspacing="2" cellpadding="0">
    <tr><td valign="top"></td><td valign="top"><em>phase_holder</em>&nbsp;</td><td>pointer to phase holder </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>env</em>&nbsp;</td><td>pointer to environment struct </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>phase</em>&nbsp;</td><td>pointer to phase, phase holder does not assume the ownership the phase </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>handlers</em>&nbsp;</td><td>pointer to array list of handlers, phase holder does not assume the ownership of the list </td></tr>
  </table>
</dl>
<dl class="return" compact><dt><b>Returns:</b></dt><dd>AXIS2_SUCCESS on success, else AXIS2_FAILURE </dd></dl>
</dd>
</dl>
<p>
<a class="anchor" name="_deprecated000002"></a> <dl>
<dt>Member <a class="el" href="group__axis2__phase__resolver.html#g9efb7f943f914da282d838fc692bfe37">axis2_phase_resolver_build_transport_chains</a>  </dt>
<dd><dl compact><dt><b>Parameters:</b></dt><dd>
  <table border="0" cellspacing="2" cellpadding="0">
    <tr><td valign="top"></td><td valign="top"><em>phase_resolver</em>&nbsp;</td><td>pointer to phase resolver </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>env</em>&nbsp;</td><td>pointer to environment struct </td></tr>
  </table>
</dl>
<dl class="return" compact><dt><b>Returns:</b></dt><dd>AXIS2_SUCCESS on success, else AXIS2_FAILURE </dd></dl>
</dd>
</dl>
<p>
<a class="anchor" name="_deprecated000003"></a> <dl>
<dt>Member <a class="el" href="group__axutil__error.html#g46da3d930c143544e58b130b2ebbbb4b">axutil_error_set_error_number</a>  </dt>
<dd>this function is not in use, so should be removed. </dd>
</dl>
<p>
<a class="anchor" name="_deprecated000004"></a> <dl>
<dt>Member <a class="el" href="group__axutil__error.html#g0d679c0b9abcee889fc0dc0b694fab99">AXIS2_ERROR_FREE</a>  </dt>
<dd>The following macros are no longer useful as we can use the function calls directly. Hence these macros should be removed </dd>
</dl>
<hr size="1"><address style="text-align: right;"><small>Generated on Fri Apr 17 11:49:44 2009 for Axis2/C by&nbsp;
<a href="http://www.doxygen.org/index.html">
<img src="doxygen.png" alt="doxygen" align="middle" border="0"></a> 1.5.3 </small></address>
</body>
</html>


<|start_filename|>util/include/axutil_allocator.h<|end_filename|>
/*
 * 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_ALLOCATOR_H
#define AXUTIL_ALLOCATOR_H

/**
 * @file axutil_allocator.h
 * @brief Axis2 memory allocator interface
 */

#include <axutil_utils_defines.h>
#include <stdlib.h>
#ifdef __cplusplus
extern "C"
{
#endif

    /**
     * @defgroup axutil_allocator allocator
     * @ingroup axis2_util
     * @{
     */

    /**
      * \brief Axis2 memory allocator
      *
      * Encapsulator for memory allocating routines
      */
    typedef struct axutil_allocator
    {

        /**
         * Function pointer representing the function that allocates memory.
         * @param allocator pointer to allocator struct. In the default 
         * implementation this is not used, however this parameter is useful 
         * when the allocator implementation is dealing with a memory pool.
         * @param size size of the memory block to be allocated
         * @return pointer to the allocated memory block
         */
        void *(
            AXIS2_CALL
            * malloc_fn)(
                struct axutil_allocator * allocator,
                size_t size);

        /**
         * Function pointer representing the function that re-allocates memory.
         * @param allocator pointer to allocator struct. In the default 
         * implementation this is not used, however this parameter is useful 
         * when the allocator implementation is dealing with a memory pool.
         * @param ptr memory block who's size to be changed
         * @param size size of the memory block to be allocated
         * @return pointer to the allocated memory block
         */
        void *(
            AXIS2_CALL
            * realloc)(
                struct axutil_allocator * allocator,
                void *ptr,
                size_t size);

        /**
         * Function pointer representing the function that frees memory.
         * @param allocator pointer to allocator struct. In the default 
         * implementation this is not used, however this parameter is useful 
         * when the allocator implementation is dealing with a memory pool.
         * @param ptr pointer to be freed
         * @return void
         */
        void(
            AXIS2_CALL
            * free_fn)(
                struct axutil_allocator * allocator,
                void *ptr);

        /** 
         * Local memory pool. Local pool is used to allocate per request 
         * local values. 
         */
        void *local_pool;

        /** 
         * Global memory pool. Global pool is used to allocate values that 
         * live beyond a request 
         */
        void *global_pool;

        /** 
         * Memory pool currently in use. The functions
         * axutil_allocator_switch_to_global_pool and
         * axutil_allocator_switch_to_local_pool should be used to 
         * set the current pool to global pool or to local pool respectively. 
         */
        void *current_pool;

    }
    axutil_allocator_t;

    /**
     * Initializes (creates) a memory allocator.
     * @param allocator user defined allocator. If NULL, a default allocator 
     * will be returned.
     * @return initialized allocator. NULL on error.
     */
    AXIS2_EXTERN axutil_allocator_t *AXIS2_CALL
    axutil_allocator_init(
        axutil_allocator_t * allocator);

    /**
     * This function should be used to deallocate memory if the default 
     * allocator was provided by the axutil_allocator_init() call.
     * @param allocator allocator struct to be freed
     * @return void
     */
    AXIS2_EXTERN void AXIS2_CALL
    axutil_allocator_free(
        axutil_allocator_t * allocator);

    /**
     * Swaps the local_pool and global_pool and makes the global pool the 
     * current pool.
     * In case of using pools, local_pool is supposed to hold the pool out of which
     * local values are allocated. In case of values that live beyond a request 
     * global pool should be used, hence this method has to be called to switch to 
     * global pool for allocation. 
     * @param allocator allocator whose memory pools are to be switched
     * @return void
      */
    AXIS2_EXTERN void AXIS2_CALL
    axutil_allocator_switch_to_global_pool(
        axutil_allocator_t * allocator);

    /**
     * Swaps the local_pool and global_pool and makes the local pool the 
     * current pool. 
     * In case of using pools, local_pool is supposed to hold the pool out of which
     * local values are allocated. In case of values that live beyond a request 
     * global pool should be used. This method can be used to inverse the switching 
     * done by axutil_allocator_switch_to_global_pool, to start using the local pool again.
     * @param allocator allocator whose memory pools are to be switched
     * @return void
     */
    AXIS2_EXTERN void AXIS2_CALL
    axutil_allocator_switch_to_local_pool(
        axutil_allocator_t * allocator);

#define AXIS2_MALLOC(allocator, size) \
     ((allocator)->malloc_fn(allocator, size))

#define AXIS2_REALLOC(allocator, ptr, size) \
      ((allocator)->realloc(allocator, ptr, size))

#define AXIS2_FREE(allocator, ptr) \
    ((allocator)->free_fn(allocator, ptr))

    /** @} */

#ifdef __cplusplus
}
#endif

#endif                          /* AXIS2_ALLOCATOR_H */


<|start_filename|>xdocs/api/html/axiom__soap__const_8h-source.html<|end_filename|>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html><head><meta http-equiv="Content-Type" content="text/html;charset=UTF-8">
<title>Axis2/C: axiom_soap_const.h Source File</title>
<link href="doxygen.css" rel="stylesheet" type="text/css">
<link href="tabs.css" rel="stylesheet" type="text/css">
</head><body>
<!-- Generated by Doxygen 1.5.3 -->
<div class="tabs">
  <ul>
    <li><a href="index.html"><span>Main&nbsp;Page</span></a></li>
    <li><a href="modules.html"><span>Modules</span></a></li>
    <li><a href="annotated.html"><span>Classes</span></a></li>
    <li class="current"><a href="files.html"><span>Files</span></a></li>
    <li><a href="dirs.html"><span>Directories</span></a></li>
    <li><a href="pages.html"><span>Related&nbsp;Pages</span></a></li>
    <li><a href="examples.html"><span>Examples</span></a></li>
    <li>
      <form action="search.php" method="get">
        <table cellspacing="0" cellpadding="0" border="0">
          <tr>
            <td><label>&nbsp;<u>S</u>earch&nbsp;for&nbsp;</label></td>
            <td><input type="text" name="query" value="" size="20" accesskey="s"/></td>
          </tr>
        </table>
      </form>
    </li>
  </ul>
</div>
<div class="nav">
<a class="el" href="dir_f60961de8e5edc3b2658ef023e959e45.html">deploy</a>&nbsp;&raquo&nbsp;<a class="el" href="dir_6b4e91e54b7316b376882a6402adbf44.html">include</a>&nbsp;&raquo&nbsp;<a class="el" href="dir_df3a7695d5a9e696f30b948b566829e7.html">axis2-1.6.0</a></div>
<h1>axiom_soap_const.h</h1><div class="fragment"><pre class="fragment"><a name="l00001"></a>00001 
<a name="l00002"></a>00002 <span class="comment">/*</span>
<a name="l00003"></a>00003 <span class="comment"> * Licensed to the Apache Software Foundation (ASF) under one or more</span>
<a name="l00004"></a>00004 <span class="comment"> * contributor license agreements.  See the NOTICE file distributed with</span>
<a name="l00005"></a>00005 <span class="comment"> * this work for additional information regarding copyright ownership.</span>
<a name="l00006"></a>00006 <span class="comment"> * The ASF licenses this file to You under the Apache License, Version 2.0</span>
<a name="l00007"></a>00007 <span class="comment"> * (the "License"); you may not use this file except in compliance with</span>
<a name="l00008"></a>00008 <span class="comment"> * the License.  You may obtain a copy of the License at</span>
<a name="l00009"></a>00009 <span class="comment"> *</span>
<a name="l00010"></a>00010 <span class="comment"> *      http://www.apache.org/licenses/LICENSE-2.0</span>
<a name="l00011"></a>00011 <span class="comment"> *</span>
<a name="l00012"></a>00012 <span class="comment"> * Unless required by applicable law or agreed to in writing, software</span>
<a name="l00013"></a>00013 <span class="comment"> * distributed under the License is distributed on an "AS IS" BASIS,</span>
<a name="l00014"></a>00014 <span class="comment"> * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.</span>
<a name="l00015"></a>00015 <span class="comment"> * See the License for the specific language governing permissions and</span>
<a name="l00016"></a>00016 <span class="comment"> * limitations under the License.</span>
<a name="l00017"></a>00017 <span class="comment"> */</span>
<a name="l00018"></a>00018 
<a name="l00019"></a>00019 <span class="preprocessor">#ifndef AXIOM_SOAP_CONST_H</span>
<a name="l00020"></a>00020 <span class="preprocessor"></span><span class="preprocessor">#define AXIOM_SOAP_CONST_H</span>
<a name="l00021"></a>00021 <span class="preprocessor"></span>
<a name="l00026"></a>00026 <span class="preprocessor">#ifdef __cplusplus</span>
<a name="l00027"></a>00027 <span class="preprocessor"></span><span class="keyword">extern</span> <span class="stringliteral">"C"</span>
<a name="l00028"></a>00028 {
<a name="l00029"></a>00029 <span class="preprocessor">#endif</span>
<a name="l00030"></a>00030 <span class="preprocessor"></span>
<a name="l00037"></a>00037     <span class="keyword">typedef</span> <span class="keyword">enum</span> soap_version
<a name="l00038"></a>00038     {
<a name="l00039"></a>00039         AXIOM_SOAP_VERSION_NOT_SET = 0,
<a name="l00040"></a>00040 
<a name="l00041"></a>00041         AXIOM_SOAP11,
<a name="l00042"></a>00042 
<a name="l00043"></a>00043         AXIOM_SOAP12
<a name="l00044"></a>00044     } axiom_soap_version;
<a name="l00045"></a>00045 
<a name="l00048"></a>00048 <span class="preprocessor">#define AXIOM_SOAP11_SOAP_ENVELOPE_NAMESPACE_URI "http://schemas.xmlsoap.org/soap/envelope/"</span>
<a name="l00049"></a>00049 <span class="preprocessor"></span>
<a name="l00050"></a>00050 <span class="preprocessor">#define AXIOM_SOAP11_ATTR_ACTOR "actor"</span>
<a name="l00051"></a>00051 <span class="preprocessor"></span>
<a name="l00052"></a>00052 <span class="preprocessor">#define AXIOM_SOAP11_SOAP_FAULT_CODE_LOCAL_NAME "faultcode"</span>
<a name="l00053"></a>00053 <span class="preprocessor"></span>
<a name="l00054"></a>00054 <span class="preprocessor">#define AXIOM_SOAP11_SOAP_FAULT_STRING_LOCAL_NAME "faultstring"</span>
<a name="l00055"></a>00055 <span class="preprocessor"></span>
<a name="l00056"></a>00056 <span class="preprocessor">#define AXIOM_SOAP11_SOAP_FAULT_ACTOR_LOCAL_NAME "faultactor"</span>
<a name="l00057"></a>00057 <span class="preprocessor"></span>
<a name="l00058"></a>00058 <span class="preprocessor">#define AXIOM_SOAP11_SOAP_FAULT_DETAIL_LOCAL_NAME "detail"</span>
<a name="l00059"></a>00059 <span class="preprocessor"></span>
<a name="l00060"></a>00060 <span class="preprocessor">#define AXIOM_SOAP11_CONTENT_TYPE "text/xml"</span>
<a name="l00061"></a>00061 <span class="preprocessor"></span>
<a name="l00062"></a>00062 <span class="preprocessor">#define AXIOM_SOAP11_FAULT_CODE_SENDER "Client"</span>
<a name="l00063"></a>00063 <span class="preprocessor"></span>
<a name="l00064"></a>00064 <span class="preprocessor">#define AXIOM_SOAP11_FAULT_CODE_RECEIVER "Server"</span>
<a name="l00065"></a>00065 <span class="preprocessor"></span>
<a name="l00066"></a>00066 <span class="preprocessor">#define AXIOM_SOAP11_SOAP_ACTOR_NEXT "http://schemas.xmlsoap.org/soap/actor/next"</span>
<a name="l00067"></a>00067 <span class="preprocessor"></span>
<a name="l00070"></a>00070 <span class="preprocessor">#define AXIOM_SOAP12_SOAP_ENVELOPE_NAMESPACE_URI "http://www.w3.org/2003/05/soap-envelope"</span>
<a name="l00071"></a>00071 <span class="preprocessor"></span>
<a name="l00072"></a>00072 <span class="preprocessor">#define AXIOM_SOAP12_SOAP_ROLE "role"</span>
<a name="l00073"></a>00073 <span class="preprocessor"></span>
<a name="l00074"></a>00074 <span class="preprocessor">#define AXIOM_SOAP12_SOAP_RELAY "relay"</span>
<a name="l00075"></a>00075 <span class="preprocessor"></span>
<a name="l00076"></a>00076 <span class="preprocessor">#define AXIOM_SOAP12_SOAP_FAULT_CODE_LOCAL_NAME "Code"</span>
<a name="l00077"></a>00077 <span class="preprocessor"></span>
<a name="l00078"></a>00078 <span class="preprocessor">#define AXIOM_SOAP12_SOAP_FAULT_SUB_CODE_LOCAL_NAME "Subcode"</span>
<a name="l00079"></a>00079 <span class="preprocessor"></span>
<a name="l00080"></a>00080 <span class="preprocessor">#define AXIOM_SOAP12_SOAP_FAULT_VALUE_LOCAL_NAME "Value"</span>
<a name="l00081"></a>00081 <span class="preprocessor"></span>
<a name="l00082"></a>00082 <span class="preprocessor">#define AXIOM_SOAP12_SOAP_FAULT_VALUE_VERSION_MISMATCH "VersionMismatch"</span>
<a name="l00083"></a>00083 <span class="preprocessor"></span>
<a name="l00084"></a>00084 <span class="preprocessor">#define AXIOM_SOAP12_SOAP_FAULT_VALUE_MUST_UNDERSTAND "MustUnderstand"</span>
<a name="l00085"></a>00085 <span class="preprocessor"></span>
<a name="l00086"></a>00086 <span class="preprocessor">#define AXIOM_SOAP12_SOAP_FAULT_VALUE_DATA_ENCODING_UKNOWN "DataEncodingUnknown"</span>
<a name="l00087"></a>00087 <span class="preprocessor"></span>
<a name="l00088"></a>00088 <span class="preprocessor">#define AXIOM_SOAP12_SOAP_FAULT_VALUE_SENDER "Sender"</span>
<a name="l00089"></a>00089 <span class="preprocessor"></span>
<a name="l00090"></a>00090 <span class="preprocessor">#define AXIOM_SOAP12_SOAP_FAULT_VALUE_RECEIVER "Receiver"</span>
<a name="l00091"></a>00091 <span class="preprocessor"></span>
<a name="l00094"></a>00094 <span class="preprocessor">#define AXIOM_SOAP12_SOAP_FAULT_REASON_LOCAL_NAME "Reason"</span>
<a name="l00095"></a>00095 <span class="preprocessor"></span>
<a name="l00096"></a>00096 <span class="preprocessor">#define AXIOM_SOAP12_SOAP_FAULT_TEXT_LOCAL_NAME "Text"</span>
<a name="l00097"></a>00097 <span class="preprocessor"></span>
<a name="l00098"></a>00098 <span class="preprocessor">#define AXIOM_SOAP12_SOAP_FAULT_TEXT_LANG_ATTR_LOCAL_NAME "lang"</span>
<a name="l00099"></a>00099 <span class="preprocessor"></span>
<a name="l00100"></a>00100 <span class="preprocessor">#define AXIOM_SOAP12_SOAP_FAULT_TEXT_LANG_ATTR_NS_URI "http://www.w3.org/XML/1998/namespace"</span>
<a name="l00101"></a>00101 <span class="preprocessor"></span>
<a name="l00102"></a>00102 <span class="preprocessor">#define AXIOM_SOAP12_SOAP_FAULT_TEXT_LANG_ATTR_NS_PREFIX "xml"</span>
<a name="l00103"></a>00103 <span class="preprocessor"></span>
<a name="l00104"></a>00104 <span class="preprocessor">#define AXIOM_SOAP12_SOAP_FAULT_NODE_LOCAL_NAME "Node"</span>
<a name="l00105"></a>00105 <span class="preprocessor"></span>
<a name="l00106"></a>00106 <span class="preprocessor">#define AXIOM_SOAP12_SOAP_FAULT_DETAIL_LOCAL_NAME "Detail"</span>
<a name="l00107"></a>00107 <span class="preprocessor"></span>
<a name="l00108"></a>00108 <span class="preprocessor">#define AXIOM_SOAP12_SOAP_FAULT_ROLE_LOCAL_NAME "Role"</span>
<a name="l00109"></a>00109 <span class="preprocessor"></span>
<a name="l00110"></a>00110 <span class="preprocessor">#define AXIOM_SOAP12_CONTENT_TYPE "application/soap+xml"</span>
<a name="l00111"></a>00111 <span class="preprocessor"></span>
<a name="l00112"></a>00112 <span class="preprocessor">#define AXIOM_SOAP12_FAULT_CODE_SENDER "Sender"</span>
<a name="l00113"></a>00113 <span class="preprocessor"></span>
<a name="l00114"></a>00114 <span class="preprocessor">#define AXIOM_SOAP12_FAULT_CODE_RECEIVER "Receiver"</span>
<a name="l00115"></a>00115 <span class="preprocessor"></span>
<a name="l00116"></a>00116 <span class="preprocessor">#define AXIOM_SOAP12_SOAP_ROLE_NEXT "http://www.w3.org/2003/05/soap-envelope/role/next"</span>
<a name="l00117"></a>00117 <span class="preprocessor"></span>
<a name="l00118"></a>00118 <span class="preprocessor">#define AXIOM_SOAP12_SOAP_ROLE_NONE "http://www.w3.org/2003/05/soap-envelope/role/none"</span>
<a name="l00119"></a>00119 <span class="preprocessor"></span>
<a name="l00120"></a>00120 <span class="preprocessor">#define SOAP12_SOAP_ROLE_ULTIMATE_RECEIVER "http://www.w3.org/2003/05/soap-envelope/role/ultimateReceiver"</span>
<a name="l00121"></a>00121 <span class="preprocessor"></span>
<a name="l00122"></a>00122 <span class="preprocessor">#define AXIOM_SOAP_DEFAULT_NAMESPACE_PREFIX "soapenv"</span>
<a name="l00123"></a>00123 <span class="preprocessor"></span>
<a name="l00124"></a>00124 <span class="preprocessor">#define AXIOM_SOAP_ENVELOPE_LOCAL_NAME "Envelope"</span>
<a name="l00125"></a>00125 <span class="preprocessor"></span>
<a name="l00126"></a>00126 <span class="preprocessor">#define AXIOM_SOAP_HEADER_LOCAL_NAME "Header"</span>
<a name="l00127"></a>00127 <span class="preprocessor"></span>
<a name="l00128"></a>00128 <span class="preprocessor">#define AXIOM_SOAP_BODY_LOCAL_NAME "Body"</span>
<a name="l00129"></a>00129 <span class="preprocessor"></span>
<a name="l00130"></a>00130 <span class="preprocessor">#define AXIOM_SOAP_BODY_NAMESPACE_PREFIX AXIOM_SOAP_DEFAULT_NAMESPACE_PREFIX</span>
<a name="l00131"></a>00131 <span class="preprocessor"></span>
<a name="l00132"></a>00132 <span class="preprocessor">#define AXIOM_SOAP_BODY_FAULT_LOCAL_NAME "Fault"</span>
<a name="l00133"></a>00133 <span class="preprocessor"></span>
<a name="l00136"></a>00136 <span class="preprocessor">#define AXIOM_SOAP_ATTR_MUST_UNDERSTAND "mustUnderstand"</span>
<a name="l00137"></a>00137 <span class="preprocessor"></span>
<a name="l00138"></a>00138 <span class="preprocessor">#define AXIOM_SOAP_ATTR_MUST_UNDERSTAND_TRUE "true"</span>
<a name="l00139"></a>00139 <span class="preprocessor"></span>
<a name="l00140"></a>00140 <span class="preprocessor">#define AXIOM_SOAP_ATTR_MUST_UNDERSTAND_FALSE "false"</span>
<a name="l00141"></a>00141 <span class="preprocessor"></span>
<a name="l00142"></a>00142 <span class="preprocessor">#define AXIOM_SOAP_ATTR_MUST_UNDERSTAND_0 "0"</span>
<a name="l00143"></a>00143 <span class="preprocessor"></span>
<a name="l00144"></a>00144 <span class="preprocessor">#define AXIOM_SOAP_ATTR_MUST_UNDERSTAND_1 "1"</span>
<a name="l00145"></a>00145 <span class="preprocessor"></span>
<a name="l00146"></a>00146 <span class="preprocessor">#define AXIOM_SOAP_FAULT_LOCAL_NAME "Fault"</span>
<a name="l00147"></a>00147 <span class="preprocessor"></span>
<a name="l00148"></a>00148 <span class="preprocessor">#define AXIOM_SOAP_FAULT_DETAIL_LOCAL_NAME "detail"</span>
<a name="l00149"></a>00149 <span class="preprocessor"></span>
<a name="l00150"></a>00150 <span class="preprocessor">#define AXIOM_SOAP_FAULT_NAMESPACE_PREFIX AXIOM_SOAP_DEFAULT_NAMESPACE_PREFIX</span>
<a name="l00151"></a>00151 <span class="preprocessor"></span>
<a name="l00152"></a>00152 <span class="preprocessor">#define AXIOM_SOAP_FAULT_DETAIL_EXCEPTION_ENTRY "Exception"</span>
<a name="l00153"></a>00153 <span class="preprocessor"></span>
<a name="l00154"></a>00154 <span class="preprocessor">#define AXIOM_SOAP_FAULT_CODE_VERSION_MISMATCH "soapenv:VersionMismatch"</span>
<a name="l00155"></a>00155 <span class="preprocessor"></span>
<a name="l00156"></a>00156 <span class="preprocessor">#define AXIOM_SOAP_FAULT_CODE_MUST_UNDERSTAND "soapenv:MustUnderstand"</span>
<a name="l00157"></a>00157 <span class="preprocessor"></span>
<a name="l00158"></a>00158 <span class="preprocessor">#define AXIOM_SOAP_FAULT_CODE_DATA_ENCODING_UNKNOWN "soapenv:DataEncodingUnknown"</span>
<a name="l00159"></a>00159 <span class="preprocessor"></span>
<a name="l00160"></a>00160 <span class="preprocessor">#define AXIOM_SOAP_FAULT_CODE_SENDER ""</span>
<a name="l00161"></a>00161 <span class="preprocessor"></span>
<a name="l00162"></a>00162 <span class="preprocessor">#define AXIOM_SOAP_FAULT_CODE_RECEIVER ""</span>
<a name="l00163"></a>00163 <span class="preprocessor"></span>
<a name="l00164"></a>00164     <span class="comment">/* MTOM related  */</span>
<a name="l00165"></a>00165 
<a name="l00166"></a>00166 <span class="preprocessor">#define AXIS2_XOP_NAMESPACE_URI "http://www.w3.org/2004/08/xop/include"</span>
<a name="l00167"></a>00167 <span class="preprocessor"></span>
<a name="l00168"></a>00168 <span class="preprocessor">#define AXIS2_XOP_INCLUDE "Include"</span>
<a name="l00169"></a>00169 <span class="preprocessor"></span>
<a name="l00172"></a>00172 <span class="preprocessor">#ifdef __cplusplus</span>
<a name="l00173"></a>00173 <span class="preprocessor"></span>}
<a name="l00174"></a>00174 <span class="preprocessor">#endif</span>
<a name="l00175"></a>00175 <span class="preprocessor"></span>
<a name="l00176"></a>00176 <span class="preprocessor">#endif                          </span><span class="comment">/* AXIOM_SOAP_CONSTANTS_H */</span>
</pre></div><hr size="1"><address style="text-align: right;"><small>Generated on Fri Apr 17 11:49:42 2009 for Axis2/C by&nbsp;
<a href="http://www.doxygen.org/index.html">
<img src="doxygen.png" alt="doxygen" align="middle" border="0"></a> 1.5.3 </small></address>
</body>
</html>


<|start_filename|>xdocs/api/html/axis2__svc__skeleton_8h-source.html<|end_filename|>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html><head><meta http-equiv="Content-Type" content="text/html;charset=UTF-8">
<title>Axis2/C: axis2_svc_skeleton.h Source File</title>
<link href="doxygen.css" rel="stylesheet" type="text/css">
<link href="tabs.css" rel="stylesheet" type="text/css">
</head><body>
<!-- Generated by Doxygen 1.5.3 -->
<div class="tabs">
  <ul>
    <li><a href="index.html"><span>Main&nbsp;Page</span></a></li>
    <li><a href="modules.html"><span>Modules</span></a></li>
    <li><a href="annotated.html"><span>Classes</span></a></li>
    <li class="current"><a href="files.html"><span>Files</span></a></li>
    <li><a href="dirs.html"><span>Directories</span></a></li>
    <li><a href="pages.html"><span>Related&nbsp;Pages</span></a></li>
    <li><a href="examples.html"><span>Examples</span></a></li>
    <li>
      <form action="search.php" method="get">
        <table cellspacing="0" cellpadding="0" border="0">
          <tr>
            <td><label>&nbsp;<u>S</u>earch&nbsp;for&nbsp;</label></td>
            <td><input type="text" name="query" value="" size="20" accesskey="s"/></td>
          </tr>
        </table>
      </form>
    </li>
  </ul>
</div>
<div class="nav">
<a class="el" href="dir_f60961de8e5edc3b2658ef023e959e45.html">deploy</a>&nbsp;&raquo&nbsp;<a class="el" href="dir_6b4e91e54b7316b376882a6402adbf44.html">include</a>&nbsp;&raquo&nbsp;<a class="el" href="dir_df3a7695d5a9e696f30b948b566829e7.html">axis2-1.6.0</a></div>
<h1>axis2_svc_skeleton.h</h1><a href="axis2__svc__skeleton_8h.html">Go to the documentation of this file.</a><div class="fragment"><pre class="fragment"><a name="l00001"></a>00001 
<a name="l00002"></a>00002 <span class="comment">/*</span>
<a name="l00003"></a>00003 <span class="comment">* Licensed to the Apache Software Foundation (ASF) under one or more</span>
<a name="l00004"></a>00004 <span class="comment">* contributor license agreements.  See the NOTICE file distributed with</span>
<a name="l00005"></a>00005 <span class="comment">* this work for additional information regarding copyright ownership.</span>
<a name="l00006"></a>00006 <span class="comment">* The ASF licenses this file to You under the Apache License, Version 2.0</span>
<a name="l00007"></a>00007 <span class="comment">* (the "License"); you may not use this file except in compliance with</span>
<a name="l00008"></a>00008 <span class="comment">* the License.  You may obtain a copy of the License at</span>
<a name="l00009"></a>00009 <span class="comment">*</span>
<a name="l00010"></a>00010 <span class="comment">*      http://www.apache.org/licenses/LICENSE-2.0</span>
<a name="l00011"></a>00011 <span class="comment">*</span>
<a name="l00012"></a>00012 <span class="comment">* Unless required by applicable law or agreed to in writing, software</span>
<a name="l00013"></a>00013 <span class="comment">* distributed under the License is distributed on an "AS IS" BASIS,</span>
<a name="l00014"></a>00014 <span class="comment">* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.</span>
<a name="l00015"></a>00015 <span class="comment">* See the License for the specific language governing permissions and</span>
<a name="l00016"></a>00016 <span class="comment">* limitations under the License.</span>
<a name="l00017"></a>00017 <span class="comment">*/</span>
<a name="l00018"></a>00018 
<a name="l00019"></a>00019 <span class="preprocessor">#ifndef AXIS2_SVC_SKELETON_H</span>
<a name="l00020"></a>00020 <span class="preprocessor"></span><span class="preprocessor">#define AXIS2_SVC_SKELETON_H</span>
<a name="l00021"></a>00021 <span class="preprocessor"></span>
<a name="l00041"></a>00041 <span class="preprocessor">#include &lt;<a class="code" href="axiom__node_8h.html" title="defines axiom_node struct">axiom_node.h</a>&gt;</span>
<a name="l00042"></a>00042 <span class="preprocessor">#include &lt;<a class="code" href="axutil__array__list_8h.html" title="Axis2 array_list interface.">axutil_array_list.h</a>&gt;</span>
<a name="l00043"></a>00043 <span class="preprocessor">#include &lt;<a class="code" href="axis2__msg__ctx_8h.html">axis2_msg_ctx.h</a>&gt;</span>
<a name="l00044"></a>00044 
<a name="l00045"></a>00045 <span class="preprocessor">#ifdef __cplusplus</span>
<a name="l00046"></a>00046 <span class="preprocessor"></span><span class="keyword">extern</span> <span class="stringliteral">"C"</span>
<a name="l00047"></a>00047 {
<a name="l00048"></a>00048 <span class="preprocessor">#endif</span>
<a name="l00049"></a>00049 <span class="preprocessor"></span>
<a name="l00051"></a><a class="code" href="group__axis2__svc__skeleton.html#gcaa7c83955b9bfe9476b6afc73833b28">00051</a>     <span class="keyword">typedef</span> <span class="keyword">struct </span><a class="code" href="structaxis2__svc__skeleton__ops.html">axis2_svc_skeleton_ops</a> <a class="code" href="structaxis2__svc__skeleton__ops.html">axis2_svc_skeleton_ops_t</a>;
<a name="l00052"></a>00052 
<a name="l00054"></a><a class="code" href="group__axis2__svc__skeleton.html#gc1e79d5cf892025c1f663b2122c5ea50">00054</a>     <span class="keyword">typedef</span> <span class="keyword">struct </span><a class="code" href="structaxis2__svc__skeleton.html">axis2_svc_skeleton</a> <a class="code" href="structaxis2__svc__skeleton.html">axis2_svc_skeleton_t</a>;
<a name="l00055"></a>00055 
<a name="l00060"></a><a class="code" href="structaxis2__svc__skeleton__ops.html">00060</a>     <span class="keyword">struct </span><a class="code" href="structaxis2__svc__skeleton__ops.html">axis2_svc_skeleton_ops</a>
<a name="l00061"></a>00061     {
<a name="l00062"></a>00062 
<a name="l00069"></a>00069         int(
<a name="l00070"></a>00070             AXIS2_CALL
<a name="l00071"></a>00071             * <a class="code" href="structaxis2__svc__skeleton__ops.html#6c3313db00614c0ae6a0e3596496e5fd">init</a>)(
<a name="l00072"></a>00072                 <a class="code" href="structaxis2__svc__skeleton.html">axis2_svc_skeleton_t</a> * svc_skeleton,
<a name="l00073"></a>00073                 <span class="keyword">const</span> <a class="code" href="structaxutil__env.html" title="Axis2 Environment struct.">axutil_env_t</a> * env);
<a name="l00074"></a>00074 
<a name="l00087"></a>00087         axiom_node_t *(
<a name="l00088"></a>00088             AXIS2_CALL
<a name="l00089"></a>00089             * <a class="code" href="structaxis2__svc__skeleton__ops.html#f7e231e87bb2db245c626f5037c7d263">invoke</a>)(
<a name="l00090"></a>00090                 <a class="code" href="structaxis2__svc__skeleton.html">axis2_svc_skeleton_t</a> * svc_skeli,
<a name="l00091"></a>00091                 <span class="keyword">const</span> <a class="code" href="structaxutil__env.html" title="Axis2 Environment struct.">axutil_env_t</a> * env,
<a name="l00092"></a>00092                 axiom_node_t * node,
<a name="l00093"></a>00093                 <a class="code" href="group__axis2__msg__ctx.html#g160acae289ac39cb49fa625ffd88e410">axis2_msg_ctx_t</a> * msg_ctx);
<a name="l00094"></a>00094 
<a name="l00102"></a>00102         axiom_node_t *(
<a name="l00103"></a>00103             AXIS2_CALL
<a name="l00104"></a>00104             * <a class="code" href="structaxis2__svc__skeleton__ops.html#84abaf5bdda303774fe1abe6d4808577">on_fault</a>)(
<a name="l00105"></a>00105                 <a class="code" href="structaxis2__svc__skeleton.html">axis2_svc_skeleton_t</a> * svc_skeli,
<a name="l00106"></a>00106                 <span class="keyword">const</span> <a class="code" href="structaxutil__env.html" title="Axis2 Environment struct.">axutil_env_t</a> * env,
<a name="l00107"></a>00107                 axiom_node_t * node);
<a name="l00108"></a>00108 
<a name="l00115"></a>00115         int(
<a name="l00116"></a>00116             AXIS2_CALL
<a name="l00117"></a>00117             * <a class="code" href="structaxis2__svc__skeleton__ops.html#9b16e26ef87c9c4d460ee903adf70da3">free</a>)(
<a name="l00118"></a>00118                 <a class="code" href="structaxis2__svc__skeleton.html">axis2_svc_skeleton_t</a> * svc_skeli,
<a name="l00119"></a>00119                 <span class="keyword">const</span> <a class="code" href="structaxutil__env.html" title="Axis2 Environment struct.">axutil_env_t</a> * env);
<a name="l00120"></a>00120 
<a name="l00128"></a>00128         int(
<a name="l00129"></a>00129             AXIS2_CALL
<a name="l00130"></a>00130             * <a class="code" href="structaxis2__svc__skeleton__ops.html#0931f8e4636f97f582421d5babe407b7">init_with_conf</a>)(
<a name="l00131"></a>00131                 <a class="code" href="structaxis2__svc__skeleton.html">axis2_svc_skeleton_t</a> * svc_skeleton,
<a name="l00132"></a>00132                 <span class="keyword">const</span> <a class="code" href="structaxutil__env.html" title="Axis2 Environment struct.">axutil_env_t</a> * env,
<a name="l00133"></a>00133                 <span class="keyword">struct </span>axis2_conf * conf);
<a name="l00134"></a>00134     };
<a name="l00135"></a>00135 
<a name="l00139"></a><a class="code" href="structaxis2__svc__skeleton.html">00139</a>     <span class="keyword">struct </span><a class="code" href="structaxis2__svc__skeleton.html">axis2_svc_skeleton</a>
<a name="l00140"></a>00140     {
<a name="l00141"></a>00141 
<a name="l00143"></a><a class="code" href="structaxis2__svc__skeleton.html#94510b1f879d2402c1402142d75f948c">00143</a>         <span class="keyword">const</span> <a class="code" href="structaxis2__svc__skeleton__ops.html">axis2_svc_skeleton_ops_t</a> *<a class="code" href="structaxis2__svc__skeleton.html#94510b1f879d2402c1402142d75f948c">ops</a>;
<a name="l00144"></a>00144 
<a name="l00146"></a><a class="code" href="structaxis2__svc__skeleton.html#599e6715f5ab52169b173654a4baff55">00146</a>         <a class="code" href="group__axutil__array__list.html#g1a6a89777db876cfa0cc86787b7be6a0">axutil_array_list_t</a> *<a class="code" href="structaxis2__svc__skeleton.html#599e6715f5ab52169b173654a4baff55">func_array</a>;
<a name="l00147"></a>00147     };
<a name="l00148"></a>00148 
<a name="l00149"></a>00149     <span class="comment">/*************************** Function macros **********************************/</span>
<a name="l00150"></a>00150 
<a name="l00153"></a><a class="code" href="group__axis2__svc__skeleton.html#g65d05f1f29f563149acfba91f3a23a91">00153</a> <span class="preprocessor">#define AXIS2_SVC_SKELETON_INIT(svc_skeleton, env) \</span>
<a name="l00154"></a>00154 <span class="preprocessor">      ((svc_skeleton)-&gt;ops-&gt;init (svc_skeleton, env))</span>
<a name="l00155"></a>00155 <span class="preprocessor"></span>
<a name="l00158"></a><a class="code" href="group__axis2__svc__skeleton.html#g8badcde91b5f58a020eaaafde4a0e431">00158</a> <span class="preprocessor">#define AXIS2_SVC_SKELETON_INIT_WITH_CONF(svc_skeleton, env, conf) \</span>
<a name="l00159"></a>00159 <span class="preprocessor">      ((svc_skeleton)-&gt;ops-&gt;init_with_conf (svc_skeleton, env, conf))</span>
<a name="l00160"></a>00160 <span class="preprocessor"></span>
<a name="l00163"></a><a class="code" href="group__axis2__svc__skeleton.html#g2d7f27e2cbfaff2288c6ecfccb55ff26">00163</a> <span class="preprocessor">#define AXIS2_SVC_SKELETON_FREE(svc_skeleton, env) \</span>
<a name="l00164"></a>00164 <span class="preprocessor">      ((svc_skeleton)-&gt;ops-&gt;free (svc_skeleton, env))</span>
<a name="l00165"></a>00165 <span class="preprocessor"></span>
<a name="l00168"></a><a class="code" href="group__axis2__svc__skeleton.html#ge181b2f813a771eea6d587f3f2652e7e">00168</a> <span class="preprocessor">#define AXIS2_SVC_SKELETON_INVOKE(svc_skeleton, env, node, msg_ctx) \</span>
<a name="l00169"></a>00169 <span class="preprocessor">      ((svc_skeleton)-&gt;ops-&gt;invoke (svc_skeleton, env, node, msg_ctx))</span>
<a name="l00170"></a>00170 <span class="preprocessor"></span>
<a name="l00173"></a><a class="code" href="group__axis2__svc__skeleton.html#gc1c9dfc996cb0f8603e042cef200db98">00173</a> <span class="preprocessor">#define AXIS2_SVC_SKELETON_ON_FAULT(svc_skeleton, env, node) \</span>
<a name="l00174"></a>00174 <span class="preprocessor">      ((svc_skeleton)-&gt;ops-&gt;on_fault (svc_skeleton, env, node))</span>
<a name="l00175"></a>00175 <span class="preprocessor"></span>
<a name="l00178"></a>00178 <span class="preprocessor">#ifdef __cplusplus</span>
<a name="l00179"></a>00179 <span class="preprocessor"></span>}
<a name="l00180"></a>00180 <span class="preprocessor">#endif</span>
<a name="l00181"></a>00181 <span class="preprocessor"></span>
<a name="l00182"></a>00182 <span class="preprocessor">#endif                          </span><span class="comment">/* AXIS2_SVC_SKELETON_H */</span>
</pre></div><hr size="1"><address style="text-align: right;"><small>Generated on Fri Apr 17 11:49:42 2009 for Axis2/C by&nbsp;
<a href="http://www.doxygen.org/index.html">
<img src="doxygen.png" alt="doxygen" align="middle" border="0"></a> 1.5.3 </small></address>
</body>
</html>


<|start_filename|>neethi/src/policy.c<|end_filename|>
/*
 * 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.
 */

#include <neethi_policy.h>
#include <neethi_engine.h>
#include <axiom_attribute.h>


struct neethi_policy_t
{
    /* Contains the child components */
    axutil_array_list_t *policy_components;

    /* A wsp:Policy element can have any number of attributes
     * This has will store those */
    axutil_hash_t *attributes;

    /* This is the node containing the policy */
    axiom_node_t *root_node;
};


static void neethi_policy_clear_attributes(
    axutil_hash_t *attributes,
    const axutil_env_t *env);


/* Creates a neethi_policy object */

AXIS2_EXTERN neethi_policy_t *AXIS2_CALL
neethi_policy_create(
    const axutil_env_t * env)
{
    neethi_policy_t *neethi_policy = NULL;

    AXIS2_ENV_CHECK(env, NULL);

    neethi_policy = (neethi_policy_t *) AXIS2_MALLOC(env->allocator,
                                                     sizeof(neethi_policy_t));

    if (neethi_policy == NULL)
    {
        AXIS2_ERROR_SET(env->error, AXIS2_ERROR_NO_MEMORY, AXIS2_FAILURE);
        AXIS2_LOG_ERROR(env->log, AXIS2_LOG_SI, "Out of memory");
        return NULL;
    }
    neethi_policy->policy_components = NULL;

    neethi_policy->policy_components = axutil_array_list_create(env, 0);
    if (!(neethi_policy->policy_components))
    {
        neethi_policy_free(neethi_policy, env);
        AXIS2_ERROR_SET(env->error, AXIS2_ERROR_NO_MEMORY, AXIS2_FAILURE);
        AXIS2_LOG_ERROR(env->log, AXIS2_LOG_SI, "Out of memory");
        return NULL;
    }
    neethi_policy->attributes = axutil_hash_make(env);
    neethi_policy->root_node = NULL;

    return neethi_policy;
}

/* Deallocate the memory for the neethi_policy object */


AXIS2_EXTERN void AXIS2_CALL
neethi_policy_free(
    neethi_policy_t *neethi_policy,
    const axutil_env_t *env)
{
    if (neethi_policy)
    {
        /* We first remove the component list */

        if (neethi_policy->policy_components)
        {
            int i = 0;
            int size = 0;

            size = axutil_array_list_size(
                neethi_policy->policy_components, env);

            for (i = 0; i < size; i++)
            {
                neethi_operator_t *operator = NULL;
                operator =(neethi_operator_t *)axutil_array_list_get(
                    neethi_policy->policy_components, env, i);
                if (operator)
                {    
                    neethi_operator_free(operator, env);
                }
                operator = NULL;
            }
            axutil_array_list_free(neethi_policy->policy_components, env);
            neethi_policy->policy_components = NULL;
        }
        if(neethi_policy->attributes)
        {
            neethi_policy_clear_attributes(neethi_policy->attributes, 
                env);
            neethi_policy->attributes = NULL;
        }
        if (neethi_policy->root_node)
        {
            axiom_node_free_tree(neethi_policy->root_node, env);
            neethi_policy->root_node = NULL;
        }
        AXIS2_FREE(env->allocator, neethi_policy);
        neethi_policy = NULL;
    }
    return;
}

/* This will free the attribute hash and its content.*/

static void neethi_policy_clear_attributes(
    axutil_hash_t *attributes,
    const axutil_env_t *env)
{
    if(attributes)
    {
        axutil_hash_index_t *hi = NULL;
        void *val = NULL;
        const void *key = NULL;

        for (hi = axutil_hash_first(attributes, env); hi;
             hi = axutil_hash_next(env, hi))
        {
            axutil_hash_this(hi, &key, NULL, &val);

            if(key)
            {
                AXIS2_FREE(env->allocator, (axis2_char_t *)key);
                key = NULL;
            }

            if (val)
            {
                AXIS2_FREE(env->allocator, (axis2_char_t *)val);
                val = NULL;
            }
        }
        axutil_hash_free(attributes, env);
        attributes = NULL;
    }
}
/* Implementations */

AXIS2_EXTERN axutil_array_list_t *AXIS2_CALL
neethi_policy_get_policy_components(
    neethi_policy_t *neethi_policy,
    const axutil_env_t *env)
{
    return neethi_policy->policy_components;
}

AXIS2_EXTERN axis2_status_t AXIS2_CALL
neethi_policy_add_policy_components(
    neethi_policy_t *neethi_policy,
    axutil_array_list_t *arraylist,
    const axutil_env_t *env)
{
    int size = axutil_array_list_size(arraylist, env);
    int i = 0;

    if (axutil_array_list_ensure_capacity
        (neethi_policy->policy_components, env, size + 1) != AXIS2_SUCCESS)
    {    
        return AXIS2_FAILURE;
    }

    for (i = 0; i < size; i++)
    {
        void *value = NULL;
        value = axutil_array_list_get(arraylist, env, i);
        /* The ref count is incremented in order to prvent double frees.*/
        neethi_operator_increment_ref((neethi_operator_t *) value, env);
        axutil_array_list_add(neethi_policy->policy_components, env, value);
    }
    return AXIS2_SUCCESS;
}

AXIS2_EXTERN axis2_status_t AXIS2_CALL
neethi_policy_add_operator(
    neethi_policy_t *neethi_policy,
    const axutil_env_t *env,
    neethi_operator_t *operator)
{
    neethi_operator_increment_ref(operator, env);
    axutil_array_list_add(neethi_policy->policy_components, env, operator);
    return AXIS2_SUCCESS;
}

AXIS2_EXTERN axis2_bool_t AXIS2_CALL
neethi_policy_is_empty(
    neethi_policy_t *neethi_policy,
    const axutil_env_t *env)
{
    return axutil_array_list_is_empty(neethi_policy->policy_components, env);
}

/* A normalized policy always has just one child and it is an exactlyone
 * first child. So this method */

AXIS2_EXTERN neethi_exactlyone_t *AXIS2_CALL
neethi_policy_get_exactlyone(
    neethi_policy_t *normalized_neethi_policy,
    const axutil_env_t *env)
{
    neethi_exactlyone_t *exactlyone = NULL;
    axutil_array_list_t *list = NULL;

    list = neethi_policy_get_policy_components(normalized_neethi_policy, env);
    if (list)
    {
        if (axutil_array_list_size(list, env) == 1)
        {
            neethi_operator_t *op = NULL;
            op = (neethi_operator_t *) axutil_array_list_get(list, env, 0);
            if (!op)
            {
                return NULL;
            }
            if (neethi_operator_get_type(op, env) != OPERATOR_TYPE_EXACTLYONE)
            {
                return NULL;
            }
            exactlyone =
                (neethi_exactlyone_t *) neethi_operator_get_value(op, env);
            return exactlyone;
        }
        else
            return NULL;
    }
    else
        return NULL;
}

/* This function is called for a normalized policy
 * So it will return the components of the only
 * child. That should be an exactlyone The children
 * of that exactlyone are alls.*/

AXIS2_EXTERN axutil_array_list_t *AXIS2_CALL
neethi_policy_get_alternatives(
    neethi_policy_t *neethi_policy,
    const axutil_env_t *env)
{
    neethi_exactlyone_t *exactlyone = NULL;
    exactlyone = neethi_policy_get_exactlyone(neethi_policy, env);
    if (!exactlyone)
        return NULL;

    return neethi_exactlyone_get_policy_components(exactlyone, env);

}

/* This will return any attribute which has 
 * the local name of Name */

AXIS2_EXTERN axis2_char_t *AXIS2_CALL
neethi_policy_get_name(
    neethi_policy_t *neethi_policy,
    const axutil_env_t *env)
{
    if(neethi_policy->attributes)
    {
        axutil_qname_t *qname = NULL;
        axis2_char_t *name = NULL;
        qname = axutil_qname_create(env, NEETHI_NAME, NULL, NULL);

        if(qname)
        {
            axis2_char_t *key = axutil_qname_to_string(qname, env);
            if(key)
            {
                name = (axis2_char_t *)axutil_hash_get(neethi_policy->attributes, key, 
                    AXIS2_HASH_KEY_STRING);
            }
            axutil_qname_free(qname, env);
            qname = NULL;
            return name;
        }        
        else
        {
            return NULL;
        }
    }
    else
    {
        return NULL;
    }
}


/* This method will return the attribute value of 
 * wsu:Id if there are any such attributes */

AXIS2_EXTERN axis2_char_t *AXIS2_CALL
neethi_policy_get_id(
    neethi_policy_t *neethi_policy,
    const axutil_env_t *env)
{
    if(neethi_policy->attributes)
    {
        axis2_char_t *id = NULL;
        axutil_qname_t *qname = NULL;
        qname = axutil_qname_create(env, NEETHI_ID, NEETHI_WSU_NS, NULL);

        if(qname)
        {
            axis2_char_t *key = axutil_qname_to_string(qname, env);
            if(key)
            {
                id =  (axis2_char_t *)axutil_hash_get(neethi_policy->attributes, key, 
                    AXIS2_HASH_KEY_STRING);
            }
            axutil_qname_free(qname, env);
            qname = NULL;
            return id;
        }        
        else
        {
            return NULL;
        }
    }
    else
    {
        return NULL;
    }
}


/* When we encounter an attribute with wsu:Id 
 * we will store it in the hash. We are not 
 * considering the prefix. Just the namespace and
 * the local_name. */

AXIS2_EXTERN axis2_status_t AXIS2_CALL
    neethi_policy_set_id(
    neethi_policy_t * neethi_policy,
    const axutil_env_t * env,
    axis2_char_t * id)
{
    axutil_qname_t *qname = NULL;
    axis2_char_t *key = NULL;

    qname = axutil_qname_create(env, NEETHI_ID, NEETHI_WSU_NS, NULL);

    if(qname)
    {
        key = axutil_qname_to_string(qname, env);
        if(key)
        {
            axutil_hash_set(neethi_policy->attributes, axutil_strdup(env, key), 
                AXIS2_HASH_KEY_STRING, axutil_strdup(env, id));
        }
        axutil_qname_free(qname, env);
        return AXIS2_SUCCESS;
    }
    else
    {
        return AXIS2_FAILURE;
    }
}

/* When we encounter an attribute with Name 
 * we will store it in the hash. This has no
 * Namespace.*/


AXIS2_EXTERN axis2_status_t AXIS2_CALL
    neethi_policy_set_name(
    neethi_policy_t * neethi_policy,
    const axutil_env_t * env,
    axis2_char_t * name)
{
    axutil_qname_t *qname = NULL;
    axis2_char_t *key = NULL;

    qname = axutil_qname_create(env, NEETHI_NAME, NULL, NULL);

    if(qname)
    {
        key = axutil_qname_to_string(qname, env);
        if(key)
        {
            axutil_hash_set(neethi_policy->attributes, axutil_strdup(env, key), 
                AXIS2_HASH_KEY_STRING, axutil_strdup(env, name));
        }
        axutil_qname_free(qname, env);
        return AXIS2_SUCCESS;
    }
    else
    {
        return AXIS2_FAILURE;
    }
}


AXIS2_EXTERN axutil_hash_t *AXIS2_CALL
neethi_policy_get_attributes(
    neethi_policy_t *neethi_policy,
    const axutil_env_t *env)
{
    return neethi_policy->attributes;
}

/*This function is for serializing*/
AXIS2_EXTERN axiom_node_t *AXIS2_CALL
neethi_policy_serialize(
    neethi_policy_t *neethi_policy,
    axiom_node_t *parent,
    const axutil_env_t *env)
{

    axiom_node_t *policy_node = NULL;
    axiom_element_t *policy_ele = NULL;
    axiom_namespace_t *policy_ns = NULL;
    axutil_array_list_t *components = NULL;
    axis2_status_t status = AXIS2_FAILURE;

    policy_ns = axiom_namespace_create(env, NEETHI_NAMESPACE, NEETHI_PREFIX);

    policy_ele =
        axiom_element_create(env, parent, NEETHI_POLICY, policy_ns,
                             &policy_node);
    if (!policy_ele)
    {
        return NULL;
    }

    components = neethi_policy_get_policy_components(neethi_policy, env);

    if (components)
    {
        int i = 0;
        for (i = 0; i < axutil_array_list_size(components, env); i++)
        {
            neethi_operator_t *operator = NULL;
            operator =(neethi_operator_t *) axutil_array_list_get(components,
                                                                  env, i);
            if (operator)
            {
                status = neethi_operator_serialize(operator, env, policy_node);
                if (status != AXIS2_SUCCESS)
                {
                    return NULL;
                }
            }
        }
    }
    return policy_node;
}

AXIS2_EXTERN axis2_status_t AXIS2_CALL
neethi_policy_set_root_node(
    neethi_policy_t *policy,
    const axutil_env_t *env,
    axiom_node_t *root_node)
{
    policy->root_node = root_node;
    return AXIS2_SUCCESS;
}


<|start_filename|>src/core/transport/http/common/http_request_line.c<|end_filename|>

/*
 * 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.
 */

#include <axis2_http_request_line.h>
#include <axutil_string.h>
#include <string.h>
#include <axis2_http_transport.h>
#include <stdio.h>

struct axis2_http_request_line
{
    axis2_char_t *http_version;
    axis2_char_t *method;
    axis2_char_t *uri;
};

AXIS2_EXTERN axis2_http_request_line_t *AXIS2_CALL
axis2_http_request_line_create(
    const axutil_env_t * env,
    const axis2_char_t * method,
    const axis2_char_t * uri,
    const axis2_char_t * http_version)
{
    axis2_http_request_line_t *request_line = NULL;

    AXIS2_PARAM_CHECK(env->error, method, NULL);
    AXIS2_PARAM_CHECK(env->error, uri, NULL);
    AXIS2_PARAM_CHECK(env->error, http_version, NULL);

    request_line = (axis2_http_request_line_t *) AXIS2_MALLOC
        (env->allocator, sizeof(axis2_http_request_line_t));

    if (!request_line)
    {
        AXIS2_HANDLE_ERROR(env, AXIS2_ERROR_NO_MEMORY, AXIS2_FAILURE);
        return NULL;
    }
    memset ((void *)request_line, 0, sizeof (axis2_http_request_line_t));
    request_line->method = (axis2_char_t *) axutil_strdup(env, method);
    request_line->uri = (axis2_char_t *) axutil_strdup(env, uri);
    request_line->http_version =
        (axis2_char_t *) axutil_strdup(env, http_version);

    return request_line;
}

void AXIS2_CALL
axis2_http_request_line_free(
    axis2_http_request_line_t * request_line,
    const axutil_env_t * env)
{

    if (!request_line)
    {
        return;
    }

    if (request_line->method)
    {
        AXIS2_FREE(env->allocator, request_line->method);
    }
    if (request_line->uri)
    {
        AXIS2_FREE(env->allocator, request_line->uri);
    }
    if (request_line->http_version)
    {
        AXIS2_FREE(env->allocator, request_line->http_version);
    }

    AXIS2_FREE(env->allocator, request_line);
    return;
}


AXIS2_EXTERN axis2_http_request_line_t *AXIS2_CALL
axis2_http_request_line_parse_line(
    const axutil_env_t * env,
    const axis2_char_t * str)
{
    axis2_char_t *req_line = NULL;
    axis2_char_t *method = NULL;
    axis2_char_t *uri = NULL;
    axis2_char_t *http_version = NULL;
    axis2_http_request_line_t *ret = NULL;
    axis2_char_t *tmp = NULL;
    int i = 0;

    AXIS2_PARAM_CHECK(env->error, str, NULL);

    tmp = axutil_strstr(str, AXIS2_HTTP_CRLF);

    if (!tmp)
    {
        AXIS2_HANDLE_ERROR(env,
                           AXIS2_ERROR_INVALID_HTTP_HEADER_START_LINE,
                           AXIS2_FAILURE);
        return NULL;
    }

    i = (int)(tmp - str);
    /* We are sure that the difference lies within the int range */
    req_line = AXIS2_MALLOC(env->allocator, i * sizeof(axis2_char_t) + 1);
    if (!req_line)
    {
        AXIS2_HANDLE_ERROR(env, AXIS2_ERROR_NO_MEMORY, AXIS2_FAILURE);
        return NULL;
    }
    memcpy(req_line, str, i * sizeof(axis2_char_t));
    req_line[i] = AXIS2_ESC_NULL;
    tmp = req_line;

    method = tmp;
    tmp = strchr(tmp, AXIS2_SPACE);
    if (!tmp)
    {
        AXIS2_FREE(env->allocator, req_line);
        AXIS2_HANDLE_ERROR(env,
                           AXIS2_ERROR_INVALID_HTTP_HEADER_START_LINE,
                           AXIS2_FAILURE);
        return NULL;
    }
    *tmp++ = AXIS2_ESC_NULL;
    uri = tmp;
    tmp = strrchr(tmp, AXIS2_SPACE);
    if (!tmp)
    {
        AXIS2_FREE(env->allocator, req_line);
        AXIS2_HANDLE_ERROR(env,
                           AXIS2_ERROR_INVALID_HTTP_HEADER_START_LINE,
                           AXIS2_FAILURE);
        return NULL;
    }
    *tmp++ = AXIS2_ESC_NULL;
    http_version = tmp;
    ret = axis2_http_request_line_create(env, method, uri, http_version);
    AXIS2_FREE(env->allocator, req_line);

    return ret;
}

axis2_char_t *AXIS2_CALL
axis2_http_request_line_get_method(
    const axis2_http_request_line_t * request_line,
    const axutil_env_t * env)
{
    return request_line->method;
}

axis2_char_t *AXIS2_CALL
axis2_http_request_line_get_http_version(
    const axis2_http_request_line_t * request_line,
    const axutil_env_t * env)
{
    return request_line->http_version;
}

axis2_char_t *AXIS2_CALL
axis2_http_request_line_get_uri(
    const axis2_http_request_line_t * request_line,
    const axutil_env_t * env)
{
    return request_line->uri;
}

axis2_char_t *AXIS2_CALL
axis2_http_request_line_to_string(
    axis2_http_request_line_t * request_line,
    const axutil_env_t * env)
{
    int alloc_len = 0;
    axis2_char_t *ret = NULL;

    alloc_len = axutil_strlen(request_line->method) +
        axutil_strlen(request_line->uri) +
        axutil_strlen(request_line->http_version) + 6;
    /* 5 = 2 * spaces + '/' +CR + LF + '\0' */

    ret = AXIS2_MALLOC(env->allocator, alloc_len * sizeof(axis2_char_t));
    if (!ret)
    {
        AXIS2_HANDLE_ERROR(env, AXIS2_ERROR_NO_MEMORY, AXIS2_FAILURE);
        return NULL;
    }

    if (request_line->uri[0] != AXIS2_F_SLASH)
    {
        sprintf(ret, "%s /%s %s%s", request_line->method, request_line->uri,
                request_line->http_version, AXIS2_HTTP_CRLF);
    }
    else
    {
        sprintf(ret, "%s %s %s%s", request_line->method, request_line->uri,
                request_line->http_version, AXIS2_HTTP_CRLF);
    }
    return ret;
}


<|start_filename|>util/test/link_list/link_list_test.c<|end_filename|>
#include <axutil_linked_list.h>
#include "../util/create_env.h"

axutil_env_t *env = NULL;
axutil_linked_list_t * linked_list = NULL;
entry_t *entry = NULL;

axis2_status_t test_link_list(axutil_env_t *env,char * first_item,char * second_item,char * third_item,char *last_item,char *array)
{ 
    linked_list = axutil_linked_list_create(env);
    if(linked_list)
    {
    printf("link list is created \n");
    }
    if(!linked_list)
    {
    printf("link list is not created ");
    }
    axutil_linked_list_add_first(linked_list,env,(void *)first_item);
    axutil_linked_list_contains(linked_list,env,(void *)second_item);
    axutil_linked_list_add(linked_list,env,(void *)third_item);
    axutil_linked_list_add_last(linked_list,env,(void *)last_item);
    int index_of_item = axutil_linked_list_index_of(linked_list,env,third_item);
    printf("The index of item is %d\n",index_of_item);
    int index_of_last_item = axutil_linked_list_last_index_of(linked_list,env,last_item);
    entry_t * entry = axutil_linked_list_get_entry(linked_list,env,0);
    printf("The index of last item is %d\n",index_of_last_item);
    void *get_item = axutil_linked_list_get(linked_list,env,1);
    printf("The get item is %s\n",(char *)get_item);
    axutil_linked_list_set(linked_list,env,1,(void *)array);
    axutil_linked_list_to_array(linked_list,env);
    axutil_linked_list_add_at_index(linked_list,env,1,(void *)second_item);
    axutil_linked_list_remove_at_index(linked_list,env,1);
    axutil_linked_list_check_bounds_inclusive(linked_list,env,1);
    axutil_linked_list_remove_entry(linked_list,env,entry);
    axutil_linked_list_remove_first(linked_list,env);
    axutil_linked_list_remove_last(linked_list,env);
    axutil_linked_list_remove(linked_list,env,(void *)third_item);
    axutil_linked_list_free(linked_list,env);
    if(index_of_item && index_of_last_item &&  get_item)
    {
    printf("The test is SUCCESS\n");
    }
    if(!index_of_item || !index_of_last_item || !get_item)
    {
    printf("The test is FAIL\n");
    }
    return AXIS2_SUCCESS;
}

int main()
{
    int status = AXIS2_SUCCESS;
    env = create_environment();
    status = test_link_list(env,"first entry","secnd entry","third entry","last entry" ,"test");
    if(status == AXIS2_FAILURE)
    {
        printf(" build  failed");
    }
    axutil_env_free(env);
    return 0;
}









<|start_filename|>xdocs/api/html/group__axutil__hash.html<|end_filename|>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html><head><meta http-equiv="Content-Type" content="text/html;charset=UTF-8">
<title>Axis2/C: hash</title>
<link href="doxygen.css" rel="stylesheet" type="text/css">
<link href="tabs.css" rel="stylesheet" type="text/css">
</head><body>
<!-- Generated by Doxygen 1.5.3 -->
<div class="tabs">
  <ul>
    <li><a href="index.html"><span>Main&nbsp;Page</span></a></li>
    <li><a href="modules.html"><span>Modules</span></a></li>
    <li><a href="annotated.html"><span>Classes</span></a></li>
    <li><a href="files.html"><span>Files</span></a></li>
    <li><a href="dirs.html"><span>Directories</span></a></li>
    <li><a href="pages.html"><span>Related&nbsp;Pages</span></a></li>
    <li><a href="examples.html"><span>Examples</span></a></li>
    <li>
      <form action="search.php" method="get">
        <table cellspacing="0" cellpadding="0" border="0">
          <tr>
            <td><label>&nbsp;<u>S</u>earch&nbsp;for&nbsp;</label></td>
            <td><input type="text" name="query" value="" size="20" accesskey="s"/></td>
          </tr>
        </table>
      </form>
    </li>
  </ul>
</div>
<h1>hash<br>
<small>
[<a class="el" href="group__axis2__util.html">utilities</a>]</small>
</h1><table border="0" cellpadding="0" cellspacing="0">
<tr><td></td></tr>
<tr><td colspan="2"><br><h2>Defines</h2></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top">#define&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__axutil__hash.html#g9d76d1650779662f4e6727f4284e34d9">AXIS2_HASH_KEY_STRING</a>&nbsp;&nbsp;&nbsp;(unsigned int)(-1)</td></tr>

<tr><td colspan="2"><br><h2>Typedefs</h2></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top">typedef struct <br>
<a class="el" href="group__axutil__hash.html#gb2d7d14db2de92a101573f44421ac12a">axutil_hash_t</a>&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__axutil__hash.html#gb2d7d14db2de92a101573f44421ac12a">axutil_hash_t</a></td></tr>

<tr><td class="memItemLeft" nowrap align="right" valign="top">typedef struct <br>
<a class="el" href="group__axutil__hash.html#g3c624ec6d027cc0a7e8f07fb849f51f8">axutil_hash_index_t</a>&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__axutil__hash.html#g3c624ec6d027cc0a7e8f07fb849f51f8">axutil_hash_index_t</a></td></tr>

<tr><td class="memItemLeft" nowrap align="right" valign="top">typedef unsigned int(*&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__axutil__hash.html#gb07fdbe39a3c5b3fdaed1a8c8d1a177b">axutil_hashfunc_t</a> )(const char *key, axis2_ssize_t *klen)</td></tr>

<tr><td colspan="2"><br><h2>Functions</h2></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top">unsigned int&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__axutil__hash.html#g7cf05c040bc742d2477ee525d422c674">axutil_hashfunc_default</a> (const char *key, axis2_ssize_t *klen)</td></tr>

<tr><td class="memItemLeft" nowrap align="right" valign="top">AXIS2_EXTERN <br>
<a class="el" href="group__axutil__hash.html#gb2d7d14db2de92a101573f44421ac12a">axutil_hash_t</a> *&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__axutil__hash.html#g8acab6f89243f53723665aab71e5e945">axutil_hash_make</a> (const <a class="el" href="structaxutil__env.html">axutil_env_t</a> *env)</td></tr>

<tr><td class="memItemLeft" nowrap align="right" valign="top">AXIS2_EXTERN <br>
<a class="el" href="group__axutil__hash.html#gb2d7d14db2de92a101573f44421ac12a">axutil_hash_t</a> *&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__axutil__hash.html#gc97083ad0e5a219bfd47666ec718e66b">axutil_hash_make_custom</a> (const <a class="el" href="structaxutil__env.html">axutil_env_t</a> *env, <a class="el" href="group__axutil__hash.html#gb07fdbe39a3c5b3fdaed1a8c8d1a177b">axutil_hashfunc_t</a> hash_func)</td></tr>

<tr><td class="memItemLeft" nowrap align="right" valign="top">AXIS2_EXTERN <br>
<a class="el" href="group__axutil__hash.html#gb2d7d14db2de92a101573f44421ac12a">axutil_hash_t</a> *&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__axutil__hash.html#g816156cbb7a006f8cd83cf25397c1bda">axutil_hash_copy</a> (const <a class="el" href="group__axutil__hash.html#gb2d7d14db2de92a101573f44421ac12a">axutil_hash_t</a> *ht, const <a class="el" href="structaxutil__env.html">axutil_env_t</a> *env)</td></tr>

<tr><td class="memItemLeft" nowrap align="right" valign="top">AXIS2_EXTERN void&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__axutil__hash.html#gdd1a3888b91267e2fc5f84293ec56002">axutil_hash_set</a> (<a class="el" href="group__axutil__hash.html#gb2d7d14db2de92a101573f44421ac12a">axutil_hash_t</a> *ht, const void *key, axis2_ssize_t klen, const void *val)</td></tr>

<tr><td class="memItemLeft" nowrap align="right" valign="top">AXIS2_EXTERN void *&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__axutil__hash.html#gc9571a63cb988174c01e18634f9a93bb">axutil_hash_get</a> (<a class="el" href="group__axutil__hash.html#gb2d7d14db2de92a101573f44421ac12a">axutil_hash_t</a> *ht, const void *key, axis2_ssize_t klen)</td></tr>

<tr><td class="memItemLeft" nowrap align="right" valign="top">AXIS2_EXTERN <br>
<a class="el" href="group__axutil__hash.html#g3c624ec6d027cc0a7e8f07fb849f51f8">axutil_hash_index_t</a> *&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__axutil__hash.html#g99452fb3f68e592c7f64286c10b75426">axutil_hash_first</a> (<a class="el" href="group__axutil__hash.html#gb2d7d14db2de92a101573f44421ac12a">axutil_hash_t</a> *ht, const <a class="el" href="structaxutil__env.html">axutil_env_t</a> *env)</td></tr>

<tr><td class="memItemLeft" nowrap align="right" valign="top">AXIS2_EXTERN <br>
<a class="el" href="group__axutil__hash.html#g3c624ec6d027cc0a7e8f07fb849f51f8">axutil_hash_index_t</a> *&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__axutil__hash.html#gf273ceaf30433b5bef16fe389afbb3e9">axutil_hash_next</a> (const <a class="el" href="structaxutil__env.html">axutil_env_t</a> *env, <a class="el" href="group__axutil__hash.html#g3c624ec6d027cc0a7e8f07fb849f51f8">axutil_hash_index_t</a> *hi)</td></tr>

<tr><td class="memItemLeft" nowrap align="right" valign="top">AXIS2_EXTERN void&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__axutil__hash.html#ga6297355c83ada8f228ab1d6f46e3b50">axutil_hash_this</a> (<a class="el" href="group__axutil__hash.html#g3c624ec6d027cc0a7e8f07fb849f51f8">axutil_hash_index_t</a> *hi, const void **key, axis2_ssize_t *klen, void **val)</td></tr>

<tr><td class="memItemLeft" nowrap align="right" valign="top">AXIS2_EXTERN unsigned int&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__axutil__hash.html#ga6cd5c55cdad46b0b9d3133ff77ed314">axutil_hash_count</a> (<a class="el" href="group__axutil__hash.html#gb2d7d14db2de92a101573f44421ac12a">axutil_hash_t</a> *ht)</td></tr>

<tr><td class="memItemLeft" nowrap align="right" valign="top">AXIS2_EXTERN <br>
<a class="el" href="group__axutil__hash.html#gb2d7d14db2de92a101573f44421ac12a">axutil_hash_t</a> *&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__axutil__hash.html#g868c52ba2d5ffc3aae86b68f5fc772a7">axutil_hash_overlay</a> (const <a class="el" href="group__axutil__hash.html#gb2d7d14db2de92a101573f44421ac12a">axutil_hash_t</a> *overlay, const <a class="el" href="structaxutil__env.html">axutil_env_t</a> *env, const <a class="el" href="group__axutil__hash.html#gb2d7d14db2de92a101573f44421ac12a">axutil_hash_t</a> *base)</td></tr>

<tr><td class="memItemLeft" nowrap align="right" valign="top">AXIS2_EXTERN <br>
<a class="el" href="group__axutil__hash.html#gb2d7d14db2de92a101573f44421ac12a">axutil_hash_t</a> *&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__axutil__hash.html#g146257867c0be68eedae4ef822d4d341">axutil_hash_merge</a> (const <a class="el" href="group__axutil__hash.html#gb2d7d14db2de92a101573f44421ac12a">axutil_hash_t</a> *h1, const <a class="el" href="structaxutil__env.html">axutil_env_t</a> *env, const <a class="el" href="group__axutil__hash.html#gb2d7d14db2de92a101573f44421ac12a">axutil_hash_t</a> *h2, void *(*merger)(const <a class="el" href="structaxutil__env.html">axutil_env_t</a> *env, const void *key, axis2_ssize_t klen, const void *h1_val, const void *h2_val, const void *data), const void *data)</td></tr>

<tr><td class="memItemLeft" nowrap align="right" valign="top">AXIS2_EXTERN axis2_bool_t&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__axutil__hash.html#g56cd2ac6c7addaf693c820abe1d180f5">axutil_hash_contains_key</a> (<a class="el" href="group__axutil__hash.html#gb2d7d14db2de92a101573f44421ac12a">axutil_hash_t</a> *ht, const <a class="el" href="structaxutil__env.html">axutil_env_t</a> *env, const axis2_char_t *key)</td></tr>

<tr><td class="memItemLeft" nowrap align="right" valign="top">AXIS2_EXTERN void&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__axutil__hash.html#ge49a13a2adc0881ffdd7f69c6459b949">axutil_hash_free</a> (<a class="el" href="group__axutil__hash.html#gb2d7d14db2de92a101573f44421ac12a">axutil_hash_t</a> *ht, const <a class="el" href="structaxutil__env.html">axutil_env_t</a> *env)</td></tr>

<tr><td class="memItemLeft" nowrap align="right" valign="top">AXIS2_EXTERN void&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__axutil__hash.html#g8eb012f8273cfcda84f562dc31385270">axutil_hash_free_void_arg</a> (void *ht_void, const <a class="el" href="structaxutil__env.html">axutil_env_t</a> *env)</td></tr>

<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="gcf5da6ec41283048d3275d51482467c7"></a><!-- doxytag: member="axutil_hash::axutil_hash_set_env" ref="gcf5da6ec41283048d3275d51482467c7" args="(axutil_hash_t *ht, const axutil_env_t *env)" -->
AXIS2_EXTERN void&nbsp;</td><td class="memItemRight" valign="bottom"><b>axutil_hash_set_env</b> (<a class="el" href="group__axutil__hash.html#gb2d7d14db2de92a101573f44421ac12a">axutil_hash_t</a> *ht, const <a class="el" href="structaxutil__env.html">axutil_env_t</a> *env)</td></tr>

</table>
<hr><h2>Define Documentation</h2>
<a class="anchor" name="g9d76d1650779662f4e6727f4284e34d9"></a><!-- doxytag: member="axutil_hash.h::AXIS2_HASH_KEY_STRING" ref="g9d76d1650779662f4e6727f4284e34d9" args="" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">#define AXIS2_HASH_KEY_STRING&nbsp;&nbsp;&nbsp;(unsigned int)(-1)          </td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
When passing a key to axutil_hash_set or axutil_hash_get, this value can be passed to indicate a string-valued key, and have axutil_hash compute the length automatically.<p>
<dl class="remark" compact><dt><b>Remarks:</b></dt><dd>axutil_hash will use strlen(key) for the length. The NUL terminator is not included in the hash value (why throw a constant in?). Since the hash table merely references the provided key (rather than copying it), <a class="el" href="group__axutil__hash.html#ga6297355c83ada8f228ab1d6f46e3b50">axutil_hash_this()</a> will return the NUL-term'd key. </dd></dl>

</div>
</div><p>
<hr><h2>Typedef Documentation</h2>
<a class="anchor" name="g3c624ec6d027cc0a7e8f07fb849f51f8"></a><!-- doxytag: member="axutil_hash.h::axutil_hash_index_t" ref="g3c624ec6d027cc0a7e8f07fb849f51f8" args="" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">typedef struct <a class="el" href="group__axutil__hash.html#g3c624ec6d027cc0a7e8f07fb849f51f8">axutil_hash_index_t</a> <a class="el" href="group__axutil__hash.html#g3c624ec6d027cc0a7e8f07fb849f51f8">axutil_hash_index_t</a>          </td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
Abstract type for scanning hash tables. 
</div>
</div><p>
<a class="anchor" name="gb2d7d14db2de92a101573f44421ac12a"></a><!-- doxytag: member="axutil_hash.h::axutil_hash_t" ref="gb2d7d14db2de92a101573f44421ac12a" args="" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">typedef struct <a class="el" href="group__axutil__hash.html#gb2d7d14db2de92a101573f44421ac12a">axutil_hash_t</a> <a class="el" href="group__axutil__hash.html#gb2d7d14db2de92a101573f44421ac12a">axutil_hash_t</a>          </td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
Abstract type for hash tables. 
</div>
</div><p>
<a class="anchor" name="gb07fdbe39a3c5b3fdaed1a8c8d1a177b"></a><!-- doxytag: member="axutil_hash.h::axutil_hashfunc_t" ref="gb07fdbe39a3c5b3fdaed1a8c8d1a177b" args=")(const char *key, axis2_ssize_t *klen)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">typedef unsigned int( * <a class="el" href="group__axutil__hash.html#gb07fdbe39a3c5b3fdaed1a8c8d1a177b">axutil_hashfunc_t</a>)(const char *key, axis2_ssize_t *klen)          </td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
Callback functions for calculating hash values. <dl compact><dt><b>Parameters:</b></dt><dd>
  <table border="0" cellspacing="2" cellpadding="0">
    <tr><td valign="top"></td><td valign="top"><em>key</em>&nbsp;</td><td>The key. </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>klen</em>&nbsp;</td><td>The length of the key, or AXIS2_HASH_KEY_STRING to use the string length. If AXIS2_HASH_KEY_STRING then returns the actual key length. </td></tr>
  </table>
</dl>

</div>
</div><p>
<hr><h2>Function Documentation</h2>
<a class="anchor" name="g56cd2ac6c7addaf693c820abe1d180f5"></a><!-- doxytag: member="axutil_hash.h::axutil_hash_contains_key" ref="g56cd2ac6c7addaf693c820abe1d180f5" args="(axutil_hash_t *ht, const axutil_env_t *env, const axis2_char_t *key)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">AXIS2_EXTERN axis2_bool_t axutil_hash_contains_key           </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="group__axutil__hash.html#gb2d7d14db2de92a101573f44421ac12a">axutil_hash_t</a> *&nbsp;</td>
          <td class="paramname"> <em>ht</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const <a class="el" href="structaxutil__env.html">axutil_env_t</a> *&nbsp;</td>
          <td class="paramname"> <em>env</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const axis2_char_t *&nbsp;</td>
          <td class="paramname"> <em>key</em></td><td>&nbsp;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td><td width="100%"></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
Query whether the hash table provided as parameter contains the key provided as parameter.<p>
<dl compact><dt><b>Parameters:</b></dt><dd>
  <table border="0" cellspacing="2" cellpadding="0">
    <tr><td valign="top"></td><td valign="top"><em>ht</em>&nbsp;</td><td>hash table to be queried for key </td></tr>
  </table>
</dl>
<dl class="return" compact><dt><b>Returns:</b></dt><dd>return whether hash table contains key </dd></dl>

</div>
</div><p>
<a class="anchor" name="g816156cbb7a006f8cd83cf25397c1bda"></a><!-- doxytag: member="axutil_hash.h::axutil_hash_copy" ref="g816156cbb7a006f8cd83cf25397c1bda" args="(const axutil_hash_t *ht, const axutil_env_t *env)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">AXIS2_EXTERN <a class="el" href="group__axutil__hash.html#gb2d7d14db2de92a101573f44421ac12a">axutil_hash_t</a>* axutil_hash_copy           </td>
          <td>(</td>
          <td class="paramtype">const <a class="el" href="group__axutil__hash.html#gb2d7d14db2de92a101573f44421ac12a">axutil_hash_t</a> *&nbsp;</td>
          <td class="paramname"> <em>ht</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const <a class="el" href="structaxutil__env.html">axutil_env_t</a> *&nbsp;</td>
          <td class="paramname"> <em>env</em></td><td>&nbsp;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td><td width="100%"></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
Make a copy of a hash table <dl compact><dt><b>Parameters:</b></dt><dd>
  <table border="0" cellspacing="2" cellpadding="0">
    <tr><td valign="top"></td><td valign="top"><em>ht</em>&nbsp;</td><td>The hash table to clone </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>env</em>&nbsp;</td><td>The environment from which to allocate the new hash table </td></tr>
  </table>
</dl>
<dl class="return" compact><dt><b>Returns:</b></dt><dd>The hash table just created </dd></dl>
<dl class="remark" compact><dt><b>Remarks:</b></dt><dd>Makes a shallow copy </dd></dl>

</div>
</div><p>
<a class="anchor" name="ga6cd5c55cdad46b0b9d3133ff77ed314"></a><!-- doxytag: member="axutil_hash.h::axutil_hash_count" ref="ga6cd5c55cdad46b0b9d3133ff77ed314" args="(axutil_hash_t *ht)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">AXIS2_EXTERN unsigned int axutil_hash_count           </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="group__axutil__hash.html#gb2d7d14db2de92a101573f44421ac12a">axutil_hash_t</a> *&nbsp;</td>
          <td class="paramname"> <em>ht</em>          </td>
          <td>&nbsp;)&nbsp;</td>
          <td width="100%"></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
Get the number of key/value pairs in the hash table. <dl compact><dt><b>Parameters:</b></dt><dd>
  <table border="0" cellspacing="2" cellpadding="0">
    <tr><td valign="top"></td><td valign="top"><em>ht</em>&nbsp;</td><td>The hash table </td></tr>
  </table>
</dl>
<dl class="return" compact><dt><b>Returns:</b></dt><dd>The number of key/value pairs in the hash table. </dd></dl>

</div>
</div><p>
<a class="anchor" name="g99452fb3f68e592c7f64286c10b75426"></a><!-- doxytag: member="axutil_hash.h::axutil_hash_first" ref="g99452fb3f68e592c7f64286c10b75426" args="(axutil_hash_t *ht, const axutil_env_t *env)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">AXIS2_EXTERN <a class="el" href="group__axutil__hash.html#g3c624ec6d027cc0a7e8f07fb849f51f8">axutil_hash_index_t</a>* axutil_hash_first           </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="group__axutil__hash.html#gb2d7d14db2de92a101573f44421ac12a">axutil_hash_t</a> *&nbsp;</td>
          <td class="paramname"> <em>ht</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const <a class="el" href="structaxutil__env.html">axutil_env_t</a> *&nbsp;</td>
          <td class="paramname"> <em>env</em></td><td>&nbsp;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td><td width="100%"></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
<pre></pre><p>
<pre> int sum_values(const axutil_env_t *env, axutil_hash_t *ht)
 {
     axutil_hash_index_t *hi;
     void *val;
     int sum = 0;
     for (hi = axutil_hash_first(p, ht); hi; hi = axutil_hash_next(p, hi)) {
         axutil_hash_this(hi, NULL, NULL, &amp;val);
         sum += *(int *)val;
     }
     return sum;
 }
 </pre> 
</div>
</div><p>
<a class="anchor" name="ge49a13a2adc0881ffdd7f69c6459b949"></a><!-- doxytag: member="axutil_hash.h::axutil_hash_free" ref="ge49a13a2adc0881ffdd7f69c6459b949" args="(axutil_hash_t *ht, const axutil_env_t *env)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">AXIS2_EXTERN void axutil_hash_free           </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="group__axutil__hash.html#gb2d7d14db2de92a101573f44421ac12a">axutil_hash_t</a> *&nbsp;</td>
          <td class="paramname"> <em>ht</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const <a class="el" href="structaxutil__env.html">axutil_env_t</a> *&nbsp;</td>
          <td class="paramname"> <em>env</em></td><td>&nbsp;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td><td width="100%"></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
<dl compact><dt><b>Parameters:</b></dt><dd>
  <table border="0" cellspacing="2" cellpadding="0">
    <tr><td valign="top"></td><td valign="top"><em>ht</em>&nbsp;</td><td>hash table to be freed </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>env</em>&nbsp;</td><td>The environment to use for hash table </td></tr>
  </table>
</dl>
<dl class="return" compact><dt><b>Returns:</b></dt><dd>return status code </dd></dl>

</div>
</div><p>
<a class="anchor" name="g8eb012f8273cfcda84f562dc31385270"></a><!-- doxytag: member="axutil_hash.h::axutil_hash_free_void_arg" ref="g8eb012f8273cfcda84f562dc31385270" args="(void *ht_void, const axutil_env_t *env)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">AXIS2_EXTERN void axutil_hash_free_void_arg           </td>
          <td>(</td>
          <td class="paramtype">void *&nbsp;</td>
          <td class="paramname"> <em>ht_void</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const <a class="el" href="structaxutil__env.html">axutil_env_t</a> *&nbsp;</td>
          <td class="paramname"> <em>env</em></td><td>&nbsp;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td><td width="100%"></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
Free a hash table with hash table given as void <dl compact><dt><b>Parameters:</b></dt><dd>
  <table border="0" cellspacing="2" cellpadding="0">
    <tr><td valign="top"></td><td valign="top"><em>ht</em>&nbsp;</td><td>hash table to be freed as a void * </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>env</em>&nbsp;</td><td>The environment to use for hash table </td></tr>
  </table>
</dl>
<dl class="return" compact><dt><b>Returns:</b></dt><dd>return status code </dd></dl>

</div>
</div><p>
<a class="anchor" name="gc9571a63cb988174c01e18634f9a93bb"></a><!-- doxytag: member="axutil_hash.h::axutil_hash_get" ref="gc9571a63cb988174c01e18634f9a93bb" args="(axutil_hash_t *ht, const void *key, axis2_ssize_t klen)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">AXIS2_EXTERN void* axutil_hash_get           </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="group__axutil__hash.html#gb2d7d14db2de92a101573f44421ac12a">axutil_hash_t</a> *&nbsp;</td>
          <td class="paramname"> <em>ht</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const void *&nbsp;</td>
          <td class="paramname"> <em>key</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">axis2_ssize_t&nbsp;</td>
          <td class="paramname"> <em>klen</em></td><td>&nbsp;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td><td width="100%"></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
Look up the value associated with a key in a hash table. <dl compact><dt><b>Parameters:</b></dt><dd>
  <table border="0" cellspacing="2" cellpadding="0">
    <tr><td valign="top"></td><td valign="top"><em>ht</em>&nbsp;</td><td>The hash table </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>key</em>&nbsp;</td><td>Pointer to the key </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>klen</em>&nbsp;</td><td>Length of the key. Can be AXIS2_HASH_KEY_STRING to use the string length. </td></tr>
  </table>
</dl>
<dl class="return" compact><dt><b>Returns:</b></dt><dd>Returns NULL if the key is not present. </dd></dl>

</div>
</div><p>
<a class="anchor" name="g8acab6f89243f53723665aab71e5e945"></a><!-- doxytag: member="axutil_hash.h::axutil_hash_make" ref="g8acab6f89243f53723665aab71e5e945" args="(const axutil_env_t *env)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">AXIS2_EXTERN <a class="el" href="group__axutil__hash.html#gb2d7d14db2de92a101573f44421ac12a">axutil_hash_t</a>* axutil_hash_make           </td>
          <td>(</td>
          <td class="paramtype">const <a class="el" href="structaxutil__env.html">axutil_env_t</a> *&nbsp;</td>
          <td class="paramname"> <em>env</em>          </td>
          <td>&nbsp;)&nbsp;</td>
          <td width="100%"></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
Create a hash table. <dl compact><dt><b>Parameters:</b></dt><dd>
  <table border="0" cellspacing="2" cellpadding="0">
    <tr><td valign="top"></td><td valign="top"><em>env</em>&nbsp;</td><td>The environment to allocate the hash table out of </td></tr>
  </table>
</dl>
<dl class="return" compact><dt><b>Returns:</b></dt><dd>The hash table just created </dd></dl>

</div>
</div><p>
<a class="anchor" name="gc97083ad0e5a219bfd47666ec718e66b"></a><!-- doxytag: member="axutil_hash.h::axutil_hash_make_custom" ref="gc97083ad0e5a219bfd47666ec718e66b" args="(const axutil_env_t *env, axutil_hashfunc_t hash_func)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">AXIS2_EXTERN <a class="el" href="group__axutil__hash.html#gb2d7d14db2de92a101573f44421ac12a">axutil_hash_t</a>* axutil_hash_make_custom           </td>
          <td>(</td>
          <td class="paramtype">const <a class="el" href="structaxutil__env.html">axutil_env_t</a> *&nbsp;</td>
          <td class="paramname"> <em>env</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype"><a class="el" href="group__axutil__hash.html#gb07fdbe39a3c5b3fdaed1a8c8d1a177b">axutil_hashfunc_t</a>&nbsp;</td>
          <td class="paramname"> <em>hash_func</em></td><td>&nbsp;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td><td width="100%"></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
Create a hash table with a custom hash function <dl compact><dt><b>Parameters:</b></dt><dd>
  <table border="0" cellspacing="2" cellpadding="0">
    <tr><td valign="top"></td><td valign="top"><em>env</em>&nbsp;</td><td>The environment to allocate the hash table out of </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>hash_func</em>&nbsp;</td><td>A custom hash function. </td></tr>
  </table>
</dl>
<dl class="return" compact><dt><b>Returns:</b></dt><dd>The hash table just created </dd></dl>

</div>
</div><p>
<a class="anchor" name="g146257867c0be68eedae4ef822d4d341"></a><!-- doxytag: member="axutil_hash.h::axutil_hash_merge" ref="g146257867c0be68eedae4ef822d4d341" args="(const axutil_hash_t *h1, const axutil_env_t *env, const axutil_hash_t *h2, void *(*merger)(const axutil_env_t *env, const void *key, axis2_ssize_t klen, const void *h1_val, const void *h2_val, const void *data), const void *data)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">AXIS2_EXTERN <a class="el" href="group__axutil__hash.html#gb2d7d14db2de92a101573f44421ac12a">axutil_hash_t</a>* axutil_hash_merge           </td>
          <td>(</td>
          <td class="paramtype">const <a class="el" href="group__axutil__hash.html#gb2d7d14db2de92a101573f44421ac12a">axutil_hash_t</a> *&nbsp;</td>
          <td class="paramname"> <em>h1</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const <a class="el" href="structaxutil__env.html">axutil_env_t</a> *&nbsp;</td>
          <td class="paramname"> <em>env</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const <a class="el" href="group__axutil__hash.html#gb2d7d14db2de92a101573f44421ac12a">axutil_hash_t</a> *&nbsp;</td>
          <td class="paramname"> <em>h2</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">void *(*)(const <a class="el" href="structaxutil__env.html">axutil_env_t</a> *env, const void *key, axis2_ssize_t klen, const void *h1_val, const void *h2_val, const void *data)&nbsp;</td>
          <td class="paramname"> <em>merger</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const void *&nbsp;</td>
          <td class="paramname"> <em>data</em></td><td>&nbsp;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td><td width="100%"></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
Merge two hash tables into one new hash table. If the same key is present in both tables, call the supplied merge function to produce a merged value for the key in the new table. Both hash tables must use the same hash function. <dl compact><dt><b>Parameters:</b></dt><dd>
  <table border="0" cellspacing="2" cellpadding="0">
    <tr><td valign="top"></td><td valign="top"><em>h1</em>&nbsp;</td><td>The first of the tables to merge </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>p</em>&nbsp;</td><td>The environment to use for the new hash table </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>h2</em>&nbsp;</td><td>The second of the tables to merge </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>merger</em>&nbsp;</td><td>A callback function to merge values, or NULL to make values from h1 override values from h2 (same semantics as <a class="el" href="group__axutil__hash.html#g868c52ba2d5ffc3aae86b68f5fc772a7">axutil_hash_overlay()</a>) </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>data</em>&nbsp;</td><td>Client data to pass to the merger function </td></tr>
  </table>
</dl>
<dl class="return" compact><dt><b>Returns:</b></dt><dd>A new hash table containing all of the data from the two passed in </dd></dl>

</div>
</div><p>
<a class="anchor" name="gf273ceaf30433b5bef16fe389afbb3e9"></a><!-- doxytag: member="axutil_hash.h::axutil_hash_next" ref="gf273ceaf30433b5bef16fe389afbb3e9" args="(const axutil_env_t *env, axutil_hash_index_t *hi)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">AXIS2_EXTERN <a class="el" href="group__axutil__hash.html#g3c624ec6d027cc0a7e8f07fb849f51f8">axutil_hash_index_t</a>* axutil_hash_next           </td>
          <td>(</td>
          <td class="paramtype">const <a class="el" href="structaxutil__env.html">axutil_env_t</a> *&nbsp;</td>
          <td class="paramname"> <em>env</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype"><a class="el" href="group__axutil__hash.html#g3c624ec6d027cc0a7e8f07fb849f51f8">axutil_hash_index_t</a> *&nbsp;</td>
          <td class="paramname"> <em>hi</em></td><td>&nbsp;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td><td width="100%"></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
Continue iterating over the entries in a hash table. <dl compact><dt><b>Parameters:</b></dt><dd>
  <table border="0" cellspacing="2" cellpadding="0">
    <tr><td valign="top"></td><td valign="top"><em>hi</em>&nbsp;</td><td>The iteration state </td></tr>
  </table>
</dl>
<dl class="return" compact><dt><b>Returns:</b></dt><dd>a pointer to the updated iteration state. NULL if there are no more entries. </dd></dl>

</div>
</div><p>
<a class="anchor" name="g868c52ba2d5ffc3aae86b68f5fc772a7"></a><!-- doxytag: member="axutil_hash.h::axutil_hash_overlay" ref="g868c52ba2d5ffc3aae86b68f5fc772a7" args="(const axutil_hash_t *overlay, const axutil_env_t *env, const axutil_hash_t *base)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">AXIS2_EXTERN <a class="el" href="group__axutil__hash.html#gb2d7d14db2de92a101573f44421ac12a">axutil_hash_t</a>* axutil_hash_overlay           </td>
          <td>(</td>
          <td class="paramtype">const <a class="el" href="group__axutil__hash.html#gb2d7d14db2de92a101573f44421ac12a">axutil_hash_t</a> *&nbsp;</td>
          <td class="paramname"> <em>overlay</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const <a class="el" href="structaxutil__env.html">axutil_env_t</a> *&nbsp;</td>
          <td class="paramname"> <em>env</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const <a class="el" href="group__axutil__hash.html#gb2d7d14db2de92a101573f44421ac12a">axutil_hash_t</a> *&nbsp;</td>
          <td class="paramname"> <em>base</em></td><td>&nbsp;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td><td width="100%"></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
Merge two hash tables into one new hash table. The values of the overlay hash override the values of the base if both have the same key. Both hash tables must use the same hash function. <dl compact><dt><b>Parameters:</b></dt><dd>
  <table border="0" cellspacing="2" cellpadding="0">
    <tr><td valign="top"></td><td valign="top"><em>overlay</em>&nbsp;</td><td>The table to add to the initial table </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>p</em>&nbsp;</td><td>The environment to use for the new hash table </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>base</em>&nbsp;</td><td>The table that represents the initial values of the new table </td></tr>
  </table>
</dl>
<dl class="return" compact><dt><b>Returns:</b></dt><dd>A new hash table containing all of the data from the two passed in </dd></dl>

</div>
</div><p>
<a class="anchor" name="gdd1a3888b91267e2fc5f84293ec56002"></a><!-- doxytag: member="axutil_hash.h::axutil_hash_set" ref="gdd1a3888b91267e2fc5f84293ec56002" args="(axutil_hash_t *ht, const void *key, axis2_ssize_t klen, const void *val)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">AXIS2_EXTERN void axutil_hash_set           </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="group__axutil__hash.html#gb2d7d14db2de92a101573f44421ac12a">axutil_hash_t</a> *&nbsp;</td>
          <td class="paramname"> <em>ht</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const void *&nbsp;</td>
          <td class="paramname"> <em>key</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">axis2_ssize_t&nbsp;</td>
          <td class="paramname"> <em>klen</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const void *&nbsp;</td>
          <td class="paramname"> <em>val</em></td><td>&nbsp;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td><td width="100%"></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
Associate a value with a key in a hash table. <dl compact><dt><b>Parameters:</b></dt><dd>
  <table border="0" cellspacing="2" cellpadding="0">
    <tr><td valign="top"></td><td valign="top"><em>ht</em>&nbsp;</td><td>The hash table </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>key</em>&nbsp;</td><td>Pointer to the key </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>klen</em>&nbsp;</td><td>Length of the key. Can be AXIS2_HASH_KEY_STRING to use the string length. </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>val</em>&nbsp;</td><td>Value to associate with the key </td></tr>
  </table>
</dl>
<dl class="remark" compact><dt><b>Remarks:</b></dt><dd>If the value is NULL the hash entry is deleted. </dd></dl>

</div>
</div><p>
<a class="anchor" name="ga6297355c83ada8f228ab1d6f46e3b50"></a><!-- doxytag: member="axutil_hash.h::axutil_hash_this" ref="ga6297355c83ada8f228ab1d6f46e3b50" args="(axutil_hash_index_t *hi, const void **key, axis2_ssize_t *klen, void **val)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">AXIS2_EXTERN void axutil_hash_this           </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="group__axutil__hash.html#g3c624ec6d027cc0a7e8f07fb849f51f8">axutil_hash_index_t</a> *&nbsp;</td>
          <td class="paramname"> <em>hi</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const void **&nbsp;</td>
          <td class="paramname"> <em>key</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">axis2_ssize_t *&nbsp;</td>
          <td class="paramname"> <em>klen</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">void **&nbsp;</td>
          <td class="paramname"> <em>val</em></td><td>&nbsp;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td><td width="100%"></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
Get the current entry's details from the iteration state. <dl compact><dt><b>Parameters:</b></dt><dd>
  <table border="0" cellspacing="2" cellpadding="0">
    <tr><td valign="top"></td><td valign="top"><em>hi</em>&nbsp;</td><td>The iteration state </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>key</em>&nbsp;</td><td>Return pointer for the pointer to the key. </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>klen</em>&nbsp;</td><td>Return pointer for the key length. </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>val</em>&nbsp;</td><td>Return pointer for the associated value. </td></tr>
  </table>
</dl>
<dl class="remark" compact><dt><b>Remarks:</b></dt><dd>The return pointers should point to a variable that will be set to the corresponding data, or they may be NULL if the data isn't interesting. </dd></dl>

</div>
</div><p>
<a class="anchor" name="g7cf05c040bc742d2477ee525d422c674"></a><!-- doxytag: member="axutil_hash.h::axutil_hashfunc_default" ref="g7cf05c040bc742d2477ee525d422c674" args="(const char *key, axis2_ssize_t *klen)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">unsigned int axutil_hashfunc_default           </td>
          <td>(</td>
          <td class="paramtype">const char *&nbsp;</td>
          <td class="paramname"> <em>key</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">axis2_ssize_t *&nbsp;</td>
          <td class="paramname"> <em>klen</em></td><td>&nbsp;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td><td width="100%"></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
The default hash function. 
</div>
</div><p>
<hr size="1"><address style="text-align: right;"><small>Generated on Fri Apr 17 11:49:46 2009 for Axis2/C by&nbsp;
<a href="http://www.doxygen.org/index.html">
<img src="doxygen.png" alt="doxygen" align="middle" border="0"></a> 1.5.3 </small></address>
</body>
</html>


<|start_filename|>xdocs/api/html/axis2__ctx_8h-source.html<|end_filename|>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html><head><meta http-equiv="Content-Type" content="text/html;charset=UTF-8">
<title>Axis2/C: axis2_ctx.h Source File</title>
<link href="doxygen.css" rel="stylesheet" type="text/css">
<link href="tabs.css" rel="stylesheet" type="text/css">
</head><body>
<!-- Generated by Doxygen 1.5.3 -->
<div class="tabs">
  <ul>
    <li><a href="index.html"><span>Main&nbsp;Page</span></a></li>
    <li><a href="modules.html"><span>Modules</span></a></li>
    <li><a href="annotated.html"><span>Classes</span></a></li>
    <li class="current"><a href="files.html"><span>Files</span></a></li>
    <li><a href="dirs.html"><span>Directories</span></a></li>
    <li><a href="pages.html"><span>Related&nbsp;Pages</span></a></li>
    <li><a href="examples.html"><span>Examples</span></a></li>
    <li>
      <form action="search.php" method="get">
        <table cellspacing="0" cellpadding="0" border="0">
          <tr>
            <td><label>&nbsp;<u>S</u>earch&nbsp;for&nbsp;</label></td>
            <td><input type="text" name="query" value="" size="20" accesskey="s"/></td>
          </tr>
        </table>
      </form>
    </li>
  </ul>
</div>
<div class="nav">
<a class="el" href="dir_f60961de8e5edc3b2658ef023e959e45.html">deploy</a>&nbsp;&raquo&nbsp;<a class="el" href="dir_6b4e91e54b7316b376882a6402adbf44.html">include</a>&nbsp;&raquo&nbsp;<a class="el" href="dir_df3a7695d5a9e696f30b948b566829e7.html">axis2-1.6.0</a></div>
<h1>axis2_ctx.h</h1><a href="axis2__ctx_8h.html">Go to the documentation of this file.</a><div class="fragment"><pre class="fragment"><a name="l00001"></a>00001 
<a name="l00002"></a>00002 <span class="comment">/*</span>
<a name="l00003"></a>00003 <span class="comment">* Licensed to the Apache Software Foundation (ASF) under one or more</span>
<a name="l00004"></a>00004 <span class="comment">* contributor license agreements.  See the NOTICE file distributed with</span>
<a name="l00005"></a>00005 <span class="comment">* this work for additional information regarding copyright ownership.</span>
<a name="l00006"></a>00006 <span class="comment">* The ASF licenses this file to You under the Apache License, Version 2.0</span>
<a name="l00007"></a>00007 <span class="comment">* (the "License"); you may not use this file except in compliance with</span>
<a name="l00008"></a>00008 <span class="comment">* the License.  You may obtain a copy of the License at</span>
<a name="l00009"></a>00009 <span class="comment">*</span>
<a name="l00010"></a>00010 <span class="comment">*      http://www.apache.org/licenses/LICENSE-2.0</span>
<a name="l00011"></a>00011 <span class="comment">*</span>
<a name="l00012"></a>00012 <span class="comment">* Unless required by applicable law or agreed to in writing, software</span>
<a name="l00013"></a>00013 <span class="comment">* distributed under the License is distributed on an "AS IS" BASIS,</span>
<a name="l00014"></a>00014 <span class="comment">* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.</span>
<a name="l00015"></a>00015 <span class="comment">* See the License for the specific language governing permissions and</span>
<a name="l00016"></a>00016 <span class="comment">* limitations under the License.</span>
<a name="l00017"></a>00017 <span class="comment">*/</span>
<a name="l00018"></a>00018 
<a name="l00019"></a>00019 <span class="preprocessor">#ifndef AXIS2_CTX_H</span>
<a name="l00020"></a>00020 <span class="preprocessor"></span><span class="preprocessor">#define AXIS2_CTX_H</span>
<a name="l00021"></a>00021 <span class="preprocessor"></span>
<a name="l00043"></a>00043 <span class="preprocessor">#include &lt;<a class="code" href="axis2__defines_8h.html" title="Useful definitions, which may have platform concerns.">axis2_defines.h</a>&gt;</span>
<a name="l00044"></a>00044 <span class="preprocessor">#include &lt;<a class="code" href="axutil__hash_8h.html" title="Axis2 Hash Tables.">axutil_hash.h</a>&gt;</span>
<a name="l00045"></a>00045 <span class="preprocessor">#include &lt;<a class="code" href="axutil__env_8h.html" title="Axis2 environment that acts as a container for error, log and memory allocator routines...">axutil_env.h</a>&gt;</span>
<a name="l00046"></a>00046 <span class="preprocessor">#include &lt;axutil_property.h&gt;</span>
<a name="l00047"></a>00047 
<a name="l00048"></a>00048 <span class="preprocessor">#ifdef __cplusplus</span>
<a name="l00049"></a>00049 <span class="preprocessor"></span><span class="keyword">extern</span> <span class="stringliteral">"C"</span>
<a name="l00050"></a>00050 {
<a name="l00051"></a>00051 <span class="preprocessor">#endif</span>
<a name="l00052"></a>00052 <span class="preprocessor"></span>
<a name="l00054"></a><a class="code" href="group__axis2__ctx.html#ga705ff779281577f08fef5330c23402c">00054</a>     <span class="keyword">typedef</span> <span class="keyword">struct </span>axis2_ctx <a class="code" href="group__axis2__ctx.html#ga705ff779281577f08fef5330c23402c">axis2_ctx_t</a>;
<a name="l00055"></a>00055 
<a name="l00061"></a>00061     AXIS2_EXTERN <a class="code" href="group__axis2__ctx.html#ga705ff779281577f08fef5330c23402c">axis2_ctx_t</a> *AXIS2_CALL
<a name="l00062"></a>00062     <a class="code" href="group__axis2__ctx.html#gcb5d8fd664562a2ddaf88cc3248e977e">axis2_ctx_create</a>(
<a name="l00063"></a>00063         <span class="keyword">const</span> <a class="code" href="structaxutil__env.html" title="Axis2 Environment struct.">axutil_env_t</a> * env);
<a name="l00064"></a>00064 
<a name="l00074"></a>00074     AXIS2_EXTERN axis2_status_t AXIS2_CALL
<a name="l00075"></a>00075     <a class="code" href="group__axis2__ctx.html#g7cf1781574ed208e2ca552cde99501bb">axis2_ctx_set_property</a>(
<a name="l00076"></a>00076         <span class="keyword">struct</span> axis2_ctx *ctx,
<a name="l00077"></a>00077         <span class="keyword">const</span> <a class="code" href="structaxutil__env.html" title="Axis2 Environment struct.">axutil_env_t</a> * env,
<a name="l00078"></a>00078         <span class="keyword">const</span> axis2_char_t * key,
<a name="l00079"></a>00079         axutil_property_t * value);
<a name="l00080"></a>00080 
<a name="l00088"></a>00088     AXIS2_EXTERN axutil_property_t *AXIS2_CALL
<a name="l00089"></a>00089     <a class="code" href="group__axis2__ctx.html#g2344da02e08fe0a2b88b7bb5e21fafe8">axis2_ctx_get_property</a>(
<a name="l00090"></a>00090         <span class="keyword">const</span> <a class="code" href="group__axis2__ctx.html#ga705ff779281577f08fef5330c23402c">axis2_ctx_t</a> * ctx,
<a name="l00091"></a>00091         <span class="keyword">const</span> <a class="code" href="structaxutil__env.html" title="Axis2 Environment struct.">axutil_env_t</a> * env,
<a name="l00092"></a>00092         <span class="keyword">const</span> axis2_char_t * key);
<a name="l00093"></a>00093 
<a name="l00101"></a>00101     AXIS2_EXTERN <a class="code" href="group__axutil__hash.html#gb2d7d14db2de92a101573f44421ac12a">axutil_hash_t</a> *AXIS2_CALL
<a name="l00102"></a>00102     <a class="code" href="group__axis2__ctx.html#gc516a4bacec4a38f5e201273b77781db">axis2_ctx_get_property_map</a>(
<a name="l00103"></a>00103         <span class="keyword">const</span> <a class="code" href="group__axis2__ctx.html#ga705ff779281577f08fef5330c23402c">axis2_ctx_t</a> * ctx,
<a name="l00104"></a>00104         <span class="keyword">const</span> <a class="code" href="structaxutil__env.html" title="Axis2 Environment struct.">axutil_env_t</a> * env);
<a name="l00105"></a>00105 
<a name="l00112"></a>00112     AXIS2_EXTERN <a class="code" href="group__axutil__hash.html#gb2d7d14db2de92a101573f44421ac12a">axutil_hash_t</a> *AXIS2_CALL
<a name="l00113"></a>00113     <a class="code" href="group__axis2__ctx.html#gff927e494c30e1e2b89da57679285f49">axis2_ctx_get_all_properties</a>(
<a name="l00114"></a>00114         <span class="keyword">const</span> <a class="code" href="group__axis2__ctx.html#ga705ff779281577f08fef5330c23402c">axis2_ctx_t</a> * ctx,
<a name="l00115"></a>00115         <span class="keyword">const</span> <a class="code" href="structaxutil__env.html" title="Axis2 Environment struct.">axutil_env_t</a> * env);
<a name="l00116"></a>00116 
<a name="l00123"></a>00123     AXIS2_EXTERN <span class="keywordtype">void</span> AXIS2_CALL
<a name="l00124"></a>00124     <a class="code" href="group__axis2__ctx.html#g6cc540335eb01194fc20626e774f9991">axis2_ctx_free</a>(
<a name="l00125"></a>00125         <a class="code" href="group__axis2__ctx.html#ga705ff779281577f08fef5330c23402c">axis2_ctx_t</a> * ctx,
<a name="l00126"></a>00126         <span class="keyword">const</span> <a class="code" href="structaxutil__env.html" title="Axis2 Environment struct.">axutil_env_t</a> * env);
<a name="l00127"></a>00127 
<a name="l00135"></a>00135     AXIS2_EXTERN axis2_status_t AXIS2_CALL
<a name="l00136"></a>00136     <a class="code" href="group__axis2__ctx.html#gd1452d5b24ddbb87565e8b297f7e7fdc">axis2_ctx_set_property_map</a>(
<a name="l00137"></a>00137         <span class="keyword">struct</span> axis2_ctx *ctx,
<a name="l00138"></a>00138         <span class="keyword">const</span> <a class="code" href="structaxutil__env.html" title="Axis2 Environment struct.">axutil_env_t</a> * env,
<a name="l00139"></a>00139         <a class="code" href="group__axutil__hash.html#gb2d7d14db2de92a101573f44421ac12a">axutil_hash_t</a> * map);
<a name="l00140"></a>00140 
<a name="l00143"></a>00143 <span class="preprocessor">#ifdef __cplusplus</span>
<a name="l00144"></a>00144 <span class="preprocessor"></span>}
<a name="l00145"></a>00145 <span class="preprocessor">#endif</span>
<a name="l00146"></a>00146 <span class="preprocessor"></span>
<a name="l00147"></a>00147 <span class="preprocessor">#endif                          </span><span class="comment">/* AXIS2_CTX_H */</span>
</pre></div><hr size="1"><address style="text-align: right;"><small>Generated on Fri Apr 17 11:49:42 2009 for Axis2/C by&nbsp;
<a href="http://www.doxygen.org/index.html">
<img src="doxygen.png" alt="doxygen" align="middle" border="0"></a> 1.5.3 </small></address>
</body>
</html>


<|start_filename|>tools/tcpmon/src/tcpmon_entry_local.h<|end_filename|>
#include <axutil_env.h>
#include "tcpmon_entry.h"
#include "tcpmon_session_local.h"

typedef struct tcpmon_entry_request_data
{
    const axutil_env_t *env;
    int socket;
    tcpmon_session_t *session;
}
tcpmon_entry_request_data_t;

void *AXIS2_CALL
tcpmon_entry_new_entry_funct(
    axutil_thread_t * thd,
    void *data);


<|start_filename|>xdocs/api/html/group__axutil__md5.html<|end_filename|>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html><head><meta http-equiv="Content-Type" content="text/html;charset=UTF-8">
<title>Axis2/C: md5</title>
<link href="doxygen.css" rel="stylesheet" type="text/css">
<link href="tabs.css" rel="stylesheet" type="text/css">
</head><body>
<!-- Generated by Doxygen 1.5.3 -->
<div class="tabs">
  <ul>
    <li><a href="index.html"><span>Main&nbsp;Page</span></a></li>
    <li><a href="modules.html"><span>Modules</span></a></li>
    <li><a href="annotated.html"><span>Classes</span></a></li>
    <li><a href="files.html"><span>Files</span></a></li>
    <li><a href="dirs.html"><span>Directories</span></a></li>
    <li><a href="pages.html"><span>Related&nbsp;Pages</span></a></li>
    <li><a href="examples.html"><span>Examples</span></a></li>
    <li>
      <form action="search.php" method="get">
        <table cellspacing="0" cellpadding="0" border="0">
          <tr>
            <td><label>&nbsp;<u>S</u>earch&nbsp;for&nbsp;</label></td>
            <td><input type="text" name="query" value="" size="20" accesskey="s"/></td>
          </tr>
        </table>
      </form>
    </li>
  </ul>
</div>
<h1>md5<br>
<small>
[<a class="el" href="group__axis2__util.html">utilities</a>]</small>
</h1><table border="0" cellpadding="0" cellspacing="0">
<tr><td></td></tr>
<tr><td colspan="2"><br><h2>Classes</h2></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top">struct &nbsp;</td><td class="memItemRight" valign="bottom"><b>axutil_md5_ctx</b></td></tr>

<tr><td colspan="2"><br><h2>Defines</h2></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top">#define&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__axutil__md5.html#g46524d732e43163e7e19261f67e24246">AXIS2_MD5_DIGESTSIZE</a>&nbsp;&nbsp;&nbsp;16</td></tr>

<tr><td colspan="2"><br><h2>Typedefs</h2></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="g1312350f3b8da4d5a04deda33dda0737"></a><!-- doxytag: member="axutil_md5::axutil_md5_ctx_t" ref="g1312350f3b8da4d5a04deda33dda0737" args="" -->
typedef struct <br>
axutil_md5_ctx&nbsp;</td><td class="memItemRight" valign="bottom"><b>axutil_md5_ctx_t</b></td></tr>

<tr><td colspan="2"><br><h2>Functions</h2></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top">AXIS2_EXTERN <br>
axutil_md5_ctx_t *&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__axutil__md5.html#gb1b0077f4d73b00f536914cf44b81437">axutil_md5_ctx_create</a> (const <a class="el" href="structaxutil__env.html">axutil_env_t</a> *env)</td></tr>

<tr><td class="memItemLeft" nowrap align="right" valign="top">AXIS2_EXTERN void&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__axutil__md5.html#g15ae76fd76cb90f4325f88fcf34ea754">axutil_md5_ctx_free</a> (axutil_md5_ctx_t *md5_ctx, const <a class="el" href="structaxutil__env.html">axutil_env_t</a> *env)</td></tr>

<tr><td class="memItemLeft" nowrap align="right" valign="top">AXIS2_EXTERN <br>
axis2_status_t&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__axutil__md5.html#g4376674b24f5e755fef8113029600a58">axutil_md5_update</a> (axutil_md5_ctx_t *context, const <a class="el" href="structaxutil__env.html">axutil_env_t</a> *env, const void *input_str, size_t inputLen)</td></tr>

<tr><td class="memItemLeft" nowrap align="right" valign="top">AXIS2_EXTERN <br>
axis2_status_t&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__axutil__md5.html#g7954e033ab5182e623ade60ae1f7051f">axutil_md5_final</a> (axutil_md5_ctx_t *context, const <a class="el" href="structaxutil__env.html">axutil_env_t</a> *env, unsigned char digest[AXIS2_MD5_DIGESTSIZE])</td></tr>

<tr><td class="memItemLeft" nowrap align="right" valign="top">AXIS2_EXTERN <br>
axis2_status_t&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__axutil__md5.html#g9e7aead74d8d68f3d8f8177d17239da0">axutil_md5</a> (const <a class="el" href="structaxutil__env.html">axutil_env_t</a> *env, unsigned char digest[AXIS2_MD5_DIGESTSIZE], const void *input_str, size_t inputLen)</td></tr>

</table>
<hr><h2>Define Documentation</h2>
<a class="anchor" name="g46524d732e43163e7e19261f67e24246"></a><!-- doxytag: member="axutil_md5.h::AXIS2_MD5_DIGESTSIZE" ref="g46524d732e43163e7e19261f67e24246" args="" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">#define AXIS2_MD5_DIGESTSIZE&nbsp;&nbsp;&nbsp;16          </td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
The MD5 digest size 
</div>
</div><p>
<hr><h2>Function Documentation</h2>
<a class="anchor" name="g9e7aead74d8d68f3d8f8177d17239da0"></a><!-- doxytag: member="axutil_md5.h::axutil_md5" ref="g9e7aead74d8d68f3d8f8177d17239da0" args="(const axutil_env_t *env, unsigned char digest[AXIS2_MD5_DIGESTSIZE], const void *input_str, size_t inputLen)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">AXIS2_EXTERN axis2_status_t axutil_md5           </td>
          <td>(</td>
          <td class="paramtype">const <a class="el" href="structaxutil__env.html">axutil_env_t</a> *&nbsp;</td>
          <td class="paramname"> <em>env</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">unsigned char&nbsp;</td>
          <td class="paramname"> <em>digest</em>[AXIS2_MD5_DIGESTSIZE], </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const void *&nbsp;</td>
          <td class="paramname"> <em>input_str</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">size_t&nbsp;</td>
          <td class="paramname"> <em>inputLen</em></td><td>&nbsp;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td><td width="100%"></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
MD5 in one step. <dl compact><dt><b>Parameters:</b></dt><dd>
  <table border="0" cellspacing="2" cellpadding="0">
    <tr><td valign="top"></td><td valign="top"><em>env,pointer</em>&nbsp;</td><td>to the env struct. </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>digest</em>&nbsp;</td><td>The final MD5 digest. </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>input_str</em>&nbsp;</td><td>The message block to use. </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>inputLen</em>&nbsp;</td><td>The length of the message block. </td></tr>
  </table>
</dl>

</div>
</div><p>
<a class="anchor" name="gb1b0077f4d73b00f536914cf44b81437"></a><!-- doxytag: member="axutil_md5.h::axutil_md5_ctx_create" ref="gb1b0077f4d73b00f536914cf44b81437" args="(const axutil_env_t *env)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">AXIS2_EXTERN axutil_md5_ctx_t* axutil_md5_ctx_create           </td>
          <td>(</td>
          <td class="paramtype">const <a class="el" href="structaxutil__env.html">axutil_env_t</a> *&nbsp;</td>
          <td class="paramname"> <em>env</em>          </td>
          <td>&nbsp;)&nbsp;</td>
          <td width="100%"></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
Creates md5_ctx struct, which is used for the MD5 message-digest operation. Initialization of the struct is done during the creation process. <dl compact><dt><b>Parameters:</b></dt><dd>
  <table border="0" cellspacing="2" cellpadding="0">
    <tr><td valign="top"></td><td valign="top"><em>env,pointer</em>&nbsp;</td><td>to the env struct. </td></tr>
  </table>
</dl>
<dl class="return" compact><dt><b>Returns:</b></dt><dd>pointer to md5_ctx struct created. </dd></dl>

</div>
</div><p>
<a class="anchor" name="g15ae76fd76cb90f4325f88fcf34ea754"></a><!-- doxytag: member="axutil_md5.h::axutil_md5_ctx_free" ref="g15ae76fd76cb90f4325f88fcf34ea754" args="(axutil_md5_ctx_t *md5_ctx, const axutil_env_t *env)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">AXIS2_EXTERN void axutil_md5_ctx_free           </td>
          <td>(</td>
          <td class="paramtype">axutil_md5_ctx_t *&nbsp;</td>
          <td class="paramname"> <em>md5_ctx</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const <a class="el" href="structaxutil__env.html">axutil_env_t</a> *&nbsp;</td>
          <td class="paramname"> <em>env</em></td><td>&nbsp;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td><td width="100%"></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
Frees the md5_ctx struct <dl compact><dt><b>Parameters:</b></dt><dd>
  <table border="0" cellspacing="2" cellpadding="0">
    <tr><td valign="top"></td><td valign="top"><em>md5_ctx,pointer</em>&nbsp;</td><td>to struct to free. </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>env,pointer</em>&nbsp;</td><td>to the env struct. </td></tr>
  </table>
</dl>

</div>
</div><p>
<a class="anchor" name="g7954e033ab5182e623ade60ae1f7051f"></a><!-- doxytag: member="axutil_md5.h::axutil_md5_final" ref="g7954e033ab5182e623ade60ae1f7051f" args="(axutil_md5_ctx_t *context, const axutil_env_t *env, unsigned char digest[AXIS2_MD5_DIGESTSIZE])" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">AXIS2_EXTERN axis2_status_t axutil_md5_final           </td>
          <td>(</td>
          <td class="paramtype">axutil_md5_ctx_t *&nbsp;</td>
          <td class="paramname"> <em>context</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const <a class="el" href="structaxutil__env.html">axutil_env_t</a> *&nbsp;</td>
          <td class="paramname"> <em>env</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">unsigned char&nbsp;</td>
          <td class="paramname"> <em>digest</em>[AXIS2_MD5_DIGESTSIZE]</td><td>&nbsp;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td><td width="100%"></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
MD5 finalization. Ends an MD5 message-digest operation, writing the message digest and zeroing the context. <dl compact><dt><b>Parameters:</b></dt><dd>
  <table border="0" cellspacing="2" cellpadding="0">
    <tr><td valign="top"></td><td valign="top"><em>digest</em>&nbsp;</td><td>The final MD5 digest. </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>env,pointer</em>&nbsp;</td><td>to the env struct. </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>context</em>&nbsp;</td><td>The MD5 content we are finalizing. </td></tr>
  </table>
</dl>

</div>
</div><p>
<a class="anchor" name="g4376674b24f5e755fef8113029600a58"></a><!-- doxytag: member="axutil_md5.h::axutil_md5_update" ref="g4376674b24f5e755fef8113029600a58" args="(axutil_md5_ctx_t *context, const axutil_env_t *env, const void *input_str, size_t inputLen)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">AXIS2_EXTERN axis2_status_t axutil_md5_update           </td>
          <td>(</td>
          <td class="paramtype">axutil_md5_ctx_t *&nbsp;</td>
          <td class="paramname"> <em>context</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const <a class="el" href="structaxutil__env.html">axutil_env_t</a> *&nbsp;</td>
          <td class="paramname"> <em>env</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const void *&nbsp;</td>
          <td class="paramname"> <em>input_str</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">size_t&nbsp;</td>
          <td class="paramname"> <em>inputLen</em></td><td>&nbsp;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td><td width="100%"></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
MD5 block update operation. Continue an MD5 message-digest operation, processing another message block, and updating the context. <dl compact><dt><b>Parameters:</b></dt><dd>
  <table border="0" cellspacing="2" cellpadding="0">
    <tr><td valign="top"></td><td valign="top"><em>context</em>&nbsp;</td><td>The MD5 content to update. </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>env,pointer</em>&nbsp;</td><td>to the env struct. </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>input_str</em>&nbsp;</td><td>next message block to update </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>inputLen</em>&nbsp;</td><td>The length of the next message block </td></tr>
  </table>
</dl>

</div>
</div><p>
<hr size="1"><address style="text-align: right;"><small>Generated on Fri Apr 17 11:49:46 2009 for Axis2/C by&nbsp;
<a href="http://www.doxygen.org/index.html">
<img src="doxygen.png" alt="doxygen" align="middle" border="0"></a> 1.5.3 </small></address>
</body>
</html>


<|start_filename|>axiom/src/attachments/mime_body_part.c<|end_filename|>
/*
 * 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.
 */

#include "axiom_mime_body_part.h"
#include <axiom_mime_part.h>
#include <axiom_data_handler.h>
#include <axutil_hash.h>

struct axiom_mime_body_part
{
    /* hash map to hold header name, value pairs */
    axutil_hash_t *header_map;
    axiom_data_handler_t *data_handler;
};

/* This method just create a mime_body_part. It does not 
 * fill the header map.
 */


AXIS2_EXTERN axiom_mime_body_part_t *AXIS2_CALL
axiom_mime_body_part_create(
    const axutil_env_t *env)
{
    axiom_mime_body_part_t *mime_body_part = NULL;

    AXIS2_ENV_CHECK(env, NULL);
    mime_body_part = (axiom_mime_body_part_t *) AXIS2_MALLOC(env->allocator,
        sizeof(axiom_mime_body_part_t));

    if (!mime_body_part)
    {
        AXIS2_ERROR_SET(env->error, AXIS2_ERROR_NO_MEMORY, AXIS2_FAILURE);
        AXIS2_LOG_ERROR(env->log, AXIS2_LOG_SI,
            "No memory. Cannot create MIME body part");
        return NULL;
    }

    mime_body_part->header_map = NULL;
    mime_body_part->data_handler = NULL;

    mime_body_part->header_map = axutil_hash_make(env);
    if (!(mime_body_part->header_map))
    {
        axiom_mime_body_part_free(mime_body_part, env);
        return NULL;
    }

    return mime_body_part;
}

/* This method will create the mime_body_part and fill the header map with 
 * default information. Default information are for binary attachments. 
 * Attachment information is taken from the information in data_handler in passed
 * om_text.
 */  

AXIS2_EXTERN axiom_mime_body_part_t *AXIS2_CALL 
axiom_mime_body_part_create_from_om_text(
    const axutil_env_t *env,    
    axiom_text_t *text)
{
    axiom_data_handler_t *data_handler = NULL;
    axiom_mime_body_part_t *mime_body_part = NULL;
    axis2_char_t *content_id = NULL;
    axis2_char_t *temp_content_id = NULL;
    const axis2_char_t *content_type = AXIOM_MIME_TYPE_OCTET_STREAM;

    mime_body_part = axiom_mime_body_part_create(env);
    if (!mime_body_part)
    {
        AXIS2_LOG_ERROR(env->log, AXIS2_LOG_SI,
            "MIME body part creation failed");
        return NULL;
    }
    
    /* Take the data_handler which is set by the sending applocation. */
    
    data_handler = axiom_text_get_data_handler(text, env);

    if (data_handler)
    {
        content_type = axiom_data_handler_get_content_type(data_handler, env);
    }

    AXIOM_MIME_BODY_PART_SET_DATA_HANDLER(mime_body_part, env, data_handler);
    content_id = (axis2_char_t *) "<";
    content_id = axutil_stracat(env, content_id,
        axiom_text_get_content_id(text, env));
    temp_content_id = axutil_stracat(env, content_id, ">");

    AXIS2_FREE(env->allocator, content_id);
    content_id = temp_content_id;

    /* Adding the content-id */
    AXIOM_MIME_BODY_PART_ADD_HEADER(mime_body_part, env,
        AXIOM_MIME_HEADER_CONTENT_ID, content_id);
    
    /* Adding the content-type */
    AXIOM_MIME_BODY_PART_ADD_HEADER(mime_body_part, env,
        AXIOM_MIME_HEADER_CONTENT_TYPE, axutil_strdup(env, content_type));
    
    /* Adding the content-transfer encoding */
    AXIOM_MIME_BODY_PART_ADD_HEADER(mime_body_part, env,
        AXIOM_MIME_HEADER_CONTENT_TRANSFER_ENCODING,
        axutil_strdup(env, AXIOM_MIME_CONTENT_TRANSFER_ENCODING_BINARY));

    return mime_body_part;
}


AXIS2_EXTERN void AXIS2_CALL
axiom_mime_body_part_free(
    axiom_mime_body_part_t *mime_body_part,
    const axutil_env_t *env)
{
    if (mime_body_part->header_map)
    {
        axutil_hash_index_t *hash_index = NULL;
        const void *key = NULL;
        void *value = NULL;
        for (hash_index = axutil_hash_first(mime_body_part->header_map, env);
             hash_index; hash_index = axutil_hash_next(env, hash_index))
        {
            axutil_hash_this(hash_index, &key, NULL, &value);
            if (value)
            {
                AXIS2_FREE(env->allocator, value);
            }
        }

        axutil_hash_free(mime_body_part->header_map, env);
        mime_body_part->header_map = NULL;
    }

    if (mime_body_part)
    {
        AXIS2_FREE(env->allocator, mime_body_part);
    }

    return;
}

/* This method will add a mime_header to the hash */


AXIS2_EXTERN axis2_status_t AXIS2_CALL
axiom_mime_body_part_add_header(
    axiom_mime_body_part_t *mime_body_part,
    const axutil_env_t *env,
    const axis2_char_t *name,
    const axis2_char_t *value)
{
    AXIS2_PARAM_CHECK(env->error, name, AXIS2_FAILURE);

    if (!mime_body_part->header_map)
    {
        return AXIS2_FAILURE;
    }
    axutil_hash_set(mime_body_part->header_map, name,
                    AXIS2_HASH_KEY_STRING, value);
    return AXIS2_SUCCESS;
}

AXIS2_EXTERN axis2_status_t AXIS2_CALL
axiom_mime_body_part_set_data_handler(
    axiom_mime_body_part_t *mime_body_part,
    const axutil_env_t *env,
    axiom_data_handler_t *data_handler)
{
    mime_body_part->data_handler = data_handler;
    return AXIS2_SUCCESS;
}


/* This method will fill the array_list with binary and binary_beader information.
 * If the binary is in a file this will not load the file to the memory. Because
 * that will cause performance degradation when the file size is large. Instead 
 * this will add file information to the list so that when writing the message 
 * through transport_sender it can send the file by chunk.
 */

AXIS2_EXTERN axis2_status_t AXIS2_CALL
axiom_mime_body_part_write_to_list(
    axiom_mime_body_part_t *mime_body_part,
    const axutil_env_t *env,
    axutil_array_list_t *list)
{
    axutil_hash_index_t *hash_index = NULL;
    const void *key = NULL;
    void *value = NULL;
    axis2_char_t *header_str = NULL;
    axis2_char_t *temp_header_str = NULL;
    int header_str_size = 0;
    axis2_status_t status = AXIS2_FAILURE;
    axiom_mime_part_t *mime_header_part = NULL;


    /* We have the mime headers in the hash with thier keys 
     * So first concatenate them to a one string */ 
         
    for (hash_index = axutil_hash_first(mime_body_part->header_map, env);
         hash_index; hash_index = axutil_hash_next(env, hash_index))
    {
        axutil_hash_this(hash_index, &key, NULL, &value);
        if (key && value)
        {
            /* First conactenate to the already conacatenated stuff */
            
            temp_header_str =
                axutil_stracat(env, header_str, (axis2_char_t *) key);
            if (header_str)
            {
                AXIS2_FREE(env->allocator, header_str);
            }
            header_str = temp_header_str;
            temp_header_str = axutil_stracat(env, header_str, ": ");
            AXIS2_FREE(env->allocator, header_str);
            header_str = temp_header_str;
            
            /* Add the new stuff */
            temp_header_str =
                axutil_stracat(env, header_str, (axis2_char_t *) value);
            AXIS2_FREE(env->allocator, header_str);
            header_str = temp_header_str;
            
            /* Next header will be in a new line. So lets add it */
            
            temp_header_str = axutil_stracat(env, header_str, AXIS2_CRLF);
            AXIS2_FREE(env->allocator, header_str);
            header_str = temp_header_str;
        }
    }

    /* If there is a data handler that's mean there is an attachment. Attachment
     * will always start after an additional new line . So let's add it .*/
    
    if (mime_body_part->data_handler)
    {
        temp_header_str = axutil_stracat(env, header_str, AXIS2_CRLF);
        AXIS2_FREE(env->allocator, header_str);
        header_str = temp_header_str;
    }

    if (header_str)
    {
        header_str_size = axutil_strlen(header_str);
    }
    
    /* Now we have the complete mime_headers string for a particular mime part.
     * First wrap it as a mime_part_t .Then add it to the array list so
     * later through the transport this can be written to the wire. */
    
    mime_header_part = axiom_mime_part_create(env);
    
    if(mime_header_part)
    {
        mime_header_part->part = (axis2_byte_t *)header_str;
        mime_header_part->part_size = header_str_size;
        mime_header_part->type = AXIOM_MIME_PART_BUFFER;
    }    
    else
    {
        return AXIS2_FAILURE;
    }    
    
    axutil_array_list_add(list, env, mime_header_part);

    /* Then if the data_handler is there let's add the binary data, may be
     * buffer , may be file name and information. 
     */
     
    if (mime_body_part->data_handler)
    {
        status = axiom_data_handler_add_binary_data(mime_body_part->data_handler, env, list);
        if (status != AXIS2_SUCCESS)
        {
            return status;
        }
    }
    return AXIS2_SUCCESS;
}


<|start_filename|>xdocs/api/html/group__axis2__op__client.html<|end_filename|>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html><head><meta http-equiv="Content-Type" content="text/html;charset=UTF-8">
<title>Axis2/C: operation client</title>
<link href="doxygen.css" rel="stylesheet" type="text/css">
<link href="tabs.css" rel="stylesheet" type="text/css">
</head><body>
<!-- Generated by Doxygen 1.5.3 -->
<div class="tabs">
  <ul>
    <li><a href="index.html"><span>Main&nbsp;Page</span></a></li>
    <li><a href="modules.html"><span>Modules</span></a></li>
    <li><a href="annotated.html"><span>Classes</span></a></li>
    <li><a href="files.html"><span>Files</span></a></li>
    <li><a href="dirs.html"><span>Directories</span></a></li>
    <li><a href="pages.html"><span>Related&nbsp;Pages</span></a></li>
    <li><a href="examples.html"><span>Examples</span></a></li>
    <li>
      <form action="search.php" method="get">
        <table cellspacing="0" cellpadding="0" border="0">
          <tr>
            <td><label>&nbsp;<u>S</u>earch&nbsp;for&nbsp;</label></td>
            <td><input type="text" name="query" value="" size="20" accesskey="s"/></td>
          </tr>
        </table>
      </form>
    </li>
  </ul>
</div>
<h1>operation client<br>
<small>
[<a class="el" href="group__axis2__client__api.html">client API</a>]</small>
</h1><table border="0" cellpadding="0" cellspacing="0">
<tr><td></td></tr>
<tr><td colspan="2"><br><h2>Files</h2></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top">file &nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="axis2__op__client_8h.html">axis2_op_client.h</a></td></tr>

<tr><td colspan="2"><br><h2>Typedefs</h2></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top">typedef struct <br>
axis2_op_client&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__axis2__op__client.html#g6bc9ac9f149e65002cdfc265f8a7e505">axis2_op_client_t</a></td></tr>

<tr><td colspan="2"><br><h2>Functions</h2></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top">AXIS2_EXTERN <br>
axis2_status_t&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__axis2__op__client.html#g129b0ae65f1bcf960e563d5adc31d7fa">axis2_op_client_set_options</a> (<a class="el" href="group__axis2__op__client.html#g6bc9ac9f149e65002cdfc265f8a7e505">axis2_op_client_t</a> *op_client, const <a class="el" href="structaxutil__env.html">axutil_env_t</a> *env, const <a class="el" href="group__axis2__options.html#g26794bbdc46cdd3481c7e9079c0d6094">axis2_options_t</a> *options)</td></tr>

<tr><td class="memItemLeft" nowrap align="right" valign="top">AXIS2_EXTERN const <br>
<a class="el" href="group__axis2__options.html#g26794bbdc46cdd3481c7e9079c0d6094">axis2_options_t</a> *&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__axis2__op__client.html#g0f4b560555e0be42d8f15979b09bc5ed">axis2_op_client_get_options</a> (const <a class="el" href="group__axis2__op__client.html#g6bc9ac9f149e65002cdfc265f8a7e505">axis2_op_client_t</a> *op_client, const <a class="el" href="structaxutil__env.html">axutil_env_t</a> *env)</td></tr>

<tr><td class="memItemLeft" nowrap align="right" valign="top">AXIS2_EXTERN <br>
axis2_status_t&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__axis2__op__client.html#gc4c291b473d3aa4bcc19308018521347">axis2_op_client_add_msg_ctx</a> (<a class="el" href="group__axis2__op__client.html#g6bc9ac9f149e65002cdfc265f8a7e505">axis2_op_client_t</a> *op_client, const <a class="el" href="structaxutil__env.html">axutil_env_t</a> *env, <a class="el" href="group__axis2__msg__ctx.html#g160acae289ac39cb49fa625ffd88e410">axis2_msg_ctx_t</a> *msg_ctx)</td></tr>

<tr><td class="memItemLeft" nowrap align="right" valign="top">AXIS2_EXTERN <br>
axis2_status_t&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__axis2__op__client.html#g192dc8b5bb7c1159c7feede39434f1c3">axis2_op_client_add_out_msg_ctx</a> (<a class="el" href="group__axis2__op__client.html#g6bc9ac9f149e65002cdfc265f8a7e505">axis2_op_client_t</a> *op_client, const <a class="el" href="structaxutil__env.html">axutil_env_t</a> *env, <a class="el" href="group__axis2__msg__ctx.html#g160acae289ac39cb49fa625ffd88e410">axis2_msg_ctx_t</a> *msg_ctx)</td></tr>

<tr><td class="memItemLeft" nowrap align="right" valign="top">AXIS2_EXTERN const <br>
<a class="el" href="group__axis2__msg__ctx.html#g160acae289ac39cb49fa625ffd88e410">axis2_msg_ctx_t</a> *&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__axis2__op__client.html#g93425b6dc6cf293b02480959b276d1fd">axis2_op_client_get_msg_ctx</a> (const <a class="el" href="group__axis2__op__client.html#g6bc9ac9f149e65002cdfc265f8a7e505">axis2_op_client_t</a> *op_client, const <a class="el" href="structaxutil__env.html">axutil_env_t</a> *env, const axis2_wsdl_msg_labels_t message_label)</td></tr>

<tr><td class="memItemLeft" nowrap align="right" valign="top">AXIS2_EXTERN <br>
axis2_status_t&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__axis2__op__client.html#g59c3ab7690e5fb5b7f5ab27680f03633">axis2_op_client_set_callback</a> (<a class="el" href="group__axis2__op__client.html#g6bc9ac9f149e65002cdfc265f8a7e505">axis2_op_client_t</a> *op_client, const <a class="el" href="structaxutil__env.html">axutil_env_t</a> *env, <a class="el" href="group__axis2__callback.html#g0d855254802281de06d16c71627226b5">axis2_callback_t</a> *callback)</td></tr>

<tr><td class="memItemLeft" nowrap align="right" valign="top">AXIS2_EXTERN <br>
<a class="el" href="group__axis2__callback.html#g0d855254802281de06d16c71627226b5">axis2_callback_t</a> *&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__axis2__op__client.html#g2d750a878fe19e11a1d130467fa76370">axis2_op_client_get_callback</a> (<a class="el" href="group__axis2__op__client.html#g6bc9ac9f149e65002cdfc265f8a7e505">axis2_op_client_t</a> *op_client, const <a class="el" href="structaxutil__env.html">axutil_env_t</a> *env)</td></tr>

<tr><td class="memItemLeft" nowrap align="right" valign="top">AXIS2_EXTERN <br>
axis2_status_t&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__axis2__op__client.html#g54d84d352d333aacf2f7bb79b8d53a9a">axis2_op_client_execute</a> (<a class="el" href="group__axis2__op__client.html#g6bc9ac9f149e65002cdfc265f8a7e505">axis2_op_client_t</a> *op_client, const <a class="el" href="structaxutil__env.html">axutil_env_t</a> *env, const axis2_bool_t block)</td></tr>

<tr><td class="memItemLeft" nowrap align="right" valign="top">AXIS2_EXTERN <br>
axis2_status_t&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__axis2__op__client.html#g8d87312f023b335ea8a2bf723161fb84">axis2_op_client_reset</a> (<a class="el" href="group__axis2__op__client.html#g6bc9ac9f149e65002cdfc265f8a7e505">axis2_op_client_t</a> *op_client, const <a class="el" href="structaxutil__env.html">axutil_env_t</a> *env)</td></tr>

<tr><td class="memItemLeft" nowrap align="right" valign="top">AXIS2_EXTERN <br>
axis2_status_t&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__axis2__op__client.html#g6b4c57a19d49087b557fe094f7e231c8">axis2_op_client_complete</a> (<a class="el" href="group__axis2__op__client.html#g6bc9ac9f149e65002cdfc265f8a7e505">axis2_op_client_t</a> *op_client, const <a class="el" href="structaxutil__env.html">axutil_env_t</a> *env, <a class="el" href="group__axis2__msg__ctx.html#g160acae289ac39cb49fa625ffd88e410">axis2_msg_ctx_t</a> *msg_ctx)</td></tr>

<tr><td class="memItemLeft" nowrap align="right" valign="top">AXIS2_EXTERN <br>
<a class="el" href="group__axis2__op__ctx.html#ga1a3bbd22f2313e8da5bd031ea8190c9">axis2_op_ctx_t</a> *&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__axis2__op__client.html#g00eca9bd04926e192466a4d330f5a9a7">axis2_op_client_get_operation_context</a> (const <a class="el" href="group__axis2__op__client.html#g6bc9ac9f149e65002cdfc265f8a7e505">axis2_op_client_t</a> *op_client, const <a class="el" href="structaxutil__env.html">axutil_env_t</a> *env)</td></tr>

<tr><td class="memItemLeft" nowrap align="right" valign="top">AXIS2_EXTERN <br>
axis2_status_t&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__axis2__op__client.html#gd411a2de66868e708b7e5c02683291a9">axis2_op_client_set_callback_recv</a> (<a class="el" href="group__axis2__op__client.html#g6bc9ac9f149e65002cdfc265f8a7e505">axis2_op_client_t</a> *op_client, const <a class="el" href="structaxutil__env.html">axutil_env_t</a> *env, struct axis2_callback_recv *callback_recv)</td></tr>

<tr><td class="memItemLeft" nowrap align="right" valign="top">AXIS2_EXTERN void&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__axis2__op__client.html#g3f2aaeed111dbfc0bb5074d6384de49a">axis2_op_client_free</a> (<a class="el" href="group__axis2__op__client.html#g6bc9ac9f149e65002cdfc265f8a7e505">axis2_op_client_t</a> *op_client, const <a class="el" href="structaxutil__env.html">axutil_env_t</a> *env)</td></tr>

<tr><td class="memItemLeft" nowrap align="right" valign="top">AXIS2_EXTERN <br>
<a class="el" href="group__axis2__op__client.html#g6bc9ac9f149e65002cdfc265f8a7e505">axis2_op_client_t</a> *&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__axis2__op__client.html#g3c0a62606205ce5678c3492dc7e52bf2">axis2_op_client_create</a> (const <a class="el" href="structaxutil__env.html">axutil_env_t</a> *env, <a class="el" href="group__axis2__op.html#g13ff0e97eb92c0681768b60a93bf1bc9">axis2_op_t</a> *op, <a class="el" href="group__axis2__svc__ctx.html#g2a3845db3eb9e9a47b992f6c8882e482">axis2_svc_ctx_t</a> *svc_ctx, <a class="el" href="group__axis2__options.html#g26794bbdc46cdd3481c7e9079c0d6094">axis2_options_t</a> *options)</td></tr>

<tr><td class="memItemLeft" nowrap align="right" valign="top">AXIS2_EXTERN <br>
axutil_string_t *&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__axis2__op__client.html#g14365a94c8700089b3f3ccf1df9620a0">axis2_op_client_get_soap_action</a> (const <a class="el" href="group__axis2__op__client.html#g6bc9ac9f149e65002cdfc265f8a7e505">axis2_op_client_t</a> *op_client, const <a class="el" href="structaxutil__env.html">axutil_env_t</a> *env)</td></tr>

<tr><td class="memItemLeft" nowrap align="right" valign="top">AXIS2_EXTERN <br>
axis2_status_t&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__axis2__op__client.html#gec56200ff2784f4adfff5679562f1ba5">axis2_op_client_prepare_invocation</a> (<a class="el" href="group__axis2__op__client.html#g6bc9ac9f149e65002cdfc265f8a7e505">axis2_op_client_t</a> *op_client, const <a class="el" href="structaxutil__env.html">axutil_env_t</a> *env, <a class="el" href="group__axis2__op.html#g13ff0e97eb92c0681768b60a93bf1bc9">axis2_op_t</a> *op, <a class="el" href="group__axis2__msg__ctx.html#g160acae289ac39cb49fa625ffd88e410">axis2_msg_ctx_t</a> *msg_ctx)</td></tr>

<tr><td class="memItemLeft" nowrap align="right" valign="top">AXIS2_EXTERN <br>
<a class="el" href="group__axis2__msg__ctx.html#g160acae289ac39cb49fa625ffd88e410">axis2_msg_ctx_t</a> *&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__axis2__op__client.html#g1fab78418f77376796c5d80703f28870">axis2_op_client_prepare_soap_envelope</a> (<a class="el" href="group__axis2__op__client.html#g6bc9ac9f149e65002cdfc265f8a7e505">axis2_op_client_t</a> *op_client, const <a class="el" href="structaxutil__env.html">axutil_env_t</a> *env, axiom_node_t *to_send)</td></tr>

<tr><td class="memItemLeft" nowrap align="right" valign="top">AXIS2_EXTERN <br>
<a class="el" href="group__axis2__transport__out__desc.html#g30caf90fd8fb7b0c89700bcb12e250df">axis2_transport_out_desc_t</a> *&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__axis2__op__client.html#gf628443031365d7e51bb1a08ce338d32">axis2_op_client_infer_transport</a> (<a class="el" href="group__axis2__op__client.html#g6bc9ac9f149e65002cdfc265f8a7e505">axis2_op_client_t</a> *op_client, const <a class="el" href="structaxutil__env.html">axutil_env_t</a> *env, <a class="el" href="group__axis2__endpoint__ref.html#gf6e89c83a6b553e7e3f11e787b3fecd4">axis2_endpoint_ref_t</a> *epr)</td></tr>

<tr><td class="memItemLeft" nowrap align="right" valign="top">AXIS2_EXTERN <br>
axiom_soap_envelope_t *&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__axis2__op__client.html#g3dee8b2af09a8a08f39155bce5304179">axis2_op_client_create_default_soap_envelope</a> (<a class="el" href="group__axis2__op__client.html#g6bc9ac9f149e65002cdfc265f8a7e505">axis2_op_client_t</a> *op_client, const <a class="el" href="structaxutil__env.html">axutil_env_t</a> *env)</td></tr>

<tr><td class="memItemLeft" nowrap align="right" valign="top">AXIS2_EXTERN <br>
axis2_status_t&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__axis2__op__client.html#g29f69ee655f82cefb0f12dd2a964e844">axis2_op_client_engage_module</a> (<a class="el" href="group__axis2__op__client.html#g6bc9ac9f149e65002cdfc265f8a7e505">axis2_op_client_t</a> *op_client, const <a class="el" href="structaxutil__env.html">axutil_env_t</a> *env, const axutil_qname_t *qname)</td></tr>

<tr><td class="memItemLeft" nowrap align="right" valign="top">AXIS2_EXTERN <br>
axis2_status_t&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__axis2__op__client.html#g29eb95e1d34ec16811f0e002e02e2c34">axis2_op_client_set_soap_version_uri</a> (<a class="el" href="group__axis2__op__client.html#g6bc9ac9f149e65002cdfc265f8a7e505">axis2_op_client_t</a> *op_client, const <a class="el" href="structaxutil__env.html">axutil_env_t</a> *env, const axis2_char_t *soap_version_uri)</td></tr>

<tr><td class="memItemLeft" nowrap align="right" valign="top">AXIS2_EXTERN <br>
axis2_status_t&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__axis2__op__client.html#ge0632b67dbea1fc8f7ae1f7708e1b98d">axis2_op_client_set_soap_action</a> (<a class="el" href="group__axis2__op__client.html#g6bc9ac9f149e65002cdfc265f8a7e505">axis2_op_client_t</a> *op_client, const <a class="el" href="structaxutil__env.html">axutil_env_t</a> *env, axutil_string_t *soap_action)</td></tr>

<tr><td class="memItemLeft" nowrap align="right" valign="top">AXIS2_EXTERN <br>
axis2_status_t&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__axis2__op__client.html#g562d94703fd1723020cf7cacafc73198">axis2_op_client_set_wsa_action</a> (<a class="el" href="group__axis2__op__client.html#g6bc9ac9f149e65002cdfc265f8a7e505">axis2_op_client_t</a> *op_client, const <a class="el" href="structaxutil__env.html">axutil_env_t</a> *env, const axis2_char_t *wsa_action)</td></tr>

<tr><td class="memItemLeft" nowrap align="right" valign="top">AXIS2_EXTERN <br>
<a class="el" href="group__axis2__svc__ctx.html#g2a3845db3eb9e9a47b992f6c8882e482">axis2_svc_ctx_t</a> *&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__axis2__op__client.html#g7d8f7b0e623e96ad796d3d93f3d443fc">axis2_op_client_get_svc_ctx</a> (const <a class="el" href="group__axis2__op__client.html#g6bc9ac9f149e65002cdfc265f8a7e505">axis2_op_client_t</a> *op_client, const <a class="el" href="structaxutil__env.html">axutil_env_t</a> *env)</td></tr>

<tr><td class="memItemLeft" nowrap align="right" valign="top">AXIS2_EXTERN void&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__axis2__op__client.html#geaaa726f66d8836c6bc46c946c960b9e">axis2_op_client_set_reuse</a> (<a class="el" href="group__axis2__op__client.html#g6bc9ac9f149e65002cdfc265f8a7e505">axis2_op_client_t</a> *op_client, const <a class="el" href="structaxutil__env.html">axutil_env_t</a> *env, axis2_bool_t reuse)</td></tr>

<tr><td class="memItemLeft" nowrap align="right" valign="top">AXIS2_EXTERN <br>
<a class="el" href="group__axis2__msg__ctx.html#g160acae289ac39cb49fa625ffd88e410">axis2_msg_ctx_t</a> *&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__axis2__op__client.html#g2325f68d3df4f2b324354837f5f7b20c">axis2_op_client_two_way_send</a> (const <a class="el" href="structaxutil__env.html">axutil_env_t</a> *env, <a class="el" href="group__axis2__msg__ctx.html#g160acae289ac39cb49fa625ffd88e410">axis2_msg_ctx_t</a> *msg_ctx)</td></tr>

<tr><td class="memItemLeft" nowrap align="right" valign="top">AXIS2_EXTERN <br>
<a class="el" href="group__axis2__msg__ctx.html#g160acae289ac39cb49fa625ffd88e410">axis2_msg_ctx_t</a> *&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__axis2__op__client.html#g9e6d223494c0b13bb9070a87fb2b53a6">axis2_op_client_receive</a> (const <a class="el" href="structaxutil__env.html">axutil_env_t</a> *env, <a class="el" href="group__axis2__msg__ctx.html#g160acae289ac39cb49fa625ffd88e410">axis2_msg_ctx_t</a> *msg_ctx)</td></tr>

</table>
<hr><a name="_details"></a><h2>Detailed Description</h2>
The operation client is meant to be used by advanced users to consume services. Operation client understands a specific Message Exchange Pattern (op) and hence the behavior is defined by the op. To consume services with an operation client, an operation (of type axis2_op_t) and a service context (of type axis2_svc_ctx_t) has to be provided along with options to be used. The execute() function can be used to send the request and get the response. The service client implementation uses the operation client and provides an easy to use API for consuming services. Hence the service client implementation is a very good example of how to use the operation client API. <dl class="see" compact><dt><b>See also:</b></dt><dd><a class="el" href="group__axis2__svc__client.html">service client</a> </dd></dl>
<hr><h2>Typedef Documentation</h2>
<a class="anchor" name="g6bc9ac9f149e65002cdfc265f8a7e505"></a><!-- doxytag: member="axis2_op_client.h::axis2_op_client_t" ref="g6bc9ac9f149e65002cdfc265f8a7e505" args="" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">typedef struct axis2_op_client <a class="el" href="group__axis2__op__client.html#g6bc9ac9f149e65002cdfc265f8a7e505">axis2_op_client_t</a>          </td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
Type name for struct axis2_op_client 
</div>
</div><p>
<hr><h2>Function Documentation</h2>
<a class="anchor" name="gc4c291b473d3aa4bcc19308018521347"></a><!-- doxytag: member="axis2_op_client.h::axis2_op_client_add_msg_ctx" ref="gc4c291b473d3aa4bcc19308018521347" args="(axis2_op_client_t *op_client, const axutil_env_t *env, axis2_msg_ctx_t *msg_ctx)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">AXIS2_EXTERN axis2_status_t axis2_op_client_add_msg_ctx           </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="group__axis2__op__client.html#g6bc9ac9f149e65002cdfc265f8a7e505">axis2_op_client_t</a> *&nbsp;</td>
          <td class="paramname"> <em>op_client</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const <a class="el" href="structaxutil__env.html">axutil_env_t</a> *&nbsp;</td>
          <td class="paramname"> <em>env</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype"><a class="el" href="group__axis2__msg__ctx.html#g160acae289ac39cb49fa625ffd88e410">axis2_msg_ctx_t</a> *&nbsp;</td>
          <td class="paramname"> <em>msg_ctx</em></td><td>&nbsp;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td><td width="100%"></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
Adds a message context to the client for processing. <dl compact><dt><b>Parameters:</b></dt><dd>
  <table border="0" cellspacing="2" cellpadding="0">
    <tr><td valign="top"></td><td valign="top"><em>op_client</em>&nbsp;</td><td>pointer to operation client struct </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>env</em>&nbsp;</td><td>pointer to environment struct </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>msg_ctx</em>&nbsp;</td><td>message context to be added. operation client takes over the ownership of the message context struct. </td></tr>
  </table>
</dl>
<dl class="return" compact><dt><b>Returns:</b></dt><dd>AXIS2_SUCCESS on success, else AXIS2_FAILURE </dd></dl>

</div>
</div><p>
<a class="anchor" name="g192dc8b5bb7c1159c7feede39434f1c3"></a><!-- doxytag: member="axis2_op_client.h::axis2_op_client_add_out_msg_ctx" ref="g192dc8b5bb7c1159c7feede39434f1c3" args="(axis2_op_client_t *op_client, const axutil_env_t *env, axis2_msg_ctx_t *msg_ctx)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">AXIS2_EXTERN axis2_status_t axis2_op_client_add_out_msg_ctx           </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="group__axis2__op__client.html#g6bc9ac9f149e65002cdfc265f8a7e505">axis2_op_client_t</a> *&nbsp;</td>
          <td class="paramname"> <em>op_client</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const <a class="el" href="structaxutil__env.html">axutil_env_t</a> *&nbsp;</td>
          <td class="paramname"> <em>env</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype"><a class="el" href="group__axis2__msg__ctx.html#g160acae289ac39cb49fa625ffd88e410">axis2_msg_ctx_t</a> *&nbsp;</td>
          <td class="paramname"> <em>msg_ctx</em></td><td>&nbsp;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td><td width="100%"></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
Adds out message context to the client for processing. <dl compact><dt><b>Parameters:</b></dt><dd>
  <table border="0" cellspacing="2" cellpadding="0">
    <tr><td valign="top"></td><td valign="top"><em>op_client</em>&nbsp;</td><td>pointer to operation client struct </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>env</em>&nbsp;</td><td>pointer to environment struct </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>msg_ctx</em>&nbsp;</td><td>message context to be added. operation client takes over the ownership of the message context struct. </td></tr>
  </table>
</dl>
<dl class="return" compact><dt><b>Returns:</b></dt><dd>AXIS2_SUCCESS on success, else AXIS2_FAILURE </dd></dl>

</div>
</div><p>
<a class="anchor" name="g6b4c57a19d49087b557fe094f7e231c8"></a><!-- doxytag: member="axis2_op_client.h::axis2_op_client_complete" ref="g6b4c57a19d49087b557fe094f7e231c8" args="(axis2_op_client_t *op_client, const axutil_env_t *env, axis2_msg_ctx_t *msg_ctx)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">AXIS2_EXTERN axis2_status_t axis2_op_client_complete           </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="group__axis2__op__client.html#g6bc9ac9f149e65002cdfc265f8a7e505">axis2_op_client_t</a> *&nbsp;</td>
          <td class="paramname"> <em>op_client</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const <a class="el" href="structaxutil__env.html">axutil_env_t</a> *&nbsp;</td>
          <td class="paramname"> <em>env</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype"><a class="el" href="group__axis2__msg__ctx.html#g160acae289ac39cb49fa625ffd88e410">axis2_msg_ctx_t</a> *&nbsp;</td>
          <td class="paramname"> <em>msg_ctx</em></td><td>&nbsp;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td><td width="100%"></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
Completes the execution by closing the transports if necessary. This method is useful when client uses two transports for sending and receiving. <dl compact><dt><b>Parameters:</b></dt><dd>
  <table border="0" cellspacing="2" cellpadding="0">
    <tr><td valign="top"></td><td valign="top"><em>op_client</em>&nbsp;</td><td>pointer to operation client struct </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>env</em>&nbsp;</td><td>pointer to environment struct </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>msg_ctx</em>&nbsp;</td><td>message context which contains the transport information </td></tr>
  </table>
</dl>
<dl class="return" compact><dt><b>Returns:</b></dt><dd>AXIS2_SUCCESS on success, else AXIS2_FAILURE </dd></dl>

</div>
</div><p>
<a class="anchor" name="g3c0a62606205ce5678c3492dc7e52bf2"></a><!-- doxytag: member="axis2_op_client.h::axis2_op_client_create" ref="g3c0a62606205ce5678c3492dc7e52bf2" args="(const axutil_env_t *env, axis2_op_t *op, axis2_svc_ctx_t *svc_ctx, axis2_options_t *options)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">AXIS2_EXTERN <a class="el" href="group__axis2__op__client.html#g6bc9ac9f149e65002cdfc265f8a7e505">axis2_op_client_t</a>* axis2_op_client_create           </td>
          <td>(</td>
          <td class="paramtype">const <a class="el" href="structaxutil__env.html">axutil_env_t</a> *&nbsp;</td>
          <td class="paramname"> <em>env</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype"><a class="el" href="group__axis2__op.html#g13ff0e97eb92c0681768b60a93bf1bc9">axis2_op_t</a> *&nbsp;</td>
          <td class="paramname"> <em>op</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype"><a class="el" href="group__axis2__svc__ctx.html#g2a3845db3eb9e9a47b992f6c8882e482">axis2_svc_ctx_t</a> *&nbsp;</td>
          <td class="paramname"> <em>svc_ctx</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype"><a class="el" href="group__axis2__options.html#g26794bbdc46cdd3481c7e9079c0d6094">axis2_options_t</a> *&nbsp;</td>
          <td class="paramname"> <em>options</em></td><td>&nbsp;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td><td width="100%"></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
Creates an operation client struct for the specified operation, service context and given options. <dl compact><dt><b>Parameters:</b></dt><dd>
  <table border="0" cellspacing="2" cellpadding="0">
    <tr><td valign="top"></td><td valign="top"><em>env</em>&nbsp;</td><td>pointer to environment struct </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>op</em>&nbsp;</td><td>pointer to operation struct corresponding to the operation to to be executed. Newly created client assumes ownership of the operation. </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>svc_ctx</em>&nbsp;</td><td>pointer to service context struct representing the service to be consumed. Newly created client assumes ownership of the service context. </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>options</em>&nbsp;</td><td>options to be used by operation client. Newly created client assumes ownership of the options context. </td></tr>
  </table>
</dl>
<dl class="return" compact><dt><b>Returns:</b></dt><dd>a pointer to newly created operation client struct, or NULL on error with error code set in environment's error </dd></dl>

</div>
</div><p>
<a class="anchor" name="g3dee8b2af09a8a08f39155bce5304179"></a><!-- doxytag: member="axis2_op_client.h::axis2_op_client_create_default_soap_envelope" ref="g3dee8b2af09a8a08f39155bce5304179" args="(axis2_op_client_t *op_client, const axutil_env_t *env)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">AXIS2_EXTERN axiom_soap_envelope_t* axis2_op_client_create_default_soap_envelope           </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="group__axis2__op__client.html#g6bc9ac9f149e65002cdfc265f8a7e505">axis2_op_client_t</a> *&nbsp;</td>
          <td class="paramname"> <em>op_client</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const <a class="el" href="structaxutil__env.html">axutil_env_t</a> *&nbsp;</td>
          <td class="paramname"> <em>env</em></td><td>&nbsp;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td><td width="100%"></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
Creates default SOAP envelope. <dl compact><dt><b>Parameters:</b></dt><dd>
  <table border="0" cellspacing="2" cellpadding="0">
    <tr><td valign="top"></td><td valign="top"><em>op_client</em>&nbsp;</td><td>pointer to op client struct </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>env</em>&nbsp;</td><td>pointer to environment struct </td></tr>
  </table>
</dl>
<dl class="return" compact><dt><b>Returns:</b></dt><dd>pointer to default SOAP envelope created </dd></dl>

</div>
</div><p>
<a class="anchor" name="g29f69ee655f82cefb0f12dd2a964e844"></a><!-- doxytag: member="axis2_op_client.h::axis2_op_client_engage_module" ref="g29f69ee655f82cefb0f12dd2a964e844" args="(axis2_op_client_t *op_client, const axutil_env_t *env, const axutil_qname_t *qname)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">AXIS2_EXTERN axis2_status_t axis2_op_client_engage_module           </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="group__axis2__op__client.html#g6bc9ac9f149e65002cdfc265f8a7e505">axis2_op_client_t</a> *&nbsp;</td>
          <td class="paramname"> <em>op_client</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const <a class="el" href="structaxutil__env.html">axutil_env_t</a> *&nbsp;</td>
          <td class="paramname"> <em>env</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const axutil_qname_t *&nbsp;</td>
          <td class="paramname"> <em>qname</em></td><td>&nbsp;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td><td width="100%"></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
Engage named module. The named module must have been configured in the Axis2 configuration. For a module to be detected by the deployment engine, the modules has to be placed in the AXIS2_REPOSITORY/modules directory. <dl compact><dt><b>Parameters:</b></dt><dd>
  <table border="0" cellspacing="2" cellpadding="0">
    <tr><td valign="top"></td><td valign="top"><em>op_client</em>&nbsp;</td><td>pointer to op client struct </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>env</em>&nbsp;</td><td>pointer to environment struct </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>qname</em>&nbsp;</td><td>QName representing the module name </td></tr>
  </table>
</dl>
<dl class="return" compact><dt><b>Returns:</b></dt><dd>AXIS2_SUCCESS on success, else AXIS2_FAILURE </dd></dl>

</div>
</div><p>
<a class="anchor" name="g54d84d352d333aacf2f7bb79b8d53a9a"></a><!-- doxytag: member="axis2_op_client.h::axis2_op_client_execute" ref="g54d84d352d333aacf2f7bb79b8d53a9a" args="(axis2_op_client_t *op_client, const axutil_env_t *env, const axis2_bool_t block)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">AXIS2_EXTERN axis2_status_t axis2_op_client_execute           </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="group__axis2__op__client.html#g6bc9ac9f149e65002cdfc265f8a7e505">axis2_op_client_t</a> *&nbsp;</td>
          <td class="paramname"> <em>op_client</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const <a class="el" href="structaxutil__env.html">axutil_env_t</a> *&nbsp;</td>
          <td class="paramname"> <em>env</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const axis2_bool_t&nbsp;</td>
          <td class="paramname"> <em>block</em></td><td>&nbsp;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td><td width="100%"></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
Execute the op. What this does depends on the specific operation client. The basic idea is to have the operation client execute and do something with the messages that have been added to it so far. For example, if its an Out-In op, and if the Out message has been set, then executing the client asks it to send the out message and get the in message <dl compact><dt><b>Parameters:</b></dt><dd>
  <table border="0" cellspacing="2" cellpadding="0">
    <tr><td valign="top"></td><td valign="top"><em>op_client</em>&nbsp;</td><td>pointer to operation client </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>env</em>&nbsp;</td><td>pointer to environment struct </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>block</em>&nbsp;</td><td>indicates whether execution should block or return ASAP </td></tr>
  </table>
</dl>
<dl class="return" compact><dt><b>Returns:</b></dt><dd>AXIS2_SUCCESS on success, else AXIS2_FAILURE </dd></dl>

</div>
</div><p>
<a class="anchor" name="g3f2aaeed111dbfc0bb5074d6384de49a"></a><!-- doxytag: member="axis2_op_client.h::axis2_op_client_free" ref="g3f2aaeed111dbfc0bb5074d6384de49a" args="(axis2_op_client_t *op_client, const axutil_env_t *env)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">AXIS2_EXTERN void axis2_op_client_free           </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="group__axis2__op__client.html#g6bc9ac9f149e65002cdfc265f8a7e505">axis2_op_client_t</a> *&nbsp;</td>
          <td class="paramname"> <em>op_client</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const <a class="el" href="structaxutil__env.html">axutil_env_t</a> *&nbsp;</td>
          <td class="paramname"> <em>env</em></td><td>&nbsp;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td><td width="100%"></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
Frees the operation client <dl compact><dt><b>Parameters:</b></dt><dd>
  <table border="0" cellspacing="2" cellpadding="0">
    <tr><td valign="top"></td><td valign="top"><em>op_client</em>&nbsp;</td><td>pointer to operation client struct </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>env</em>&nbsp;</td><td>pointer to environment struct </td></tr>
  </table>
</dl>
<dl class="return" compact><dt><b>Returns:</b></dt><dd>void </dd></dl>

</div>
</div><p>
<a class="anchor" name="g2d750a878fe19e11a1d130467fa76370"></a><!-- doxytag: member="axis2_op_client.h::axis2_op_client_get_callback" ref="g2d750a878fe19e11a1d130467fa76370" args="(axis2_op_client_t *op_client, const axutil_env_t *env)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">AXIS2_EXTERN <a class="el" href="group__axis2__callback.html#g0d855254802281de06d16c71627226b5">axis2_callback_t</a>* axis2_op_client_get_callback           </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="group__axis2__op__client.html#g6bc9ac9f149e65002cdfc265f8a7e505">axis2_op_client_t</a> *&nbsp;</td>
          <td class="paramname"> <em>op_client</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const <a class="el" href="structaxutil__env.html">axutil_env_t</a> *&nbsp;</td>
          <td class="paramname"> <em>env</em></td><td>&nbsp;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td><td width="100%"></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
Gets the callback. <dl compact><dt><b>Parameters:</b></dt><dd>
  <table border="0" cellspacing="2" cellpadding="0">
    <tr><td valign="top"></td><td valign="top"><em>op_client</em>&nbsp;</td><td>pointer to operation client struct </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>env</em>&nbsp;</td><td>pointer to environment struct </td></tr>
  </table>
</dl>
<dl class="return" compact><dt><b>Returns:</b></dt><dd>callback </dd></dl>

</div>
</div><p>
<a class="anchor" name="g93425b6dc6cf293b02480959b276d1fd"></a><!-- doxytag: member="axis2_op_client.h::axis2_op_client_get_msg_ctx" ref="g93425b6dc6cf293b02480959b276d1fd" args="(const axis2_op_client_t *op_client, const axutil_env_t *env, const axis2_wsdl_msg_labels_t message_label)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">AXIS2_EXTERN const <a class="el" href="group__axis2__msg__ctx.html#g160acae289ac39cb49fa625ffd88e410">axis2_msg_ctx_t</a>* axis2_op_client_get_msg_ctx           </td>
          <td>(</td>
          <td class="paramtype">const <a class="el" href="group__axis2__op__client.html#g6bc9ac9f149e65002cdfc265f8a7e505">axis2_op_client_t</a> *&nbsp;</td>
          <td class="paramname"> <em>op_client</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const <a class="el" href="structaxutil__env.html">axutil_env_t</a> *&nbsp;</td>
          <td class="paramname"> <em>env</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const axis2_wsdl_msg_labels_t&nbsp;</td>
          <td class="paramname"> <em>message_label</em></td><td>&nbsp;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td><td width="100%"></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
Gets a message corresponding to the given label. <dl compact><dt><b>Parameters:</b></dt><dd>
  <table border="0" cellspacing="2" cellpadding="0">
    <tr><td valign="top"></td><td valign="top"><em>op_client</em>&nbsp;</td><td>pointer to operation client struct </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>env</em>&nbsp;</td><td>pointer to environment struct </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>message_label</em>&nbsp;</td><td>the message label of the desired message context </td></tr>
  </table>
</dl>
<dl class="return" compact><dt><b>Returns:</b></dt><dd>the desired message context or NULL if its not available. Returns a reference, not a cloned copy. </dd></dl>

</div>
</div><p>
<a class="anchor" name="g00eca9bd04926e192466a4d330f5a9a7"></a><!-- doxytag: member="axis2_op_client.h::axis2_op_client_get_operation_context" ref="g00eca9bd04926e192466a4d330f5a9a7" args="(const axis2_op_client_t *op_client, const axutil_env_t *env)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">AXIS2_EXTERN <a class="el" href="group__axis2__op__ctx.html#ga1a3bbd22f2313e8da5bd031ea8190c9">axis2_op_ctx_t</a>* axis2_op_client_get_operation_context           </td>
          <td>(</td>
          <td class="paramtype">const <a class="el" href="group__axis2__op__client.html#g6bc9ac9f149e65002cdfc265f8a7e505">axis2_op_client_t</a> *&nbsp;</td>
          <td class="paramname"> <em>op_client</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const <a class="el" href="structaxutil__env.html">axutil_env_t</a> *&nbsp;</td>
          <td class="paramname"> <em>env</em></td><td>&nbsp;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td><td width="100%"></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
Gets the operation context of the operation client. <dl compact><dt><b>Parameters:</b></dt><dd>
  <table border="0" cellspacing="2" cellpadding="0">
    <tr><td valign="top"></td><td valign="top"><em>op_client</em>&nbsp;</td><td>pointer to operation client struct </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>env</em>&nbsp;</td><td>pointer to environment struct </td></tr>
  </table>
</dl>
<dl class="return" compact><dt><b>Returns:</b></dt><dd>operation context related to operation client </dd></dl>

</div>
</div><p>
<a class="anchor" name="g0f4b560555e0be42d8f15979b09bc5ed"></a><!-- doxytag: member="axis2_op_client.h::axis2_op_client_get_options" ref="g0f4b560555e0be42d8f15979b09bc5ed" args="(const axis2_op_client_t *op_client, const axutil_env_t *env)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">AXIS2_EXTERN const <a class="el" href="group__axis2__options.html#g26794bbdc46cdd3481c7e9079c0d6094">axis2_options_t</a>* axis2_op_client_get_options           </td>
          <td>(</td>
          <td class="paramtype">const <a class="el" href="group__axis2__op__client.html#g6bc9ac9f149e65002cdfc265f8a7e505">axis2_op_client_t</a> *&nbsp;</td>
          <td class="paramname"> <em>op_client</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const <a class="el" href="structaxutil__env.html">axutil_env_t</a> *&nbsp;</td>
          <td class="paramname"> <em>env</em></td><td>&nbsp;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td><td width="100%"></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
Gets options used by operation client. <dl compact><dt><b>Parameters:</b></dt><dd>
  <table border="0" cellspacing="2" cellpadding="0">
    <tr><td valign="top"></td><td valign="top"><em>op_client</em>&nbsp;</td><td>pointer to operation client struct </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>env</em>&nbsp;</td><td>pointer to environment struct </td></tr>
  </table>
</dl>
<dl class="return" compact><dt><b>Returns:</b></dt><dd>a pointer to the options struct if options set, else NULL. Returns a reference, not a cloned copy. </dd></dl>

</div>
</div><p>
<a class="anchor" name="g14365a94c8700089b3f3ccf1df9620a0"></a><!-- doxytag: member="axis2_op_client.h::axis2_op_client_get_soap_action" ref="g14365a94c8700089b3f3ccf1df9620a0" args="(const axis2_op_client_t *op_client, const axutil_env_t *env)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">AXIS2_EXTERN axutil_string_t* axis2_op_client_get_soap_action           </td>
          <td>(</td>
          <td class="paramtype">const <a class="el" href="group__axis2__op__client.html#g6bc9ac9f149e65002cdfc265f8a7e505">axis2_op_client_t</a> *&nbsp;</td>
          <td class="paramname"> <em>op_client</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const <a class="el" href="structaxutil__env.html">axutil_env_t</a> *&nbsp;</td>
          <td class="paramname"> <em>env</em></td><td>&nbsp;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td><td width="100%"></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
Gets SOAP action. <dl compact><dt><b>Parameters:</b></dt><dd>
  <table border="0" cellspacing="2" cellpadding="0">
    <tr><td valign="top"></td><td valign="top"><em>op_client</em>&nbsp;</td><td>pointer to op client struct </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>env</em>&nbsp;</td><td>pointer to environment struct </td></tr>
  </table>
</dl>
<dl class="return" compact><dt><b>Returns:</b></dt><dd>a pointer to SOAP action string </dd></dl>

</div>
</div><p>
<a class="anchor" name="g7d8f7b0e623e96ad796d3d93f3d443fc"></a><!-- doxytag: member="axis2_op_client.h::axis2_op_client_get_svc_ctx" ref="g7d8f7b0e623e96ad796d3d93f3d443fc" args="(const axis2_op_client_t *op_client, const axutil_env_t *env)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">AXIS2_EXTERN <a class="el" href="group__axis2__svc__ctx.html#g2a3845db3eb9e9a47b992f6c8882e482">axis2_svc_ctx_t</a>* axis2_op_client_get_svc_ctx           </td>
          <td>(</td>
          <td class="paramtype">const <a class="el" href="group__axis2__op__client.html#g6bc9ac9f149e65002cdfc265f8a7e505">axis2_op_client_t</a> *&nbsp;</td>
          <td class="paramname"> <em>op_client</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const <a class="el" href="structaxutil__env.html">axutil_env_t</a> *&nbsp;</td>
          <td class="paramname"> <em>env</em></td><td>&nbsp;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td><td width="100%"></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
Gets service context. <dl compact><dt><b>Parameters:</b></dt><dd>
  <table border="0" cellspacing="2" cellpadding="0">
    <tr><td valign="top"></td><td valign="top"><em>op_client</em>&nbsp;</td><td>pointer to op client struct </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>env</em>&nbsp;</td><td>pointer to environment struct </td></tr>
  </table>
</dl>
<dl class="return" compact><dt><b>Returns:</b></dt><dd>pointer to service context struct if set, else NULL </dd></dl>

</div>
</div><p>
<a class="anchor" name="gf628443031365d7e51bb1a08ce338d32"></a><!-- doxytag: member="axis2_op_client.h::axis2_op_client_infer_transport" ref="gf628443031365d7e51bb1a08ce338d32" args="(axis2_op_client_t *op_client, const axutil_env_t *env, axis2_endpoint_ref_t *epr)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">AXIS2_EXTERN <a class="el" href="group__axis2__transport__out__desc.html#g30caf90fd8fb7b0c89700bcb12e250df">axis2_transport_out_desc_t</a>* axis2_op_client_infer_transport           </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="group__axis2__op__client.html#g6bc9ac9f149e65002cdfc265f8a7e505">axis2_op_client_t</a> *&nbsp;</td>
          <td class="paramname"> <em>op_client</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const <a class="el" href="structaxutil__env.html">axutil_env_t</a> *&nbsp;</td>
          <td class="paramname"> <em>env</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype"><a class="el" href="group__axis2__endpoint__ref.html#gf6e89c83a6b553e7e3f11e787b3fecd4">axis2_endpoint_ref_t</a> *&nbsp;</td>
          <td class="paramname"> <em>epr</em></td><td>&nbsp;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td><td width="100%"></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
Tries to infer the transport looking at the URL, the URL can be <a href="http://">http://</a> tcp:// mail:// local://. The method will look for the transport name as the protocol part of the transport. <dl compact><dt><b>Parameters:</b></dt><dd>
  <table border="0" cellspacing="2" cellpadding="0">
    <tr><td valign="top"></td><td valign="top"><em>op_client</em>&nbsp;</td><td>pointer to op client struct </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>env</em>&nbsp;</td><td>pointer to environment struct </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>epr</em>&nbsp;</td><td>endpoint reference struct representing the endpoint URL </td></tr>
  </table>
</dl>
<dl class="return" compact><dt><b>Returns:</b></dt><dd>pointer to the transport description with inferred information </dd></dl>

</div>
</div><p>
<a class="anchor" name="gec56200ff2784f4adfff5679562f1ba5"></a><!-- doxytag: member="axis2_op_client.h::axis2_op_client_prepare_invocation" ref="gec56200ff2784f4adfff5679562f1ba5" args="(axis2_op_client_t *op_client, const axutil_env_t *env, axis2_op_t *op, axis2_msg_ctx_t *msg_ctx)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">AXIS2_EXTERN axis2_status_t axis2_op_client_prepare_invocation           </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="group__axis2__op__client.html#g6bc9ac9f149e65002cdfc265f8a7e505">axis2_op_client_t</a> *&nbsp;</td>
          <td class="paramname"> <em>op_client</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const <a class="el" href="structaxutil__env.html">axutil_env_t</a> *&nbsp;</td>
          <td class="paramname"> <em>env</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype"><a class="el" href="group__axis2__op.html#g13ff0e97eb92c0681768b60a93bf1bc9">axis2_op_t</a> *&nbsp;</td>
          <td class="paramname"> <em>op</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype"><a class="el" href="group__axis2__msg__ctx.html#g160acae289ac39cb49fa625ffd88e410">axis2_msg_ctx_t</a> *&nbsp;</td>
          <td class="paramname"> <em>msg_ctx</em></td><td>&nbsp;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td><td width="100%"></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
Prepares the message context for invocation. Here the properties kept in the op_client are copied to the message context. <dl compact><dt><b>Parameters:</b></dt><dd>
  <table border="0" cellspacing="2" cellpadding="0">
    <tr><td valign="top"></td><td valign="top"><em>op_client</em>&nbsp;</td><td>pointer to op client struct </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>env</em>&nbsp;</td><td>pointer to environment struct </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>op</em>&nbsp;</td><td>pointer operation to be invoked </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>msg_ctx</em>&nbsp;</td><td>pointer to message context to be filled </td></tr>
  </table>
</dl>
<dl class="return" compact><dt><b>Returns:</b></dt><dd>AXIS2_SUCCESS on success, else AXIS2_FAILURE </dd></dl>

</div>
</div><p>
<a class="anchor" name="g1fab78418f77376796c5d80703f28870"></a><!-- doxytag: member="axis2_op_client.h::axis2_op_client_prepare_soap_envelope" ref="g1fab78418f77376796c5d80703f28870" args="(axis2_op_client_t *op_client, const axutil_env_t *env, axiom_node_t *to_send)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">AXIS2_EXTERN <a class="el" href="group__axis2__msg__ctx.html#g160acae289ac39cb49fa625ffd88e410">axis2_msg_ctx_t</a>* axis2_op_client_prepare_soap_envelope           </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="group__axis2__op__client.html#g6bc9ac9f149e65002cdfc265f8a7e505">axis2_op_client_t</a> *&nbsp;</td>
          <td class="paramname"> <em>op_client</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const <a class="el" href="structaxutil__env.html">axutil_env_t</a> *&nbsp;</td>
          <td class="paramname"> <em>env</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">axiom_node_t *&nbsp;</td>
          <td class="paramname"> <em>to_send</em></td><td>&nbsp;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td><td width="100%"></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
Prepares the SOAP envelope using the payload. <dl compact><dt><b>Parameters:</b></dt><dd>
  <table border="0" cellspacing="2" cellpadding="0">
    <tr><td valign="top"></td><td valign="top"><em>op_client</em>&nbsp;</td><td>pointer to op client struct </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>env</em>&nbsp;</td><td>pointer to environment struct </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>to_send</em>&nbsp;</td><td>payload to be sent in AXIOM node format </td></tr>
  </table>
</dl>
<dl class="return" compact><dt><b>Returns:</b></dt><dd>a pointer to message context struct filled with the SOAP envelope to be sent </dd></dl>

</div>
</div><p>
<a class="anchor" name="g9e6d223494c0b13bb9070a87fb2b53a6"></a><!-- doxytag: member="axis2_op_client.h::axis2_op_client_receive" ref="g9e6d223494c0b13bb9070a87fb2b53a6" args="(const axutil_env_t *env, axis2_msg_ctx_t *msg_ctx)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">AXIS2_EXTERN <a class="el" href="group__axis2__msg__ctx.html#g160acae289ac39cb49fa625ffd88e410">axis2_msg_ctx_t</a>* axis2_op_client_receive           </td>
          <td>(</td>
          <td class="paramtype">const <a class="el" href="structaxutil__env.html">axutil_env_t</a> *&nbsp;</td>
          <td class="paramname"> <em>env</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype"><a class="el" href="group__axis2__msg__ctx.html#g160acae289ac39cb49fa625ffd88e410">axis2_msg_ctx_t</a> *&nbsp;</td>
          <td class="paramname"> <em>msg_ctx</em></td><td>&nbsp;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td><td width="100%"></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
Receives a message corresponding to a request depicted by given message context. <dl compact><dt><b>Parameters:</b></dt><dd>
  <table border="0" cellspacing="2" cellpadding="0">
    <tr><td valign="top"></td><td valign="top"><em>env</em>&nbsp;</td><td>pointer to environment struct </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>msg_ctx</em>&nbsp;</td><td>pointer to message context representing the response to be received </td></tr>
  </table>
</dl>
<dl class="return" compact><dt><b>Returns:</b></dt><dd>message context representing the received response </dd></dl>

</div>
</div><p>
<a class="anchor" name="g8d87312f023b335ea8a2bf723161fb84"></a><!-- doxytag: member="axis2_op_client.h::axis2_op_client_reset" ref="g8d87312f023b335ea8a2bf723161fb84" args="(axis2_op_client_t *op_client, const axutil_env_t *env)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">AXIS2_EXTERN axis2_status_t axis2_op_client_reset           </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="group__axis2__op__client.html#g6bc9ac9f149e65002cdfc265f8a7e505">axis2_op_client_t</a> *&nbsp;</td>
          <td class="paramname"> <em>op_client</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const <a class="el" href="structaxutil__env.html">axutil_env_t</a> *&nbsp;</td>
          <td class="paramname"> <em>env</em></td><td>&nbsp;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td><td width="100%"></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
Resets the operation client to a clean status after the op has completed. This is how you can reuse an operation client. Note that this does not reset the options; only the internal state so the client can be used again. <dl compact><dt><b>Parameters:</b></dt><dd>
  <table border="0" cellspacing="2" cellpadding="0">
    <tr><td valign="top"></td><td valign="top"><em>op_client</em>&nbsp;</td><td>pointer to operation client </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>env</em>&nbsp;</td><td>pointer to environment struct </td></tr>
  </table>
</dl>
<dl class="return" compact><dt><b>Returns:</b></dt><dd>AXIS2_SUCCESS on success, else AXIS2_FAILURE </dd></dl>

</div>
</div><p>
<a class="anchor" name="g59c3ab7690e5fb5b7f5ab27680f03633"></a><!-- doxytag: member="axis2_op_client.h::axis2_op_client_set_callback" ref="g59c3ab7690e5fb5b7f5ab27680f03633" args="(axis2_op_client_t *op_client, const axutil_env_t *env, axis2_callback_t *callback)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">AXIS2_EXTERN axis2_status_t axis2_op_client_set_callback           </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="group__axis2__op__client.html#g6bc9ac9f149e65002cdfc265f8a7e505">axis2_op_client_t</a> *&nbsp;</td>
          <td class="paramname"> <em>op_client</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const <a class="el" href="structaxutil__env.html">axutil_env_t</a> *&nbsp;</td>
          <td class="paramname"> <em>env</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype"><a class="el" href="group__axis2__callback.html#g0d855254802281de06d16c71627226b5">axis2_callback_t</a> *&nbsp;</td>
          <td class="paramname"> <em>callback</em></td><td>&nbsp;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td><td width="100%"></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
Sets the callback to be executed when a response message is received. <dl compact><dt><b>Parameters:</b></dt><dd>
  <table border="0" cellspacing="2" cellpadding="0">
    <tr><td valign="top"></td><td valign="top"><em>op_client</em>&nbsp;</td><td>pointer to operation client struct </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>env</em>&nbsp;</td><td>pointer to environment struct </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>callback</em>&nbsp;</td><td>the callback to be used. operation client takes over the ownership of the message context struct. </td></tr>
  </table>
</dl>
<dl class="return" compact><dt><b>Returns:</b></dt><dd>AXIS2_SUCCESS on success, else AXIS2_FAILURE </dd></dl>

</div>
</div><p>
<a class="anchor" name="gd411a2de66868e708b7e5c02683291a9"></a><!-- doxytag: member="axis2_op_client.h::axis2_op_client_set_callback_recv" ref="gd411a2de66868e708b7e5c02683291a9" args="(axis2_op_client_t *op_client, const axutil_env_t *env, struct axis2_callback_recv *callback_recv)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">AXIS2_EXTERN axis2_status_t axis2_op_client_set_callback_recv           </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="group__axis2__op__client.html#g6bc9ac9f149e65002cdfc265f8a7e505">axis2_op_client_t</a> *&nbsp;</td>
          <td class="paramname"> <em>op_client</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const <a class="el" href="structaxutil__env.html">axutil_env_t</a> *&nbsp;</td>
          <td class="paramname"> <em>env</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">struct axis2_callback_recv *&nbsp;</td>
          <td class="paramname"> <em>callback_recv</em></td><td>&nbsp;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td><td width="100%"></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
Sets callback receiver. <dl compact><dt><b>Parameters:</b></dt><dd>
  <table border="0" cellspacing="2" cellpadding="0">
    <tr><td valign="top"></td><td valign="top"><em>op_client</em>&nbsp;</td><td>pointer to operation client struct </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>env</em>&nbsp;</td><td>pointer to environment struct </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>callback_recv</em>&nbsp;</td><td>pointer to callback receiver struct. operation client assumes ownership of the callback struct. </td></tr>
  </table>
</dl>
<dl class="return" compact><dt><b>Returns:</b></dt><dd>AXIS2_SUCCESS on success, else AXIS2_FAILURE </dd></dl>

</div>
</div><p>
<a class="anchor" name="g129b0ae65f1bcf960e563d5adc31d7fa"></a><!-- doxytag: member="axis2_op_client.h::axis2_op_client_set_options" ref="g129b0ae65f1bcf960e563d5adc31d7fa" args="(axis2_op_client_t *op_client, const axutil_env_t *env, const axis2_options_t *options)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">AXIS2_EXTERN axis2_status_t axis2_op_client_set_options           </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="group__axis2__op__client.html#g6bc9ac9f149e65002cdfc265f8a7e505">axis2_op_client_t</a> *&nbsp;</td>
          <td class="paramname"> <em>op_client</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const <a class="el" href="structaxutil__env.html">axutil_env_t</a> *&nbsp;</td>
          <td class="paramname"> <em>env</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const <a class="el" href="group__axis2__options.html#g26794bbdc46cdd3481c7e9079c0d6094">axis2_options_t</a> *&nbsp;</td>
          <td class="paramname"> <em>options</em></td><td>&nbsp;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td><td width="100%"></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
Sets the options that is to be used by this operation client. <dl compact><dt><b>Parameters:</b></dt><dd>
  <table border="0" cellspacing="2" cellpadding="0">
    <tr><td valign="top"></td><td valign="top"><em>op_client</em>&nbsp;</td><td>pointer to operation client struct </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>env</em>&nbsp;</td><td>pointer to environment struct </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>options</em>&nbsp;</td><td>pointer to options struct to be set </td></tr>
  </table>
</dl>
<dl class="return" compact><dt><b>Returns:</b></dt><dd>AXIS2_SUCCESS on success, else AXIS2_FAILURE </dd></dl>

</div>
</div><p>
<a class="anchor" name="geaaa726f66d8836c6bc46c946c960b9e"></a><!-- doxytag: member="axis2_op_client.h::axis2_op_client_set_reuse" ref="geaaa726f66d8836c6bc46c946c960b9e" args="(axis2_op_client_t *op_client, const axutil_env_t *env, axis2_bool_t reuse)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">AXIS2_EXTERN void axis2_op_client_set_reuse           </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="group__axis2__op__client.html#g6bc9ac9f149e65002cdfc265f8a7e505">axis2_op_client_t</a> *&nbsp;</td>
          <td class="paramname"> <em>op_client</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const <a class="el" href="structaxutil__env.html">axutil_env_t</a> *&nbsp;</td>
          <td class="paramname"> <em>env</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">axis2_bool_t&nbsp;</td>
          <td class="paramname"> <em>reuse</em></td><td>&nbsp;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td><td width="100%"></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
Sets whether to reuse op client. <dl compact><dt><b>Parameters:</b></dt><dd>
  <table border="0" cellspacing="2" cellpadding="0">
    <tr><td valign="top"></td><td valign="top"><em>op_client</em>&nbsp;</td><td>pointer to op client struct </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>env</em>&nbsp;</td><td>pointer to environment struct </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>reuse</em>&nbsp;</td><td>flag is a boolean value </td></tr>
  </table>
</dl>
<dl class="return" compact><dt><b>Returns:</b></dt><dd>void </dd></dl>

</div>
</div><p>
<a class="anchor" name="ge0632b67dbea1fc8f7ae1f7708e1b98d"></a><!-- doxytag: member="axis2_op_client.h::axis2_op_client_set_soap_action" ref="ge0632b67dbea1fc8f7ae1f7708e1b98d" args="(axis2_op_client_t *op_client, const axutil_env_t *env, axutil_string_t *soap_action)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">AXIS2_EXTERN axis2_status_t axis2_op_client_set_soap_action           </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="group__axis2__op__client.html#g6bc9ac9f149e65002cdfc265f8a7e505">axis2_op_client_t</a> *&nbsp;</td>
          <td class="paramname"> <em>op_client</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const <a class="el" href="structaxutil__env.html">axutil_env_t</a> *&nbsp;</td>
          <td class="paramname"> <em>env</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">axutil_string_t *&nbsp;</td>
          <td class="paramname"> <em>soap_action</em></td><td>&nbsp;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td><td width="100%"></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
Sets SOAP action. <dl compact><dt><b>Parameters:</b></dt><dd>
  <table border="0" cellspacing="2" cellpadding="0">
    <tr><td valign="top"></td><td valign="top"><em>op_client</em>&nbsp;</td><td>pointer to op client struct </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>env</em>&nbsp;</td><td>pointer to environment struct </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>soap_action</em>&nbsp;</td><td>SOAP action </td></tr>
  </table>
</dl>
<dl class="return" compact><dt><b>Returns:</b></dt><dd>AXIS2_SUCCESS on success, else AXIS2_FAILURE </dd></dl>

</div>
</div><p>
<a class="anchor" name="g29eb95e1d34ec16811f0e002e02e2c34"></a><!-- doxytag: member="axis2_op_client.h::axis2_op_client_set_soap_version_uri" ref="g29eb95e1d34ec16811f0e002e02e2c34" args="(axis2_op_client_t *op_client, const axutil_env_t *env, const axis2_char_t *soap_version_uri)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">AXIS2_EXTERN axis2_status_t axis2_op_client_set_soap_version_uri           </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="group__axis2__op__client.html#g6bc9ac9f149e65002cdfc265f8a7e505">axis2_op_client_t</a> *&nbsp;</td>
          <td class="paramname"> <em>op_client</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const <a class="el" href="structaxutil__env.html">axutil_env_t</a> *&nbsp;</td>
          <td class="paramname"> <em>env</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const axis2_char_t *&nbsp;</td>
          <td class="paramname"> <em>soap_version_uri</em></td><td>&nbsp;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td><td width="100%"></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
Sets SOAP version URI. <dl compact><dt><b>Parameters:</b></dt><dd>
  <table border="0" cellspacing="2" cellpadding="0">
    <tr><td valign="top"></td><td valign="top"><em>op_client</em>&nbsp;</td><td>pointer to op client struct </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>env</em>&nbsp;</td><td>pointer to environment struct </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>soap_version_uri</em>&nbsp;</td><td>SOAP version URI </td></tr>
  </table>
</dl>
<dl class="return" compact><dt><b>Returns:</b></dt><dd>AXIS2_SUCCESS on success, else AXIS2_FAILURE </dd></dl>

</div>
</div><p>
<a class="anchor" name="g562d94703fd1723020cf7cacafc73198"></a><!-- doxytag: member="axis2_op_client.h::axis2_op_client_set_wsa_action" ref="g562d94703fd1723020cf7cacafc73198" args="(axis2_op_client_t *op_client, const axutil_env_t *env, const axis2_char_t *wsa_action)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">AXIS2_EXTERN axis2_status_t axis2_op_client_set_wsa_action           </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="group__axis2__op__client.html#g6bc9ac9f149e65002cdfc265f8a7e505">axis2_op_client_t</a> *&nbsp;</td>
          <td class="paramname"> <em>op_client</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const <a class="el" href="structaxutil__env.html">axutil_env_t</a> *&nbsp;</td>
          <td class="paramname"> <em>env</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const axis2_char_t *&nbsp;</td>
          <td class="paramname"> <em>wsa_action</em></td><td>&nbsp;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td><td width="100%"></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
Sets WSA action. <dl compact><dt><b>Parameters:</b></dt><dd>
  <table border="0" cellspacing="2" cellpadding="0">
    <tr><td valign="top"></td><td valign="top"><em>op_client</em>&nbsp;</td><td>pointer to op client struct </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>env</em>&nbsp;</td><td>pointer to environment struct </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>wsa_action</em>&nbsp;</td><td>Web services Addressing action </td></tr>
  </table>
</dl>
<dl class="return" compact><dt><b>Returns:</b></dt><dd>AXIS2_SUCCESS on success, else AXIS2_FAILURE </dd></dl>

</div>
</div><p>
<a class="anchor" name="g2325f68d3df4f2b324354837f5f7b20c"></a><!-- doxytag: member="axis2_op_client.h::axis2_op_client_two_way_send" ref="g2325f68d3df4f2b324354837f5f7b20c" args="(const axutil_env_t *env, axis2_msg_ctx_t *msg_ctx)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">AXIS2_EXTERN <a class="el" href="group__axis2__msg__ctx.html#g160acae289ac39cb49fa625ffd88e410">axis2_msg_ctx_t</a>* axis2_op_client_two_way_send           </td>
          <td>(</td>
          <td class="paramtype">const <a class="el" href="structaxutil__env.html">axutil_env_t</a> *&nbsp;</td>
          <td class="paramname"> <em>env</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype"><a class="el" href="group__axis2__msg__ctx.html#g160acae289ac39cb49fa625ffd88e410">axis2_msg_ctx_t</a> *&nbsp;</td>
          <td class="paramname"> <em>msg_ctx</em></td><td>&nbsp;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td><td width="100%"></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
Sends a message represented by the given message context and captures the response in return message context. <dl compact><dt><b>Parameters:</b></dt><dd>
  <table border="0" cellspacing="2" cellpadding="0">
    <tr><td valign="top"></td><td valign="top"><em>env</em>&nbsp;</td><td>pointer to environment struct </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>msg_ctx</em>&nbsp;</td><td>pointer to message context representing the message to be sent </td></tr>
  </table>
</dl>
<dl class="return" compact><dt><b>Returns:</b></dt><dd>message context representing the received response </dd></dl>

</div>
</div><p>
<hr size="1"><address style="text-align: right;"><small>Generated on Fri Apr 17 11:49:45 2009 for Axis2/C by&nbsp;
<a href="http://www.doxygen.org/index.html">
<img src="doxygen.png" alt="doxygen" align="middle" border="0"></a> 1.5.3 </small></address>
</body>
</html>


<|start_filename|>xdocs/api/html/group__axis2__async__result.html<|end_filename|>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html><head><meta http-equiv="Content-Type" content="text/html;charset=UTF-8">
<title>Axis2/C: async result</title>
<link href="doxygen.css" rel="stylesheet" type="text/css">
<link href="tabs.css" rel="stylesheet" type="text/css">
</head><body>
<!-- Generated by Doxygen 1.5.3 -->
<div class="tabs">
  <ul>
    <li><a href="index.html"><span>Main&nbsp;Page</span></a></li>
    <li><a href="modules.html"><span>Modules</span></a></li>
    <li><a href="annotated.html"><span>Classes</span></a></li>
    <li><a href="files.html"><span>Files</span></a></li>
    <li><a href="dirs.html"><span>Directories</span></a></li>
    <li><a href="pages.html"><span>Related&nbsp;Pages</span></a></li>
    <li><a href="examples.html"><span>Examples</span></a></li>
    <li>
      <form action="search.php" method="get">
        <table cellspacing="0" cellpadding="0" border="0">
          <tr>
            <td><label>&nbsp;<u>S</u>earch&nbsp;for&nbsp;</label></td>
            <td><input type="text" name="query" value="" size="20" accesskey="s"/></td>
          </tr>
        </table>
      </form>
    </li>
  </ul>
</div>
<h1>async result<br>
<small>
[<a class="el" href="group__axis2__client__api.html">client API</a>]</small>
</h1><table border="0" cellpadding="0" cellspacing="0">
<tr><td></td></tr>
<tr><td colspan="2"><br><h2>Files</h2></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top">file &nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="axis2__async__result_8h.html">axis2_async_result.h</a></td></tr>

<tr><td colspan="2"><br><h2>Typedefs</h2></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top">typedef struct <br>
axis2_async_result&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__axis2__async__result.html#g7f79cfe086dfb98806cc3c0c3b408c3c">axis2_async_result_t</a></td></tr>

<tr><td colspan="2"><br><h2>Functions</h2></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top">AXIS2_EXTERN <br>
axiom_soap_envelope_t *&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__axis2__async__result.html#g78f7a7e270e176c1094ca43d106561b1">axis2_async_result_get_envelope</a> (<a class="el" href="group__axis2__async__result.html#g7f79cfe086dfb98806cc3c0c3b408c3c">axis2_async_result_t</a> *async_result, const <a class="el" href="structaxutil__env.html">axutil_env_t</a> *env)</td></tr>

<tr><td class="memItemLeft" nowrap align="right" valign="top">AXIS2_EXTERN <br>
<a class="el" href="group__axis2__msg__ctx.html#g160acae289ac39cb49fa625ffd88e410">axis2_msg_ctx_t</a> *&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__axis2__async__result.html#g4b31e913ac079031b24e18c67236ef25">axis2_async_result_get_result</a> (<a class="el" href="group__axis2__async__result.html#g7f79cfe086dfb98806cc3c0c3b408c3c">axis2_async_result_t</a> *async_result, const <a class="el" href="structaxutil__env.html">axutil_env_t</a> *env)</td></tr>

<tr><td class="memItemLeft" nowrap align="right" valign="top">AXIS2_EXTERN void&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__axis2__async__result.html#g7dc808667785c5430baef18f3e377d5c">axis2_async_result_free</a> (<a class="el" href="group__axis2__async__result.html#g7f79cfe086dfb98806cc3c0c3b408c3c">axis2_async_result_t</a> *async_result, const <a class="el" href="structaxutil__env.html">axutil_env_t</a> *env)</td></tr>

<tr><td class="memItemLeft" nowrap align="right" valign="top">AXIS2_EXTERN <br>
<a class="el" href="group__axis2__async__result.html#g7f79cfe086dfb98806cc3c0c3b408c3c">axis2_async_result_t</a> *&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__axis2__async__result.html#g065fafef3286259aa3c8ceb7da9957ee">axis2_async_result_create</a> (const <a class="el" href="structaxutil__env.html">axutil_env_t</a> *env, <a class="el" href="group__axis2__msg__ctx.html#g160acae289ac39cb49fa625ffd88e410">axis2_msg_ctx_t</a> *result)</td></tr>

</table>
<hr><a name="_details"></a><h2>Detailed Description</h2>
async_result is used to capture the result of an asynchronous invocation. async_result stores the result in the form of a message context instance, the user can extract the resulting SOAP envelope from this message context. <hr><h2>Typedef Documentation</h2>
<a class="anchor" name="g7f79cfe086dfb98806cc3c0c3b408c3c"></a><!-- doxytag: member="axis2_async_result.h::axis2_async_result_t" ref="g7f79cfe086dfb98806cc3c0c3b408c3c" args="" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">typedef struct axis2_async_result <a class="el" href="group__axis2__async__result.html#g7f79cfe086dfb98806cc3c0c3b408c3c">axis2_async_result_t</a>          </td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
Type name for struct axis2_async_result 
</div>
</div><p>
<hr><h2>Function Documentation</h2>
<a class="anchor" name="g065fafef3286259aa3c8ceb7da9957ee"></a><!-- doxytag: member="axis2_async_result.h::axis2_async_result_create" ref="g065fafef3286259aa3c8ceb7da9957ee" args="(const axutil_env_t *env, axis2_msg_ctx_t *result)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">AXIS2_EXTERN <a class="el" href="group__axis2__async__result.html#g7f79cfe086dfb98806cc3c0c3b408c3c">axis2_async_result_t</a>* axis2_async_result_create           </td>
          <td>(</td>
          <td class="paramtype">const <a class="el" href="structaxutil__env.html">axutil_env_t</a> *&nbsp;</td>
          <td class="paramname"> <em>env</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype"><a class="el" href="group__axis2__msg__ctx.html#g160acae289ac39cb49fa625ffd88e410">axis2_msg_ctx_t</a> *&nbsp;</td>
          <td class="paramname"> <em>result</em></td><td>&nbsp;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td><td width="100%"></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
Creates an async result struct to help deal with results of asynchronous invocations. <dl compact><dt><b>Parameters:</b></dt><dd>
  <table border="0" cellspacing="2" cellpadding="0">
    <tr><td valign="top"></td><td valign="top"><em>env</em>&nbsp;</td><td>pointer to environment struct </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>result</em>&nbsp;</td><td>pointer to result message context into which the resulting SOAP message is to be captured </td></tr>
  </table>
</dl>
<dl class="return" compact><dt><b>Returns:</b></dt><dd>newly created async_result struct </dd></dl>

</div>
</div><p>
<a class="anchor" name="g7dc808667785c5430baef18f3e377d5c"></a><!-- doxytag: member="axis2_async_result.h::axis2_async_result_free" ref="g7dc808667785c5430baef18f3e377d5c" args="(axis2_async_result_t *async_result, const axutil_env_t *env)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">AXIS2_EXTERN void axis2_async_result_free           </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="group__axis2__async__result.html#g7f79cfe086dfb98806cc3c0c3b408c3c">axis2_async_result_t</a> *&nbsp;</td>
          <td class="paramname"> <em>async_result</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const <a class="el" href="structaxutil__env.html">axutil_env_t</a> *&nbsp;</td>
          <td class="paramname"> <em>env</em></td><td>&nbsp;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td><td width="100%"></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
Frees the async result. <dl compact><dt><b>Parameters:</b></dt><dd>
  <table border="0" cellspacing="2" cellpadding="0">
    <tr><td valign="top"></td><td valign="top"><em>async_result</em>&nbsp;</td><td>pointer to async result struct </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>env</em>&nbsp;</td><td>pointer to environment struct </td></tr>
  </table>
</dl>
<dl class="return" compact><dt><b>Returns:</b></dt><dd>AXIS2_SUCCESS on success, else AXIS2_FAILURE </dd></dl>

</div>
</div><p>
<a class="anchor" name="g78f7a7e270e176c1094ca43d106561b1"></a><!-- doxytag: member="axis2_async_result.h::axis2_async_result_get_envelope" ref="g78f7a7e270e176c1094ca43d106561b1" args="(axis2_async_result_t *async_result, const axutil_env_t *env)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">AXIS2_EXTERN axiom_soap_envelope_t* axis2_async_result_get_envelope           </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="group__axis2__async__result.html#g7f79cfe086dfb98806cc3c0c3b408c3c">axis2_async_result_t</a> *&nbsp;</td>
          <td class="paramname"> <em>async_result</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const <a class="el" href="structaxutil__env.html">axutil_env_t</a> *&nbsp;</td>
          <td class="paramname"> <em>env</em></td><td>&nbsp;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td><td width="100%"></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
Gets the SOAP envelope stored inside the resulting message context. <dl compact><dt><b>Parameters:</b></dt><dd>
  <table border="0" cellspacing="2" cellpadding="0">
    <tr><td valign="top"></td><td valign="top"><em>async_result</em>&nbsp;</td><td>pointer to async result struct </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>env</em>&nbsp;</td><td>pointer to environment struct </td></tr>
  </table>
</dl>
<dl class="return" compact><dt><b>Returns:</b></dt><dd>pointer to the result SOAP envelope in the message context. </dd></dl>

</div>
</div><p>
<a class="anchor" name="g4b31e913ac079031b24e18c67236ef25"></a><!-- doxytag: member="axis2_async_result.h::axis2_async_result_get_result" ref="g4b31e913ac079031b24e18c67236ef25" args="(axis2_async_result_t *async_result, const axutil_env_t *env)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">AXIS2_EXTERN <a class="el" href="group__axis2__msg__ctx.html#g160acae289ac39cb49fa625ffd88e410">axis2_msg_ctx_t</a>* axis2_async_result_get_result           </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="group__axis2__async__result.html#g7f79cfe086dfb98806cc3c0c3b408c3c">axis2_async_result_t</a> *&nbsp;</td>
          <td class="paramname"> <em>async_result</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const <a class="el" href="structaxutil__env.html">axutil_env_t</a> *&nbsp;</td>
          <td class="paramname"> <em>env</em></td><td>&nbsp;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td><td width="100%"></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
Gets the result in the form of message context. <dl compact><dt><b>Parameters:</b></dt><dd>
  <table border="0" cellspacing="2" cellpadding="0">
    <tr><td valign="top"></td><td valign="top"><em>async_result</em>&nbsp;</td><td>pointer to async result struct </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>env</em>&nbsp;</td><td>pointer to environment struct </td></tr>
  </table>
</dl>
<dl class="return" compact><dt><b>Returns:</b></dt><dd>pointer to result message context </dd></dl>

</div>
</div><p>
<hr size="1"><address style="text-align: right;"><small>Generated on Fri Apr 17 11:49:44 2009 for Axis2/C by&nbsp;
<a href="http://www.doxygen.org/index.html">
<img src="doxygen.png" alt="doxygen" align="middle" border="0"></a> 1.5.3 </small></address>
</body>
</html>


<|start_filename|>axiom/src/om/axiom_stax_builder_internal.h<|end_filename|>

/*
 * 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 AXIOM_STAX_BUILDER_INTERNAL_H
#define AXIOM_STAX_BUILDER_INTERNAL_H

/** @defgroup axiom AXIOM (Axis Object Model)
 * @ingroup axis2
 * @{
 */

/** @} */

#include <axiom_stax_builder.h>

#ifdef __cplusplus
extern "C"
{
#endif

    /**
     * @defgroup axiom_stax builder
     * @ingroup axiom
     * @{
     */

    AXIS2_EXTERN int AXIS2_CALL
    axiom_stax_builder_get_current_event(
        axiom_stax_builder_t * builder,
        const axutil_env_t * env);

    AXIS2_EXTERN axis2_status_t AXIS2_CALL
    axiom_stax_builder_set_lastnode(
        axiom_stax_builder_t * builder,
        const axutil_env_t * env,
        axiom_node_t * om_node);

    AXIS2_EXTERN int AXIS2_CALL
    axiom_stax_builder_get_element_level(
        axiom_stax_builder_t * builder,
        const axutil_env_t * env);

    AXIS2_EXTERN axis2_status_t AXIS2_CALL

    axiom_stax_builder_set_element_level(
        axiom_stax_builder_t * builder,
        const axutil_env_t * env,
        int element_level);
    AXIS2_EXTERN axiom_node_t *AXIS2_CALL
    axiom_stax_builder_get_lastnode(
        axiom_stax_builder_t * builder,
        const axutil_env_t * env);

    /** @} */

#ifdef __cplusplus
}
#endif

#endif /** AXIOM_STAX_BUILDER_INTERNAL_H */


<|start_filename|>src/core/transport/http/server/IIS/axis2_isapi_plugin.c<|end_filename|>

/*
 * 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.
 */  

#include <windows.h>
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include <httpfilt.h>
#include <httpext.h>

#include "axis2_iis_constants.h"
#include "axis2_iis_worker.h"

/* Axis headers */ 
#include <axutil_error_default.h>
#include <axutil_log_default.h>
#include <axutil_thread_pool.h>
#include <axiom_xml_reader.h>
#include <axutil_log.h>

#ifndef _WIN32_WINNT 
#define _WIN32_WINNT 0x0500 
#endif 

#define	AXIS2_IIS_LOG_FILE_TAG		 "log_file"
#define AXIS2_IIS_LOG_LEVEL_TAG		 "log_level" 
#define AXIS2_IIS_REPO_PATH_TAG		 "axis2c_home"
#define AXIS2_IIS_EXTENSION_URI_TAG	 "extension_uri"
#define AXIS2_IIS_REDIRECT_WORD_TAG	 "redirect_uri"
#define AXIS2_IIS_AXIS2_LOCATION	 "axis2_location"
#define AXIS2_IIS_SERVICE_URL_PREFIX "services_url_prefix"

#define AXIS2_IIS_LOG_TRACE_VERB	 "trace"
#define AXIS2_IIS_LOG_ERROR_VERB	 "error"
#define AXIS2_IIS_LOG_INFO_VERB		 "info"
#define AXIS2_IIS_LOG_USER_VERB      "user"
#define AXIS2_IIS_LOG_CRITICAL_VERB	 "critical"
#define AXIS2_IIS_LOG_WARN_VERB		 "warning"
#define AXIS2_IIS_LOG_DEBUG_VERB	 "debug"

#define MAX_FILE_PATH				 256
#define REGISTRY_LOCATION			 "Software\\Apache Axis2c\\IIS ISAPI Redirector"

static int is_inited = FALSE;
static axis2_iis_worker_t *axis2_worker		 = NULL;
static const axutil_env_t *axutil_env		 = NULL;

/* Configuration parameters */
axis2_char_t *axis2_location			 = "/axis2";
static axis2_char_t *axis2_service_url_prefix= "/services";
static axis2_char_t repo_path[MAX_FILE_PATH];
static axis2_char_t log_file[MAX_FILE_PATH];
static axutil_log_levels_t log_level		 = AXIS2_LOG_LEVEL_CRITICAL;

/* Path variables */ 
static char szOriginalPath[_MAX_PATH + 1];
static char szPath[_MAX_PATH + 1];

axis2_char_t    general_error[] = "<html>\r\n" 
                        "<head><title> An IIS server error occurred. </title></head>\r\n" 
                        "<h1> An IIS server error occurred </h1>\r\n" 
                        "<hr>\r\n" 
                        "An error occurred in IIS while processing this request.</hr></html>"; 

axis2_char_t	initializing_error[] = "<html>\r\n" 
                        "<head><title> An IIS server error occurred. </title></head>\r\n" 
                        "<h1> An IIS server error occurred </h1>\r\n" 
                        "<hr>\r\n" 
                        "An error occurred while initilizing Axis2/C.</hr></html>"; 


/*
 * This is a utility functipn for reading configuration data from the registery.
 */ 
static axis2_status_t AXIS2_CALL 
read_registery_init_data();

/*
 * Utility function for reading 
 */ 
static axis2_status_t AXIS2_CALL get_registry_config_parameter(
    HKEY hkey,
    const char *tag,
    char *b,
    DWORD sz);

/*
 * Parse the given string and return the corresponding log_level
 */ 
axutil_log_levels_t AXIS2_CALL axis2_iis_parse_log_level(char level[]);

/*
 * Initialize axis. This function is called in the begining of the module loading.
 * It initializes the axis by reading values from the configuration and creating the
 * required structures for the axis2c
*/
axis2_status_t AXIS2_CALL init_axis2();
    
/* 
 * This is the function to be called after the processing 
 * is over for non Axis2 requets
 */
VOID 
WINAPI 
ExecUrlCompletion ( 
    EXTENSION_CONTROL_BLOCK *   pecb, 
    PVOID                       pContext, 
    DWORD                       cbIO, 
    DWORD                       dwError 
    ); 

/* 
 * If somethign went wrong in the IIS server when 
 * we are proccessing we send this 
 */
BOOL 
send_error(		
	EXTENSION_CONTROL_BLOCK * pecb, 
    CHAR error[]); 

axis2_status_t AXIS2_CALL init_axis2();

BOOL 
WINAPI 
GetExtensionVersion(HSE_VERSION_INFO * pVer)  
{     
    pVer->dwExtensionVersion = MAKELONG( HSE_VERSION_MINOR, 
                                         HSE_VERSION_MAJOR); 
    strncpy( pVer->lpszExtensionDesc, 
             "WildCardMap Sample ISAPI Extension", HSE_MAX_EXT_DLL_NAME_LEN ); 

    pVer->lpszExtensionDesc[HSE_MAX_EXT_DLL_NAME_LEN-1] = '\0'; 
	server_version = 5;
	return TRUE; 
} 

DWORD 
WINAPI 
HttpExtensionProc(EXTENSION_CONTROL_BLOCK * pecb) 

{ 
    HSE_EXEC_URL_INFO   ExecUrlInfo; 
    DWORD               cbData = INTERNET_MAX_URL_LENGTH; 
    char				url[INTERNET_MAX_URL_LENGTH]; 
	axis2_bool_t		is_for_us = AXIS2_TRUE;

    /* Get the URL */      
    if ( pecb->GetServerVariable( pecb->ConnID, 
                                  "URL", 
                                  url, 
                                  &cbData ) == FALSE ) 
    { 
        return HSE_STATUS_ERROR;  
    } 

	if (!is_inited) 
	{			
		DWORD dwBufferSize = 0;
		axis2_char_t server_software[256];
		axis2_char_t *version = NULL;

		ZeroMemory(szOriginalPath, sizeof szOriginalPath);
		dwBufferSize = sizeof szOriginalPath;

#if _WIN32_WINNT >= 0x0502
		GetDllDirectory( dwBufferSize, szOriginalPath );
#else
		GetCurrentDirectory( dwBufferSize, szOriginalPath );
#endif
		ZeroMemory(szPath, sizeof szPath);
		dwBufferSize = sizeof szPath;
		/* Get the current physical paht */
		if (pecb->GetServerVariable(pecb->ConnID, "APPL_PHYSICAL_PATH", szPath, &dwBufferSize) == FALSE)
		{
			send_error(pecb, initializing_error);
			return HSE_STATUS_ERROR;				
		}
		/* Retrieve the server version */
		dwBufferSize = 32;
		if (pecb->GetServerVariable(pecb->ConnID, "SERVER_SOFTWARE", server_software, &dwBufferSize) == FALSE)
		{
			send_error(pecb, initializing_error);
			return HSE_STATUS_ERROR;				
		}
		version = axutil_strchr(server_software, '/');	
		if (version)
		{
			server_version = atoi(version + 1);
		}
#if _WIN32_WINNT >= 0x0502
		SetDllDirectory( szPath );
#else
		SetCurrentDirectory( szPath );
#endif
		/* If we haven't initialized axis2/c before initialization failed */
		if (AXIS2_FAILURE == init_axis2())
		{
			send_error(pecb, initializing_error);
			return HSE_STATUS_ERROR;
		}
#if _WIN32_WINNT >= 0x0502
		SetDllDirectory( szOriginalPath );
#else
		SetCurrentDirectory( szOriginalPath );
#endif
	}

	/* Check weather we have a request for Axis2/C */
	if (server_version >= 6 && strlen(url) >= strlen(axis2_location))
    {
		int i = 0;
		is_for_us = AXIS2_TRUE;	
		while (axis2_location[i] != '\0')
		{
			if (axis2_location[i] != (url)[i]) {
				is_for_us = AXIS2_FALSE;
				break;
			}
			i++;
		}		
		if (url[i] != '/' && url[i] != '\0')
		{
			is_for_us = AXIS2_FALSE;
		}
	}
		
	if (is_for_us)
	{			
		/* Windows cannot find the correct dlls unless the path is set*/ 
#if _WIN32_WINNT >= 0x0502
		SetDllDirectory( szPath );
#else
		SetCurrentDirectory( szPath );
#endif
		pecb->dwHttpStatusCode = HTTP_INTERNAL_SERVER_ERROR;
		/* We are sure that worker is not NULL since it is NULL init_axis2 would have failed */
		axis2_iis_worker_process_request(axis2_worker, axutil_env, pecb);

	    /* Windows cannot find the correct dlls unless the dir is set
		 but we want to reset to previous dir after the load */
#if _WIN32_WINNT >= 0x0502
		SetDllDirectory( szOriginalPath );
#else
		SetCurrentDirectory( szOriginalPath );
#endif
		return HSE_STATUS_SUCCESS;
	}
	else if (server_version >= 6)
	{
		/* For IIS 5.1 or earlier this code is never executed. Since the URL is 
		redirected to Axis2/C by the Filter */

		/* If not for Axis2/C let the request go to who ever wants it */
		ExecUrlInfo.pszUrl = NULL;          /* Use original request URL */
		ExecUrlInfo.pszMethod = NULL;       /* Use original request method */
		ExecUrlInfo.pszChildHeaders = NULL; /* Use original request headers */
		ExecUrlInfo.pUserInfo = NULL;       /* Use original request user info */
		ExecUrlInfo.pEntity = NULL;         /* Use original request entity */
		
		/* Provent recursion */
		ExecUrlInfo.dwExecUrlFlags = HSE_EXEC_URL_IGNORE_CURRENT_INTERCEPTOR; 
	     
		/* Associate the completion routine and the current URL with this request. */ 
		if ( pecb->ServerSupportFunction( pecb->ConnID, 
										  HSE_REQ_IO_COMPLETION, 
										  ExecUrlCompletion, 
										  NULL,  
										  NULL) == FALSE ) 
		{        
			return HSE_STATUS_ERROR; 
		} 
	    		
		/* Ok, now that everything is set up, let's call the child request */     
		if ( pecb->ServerSupportFunction( pecb->ConnID, 
										  HSE_REQ_EXEC_URL, 
										  &ExecUrlInfo, 
										  NULL, 
										  NULL ) == FALSE ) 
		{         
			return HSE_STATUS_ERROR; 
		} 
		/* Return pending and let the completion clean up */ 
		return HSE_STATUS_PENDING; 
	} 
	return HSE_STATUS_ERROR;
} 

VOID 
WINAPI 
ExecUrlCompletion ( 
    EXTENSION_CONTROL_BLOCK *   pecb, 
    PVOID                       pContext, 
    DWORD                       cbIO, 
    DWORD                       dwError 
    ) 
{ 
	/* We are done so notify */
    pecb->ServerSupportFunction( 
        pecb->ConnID, 
        HSE_REQ_DONE_WITH_SESSION, 
        NULL, 
        NULL, 
        NULL); 
} 


BOOL 
send_error(		
	EXTENSION_CONTROL_BLOCK * pecb, 
    axis2_char_t error[]) 
{ 
    DWORD   cbData;             
    pecb->dwHttpStatusCode = 500;     
    /* Send headers and response */    
    pecb->ServerSupportFunction( pecb->ConnID, 
                                 HSE_REQ_SEND_RESPONSE_HEADER, 
                                 "500 Server Error", 
                                 NULL, 
                                 (LPDWORD)"Content-Type: text/html\r\n\r\n" ); 

    cbData = axutil_strlen( error ); 
    return pecb->WriteClient( pecb->ConnID, 
                              error, 
                              &cbData, 
                              HSE_IO_SYNC ); 
} 

axis2_status_t AXIS2_CALL read_registery_init_data() 
{
    long rc = 0;
    axis2_status_t ok = TRUE;
    char tmpbuf[INTERNET_MAX_URL_LENGTH];
    HKEY hkey;
	AXIS2_IMPORT extern axis2_char_t *axis2_request_url_prefix;

    rc = RegOpenKeyEx(HKEY_LOCAL_MACHINE, REGISTRY_LOCATION, (DWORD) 0, KEY_READ, &hkey);
    if (ERROR_SUCCESS != rc)
    {
        return AXIS2_FAILURE;
    }
    if (get_registry_config_parameter(hkey, AXIS2_IIS_REPO_PATH_TAG, tmpbuf, sizeof(repo_path)))
    {
        strcpy(repo_path, tmpbuf);
    }
    else
    {
		return AXIS2_FAILURE;
    }
    if (get_registry_config_parameter(hkey, AXIS2_IIS_LOG_FILE_TAG, tmpbuf, sizeof(log_file)))
    {
        strcpy(log_file, tmpbuf);
    }
    else
    {
		return AXIS2_FAILURE;
    }
    if (get_registry_config_parameter(hkey, AXIS2_IIS_LOG_LEVEL_TAG, tmpbuf, sizeof(tmpbuf)))
    {
        log_level = axis2_iis_parse_log_level(tmpbuf);
    }
	else 
	{
		return AXIS2_FAILURE;
	}
	if (get_registry_config_parameter(hkey, AXIS2_IIS_SERVICE_URL_PREFIX, tmpbuf, sizeof(tmpbuf)))
	{
		axis2_request_url_prefix = _strdup(tmpbuf); 
	}
	if (get_registry_config_parameter(hkey, AXIS2_IIS_AXIS2_LOCATION, tmpbuf, sizeof(tmpbuf)))
	{
		axis2_location = _strdup(tmpbuf); 
	}
    RegCloseKey(hkey);
    return ok;
}

axutil_log_levels_t AXIS2_CALL 
axis2_iis_parse_log_level(char level[]) 
{
    if (0 == AXIS2_STRICMP(level, AXIS2_IIS_LOG_TRACE_VERB))
    {
        return AXIS2_LOG_LEVEL_TRACE;
    }
    if (0 == AXIS2_STRICMP(level, AXIS2_IIS_LOG_DEBUG_VERB))
    {
        return AXIS2_LOG_LEVEL_DEBUG;
    }
    if (0 == AXIS2_STRICMP(level, AXIS2_IIS_LOG_INFO_VERB))
    {
        return AXIS2_LOG_LEVEL_INFO;
    }
    if (0 == AXIS2_STRICMP(level, AXIS2_IIS_LOG_USER_VERB))
    {
        return AXIS2_LOG_LEVEL_USER;
    }
    if (0 == AXIS2_STRICMP(level, AXIS2_IIS_LOG_WARN_VERB))
    {
        return AXIS2_LOG_LEVEL_WARNING;
    }
    if (0 == AXIS2_STRICMP(level, AXIS2_IIS_LOG_ERROR_VERB))
    {
        return AXIS2_LOG_LEVEL_ERROR;
    }
    if (0 == AXIS2_STRICMP(level, AXIS2_IIS_LOG_CRITICAL_VERB))
    {
        return AXIS2_LOG_LEVEL_CRITICAL;
    }
    return AXIS2_LOG_LEVEL_DEBUG;
}

axis2_status_t AXIS2_CALL 
get_registry_config_parameter(HKEY hkey, const char *tag, char *b, DWORD sz) 
{
    DWORD type = 0;
    LONG lrc;

    lrc = RegQueryValueEx(hkey, tag, (LPDWORD) 0, &type, (LPBYTE) b, &sz);
    if ((ERROR_SUCCESS != lrc) || (type != REG_SZ))
    {
        return FALSE;
    }
    b[sz] = '\0';
    return TRUE;
}

/**
 * This method initializes the axis2 engine. All the required variables are set to 
 * their initial values in this method.
*/ 
axis2_status_t AXIS2_CALL init_axis2() 
{
    /*
     * These are the varibles required to initialize axis.
     */ 
    axis2_status_t status = FALSE;
    /* We need to init xml readers before we go into threaded env */     
    if (!is_inited)
    {
        axiom_xml_reader_init();
        status = read_registery_init_data();
		if (status == AXIS2_FAILURE)
		{
			return AXIS2_FAILURE;
		}
        axutil_error_init();
		/* Initialize the environement */
        axutil_env = axutil_env_create_all(log_file, log_level);
        if (!axutil_env)
        {
            return AXIS2_FAILURE;
        }
        axis2_worker = axis2_iis_worker_create(axutil_env, repo_path);
        if (!axis2_worker)
        {
            return AXIS2_FAILURE;
        }
        is_inited = AXIS2_TRUE;
		return AXIS2_SUCCESS;
    }
    return AXIS2_FAILURE;
}


<|start_filename|>src/core/transport/tcp/sender/tcp_transport_sender.c<|end_filename|>

/*
 * 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
 *
 *      tcp://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.
 */

#include <axis2_tcp_transport_sender.h>
#include <axutil_string.h>
#include <axis2_endpoint_ref.h>
#include <axis2_addr.h>
#include <axiom_xml_writer.h>
#include <axiom_output.h>
#include <axis2_tcp_transport.h>
#include <axiom_soap_body.h>
#include <axiom_soap.h>
#include <axutil_generic_obj.h>
#include <axutil_types.h>
#include <axutil_url.h>
#include <axutil_network_handler.h>

#define RES_BUFF 50

/**
 * TCP Transport Sender struct impl
 * Axis2 TCP Transport Sender impl
 */

typedef struct axis2_tcp_transport_sender_impl
{
    axis2_transport_sender_t transport_sender;
    int connection_timeout;
    int so_timeout;
} axis2_tcp_transport_sender_impl_t;

#define AXIS2_INTF_TO_IMPL(transport_sender)    \
    ((axis2_tcp_transport_sender_impl_t *)      \
     (transport_sender))

/***************************** Function headers *******************************/
axis2_status_t AXIS2_CALL axis2_tcp_transport_sender_invoke(
    axis2_transport_sender_t * transport_sender,
    const axutil_env_t * env,
    axis2_msg_ctx_t * msg_ctx);

axis2_status_t AXIS2_CALL axis2_tcp_transport_sender_clean_up(
    axis2_transport_sender_t * transport_sender,
    const axutil_env_t * env,
    axis2_msg_ctx_t * msg_ctx);

axis2_status_t AXIS2_CALL axis2_tcp_transport_sender_init(
    axis2_transport_sender_t * transport_sender,
    const axutil_env_t * env,
    axis2_conf_ctx_t * conf_ctx,
    axis2_transport_out_desc_t * out_desc);

axis2_status_t AXIS2_CALL axis2_tcp_transport_sender_write_message(
    axis2_transport_sender_t * transport_sender,
    const axutil_env_t * env,
    axis2_msg_ctx_t * msg_ctx,
    axis2_endpoint_ref_t * epr,
    axiom_soap_envelope_t * out,
    axiom_output_t * om_output);

void AXIS2_CALL axis2_tcp_transport_sender_free(
    axis2_transport_sender_t * transport_sender,
    const axutil_env_t * env);

static const axis2_transport_sender_ops_t tcp_transport_sender_ops_var = {
    axis2_tcp_transport_sender_init,
    axis2_tcp_transport_sender_invoke,
    axis2_tcp_transport_sender_clean_up,
    axis2_tcp_transport_sender_free
};

axis2_transport_sender_t *AXIS2_CALL
axis2_tcp_transport_sender_create(
    const axutil_env_t * env)
{
    axis2_tcp_transport_sender_impl_t *transport_sender_impl = NULL;
    AXIS2_ENV_CHECK(env, NULL);

    transport_sender_impl = (axis2_tcp_transport_sender_impl_t *) AXIS2_MALLOC
        (env->allocator, sizeof(axis2_tcp_transport_sender_impl_t));

    if (!transport_sender_impl)
    {
        AXIS2_ERROR_SET(env->error, AXIS2_ERROR_NO_MEMORY, AXIS2_FAILURE);
        return NULL;
    }
    transport_sender_impl->connection_timeout =
        AXIS2_TCP_DEFAULT_CONNECTION_TIMEOUT;
    transport_sender_impl->so_timeout = AXIS2_TCP_DEFAULT_SO_TIMEOUT;
    transport_sender_impl->transport_sender.ops = &tcp_transport_sender_ops_var;
    return &(transport_sender_impl->transport_sender);
}

void AXIS2_CALL
axis2_tcp_transport_sender_free(
    axis2_transport_sender_t * transport_sender,
    const axutil_env_t * env)
{
    axis2_tcp_transport_sender_impl_t *transport_sender_impl = NULL;
    AXIS2_ENV_CHECK(env, AXIS2_FAILURE);
    transport_sender_impl = AXIS2_INTF_TO_IMPL(transport_sender);
    AXIS2_FREE(env->allocator, transport_sender_impl);
    return;
}

axis2_status_t AXIS2_CALL
axis2_tcp_transport_sender_invoke(
    axis2_transport_sender_t * transport_sender,
    const axutil_env_t * env,
    axis2_msg_ctx_t * msg_ctx)
{
    axis2_op_t *op = NULL;
    const axis2_char_t *mep_uri = NULL;
    axis2_bool_t is_server = AXIS2_TRUE;
    axiom_soap_envelope_t *soap_envelope = NULL;
    axiom_xml_writer_t *xml_writer = NULL;
    axiom_output_t *om_output = NULL;
    axis2_char_t *buffer = NULL;
    axutil_stream_t *out_stream = NULL;
    int buffer_size = 0;
    axis2_conf_ctx_t *conf_ctx = NULL;
    axis2_conf_t *conf = NULL;
    axis2_transport_out_desc_t *trans_desc = NULL;
    axutil_param_t *write_xml_declaration_param = NULL;
    axutil_hash_t *transport_attrs = NULL;
    axis2_bool_t write_xml_declaration = AXIS2_FALSE;

    AXIS2_LOG_DEBUG(env->log, AXIS2_LOG_SI,
                    "start:tcp transport sender invoke");

    op = axis2_msg_ctx_get_op(msg_ctx, env);
    mep_uri = axis2_op_get_msg_exchange_pattern(op, env);

    is_server = axis2_msg_ctx_get_server_side(msg_ctx, env);

    soap_envelope = axis2_msg_ctx_get_soap_envelope(msg_ctx, env);

    xml_writer = axiom_xml_writer_create_for_memory(env, NULL,
                                                    AXIS2_TRUE, 0,
                                                    AXIS2_XML_PARSER_TYPE_BUFFER);
    if (!xml_writer)
    {
        AXIS2_LOG_ERROR(env->log, AXIS2_LOG_SI,
                        "[tcp]Failed to create XML writer");
        return AXIS2_FAILURE;
    }

    om_output = axiom_output_create(env, xml_writer);
    if (!om_output)
    {
        AXIS2_LOG_ERROR(env->log, AXIS2_LOG_SI,
                        "[tcp]Failed to create OM output");
        axiom_xml_writer_free(xml_writer, env);
        xml_writer = NULL;
        return AXIS2_FAILURE;
    }

    conf_ctx = axis2_msg_ctx_get_conf_ctx (msg_ctx, env);
    if (conf_ctx)
    {
        conf = axis2_conf_ctx_get_conf (conf_ctx, env);
    }
    if (conf)
    {
        trans_desc = axis2_conf_get_transport_out (conf,
                                                   env, AXIS2_TRANSPORT_ENUM_TCP);
    }
    if (trans_desc)
    {
        write_xml_declaration_param =
            axutil_param_container_get_param
            (axis2_transport_out_desc_param_container (trans_desc, env), env,
             AXIS2_XML_DECLARATION);
    }
    if (write_xml_declaration_param)
    {
        transport_attrs = axutil_param_get_attributes (write_xml_declaration_param, env);
        if (transport_attrs)
        {
            axutil_generic_obj_t *obj = NULL;
            axiom_attribute_t *write_xml_declaration_attr = NULL;
            axis2_char_t *write_xml_declaration_attr_value = NULL;

            obj = axutil_hash_get (transport_attrs, AXIS2_ADD_XML_DECLARATION,
                           AXIS2_HASH_KEY_STRING);
            if (obj)
            {
                write_xml_declaration_attr = (axiom_attribute_t *) axutil_generic_obj_get_value (obj,
                                                                                         env);
            }
            if (write_xml_declaration_attr)
            {
                write_xml_declaration_attr_value = axiom_attribute_get_value (write_xml_declaration_attr, env);
            }
            if (write_xml_declaration_attr_value && 0 == axutil_strcasecmp (write_xml_declaration_attr_value, AXIS2_VALUE_TRUE))
            {
                write_xml_declaration = AXIS2_TRUE;
            }
        }
    }

    if (write_xml_declaration)
    {
        axiom_output_write_xml_version_encoding (om_output, env);
    }

    axiom_soap_envelope_serialize(soap_envelope, env, om_output, AXIS2_FALSE);

    buffer = (axis2_char_t *) axiom_xml_writer_get_xml(xml_writer, env);
    if (!buffer)
    {
        AXIS2_LOG_ERROR(env->log, AXIS2_LOG_SI,
                        "[tcp]Failed to serialize the SOAP envelope");
        return AXIS2_FAILURE;
    }
    buffer_size = axiom_xml_writer_get_xml_size(xml_writer, env);
    buffer[buffer_size] = 0;
    if (is_server)
    {
        out_stream = axis2_msg_ctx_get_transport_out_stream(msg_ctx, env);
        axutil_stream_write(out_stream, env, buffer, buffer_size);
    }
    else
    {
        axis2_endpoint_ref_t *to = NULL;
        axutil_url_t *to_url = NULL;
        const axis2_char_t *to_str = NULL;
        const axis2_char_t *host = NULL;
        int port = 0;
        int socket = -1;
        axutil_stream_t *stream;
        int write = -1;
        int read = -1;
        axis2_char_t buff[1];
        axis2_char_t *res_buffer = (axis2_char_t *) AXIS2_MALLOC(env->allocator,
                                                                 RES_BUFF);
        int res_size = 0;
        int size = 0;
        axiom_xml_reader_t *reader = NULL;
        axiom_stax_builder_t *builder = NULL;
        axiom_soap_builder_t *soap_builder = NULL;
        axiom_soap_envelope_t *soap_envelope = NULL;

        to = axis2_msg_ctx_get_to(msg_ctx, env);

        if (!to)
        {
            AXIS2_LOG_ERROR(env->log, AXIS2_LOG_SI, "To epr not presant");
            return AXIS2_FAILURE;
        }

        to_str = axis2_endpoint_ref_get_address(to, env);
        if (!to_str)
        {
            AXIS2_LOG_ERROR(env->log, AXIS2_LOG_SI,
                            "unable to convert epr to string");
            return AXIS2_FAILURE;
        }

        to_url = axutil_url_parse_string(env, to_str);

        if (!to_url)
        {
            AXIS2_LOG_ERROR(env->log, AXIS2_LOG_SI,
                            "unable to parser string to url");
            return AXIS2_FAILURE;
        }

        host = axutil_url_get_host(to_url, env);
        if (!host)
        {
            AXIS2_LOG_ERROR(env->log, AXIS2_LOG_SI, "retrieving host failed");
            return AXIS2_FAILURE;
        }

        port = axutil_url_get_port(to_url, env);
        if (!port)
        {
            AXIS2_LOG_ERROR(env->log, AXIS2_LOG_SI, "retrieving port failed");
            return AXIS2_FAILURE;
        }
        socket = (int)axutil_network_handler_open_socket(env, (char *) host, port);
        if (!socket)
        {
            AXIS2_LOG_ERROR(env->log, AXIS2_LOG_SI, "socket creation failed");
            return AXIS2_FAILURE;
        }

        AXIS2_LOG_DEBUG(env->log, AXIS2_LOG_SI,
                        "open socket for host:%s port:%d", host, port);

        stream = axutil_stream_create_socket(env, socket);
        if (!stream)
        {
            AXIS2_LOG_ERROR(env->log, AXIS2_LOG_SI, "stream creation failed");
            return AXIS2_FAILURE;
        }

        write = axutil_stream_write(stream, env, buffer, buffer_size);
        if (write < 0)
        {
            AXIS2_LOG_ERROR(env->log, AXIS2_LOG_SI, "stream write error");
            return AXIS2_FAILURE;
        }
        AXIS2_LOG_TRACE(env->log, AXIS2_LOG_SI, "stream wrote soap msg: %s",
                        buffer);
        write = axutil_stream_write(stream, env, "\r\n\r\n", 4);
        size = RES_BUFF;
        while ((read = axutil_stream_read(stream, env, &buff, 1)) > 0)
        {
            if (res_size >= size)
            {
                axis2_char_t *tmp_buff = NULL;
                size <<= 2;
                tmp_buff = AXIS2_MALLOC(env->allocator, size);
                memcpy(tmp_buff, res_buffer, res_size);
                AXIS2_FREE(env->allocator, res_buffer);
                res_buffer = tmp_buff;
            }
            memcpy(res_buffer + res_size, buff, 1);
            res_size++;
        }

        axutil_network_handler_close_socket(env, stream->socket);
        axutil_stream_close(stream, env);
        axutil_stream_free(stream, env);

        AXIS2_LOG_TRACE(env->log, AXIS2_LOG_SI, "%s", res_buffer);

        reader =
            axiom_xml_reader_create_for_memory(env, res_buffer, (res_size - 1),
                                               NULL,
                                               AXIS2_XML_PARSER_TYPE_BUFFER);

        if (!reader)
        {
            AXIS2_LOG_ERROR(env->log, AXIS2_LOG_SI,
                            "Failed to create XML reader");
            return AXIS2_FAILURE;
        }

        builder = axiom_stax_builder_create(env, reader);
        if (!builder)
        {
            AXIS2_LOG_ERROR(env->log, AXIS2_LOG_SI,
                            "Failed to create Stax builder");
            return AXIS2_FAILURE;
        }

        soap_builder = axiom_soap_builder_create(env, builder,
                                                 AXIOM_SOAP12_SOAP_ENVELOPE_NAMESPACE_URI);
        if (!soap_builder)
        {
            AXIS2_LOG_ERROR(env->log, AXIS2_LOG_SI,
                            "Failed to create SOAP builder");
            return AXIS2_FAILURE;
        }
        soap_envelope = axiom_soap_builder_get_soap_envelope(soap_builder, env);

        if (!soap_envelope)
        {
            AXIS2_LOG_ERROR(env->log, AXIS2_LOG_SI,
                            "Failed to create SOAP envelope");
            return AXIS2_FAILURE;
        }

        axis2_msg_ctx_set_response_soap_envelope(msg_ctx, env, soap_envelope);

    }
    AXIS2_LOG_DEBUG(env->log, AXIS2_LOG_SI, "end:tcp transport sender invoke");
    return AXIS2_SUCCESS;
}

axis2_status_t AXIS2_CALL
axis2_tcp_transport_sender_clean_up(
    axis2_transport_sender_t * transport_sender,
    const axutil_env_t * env,
    axis2_msg_ctx_t * msg_ctx)
{
    AXIS2_ENV_CHECK(env, AXIS2_FAILURE);
    AXIS2_PARAM_CHECK(env->error, msg_ctx, AXIS2_FAILURE);
    /*
     * Clean up is not used. If the tcp sender needs
     * to be cleaned up it should be done here.
     */
    return AXIS2_SUCCESS;
}

axis2_status_t AXIS2_CALL
axis2_tcp_transport_sender_init(
    axis2_transport_sender_t * transport_sender,
    const axutil_env_t * env,
    axis2_conf_ctx_t * conf_ctx,
    axis2_transport_out_desc_t * out_desc)
{
    axis2_char_t *temp = NULL;
    axutil_param_t *temp_param = NULL;
    AXIS2_ENV_CHECK(env, AXIS2_FAILURE);
    AXIS2_PARAM_CHECK(env->error, conf_ctx, AXIS2_FAILURE);
    AXIS2_PARAM_CHECK(env->error, out_desc, AXIS2_FAILURE);

    temp_param =
        axutil_param_container_get_param
        (axis2_transport_out_desc_param_container(out_desc, env), env,
         AXIS2_TCP_SO_TIMEOUT);
    if (temp_param)
    {
        temp = axutil_param_get_value(temp_param, env);
    }
    if (temp)
    {
        AXIS2_INTF_TO_IMPL(transport_sender)->so_timeout = AXIS2_ATOI(temp);
    }
    temp =
        (axis2_char_t *)
        axutil_param_container_get_param
        (axis2_transport_out_desc_param_container(out_desc, env), env,
         AXIS2_TCP_CONNECTION_TIMEOUT);
    if (temp_param)
    {
        temp = axutil_param_get_value(temp_param, env);
    }
    if (temp)
    {
        AXIS2_INTF_TO_IMPL(transport_sender)->connection_timeout =
            AXIS2_ATOI(temp);
    }

    return AXIS2_SUCCESS;
}

axis2_status_t AXIS2_CALL
axis2_tcp_transport_sender_write_message(
    axis2_transport_sender_t * transport_sender,
    const axutil_env_t * env,
    axis2_msg_ctx_t * msg_ctx,
    axis2_endpoint_ref_t * epr,
    axiom_soap_envelope_t * out,
    axiom_output_t * om_output)
{

    return AXIS2_TRUE;
}

/**
 * Following block distinguish the exposed part of the dll.
 */

/* When building for static deployment, give the get and remove methods
 * unique names.  This avoids having the linker fail with duplicate symbol
 * errors.
 */

AXIS2_EXPORT int
#ifndef AXIS2_STATIC_DEPLOY
 axis2_get_instance(
#else
axis2_tcp_transport_sender_get_instance(
#endif
    struct axis2_transport_sender **inst,
    const axutil_env_t * env)
{
    *inst = axis2_tcp_transport_sender_create(env);
    if (!(*inst))
    {
        return AXIS2_FAILURE;
    }

    return AXIS2_SUCCESS;
}

AXIS2_EXPORT int
#ifndef AXIS2_STATIC_DEPLOY
 axis2_remove_instance(
#else
axis2_tcp_transport_sender_remove_instance(
#endif
    axis2_transport_sender_t * inst,
    const axutil_env_t * env)
{
    if (inst)
    {
        AXIS2_TRANSPORT_SENDER_FREE(inst, env);
    }
    return AXIS2_SUCCESS;
}


<|start_filename|>neethi/src/secpolicy/model/wss11.c<|end_filename|>

/*
 * 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.
 */

#include <rp_wss11.h>

struct rp_wss11_t
{
    axis2_bool_t must_support_ref_key_identifier;
    axis2_bool_t must_support_ref_issuer_serial;
    axis2_bool_t must_support_ref_external_uri;
    axis2_bool_t must_support_ref_embedded_token;
    axis2_bool_t must_support_ref_thumbprint;
    axis2_bool_t must_support_ref_encryptedkey;
    axis2_bool_t require_signature_confirmation;
    axis2_bool_t must_support_direct_reference;
    int ref;
};

AXIS2_EXTERN rp_wss11_t *AXIS2_CALL
rp_wss11_create(
    const axutil_env_t * env)
{
    rp_wss11_t *wss11 = NULL;

    AXIS2_ENV_CHECK(env, NULL);

    wss11 = (rp_wss11_t *) AXIS2_MALLOC(env->allocator, sizeof(rp_wss11_t));

    if (wss11 == NULL)
    {
        AXIS2_ERROR_SET(env->error, AXIS2_ERROR_NO_MEMORY, AXIS2_FAILURE);
        return NULL;
    }
    wss11->must_support_ref_key_identifier = AXIS2_FALSE;
    wss11->must_support_ref_issuer_serial = AXIS2_FALSE;
    wss11->must_support_ref_external_uri = AXIS2_FALSE;
    wss11->must_support_ref_embedded_token = AXIS2_FALSE;
    wss11->must_support_ref_thumbprint = AXIS2_FALSE;
    wss11->must_support_ref_encryptedkey = AXIS2_FALSE;
    wss11->require_signature_confirmation = AXIS2_FALSE;
    wss11->must_support_direct_reference = AXIS2_TRUE;
    wss11->ref = 0;

    return wss11;

}

AXIS2_EXTERN void AXIS2_CALL
rp_wss11_free(
    rp_wss11_t * wss11,
    const axutil_env_t * env)
{
    AXIS2_ENV_CHECK(env, AXIS2_FAILURE);

    if (wss11)
    {
        if (--(wss11->ref) > 0)
        {
            return;
        }
        AXIS2_FREE(env->allocator, wss11);
        wss11 = NULL;
    }
    return;
}

/* Implementations */
AXIS2_EXTERN axis2_bool_t AXIS2_CALL
rp_wss11_get_must_support_ref_key_identifier(
    rp_wss11_t * wss11,
    const axutil_env_t * env)
{
    AXIS2_ENV_CHECK(env, AXIS2_FALSE);

    return wss11->must_support_ref_key_identifier;
}

AXIS2_EXTERN axis2_status_t AXIS2_CALL
rp_wss11_set_must_support_ref_key_identifier(
    rp_wss11_t * wss11,
    const axutil_env_t * env,
    axis2_bool_t must_support_ref_key_identifier)
{
    AXIS2_ENV_CHECK(env, AXIS2_FAILURE);
    AXIS2_PARAM_CHECK(env->error, must_support_ref_key_identifier,
                      AXIS2_FAILURE);
    wss11->must_support_ref_key_identifier = must_support_ref_key_identifier;

    return AXIS2_SUCCESS;

}

AXIS2_EXTERN axis2_bool_t AXIS2_CALL
rp_wss11_get_must_support_ref_issuer_serial(
    rp_wss11_t * wss11,
    const axutil_env_t * env)
{
    AXIS2_ENV_CHECK(env, AXIS2_FALSE);

    return wss11->must_support_ref_issuer_serial;
}

AXIS2_EXTERN axis2_status_t AXIS2_CALL
rp_wss11_set_must_support_ref_issuer_serial(
    rp_wss11_t * wss11,
    const axutil_env_t * env,
    axis2_bool_t must_support_ref_issuer_serial)
{
    AXIS2_ENV_CHECK(env, AXIS2_FAILURE);
    AXIS2_PARAM_CHECK(env->error, must_support_ref_issuer_serial,
                      AXIS2_FAILURE);
    wss11->must_support_ref_issuer_serial = must_support_ref_issuer_serial;

    return AXIS2_SUCCESS;

}

AXIS2_EXTERN axis2_bool_t AXIS2_CALL
rp_wss11_get_must_support_ref_external_uri(
    rp_wss11_t * wss11,
    const axutil_env_t * env)
{
    AXIS2_ENV_CHECK(env, AXIS2_FALSE);

    return wss11->must_support_ref_external_uri;

}

AXIS2_EXTERN axis2_status_t AXIS2_CALL
rp_wss11_set_must_support_ref_external_uri(
    rp_wss11_t * wss11,
    const axutil_env_t * env,
    axis2_bool_t must_support_ref_external_uri)
{
    AXIS2_ENV_CHECK(env, AXIS2_FAILURE);
    AXIS2_PARAM_CHECK(env->error, must_support_ref_external_uri, AXIS2_FAILURE);
    wss11->must_support_ref_external_uri = must_support_ref_external_uri;

    return AXIS2_SUCCESS;
}

AXIS2_EXTERN axis2_bool_t AXIS2_CALL
rp_wss11_get_must_support_ref_embedded_token(
    rp_wss11_t * wss11,
    const axutil_env_t * env)
{
    AXIS2_ENV_CHECK(env, AXIS2_FALSE);

    return wss11->must_support_ref_embedded_token;
}

AXIS2_EXTERN axis2_status_t AXIS2_CALL
rp_wss11_set_must_support_ref_embedded_token(
    rp_wss11_t * wss11,
    const axutil_env_t * env,
    axis2_bool_t must_support_ref_embedded_token)
{
    AXIS2_ENV_CHECK(env, AXIS2_FAILURE);
    AXIS2_PARAM_CHECK(env->error, must_support_ref_embedded_token,
                      AXIS2_FAILURE);
    wss11->must_support_ref_embedded_token = must_support_ref_embedded_token;

    return AXIS2_SUCCESS;
}

AXIS2_EXTERN axis2_bool_t AXIS2_CALL
rp_wss11_get_must_support_ref_thumbprint(
    rp_wss11_t * wss11,
    const axutil_env_t * env)
{
    AXIS2_ENV_CHECK(env, AXIS2_FALSE);

    return wss11->must_support_ref_thumbprint;
}

AXIS2_EXTERN axis2_status_t AXIS2_CALL
rp_wss11_set_must_support_ref_thumbprint(
    rp_wss11_t * wss11,
    const axutil_env_t * env,
    axis2_bool_t must_support_ref_thumbprint)
{
    AXIS2_ENV_CHECK(env, AXIS2_FALSE);
    AXIS2_PARAM_CHECK(env->error, must_support_ref_thumbprint, AXIS2_FAILURE);
    wss11->must_support_ref_thumbprint = must_support_ref_thumbprint;

    return AXIS2_SUCCESS;
}

AXIS2_EXTERN axis2_bool_t AXIS2_CALL
rp_wss11_get_must_support_ref_encryptedkey(
    rp_wss11_t * wss11,
    const axutil_env_t * env)
{
    AXIS2_ENV_CHECK(env, AXIS2_FALSE);

    return wss11->must_support_ref_encryptedkey;
}

AXIS2_EXTERN axis2_status_t AXIS2_CALL
rp_wss11_set_must_support_ref_encryptedkey(
    rp_wss11_t * wss11,
    const axutil_env_t * env,
    axis2_bool_t must_support_ref_encryptedkey)
{
    AXIS2_ENV_CHECK(env, AXIS2_FAILURE);
    AXIS2_PARAM_CHECK(env->error, must_support_ref_encryptedkey, AXIS2_FAILURE);
    wss11->must_support_ref_encryptedkey = must_support_ref_encryptedkey;

    return AXIS2_SUCCESS;

}

AXIS2_EXTERN axis2_bool_t AXIS2_CALL
rp_wss11_get_require_signature_confirmation(
    rp_wss11_t * wss11,
    const axutil_env_t * env)
{
    AXIS2_ENV_CHECK(env, AXIS2_FALSE);

    return wss11->require_signature_confirmation;
}

AXIS2_EXTERN axis2_status_t AXIS2_CALL
rp_wss11_set_require_signature_confirmation(
    rp_wss11_t * wss11,
    const axutil_env_t * env,
    axis2_bool_t require_signature_confirmation)
{
    AXIS2_ENV_CHECK(env, AXIS2_FAILURE);
    AXIS2_PARAM_CHECK(env->error, require_signature_confirmation,
                      AXIS2_FAILURE);
    wss11->require_signature_confirmation = require_signature_confirmation;

    return AXIS2_SUCCESS;

}

AXIS2_EXTERN axis2_status_t AXIS2_CALL
rp_wss11_increment_ref(
    rp_wss11_t * wss11,
    const axutil_env_t * env)
{
    AXIS2_ENV_CHECK(env, AXIS2_FAILURE);
    wss11->ref++;
    return AXIS2_SUCCESS;
}


<|start_filename|>xdocs/api/html/group__axis2__svc__grp__ctx.html<|end_filename|>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html><head><meta http-equiv="Content-Type" content="text/html;charset=UTF-8">
<title>Axis2/C: service group context</title>
<link href="doxygen.css" rel="stylesheet" type="text/css">
<link href="tabs.css" rel="stylesheet" type="text/css">
</head><body>
<!-- Generated by Doxygen 1.5.3 -->
<div class="tabs">
  <ul>
    <li><a href="index.html"><span>Main&nbsp;Page</span></a></li>
    <li><a href="modules.html"><span>Modules</span></a></li>
    <li><a href="annotated.html"><span>Classes</span></a></li>
    <li><a href="files.html"><span>Files</span></a></li>
    <li><a href="dirs.html"><span>Directories</span></a></li>
    <li><a href="pages.html"><span>Related&nbsp;Pages</span></a></li>
    <li><a href="examples.html"><span>Examples</span></a></li>
    <li>
      <form action="search.php" method="get">
        <table cellspacing="0" cellpadding="0" border="0">
          <tr>
            <td><label>&nbsp;<u>S</u>earch&nbsp;for&nbsp;</label></td>
            <td><input type="text" name="query" value="" size="20" accesskey="s"/></td>
          </tr>
        </table>
      </form>
    </li>
  </ul>
</div>
<h1>service group context<br>
<small>
[<a class="el" href="group__axis2__context.html">Context Hierarchy</a>]</small>
</h1><table border="0" cellpadding="0" cellspacing="0">
<tr><td></td></tr>
<tr><td colspan="2"><br><h2>Files</h2></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top">file &nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="axis2__svc__grp__ctx_8h.html">axis2_svc_grp_ctx.h</a></td></tr>

<tr><td colspan="2"><br><h2>Typedefs</h2></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top">typedef struct <br>
axis2_svc_grp_ctx&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__axis2__svc__grp__ctx.html#g340e0c5f75d6579013ff5768b37e4a07">axis2_svc_grp_ctx_t</a></td></tr>

<tr><td colspan="2"><br><h2>Functions</h2></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top">AXIS2_EXTERN <br>
<a class="el" href="group__axis2__svc__grp__ctx.html#g340e0c5f75d6579013ff5768b37e4a07">axis2_svc_grp_ctx_t</a> *&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__axis2__svc__grp__ctx.html#ge0d00b9b416c6d13673844dae01c7dd1">axis2_svc_grp_ctx_create</a> (const <a class="el" href="structaxutil__env.html">axutil_env_t</a> *env, struct axis2_svc_grp *svc_grp, struct axis2_conf_ctx *conf_ctx)</td></tr>

<tr><td class="memItemLeft" nowrap align="right" valign="top">AXIS2_EXTERN <br>
<a class="el" href="group__axis2__ctx.html#ga705ff779281577f08fef5330c23402c">axis2_ctx_t</a> *&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__axis2__svc__grp__ctx.html#gc0e89428bb66e652ddb0fd35bce6f62d">axis2_svc_grp_ctx_get_base</a> (const <a class="el" href="group__axis2__svc__grp__ctx.html#g340e0c5f75d6579013ff5768b37e4a07">axis2_svc_grp_ctx_t</a> *svc_grp_ctx, const <a class="el" href="structaxutil__env.html">axutil_env_t</a> *env)</td></tr>

<tr><td class="memItemLeft" nowrap align="right" valign="top">AXIS2_EXTERN struct <br>
axis2_conf_ctx *&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__axis2__svc__grp__ctx.html#g237da85b5cccbee2d725b59a4885d892">axis2_svc_grp_ctx_get_parent</a> (const <a class="el" href="group__axis2__svc__grp__ctx.html#g340e0c5f75d6579013ff5768b37e4a07">axis2_svc_grp_ctx_t</a> *svc_grp_ctx, const <a class="el" href="structaxutil__env.html">axutil_env_t</a> *env)</td></tr>

<tr><td class="memItemLeft" nowrap align="right" valign="top">AXIS2_EXTERN void&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__axis2__svc__grp__ctx.html#g0fd950866065679d54ca9f6a8a2edfaa">axis2_svc_grp_ctx_free</a> (struct axis2_svc_grp_ctx *svc_grp_ctx, const <a class="el" href="structaxutil__env.html">axutil_env_t</a> *env)</td></tr>

<tr><td class="memItemLeft" nowrap align="right" valign="top">AXIS2_EXTERN <br>
axis2_status_t&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__axis2__svc__grp__ctx.html#ga9b023de30ee0669a6e19b37417c4539">axis2_svc_grp_ctx_init</a> (struct axis2_svc_grp_ctx *svc_grp_ctx, const <a class="el" href="structaxutil__env.html">axutil_env_t</a> *env, struct axis2_conf *conf)</td></tr>

<tr><td class="memItemLeft" nowrap align="right" valign="top">AXIS2_EXTERN const <br>
axis2_char_t *&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__axis2__svc__grp__ctx.html#g5706c6b6c2d6ad360b0fcae17e66e521">axis2_svc_grp_ctx_get_id</a> (const <a class="el" href="group__axis2__svc__grp__ctx.html#g340e0c5f75d6579013ff5768b37e4a07">axis2_svc_grp_ctx_t</a> *svc_grp_ctx, const <a class="el" href="structaxutil__env.html">axutil_env_t</a> *env)</td></tr>

<tr><td class="memItemLeft" nowrap align="right" valign="top">AXIS2_EXTERN <br>
axis2_status_t&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__axis2__svc__grp__ctx.html#ga13372f182ee6a6e712b82268a1e19e7">axis2_svc_grp_ctx_set_id</a> (struct axis2_svc_grp_ctx *svc_grp_ctx, const <a class="el" href="structaxutil__env.html">axutil_env_t</a> *env, const axis2_char_t *id)</td></tr>

<tr><td class="memItemLeft" nowrap align="right" valign="top">AXIS2_EXTERN struct <br>
axis2_svc_ctx *&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__axis2__svc__grp__ctx.html#gb928c64e7297cf73eabac7dd6c851ecd">axis2_svc_grp_ctx_get_svc_ctx</a> (const <a class="el" href="group__axis2__svc__grp__ctx.html#g340e0c5f75d6579013ff5768b37e4a07">axis2_svc_grp_ctx_t</a> *svc_grp_ctx, const <a class="el" href="structaxutil__env.html">axutil_env_t</a> *env, const axis2_char_t *svc_name)</td></tr>

<tr><td class="memItemLeft" nowrap align="right" valign="top">AXIS2_EXTERN <br>
axis2_status_t&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__axis2__svc__grp__ctx.html#gd39cf31f9ed602c15a98b847072fcb3c">axis2_svc_grp_ctx_fill_svc_ctx_map</a> (struct axis2_svc_grp_ctx *svc_grp_ctx, const <a class="el" href="structaxutil__env.html">axutil_env_t</a> *env)</td></tr>

<tr><td class="memItemLeft" nowrap align="right" valign="top">AXIS2_EXTERN struct <br>
axis2_svc_grp *&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__axis2__svc__grp__ctx.html#g07609d72f69f20b13a8a6d9d9c7a51cc">axis2_svc_grp_ctx_get_svc_grp</a> (const <a class="el" href="group__axis2__svc__grp__ctx.html#g340e0c5f75d6579013ff5768b37e4a07">axis2_svc_grp_ctx_t</a> *svc_grp_ctx, const <a class="el" href="structaxutil__env.html">axutil_env_t</a> *env)</td></tr>

<tr><td class="memItemLeft" nowrap align="right" valign="top">AXIS2_EXTERN <br>
<a class="el" href="group__axutil__hash.html#gb2d7d14db2de92a101573f44421ac12a">axutil_hash_t</a> *&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__axis2__svc__grp__ctx.html#g7c8027f1714d507296e9defc65defeb5">axis2_svc_grp_ctx_get_svc_ctx_map</a> (const <a class="el" href="group__axis2__svc__grp__ctx.html#g340e0c5f75d6579013ff5768b37e4a07">axis2_svc_grp_ctx_t</a> *svc_grp_ctx, const <a class="el" href="structaxutil__env.html">axutil_env_t</a> *env)</td></tr>

</table>
<hr><a name="_details"></a><h2>Detailed Description</h2>
service group context represents a running "instance" of a service group. service group context allows instance of services belonging to a service group to be grouped. <hr><h2>Typedef Documentation</h2>
<a class="anchor" name="g340e0c5f75d6579013ff5768b37e4a07"></a><!-- doxytag: member="axis2_svc_grp_ctx.h::axis2_svc_grp_ctx_t" ref="g340e0c5f75d6579013ff5768b37e4a07" args="" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">typedef struct axis2_svc_grp_ctx <a class="el" href="group__axis2__svc__grp__ctx.html#g340e0c5f75d6579013ff5768b37e4a07">axis2_svc_grp_ctx_t</a>          </td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
Type name for struct svc_grp_ctx 
</div>
</div><p>
<hr><h2>Function Documentation</h2>
<a class="anchor" name="ge0d00b9b416c6d13673844dae01c7dd1"></a><!-- doxytag: member="axis2_svc_grp_ctx.h::axis2_svc_grp_ctx_create" ref="ge0d00b9b416c6d13673844dae01c7dd1" args="(const axutil_env_t *env, struct axis2_svc_grp *svc_grp, struct axis2_conf_ctx *conf_ctx)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">AXIS2_EXTERN <a class="el" href="group__axis2__svc__grp__ctx.html#g340e0c5f75d6579013ff5768b37e4a07">axis2_svc_grp_ctx_t</a>* axis2_svc_grp_ctx_create           </td>
          <td>(</td>
          <td class="paramtype">const <a class="el" href="structaxutil__env.html">axutil_env_t</a> *&nbsp;</td>
          <td class="paramname"> <em>env</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">struct axis2_svc_grp *&nbsp;</td>
          <td class="paramname"> <em>svc_grp</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">struct axis2_conf_ctx *&nbsp;</td>
          <td class="paramname"> <em>conf_ctx</em></td><td>&nbsp;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td><td width="100%"></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
Creates a service group context struct. <dl compact><dt><b>Parameters:</b></dt><dd>
  <table border="0" cellspacing="2" cellpadding="0">
    <tr><td valign="top"></td><td valign="top"><em>env</em>&nbsp;</td><td>pointer to environment struct </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>svc_grp</em>&nbsp;</td><td>pointer to service group that this service context represents, service group context does not assume the ownership of the struct </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>conf_ctx</em>&nbsp;</td><td>pointer to configuration context, the parent context of the newly created service group context, service group context does not assume the ownership of the struct </td></tr>
  </table>
</dl>
<dl class="return" compact><dt><b>Returns:</b></dt><dd>pointer to newly created service group context </dd></dl>

</div>
</div><p>
<a class="anchor" name="gd39cf31f9ed602c15a98b847072fcb3c"></a><!-- doxytag: member="axis2_svc_grp_ctx.h::axis2_svc_grp_ctx_fill_svc_ctx_map" ref="gd39cf31f9ed602c15a98b847072fcb3c" args="(struct axis2_svc_grp_ctx *svc_grp_ctx, const axutil_env_t *env)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">AXIS2_EXTERN axis2_status_t axis2_svc_grp_ctx_fill_svc_ctx_map           </td>
          <td>(</td>
          <td class="paramtype">struct axis2_svc_grp_ctx *&nbsp;</td>
          <td class="paramname"> <em>svc_grp_ctx</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const <a class="el" href="structaxutil__env.html">axutil_env_t</a> *&nbsp;</td>
          <td class="paramname"> <em>env</em></td><td>&nbsp;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td><td width="100%"></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
Fills service context map. This will create one service context per each service in the service group related to this service context. <dl compact><dt><b>Parameters:</b></dt><dd>
  <table border="0" cellspacing="2" cellpadding="0">
    <tr><td valign="top"></td><td valign="top"><em>svc_grp_ctx</em>&nbsp;</td><td>pointer to service group context </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>env</em>&nbsp;</td><td>pointer to environment struct </td></tr>
  </table>
</dl>
<dl class="return" compact><dt><b>Returns:</b></dt><dd>AXIS2_SUCCESS on success, else AXIS2_FAILURE </dd></dl>

</div>
</div><p>
<a class="anchor" name="g0fd950866065679d54ca9f6a8a2edfaa"></a><!-- doxytag: member="axis2_svc_grp_ctx.h::axis2_svc_grp_ctx_free" ref="g0fd950866065679d54ca9f6a8a2edfaa" args="(struct axis2_svc_grp_ctx *svc_grp_ctx, const axutil_env_t *env)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">AXIS2_EXTERN void axis2_svc_grp_ctx_free           </td>
          <td>(</td>
          <td class="paramtype">struct axis2_svc_grp_ctx *&nbsp;</td>
          <td class="paramname"> <em>svc_grp_ctx</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const <a class="el" href="structaxutil__env.html">axutil_env_t</a> *&nbsp;</td>
          <td class="paramname"> <em>env</em></td><td>&nbsp;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td><td width="100%"></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
Frees service group context. <dl compact><dt><b>Parameters:</b></dt><dd>
  <table border="0" cellspacing="2" cellpadding="0">
    <tr><td valign="top"></td><td valign="top"><em>svc_grp_ctx</em>&nbsp;</td><td>pointer to service group context </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>env</em>&nbsp;</td><td>pointer to environment struct </td></tr>
  </table>
</dl>
<dl class="return" compact><dt><b>Returns:</b></dt><dd>void </dd></dl>

</div>
</div><p>
<a class="anchor" name="gc0e89428bb66e652ddb0fd35bce6f62d"></a><!-- doxytag: member="axis2_svc_grp_ctx.h::axis2_svc_grp_ctx_get_base" ref="gc0e89428bb66e652ddb0fd35bce6f62d" args="(const axis2_svc_grp_ctx_t *svc_grp_ctx, const axutil_env_t *env)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">AXIS2_EXTERN <a class="el" href="group__axis2__ctx.html#ga705ff779281577f08fef5330c23402c">axis2_ctx_t</a>* axis2_svc_grp_ctx_get_base           </td>
          <td>(</td>
          <td class="paramtype">const <a class="el" href="group__axis2__svc__grp__ctx.html#g340e0c5f75d6579013ff5768b37e4a07">axis2_svc_grp_ctx_t</a> *&nbsp;</td>
          <td class="paramname"> <em>svc_grp_ctx</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const <a class="el" href="structaxutil__env.html">axutil_env_t</a> *&nbsp;</td>
          <td class="paramname"> <em>env</em></td><td>&nbsp;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td><td width="100%"></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
Gets base which is of type context. <dl compact><dt><b>Parameters:</b></dt><dd>
  <table border="0" cellspacing="2" cellpadding="0">
    <tr><td valign="top"></td><td valign="top"><em>svc_grp_ctx</em>&nbsp;</td><td>pointer to service group context </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>env</em>&nbsp;</td><td>pointer to environment </td></tr>
  </table>
</dl>
<dl class="return" compact><dt><b>Returns:</b></dt><dd>pointer to base context struct, returns a reference not a cloned copy </dd></dl>

</div>
</div><p>
<a class="anchor" name="g5706c6b6c2d6ad360b0fcae17e66e521"></a><!-- doxytag: member="axis2_svc_grp_ctx.h::axis2_svc_grp_ctx_get_id" ref="g5706c6b6c2d6ad360b0fcae17e66e521" args="(const axis2_svc_grp_ctx_t *svc_grp_ctx, const axutil_env_t *env)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">AXIS2_EXTERN const axis2_char_t* axis2_svc_grp_ctx_get_id           </td>
          <td>(</td>
          <td class="paramtype">const <a class="el" href="group__axis2__svc__grp__ctx.html#g340e0c5f75d6579013ff5768b37e4a07">axis2_svc_grp_ctx_t</a> *&nbsp;</td>
          <td class="paramname"> <em>svc_grp_ctx</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const <a class="el" href="structaxutil__env.html">axutil_env_t</a> *&nbsp;</td>
          <td class="paramname"> <em>env</em></td><td>&nbsp;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td><td width="100%"></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
Gets service group context ID. <dl compact><dt><b>Parameters:</b></dt><dd>
  <table border="0" cellspacing="2" cellpadding="0">
    <tr><td valign="top"></td><td valign="top"><em>svc_grp_ctx</em>&nbsp;</td><td>pointer to service group context </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>env</em>&nbsp;</td><td>pointer to environment struct </td></tr>
  </table>
</dl>
<dl class="return" compact><dt><b>Returns:</b></dt><dd>service group context ID string </dd></dl>

</div>
</div><p>
<a class="anchor" name="g237da85b5cccbee2d725b59a4885d892"></a><!-- doxytag: member="axis2_svc_grp_ctx.h::axis2_svc_grp_ctx_get_parent" ref="g237da85b5cccbee2d725b59a4885d892" args="(const axis2_svc_grp_ctx_t *svc_grp_ctx, const axutil_env_t *env)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">AXIS2_EXTERN struct axis2_conf_ctx* axis2_svc_grp_ctx_get_parent           </td>
          <td>(</td>
          <td class="paramtype">const <a class="el" href="group__axis2__svc__grp__ctx.html#g340e0c5f75d6579013ff5768b37e4a07">axis2_svc_grp_ctx_t</a> *&nbsp;</td>
          <td class="paramname"> <em>svc_grp_ctx</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const <a class="el" href="structaxutil__env.html">axutil_env_t</a> *&nbsp;</td>
          <td class="paramname"> <em>env</em></td><td>&nbsp;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td><td width="100%"><code> [read]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
Gets parent. configuration context is the parent of any service group context instance. <dl compact><dt><b>Parameters:</b></dt><dd>
  <table border="0" cellspacing="2" cellpadding="0">
    <tr><td valign="top"></td><td valign="top"><em>svc_grp_ctx</em>&nbsp;</td><td>pointer to service group context </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>env</em>&nbsp;</td><td>pointer to environment struct </td></tr>
  </table>
</dl>
<dl class="return" compact><dt><b>Returns:</b></dt><dd>pointer to configuration context, parent of service group </dd></dl>

</div>
</div><p>
<a class="anchor" name="gb928c64e7297cf73eabac7dd6c851ecd"></a><!-- doxytag: member="axis2_svc_grp_ctx.h::axis2_svc_grp_ctx_get_svc_ctx" ref="gb928c64e7297cf73eabac7dd6c851ecd" args="(const axis2_svc_grp_ctx_t *svc_grp_ctx, const axutil_env_t *env, const axis2_char_t *svc_name)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">AXIS2_EXTERN struct axis2_svc_ctx* axis2_svc_grp_ctx_get_svc_ctx           </td>
          <td>(</td>
          <td class="paramtype">const <a class="el" href="group__axis2__svc__grp__ctx.html#g340e0c5f75d6579013ff5768b37e4a07">axis2_svc_grp_ctx_t</a> *&nbsp;</td>
          <td class="paramname"> <em>svc_grp_ctx</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const <a class="el" href="structaxutil__env.html">axutil_env_t</a> *&nbsp;</td>
          <td class="paramname"> <em>env</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const axis2_char_t *&nbsp;</td>
          <td class="paramname"> <em>svc_name</em></td><td>&nbsp;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td><td width="100%"><code> [read]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
Gets named service context. <dl compact><dt><b>Parameters:</b></dt><dd>
  <table border="0" cellspacing="2" cellpadding="0">
    <tr><td valign="top"></td><td valign="top"><em>svc_grp_ctx</em>&nbsp;</td><td>pointer to service group context </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>env</em>&nbsp;</td><td>pointer to environment struct </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>svc_name</em>&nbsp;</td><td>name of service context to be retrieved </td></tr>
  </table>
</dl>
<dl class="return" compact><dt><b>Returns:</b></dt><dd>pointer to named service context </dd></dl>

</div>
</div><p>
<a class="anchor" name="g7c8027f1714d507296e9defc65defeb5"></a><!-- doxytag: member="axis2_svc_grp_ctx.h::axis2_svc_grp_ctx_get_svc_ctx_map" ref="g7c8027f1714d507296e9defc65defeb5" args="(const axis2_svc_grp_ctx_t *svc_grp_ctx, const axutil_env_t *env)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">AXIS2_EXTERN <a class="el" href="group__axutil__hash.html#gb2d7d14db2de92a101573f44421ac12a">axutil_hash_t</a>* axis2_svc_grp_ctx_get_svc_ctx_map           </td>
          <td>(</td>
          <td class="paramtype">const <a class="el" href="group__axis2__svc__grp__ctx.html#g340e0c5f75d6579013ff5768b37e4a07">axis2_svc_grp_ctx_t</a> *&nbsp;</td>
          <td class="paramname"> <em>svc_grp_ctx</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const <a class="el" href="structaxutil__env.html">axutil_env_t</a> *&nbsp;</td>
          <td class="paramname"> <em>env</em></td><td>&nbsp;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td><td width="100%"></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
Gets service context map containing all service contexts. <dl compact><dt><b>Parameters:</b></dt><dd>
  <table border="0" cellspacing="2" cellpadding="0">
    <tr><td valign="top"></td><td valign="top"><em>svc_grp_ctx</em>&nbsp;</td><td>pointer to service group context </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>env</em>&nbsp;</td><td>pointer to environment struct </td></tr>
  </table>
</dl>
<dl class="return" compact><dt><b>Returns:</b></dt><dd>pointer to hash table containing the service context map </dd></dl>

</div>
</div><p>
<a class="anchor" name="g07609d72f69f20b13a8a6d9d9c7a51cc"></a><!-- doxytag: member="axis2_svc_grp_ctx.h::axis2_svc_grp_ctx_get_svc_grp" ref="g07609d72f69f20b13a8a6d9d9c7a51cc" args="(const axis2_svc_grp_ctx_t *svc_grp_ctx, const axutil_env_t *env)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">AXIS2_EXTERN struct axis2_svc_grp* axis2_svc_grp_ctx_get_svc_grp           </td>
          <td>(</td>
          <td class="paramtype">const <a class="el" href="group__axis2__svc__grp__ctx.html#g340e0c5f75d6579013ff5768b37e4a07">axis2_svc_grp_ctx_t</a> *&nbsp;</td>
          <td class="paramname"> <em>svc_grp_ctx</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const <a class="el" href="structaxutil__env.html">axutil_env_t</a> *&nbsp;</td>
          <td class="paramname"> <em>env</em></td><td>&nbsp;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td><td width="100%"><code> [read]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
Gets service group related to this service context. <dl compact><dt><b>Parameters:</b></dt><dd>
  <table border="0" cellspacing="2" cellpadding="0">
    <tr><td valign="top"></td><td valign="top"><em>svc_grp_ctx</em>&nbsp;</td><td>pointer to service group context </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>env</em>&nbsp;</td><td>pointer to environment struct </td></tr>
  </table>
</dl>
<dl class="return" compact><dt><b>Returns:</b></dt><dd>pointer to service group that this service group context represents </dd></dl>

</div>
</div><p>
<a class="anchor" name="ga9b023de30ee0669a6e19b37417c4539"></a><!-- doxytag: member="axis2_svc_grp_ctx.h::axis2_svc_grp_ctx_init" ref="ga9b023de30ee0669a6e19b37417c4539" args="(struct axis2_svc_grp_ctx *svc_grp_ctx, const axutil_env_t *env, struct axis2_conf *conf)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">AXIS2_EXTERN axis2_status_t axis2_svc_grp_ctx_init           </td>
          <td>(</td>
          <td class="paramtype">struct axis2_svc_grp_ctx *&nbsp;</td>
          <td class="paramname"> <em>svc_grp_ctx</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const <a class="el" href="structaxutil__env.html">axutil_env_t</a> *&nbsp;</td>
          <td class="paramname"> <em>env</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">struct axis2_conf *&nbsp;</td>
          <td class="paramname"> <em>conf</em></td><td>&nbsp;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td><td width="100%"></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
Initializes service group context. In this method, it pics the related service group from configuration and keeps a reference for future use. <dl compact><dt><b>Parameters:</b></dt><dd>
  <table border="0" cellspacing="2" cellpadding="0">
    <tr><td valign="top"></td><td valign="top"><em>svc_grp_ctx</em>&nbsp;</td><td>pointer to service group context </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>env</em>&nbsp;</td><td>pointer to environment struct </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>conf</em>&nbsp;</td><td>pointer to configuration </td></tr>
  </table>
</dl>
<dl class="return" compact><dt><b>Returns:</b></dt><dd>AXIS2_SUCCESS on success, else AXIS2_FAILURE </dd></dl>

</div>
</div><p>
<a class="anchor" name="ga13372f182ee6a6e712b82268a1e19e7"></a><!-- doxytag: member="axis2_svc_grp_ctx.h::axis2_svc_grp_ctx_set_id" ref="ga13372f182ee6a6e712b82268a1e19e7" args="(struct axis2_svc_grp_ctx *svc_grp_ctx, const axutil_env_t *env, const axis2_char_t *id)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">AXIS2_EXTERN axis2_status_t axis2_svc_grp_ctx_set_id           </td>
          <td>(</td>
          <td class="paramtype">struct axis2_svc_grp_ctx *&nbsp;</td>
          <td class="paramname"> <em>svc_grp_ctx</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const <a class="el" href="structaxutil__env.html">axutil_env_t</a> *&nbsp;</td>
          <td class="paramname"> <em>env</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const axis2_char_t *&nbsp;</td>
          <td class="paramname"> <em>id</em></td><td>&nbsp;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td><td width="100%"></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
Sets service group context ID. <dl compact><dt><b>Parameters:</b></dt><dd>
  <table border="0" cellspacing="2" cellpadding="0">
    <tr><td valign="top"></td><td valign="top"><em>svc_grp_ctx</em>&nbsp;</td><td>pointer to service group context </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>env</em>&nbsp;</td><td>pointer to environment struct </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>id</em>&nbsp;</td><td>service group context ID </td></tr>
  </table>
</dl>
<dl class="return" compact><dt><b>Returns:</b></dt><dd>AXIS2_SUCCESS on success, else AXIS2_FAILURE </dd></dl>

</div>
</div><p>
<hr size="1"><address style="text-align: right;"><small>Generated on Fri Apr 17 11:49:45 2009 for Axis2/C by&nbsp;
<a href="http://www.doxygen.org/index.html">
<img src="doxygen.png" alt="doxygen" align="middle" border="0"></a> 1.5.3 </small></address>
</body>
</html>


<|start_filename|>xdocs/api/html/axutil__error_8h-source.html<|end_filename|>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html><head><meta http-equiv="Content-Type" content="text/html;charset=UTF-8">
<title>Axis2/C: axutil_error.h Source File</title>
<link href="doxygen.css" rel="stylesheet" type="text/css">
<link href="tabs.css" rel="stylesheet" type="text/css">
</head><body>
<!-- Generated by Doxygen 1.5.3 -->
<div class="tabs">
  <ul>
    <li><a href="index.html"><span>Main&nbsp;Page</span></a></li>
    <li><a href="modules.html"><span>Modules</span></a></li>
    <li><a href="annotated.html"><span>Classes</span></a></li>
    <li class="current"><a href="files.html"><span>Files</span></a></li>
    <li><a href="dirs.html"><span>Directories</span></a></li>
    <li><a href="pages.html"><span>Related&nbsp;Pages</span></a></li>
    <li><a href="examples.html"><span>Examples</span></a></li>
    <li>
      <form action="search.php" method="get">
        <table cellspacing="0" cellpadding="0" border="0">
          <tr>
            <td><label>&nbsp;<u>S</u>earch&nbsp;for&nbsp;</label></td>
            <td><input type="text" name="query" value="" size="20" accesskey="s"/></td>
          </tr>
        </table>
      </form>
    </li>
  </ul>
</div>
<div class="nav">
<a class="el" href="dir_f60961de8e5edc3b2658ef023e959e45.html">deploy</a>&nbsp;&raquo&nbsp;<a class="el" href="dir_6b4e91e54b7316b376882a6402adbf44.html">include</a>&nbsp;&raquo&nbsp;<a class="el" href="dir_df3a7695d5a9e696f30b948b566829e7.html">axis2-1.6.0</a></div>
<h1>axutil_error.h</h1><div class="fragment"><pre class="fragment"><a name="l00001"></a>00001 <span class="comment">/*</span>
<a name="l00002"></a>00002 <span class="comment"> * Licensed to the Apache Software Foundation (ASF) under one or more</span>
<a name="l00003"></a>00003 <span class="comment"> * contributor license agreements.  See the NOTICE file distributed with</span>
<a name="l00004"></a>00004 <span class="comment"> * this work for additional information regarding copyright ownership.</span>
<a name="l00005"></a>00005 <span class="comment"> * The ASF licenses this file to You under the Apache License, Version 2.0</span>
<a name="l00006"></a>00006 <span class="comment"> * (the "License"); you may not use this file except in compliance with</span>
<a name="l00007"></a>00007 <span class="comment"> * the License.  You may obtain a copy of the License at</span>
<a name="l00008"></a>00008 <span class="comment"> *</span>
<a name="l00009"></a>00009 <span class="comment"> *      http://www.apache.org/licenses/LICENSE-2.0</span>
<a name="l00010"></a>00010 <span class="comment"> *</span>
<a name="l00011"></a>00011 <span class="comment"> * Unless required by applicable law or agreed to in writing, software</span>
<a name="l00012"></a>00012 <span class="comment"> * distributed under the License is distributed on an "AS IS" BASIS,</span>
<a name="l00013"></a>00013 <span class="comment"> * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.</span>
<a name="l00014"></a>00014 <span class="comment"> * See the License for the specific language governing permissions and</span>
<a name="l00015"></a>00015 <span class="comment"> * limitations under the License.</span>
<a name="l00016"></a>00016 <span class="comment"> */</span>
<a name="l00017"></a>00017 
<a name="l00018"></a>00018 <span class="preprocessor">#ifndef AXUTIL_ERROR_H</span>
<a name="l00019"></a>00019 <span class="preprocessor"></span><span class="preprocessor">#define AXUTIL_ERROR_H</span>
<a name="l00020"></a>00020 <span class="preprocessor"></span>
<a name="l00021"></a>00021 <span class="preprocessor">#include &lt;axutil_utils_defines.h&gt;</span>
<a name="l00022"></a>00022 <span class="preprocessor">#include &lt;<a class="code" href="axutil__allocator_8h.html" title="Axis2 memory allocator interface.">axutil_allocator.h</a>&gt;</span>
<a name="l00023"></a>00023 
<a name="l00024"></a>00024 <span class="preprocessor">#ifdef __cplusplus</span>
<a name="l00025"></a>00025 <span class="preprocessor"></span><span class="keyword">extern</span> <span class="stringliteral">"C"</span>
<a name="l00026"></a>00026 {
<a name="l00027"></a>00027 <span class="preprocessor">#endif</span>
<a name="l00028"></a>00028 <span class="preprocessor"></span>
<a name="l00029"></a>00029 
<a name="l00030"></a>00030 <span class="preprocessor">#define AXUTIL_ERROR_MESSAGE_BLOCK_SIZE 512</span>
<a name="l00031"></a>00031 <span class="preprocessor"></span><span class="preprocessor">#define AXUTIL_ERROR_LAST AXUTIL_ERROR_MESSAGE_BLOCK_SIZE</span>
<a name="l00032"></a>00032 <span class="preprocessor"></span><span class="preprocessor">#define NEETHI_ERROR_CODES_START AXIS2_ERROR_LAST</span>
<a name="l00033"></a>00033 <span class="preprocessor"></span><span class="preprocessor">#define RAMPART_ERROR_CODES_START (NEETHI_ERROR_CODES_START + AXUTIL_ERROR_MESSAGE_BLOCK_SIZE)</span>
<a name="l00034"></a>00034 <span class="preprocessor"></span><span class="preprocessor">#define SANDESHA2_ERROR_CODES_START (RAMPART_ERROR_CODES_START + AXUTIL_ERROR_MESSAGE_BLOCK_SIZE)</span>
<a name="l00035"></a>00035 <span class="preprocessor"></span><span class="preprocessor">#define SAVAN_ERROR_CODES_START (SANDESHA2_ERROR_CODES_START + AXUTIL_ERROR_MESSAGE_BLOCK_SIZE)</span>
<a name="l00036"></a>00036 <span class="preprocessor"></span><span class="preprocessor">#define USER_ERROR_CODES_START (SAVAN_ERROR_CODES_START + AXUTIL_ERROR_MESSAGE_BLOCK_SIZE)</span>
<a name="l00037"></a>00037 <span class="preprocessor"></span>
<a name="l00038"></a>00038 <span class="comment">/* AXUTIL_ERROR_MAX define the maximum size of the error array */</span>
<a name="l00039"></a>00039 <span class="preprocessor">#define AXUTIL_ERROR_MAX (USER_ERROR_CODES_START + AXUTIL_ERROR_MESSAGE_BLOCK_SIZE)</span>
<a name="l00040"></a>00040 <span class="preprocessor"></span>
<a name="l00041"></a>00041 
<a name="l00047"></a>00047     <span class="keyword">enum</span> axis2_status_codes
<a name="l00048"></a>00048     {
<a name="l00050"></a>00050         AXIS2_CRITICAL_FAILURE = -1,
<a name="l00051"></a>00051 
<a name="l00053"></a>00053         AXIS2_FAILURE,
<a name="l00054"></a>00054 
<a name="l00056"></a>00056         AXIS2_SUCCESS
<a name="l00057"></a>00057     };
<a name="l00058"></a>00058 
<a name="l00064"></a>00064     <span class="keyword">enum</span> axutil_error_codes
<a name="l00065"></a>00065     {
<a name="l00066"></a>00066 
<a name="l00077"></a>00077         AXIS2_ERROR_NONE = 0,
<a name="l00078"></a>00078 
<a name="l00079"></a>00079         <span class="comment">/*</span>
<a name="l00080"></a>00080 <span class="comment">         * Group - Common Errors</span>
<a name="l00081"></a>00081 <span class="comment">         */</span>
<a name="l00082"></a>00082         
<a name="l00084"></a>00084         AXIS2_ERROR_NO_MEMORY,
<a name="l00085"></a>00085 
<a name="l00087"></a>00087         AXIS2_ERROR_INVALID_NULL_PARAM,
<a name="l00088"></a>00088 
<a name="l00089"></a>00089         <span class="comment">/*</span>
<a name="l00090"></a>00090 <span class="comment">         * Group - core:addr</span>
<a name="l00091"></a>00091 <span class="comment">         */</span>
<a name="l00092"></a>00092 
<a name="l00093"></a>00093         <span class="comment">/*</span>
<a name="l00094"></a>00094 <span class="comment">         * Group - core:clientapi</span>
<a name="l00095"></a>00095 <span class="comment">         */</span>
<a name="l00096"></a>00096 
<a name="l00098"></a>00098         AXIS2_ERROR_BLOCKING_INVOCATION_EXPECTS_RESPONSE,
<a name="l00099"></a>00099 
<a name="l00101"></a>00101         AXIS2_ERROR_CANNOT_INFER_TRANSPORT,
<a name="l00102"></a>00102 
<a name="l00104"></a>00104         AXIS2_ERROR_CLIENT_SIDE_SUPPORT_ONLY_ONE_CONF_CTX,
<a name="l00105"></a>00105         <span class="comment">/* MEP cannot be NULL in MEP client */</span>
<a name="l00106"></a>00106         AXIS2_ERROR_MEP_CANNOT_BE_NULL_IN_MEP_CLIENT,
<a name="l00107"></a>00107         <span class="comment">/* MEP Mismatch */</span>
<a name="l00108"></a>00108         AXIS2_ERROR_MEP_MISMATCH_IN_MEP_CLIENT,
<a name="l00109"></a>00109 
<a name="l00111"></a>00111         AXIS2_ERROR_TWO_WAY_CHANNEL_NEEDS_ADDRESSING,
<a name="l00112"></a>00112 
<a name="l00114"></a>00114         AXIS2_ERROR_UNKNOWN_TRANSPORT,
<a name="l00115"></a>00115         <span class="comment">/* Unsupported SOAP style */</span>
<a name="l00116"></a>00116         AXIS2_ERROR_UNSUPPORTED_TYPE,
<a name="l00117"></a>00117         <span class="comment">/* Options object is not set */</span>
<a name="l00118"></a>00118         AXIS2_ERROR_OPTIONS_OBJECT_IS_NOT_SET,
<a name="l00119"></a>00119         <span class="comment">/*</span>
<a name="l00120"></a>00120 <span class="comment">         * Group - core:clientapi:diclient</span>
<a name="l00121"></a>00121 <span class="comment">         */</span>
<a name="l00122"></a>00122 
<a name="l00123"></a>00123         <span class="comment">/*</span>
<a name="l00124"></a>00124 <span class="comment">         * Group - core:context</span>
<a name="l00125"></a>00125 <span class="comment">         */</span>
<a name="l00126"></a>00126 
<a name="l00128"></a>00128         AXIS2_ERROR_INVALID_SOAP_ENVELOPE_STATE,
<a name="l00129"></a>00129 
<a name="l00131"></a>00131         AXIS2_ERROR_INVALID_STATE_MSG_CTX,
<a name="l00132"></a>00132 
<a name="l00134"></a>00134         AXIS2_ERROR_INVALID_STATE_SVC,
<a name="l00135"></a>00135 
<a name="l00137"></a>00137         AXIS2_ERROR_INVALID_STATE_SVC_GRP,
<a name="l00138"></a>00138 
<a name="l00140"></a>00140         AXIS2_ERROR_SERVICE_NOT_YET_FOUND,
<a name="l00141"></a>00141 
<a name="l00142"></a>00142         <span class="comment">/*</span>
<a name="l00143"></a>00143 <span class="comment">         * Group - core:deployment</span>
<a name="l00144"></a>00144 <span class="comment">         */</span>
<a name="l00145"></a>00145         <span class="comment">/* Invalid phase found in phase validation */</span>
<a name="l00146"></a>00146         AXI2_ERROR_INVALID_PHASE,
<a name="l00147"></a>00147         <span class="comment">/* axis2.xml cannot be found */</span>
<a name="l00148"></a>00148         AXIS2_ERROR_CONFIG_NOT_FOUND,
<a name="l00149"></a>00149         <span class="comment">/* Data element of the OM Node is null */</span>
<a name="l00150"></a>00150         AXIS2_ERROR_DATA_ELEMENT_IS_NULL,
<a name="l00151"></a>00151         <span class="comment">/* In transport sender, Inflow is not allowed */</span>
<a name="l00152"></a>00152         AXIS2_ERROR_IN_FLOW_NOT_ALLOWED_IN_TRS_OUT,
<a name="l00153"></a>00153 
<a name="l00155"></a>00155         AXIS2_ERROR_INVALID_HANDLER_STATE,
<a name="l00156"></a>00156         <span class="comment">/* Invalid Module Ref encountered */</span>
<a name="l00157"></a>00157         AXIS2_ERROR_INVALID_MODUELE_REF,
<a name="l00158"></a>00158         <span class="comment">/* Invalid Module Reference by Operation */</span>
<a name="l00159"></a>00159         AXIS2_ERROR_INVALID_MODUELE_REF_BY_OP,
<a name="l00160"></a>00160         <span class="comment">/* Invalid Module Configuration */</span>
<a name="l00161"></a>00161         AXIS2_ERROR_INVALID_MODULE_CONF,
<a name="l00162"></a>00162         <span class="comment">/* Description Builder is found to be in invalid state */</span>
<a name="l00163"></a>00163         AXIS2_ERROR_INVALID_STATE_DESC_BUILDER,
<a name="l00164"></a>00164         <span class="comment">/* Module Not Found */</span>
<a name="l00165"></a>00165         AXIS2_ERROR_MODULE_NOT_FOUND,
<a name="l00166"></a>00166         <span class="comment">/* Module Validation Failed */</span>
<a name="l00167"></a>00167         AXIS2_ERROR_MODULE_VALIDATION_FAILED,
<a name="l00168"></a>00168 
<a name="l00170"></a>00170         AXIS2_ERROR_MODULE_XML_NOT_FOUND_FOR_THE_MODULE,
<a name="l00171"></a>00171         <span class="comment">/* No dispatcher found */</span>
<a name="l00172"></a>00172         AXIS2_ERROR_NO_DISPATCHER_FOUND,
<a name="l00173"></a>00173         <span class="comment">/* Operation name is missing */</span>
<a name="l00174"></a>00174         AXIS2_ERROR_OP_NAME_MISSING,
<a name="l00175"></a>00175         <span class="comment">/* In transport Receiver, Outflow is not allowed */</span>
<a name="l00176"></a>00176         AXIS2_ERROR_OUT_FLOW_NOT_ALLOWED_IN_TRS_IN,
<a name="l00177"></a>00177         <span class="comment">/* Repository name cannot be NULL */</span>
<a name="l00178"></a>00178         AXIS2_ERROR_REPO_CAN_NOT_BE_NULL,
<a name="l00179"></a>00179         <span class="comment">/* Repository in path does not exist */</span>
<a name="l00180"></a>00180         AXIS2_ERROR_REPOSITORY_NOT_EXIST,
<a name="l00181"></a>00181         <span class="comment">/* Repository Listener initialization failed */</span>
<a name="l00182"></a>00182         AXIS2_ERROR_REPOS_LISTENER_INIT_FAILED,
<a name="l00183"></a>00183 
<a name="l00185"></a>00185         AXIS2_ERROR_SERVICE_XML_NOT_FOUND,
<a name="l00186"></a>00186         <span class="comment">/* Service Name Error */</span>
<a name="l00187"></a>00187         AXIS2_ERROR_SVC_NAME_ERROR,
<a name="l00188"></a>00188         <span class="comment">/* Transport Sender Error */</span>
<a name="l00189"></a>00189         AXIS2_ERROR_TRANSPORT_SENDER_ERROR,
<a name="l00190"></a>00190         <span class="comment">/* Path to Config can not be NULL */</span>
<a name="l00191"></a>00191         AXIS2_PATH_TO_CONFIG_CAN_NOT_BE_NULL,
<a name="l00192"></a>00192         <span class="comment">/* Invalid Service */</span>
<a name="l00193"></a>00193         AXIS2_ERROR_INVALID_SVC,
<a name="l00194"></a>00194 
<a name="l00195"></a>00195 
<a name="l00196"></a>00196         <span class="comment">/*</span>
<a name="l00197"></a>00197 <span class="comment">         * Group - core:description</span>
<a name="l00198"></a>00198 <span class="comment">         */</span>
<a name="l00199"></a>00199         <span class="comment">/* Cannot correlate message */</span>
<a name="l00200"></a>00200         AXIS2_ERROR_CANNOT_CORRELATE_MSG,
<a name="l00201"></a>00201 
<a name="l00203"></a>00203         AXIS2_ERROR_COULD_NOT_MAP_MEP_URI_TO_MEP_CONSTANT,
<a name="l00204"></a>00204         <span class="comment">/* Invalid message addition , operation context completed */</span>
<a name="l00205"></a>00205         AXIS2_ERROR_INVALID_MESSAGE_ADDITION,
<a name="l00206"></a>00206 
<a name="l00208"></a>00208         AXIS2_ERROR_INVALID_STATE_MODULE_DESC,
<a name="l00209"></a>00209 
<a name="l00211"></a>00211         AXIS2_ERROR_INVALID_STATE_PARAM_CONTAINER,
<a name="l00212"></a>00212 
<a name="l00214"></a>00214         AXIS2_ERROR_MODULE_ALREADY_ENGAGED_TO_OP,
<a name="l00215"></a>00215 
<a name="l00217"></a>00217         AXIS2_ERROR_MODULE_ALREADY_ENGAGED_TO_SVC,
<a name="l00218"></a>00218 
<a name="l00220"></a>00220         AXIS2_ERROR_MODULE_ALREADY_ENGAGED_TO_SVC_GRP,
<a name="l00221"></a>00221 
<a name="l00223"></a>00223         AXIS2_ERROR_PARAMETER_LOCKED_CANNOT_OVERRIDE,
<a name="l00224"></a>00224         <span class="comment">/* schema list is empty or NULL in svc */</span>
<a name="l00225"></a>00225         AXIS2_ERROR_EMPTY_SCHEMA_LIST,
<a name="l00226"></a>00226         <span class="comment">/*</span>
<a name="l00227"></a>00227 <span class="comment">         * Group - core:engine</span>
<a name="l00228"></a>00228 <span class="comment">         */</span>
<a name="l00229"></a>00229 
<a name="l00231"></a>00231         AXIS2_ERROR_BEFORE_AFTER_HANDLERS_SAME,
<a name="l00232"></a>00232 
<a name="l00234"></a>00234         AXIS2_ERROR_INVALID_HANDLER_RULES,
<a name="l00235"></a>00235         <span class="comment">/* Invalid Module */</span>
<a name="l00236"></a>00236         AXIS2_ERROR_INVALID_MODULE,
<a name="l00237"></a>00237 
<a name="l00239"></a>00239         AXIS2_ERROR_INVALID_PHASE_FIRST_HANDLER,
<a name="l00240"></a>00240 
<a name="l00242"></a>00242         AXIS2_ERROR_INVALID_PHASE_LAST_HANDLER,
<a name="l00243"></a>00243 
<a name="l00245"></a>00245         AXIS2_ERROR_INVALID_STATE_CONF,
<a name="l00246"></a>00246 
<a name="l00248"></a>00248         AXIS2_ERROR_INVALID_STATE_PROCESSING_FAULT_ALREADY,
<a name="l00249"></a>00249 
<a name="l00251"></a>00251         AXIS2_ERROR_NOWHERE_TO_SEND_FAULT,
<a name="l00252"></a>00252 
<a name="l00254"></a>00254         AXIS2_ERROR_PHASE_ADD_HANDLER_INVALID,
<a name="l00255"></a>00255 
<a name="l00257"></a>00257         AXIS2_ERROR_PHASE_FIRST_HANDLER_ALREADY_SET,
<a name="l00258"></a>00258 
<a name="l00260"></a>00260         AXIS2_ERROR_PHASE_LAST_HANDLER_ALREADY_SET,
<a name="l00261"></a>00261 
<a name="l00264"></a>00264         AXIS2_ERROR_TWO_SVCS_CANNOT_HAVE_SAME_NAME,
<a name="l00265"></a>00265         <span class="comment">/*</span>
<a name="l00266"></a>00266 <span class="comment">         * Group - core:phase resolver</span>
<a name="l00267"></a>00267 <span class="comment">         */</span>
<a name="l00268"></a>00268         <span class="comment">/* Invalid Module Ref */</span>
<a name="l00269"></a>00269         AXIS2_ERROR_INVALID_MODULE_REF,
<a name="l00270"></a>00270         <span class="comment">/* Invalid Phase */</span>
<a name="l00271"></a>00271         AXIS2_ERROR_INVALID_PHASE,
<a name="l00272"></a>00272         <span class="comment">/* No Transport Receiver is configured */</span>
<a name="l00273"></a>00273         AXIS2_ERROR_NO_TRANSPORT_IN_CONFIGURED,
<a name="l00274"></a>00274         <span class="comment">/* No Transport Sender is configured */</span>
<a name="l00275"></a>00275         AXIS2_ERROR_NO_TRANSPORT_OUT_CONFIGURED,
<a name="l00276"></a>00276         <span class="comment">/* Phase is not specified */</span>
<a name="l00277"></a>00277         AXIS2_ERROR_PHASE_IS_NOT_SPECIFED,
<a name="l00278"></a>00278         <span class="comment">/* Service module can not refer global phase */</span>
<a name="l00279"></a>00279         AXIS2_ERROR_SERVICE_MODULE_CAN_NOT_REFER_GLOBAL_PHASE,
<a name="l00280"></a>00280 
<a name="l00281"></a>00281         <span class="comment">/*</span>
<a name="l00282"></a>00282 <span class="comment">         * Group - core:wsdl</span>
<a name="l00283"></a>00283 <span class="comment">         */</span>
<a name="l00284"></a>00284 
<a name="l00286"></a>00286         AXIS2_ERROR_WSDL_SCHEMA_IS_NULL,
<a name="l00287"></a>00287         <span class="comment">/*</span>
<a name="l00288"></a>00288 <span class="comment">         * Group - core:receivers</span>
<a name="l00289"></a>00289 <span class="comment">         */</span>
<a name="l00290"></a>00290         <span class="comment">/* Om Element has invalid state */</span>
<a name="l00291"></a>00291         AXIS2_ERROR_OM_ELEMENT_INVALID_STATE,
<a name="l00292"></a>00292         <span class="comment">/* Om Elements do not match */</span>
<a name="l00293"></a>00293         AXIS2_ERROR_OM_ELEMENT_MISMATCH,
<a name="l00294"></a>00294         <span class="comment">/* RPC style SOAP body don't have a child element */</span>
<a name="l00295"></a>00295         AXIS2_ERROR_RPC_NEED_MATCHING_CHILD,
<a name="l00296"></a>00296         <span class="comment">/* Operation Description has unknown operation style  */</span>
<a name="l00297"></a>00297         AXIS2_ERROR_UNKNOWN_STYLE,
<a name="l00298"></a>00298         <span class="comment">/* String does not represent a valid NCName */</span>
<a name="l00299"></a>00299         AXIS2_ERROR_STRING_DOES_NOT_REPRESENT_A_VALID_NC_NAME,
<a name="l00300"></a>00300         <span class="comment">/*</span>
<a name="l00301"></a>00301 <span class="comment">         * Group - core:transport</span>
<a name="l00302"></a>00302 <span class="comment">         */</span>
<a name="l00303"></a>00303 
<a name="l00304"></a>00304         <span class="comment">/*</span>
<a name="l00305"></a>00305 <span class="comment">         * Group - core:transport:http</span>
<a name="l00306"></a>00306 <span class="comment">         */</span>
<a name="l00307"></a>00307         <span class="comment">/* Error occurred in transport */</span>
<a name="l00308"></a>00308         AXIS2_ERROR_HTTP_CLIENT_TRANSPORT_ERROR,
<a name="l00309"></a>00309 
<a name="l00311"></a>00311         AXIS2_ERROR_HTTP_REQUEST_NOT_SENT,
<a name="l00312"></a>00312 
<a name="l00314"></a>00314         AXIS2_ERROR_INVALID_HEADER,
<a name="l00315"></a>00315         <span class="comment">/* Invalid header start line (request line or response line) */</span>
<a name="l00316"></a>00316         AXIS2_ERROR_INVALID_HTTP_HEADER_START_LINE,
<a name="l00317"></a>00317         <span class="comment">/* Transport protocol is unsupported by axis2 */</span>
<a name="l00318"></a>00318         AXIS2_ERROR_INVALID_TRANSPORT_PROTOCOL,
<a name="l00319"></a>00319 
<a name="l00321"></a>00321         AXIS2_ERROR_NULL_BODY,
<a name="l00322"></a>00322         <span class="comment">/* A valid conf_ctx is reqd for the http worker */</span>
<a name="l00323"></a>00323         AXIS2_ERROR_NULL_CONFIGURATION_CONTEXT,
<a name="l00324"></a>00324         <span class="comment">/* HTTP version cannot be null in the status/request line */</span>
<a name="l00325"></a>00325         AXIS2_ERROR_NULL_HTTP_VERSION,
<a name="l00326"></a>00326         <span class="comment">/* Input stream is NULL in msg_ctx */</span>
<a name="l00327"></a>00327         AXIS2_ERROR_NULL_IN_STREAM_IN_MSG_CTX,
<a name="l00328"></a>00328         <span class="comment">/* OM output is NULL */</span>
<a name="l00329"></a>00329         AXIS2_ERROR_NULL_OM_OUTPUT,
<a name="l00330"></a>00330         <span class="comment">/* Null SOAP envelope in msg_ctx */</span>
<a name="l00331"></a>00331         AXIS2_ERROR_NULL_SOAP_ENVELOPE_IN_MSG_CTX,
<a name="l00332"></a>00332         <span class="comment">/* NULL stream in the http chucked stream */</span>
<a name="l00333"></a>00333         AXIS2_ERROR_NULL_STREAM_IN_CHUNKED_STREAM,
<a name="l00334"></a>00334         <span class="comment">/* We got a NULL stream in the response body */</span>
<a name="l00335"></a>00335         AXIS2_ERROR_NULL_STREAM_IN_RESPONSE_BODY,
<a name="l00336"></a>00336 
<a name="l00338"></a>00338         AXIS2_ERROR_NULL_URL,
<a name="l00340"></a>00340         AXIS2_ERROR_INVALID_URL_FORMAT,
<a name="l00342"></a>00342         AXIS2_ERROR_DUPLICATE_URL_REST_MAPPING,
<a name="l00343"></a>00343         <span class="comment">/* We need transport_info in msg_ctx */</span>
<a name="l00344"></a>00344         AXIS2_ERROR_OUT_TRNSPORT_INFO_NULL,
<a name="l00345"></a>00345         <span class="comment">/*Content-Type header missing in HTTP response" */</span>
<a name="l00346"></a>00346         AXIS2_ERROR_RESPONSE_CONTENT_TYPE_MISSING,
<a name="l00347"></a>00347 
<a name="l00349"></a>00349         AXIS2_ERROR_RESPONSE_TIMED_OUT,
<a name="l00350"></a>00350 
<a name="l00352"></a>00352         AXIS2_ERROR_RESPONSE_SERVER_SHUTDOWN,
<a name="l00353"></a>00353 
<a name="l00355"></a>00355         AXIS2_ERROR_SOAP_ENVELOPE_OR_SOAP_BODY_NULL,
<a name="l00356"></a>00356         <span class="comment">/* Error occurred in SSL engine */</span>
<a name="l00357"></a>00357         AXIS2_ERROR_SSL_ENGINE,
<a name="l00358"></a>00358         <span class="comment">/* Either axis2c cannot find certificates or the env variable is not set */</span>
<a name="l00359"></a>00359         AXIS2_ERROR_SSL_NO_CA_FILE,
<a name="l00360"></a>00360         <span class="comment">/* Error in writing the response in response writer */</span>
<a name="l00361"></a>00361         AXIS2_ERROR_WRITING_RESPONSE,
<a name="l00362"></a>00362         <span class="comment">/* Required parameter is missing in URL encoded request */</span>
<a name="l00363"></a>00363         AXIS2_ERROR_REQD_PARAM_MISSING,
<a name="l00364"></a>00364         <span class="comment">/* Unsupported schema type in REST */</span>
<a name="l00365"></a>00365         AXIS2_ERROR_UNSUPPORTED_SCHEMA_TYPE,
<a name="l00366"></a>00366         <span class="comment">/* Service or operation not found */</span>
<a name="l00367"></a>00367         AXIS2_ERROR_SVC_OR_OP_NOT_FOUND,
<a name="l00368"></a>00368         <span class="comment">/*</span>
<a name="l00369"></a>00369 <span class="comment">         * Group - mod_addr</span>
<a name="l00370"></a>00370 <span class="comment">         */</span>
<a name="l00371"></a>00371         AXIS2_ERROR_NO_MSG_INFO_HEADERS,
<a name="l00372"></a>00372         <span class="comment">/*</span>
<a name="l00373"></a>00373 <span class="comment">         * Group - platforms</span>
<a name="l00374"></a>00374 <span class="comment">         */</span>
<a name="l00375"></a>00375 
<a name="l00376"></a>00376         <span class="comment">/*</span>
<a name="l00377"></a>00377 <span class="comment">         * Group - utils</span>
<a name="l00378"></a>00378 <span class="comment">         */</span>
<a name="l00379"></a>00379 
<a name="l00381"></a>00381         AXIS2_ERROR_COULD_NOT_OPEN_FILE,
<a name="l00382"></a>00382         <span class="comment">/* Failed in creating DLL */</span>
<a name="l00383"></a>00383         AXIS2_ERROR_DLL_CREATE_FAILED,
<a name="l00384"></a>00384         <span class="comment">/* DLL loading failed */</span>
<a name="l00385"></a>00385         AXIS2_ERROR_DLL_LOADING_FAILED,
<a name="l00386"></a>00386 
<a name="l00388"></a>00388         AXIS2_ERROR_ENVIRONMENT_IS_NULL,
<a name="l00389"></a>00389         <span class="comment">/* Axis2 File does not have a file name */</span>
<a name="l00390"></a>00390         AXIS2_ERROR_FILE_NAME_NOT_SET,
<a name="l00391"></a>00391         <span class="comment">/* DLL Description Info Object has invalid state */</span>
<a name="l00392"></a>00392         AXIS2_ERROR_INVALID_STATE_DLL_DESC,
<a name="l00393"></a>00393         <span class="comment">/* Failed in creating Handler */</span>
<a name="l00394"></a>00394         AXIS2_ERROR_HANDLER_CREATION_FAILED,
<a name="l00395"></a>00395 
<a name="l00397"></a>00397         AXIS2_ERROR_INDEX_OUT_OF_BOUNDS,
<a name="l00398"></a>00398 
<a name="l00400"></a>00400         AXIS2_ERROR_INVALID_ADDRESS,
<a name="l00401"></a>00401 
<a name="l00403"></a>00403         AXIS2_ERROR_INVALID_FD,
<a name="l00404"></a>00404 
<a name="l00406"></a>00406         AXIS2_ERROR_INVALID_SOCKET,
<a name="l00407"></a>00407 
<a name="l00409"></a>00409         AXIS2_ERROR_INVALID_STATE_PARAM,
<a name="l00410"></a>00410         <span class="comment">/* Module create failed */</span>
<a name="l00411"></a>00411         AXIS2_ERROR_MODULE_CREATION_FAILED,
<a name="l00412"></a>00412         <span class="comment">/* Failed in creating Message Receiver */</span>
<a name="l00413"></a>00413         AXIS2_ERROR_MSG_RECV_CREATION_FAILED,
<a name="l00414"></a>00414 
<a name="l00416"></a>00416         AXIS2_ERROR_NO_SUCH_ELEMENT,
<a name="l00417"></a>00417 
<a name="l00419"></a>00419         AXIS2_ERROR_SOCKET_BIND_FAILED,
<a name="l00420"></a>00420 
<a name="l00422"></a>00422         AXIS2_ERROR_SOCKET_ERROR,
<a name="l00423"></a>00423         <span class="comment">/* Listen failed for the server socket */</span>
<a name="l00424"></a>00424         AXIS2_ERROR_SOCKET_LISTEN_FAILED,
<a name="l00425"></a>00425         <span class="comment">/* Failed in creating Service Skeleton */</span>
<a name="l00426"></a>00426         AXIS2_ERROR_SVC_SKELETON_CREATION_FAILED,
<a name="l00427"></a>00427         <span class="comment">/* Failed in creating Transport Receiver */</span>
<a name="l00428"></a>00428         AXIS2_ERROR_TRANSPORT_RECV_CREATION_FAILED,
<a name="l00429"></a>00429         <span class="comment">/* Failed in creating Transport Sender */</span>
<a name="l00430"></a>00430         AXIS2_ERROR_TRANSPORT_SENDER_CREATION_FAILED,
<a name="l00431"></a>00431         <span class="comment">/* Generation of platform dependent uuid failed */</span>
<a name="l00432"></a>00432         AXIS2_ERROR_UUID_GEN_FAILED,
<a name="l00433"></a>00433         <span class="comment">/* Possible deadlock */</span>
<a name="l00434"></a>00434         AXIS2_ERROR_POSSIBLE_DEADLOCK,
<a name="l00435"></a>00435         <span class="comment">/*</span>
<a name="l00436"></a>00436 <span class="comment">         * Group - WSDL</span>
<a name="l00437"></a>00437 <span class="comment">         */</span>
<a name="l00438"></a>00438         <span class="comment">/* Interface or Port Type not found for the binding */</span>
<a name="l00439"></a>00439         AXIS2_ERROR_INTERFACE_OR_PORT_TYPE_NOT_FOUND_FOR_THE_BINDING,
<a name="l00440"></a>00440         <span class="comment">/* Interfaces or Ports not found for the partially built WOM */</span>
<a name="l00441"></a>00441         AXIS2_ERROR_INTERFACES_OR_PORTS_NOT_FOUND_FOR_PARTIALLY_BUILT_WOM,
<a name="l00442"></a>00442 
<a name="l00444"></a>00444         AXIS2_ERROR_INVALID_STATE_WSDL_OP,
<a name="l00445"></a>00445 
<a name="l00447"></a>00447         AXIS2_ERROR_INVALID_STATE_WSDL_SVC,
<a name="l00448"></a>00448         <span class="comment">/* Cannot determine MEP */</span>
<a name="l00449"></a>00449         AXIS2_ERROR_MEP_CANNOT_DETERMINE_MEP,
<a name="l00450"></a>00450         <span class="comment">/* Wsdl binding name cannot be NULL(Is required) */</span>
<a name="l00451"></a>00451         AXIS2_ERROR_WSDL_BINDING_NAME_IS_REQUIRED,
<a name="l00452"></a>00452         <span class="comment">/* PortType/Interface name cannot be null(Required) */</span>
<a name="l00453"></a>00453         AXIS2_ERROR_WSDL_INTERFACE_NAME_IS_REQUIRED,
<a name="l00454"></a>00454         <span class="comment">/* Wsdl parsing has resulted in an invalid state */</span>
<a name="l00455"></a>00455         AXIS2_ERROR_WSDL_PARSER_INVALID_STATE,
<a name="l00456"></a>00456         <span class="comment">/* Wsdl svc name cannot be null(Required) */</span>
<a name="l00457"></a>00457         AXIS2_ERROR_WSDL_SVC_NAME_IS_REQUIRED,
<a name="l00458"></a>00458         <span class="comment">/*</span>
<a name="l00459"></a>00459 <span class="comment">         * Group - xml</span>
<a name="l00460"></a>00460 <span class="comment">         */</span>
<a name="l00461"></a>00461 
<a name="l00462"></a>00462         <span class="comment">/*</span>
<a name="l00463"></a>00463 <span class="comment">         * Group - xml:attachments</span>
<a name="l00464"></a>00464 <span class="comment">         */</span>
<a name="l00466"></a>00466         AXIS2_ERROR_ATTACHMENT_MISSING,
<a name="l00467"></a>00467 
<a name="l00468"></a>00468         <span class="comment">/*</span>
<a name="l00469"></a>00469 <span class="comment">         * Group - xml:om</span>
<a name="l00470"></a>00470 <span class="comment">         */</span>
<a name="l00471"></a>00471 
<a name="l00473"></a>00473         AXIS2_ERROR_BUILDER_DONE_CANNOT_PULL,
<a name="l00474"></a>00474 
<a name="l00476"></a>00476         AXIS2_ERROR_INVALID_BUILDER_STATE_CANNOT_DISCARD,
<a name="l00477"></a>00477 
<a name="l00479"></a>00479         AXIS2_ERROR_INVALID_BUILDER_STATE_LAST_NODE_NULL,
<a name="l00480"></a>00480 
<a name="l00482"></a>00482         AXIS2_ERROR_INVALID_DOCUMENT_STATE_ROOT_NULL,
<a name="l00483"></a>00483 
<a name="l00485"></a>00485         AXIS2_ERROR_INVALID_DOCUMENT_STATE_UNDEFINED_NAMESPACE,
<a name="l00486"></a>00486 
<a name="l00488"></a>00488         AXIS2_ERROR_INVALID_EMPTY_NAMESPACE_URI,
<a name="l00489"></a>00489 
<a name="l00492"></a>00492         AXIS2_ERROR_ITERATOR_NEXT_METHOD_HAS_NOT_YET_BEEN_CALLED,
<a name="l00493"></a>00493 
<a name="l00496"></a>00496         AXIS2_ERROR_ITERATOR_REMOVE_HAS_ALREADY_BEING_CALLED,
<a name="l00497"></a>00497 
<a name="l00499"></a>00499         AXIS2_ERROR_XML_READER_ELEMENT_NULL,
<a name="l00500"></a>00500 
<a name="l00502"></a>00502         AXIS2_ERROR_XML_READER_VALUE_NULL,
<a name="l00503"></a>00503         <span class="comment">/*</span>
<a name="l00504"></a>00504 <span class="comment">         * Group - xml:parser</span>
<a name="l00505"></a>00505 <span class="comment">         */</span>
<a name="l00506"></a>00506 
<a name="l00508"></a>00508         AXIS2_ERROR_CREATING_XML_STREAM_READER,
<a name="l00509"></a>00509 
<a name="l00511"></a>00511         AXIS2_ERROR_CREATING_XML_STREAM_WRITER,
<a name="l00512"></a>00512 
<a name="l00514"></a>00514         AXIS2_ERROR_WRITING_ATTRIBUTE,
<a name="l00515"></a>00515 
<a name="l00517"></a>00517         AXIS2_ERROR_WRITING_ATTRIBUTE_WITH_NAMESPACE,
<a name="l00518"></a>00518 
<a name="l00520"></a>00520         AXIS2_ERROR_WRITING_ATTRIBUTE_WITH_NAMESPACE_PREFIX,
<a name="l00521"></a>00521 
<a name="l00523"></a>00523         AXIS2_ERROR_WRITING_COMMENT,
<a name="l00524"></a>00524 
<a name="l00526"></a>00526         AXIS2_ERROR_WRITING_DATA_SOURCE,
<a name="l00527"></a>00527 
<a name="l00529"></a>00529         AXIS2_ERROR_WRITING_DEFAULT_NAMESPACE,
<a name="l00530"></a>00530 
<a name="l00532"></a>00532         AXIS2_ERROR_WRITING_DTD,
<a name="l00533"></a>00533 
<a name="l00535"></a>00535         AXIS2_ERROR_WRITING_EMPTY_ELEMENT,
<a name="l00536"></a>00536 
<a name="l00538"></a>00538         AXIS2_ERROR_WRITING_EMPTY_ELEMENT_WITH_NAMESPACE,
<a name="l00539"></a>00539 
<a name="l00541"></a>00541         AXIS2_ERROR_WRITING_EMPTY_ELEMENT_WITH_NAMESPACE_PREFIX,
<a name="l00542"></a>00542 
<a name="l00544"></a>00544         AXIS2_ERROR_WRITING_END_DOCUMENT,
<a name="l00545"></a>00545 
<a name="l00547"></a>00547         AXIS2_ERROR_WRITING_END_ELEMENT,
<a name="l00548"></a>00548 
<a name="l00550"></a>00550         AXIS2_ERROR_WRITING_PROCESSING_INSTRUCTION,
<a name="l00551"></a>00551 
<a name="l00553"></a>00553         AXIS2_ERROR_WRITING_START_DOCUMENT,
<a name="l00554"></a>00554 
<a name="l00556"></a>00556         AXIS2_ERROR_WRITING_START_ELEMENT,
<a name="l00557"></a>00557 
<a name="l00559"></a>00559         AXIS2_ERROR_WRITING_START_ELEMENT_WITH_NAMESPACE,
<a name="l00560"></a>00560 
<a name="l00562"></a>00562         AXIS2_ERROR_WRITING_START_ELEMENT_WITH_NAMESPACE_PREFIX,
<a name="l00563"></a>00563 
<a name="l00565"></a>00565         AXIS2_ERROR_WRITING_CDATA,
<a name="l00566"></a>00566 
<a name="l00568"></a>00568         AXIS2_ERROR_XML_PARSER_INVALID_MEM_TYPE,
<a name="l00569"></a>00569 
<a name="l00570"></a>00570         <span class="comment">/*</span>
<a name="l00571"></a>00571 <span class="comment">         * Group - xml:SOAP</span>
<a name="l00572"></a>00572 <span class="comment">         */</span>
<a name="l00573"></a>00573 
<a name="l00575"></a>00575         AXIS2_ERROR_INVALID_BASE_TYPE,
<a name="l00576"></a>00576 
<a name="l00578"></a>00578         AXIS2_ERROR_INVALID_SOAP_NAMESPACE_URI,
<a name="l00579"></a>00579 
<a name="l00581"></a>00581         AXIS2_ERROR_INVALID_SOAP_VERSION,
<a name="l00582"></a>00582         <span class="comment">/* invalid value found in must understand attribute */</span>
<a name="l00583"></a>00583         AXIS2_ERROR_INVALID_VALUE_FOUND_IN_MUST_UNDERSTAND,
<a name="l00584"></a>00584         <span class="comment">/*multiple code elements encountered in SOAP fault element */</span>
<a name="l00585"></a>00585         AXIS2_ERROR_MULTIPLE_CODE_ELEMENTS_ENCOUNTERED,
<a name="l00586"></a>00586         <span class="comment">/*multiple detail elements encountered in SOAP fault element */</span>
<a name="l00587"></a>00587         AXIS2_ERROR_MULTIPLE_DETAIL_ELEMENTS_ENCOUNTERED,
<a name="l00588"></a>00588         <span class="comment">/*multiple node elements encountered in SOAP fault element */</span>
<a name="l00589"></a>00589         AXIS2_ERROR_MULTIPLE_NODE_ELEMENTS_ENCOUNTERED,
<a name="l00590"></a>00590         <span class="comment">/*multiple reason elements encountered in SOAP fault element */</span>
<a name="l00591"></a>00591         AXIS2_ERROR_MULTIPLE_REASON_ELEMENTS_ENCOUNTERED,
<a name="l00592"></a>00592         <span class="comment">/*multiple role elements encountered in SOAP fault element */</span>
<a name="l00593"></a>00593         AXIS2_ERROR_MULTIPLE_ROLE_ELEMENTS_ENCOUNTERED,
<a name="l00594"></a>00594         <span class="comment">/*multiple sub code values encountered in SOAP fault element */</span>
<a name="l00595"></a>00595         AXIS2_ERROR_MULTIPLE_SUB_CODE_VALUES_ENCOUNTERED,
<a name="l00596"></a>00596         <span class="comment">/* multiple value elements encountered */</span>
<a name="l00597"></a>00597         AXIS2_ERROR_MULTIPLE_VALUE_ENCOUNTERED_IN_CODE_ELEMENT,
<a name="l00598"></a>00598         <span class="comment">/* must understand attribute should have values of true or false */</span>
<a name="l00599"></a>00599         AXIS2_ERROR_MUST_UNDERSTAND_SHOULD_BE_1_0_TRUE_FALSE,
<a name="l00600"></a>00600 
<a name="l00602"></a>00602         AXIS2_ERROR_OM_ELEMENT_EXPECTED,
<a name="l00603"></a>00603         <span class="comment">/* processing SOAP 1.1 fault value element should have only</span>
<a name="l00604"></a>00604 <span class="comment">           text as its children */</span>
<a name="l00605"></a>00605         AXIS2_ERROR_ONLY_CHARACTERS_ARE_ALLOWED_HERE,
<a name="l00606"></a>00606 
<a name="l00608"></a>00608         AXIS2_ERROR_ONLY_ONE_SOAP_FAULT_ALLOWED_IN_BODY,
<a name="l00609"></a>00609         <span class="comment">/*SOAP 1.1 fault actor element should not have child elements */</span>
<a name="l00610"></a>00610         AXIS2_ERROR_SOAP11_FAULT_ACTOR_SHOULD_NOT_HAVE_CHILD_ELEMENTS,
<a name="l00611"></a>00611 
<a name="l00614"></a>00614         AXIS2_ERROR_SOAP_BUILDER_ENVELOPE_CAN_HAVE_ONLY_HEADER_AND_BODY,
<a name="l00615"></a>00615 
<a name="l00617"></a>00617         AXIS2_ERROR_SOAP_BUILDER_HEADER_BODY_WRONG_ORDER,
<a name="l00618"></a>00618 
<a name="l00620"></a>00620         AXIS2_ERROR_SOAP_BUILDER_MULTIPLE_BODY_ELEMENTS_ENCOUNTERED,
<a name="l00621"></a>00621 
<a name="l00623"></a>00623         AXIS2_ERROR_SOAP_BUILDER_MULTIPLE_HEADERS_ENCOUNTERED,
<a name="l00624"></a>00624         <span class="comment">/*SOAP fault code element should a mandatory fault value element */</span>
<a name="l00625"></a>00625         AXIS2_ERROR_SOAP_FAULT_CODE_DOES_NOT_HAVE_A_VALUE,
<a name="l00626"></a>00626         <span class="comment">/*SOAP fault reason element should have a text */</span>
<a name="l00627"></a>00627         AXIS2_ERROR_SOAP_FAULT_REASON_ELEMENT_SHOULD_HAVE_A_TEXT,
<a name="l00628"></a>00628         <span class="comment">/*SOAP fault role element should have a text value */</span>
<a name="l00629"></a>00629         AXIS2_ERROR_SOAP_FAULT_ROLE_ELEMENT_SHOULD_HAVE_A_TEXT,
<a name="l00630"></a>00630         <span class="comment">/* SOAP fault value should be present before sub code element in SOAP fault code */</span>
<a name="l00631"></a>00631         AXIS2_ERROR_SOAP_FAULT_VALUE_SHOULD_BE_PRESENT_BEFORE_SUB_CODE,
<a name="l00632"></a>00632 
<a name="l00634"></a>00634         AXIS2_ERROR_SOAP_MESSAGE_DOES_NOT_CONTAIN_AN_ENVELOPE,
<a name="l00635"></a>00635         <span class="comment">/*SOAP message first element must contain a localname */</span>
<a name="l00636"></a>00636         AXIS2_ERROR_SOAP_MESSAGE_FIRST_ELEMENT_MUST_CONTAIN_LOCAL_NAME,
<a name="l00637"></a>00637         <span class="comment">/* this localname is not supported inside a reason element */</span>
<a name="l00638"></a>00638         AXIS2_ERROR_THIS_LOCALNAME_IS_NOT_SUPPORTED_INSIDE_THE_REASON_ELEMENT,
<a name="l00639"></a>00639         <span class="comment">/*this localname is not supported inside a sub code element */</span>
<a name="l00640"></a>00640         AXIS2_ERROR_THIS_LOCALNAME_IS_NOT_SUPPORTED_INSIDE_THE_SUB_CODE_ELEMENT,
<a name="l00641"></a>00641         <span class="comment">/*this localname is not supported inside the code element */</span>
<a name="l00642"></a>00642         AXIS2_ERROR_THIS_LOCALNAME_NOT_SUPPORTED_INSIDE_THE_CODE_ELEMENT,
<a name="l00643"></a>00643         <span class="comment">/*transport level identified SOAP version does not match with the SOAP version */</span>
<a name="l00644"></a>00644         AXIS2_ERROR_TRANSPORT_LEVEL_INFORMATION_DOES_NOT_MATCH_WITH_SOAP,
<a name="l00645"></a>00645         <span class="comment">/*unsupported element in SOAP fault element */</span>
<a name="l00646"></a>00646         AXIS2_ERROR_UNSUPPORTED_ELEMENT_IN_SOAP_FAULT_ELEMENT,
<a name="l00647"></a>00647         <span class="comment">/*wrong element order encountered */</span>
<a name="l00648"></a>00648         AXIS2_ERROR_WRONG_ELEMENT_ORDER_ENCOUNTERED,
<a name="l00649"></a>00649         <span class="comment">/*</span>
<a name="l00650"></a>00650 <span class="comment">         * Group - services</span>
<a name="l00651"></a>00651 <span class="comment">         */</span>
<a name="l00652"></a>00652 
<a name="l00654"></a>00654         AXIS2_ERROR_SVC_SKEL_INVALID_XML_FORMAT_IN_REQUEST,
<a name="l00655"></a>00655 
<a name="l00657"></a>00657         AXIS2_ERROR_SVC_SKEL_INPUT_OM_NODE_NULL,
<a name="l00658"></a>00658 
<a name="l00660"></a>00660         AXIS2_ERROR_SVC_SKEL_INVALID_OPERATION_PARAMETERS_IN_SOAP_REQUEST,
<a name="l00661"></a>00661 
<a name="l00662"></a>00662         <span class="comment">/*</span>
<a name="l00663"></a>00663 <span class="comment">         * Group - repos</span>
<a name="l00664"></a>00664 <span class="comment">         */</span>
<a name="l00665"></a>00665         <span class="comment">/* not authenticated */</span>
<a name="l00666"></a>00666         AXIS2_ERROR_REPOS_NOT_AUTHENTICATED,
<a name="l00667"></a>00667         <span class="comment">/* unsupported mode */</span>
<a name="l00668"></a>00668         AXIS2_ERROR_REPOS_UNSUPPORTED_MODE,
<a name="l00669"></a>00669         <span class="comment">/* expired */</span>
<a name="l00670"></a>00670         AXIS2_ERROR_REPOS_EXPIRED,
<a name="l00671"></a>00671         <span class="comment">/* not implemented */</span>
<a name="l00672"></a>00672         AXIS2_ERROR_REPOS_NOT_IMPLEMENTED,
<a name="l00673"></a>00673         <span class="comment">/* not found */</span>
<a name="l00674"></a>00674         AXIS2_ERROR_REPOS_NOT_FOUND,
<a name="l00675"></a>00675         <span class="comment">/* bad search text */</span>
<a name="l00676"></a>00676         AXIS2_ERROR_REPOS_BAD_SEARCH_TEXT,
<a name="l00677"></a>00677 
<a name="l00678"></a>00678         <span class="comment">/*</span>
<a name="l00679"></a>00679 <span class="comment">         *Group - Neethi</span>
<a name="l00680"></a>00680 <span class="comment">         */</span>
<a name="l00681"></a>00681         <span class="comment">/*  No Namespace */</span>
<a name="l00682"></a>00682         AXIS2_ERROR_NEETHI_ELEMENT_WITH_NO_NAMESPACE,
<a name="l00683"></a>00683         <span class="comment">/*Policy cannot be created from element */</span>
<a name="l00684"></a>00684         AXIS2_ERROR_NEETHI_POLICY_CREATION_FAILED_FROM_ELEMENT,
<a name="l00685"></a>00685         <span class="comment">/*All Cannot be created from element */</span>
<a name="l00686"></a>00686         AXIS2_ERROR_NEETHI_ALL_CREATION_FAILED_FROM_ELEMENT,
<a name="l00687"></a>00687         <span class="comment">/*Exactly one Cannot be created element */</span>
<a name="l00688"></a>00688         AXIS2_ERROR_NEETHI_EXACTLYONE_CREATION_FAILED_FROM_ELEMENT,
<a name="l00689"></a>00689         <span class="comment">/*Reference Cannot be created from element */</span>
<a name="l00690"></a>00690         AXIS2_ERROR_NEETHI_REFERENCE_CREATION_FAILED_FROM_ELEMENT,
<a name="l00691"></a>00691         <span class="comment">/*Assertion Cannot be created from element */</span>
<a name="l00692"></a>00692         AXIS2_ERROR_NEETHI_ASSERTION_CREATION_FAILED_FROM_ELEMENT,
<a name="l00693"></a>00693         <span class="comment">/*All creation failed */</span>
<a name="l00694"></a>00694         AXIS2_ERROR_NEETHI_ALL_CREATION_FAILED,
<a name="l00695"></a>00695         <span class="comment">/*Exactly one creation failed */</span>
<a name="l00696"></a>00696         AXIS2_ERROR_NEETHI_EXACTLYONE_CREATION_FAILED,
<a name="l00697"></a>00697         <span class="comment">/*Policy Creation failed */</span>
<a name="l00698"></a>00698         AXIS2_ERROR_NEETHI_POLICY_CREATION_FAILED,
<a name="l00699"></a>00699         <span class="comment">/*Normalization failed */</span>
<a name="l00700"></a>00700         AXIS2_ERROR_NEETHI_NORMALIZATION_FAILED,
<a name="l00701"></a>00701         <span class="comment">/*Merging Failed. Wrong Input */</span>
<a name="l00702"></a>00702         AXIS2_ERROR_NEETHI_WRONG_INPUT_FOR_MERGE,
<a name="l00703"></a>00703         <span class="comment">/*Merging Failed. Cross Product failed */</span>
<a name="l00704"></a>00704         AXIS2_ERROR_NEETHI_CROSS_PRODUCT_FAILED,
<a name="l00705"></a>00705         <span class="comment">/*No Children Policy Components */</span>
<a name="l00706"></a>00706         AXIS2_ERROR_NEETHI_NO_CHILDREN_POLICY_COMPONENTS,
<a name="l00707"></a>00707         <span class="comment">/*Uri Not specified */</span>
<a name="l00708"></a>00708         AXIS2_ERROR_NEETHI_URI_NOT_SPECIFIED,
<a name="l00709"></a>00709         <span class="comment">/*Policy NULL for the given uri */</span>
<a name="l00710"></a>00710         AXIS2_ERROR_NEETHI_NO_ENTRY_FOR_THE_GIVEN_URI,
<a name="l00711"></a>00711         <span class="comment">/*Exactly one not found in Normalized policy */</span>
<a name="l00712"></a>00712         AXIS2_ERROR_NEETHI_EXACTLYONE_NOT_FOUND_IN_NORMALIZED_POLICY,
<a name="l00713"></a>00713         <span class="comment">/*Exactly one is Empty */</span>
<a name="l00714"></a>00714         AXIS2_ERROR_NEETHI_EXACTLYONE_IS_EMPTY,
<a name="l00715"></a>00715         <span class="comment">/*Exactly one not found while getting cross product */</span>
<a name="l00716"></a>00716         AXIS2_ERROR_NEETHI_ALL_NOT_FOUND_WHILE_GETTING_CROSS_PRODUCT,
<a name="l00717"></a>00717         <span class="comment">/*Unknown Assertion*/</span>
<a name="l00718"></a>00718         AXIS2_ERROR_NEETHI_UNKNOWN_ASSERTION,
<a name="l00725"></a>00725         AXIS2_ERROR_LAST
<a name="l00726"></a>00726     };
<a name="l00727"></a>00727 
<a name="l00728"></a>00728     <span class="keyword">struct </span><a class="code" href="structaxutil__error.html">axutil_error</a>;
<a name="l00729"></a>00729     <span class="keyword">typedef</span> <span class="keyword">enum</span> axis2_status_codes axis2_status_codes_t;
<a name="l00730"></a>00730     <span class="keyword">typedef</span> <span class="keyword">enum</span> axutil_error_codes axutil_error_codes_t;
<a name="l00731"></a>00731 
<a name="l00743"></a><a class="code" href="structaxutil__error.html">00743</a>     <span class="keyword">typedef</span> <span class="keyword">struct </span><a class="code" href="structaxutil__error.html">axutil_error</a>
<a name="l00744"></a>00744     {
<a name="l00750"></a><a class="code" href="structaxutil__error.html#2f53d04714902b5a03c4b646effdb471">00750</a>         <a class="code" href="structaxutil__allocator.html" title="Axis2 memory allocator.">axutil_allocator_t</a> *<a class="code" href="structaxutil__error.html#2f53d04714902b5a03c4b646effdb471">allocator</a>;
<a name="l00751"></a>00751 
<a name="l00753"></a><a class="code" href="structaxutil__error.html#3da4cc0e92d6497abb53a77de312761e">00753</a>         <span class="keywordtype">int</span> <a class="code" href="structaxutil__error.html#3da4cc0e92d6497abb53a77de312761e">error_number</a>;
<a name="l00755"></a><a class="code" href="structaxutil__error.html#39bc351d123f4f466b12c7157b29487f">00755</a>         <span class="keywordtype">int</span> <a class="code" href="structaxutil__error.html#39bc351d123f4f466b12c7157b29487f">status_code</a>;
<a name="l00761"></a><a class="code" href="structaxutil__error.html#a016f4ce55a9b63eb01dc66430d04c4f">00761</a>         axis2_char_t *<a class="code" href="structaxutil__error.html#a016f4ce55a9b63eb01dc66430d04c4f">message</a>;
<a name="l00762"></a>00762     }
<a name="l00763"></a>00763     <a class="code" href="structaxutil__error.html">axutil_error_t</a>;
<a name="l00764"></a>00764 
<a name="l00770"></a>00770     AXIS2_EXTERN <span class="keyword">const</span> axis2_char_t *AXIS2_CALL
<a name="l00771"></a>00771     <a class="code" href="group__axutil__error.html#ga5db58c2bae8083db45dcb933511480c">axutil_error_get_message</a>(
<a name="l00772"></a>00772         <span class="keyword">const</span> <span class="keyword">struct</span> <a class="code" href="structaxutil__error.html">axutil_error</a> *error);
<a name="l00773"></a>00773 
<a name="l00782"></a>00782     <span class="comment">/*AXIS2_EXTERN const axis2_char_t *AXIS2_CALL</span>
<a name="l00783"></a>00783 <span class="comment">    axutil_error_get_extended_message(</span>
<a name="l00784"></a>00784 <span class="comment">        const struct axutil_error *error);*/</span>
<a name="l00785"></a>00785 
<a name="l00792"></a>00792     AXIS2_EXTERN axis2_status_t AXIS2_CALL
<a name="l00793"></a>00793     <a class="code" href="group__axutil__error.html#g46da3d930c143544e58b130b2ebbbb4b">axutil_error_set_error_number</a>(
<a name="l00794"></a>00794         <span class="keyword">struct</span> <a class="code" href="structaxutil__error.html">axutil_error</a> *error,
<a name="l00795"></a>00795         axutil_error_codes_t error_number);
<a name="l00796"></a>00796 
<a name="l00803"></a>00803     AXIS2_EXTERN axis2_status_t AXIS2_CALL
<a name="l00804"></a>00804     <a class="code" href="group__axutil__error.html#gaaab973f27097ae5e3dd036a9c452355">axutil_error_set_status_code</a>(
<a name="l00805"></a>00805         <span class="keyword">struct</span> <a class="code" href="structaxutil__error.html">axutil_error</a> *error,
<a name="l00806"></a>00806         axis2_status_codes_t status_code);
<a name="l00807"></a>00807 
<a name="l00813"></a>00813     AXIS2_EXTERN axis2_status_t AXIS2_CALL
<a name="l00814"></a>00814     <a class="code" href="group__axutil__error.html#g4107c6db677ebcb721f7a99654813eda">axutil_error_get_status_code</a>(
<a name="l00815"></a>00815         <span class="keyword">struct</span> <a class="code" href="structaxutil__error.html">axutil_error</a> *error);
<a name="l00816"></a>00816 
<a name="l00823"></a>00823     AXIS2_EXTERN axis2_status_t AXIS2_CALL
<a name="l00824"></a>00824     <a class="code" href="group__axutil__error.html#g14d4772cbdc268f1c20c13281360f2ec">axutil_error_set_error_message</a>(
<a name="l00825"></a>00825         <span class="keyword">struct</span> <a class="code" href="structaxutil__error.html">axutil_error</a> *error,
<a name="l00826"></a>00826         axis2_char_t *message);
<a name="l00827"></a>00827 
<a name="l00834"></a>00834     AXIS2_EXTERN axis2_status_t AXIS2_CALL
<a name="l00835"></a>00835     <a class="code" href="group__axutil__error.html#gca400ab90e600bfe18efe4804727900d">axutil_error_init</a>(<span class="keywordtype">void</span>);
<a name="l00836"></a>00836 
<a name="l00842"></a>00842     AXIS2_EXTERN <span class="keywordtype">void</span> AXIS2_CALL
<a name="l00843"></a>00843     <a class="code" href="group__axutil__error.html#g3ccdfbc08ec8a92def154e96c9716b78">axutil_error_free</a>(
<a name="l00844"></a>00844         <span class="keyword">struct</span> <a class="code" href="structaxutil__error.html">axutil_error</a> *error);
<a name="l00845"></a>00845 
<a name="l00851"></a><a class="code" href="group__axutil__error.html#g0d679c0b9abcee889fc0dc0b694fab99">00851</a> <span class="preprocessor">#define AXIS2_ERROR_FREE(error) axutil_error_free(error)</span>
<a name="l00852"></a>00852 <span class="preprocessor"></span>
<a name="l00853"></a>00853 <span class="preprocessor">#define AXIS2_ERROR_GET_MESSAGE(error) \</span>
<a name="l00854"></a>00854 <span class="preprocessor">    axutil_error_get_message(error)</span>
<a name="l00855"></a>00855 <span class="preprocessor"></span>
<a name="l00856"></a>00856 <span class="preprocessor">#define AXIS2_ERROR_SET_MESSAGE(error, message) \</span>
<a name="l00857"></a>00857 <span class="preprocessor">    axutil_error_set_error_message(error, message)</span>
<a name="l00858"></a>00858 <span class="preprocessor"></span>
<a name="l00859"></a>00859 <span class="preprocessor">#define AXIS2_ERROR_SET_ERROR_NUMBER(error, error_number) \</span>
<a name="l00860"></a>00860 <span class="preprocessor">        axutil_error_set_error_number(error, error_number)</span>
<a name="l00861"></a>00861 <span class="preprocessor"></span>
<a name="l00862"></a>00862 <span class="preprocessor">#define AXIS2_ERROR_SET_STATUS_CODE(error, status_code) \</span>
<a name="l00863"></a>00863 <span class="preprocessor">        axutil_error_set_status_code(error, status_code)</span>
<a name="l00864"></a>00864 <span class="preprocessor"></span>
<a name="l00865"></a>00865 <span class="preprocessor">#define AXIS2_ERROR_GET_STATUS_CODE(error) axutil_error_get_status_code(error)</span>
<a name="l00866"></a>00866 <span class="preprocessor"></span>
<a name="l00869"></a>00869 <span class="preprocessor">#ifdef __cplusplus</span>
<a name="l00870"></a>00870 <span class="preprocessor"></span>}
<a name="l00871"></a>00871 <span class="preprocessor">#endif</span>
<a name="l00872"></a>00872 <span class="preprocessor"></span>
<a name="l00873"></a>00873 <span class="preprocessor">#endif                          </span><span class="comment">/* AXIS2_ERROR_H */</span>
</pre></div><hr size="1"><address style="text-align: right;"><small>Generated on Fri Apr 17 11:49:42 2009 for Axis2/C by&nbsp;
<a href="http://www.doxygen.org/index.html">
<img src="doxygen.png" alt="doxygen" align="middle" border="0"></a> 1.5.3 </small></address>
</body>
</html>


<|start_filename|>axiom/src/xpath/xpath_internals.c<|end_filename|>

/*
 * 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.
 */

#include <axiom_xpath.h>
#include "xpath_internals.h"

/* Make a copy of the xpath expression */
void axiom_xpath_expression_copy(
    axiom_xpath_context_t *context,
    axiom_xpath_expression_t* expr)
{
    int i;
    axiom_xpath_operation_t *op;

    context->expr = expr;

    /* Set value of pos in every operation to 0 */
    for (i = 0;
            i < axutil_array_list_size(expr->operations, context->env);
            i++)
    {
        op = AXIOM_XPATH_OPR_GET(i);
        op->pos = 0;
    }
}


<|start_filename|>xdocs/api/html/group__axis2__phase.html<|end_filename|>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html><head><meta http-equiv="Content-Type" content="text/html;charset=UTF-8">
<title>Axis2/C: phases</title>
<link href="doxygen.css" rel="stylesheet" type="text/css">
<link href="tabs.css" rel="stylesheet" type="text/css">
</head><body>
<!-- Generated by Doxygen 1.5.3 -->
<div class="tabs">
  <ul>
    <li><a href="index.html"><span>Main&nbsp;Page</span></a></li>
    <li><a href="modules.html"><span>Modules</span></a></li>
    <li><a href="annotated.html"><span>Classes</span></a></li>
    <li><a href="files.html"><span>Files</span></a></li>
    <li><a href="dirs.html"><span>Directories</span></a></li>
    <li><a href="pages.html"><span>Related&nbsp;Pages</span></a></li>
    <li><a href="examples.html"><span>Examples</span></a></li>
    <li>
      <form action="search.php" method="get">
        <table cellspacing="0" cellpadding="0" border="0">
          <tr>
            <td><label>&nbsp;<u>S</u>earch&nbsp;for&nbsp;</label></td>
            <td><input type="text" name="query" value="" size="20" accesskey="s"/></td>
          </tr>
        </table>
      </form>
    </li>
  </ul>
</div>
<h1>phases<br>
<small>
[<a class="el" href="group__axis2__engine.html">engine</a>]</small>
</h1><table border="0" cellpadding="0" cellspacing="0">
<tr><td></td></tr>
<tr><td colspan="2"><br><h2>Files</h2></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top">file &nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="axis2__phase_8h.html">axis2_phase.h</a></td></tr>

<tr><td colspan="2"><br><h2>Defines</h2></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top">#define&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__axis2__phase.html#ge1f25ec22e7fe0eb476632ddd03df7e9">AXIS2_PHASE_BOTH_BEFORE_AFTER</a>&nbsp;&nbsp;&nbsp;0</td></tr>

<tr><td class="memItemLeft" nowrap align="right" valign="top">#define&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__axis2__phase.html#gedaee8553f3bd49535a393920321b836">AXIS2_PHASE_BEFORE</a>&nbsp;&nbsp;&nbsp;1</td></tr>

<tr><td class="memItemLeft" nowrap align="right" valign="top">#define&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__axis2__phase.html#g6c7946dfabebe6b1651c4e444f6981fd">AXIS2_PHASE_AFTER</a>&nbsp;&nbsp;&nbsp;2</td></tr>

<tr><td class="memItemLeft" nowrap align="right" valign="top">#define&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__axis2__phase.html#g742763fcecad7c9cd3ff889591151a8d">AXIS2_PHASE_ANYWHERE</a>&nbsp;&nbsp;&nbsp;3</td></tr>

<tr><td colspan="2"><br><h2>Typedefs</h2></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top">typedef struct <br>
axis2_phase&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__axis2__phase.html#gbd87daad5497d3a4d756e20c008e3ac4">axis2_phase_t</a></td></tr>

<tr><td colspan="2"><br><h2>Functions</h2></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top">AXIS2_EXTERN <br>
axis2_status_t&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__axis2__phase.html#g3a631359739cd8aea355f835dcd170db">axis2_phase_add_handler_at</a> (<a class="el" href="group__axis2__phase.html#gbd87daad5497d3a4d756e20c008e3ac4">axis2_phase_t</a> *phase, const <a class="el" href="structaxutil__env.html">axutil_env_t</a> *env, const int index, <a class="el" href="group__axis2__handler.html#g62e76f39f224fb84e98b6b77fdf4655c">axis2_handler_t</a> *handler)</td></tr>

<tr><td class="memItemLeft" nowrap align="right" valign="top">AXIS2_EXTERN <br>
axis2_status_t&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__axis2__phase.html#g8fc3f0608dac0d516c0646b0e8e1d022">axis2_phase_add_handler</a> (<a class="el" href="group__axis2__phase.html#gbd87daad5497d3a4d756e20c008e3ac4">axis2_phase_t</a> *phase, const <a class="el" href="structaxutil__env.html">axutil_env_t</a> *env, <a class="el" href="group__axis2__handler.html#g62e76f39f224fb84e98b6b77fdf4655c">axis2_handler_t</a> *handler)</td></tr>

<tr><td class="memItemLeft" nowrap align="right" valign="top">AXIS2_EXTERN <br>
axis2_status_t&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__axis2__phase.html#g54cc63e78b54a9b1b91783b07fb3b6e9">axis2_phase_remove_handler</a> (<a class="el" href="group__axis2__phase.html#gbd87daad5497d3a4d756e20c008e3ac4">axis2_phase_t</a> *phase, const <a class="el" href="structaxutil__env.html">axutil_env_t</a> *env, <a class="el" href="group__axis2__handler.html#g62e76f39f224fb84e98b6b77fdf4655c">axis2_handler_t</a> *handler)</td></tr>

<tr><td class="memItemLeft" nowrap align="right" valign="top">AXIS2_EXTERN <br>
axis2_status_t&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__axis2__phase.html#gde224602c7b9f220ea14f2e2e8be9e66">axis2_phase_invoke</a> (<a class="el" href="group__axis2__phase.html#gbd87daad5497d3a4d756e20c008e3ac4">axis2_phase_t</a> *phase, const <a class="el" href="structaxutil__env.html">axutil_env_t</a> *env, struct axis2_msg_ctx *msg_ctx)</td></tr>

<tr><td class="memItemLeft" nowrap align="right" valign="top">AXIS2_EXTERN const <br>
axis2_char_t *&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__axis2__phase.html#g2c92bf9ab205f20e7b603c8a82646d23">axis2_phase_get_name</a> (const <a class="el" href="group__axis2__phase.html#gbd87daad5497d3a4d756e20c008e3ac4">axis2_phase_t</a> *phase, const <a class="el" href="structaxutil__env.html">axutil_env_t</a> *env)</td></tr>

<tr><td class="memItemLeft" nowrap align="right" valign="top">AXIS2_EXTERN int&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__axis2__phase.html#gf518d1c97d2c1a16427259de20a80628">axis2_phase_get_handler_count</a> (const <a class="el" href="group__axis2__phase.html#gbd87daad5497d3a4d756e20c008e3ac4">axis2_phase_t</a> *phase, const <a class="el" href="structaxutil__env.html">axutil_env_t</a> *env)</td></tr>

<tr><td class="memItemLeft" nowrap align="right" valign="top">AXIS2_EXTERN <br>
axis2_status_t&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__axis2__phase.html#gc434dafaada6c4a9b1a4137dcafb129f">axis2_phase_set_first_handler</a> (<a class="el" href="group__axis2__phase.html#gbd87daad5497d3a4d756e20c008e3ac4">axis2_phase_t</a> *phase, const <a class="el" href="structaxutil__env.html">axutil_env_t</a> *env, <a class="el" href="group__axis2__handler.html#g62e76f39f224fb84e98b6b77fdf4655c">axis2_handler_t</a> *handler)</td></tr>

<tr><td class="memItemLeft" nowrap align="right" valign="top">AXIS2_EXTERN <br>
axis2_status_t&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__axis2__phase.html#gd958e22d2aebf7f66390bd8f7a7ecefb">axis2_phase_set_last_handler</a> (<a class="el" href="group__axis2__phase.html#gbd87daad5497d3a4d756e20c008e3ac4">axis2_phase_t</a> *phase, const <a class="el" href="structaxutil__env.html">axutil_env_t</a> *env, <a class="el" href="group__axis2__handler.html#g62e76f39f224fb84e98b6b77fdf4655c">axis2_handler_t</a> *handler)</td></tr>

<tr><td class="memItemLeft" nowrap align="right" valign="top">AXIS2_EXTERN <br>
axis2_status_t&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__axis2__phase.html#g9b592193365d716976f3f68d61bb7a6f">axis2_phase_add_handler_desc</a> (<a class="el" href="group__axis2__phase.html#gbd87daad5497d3a4d756e20c008e3ac4">axis2_phase_t</a> *phase, const <a class="el" href="structaxutil__env.html">axutil_env_t</a> *env, <a class="el" href="group__axis2__handler__desc.html#gafcabd9d344f36395e60f1b4677835d9">axis2_handler_desc_t</a> *handler_desc)</td></tr>

<tr><td class="memItemLeft" nowrap align="right" valign="top">AXIS2_EXTERN <br>
axis2_status_t&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__axis2__phase.html#g2e667feb5d15a4e336e1eee3a6f77696">axis2_phase_remove_handler_desc</a> (<a class="el" href="group__axis2__phase.html#gbd87daad5497d3a4d756e20c008e3ac4">axis2_phase_t</a> *phase, const <a class="el" href="structaxutil__env.html">axutil_env_t</a> *env, <a class="el" href="group__axis2__handler__desc.html#gafcabd9d344f36395e60f1b4677835d9">axis2_handler_desc_t</a> *handler_desc)</td></tr>

<tr><td class="memItemLeft" nowrap align="right" valign="top">AXIS2_EXTERN <br>
axis2_status_t&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__axis2__phase.html#g72deb07fffca51fe7f953ac82c6616b2">axis2_phase_insert_before</a> (<a class="el" href="group__axis2__phase.html#gbd87daad5497d3a4d756e20c008e3ac4">axis2_phase_t</a> *phase, const <a class="el" href="structaxutil__env.html">axutil_env_t</a> *env, <a class="el" href="group__axis2__handler.html#g62e76f39f224fb84e98b6b77fdf4655c">axis2_handler_t</a> *handler)</td></tr>

<tr><td class="memItemLeft" nowrap align="right" valign="top">AXIS2_EXTERN <br>
axis2_status_t&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__axis2__phase.html#g3fb24331f3f5b78eb1b2aab75de94fe5">axis2_phase_insert_after</a> (<a class="el" href="group__axis2__phase.html#gbd87daad5497d3a4d756e20c008e3ac4">axis2_phase_t</a> *phase, const <a class="el" href="structaxutil__env.html">axutil_env_t</a> *env, <a class="el" href="group__axis2__handler.html#g62e76f39f224fb84e98b6b77fdf4655c">axis2_handler_t</a> *handler)</td></tr>

<tr><td class="memItemLeft" nowrap align="right" valign="top">AXIS2_EXTERN <br>
axis2_status_t&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__axis2__phase.html#g29a679a896554e2527612d146532ebcd">axis2_phase_insert_before_and_after</a> (<a class="el" href="group__axis2__phase.html#gbd87daad5497d3a4d756e20c008e3ac4">axis2_phase_t</a> *phase, const <a class="el" href="structaxutil__env.html">axutil_env_t</a> *env, <a class="el" href="group__axis2__handler.html#g62e76f39f224fb84e98b6b77fdf4655c">axis2_handler_t</a> *handler)</td></tr>

<tr><td class="memItemLeft" nowrap align="right" valign="top">AXIS2_EXTERN <br>
axis2_status_t&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__axis2__phase.html#g60f6b9e367666f8232f3287478c83b32">axis2_phase_insert_handler_desc</a> (<a class="el" href="group__axis2__phase.html#gbd87daad5497d3a4d756e20c008e3ac4">axis2_phase_t</a> *phase, const <a class="el" href="structaxutil__env.html">axutil_env_t</a> *env, <a class="el" href="group__axis2__handler__desc.html#gafcabd9d344f36395e60f1b4677835d9">axis2_handler_desc_t</a> *handler_desc)</td></tr>

<tr><td class="memItemLeft" nowrap align="right" valign="top">AXIS2_EXTERN <br>
<a class="el" href="group__axutil__array__list.html#g1a6a89777db876cfa0cc86787b7be6a0">axutil_array_list_t</a> *&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__axis2__phase.html#g7a5ebcc5fa87ec0057a8d49a099e904d">axis2_phase_get_all_handlers</a> (const <a class="el" href="group__axis2__phase.html#gbd87daad5497d3a4d756e20c008e3ac4">axis2_phase_t</a> *phase, const <a class="el" href="structaxutil__env.html">axutil_env_t</a> *env)</td></tr>

<tr><td class="memItemLeft" nowrap align="right" valign="top">AXIS2_EXTERN <br>
axis2_status_t&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__axis2__phase.html#gae4d903e6f99f2dbd7e358306cfd0733">axis2_phase_invoke_start_from_handler</a> (<a class="el" href="group__axis2__phase.html#gbd87daad5497d3a4d756e20c008e3ac4">axis2_phase_t</a> *phase, const <a class="el" href="structaxutil__env.html">axutil_env_t</a> *env, const int paused_handler_index, struct axis2_msg_ctx *msg_ctx)</td></tr>

<tr><td class="memItemLeft" nowrap align="right" valign="top">AXIS2_EXTERN void&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__axis2__phase.html#g0a45133876a1cec57dc49bcd1720dc76">axis2_phase_free</a> (<a class="el" href="group__axis2__phase.html#gbd87daad5497d3a4d756e20c008e3ac4">axis2_phase_t</a> *phase, const <a class="el" href="structaxutil__env.html">axutil_env_t</a> *env)</td></tr>

<tr><td class="memItemLeft" nowrap align="right" valign="top">AXIS2_EXTERN <br>
<a class="el" href="group__axis2__phase.html#gbd87daad5497d3a4d756e20c008e3ac4">axis2_phase_t</a> *&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__axis2__phase.html#ga8094ea4f993c65b5024f912769311b5">axis2_phase_create</a> (const <a class="el" href="structaxutil__env.html">axutil_env_t</a> *env, const axis2_char_t *phase_name)</td></tr>

<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="ge2b5eec3eb335795defbc87262186d85"></a><!-- doxytag: member="axis2_phase::axis2_phase_increment_ref" ref="ge2b5eec3eb335795defbc87262186d85" args="(axis2_phase_t *phase, const axutil_env_t *env)" -->
AXIS2_EXTERN <br>
axis2_status_t&nbsp;</td><td class="memItemRight" valign="bottom"><b>axis2_phase_increment_ref</b> (<a class="el" href="group__axis2__phase.html#gbd87daad5497d3a4d756e20c008e3ac4">axis2_phase_t</a> *phase, const <a class="el" href="structaxutil__env.html">axutil_env_t</a> *env)</td></tr>

</table>
<hr><a name="_details"></a><h2>Detailed Description</h2>
phase is a logical unit of execution in the Axis2 engine's execution flows. A phase encapsulates one or more handlers in a given sequence to be invoked. The sequencing of handlers within a phase are often defined by module configuration which specifies where in the phase's handler chain a given handler should be placed. Calling invoke on phase triggers invoke on the handlers stored within the phase in the sequence they are ordered. <hr><h2>Define Documentation</h2>
<a class="anchor" name="g6c7946dfabebe6b1651c4e444f6981fd"></a><!-- doxytag: member="axis2_phase.h::AXIS2_PHASE_AFTER" ref="g6c7946dfabebe6b1651c4e444f6981fd" args="" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">#define AXIS2_PHASE_AFTER&nbsp;&nbsp;&nbsp;2          </td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
A given handler's location within the list of handlers is after another given handler. 
</div>
</div><p>
<a class="anchor" name="g742763fcecad7c9cd3ff889591151a8d"></a><!-- doxytag: member="axis2_phase.h::AXIS2_PHASE_ANYWHERE" ref="g742763fcecad7c9cd3ff889591151a8d" args="" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">#define AXIS2_PHASE_ANYWHERE&nbsp;&nbsp;&nbsp;3          </td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
A given handler's location within the list of handlers could be anywhere in the list. 
</div>
</div><p>
<a class="anchor" name="gedaee8553f3bd49535a393920321b836"></a><!-- doxytag: member="axis2_phase.h::AXIS2_PHASE_BEFORE" ref="gedaee8553f3bd49535a393920321b836" args="" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">#define AXIS2_PHASE_BEFORE&nbsp;&nbsp;&nbsp;1          </td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
A given handler's location within the list of handlers is before another given handler. 
</div>
</div><p>
<a class="anchor" name="ge1f25ec22e7fe0eb476632ddd03df7e9"></a><!-- doxytag: member="axis2_phase.h::AXIS2_PHASE_BOTH_BEFORE_AFTER" ref="ge1f25ec22e7fe0eb476632ddd03df7e9" args="" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">#define AXIS2_PHASE_BOTH_BEFORE_AFTER&nbsp;&nbsp;&nbsp;0          </td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
A given handler's location within the list of handlers is before a particular handler and after another particular handler. 
</div>
</div><p>
<hr><h2>Typedef Documentation</h2>
<a class="anchor" name="gbd87daad5497d3a4d756e20c008e3ac4"></a><!-- doxytag: member="axis2_phase.h::axis2_phase_t" ref="gbd87daad5497d3a4d756e20c008e3ac4" args="" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">typedef struct axis2_phase <a class="el" href="group__axis2__phase.html#gbd87daad5497d3a4d756e20c008e3ac4">axis2_phase_t</a>          </td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
Type name for axis2_phase 
</div>
</div><p>
<hr><h2>Function Documentation</h2>
<a class="anchor" name="g8fc3f0608dac0d516c0646b0e8e1d022"></a><!-- doxytag: member="axis2_phase.h::axis2_phase_add_handler" ref="g8fc3f0608dac0d516c0646b0e8e1d022" args="(axis2_phase_t *phase, const axutil_env_t *env, axis2_handler_t *handler)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">AXIS2_EXTERN axis2_status_t axis2_phase_add_handler           </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="group__axis2__phase.html#gbd87daad5497d3a4d756e20c008e3ac4">axis2_phase_t</a> *&nbsp;</td>
          <td class="paramname"> <em>phase</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const <a class="el" href="structaxutil__env.html">axutil_env_t</a> *&nbsp;</td>
          <td class="paramname"> <em>env</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype"><a class="el" href="group__axis2__handler.html#g62e76f39f224fb84e98b6b77fdf4655c">axis2_handler_t</a> *&nbsp;</td>
          <td class="paramname"> <em>handler</em></td><td>&nbsp;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td><td width="100%"></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
Adds the given handler to the end of the handler list. <dl compact><dt><b>Parameters:</b></dt><dd>
  <table border="0" cellspacing="2" cellpadding="0">
    <tr><td valign="top"></td><td valign="top"><em>phase</em>&nbsp;</td><td>pointer to phase </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>env</em>&nbsp;</td><td>pointer to environment struct </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>handler</em>&nbsp;</td><td>pointer to handler, phase does not assume the ownership of the handler </td></tr>
  </table>
</dl>
<dl class="return" compact><dt><b>Returns:</b></dt><dd>AXIS2_SUCCESS on success, else AXIS2_FAILURE </dd></dl>

</div>
</div><p>
<a class="anchor" name="g3a631359739cd8aea355f835dcd170db"></a><!-- doxytag: member="axis2_phase.h::axis2_phase_add_handler_at" ref="g3a631359739cd8aea355f835dcd170db" args="(axis2_phase_t *phase, const axutil_env_t *env, const int index, axis2_handler_t *handler)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">AXIS2_EXTERN axis2_status_t axis2_phase_add_handler_at           </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="group__axis2__phase.html#gbd87daad5497d3a4d756e20c008e3ac4">axis2_phase_t</a> *&nbsp;</td>
          <td class="paramname"> <em>phase</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const <a class="el" href="structaxutil__env.html">axutil_env_t</a> *&nbsp;</td>
          <td class="paramname"> <em>env</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const int&nbsp;</td>
          <td class="paramname"> <em>index</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype"><a class="el" href="group__axis2__handler.html#g62e76f39f224fb84e98b6b77fdf4655c">axis2_handler_t</a> *&nbsp;</td>
          <td class="paramname"> <em>handler</em></td><td>&nbsp;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td><td width="100%"></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
Adds given handler to the specified position in the handler array list. <dl compact><dt><b>Parameters:</b></dt><dd>
  <table border="0" cellspacing="2" cellpadding="0">
    <tr><td valign="top"></td><td valign="top"><em>phase</em>&nbsp;</td><td>pointer to phase struct </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>env</em>&nbsp;</td><td>pointer to environment struct </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>index</em>&nbsp;</td><td>index </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>handler</em>&nbsp;</td><td>pointer to handler, phase does not assume the ownership of the handler </td></tr>
  </table>
</dl>
<dl class="return" compact><dt><b>Returns:</b></dt><dd>AXIS2_SUCCESS on success, else AXIS2_FAILURE </dd></dl>

</div>
</div><p>
<a class="anchor" name="g9b592193365d716976f3f68d61bb7a6f"></a><!-- doxytag: member="axis2_phase.h::axis2_phase_add_handler_desc" ref="g9b592193365d716976f3f68d61bb7a6f" args="(axis2_phase_t *phase, const axutil_env_t *env, axis2_handler_desc_t *handler_desc)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">AXIS2_EXTERN axis2_status_t axis2_phase_add_handler_desc           </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="group__axis2__phase.html#gbd87daad5497d3a4d756e20c008e3ac4">axis2_phase_t</a> *&nbsp;</td>
          <td class="paramname"> <em>phase</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const <a class="el" href="structaxutil__env.html">axutil_env_t</a> *&nbsp;</td>
          <td class="paramname"> <em>env</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype"><a class="el" href="group__axis2__handler__desc.html#gafcabd9d344f36395e60f1b4677835d9">axis2_handler_desc_t</a> *&nbsp;</td>
          <td class="paramname"> <em>handler_desc</em></td><td>&nbsp;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td><td width="100%"></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
Adds handler within the handler description to the list of handlers in the phase. <dl compact><dt><b>Parameters:</b></dt><dd>
  <table border="0" cellspacing="2" cellpadding="0">
    <tr><td valign="top"></td><td valign="top"><em>phase</em>&nbsp;</td><td>pointer to phase </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>env</em>&nbsp;</td><td>pointer to environment struct </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>handler_desc</em>&nbsp;</td><td>pointer to handler description, phase does not assume the ownership of neither the handler description not the handler within the handler description </td></tr>
  </table>
</dl>
<dl class="return" compact><dt><b>Returns:</b></dt><dd>AXIS2_SUCCESS on success, else AXIS2_FAILURE </dd></dl>

</div>
</div><p>
<a class="anchor" name="ga8094ea4f993c65b5024f912769311b5"></a><!-- doxytag: member="axis2_phase.h::axis2_phase_create" ref="ga8094ea4f993c65b5024f912769311b5" args="(const axutil_env_t *env, const axis2_char_t *phase_name)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">AXIS2_EXTERN <a class="el" href="group__axis2__phase.html#gbd87daad5497d3a4d756e20c008e3ac4">axis2_phase_t</a>* axis2_phase_create           </td>
          <td>(</td>
          <td class="paramtype">const <a class="el" href="structaxutil__env.html">axutil_env_t</a> *&nbsp;</td>
          <td class="paramname"> <em>env</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const axis2_char_t *&nbsp;</td>
          <td class="paramname"> <em>phase_name</em></td><td>&nbsp;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td><td width="100%"></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
creates phase struct instance. <dl compact><dt><b>Parameters:</b></dt><dd>
  <table border="0" cellspacing="2" cellpadding="0">
    <tr><td valign="top"></td><td valign="top"><em>env</em>&nbsp;</td><td>pointer to environment struct </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>phase_name</em>&nbsp;</td><td>name of the phase to be created </td></tr>
  </table>
</dl>
<dl class="return" compact><dt><b>Returns:</b></dt><dd>pointer to newly created phase </dd></dl>

</div>
</div><p>
<a class="anchor" name="g0a45133876a1cec57dc49bcd1720dc76"></a><!-- doxytag: member="axis2_phase.h::axis2_phase_free" ref="g0a45133876a1cec57dc49bcd1720dc76" args="(axis2_phase_t *phase, const axutil_env_t *env)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">AXIS2_EXTERN void axis2_phase_free           </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="group__axis2__phase.html#gbd87daad5497d3a4d756e20c008e3ac4">axis2_phase_t</a> *&nbsp;</td>
          <td class="paramname"> <em>phase</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const <a class="el" href="structaxutil__env.html">axutil_env_t</a> *&nbsp;</td>
          <td class="paramname"> <em>env</em></td><td>&nbsp;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td><td width="100%"></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
Frees phase struct. <dl compact><dt><b>Parameters:</b></dt><dd>
  <table border="0" cellspacing="2" cellpadding="0">
    <tr><td valign="top"></td><td valign="top"><em>phase</em>&nbsp;</td><td>pointer to phase </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>env</em>&nbsp;</td><td>pointer to environment struct </td></tr>
  </table>
</dl>
<dl class="return" compact><dt><b>Returns:</b></dt><dd>void </dd></dl>

</div>
</div><p>
<a class="anchor" name="g7a5ebcc5fa87ec0057a8d49a099e904d"></a><!-- doxytag: member="axis2_phase.h::axis2_phase_get_all_handlers" ref="g7a5ebcc5fa87ec0057a8d49a099e904d" args="(const axis2_phase_t *phase, const axutil_env_t *env)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">AXIS2_EXTERN <a class="el" href="group__axutil__array__list.html#g1a6a89777db876cfa0cc86787b7be6a0">axutil_array_list_t</a>* axis2_phase_get_all_handlers           </td>
          <td>(</td>
          <td class="paramtype">const <a class="el" href="group__axis2__phase.html#gbd87daad5497d3a4d756e20c008e3ac4">axis2_phase_t</a> *&nbsp;</td>
          <td class="paramname"> <em>phase</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const <a class="el" href="structaxutil__env.html">axutil_env_t</a> *&nbsp;</td>
          <td class="paramname"> <em>env</em></td><td>&nbsp;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td><td width="100%"></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
Gets all the handlers in the phase. <dl compact><dt><b>Parameters:</b></dt><dd>
  <table border="0" cellspacing="2" cellpadding="0">
    <tr><td valign="top"></td><td valign="top"><em>phase</em>&nbsp;</td><td>pointer to phase </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>env</em>&nbsp;</td><td>pointer to environment struct </td></tr>
  </table>
</dl>
<dl class="return" compact><dt><b>Returns:</b></dt><dd>pointer to array list containing the list of handlers </dd></dl>

</div>
</div><p>
<a class="anchor" name="gf518d1c97d2c1a16427259de20a80628"></a><!-- doxytag: member="axis2_phase.h::axis2_phase_get_handler_count" ref="gf518d1c97d2c1a16427259de20a80628" args="(const axis2_phase_t *phase, const axutil_env_t *env)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">AXIS2_EXTERN int axis2_phase_get_handler_count           </td>
          <td>(</td>
          <td class="paramtype">const <a class="el" href="group__axis2__phase.html#gbd87daad5497d3a4d756e20c008e3ac4">axis2_phase_t</a> *&nbsp;</td>
          <td class="paramname"> <em>phase</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const <a class="el" href="structaxutil__env.html">axutil_env_t</a> *&nbsp;</td>
          <td class="paramname"> <em>env</em></td><td>&nbsp;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td><td width="100%"></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
Gets handler count in the handler list. <dl compact><dt><b>Parameters:</b></dt><dd>
  <table border="0" cellspacing="2" cellpadding="0">
    <tr><td valign="top"></td><td valign="top"><em>phase</em>&nbsp;</td><td>pointer to phase </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>env</em>&nbsp;</td><td>pointer to environment struct </td></tr>
  </table>
</dl>
<dl class="return" compact><dt><b>Returns:</b></dt><dd>the number of handlers in the handler list </dd></dl>

</div>
</div><p>
<a class="anchor" name="g2c92bf9ab205f20e7b603c8a82646d23"></a><!-- doxytag: member="axis2_phase.h::axis2_phase_get_name" ref="g2c92bf9ab205f20e7b603c8a82646d23" args="(const axis2_phase_t *phase, const axutil_env_t *env)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">AXIS2_EXTERN const axis2_char_t* axis2_phase_get_name           </td>
          <td>(</td>
          <td class="paramtype">const <a class="el" href="group__axis2__phase.html#gbd87daad5497d3a4d756e20c008e3ac4">axis2_phase_t</a> *&nbsp;</td>
          <td class="paramname"> <em>phase</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const <a class="el" href="structaxutil__env.html">axutil_env_t</a> *&nbsp;</td>
          <td class="paramname"> <em>env</em></td><td>&nbsp;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td><td width="100%"></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
Gets phase name. <dl compact><dt><b>Parameters:</b></dt><dd>
  <table border="0" cellspacing="2" cellpadding="0">
    <tr><td valign="top"></td><td valign="top"><em>phase</em>&nbsp;</td><td>pointer to phase </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>env</em>&nbsp;</td><td>pointer to environment struct </td></tr>
  </table>
</dl>
<dl class="return" compact><dt><b>Returns:</b></dt><dd>returns name of phase </dd></dl>

</div>
</div><p>
<a class="anchor" name="g3fb24331f3f5b78eb1b2aab75de94fe5"></a><!-- doxytag: member="axis2_phase.h::axis2_phase_insert_after" ref="g3fb24331f3f5b78eb1b2aab75de94fe5" args="(axis2_phase_t *phase, const axutil_env_t *env, axis2_handler_t *handler)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">AXIS2_EXTERN axis2_status_t axis2_phase_insert_after           </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="group__axis2__phase.html#gbd87daad5497d3a4d756e20c008e3ac4">axis2_phase_t</a> *&nbsp;</td>
          <td class="paramname"> <em>phase</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const <a class="el" href="structaxutil__env.html">axutil_env_t</a> *&nbsp;</td>
          <td class="paramname"> <em>env</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype"><a class="el" href="group__axis2__handler.html#g62e76f39f224fb84e98b6b77fdf4655c">axis2_handler_t</a> *&nbsp;</td>
          <td class="paramname"> <em>handler</em></td><td>&nbsp;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td><td width="100%"></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
Inserts the handler into handler list of the phase based on the phase rules associated with the handler. This function takes into account the after rules of the handler. After rules specify the location of a current handler in the handler list, after which the given handler is to be placed. <dl compact><dt><b>Parameters:</b></dt><dd>
  <table border="0" cellspacing="2" cellpadding="0">
    <tr><td valign="top"></td><td valign="top"><em>phase</em>&nbsp;</td><td>pointer to phase </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>env</em>&nbsp;</td><td>pointer to environment struct </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>handler</em>&nbsp;</td><td>pointer to handler, phase does not assume the ownership of the handler </td></tr>
  </table>
</dl>
<dl class="return" compact><dt><b>Returns:</b></dt><dd>AXIS2_SUCCESS on success, else AXIS2_FAILURE </dd></dl>

</div>
</div><p>
<a class="anchor" name="g72deb07fffca51fe7f953ac82c6616b2"></a><!-- doxytag: member="axis2_phase.h::axis2_phase_insert_before" ref="g72deb07fffca51fe7f953ac82c6616b2" args="(axis2_phase_t *phase, const axutil_env_t *env, axis2_handler_t *handler)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">AXIS2_EXTERN axis2_status_t axis2_phase_insert_before           </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="group__axis2__phase.html#gbd87daad5497d3a4d756e20c008e3ac4">axis2_phase_t</a> *&nbsp;</td>
          <td class="paramname"> <em>phase</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const <a class="el" href="structaxutil__env.html">axutil_env_t</a> *&nbsp;</td>
          <td class="paramname"> <em>env</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype"><a class="el" href="group__axis2__handler.html#g62e76f39f224fb84e98b6b77fdf4655c">axis2_handler_t</a> *&nbsp;</td>
          <td class="paramname"> <em>handler</em></td><td>&nbsp;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td><td width="100%"></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
Inserts the handler into handler list of the phase based on the phase rules associated with the handler. This function takes into account the before rules of the handler. Before rules specify the location of a current handler in the handler list, before which the given handler is to be placed. <dl compact><dt><b>Parameters:</b></dt><dd>
  <table border="0" cellspacing="2" cellpadding="0">
    <tr><td valign="top"></td><td valign="top"><em>phase</em>&nbsp;</td><td>pointer to phase </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>env</em>&nbsp;</td><td>pointer to environment struct </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>handler</em>&nbsp;</td><td>pointer to handler, phase does not assume the ownership of the handler </td></tr>
  </table>
</dl>
<dl class="return" compact><dt><b>Returns:</b></dt><dd>AXIS2_SUCCESS on success, else AXIS2_FAILURE </dd></dl>

</div>
</div><p>
<a class="anchor" name="g29a679a896554e2527612d146532ebcd"></a><!-- doxytag: member="axis2_phase.h::axis2_phase_insert_before_and_after" ref="g29a679a896554e2527612d146532ebcd" args="(axis2_phase_t *phase, const axutil_env_t *env, axis2_handler_t *handler)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">AXIS2_EXTERN axis2_status_t axis2_phase_insert_before_and_after           </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="group__axis2__phase.html#gbd87daad5497d3a4d756e20c008e3ac4">axis2_phase_t</a> *&nbsp;</td>
          <td class="paramname"> <em>phase</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const <a class="el" href="structaxutil__env.html">axutil_env_t</a> *&nbsp;</td>
          <td class="paramname"> <em>env</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype"><a class="el" href="group__axis2__handler.html#g62e76f39f224fb84e98b6b77fdf4655c">axis2_handler_t</a> *&nbsp;</td>
          <td class="paramname"> <em>handler</em></td><td>&nbsp;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td><td width="100%"></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
Inserts the handler into handler list of the phase based on both before and after phase rules associated with the handler. This method assume that both the before and after cannot be the same handler . That condition is not checked by this function. It should be checked before calling this function <dl compact><dt><b>Parameters:</b></dt><dd>
  <table border="0" cellspacing="2" cellpadding="0">
    <tr><td valign="top"></td><td valign="top"><em>phase</em>&nbsp;</td><td>pointer to phase </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>env</em>&nbsp;</td><td>pointer to environment struct </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>handler</em>&nbsp;</td><td>pointer to handler, phase does not assume the ownership of the handler </td></tr>
  </table>
</dl>
<dl class="return" compact><dt><b>Returns:</b></dt><dd>AXIS2_SUCCESS on success, else AXIS2_FAILURE </dd></dl>

</div>
</div><p>
<a class="anchor" name="g60f6b9e367666f8232f3287478c83b32"></a><!-- doxytag: member="axis2_phase.h::axis2_phase_insert_handler_desc" ref="g60f6b9e367666f8232f3287478c83b32" args="(axis2_phase_t *phase, const axutil_env_t *env, axis2_handler_desc_t *handler_desc)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">AXIS2_EXTERN axis2_status_t axis2_phase_insert_handler_desc           </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="group__axis2__phase.html#gbd87daad5497d3a4d756e20c008e3ac4">axis2_phase_t</a> *&nbsp;</td>
          <td class="paramname"> <em>phase</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const <a class="el" href="structaxutil__env.html">axutil_env_t</a> *&nbsp;</td>
          <td class="paramname"> <em>env</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype"><a class="el" href="group__axis2__handler__desc.html#gafcabd9d344f36395e60f1b4677835d9">axis2_handler_desc_t</a> *&nbsp;</td>
          <td class="paramname"> <em>handler_desc</em></td><td>&nbsp;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td><td width="100%"></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
Inserts the handler to the correct location in the handler list of the phase. Location is evaluated based on the phase rules. <dl compact><dt><b>Parameters:</b></dt><dd>
  <table border="0" cellspacing="2" cellpadding="0">
    <tr><td valign="top"></td><td valign="top"><em>phase</em>&nbsp;</td><td>pointer to phase </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>env</em>&nbsp;</td><td>pointer to environment struct </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>handler_desc</em>&nbsp;</td><td>pointer to handler description, phase does not assume the ownership of neither the handler description not the handler within the handler description </td></tr>
  </table>
</dl>
<dl class="return" compact><dt><b>Returns:</b></dt><dd>AXIS2_SUCCESS on success, else AXIS2_FAILURE </dd></dl>

</div>
</div><p>
<a class="anchor" name="gde224602c7b9f220ea14f2e2e8be9e66"></a><!-- doxytag: member="axis2_phase.h::axis2_phase_invoke" ref="gde224602c7b9f220ea14f2e2e8be9e66" args="(axis2_phase_t *phase, const axutil_env_t *env, struct axis2_msg_ctx *msg_ctx)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">AXIS2_EXTERN axis2_status_t axis2_phase_invoke           </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="group__axis2__phase.html#gbd87daad5497d3a4d756e20c008e3ac4">axis2_phase_t</a> *&nbsp;</td>
          <td class="paramname"> <em>phase</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const <a class="el" href="structaxutil__env.html">axutil_env_t</a> *&nbsp;</td>
          <td class="paramname"> <em>env</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">struct axis2_msg_ctx *&nbsp;</td>
          <td class="paramname"> <em>msg_ctx</em></td><td>&nbsp;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td><td width="100%"></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
Invokes the phase. This function will in turn call invoke method of each handler in the handler list, in sequence, starting from the beginning of the list to the end of the list. <dl compact><dt><b>Parameters:</b></dt><dd>
  <table border="0" cellspacing="2" cellpadding="0">
    <tr><td valign="top"></td><td valign="top"><em>phase</em>&nbsp;</td><td>pointer to phase </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>env</em>&nbsp;</td><td>pointer to environment struct </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>msg_ctx</em>&nbsp;</td><td>pointer to message context </td></tr>
  </table>
</dl>
<dl class="return" compact><dt><b>Returns:</b></dt><dd>AXIS2_SUCCESS on success, else AXIS2_FAILURE </dd></dl>

</div>
</div><p>
<a class="anchor" name="gae4d903e6f99f2dbd7e358306cfd0733"></a><!-- doxytag: member="axis2_phase.h::axis2_phase_invoke_start_from_handler" ref="gae4d903e6f99f2dbd7e358306cfd0733" args="(axis2_phase_t *phase, const axutil_env_t *env, const int paused_handler_index, struct axis2_msg_ctx *msg_ctx)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">AXIS2_EXTERN axis2_status_t axis2_phase_invoke_start_from_handler           </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="group__axis2__phase.html#gbd87daad5497d3a4d756e20c008e3ac4">axis2_phase_t</a> *&nbsp;</td>
          <td class="paramname"> <em>phase</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const <a class="el" href="structaxutil__env.html">axutil_env_t</a> *&nbsp;</td>
          <td class="paramname"> <em>env</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const int&nbsp;</td>
          <td class="paramname"> <em>paused_handler_index</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">struct axis2_msg_ctx *&nbsp;</td>
          <td class="paramname"> <em>msg_ctx</em></td><td>&nbsp;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td><td width="100%"></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
Invokes handlers starting from the given handler index. <dl compact><dt><b>Parameters:</b></dt><dd>
  <table border="0" cellspacing="2" cellpadding="0">
    <tr><td valign="top"></td><td valign="top"><em>phase</em>&nbsp;</td><td>pointer to phase </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>env</em>&nbsp;</td><td>pointer to environment struct </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>paused_handler_index</em>&nbsp;</td><td>index of the handler to start the invocation from </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>msg_ctx</em>&nbsp;</td><td>pointer to message context </td></tr>
  </table>
</dl>
<dl class="return" compact><dt><b>Returns:</b></dt><dd>AXIS2_SUCCESS on success, else AXIS2_FAILURE </dd></dl>

</div>
</div><p>
<a class="anchor" name="g54cc63e78b54a9b1b91783b07fb3b6e9"></a><!-- doxytag: member="axis2_phase.h::axis2_phase_remove_handler" ref="g54cc63e78b54a9b1b91783b07fb3b6e9" args="(axis2_phase_t *phase, const axutil_env_t *env, axis2_handler_t *handler)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">AXIS2_EXTERN axis2_status_t axis2_phase_remove_handler           </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="group__axis2__phase.html#gbd87daad5497d3a4d756e20c008e3ac4">axis2_phase_t</a> *&nbsp;</td>
          <td class="paramname"> <em>phase</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const <a class="el" href="structaxutil__env.html">axutil_env_t</a> *&nbsp;</td>
          <td class="paramname"> <em>env</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype"><a class="el" href="group__axis2__handler.html#g62e76f39f224fb84e98b6b77fdf4655c">axis2_handler_t</a> *&nbsp;</td>
          <td class="paramname"> <em>handler</em></td><td>&nbsp;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td><td width="100%"></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
Remove the given handler from the handler list. <dl compact><dt><b>Parameters:</b></dt><dd>
  <table border="0" cellspacing="2" cellpadding="0">
    <tr><td valign="top"></td><td valign="top"><em>phase</em>&nbsp;</td><td>pointer to phase </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>env</em>&nbsp;</td><td>pointer to environment struct </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>handler</em>&nbsp;</td><td>pointer to handler, phase does not assume the ownership of the handler </td></tr>
  </table>
</dl>
<dl class="return" compact><dt><b>Returns:</b></dt><dd>AXIS2_SUCCESS on success, else AXIS2_FAILURE </dd></dl>

</div>
</div><p>
<a class="anchor" name="g2e667feb5d15a4e336e1eee3a6f77696"></a><!-- doxytag: member="axis2_phase.h::axis2_phase_remove_handler_desc" ref="g2e667feb5d15a4e336e1eee3a6f77696" args="(axis2_phase_t *phase, const axutil_env_t *env, axis2_handler_desc_t *handler_desc)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">AXIS2_EXTERN axis2_status_t axis2_phase_remove_handler_desc           </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="group__axis2__phase.html#gbd87daad5497d3a4d756e20c008e3ac4">axis2_phase_t</a> *&nbsp;</td>
          <td class="paramname"> <em>phase</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const <a class="el" href="structaxutil__env.html">axutil_env_t</a> *&nbsp;</td>
          <td class="paramname"> <em>env</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype"><a class="el" href="group__axis2__handler__desc.html#gafcabd9d344f36395e60f1b4677835d9">axis2_handler_desc_t</a> *&nbsp;</td>
          <td class="paramname"> <em>handler_desc</em></td><td>&nbsp;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td><td width="100%"></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
Remove handler within the handler description from the list of handlers in the phase. <dl compact><dt><b>Parameters:</b></dt><dd>
  <table border="0" cellspacing="2" cellpadding="0">
    <tr><td valign="top"></td><td valign="top"><em>phase</em>&nbsp;</td><td>pointer to phase </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>env</em>&nbsp;</td><td>pointer to environment struct </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>handler_desc</em>&nbsp;</td><td>pointer to handler description, phase does not assume the ownership of neither the handler description not the handler within the handler description </td></tr>
  </table>
</dl>
<dl class="return" compact><dt><b>Returns:</b></dt><dd>AXIS2_SUCCESS on success, else AXIS2_FAILURE </dd></dl>

</div>
</div><p>
<a class="anchor" name="gc434dafaada6c4a9b1a4137dcafb129f"></a><!-- doxytag: member="axis2_phase.h::axis2_phase_set_first_handler" ref="gc434dafaada6c4a9b1a4137dcafb129f" args="(axis2_phase_t *phase, const axutil_env_t *env, axis2_handler_t *handler)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">AXIS2_EXTERN axis2_status_t axis2_phase_set_first_handler           </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="group__axis2__phase.html#gbd87daad5497d3a4d756e20c008e3ac4">axis2_phase_t</a> *&nbsp;</td>
          <td class="paramname"> <em>phase</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const <a class="el" href="structaxutil__env.html">axutil_env_t</a> *&nbsp;</td>
          <td class="paramname"> <em>env</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype"><a class="el" href="group__axis2__handler.html#g62e76f39f224fb84e98b6b77fdf4655c">axis2_handler_t</a> *&nbsp;</td>
          <td class="paramname"> <em>handler</em></td><td>&nbsp;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td><td width="100%"></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
Sets the first handler in the handler list. <dl compact><dt><b>Parameters:</b></dt><dd>
  <table border="0" cellspacing="2" cellpadding="0">
    <tr><td valign="top"></td><td valign="top"><em>phase</em>&nbsp;</td><td>pointer to phase </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>env</em>&nbsp;</td><td>pointer to environment struct </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>handler</em>&nbsp;</td><td>pointer to handler, phase does not assume the ownership of the handler </td></tr>
  </table>
</dl>
<dl class="return" compact><dt><b>Returns:</b></dt><dd>AXIS2_SUCCESS on success, else AXIS2_FAILURE </dd></dl>

</div>
</div><p>
<a class="anchor" name="gd958e22d2aebf7f66390bd8f7a7ecefb"></a><!-- doxytag: member="axis2_phase.h::axis2_phase_set_last_handler" ref="gd958e22d2aebf7f66390bd8f7a7ecefb" args="(axis2_phase_t *phase, const axutil_env_t *env, axis2_handler_t *handler)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">AXIS2_EXTERN axis2_status_t axis2_phase_set_last_handler           </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="group__axis2__phase.html#gbd87daad5497d3a4d756e20c008e3ac4">axis2_phase_t</a> *&nbsp;</td>
          <td class="paramname"> <em>phase</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const <a class="el" href="structaxutil__env.html">axutil_env_t</a> *&nbsp;</td>
          <td class="paramname"> <em>env</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype"><a class="el" href="group__axis2__handler.html#g62e76f39f224fb84e98b6b77fdf4655c">axis2_handler_t</a> *&nbsp;</td>
          <td class="paramname"> <em>handler</em></td><td>&nbsp;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td><td width="100%"></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
Sets the last handler in the handler list. <dl compact><dt><b>Parameters:</b></dt><dd>
  <table border="0" cellspacing="2" cellpadding="0">
    <tr><td valign="top"></td><td valign="top"><em>phase</em>&nbsp;</td><td>pointer to phase </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>env</em>&nbsp;</td><td>pointer to environment struct </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>handler</em>&nbsp;</td><td>pointer to handler, phase does not assume the ownership of the handler </td></tr>
  </table>
</dl>
<dl class="return" compact><dt><b>Returns:</b></dt><dd>AXIS2_SUCCESS on success, else AXIS2_FAILURE </dd></dl>

</div>
</div><p>
<hr size="1"><address style="text-align: right;"><small>Generated on Fri Apr 17 11:49:45 2009 for Axis2/C by&nbsp;
<a href="http://www.doxygen.org/index.html">
<img src="doxygen.png" alt="doxygen" align="middle" border="0"></a> 1.5.3 </small></address>
</body>
</html>


<|start_filename|>samples/codegen/databinding/Calculator/client/CalculatorAdd.c<|end_filename|>
#include "axis2_stub_Calculator.h"
int 
main(
    int argc,
    char *argv) 
{
    axutil_env_t * env = NULL;
    axis2_char_t * operation = NULL;
    axis2_char_t * client_home = NULL;
    axis2_char_t * endpoint_uri = NULL;
    axis2_stub_t * stub = NULL;
    adb_addResponse_t * add_res = NULL;
    adb_add_t * add_in = NULL;
    int res_val = 0;
    endpoint_uri = "http://localhost:9090/axis2/services/Calculator";
    env = axutil_env_create_all("alltest.log", AXIS2_LOG_LEVEL_TRACE);
    
    /* Set up deploy folder. */ 
    client_home = AXIS2_GETENV("AXIS2C_HOME");
    if (!client_home)
        client_home = "../../../deploy";
    stub = axis2_stub_create_Calculator(env, client_home, endpoint_uri);
    add_in = adb_add_create(env);
    adb_add_set_arg_0_0(add_in, env, 10);
    adb_add_set_arg_1_0(add_in, env, 10);
    add_res = axis2_stub_op_Calculator_add(stub, env, add_in);
    if (!add_res)
        
    {
        printf("Error: response NULL\n");
        return -1;
    }
    res_val = adb_addResponse_get_addReturn(add_res, env);
    printf("ADD Result:%d ", res_val);
    return 0;
}




<|start_filename|>xdocs/api/html/group__axiom__soap__fault__detail.html<|end_filename|>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html><head><meta http-equiv="Content-Type" content="text/html;charset=UTF-8">
<title>Axis2/C: soap fault detail</title>
<link href="doxygen.css" rel="stylesheet" type="text/css">
<link href="tabs.css" rel="stylesheet" type="text/css">
</head><body>
<!-- Generated by Doxygen 1.5.3 -->
<div class="tabs">
  <ul>
    <li><a href="index.html"><span>Main&nbsp;Page</span></a></li>
    <li><a href="modules.html"><span>Modules</span></a></li>
    <li><a href="annotated.html"><span>Classes</span></a></li>
    <li><a href="files.html"><span>Files</span></a></li>
    <li><a href="dirs.html"><span>Directories</span></a></li>
    <li><a href="pages.html"><span>Related&nbsp;Pages</span></a></li>
    <li><a href="examples.html"><span>Examples</span></a></li>
    <li>
      <form action="search.php" method="get">
        <table cellspacing="0" cellpadding="0" border="0">
          <tr>
            <td><label>&nbsp;<u>S</u>earch&nbsp;for&nbsp;</label></td>
            <td><input type="text" name="query" value="" size="20" accesskey="s"/></td>
          </tr>
        </table>
      </form>
    </li>
  </ul>
</div>
<h1>soap fault detail<br>
<small>
[<a class="el" href="group__axiom__soap.html">SOAP</a>]</small>
</h1><table border="0" cellpadding="0" cellspacing="0">
<tr><td></td></tr>
<tr><td colspan="2"><br><h2>Functions</h2></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top">AXIS2_EXTERN <br>
axiom_soap_fault_detail_t *&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__axiom__soap__fault__detail.html#ga176a5c0fe38155991dddde2e8d36229">axiom_soap_fault_detail_create_with_parent</a> (const <a class="el" href="structaxutil__env.html">axutil_env_t</a> *env, axiom_soap_fault_t *fault)</td></tr>

<tr><td class="memItemLeft" nowrap align="right" valign="top">AXIS2_EXTERN void&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__axiom__soap__fault__detail.html#g04a0d4c7bb96ffa60a7b5e4a6440af79">axiom_soap_fault_detail_free</a> (axiom_soap_fault_detail_t *fault_detail, const <a class="el" href="structaxutil__env.html">axutil_env_t</a> *env)</td></tr>

<tr><td class="memItemLeft" nowrap align="right" valign="top">AXIS2_EXTERN <br>
axis2_status_t&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__axiom__soap__fault__detail.html#g30e68309c908c12c28fc2721db04296b">axiom_soap_fault_detail_add_detail_entry</a> (axiom_soap_fault_detail_t *fault_detail, const <a class="el" href="structaxutil__env.html">axutil_env_t</a> *env, axiom_node_t *ele_node)</td></tr>

<tr><td class="memItemLeft" nowrap align="right" valign="top">AXIS2_EXTERN <br>
axiom_children_iterator_t *&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__axiom__soap__fault__detail.html#g211f2e71c7d481d141498b3d0ab6d8c0">axiom_soap_fault_detail_get_all_detail_entries</a> (axiom_soap_fault_detail_t *fault_detail, const <a class="el" href="structaxutil__env.html">axutil_env_t</a> *env)</td></tr>

<tr><td class="memItemLeft" nowrap align="right" valign="top">AXIS2_EXTERN <br>
axiom_node_t *&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__axiom__soap__fault__detail.html#g85a5beb382158427f7d560b62bdd2fa3">axiom_soap_fault_detail_get_base_node</a> (axiom_soap_fault_detail_t *fault_code, const <a class="el" href="structaxutil__env.html">axutil_env_t</a> *env)</td></tr>

</table>
<hr><h2>Function Documentation</h2>
<a class="anchor" name="g30e68309c908c12c28fc2721db04296b"></a><!-- doxytag: member="axiom_soap_fault_detail.h::axiom_soap_fault_detail_add_detail_entry" ref="g30e68309c908c12c28fc2721db04296b" args="(axiom_soap_fault_detail_t *fault_detail, const axutil_env_t *env, axiom_node_t *ele_node)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">AXIS2_EXTERN axis2_status_t axiom_soap_fault_detail_add_detail_entry           </td>
          <td>(</td>
          <td class="paramtype">axiom_soap_fault_detail_t *&nbsp;</td>
          <td class="paramname"> <em>fault_detail</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const <a class="el" href="structaxutil__env.html">axutil_env_t</a> *&nbsp;</td>
          <td class="paramname"> <em>env</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">axiom_node_t *&nbsp;</td>
          <td class="paramname"> <em>ele_node</em></td><td>&nbsp;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td><td width="100%"></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
Adds a detail entry to the SOAP fault detail <dl compact><dt><b>Parameters:</b></dt><dd>
  <table border="0" cellspacing="2" cellpadding="0">
    <tr><td valign="top"></td><td valign="top"><em>fault_detail</em>&nbsp;</td><td>pointer to soap_fault_detail struct </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>env</em>&nbsp;</td><td>Environment. MUST NOT be NULL </td></tr>
  </table>
</dl>
<dl class="return" compact><dt><b>Returns:</b></dt><dd>satus of the op. AXIS2_SUCCESS on success else AXIS2_FAILURE </dd></dl>

</div>
</div><p>
<a class="anchor" name="ga176a5c0fe38155991dddde2e8d36229"></a><!-- doxytag: member="axiom_soap_fault_detail.h::axiom_soap_fault_detail_create_with_parent" ref="ga176a5c0fe38155991dddde2e8d36229" args="(const axutil_env_t *env, axiom_soap_fault_t *fault)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">AXIS2_EXTERN axiom_soap_fault_detail_t* axiom_soap_fault_detail_create_with_parent           </td>
          <td>(</td>
          <td class="paramtype">const <a class="el" href="structaxutil__env.html">axutil_env_t</a> *&nbsp;</td>
          <td class="paramname"> <em>env</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">axiom_soap_fault_t *&nbsp;</td>
          <td class="paramname"> <em>fault</em></td><td>&nbsp;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td><td width="100%"></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
creates a soap struct <dl compact><dt><b>Parameters:</b></dt><dd>
  <table border="0" cellspacing="2" cellpadding="0">
    <tr><td valign="top"></td><td valign="top"><em>env</em>&nbsp;</td><td>Environment. MUST NOT be NULL </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>fault</em>&nbsp;</td><td>The SOAP fault</td></tr>
  </table>
</dl>
<dl class="return" compact><dt><b>Returns:</b></dt><dd>the created OM SOAP fault detail </dd></dl>

</div>
</div><p>
<a class="anchor" name="g04a0d4c7bb96ffa60a7b5e4a6440af79"></a><!-- doxytag: member="axiom_soap_fault_detail.h::axiom_soap_fault_detail_free" ref="g04a0d4c7bb96ffa60a7b5e4a6440af79" args="(axiom_soap_fault_detail_t *fault_detail, const axutil_env_t *env)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">AXIS2_EXTERN void axiom_soap_fault_detail_free           </td>
          <td>(</td>
          <td class="paramtype">axiom_soap_fault_detail_t *&nbsp;</td>
          <td class="paramname"> <em>fault_detail</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const <a class="el" href="structaxutil__env.html">axutil_env_t</a> *&nbsp;</td>
          <td class="paramname"> <em>env</em></td><td>&nbsp;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td><td width="100%"></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
Free an axiom_soap_fault_detail <dl compact><dt><b>Parameters:</b></dt><dd>
  <table border="0" cellspacing="2" cellpadding="0">
    <tr><td valign="top"></td><td valign="top"><em>fault_detail</em>&nbsp;</td><td>pointer to soap_fault_detail struct </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>env</em>&nbsp;</td><td>Environment. MUST NOT be NULL </td></tr>
  </table>
</dl>
<dl class="return" compact><dt><b>Returns:</b></dt><dd>satus of the op. AXIS2_SUCCESS on success else AXIS2_FAILURE </dd></dl>

</div>
</div><p>
<a class="anchor" name="g211f2e71c7d481d141498b3d0ab6d8c0"></a><!-- doxytag: member="axiom_soap_fault_detail.h::axiom_soap_fault_detail_get_all_detail_entries" ref="g211f2e71c7d481d141498b3d0ab6d8c0" args="(axiom_soap_fault_detail_t *fault_detail, const axutil_env_t *env)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">AXIS2_EXTERN axiom_children_iterator_t* axiom_soap_fault_detail_get_all_detail_entries           </td>
          <td>(</td>
          <td class="paramtype">axiom_soap_fault_detail_t *&nbsp;</td>
          <td class="paramname"> <em>fault_detail</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const <a class="el" href="structaxutil__env.html">axutil_env_t</a> *&nbsp;</td>
          <td class="paramname"> <em>env</em></td><td>&nbsp;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td><td width="100%"></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
Return all detail entries in the SOAP fault detail <dl compact><dt><b>Parameters:</b></dt><dd>
  <table border="0" cellspacing="2" cellpadding="0">
    <tr><td valign="top"></td><td valign="top"><em>fault_detail</em>&nbsp;</td><td>pointer to soap_fault_detail struct </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>env</em>&nbsp;</td><td>Environment. MUST NOT be NULL </td></tr>
  </table>
</dl>
<dl class="return" compact><dt><b>Returns:</b></dt><dd>satus of the op. AXIS2_SUCCESS on success else AXIS2_FAILURE </dd></dl>

</div>
</div><p>
<a class="anchor" name="g85a5beb382158427f7d560b62bdd2fa3"></a><!-- doxytag: member="axiom_soap_fault_detail.h::axiom_soap_fault_detail_get_base_node" ref="g85a5beb382158427f7d560b62bdd2fa3" args="(axiom_soap_fault_detail_t *fault_code, const axutil_env_t *env)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">AXIS2_EXTERN axiom_node_t* axiom_soap_fault_detail_get_base_node           </td>
          <td>(</td>
          <td class="paramtype">axiom_soap_fault_detail_t *&nbsp;</td>
          <td class="paramname"> <em>fault_code</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const <a class="el" href="structaxutil__env.html">axutil_env_t</a> *&nbsp;</td>
          <td class="paramname"> <em>env</em></td><td>&nbsp;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td><td width="100%"></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
Returns the base node of the SOAP fault detail <dl compact><dt><b>Parameters:</b></dt><dd>
  <table border="0" cellspacing="2" cellpadding="0">
    <tr><td valign="top"></td><td valign="top"><em>fault_detail</em>&nbsp;</td><td>pointer to soap_fault_detail struct </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>env</em>&nbsp;</td><td>Environment. MUST NOT be NULL </td></tr>
  </table>
</dl>
<dl class="return" compact><dt><b>Returns:</b></dt><dd>satus of the op. AXIS2_SUCCESS on success else AXIS2_FAILURE </dd></dl>

</div>
</div><p>
<hr size="1"><address style="text-align: right;"><small>Generated on Fri Apr 17 11:49:44 2009 for Axis2/C by&nbsp;
<a href="http://www.doxygen.org/index.html">
<img src="doxygen.png" alt="doxygen" align="middle" border="0"></a> 1.5.3 </small></address>
</body>
</html>


<|start_filename|>samples/mtom_caching_callback/mtom_caching_callback.c<|end_filename|>
/*
 * 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.
 */

#include <stdio.h>
#include <axutil_string.h>
#include <axutil_utils.h>
#include <axiom_mtom_caching_callback.h>
#include <axutil_url.h>


AXIS2_EXTERN axis2_status_t AXIS2_CALL
caching_callback_free(axiom_mtom_caching_callback_t *caching_callback,
								const axutil_env_t* env)
{
	if (caching_callback)
	{
		if (caching_callback->ops)
		{
			AXIS2_FREE(env->allocator, caching_callback->ops);
		}
		AXIS2_FREE(env->allocator, caching_callback);
	}
	return AXIS2_SUCCESS;
}

AXIS2_EXTERN void* AXIS2_CALL
caching_callback_init_handler(axiom_mtom_caching_callback_t *caching_callback, 
                              const axutil_env_t* env,
                              axis2_char_t *key)
{
    FILE *fp = NULL;
    axis2_char_t *file_name = NULL;
    axis2_char_t *encoded_key = NULL;

    if(caching_callback->user_param)
    {
        /* If this is set the callback implementer may use 
           it to create the void return value at the end of
           this function.  
         */
    }   
 
    if(key)
    {
        /*encoded_key = axutil_strdup(env, key);*/
        encoded_key = AXIS2_MALLOC(env->allocator, (sizeof(axis2_char_t ))* (strlen(key)));
        memset(encoded_key, 0, strlen(key));

        if(encoded_key)
        {
            encoded_key = axutil_url_encode(env, encoded_key, key, strlen(key));
        }

        file_name = axutil_stracat(env, "/opt/tmp/", encoded_key);
        /*file_name = key;*/
        if(file_name)
        {
            fp = fopen(file_name, "ab+");
        }
        else
        {
            return NULL;
        }
    }

    #if !defined(WIN32)
    {
        axis2_char_t permission_str[256];
        sprintf(permission_str, "chmod 777 %s", file_name);
        system(permission_str);
    }
    #endif
    
    if(encoded_key)
    {
        AXIS2_FREE(env->allocator, encoded_key);
        encoded_key = NULL;
    }


    if(file_name)
    {
        AXIS2_FREE(env->allocator, file_name);
        file_name = NULL;
    }

    return (void *)fp;
}

AXIS2_EXTERN axis2_status_t AXIS2_CALL
caching_callback_cache(axiom_mtom_caching_callback_t *caching_callback, 
            const axutil_env_t* env,
            axis2_char_t *buf,
            int buf_len,
            void* handler)
{
    int len = 0;
    FILE *fp = (FILE *)(handler);


    len = fwrite(buf, 1, buf_len, fp);
    if(len < 0)
    {
        return AXIS2_FAILURE;
    }
   
    return AXIS2_SUCCESS; 

}


AXIS2_EXTERN axis2_status_t AXIS2_CALL
caching_callback_close_handler(axiom_mtom_caching_callback_t *caching_callback, 
            const axutil_env_t* env,
            void* handler)
{
    axis2_status_t status = AXIS2_SUCCESS;
                                                                                                                
    if(fclose((FILE *)handler) != 0)
    {
        status = AXIS2_FAILURE;
    }
    return status;
}


/**
 * Following block distinguish the exposed part of the dll.
 */
AXIS2_EXPORT int
axis2_get_instance(axiom_mtom_caching_callback_t **inst,
        const axutil_env_t *env)
{
    axiom_mtom_caching_callback_t* caching_callback = NULL;

    caching_callback = AXIS2_MALLOC(env->allocator,
            sizeof(axiom_mtom_caching_callback_t));

    caching_callback->ops = AXIS2_MALLOC(
                env->allocator, sizeof(axiom_mtom_caching_callback_ops_t));

    /*assign function pointers*/

    caching_callback->ops->init_handler = caching_callback_init_handler;
    caching_callback->ops->cache = caching_callback_cache;
    caching_callback->ops->close_handler = caching_callback_close_handler;
    caching_callback->ops->free = caching_callback_free;

    *inst = caching_callback;

    if (!(*inst))
    {
        AXIS2_LOG_ERROR(env->log, AXIS2_LOG_SI, 
            "Cannot load the caching callback");
        return AXIS2_FAILURE;
    }

    return AXIS2_SUCCESS;
}

AXIS2_EXPORT int axis2_remove_instance(axiom_mtom_caching_callback_t *inst,
        const axutil_env_t *env)
{
    axis2_status_t status = AXIS2_FAILURE;
    if (inst)
    {
        status = AXIOM_MTOM_CACHING_CALLBACK_FREE(inst, env);
    }
    return status;
}


<|start_filename|>util/test/properties/property_test.c<|end_filename|>
#include <stdio.h>
#include <axutil_env.h>
#include "../util/create_env.h"
#include <axutil_properties.h>

axis2_char_t *
axutil_properties_read(
    FILE *input,
    const axutil_env_t *env);

/** @brief test properties
  * read file and give the output
  */
axis2_status_t test_properties(axutil_env_t *env)
{ 
    axutil_hash_t* all_properties = NULL;
    axis2_status_t status = AXIS2_FAILURE;
    axis2_char_t* cur = NULL;
    axis2_char_t* input_filename = "test.doc";
    axutil_properties_t * properties = NULL;
    axis2_status_t  store_properties ;
    axis2_status_t  load_properties ;
    axis2_char_t * key = "key";
    axis2_char_t * value = "value";
    FILE *input = fopen("input.doc","rb");
    FILE *output = fopen("output.doc","rb");
    if (!(input && output))
    {
        return AXIS2_FAILURE;
    }
    
    properties = axutil_properties_create(env);
    if(!properties)
    {
        printf("Properties are not created\n");
        axutil_property_free(properties,env);
        return AXIS2_FAILURE;
    }
    else
    printf("The the axutil_properties_create is successfull\n");
 
    cur = axutil_properties_read(input,env);
    if(!cur)
    {
        printf("Can't read properties\n");
        axutil_property_free(properties,env);
        return AXIS2_FAILURE;
    }
    else
    printf("The test axutil_properties_read is successfull\n");

    status = axutil_properties_set_property(properties,env, key, value);
    if (status == AXIS2_SUCCESS)
        printf("The test axutil_properties_set_property is successful\n");
    else
        printf("The test axutil_properties_set_property failed\n") ;

  
    store_properties = axutil_properties_store(properties,env,output);
    if(!store_properties)
    {
        printf("Can not store the properties\n");
        axutil_property_free(properties,env);
        return AXIS2_FAILURE;
    }
    else 
    printf("The test axutil_properties_store is successfull\n");
    
    load_properties = axutil_properties_load(properties,env,input_filename);   
    if(!load_properties)
    {
        printf("Properties can't be loaded\n");
        axutil_property_free(properties,env);
        return AXIS2_FAILURE;
    }
    else 
    printf("The test axutil_properties_load is successfull\n");
    
    all_properties = axutil_properties_get_all(properties,env);
    if(!all_properties)
    {
        printf("Can't call properties_get_all\n");
        axutil_property_free(properties,env);
        return AXIS2_FAILURE;
    }
    else
    printf("The test axutil_properties_get_all is successfull\n");
    
    axutil_property_free(properties,env);   
 
    return AXIS2_SUCCESS;
}

int main()
{
    axutil_env_t *env = NULL;
    int status = AXIS2_SUCCESS;
    env = create_environment();
    status = test_properties(env);
    
    if(status == AXIS2_FAILURE)
    {
        printf(" The test is failed\n");
    }
    
    axutil_env_free(env);
    return 0;
}











<|start_filename|>guththila/include/guththila_utf8.h<|end_filename|>

/*
 * 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 GUTHTHILA_UTF8_H
#define GUTHTHILA_UTF8_H

#include <stdio.h>
#include <guththila_defines.h>
#include <axutil_utils.h>

EXTERN_C_START()  

typedef struct guththila_utf8_decoder_s
{
    int remaining_bytes;      /* Number of bytes needed to finish character */
    int used_bytes;           /* Number of bytes used so far for character */
    int error_bytes;          /* Number of bytes read that are in error */
    guththila_char_t used_buffer[4];  /* Buffer of bytes used so far */
    guththila_char_t error_buffer[4]; /* Buffer of bytes that are in error */
    int code_point;           /* Decoded code point */
    int replacement_code_point;       /* Code point used to replace errors */
} guththila_utf8_decoder_t;

#ifndef GUTHTHILA_UTF8_DECODER_IS_ERROR
#define GUTHTHILA_UTF8_DECODER_IS_ERROR(_decoder) ((_decoder)->error_bytes > 0)
#endif  

#ifndef GUTHTHILA_UTF8_DECODER_IS_CODE_POINT
#define GUTHTHILA_UTF8_DECODER_IS_CODE_POINT(_decoder) ((_decoder)->remaining_bytes == 0 && (_decoder)->used_bytes > 0)
#endif  

#ifndef GUTHTHILA_UTF8_DECODER_GET_CODE_POINT
#define GUTHTHILA_UTF8_DECODER_GET_CODE_POINT(_decoder) ((_decoder)->code_point)
#endif  

/* 
 * Create a UTF-8 decoder.  The decoder transcodes a UTF-8 byte stream
 * into Unicode code points.
 * @param env environment
 */
GUTHTHILA_EXPORT guththila_utf8_decoder_t * GUTHTHILA_CALL
guththila_utf8_decoder_create(const axutil_env_t * env);

/* 
 * Decode the next UTF-8 byte into a Unicode code point.  Since
 * more than 1 byte may be needed to decode a complete code point,
 * this function should be called repeatedly with successive bytes
 * from the UTF-8 byte stream as long as the return value is false.
 * This returns true when a complete code point is decoded or when
 * there is a complete error.  It is possible for there to be an
 * error without a completed code point as well as with a completed
 * code point.  The caller should check for error each time this
 * function is called.
 * @param decoder UTF-8 decoder
 * @param inchar the next UTF-8 byte to be decoded
 * @param code_point the returned Unicode code point
 * @param env environment
 * @return 0 if more bytes are needed, non-zero if code_point is complete.
 */
GUTHTHILA_EXPORT int GUTHTHILA_CALL  guththila_utf8_decoder_decode(
    guththila_utf8_decoder_t * decoder,
    guththila_char_t inchar,
    int *code_point,
    const axutil_env_t * env);

/* 
 * Free the UTF-8 decoder.
 * @param decoder UTF-8 decoder
 * @param env environment
 */
GUTHTHILA_EXPORT void GUTHTHILA_CALL  guththila_utf8_decoder_free(
    guththila_utf8_decoder_t * decoder,
    const axutil_env_t * env);

/* 
 * Clear the UTF-8 decoder after getting error and code point.
 * @param decoder UTF-8 decoder
 * @param env environment
 */
GUTHTHILA_EXPORT void GUTHTHILA_CALL  guththila_utf8_decoder_clear(
    guththila_utf8_decoder_t * decoder,
    const axutil_env_t * env);


typedef struct guththila_utf8_encoder_s
{
    int remaining_bytes;      /* Number of bytes needed to finish character */
    int is_error;             /* Whether there was an error in code point */
} guththila_utf8_encoder_t;

#ifndef GUTHTHILA_UTF8_ENCODER_IS_ERROR
#define GUTHTHILA_UTF8_ENCODER_IS_ERROR(_encoder) ((_encoder)->is_error)
#endif  

#ifndef GUTHTHILA_UTF8_ENCODER_IS_BUFFERED
#define GUTHTHILA_UTF8_ENCODER_IS_BUFFERED(_encoder) ((_encoder)->remaining_bytes == 0)
#endif  

/* 
 * Create a UTF-8 encoder.  The encoder transcodes a Unicode code point
 * into a UTF-8 byte stream.
 * @param env environment
 */
GUTHTHILA_EXPORT guththila_utf8_encoder_t * GUTHTHILA_CALL
guththila_utf8_encoder_create(const axutil_env_t * env);

/* 
 * Encode a Unicode code point into a UTF-8 byte stream buffer.  Since
 * more than 1 byte may be needed to encode a complete code point,
 * this function may need more buffer space than supplied so it should
 * be called repeatedly with more buffer space as long as the return
 * value is false.  This returns true when a complete code point is
 * encoded into the buffer.  It is possible for there to be an
 * error with an invalid Unicode code point.  The caller should check
 * for error each time this function is called.
 * @param encoder UTF-8 encoder
 * @param code_point the Unicode code point to be encoded
 * @param inchar the next UTF-8 byte to be decoded
 * @param env environment
 * @return 0 if more buffer is needed, non-zero if encoding is complete.
 */
GUTHTHILA_EXPORT int GUTHTHILA_CALL  guththila_utf8_encoder_encode(
    guththila_utf8_encoder_t * encoder,
    int code_point,
    guththila_char_t * buffer,
    int *buffer_length,
    const axutil_env_t * env);
/* 
 * Free the UTF-8 encoder.
 * @param encoder UTF-8 encoder
 * @param env environment
 */
GUTHTHILA_EXPORT void GUTHTHILA_CALL  guththila_utf8_encoder_free(
    guththila_utf8_encoder_t * encoder,
    const axutil_env_t * env);

EXTERN_C_END() 
#endif  /*  */



<|start_filename|>samples/server/sg_math/sg_math.mk<|end_filename|>
echo:
	@cl.exe /nologo /D "WIN32" /D "AXIS2_DECLARE_EXPORT" /D "_WINDOWS" /D "_MBCS" add.c add_skeleton.c /I.\..\..\..\include /c
	@link.exe /nologo add.obj /LIBPATH:.\..\..\..\lib axiom.lib axutil.lib axis2_engine.lib axis2_parser.lib /DLL /OUT:add.dll

	
	@cl.exe /nologo /D "WIN32" /D "AXIS2_DECLARE_EXPORT" /D "_WINDOWS" /D "_MBCS" div.c div_skeleton.c /I.\..\..\..\include /c
	@link.exe /nologo div.obj /LIBPATH:.\..\..\..\lib axiom.lib axis2_util.lib axis2_engine.lib axis2_parser.lib /DLL /OUT:div.dll


	@cl.exe /nologo /D "WIN32" /D "AXIS2_DECLARE_EXPORT" /D "_WINDOWS" /D "_MBCS" sub.c sub_skeleton.c /I.\..\..\..\include /c
	@link.exe /nologo sub.obj /LIBPATH:.\..\..\..\lib axiom.lib axutil.lib axis2_engine.lib axis2_parser.lib /DLL /OUT:sub.dll


	@cl.exe /nologo /D "WIN32" /D "AXIS2_DECLARE_EXPORT" /D "_WINDOWS" /D "_MBCS" mul.c mul_skeleton.c /I.\..\..\..\include /c
	@link.exe /nologo mul.obj /LIBPATH:.\..\..\..\lib axiom.lib axutil.lib axis2_engine.lib axis2_parser.lib /DLL /OUT:mul.dll


<|start_filename|>util/test/util/test_thread.h<|end_filename|>

/*
* 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 TEST_LOG_H
#define TEST_LOG_H

#include <axutil_env.h>
#include <axutil_thread.h>

void init_func(
    void);
void thread_init(
    const axutil_env_t * env);
void *AXIS2_CALL
test_function(
    axutil_thread_t * td,
    void *param);
void test_axutil_thread_create(
    const axutil_env_t * env);
void *AXIS2_CALL
test_function2(
    axutil_thread_t * td,
    void *param);
void test_axutil_thread_detach(
    const axutil_env_t * env);
void test_axutil_thread_detach2(
    const axutil_env_t * env);
void check_locks(
);

/*call this method from main*/
void run_test_thread(
    const axutil_env_t * env);

#endif


<|start_filename|>axiom/src/om/axiom_node_internal.h<|end_filename|>

/*
 * 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 AXIOM_NODE_INTERNAL_H
#define AXIOM_NODE_INTERNAL_H

/** @defgroup axiom AXIOM (Axis Object Model)
 * @ingroup axis2
 * @{
 */

/** @} */

#include <axiom_node.h>

#ifdef __cplusplus
extern "C"
{
#endif

    /**
     * @defgroup axiom_node  OM Node
     * @ingroup axiom
     * @{
     */
    struct axiom_document;
    struct axiom_stax_builder;

    /**
     * Sets a parent node to a given node, if a parent already exist for this node
     * then it is detached before seting the parent internal function;
     * @param om_node child node to whom a parent to be added. , cannot be NULL.
     * @param env Environment. MUST NOT be NULL, .
     * @param parent_node the node that will be set as parent. , cannot be NULL.
     * @return satus of the op. AXIS2_SUCCESS on success else AXIS2_FAILURE
     */
    AXIS2_EXTERN axis2_status_t AXIS2_CALL
    axiom_node_set_parent(
        axiom_node_t * om_node,
        const axutil_env_t * env,
        axiom_node_t * parent);

    /**
     * Sets a node as first child of om_node
     * @param om_node om_node
     * @param env environment, MUST NOT be NULL.
     * @param first_child child to be set as first child
     */
    AXIS2_EXTERN axis2_status_t AXIS2_CALL
    axiom_node_set_first_child(
        axiom_node_t * om_node,
        const axutil_env_t * env,
        axiom_node_t * first_child);

    /**
     * Sets previous sibling
     * @param om_node
     * @param env environment, MUST NOT be NULL.
     * @param prev_sibling
     * @return status of the op, AXIS2_SUCCESS on success
     *     AXIS2_FAILURE on error
     */
    AXIS2_EXTERN axis2_status_t AXIS2_CALL
    axiom_node_set_previous_sibling(
        axiom_node_t * om_node,
        const axutil_env_t * env,
        axiom_node_t * prev_sibling);

    /**
     * Sets next sibling
     * @param om_node
     * @param env environment, MUST NOT be NULL.
     * @param last_sibling
     * @return status of the op, AXIS2_SUCCESS on success,
     *     AXIS2_FAILURE on error
     */
    AXIS2_EXTERN axis2_status_t AXIS2_CALL
    axiom_node_set_next_sibling(
        axiom_node_t * om_node,
        const axutil_env_t * env,
        axiom_node_t * next_sibling);

    /**
     * Sets node type
     * @param om_node
     * @param env environment, MUST NOT be NULL.
     * @param type type of the node
     * @return status code of the op AXIS2_SUCCESS on success,
     *     AXIS2_FAILURE on error
     */
    AXIS2_EXTERN axis2_status_t AXIS2_CALL
    axiom_node_set_node_type(
        axiom_node_t * om_node,
        const axutil_env_t * env,
        axiom_types_t type);

    /**
     * Sets data element
     * @param om_node  node struct
     * @param env environment, MUST NOT be NULL.
     * @param data_element
     * @return status code of the op AXIS2_SUCCESS on success,
     *     AXIS2_FAILURE on error
     */
    AXIS2_EXTERN axis2_status_t AXIS2_CALL
    axiom_node_set_data_element(
        axiom_node_t * om_node,
        const axutil_env_t * env,
        void *data_element);

    /**
     * Sets the build status , if the node if completety build, this attribute  is
     * set to AXIS2_TRUE , otherwise AXIS2_FALSE
     * @param om_node
     * @param env environment, MUST NOT be NULL.
     * @param done
     */
    AXIS2_EXTERN axis2_status_t AXIS2_CALL
    axiom_node_set_complete(
        axiom_node_t * om_node,
        const axutil_env_t * env,
        axis2_bool_t done);

    /**
     * This functions is only to be used by builder
     * do not use this function
     */
    AXIS2_EXTERN axis2_status_t AXIS2_CALL
    axiom_node_set_document(
        axiom_node_t * om_node,
        const axutil_env_t * env,
        struct axiom_document *om_doc);

    /**
     * Sets the builder
     */
    AXIS2_EXTERN axis2_status_t AXIS2_CALL
    axiom_node_set_builder(
        axiom_node_t * om_node,
        const axutil_env_t * env,
        struct axiom_stax_builder *builder);

    AXIS2_EXTERN struct axiom_stax_builder *AXIS2_CALL

                axiom_node_get_builder(
                    axiom_node_t * om_node,
                    const axutil_env_t * env);

    /** @} */

#ifdef __cplusplus
}
#endif

#endif /** AXIOM_NODE_INTERNAL_H */


<|start_filename|>xdocs/api/html/group__axis2__svc__ctx.html<|end_filename|>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html><head><meta http-equiv="Content-Type" content="text/html;charset=UTF-8">
<title>Axis2/C: service context</title>
<link href="doxygen.css" rel="stylesheet" type="text/css">
<link href="tabs.css" rel="stylesheet" type="text/css">
</head><body>
<!-- Generated by Doxygen 1.5.3 -->
<div class="tabs">
  <ul>
    <li><a href="index.html"><span>Main&nbsp;Page</span></a></li>
    <li><a href="modules.html"><span>Modules</span></a></li>
    <li><a href="annotated.html"><span>Classes</span></a></li>
    <li><a href="files.html"><span>Files</span></a></li>
    <li><a href="dirs.html"><span>Directories</span></a></li>
    <li><a href="pages.html"><span>Related&nbsp;Pages</span></a></li>
    <li><a href="examples.html"><span>Examples</span></a></li>
    <li>
      <form action="search.php" method="get">
        <table cellspacing="0" cellpadding="0" border="0">
          <tr>
            <td><label>&nbsp;<u>S</u>earch&nbsp;for&nbsp;</label></td>
            <td><input type="text" name="query" value="" size="20" accesskey="s"/></td>
          </tr>
        </table>
      </form>
    </li>
  </ul>
</div>
<h1>service context<br>
<small>
[<a class="el" href="group__axis2__context.html">Context Hierarchy</a>]</small>
</h1><table border="0" cellpadding="0" cellspacing="0">
<tr><td></td></tr>
<tr><td colspan="2"><br><h2>Files</h2></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top">file &nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="axis2__svc__ctx_8h.html">axis2_svc_ctx.h</a></td></tr>

<tr><td colspan="2"><br><h2>Typedefs</h2></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top">typedef struct <br>
axis2_svc_ctx&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__axis2__svc__ctx.html#g2a3845db3eb9e9a47b992f6c8882e482">axis2_svc_ctx_t</a></td></tr>

<tr><td colspan="2"><br><h2>Functions</h2></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top">AXIS2_EXTERN <br>
<a class="el" href="group__axis2__svc__ctx.html#g2a3845db3eb9e9a47b992f6c8882e482">axis2_svc_ctx_t</a> *&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__axis2__svc__ctx.html#gfde2ce40c07183001b2a1ef867fb36ae">axis2_svc_ctx_create</a> (const <a class="el" href="structaxutil__env.html">axutil_env_t</a> *env, struct axis2_svc *svc, struct axis2_svc_grp_ctx *svc_grp_ctx)</td></tr>

<tr><td class="memItemLeft" nowrap align="right" valign="top">AXIS2_EXTERN <br>
<a class="el" href="group__axis2__ctx.html#ga705ff779281577f08fef5330c23402c">axis2_ctx_t</a> *&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__axis2__svc__ctx.html#gf2139308d0b7d17fb9e5cfe531927ecc">axis2_svc_ctx_get_base</a> (const <a class="el" href="group__axis2__svc__ctx.html#g2a3845db3eb9e9a47b992f6c8882e482">axis2_svc_ctx_t</a> *svc_ctx, const <a class="el" href="structaxutil__env.html">axutil_env_t</a> *env)</td></tr>

<tr><td class="memItemLeft" nowrap align="right" valign="top">AXIS2_EXTERN struct <br>
axis2_svc_grp_ctx *&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__axis2__svc__ctx.html#g2e53ac655251a1f8c59eeb30fbc5565d">axis2_svc_ctx_get_parent</a> (const <a class="el" href="group__axis2__svc__ctx.html#g2a3845db3eb9e9a47b992f6c8882e482">axis2_svc_ctx_t</a> *svc_ctx, const <a class="el" href="structaxutil__env.html">axutil_env_t</a> *env)</td></tr>

<tr><td class="memItemLeft" nowrap align="right" valign="top">AXIS2_EXTERN <br>
axis2_status_t&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__axis2__svc__ctx.html#gccbd28eff1c261a89ae12ba43382c284">axis2_svc_ctx_set_parent</a> (<a class="el" href="group__axis2__svc__ctx.html#g2a3845db3eb9e9a47b992f6c8882e482">axis2_svc_ctx_t</a> *svc_ctx, const <a class="el" href="structaxutil__env.html">axutil_env_t</a> *env, struct axis2_svc_grp_ctx *parent)</td></tr>

<tr><td class="memItemLeft" nowrap align="right" valign="top">AXIS2_EXTERN void&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__axis2__svc__ctx.html#g0ef5d19c153f6e053ebc0c0146d0bbd6">axis2_svc_ctx_free</a> (struct axis2_svc_ctx *svc_ctx, const <a class="el" href="structaxutil__env.html">axutil_env_t</a> *env)</td></tr>

<tr><td class="memItemLeft" nowrap align="right" valign="top">AXIS2_EXTERN <br>
axis2_status_t&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__axis2__svc__ctx.html#gceab7004549d691ce03343fffdd08c1b">axis2_svc_ctx_init</a> (struct axis2_svc_ctx *svc_ctx, const <a class="el" href="structaxutil__env.html">axutil_env_t</a> *env, struct axis2_conf *conf)</td></tr>

<tr><td class="memItemLeft" nowrap align="right" valign="top">AXIS2_EXTERN const <br>
axis2_char_t *&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__axis2__svc__ctx.html#ge6b5b3dec329ae2a97080f4a02d8874b">axis2_svc_ctx_get_svc_id</a> (const <a class="el" href="group__axis2__svc__ctx.html#g2a3845db3eb9e9a47b992f6c8882e482">axis2_svc_ctx_t</a> *svc_ctx, const <a class="el" href="structaxutil__env.html">axutil_env_t</a> *env)</td></tr>

<tr><td class="memItemLeft" nowrap align="right" valign="top">AXIS2_EXTERN struct <br>
axis2_svc *&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__axis2__svc__ctx.html#g3c50b06c933101a834e178e6e9305237">axis2_svc_ctx_get_svc</a> (const <a class="el" href="group__axis2__svc__ctx.html#g2a3845db3eb9e9a47b992f6c8882e482">axis2_svc_ctx_t</a> *svc_ctx, const <a class="el" href="structaxutil__env.html">axutil_env_t</a> *env)</td></tr>

<tr><td class="memItemLeft" nowrap align="right" valign="top">AXIS2_EXTERN <br>
axis2_status_t&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__axis2__svc__ctx.html#g9d465a820d440585864dd7235d4747dd">axis2_svc_ctx_set_svc</a> (<a class="el" href="group__axis2__svc__ctx.html#g2a3845db3eb9e9a47b992f6c8882e482">axis2_svc_ctx_t</a> *svc_ctx, const <a class="el" href="structaxutil__env.html">axutil_env_t</a> *env, struct axis2_svc *svc)</td></tr>

<tr><td class="memItemLeft" nowrap align="right" valign="top">AXIS2_EXTERN struct <br>
axis2_conf_ctx *&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__axis2__svc__ctx.html#gf0645d1d2501588e81ba725137927348">axis2_svc_ctx_get_conf_ctx</a> (const <a class="el" href="group__axis2__svc__ctx.html#g2a3845db3eb9e9a47b992f6c8882e482">axis2_svc_ctx_t</a> *svc_ctx, const <a class="el" href="structaxutil__env.html">axutil_env_t</a> *env)</td></tr>

<tr><td class="memItemLeft" nowrap align="right" valign="top">AXIS2_EXTERN struct <br>
axis2_op_ctx *&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__axis2__svc__ctx.html#g6db441773d780252be4111f7a8a8c68f">axis2_svc_ctx_create_op_ctx</a> (struct axis2_svc_ctx *svc_ctx, const <a class="el" href="structaxutil__env.html">axutil_env_t</a> *env, const axutil_qname_t *qname)</td></tr>

</table>
<hr><a name="_details"></a><h2>Detailed Description</h2>
service context represents a running "instance" of a service. service context allows instance of operations belonging to a service to be grouped. <hr><h2>Typedef Documentation</h2>
<a class="anchor" name="g2a3845db3eb9e9a47b992f6c8882e482"></a><!-- doxytag: member="axis2_svc_ctx.h::axis2_svc_ctx_t" ref="g2a3845db3eb9e9a47b992f6c8882e482" args="" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">typedef struct axis2_svc_ctx <a class="el" href="group__axis2__svc__ctx.html#g2a3845db3eb9e9a47b992f6c8882e482">axis2_svc_ctx_t</a>          </td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
Type name for struct axis2_svc_ctx 
</div>
</div><p>
<hr><h2>Function Documentation</h2>
<a class="anchor" name="gfde2ce40c07183001b2a1ef867fb36ae"></a><!-- doxytag: member="axis2_svc_ctx.h::axis2_svc_ctx_create" ref="gfde2ce40c07183001b2a1ef867fb36ae" args="(const axutil_env_t *env, struct axis2_svc *svc, struct axis2_svc_grp_ctx *svc_grp_ctx)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">AXIS2_EXTERN <a class="el" href="group__axis2__svc__ctx.html#g2a3845db3eb9e9a47b992f6c8882e482">axis2_svc_ctx_t</a>* axis2_svc_ctx_create           </td>
          <td>(</td>
          <td class="paramtype">const <a class="el" href="structaxutil__env.html">axutil_env_t</a> *&nbsp;</td>
          <td class="paramname"> <em>env</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">struct axis2_svc *&nbsp;</td>
          <td class="paramname"> <em>svc</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">struct axis2_svc_grp_ctx *&nbsp;</td>
          <td class="paramname"> <em>svc_grp_ctx</em></td><td>&nbsp;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td><td width="100%"></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
Creates a service context struct that corresponds to the given service and with the given parent service group context. <dl compact><dt><b>Parameters:</b></dt><dd>
  <table border="0" cellspacing="2" cellpadding="0">
    <tr><td valign="top"></td><td valign="top"><em>env</em>&nbsp;</td><td>pointer to environment struct </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>svc</em>&nbsp;</td><td>pointer to service that this service context represents, service context does not assume the ownership of service </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>svc_grp_ctx</em>&nbsp;</td><td>pointer to service group context, the parent of the newly created service context. service context does not assume the ownership of parent </td></tr>
  </table>
</dl>
<dl class="return" compact><dt><b>Returns:</b></dt><dd>pointer to newly created service context </dd></dl>

</div>
</div><p>
<a class="anchor" name="g6db441773d780252be4111f7a8a8c68f"></a><!-- doxytag: member="axis2_svc_ctx.h::axis2_svc_ctx_create_op_ctx" ref="g6db441773d780252be4111f7a8a8c68f" args="(struct axis2_svc_ctx *svc_ctx, const axutil_env_t *env, const axutil_qname_t *qname)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">AXIS2_EXTERN struct axis2_op_ctx* axis2_svc_ctx_create_op_ctx           </td>
          <td>(</td>
          <td class="paramtype">struct axis2_svc_ctx *&nbsp;</td>
          <td class="paramname"> <em>svc_ctx</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const <a class="el" href="structaxutil__env.html">axutil_env_t</a> *&nbsp;</td>
          <td class="paramname"> <em>env</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const axutil_qname_t *&nbsp;</td>
          <td class="paramname"> <em>qname</em></td><td>&nbsp;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td><td width="100%"><code> [read]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
Creates an operation context for the named operation. The named operation should be one of the operations in the service related to this service context. <dl compact><dt><b>Parameters:</b></dt><dd>
  <table border="0" cellspacing="2" cellpadding="0">
    <tr><td valign="top"></td><td valign="top"><em>svc_ctx</em>&nbsp;</td><td>pointer to service context </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>env</em>&nbsp;</td><td>pointer to environment struct </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>qname</em>&nbsp;</td><td>pointer to qname that represents the operation name. </td></tr>
  </table>
</dl>
<dl class="return" compact><dt><b>Returns:</b></dt><dd>pointer to operation context </dd></dl>

</div>
</div><p>
<a class="anchor" name="g0ef5d19c153f6e053ebc0c0146d0bbd6"></a><!-- doxytag: member="axis2_svc_ctx.h::axis2_svc_ctx_free" ref="g0ef5d19c153f6e053ebc0c0146d0bbd6" args="(struct axis2_svc_ctx *svc_ctx, const axutil_env_t *env)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">AXIS2_EXTERN void axis2_svc_ctx_free           </td>
          <td>(</td>
          <td class="paramtype">struct axis2_svc_ctx *&nbsp;</td>
          <td class="paramname"> <em>svc_ctx</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const <a class="el" href="structaxutil__env.html">axutil_env_t</a> *&nbsp;</td>
          <td class="paramname"> <em>env</em></td><td>&nbsp;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td><td width="100%"></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
Frees service context instance. <dl compact><dt><b>Parameters:</b></dt><dd>
  <table border="0" cellspacing="2" cellpadding="0">
    <tr><td valign="top"></td><td valign="top"><em>svc_ctx</em>&nbsp;</td><td>pointer to service context </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>env</em>&nbsp;</td><td>pointer to environment struct </td></tr>
  </table>
</dl>
<dl class="return" compact><dt><b>Returns:</b></dt><dd>void </dd></dl>

</div>
</div><p>
<a class="anchor" name="gf2139308d0b7d17fb9e5cfe531927ecc"></a><!-- doxytag: member="axis2_svc_ctx.h::axis2_svc_ctx_get_base" ref="gf2139308d0b7d17fb9e5cfe531927ecc" args="(const axis2_svc_ctx_t *svc_ctx, const axutil_env_t *env)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">AXIS2_EXTERN <a class="el" href="group__axis2__ctx.html#ga705ff779281577f08fef5330c23402c">axis2_ctx_t</a>* axis2_svc_ctx_get_base           </td>
          <td>(</td>
          <td class="paramtype">const <a class="el" href="group__axis2__svc__ctx.html#g2a3845db3eb9e9a47b992f6c8882e482">axis2_svc_ctx_t</a> *&nbsp;</td>
          <td class="paramname"> <em>svc_ctx</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const <a class="el" href="structaxutil__env.html">axutil_env_t</a> *&nbsp;</td>
          <td class="paramname"> <em>env</em></td><td>&nbsp;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td><td width="100%"></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
Gets base which is of type context. <dl compact><dt><b>Parameters:</b></dt><dd>
  <table border="0" cellspacing="2" cellpadding="0">
    <tr><td valign="top"></td><td valign="top"><em>svc_ctx</em>&nbsp;</td><td>pointer to service context </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>env</em>&nbsp;</td><td>pointer to environment struct </td></tr>
  </table>
</dl>
<dl class="return" compact><dt><b>Returns:</b></dt><dd>pointer to context, returns a reference, not a cloned copy </dd></dl>

</div>
</div><p>
<a class="anchor" name="gf0645d1d2501588e81ba725137927348"></a><!-- doxytag: member="axis2_svc_ctx.h::axis2_svc_ctx_get_conf_ctx" ref="gf0645d1d2501588e81ba725137927348" args="(const axis2_svc_ctx_t *svc_ctx, const axutil_env_t *env)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">AXIS2_EXTERN struct axis2_conf_ctx* axis2_svc_ctx_get_conf_ctx           </td>
          <td>(</td>
          <td class="paramtype">const <a class="el" href="group__axis2__svc__ctx.html#g2a3845db3eb9e9a47b992f6c8882e482">axis2_svc_ctx_t</a> *&nbsp;</td>
          <td class="paramname"> <em>svc_ctx</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const <a class="el" href="structaxutil__env.html">axutil_env_t</a> *&nbsp;</td>
          <td class="paramname"> <em>env</em></td><td>&nbsp;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td><td width="100%"><code> [read]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
Gets configuration context which is the super root (super most parent) of the context hierarchy to which this service context belongs. <dl compact><dt><b>Parameters:</b></dt><dd>
  <table border="0" cellspacing="2" cellpadding="0">
    <tr><td valign="top"></td><td valign="top"><em>svc_ctx</em>&nbsp;</td><td>pointer to service context </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>env</em>&nbsp;</td><td>pointer to environment struct </td></tr>
  </table>
</dl>
<dl class="return" compact><dt><b>Returns:</b></dt><dd>pointer to configuration context </dd></dl>

</div>
</div><p>
<a class="anchor" name="g2e53ac655251a1f8c59eeb30fbc5565d"></a><!-- doxytag: member="axis2_svc_ctx.h::axis2_svc_ctx_get_parent" ref="g2e53ac655251a1f8c59eeb30fbc5565d" args="(const axis2_svc_ctx_t *svc_ctx, const axutil_env_t *env)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">AXIS2_EXTERN struct axis2_svc_grp_ctx* axis2_svc_ctx_get_parent           </td>
          <td>(</td>
          <td class="paramtype">const <a class="el" href="group__axis2__svc__ctx.html#g2a3845db3eb9e9a47b992f6c8882e482">axis2_svc_ctx_t</a> *&nbsp;</td>
          <td class="paramname"> <em>svc_ctx</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const <a class="el" href="structaxutil__env.html">axutil_env_t</a> *&nbsp;</td>
          <td class="paramname"> <em>env</em></td><td>&nbsp;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td><td width="100%"><code> [read]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
Gets parent which is of type service group context. <dl compact><dt><b>Parameters:</b></dt><dd>
  <table border="0" cellspacing="2" cellpadding="0">
    <tr><td valign="top"></td><td valign="top"><em>svc_ctx</em>&nbsp;</td><td>pointer to service context </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>env</em>&nbsp;</td><td>pointer to environment struct </td></tr>
  </table>
</dl>
<dl class="return" compact><dt><b>Returns:</b></dt><dd>pointer to parent service group context </dd></dl>

</div>
</div><p>
<a class="anchor" name="g3c50b06c933101a834e178e6e9305237"></a><!-- doxytag: member="axis2_svc_ctx.h::axis2_svc_ctx_get_svc" ref="g3c50b06c933101a834e178e6e9305237" args="(const axis2_svc_ctx_t *svc_ctx, const axutil_env_t *env)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">AXIS2_EXTERN struct axis2_svc* axis2_svc_ctx_get_svc           </td>
          <td>(</td>
          <td class="paramtype">const <a class="el" href="group__axis2__svc__ctx.html#g2a3845db3eb9e9a47b992f6c8882e482">axis2_svc_ctx_t</a> *&nbsp;</td>
          <td class="paramname"> <em>svc_ctx</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const <a class="el" href="structaxutil__env.html">axutil_env_t</a> *&nbsp;</td>
          <td class="paramname"> <em>env</em></td><td>&nbsp;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td><td width="100%"><code> [read]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
Gets the service that this service context represents. <dl compact><dt><b>Parameters:</b></dt><dd>
  <table border="0" cellspacing="2" cellpadding="0">
    <tr><td valign="top"></td><td valign="top"><em>svc_ctx</em>&nbsp;</td><td>pointer to service context </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>env</em>&nbsp;</td><td>pointer to environment struct </td></tr>
  </table>
</dl>
<dl class="return" compact><dt><b>Returns:</b></dt><dd>pointer to service, returns a reference, not a cloned copy </dd></dl>

</div>
</div><p>
<a class="anchor" name="ge6b5b3dec329ae2a97080f4a02d8874b"></a><!-- doxytag: member="axis2_svc_ctx.h::axis2_svc_ctx_get_svc_id" ref="ge6b5b3dec329ae2a97080f4a02d8874b" args="(const axis2_svc_ctx_t *svc_ctx, const axutil_env_t *env)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">AXIS2_EXTERN const axis2_char_t* axis2_svc_ctx_get_svc_id           </td>
          <td>(</td>
          <td class="paramtype">const <a class="el" href="group__axis2__svc__ctx.html#g2a3845db3eb9e9a47b992f6c8882e482">axis2_svc_ctx_t</a> *&nbsp;</td>
          <td class="paramname"> <em>svc_ctx</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const <a class="el" href="structaxutil__env.html">axutil_env_t</a> *&nbsp;</td>
          <td class="paramname"> <em>env</em></td><td>&nbsp;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td><td width="100%"></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
Gets the ID of the service that this service context is an instance of. <dl compact><dt><b>Parameters:</b></dt><dd>
  <table border="0" cellspacing="2" cellpadding="0">
    <tr><td valign="top"></td><td valign="top"><em>svc_ctx</em>&nbsp;</td><td>pointer to service context </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>env</em>&nbsp;</td><td>pointer to environment struct </td></tr>
  </table>
</dl>
<dl class="return" compact><dt><b>Returns:</b></dt><dd>service ID string. </dd></dl>

</div>
</div><p>
<a class="anchor" name="gceab7004549d691ce03343fffdd08c1b"></a><!-- doxytag: member="axis2_svc_ctx.h::axis2_svc_ctx_init" ref="gceab7004549d691ce03343fffdd08c1b" args="(struct axis2_svc_ctx *svc_ctx, const axutil_env_t *env, struct axis2_conf *conf)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">AXIS2_EXTERN axis2_status_t axis2_svc_ctx_init           </td>
          <td>(</td>
          <td class="paramtype">struct axis2_svc_ctx *&nbsp;</td>
          <td class="paramname"> <em>svc_ctx</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const <a class="el" href="structaxutil__env.html">axutil_env_t</a> *&nbsp;</td>
          <td class="paramname"> <em>env</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">struct axis2_conf *&nbsp;</td>
          <td class="paramname"> <em>conf</em></td><td>&nbsp;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td><td width="100%"></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
Initializes service context. This method locates the corresponding service that is related to the service context from configuration using service qname and keeps a reference to it for future use. <dl compact><dt><b>Parameters:</b></dt><dd>
  <table border="0" cellspacing="2" cellpadding="0">
    <tr><td valign="top"></td><td valign="top"><em>svc_ctx</em>&nbsp;</td><td>pointer to service context </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>env</em>&nbsp;</td><td>pointer to environment struct </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>conf</em>&nbsp;</td><td>pointer to configuration </td></tr>
  </table>
</dl>
<dl class="return" compact><dt><b>Returns:</b></dt><dd>AXIS2_SUCCESS on success, else AXIS2_FAILURE </dd></dl>

</div>
</div><p>
<a class="anchor" name="gccbd28eff1c261a89ae12ba43382c284"></a><!-- doxytag: member="axis2_svc_ctx.h::axis2_svc_ctx_set_parent" ref="gccbd28eff1c261a89ae12ba43382c284" args="(axis2_svc_ctx_t *svc_ctx, const axutil_env_t *env, struct axis2_svc_grp_ctx *parent)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">AXIS2_EXTERN axis2_status_t axis2_svc_ctx_set_parent           </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="group__axis2__svc__ctx.html#g2a3845db3eb9e9a47b992f6c8882e482">axis2_svc_ctx_t</a> *&nbsp;</td>
          <td class="paramname"> <em>svc_ctx</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const <a class="el" href="structaxutil__env.html">axutil_env_t</a> *&nbsp;</td>
          <td class="paramname"> <em>env</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">struct axis2_svc_grp_ctx *&nbsp;</td>
          <td class="paramname"> <em>parent</em></td><td>&nbsp;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td><td width="100%"></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
Sets parent which is of type service group context. <dl compact><dt><b>Parameters:</b></dt><dd>
  <table border="0" cellspacing="2" cellpadding="0">
    <tr><td valign="top"></td><td valign="top"><em>svc_ctx</em>&nbsp;</td><td>pointer to service context </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>env</em>&nbsp;</td><td>pointer to environment struct </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>parent</em>&nbsp;</td><td>parent of service context which is of type service group context </td></tr>
  </table>
</dl>
<dl class="return" compact><dt><b>Returns:</b></dt><dd>AXIS2_SUCCESS on success, else AXIS2_FAILURE </dd></dl>

</div>
</div><p>
<a class="anchor" name="g9d465a820d440585864dd7235d4747dd"></a><!-- doxytag: member="axis2_svc_ctx.h::axis2_svc_ctx_set_svc" ref="g9d465a820d440585864dd7235d4747dd" args="(axis2_svc_ctx_t *svc_ctx, const axutil_env_t *env, struct axis2_svc *svc)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">AXIS2_EXTERN axis2_status_t axis2_svc_ctx_set_svc           </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="group__axis2__svc__ctx.html#g2a3845db3eb9e9a47b992f6c8882e482">axis2_svc_ctx_t</a> *&nbsp;</td>
          <td class="paramname"> <em>svc_ctx</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const <a class="el" href="structaxutil__env.html">axutil_env_t</a> *&nbsp;</td>
          <td class="paramname"> <em>env</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">struct axis2_svc *&nbsp;</td>
          <td class="paramname"> <em>svc</em></td><td>&nbsp;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td><td width="100%"></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
Sets the service that this service context represents. <dl compact><dt><b>Parameters:</b></dt><dd>
  <table border="0" cellspacing="2" cellpadding="0">
    <tr><td valign="top"></td><td valign="top"><em>svc_ctx</em>&nbsp;</td><td>pointer to service context </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>env</em>&nbsp;</td><td>pointer to environment struct </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>svc</em>&nbsp;</td><td>pointer to service struct, service context does not assume the ownership of the struct </td></tr>
  </table>
</dl>
<dl class="return" compact><dt><b>Returns:</b></dt><dd>AXIS2_SUCCESS on success, else AXIS2_FAILURE </dd></dl>

</div>
</div><p>
<hr size="1"><address style="text-align: right;"><small>Generated on Fri Apr 17 11:49:45 2009 for Axis2/C by&nbsp;
<a href="http://www.doxygen.org/index.html">
<img src="doxygen.png" alt="doxygen" align="middle" border="0"></a> 1.5.3 </small></address>
</body>
</html>


<|start_filename|>xdocs/api/html/axis2__desc_8h-source.html<|end_filename|>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html><head><meta http-equiv="Content-Type" content="text/html;charset=UTF-8">
<title>Axis2/C: axis2_desc.h Source File</title>
<link href="doxygen.css" rel="stylesheet" type="text/css">
<link href="tabs.css" rel="stylesheet" type="text/css">
</head><body>
<!-- Generated by Doxygen 1.5.3 -->
<div class="tabs">
  <ul>
    <li><a href="index.html"><span>Main&nbsp;Page</span></a></li>
    <li><a href="modules.html"><span>Modules</span></a></li>
    <li><a href="annotated.html"><span>Classes</span></a></li>
    <li class="current"><a href="files.html"><span>Files</span></a></li>
    <li><a href="dirs.html"><span>Directories</span></a></li>
    <li><a href="pages.html"><span>Related&nbsp;Pages</span></a></li>
    <li><a href="examples.html"><span>Examples</span></a></li>
    <li>
      <form action="search.php" method="get">
        <table cellspacing="0" cellpadding="0" border="0">
          <tr>
            <td><label>&nbsp;<u>S</u>earch&nbsp;for&nbsp;</label></td>
            <td><input type="text" name="query" value="" size="20" accesskey="s"/></td>
          </tr>
        </table>
      </form>
    </li>
  </ul>
</div>
<div class="nav">
<a class="el" href="dir_f60961de8e5edc3b2658ef023e959e45.html">deploy</a>&nbsp;&raquo&nbsp;<a class="el" href="dir_6b4e91e54b7316b376882a6402adbf44.html">include</a>&nbsp;&raquo&nbsp;<a class="el" href="dir_df3a7695d5a9e696f30b948b566829e7.html">axis2-1.6.0</a></div>
<h1>axis2_desc.h</h1><a href="axis2__desc_8h.html">Go to the documentation of this file.</a><div class="fragment"><pre class="fragment"><a name="l00001"></a>00001 
<a name="l00002"></a>00002 <span class="comment">/*</span>
<a name="l00003"></a>00003 <span class="comment">* Licensed to the Apache Software Foundation (ASF) under one or more</span>
<a name="l00004"></a>00004 <span class="comment">* contributor license agreements.  See the NOTICE file distributed with</span>
<a name="l00005"></a>00005 <span class="comment">* this work for additional information regarding copyright ownership.</span>
<a name="l00006"></a>00006 <span class="comment">* The ASF licenses this file to You under the Apache License, Version 2.0</span>
<a name="l00007"></a>00007 <span class="comment">* (the "License"); you may not use this file except in compliance with</span>
<a name="l00008"></a>00008 <span class="comment">* the License.  You may obtain a copy of the License at</span>
<a name="l00009"></a>00009 <span class="comment">*</span>
<a name="l00010"></a>00010 <span class="comment">*      http://www.apache.org/licenses/LICENSE-2.0</span>
<a name="l00011"></a>00011 <span class="comment">*</span>
<a name="l00012"></a>00012 <span class="comment">* Unless required by applicable law or agreed to in writing, software</span>
<a name="l00013"></a>00013 <span class="comment">* distributed under the License is distributed on an "AS IS" BASIS,</span>
<a name="l00014"></a>00014 <span class="comment">* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.</span>
<a name="l00015"></a>00015 <span class="comment">* See the License for the specific language governing permissions and</span>
<a name="l00016"></a>00016 <span class="comment">* limitations under the License.</span>
<a name="l00017"></a>00017 <span class="comment">*/</span>
<a name="l00018"></a>00018 
<a name="l00019"></a>00019 <span class="preprocessor">#ifndef AXIS2_DESC_H</span>
<a name="l00020"></a>00020 <span class="preprocessor"></span><span class="preprocessor">#define AXIS2_DESC_H</span>
<a name="l00021"></a>00021 <span class="preprocessor"></span>
<a name="l00034"></a>00034 <span class="preprocessor">#include &lt;<a class="code" href="axutil__param__container_8h.html" title="Axis2 Param container interface.">axutil_param_container.h</a>&gt;</span>
<a name="l00035"></a>00035 <span class="preprocessor">#include &lt;<a class="code" href="axutil__hash_8h.html" title="Axis2 Hash Tables.">axutil_hash.h</a>&gt;</span>
<a name="l00036"></a>00036 <span class="preprocessor">#include &lt;<a class="code" href="axis2__description_8h.html">axis2_description.h</a>&gt;</span>
<a name="l00037"></a>00037 
<a name="l00038"></a>00038 <span class="preprocessor">#ifdef __cplusplus</span>
<a name="l00039"></a>00039 <span class="preprocessor"></span><span class="keyword">extern</span> <span class="stringliteral">"C"</span>
<a name="l00040"></a>00040 {
<a name="l00041"></a>00041 <span class="preprocessor">#endif</span>
<a name="l00042"></a>00042 <span class="preprocessor"></span>
<a name="l00044"></a><a class="code" href="group__axis2__description.html#g9bbf771ae43a8364c5f453c7077f0f1e">00044</a>     <span class="keyword">typedef</span> <span class="keyword">struct </span>axis2_desc <a class="code" href="group__axis2__description.html#g9bbf771ae43a8364c5f453c7077f0f1e">axis2_desc_t</a>;
<a name="l00045"></a>00045 
<a name="l00046"></a>00046     <span class="keyword">struct </span>axis2_policy_include;
<a name="l00047"></a>00047     <span class="keyword">struct </span>axis2_msg;
<a name="l00048"></a>00048 
<a name="l00054"></a>00054     AXIS2_EXTERN <a class="code" href="group__axis2__description.html#g9bbf771ae43a8364c5f453c7077f0f1e">axis2_desc_t</a> *AXIS2_CALL
<a name="l00055"></a>00055     <a class="code" href="group__axis2__description.html#ge7a0b8d3cff8a247692c220fc7272117">axis2_desc_create</a>(
<a name="l00056"></a>00056         <span class="keyword">const</span> <a class="code" href="structaxutil__env.html" title="Axis2 Environment struct.">axutil_env_t</a> * env);
<a name="l00057"></a>00057 
<a name="l00064"></a>00064     AXIS2_EXTERN <span class="keywordtype">void</span> AXIS2_CALL
<a name="l00065"></a>00065     <a class="code" href="group__axis2__description.html#gd72218caf033deeecd16ebf8240dd286">axis2_desc_free</a>(
<a name="l00066"></a>00066         <a class="code" href="group__axis2__description.html#g9bbf771ae43a8364c5f453c7077f0f1e">axis2_desc_t</a> * desc,
<a name="l00067"></a>00067         <span class="keyword">const</span> <a class="code" href="structaxutil__env.html" title="Axis2 Environment struct.">axutil_env_t</a> * env);
<a name="l00068"></a>00068 
<a name="l00076"></a>00076     AXIS2_EXTERN axis2_status_t AXIS2_CALL
<a name="l00077"></a>00077     <a class="code" href="group__axis2__description.html#gd87c1a63197a588dc75066ea80bd2bae">axis2_desc_add_param</a>(
<a name="l00078"></a>00078         <a class="code" href="group__axis2__description.html#g9bbf771ae43a8364c5f453c7077f0f1e">axis2_desc_t</a> * desc,
<a name="l00079"></a>00079         <span class="keyword">const</span> <a class="code" href="structaxutil__env.html" title="Axis2 Environment struct.">axutil_env_t</a> * env,
<a name="l00080"></a>00080         axutil_param_t * param);
<a name="l00081"></a>00081 
<a name="l00089"></a>00089     AXIS2_EXTERN axutil_param_t *AXIS2_CALL
<a name="l00090"></a>00090     <a class="code" href="group__axis2__description.html#g6d7eb35ea7f0dd0a82bc47324a92bc0b">axis2_desc_get_param</a>(
<a name="l00091"></a>00091         <span class="keyword">const</span> <a class="code" href="group__axis2__description.html#g9bbf771ae43a8364c5f453c7077f0f1e">axis2_desc_t</a> * desc,
<a name="l00092"></a>00092         <span class="keyword">const</span> <a class="code" href="structaxutil__env.html" title="Axis2 Environment struct.">axutil_env_t</a> * env,
<a name="l00093"></a>00093         <span class="keyword">const</span> axis2_char_t * param_name);
<a name="l00094"></a>00094 
<a name="l00101"></a>00101     AXIS2_EXTERN <a class="code" href="group__axutil__array__list.html#g1a6a89777db876cfa0cc86787b7be6a0">axutil_array_list_t</a> *AXIS2_CALL
<a name="l00102"></a>00102     <a class="code" href="group__axis2__description.html#g512aaa44dd670d0ed3365033b1459e53">axis2_desc_get_all_params</a>(
<a name="l00103"></a>00103         <span class="keyword">const</span> <a class="code" href="group__axis2__description.html#g9bbf771ae43a8364c5f453c7077f0f1e">axis2_desc_t</a> * desc,
<a name="l00104"></a>00104         <span class="keyword">const</span> <a class="code" href="structaxutil__env.html" title="Axis2 Environment struct.">axutil_env_t</a> * env);
<a name="l00105"></a>00105 
<a name="l00113"></a>00113     AXIS2_EXTERN axis2_bool_t AXIS2_CALL
<a name="l00114"></a>00114     <a class="code" href="group__axis2__description.html#gdbc1f8ca75485da47fb76f148e794336">axis2_desc_is_param_locked</a>(
<a name="l00115"></a>00115         <span class="keyword">const</span> <a class="code" href="group__axis2__description.html#g9bbf771ae43a8364c5f453c7077f0f1e">axis2_desc_t</a> * desc,
<a name="l00116"></a>00116         <span class="keyword">const</span> <a class="code" href="structaxutil__env.html" title="Axis2 Environment struct.">axutil_env_t</a> * env,
<a name="l00117"></a>00117         <span class="keyword">const</span> axis2_char_t * param_name);
<a name="l00118"></a>00118 
<a name="l00130"></a>00130     AXIS2_EXTERN axis2_status_t AXIS2_CALL
<a name="l00131"></a>00131     <a class="code" href="group__axis2__description.html#g8cdc3537ca1820de45ba467eec1ce8c9">axis2_desc_add_child</a>(
<a name="l00132"></a>00132         <span class="keyword">const</span> <a class="code" href="group__axis2__description.html#g9bbf771ae43a8364c5f453c7077f0f1e">axis2_desc_t</a> * desc,
<a name="l00133"></a>00133         <span class="keyword">const</span> <a class="code" href="structaxutil__env.html" title="Axis2 Environment struct.">axutil_env_t</a> * env,
<a name="l00134"></a>00134         <span class="keyword">const</span> axis2_char_t * key,
<a name="l00135"></a>00135         <span class="keyword">const</span> <span class="keyword">struct</span> axis2_msg *child);
<a name="l00136"></a>00136 
<a name="l00143"></a>00143     AXIS2_EXTERN <a class="code" href="group__axutil__hash.html#gb2d7d14db2de92a101573f44421ac12a">axutil_hash_t</a> *AXIS2_CALL
<a name="l00144"></a>00144     <a class="code" href="group__axis2__description.html#g078b2cf3aba1fca7468666905d8c0a4f">axis2_desc_get_all_children</a>(
<a name="l00145"></a>00145         <span class="keyword">const</span> <a class="code" href="group__axis2__description.html#g9bbf771ae43a8364c5f453c7077f0f1e">axis2_desc_t</a> * desc,
<a name="l00146"></a>00146         <span class="keyword">const</span> <a class="code" href="structaxutil__env.html" title="Axis2 Environment struct.">axutil_env_t</a> * env);
<a name="l00147"></a>00147 
<a name="l00156"></a>00156     AXIS2_EXTERN <span class="keywordtype">void</span> *AXIS2_CALL
<a name="l00157"></a>00157     <a class="code" href="group__axis2__description.html#g55e705da0e6458ad6dd435087052b266">axis2_desc_get_child</a>(
<a name="l00158"></a>00158         <span class="keyword">const</span> <a class="code" href="group__axis2__description.html#g9bbf771ae43a8364c5f453c7077f0f1e">axis2_desc_t</a> * desc,
<a name="l00159"></a>00159         <span class="keyword">const</span> <a class="code" href="structaxutil__env.html" title="Axis2 Environment struct.">axutil_env_t</a> * env,
<a name="l00160"></a>00160         <span class="keyword">const</span> axis2_char_t * key);
<a name="l00161"></a>00161 
<a name="l00169"></a>00169     AXIS2_EXTERN axis2_status_t AXIS2_CALL
<a name="l00170"></a>00170     <a class="code" href="group__axis2__description.html#g36c19818ab4b074242cc72c3f427e686">axis2_desc_remove_child</a>(
<a name="l00171"></a>00171         <span class="keyword">const</span> <a class="code" href="group__axis2__description.html#g9bbf771ae43a8364c5f453c7077f0f1e">axis2_desc_t</a> * desc,
<a name="l00172"></a>00172         <span class="keyword">const</span> <a class="code" href="structaxutil__env.html" title="Axis2 Environment struct.">axutil_env_t</a> * env,
<a name="l00173"></a>00173         <span class="keyword">const</span> axis2_char_t * key);
<a name="l00174"></a>00174 
<a name="l00182"></a>00182     AXIS2_EXTERN axis2_status_t AXIS2_CALL
<a name="l00183"></a>00183     <a class="code" href="group__axis2__description.html#g3847e0acbaa726663410a42ddead9448">axis2_desc_set_parent</a>(
<a name="l00184"></a>00184         <a class="code" href="group__axis2__description.html#g9bbf771ae43a8364c5f453c7077f0f1e">axis2_desc_t</a> * desc,
<a name="l00185"></a>00185         <span class="keyword">const</span> <a class="code" href="structaxutil__env.html" title="Axis2 Environment struct.">axutil_env_t</a> * env,
<a name="l00186"></a>00186         <a class="code" href="group__axis2__description.html#g9bbf771ae43a8364c5f453c7077f0f1e">axis2_desc_t</a> * parent);
<a name="l00187"></a>00187 
<a name="l00194"></a>00194     AXIS2_EXTERN <a class="code" href="group__axis2__description.html#g9bbf771ae43a8364c5f453c7077f0f1e">axis2_desc_t</a> *AXIS2_CALL
<a name="l00195"></a>00195     <a class="code" href="group__axis2__description.html#g99cb434d37bf69b9edb0396825694041">axis2_desc_get_parent</a>(
<a name="l00196"></a>00196         <span class="keyword">const</span> <a class="code" href="group__axis2__description.html#g9bbf771ae43a8364c5f453c7077f0f1e">axis2_desc_t</a> * desc,
<a name="l00197"></a>00197         <span class="keyword">const</span> <a class="code" href="structaxutil__env.html" title="Axis2 Environment struct.">axutil_env_t</a> * env);
<a name="l00198"></a>00198 
<a name="l00206"></a>00206     AXIS2_EXTERN axis2_status_t AXIS2_CALL
<a name="l00207"></a>00207     <a class="code" href="group__axis2__description.html#gf57219b0bfcd05648d8d6ab574807951">axis2_desc_set_policy_include</a>(
<a name="l00208"></a>00208         <a class="code" href="group__axis2__description.html#g9bbf771ae43a8364c5f453c7077f0f1e">axis2_desc_t</a> * desc,
<a name="l00209"></a>00209         <span class="keyword">const</span> <a class="code" href="structaxutil__env.html" title="Axis2 Environment struct.">axutil_env_t</a> * env,
<a name="l00210"></a>00210         <span class="keyword">struct</span> axis2_policy_include *policy_include);
<a name="l00211"></a>00211 
<a name="l00219"></a>00219     AXIS2_EXTERN <span class="keyword">struct </span>axis2_policy_include *AXIS2_CALL
<a name="l00220"></a>00220     <a class="code" href="group__axis2__description.html#gfb2c12d56fbfa672cf4f577c19aed3af">axis2_desc_get_policy_include</a>(
<a name="l00221"></a>00221         <a class="code" href="group__axis2__description.html#g9bbf771ae43a8364c5f453c7077f0f1e">axis2_desc_t</a> * desc,
<a name="l00222"></a>00222         <span class="keyword">const</span> <a class="code" href="structaxutil__env.html" title="Axis2 Environment struct.">axutil_env_t</a> * env);
<a name="l00223"></a>00223 
<a name="l00225"></a>00225 <span class="preprocessor">#ifdef __cplusplus</span>
<a name="l00226"></a>00226 <span class="preprocessor"></span>}
<a name="l00227"></a>00227 <span class="preprocessor">#endif</span>
<a name="l00228"></a>00228 <span class="preprocessor"></span><span class="preprocessor">#endif                          </span><span class="comment">/* AXIS2_DESC_H */</span>
</pre></div><hr size="1"><address style="text-align: right;"><small>Generated on Fri Apr 17 11:49:42 2009 for Axis2/C by&nbsp;
<a href="http://www.doxygen.org/index.html">
<img src="doxygen.png" alt="doxygen" align="middle" border="0"></a> 1.5.3 </small></address>
</body>
</html>


<|start_filename|>xdocs/api/html/axutil__version_8h-source.html<|end_filename|>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html><head><meta http-equiv="Content-Type" content="text/html;charset=UTF-8">
<title>Axis2/C: axutil_version.h Source File</title>
<link href="doxygen.css" rel="stylesheet" type="text/css">
<link href="tabs.css" rel="stylesheet" type="text/css">
</head><body>
<!-- Generated by Doxygen 1.5.3 -->
<div class="tabs">
  <ul>
    <li><a href="index.html"><span>Main&nbsp;Page</span></a></li>
    <li><a href="modules.html"><span>Modules</span></a></li>
    <li><a href="annotated.html"><span>Classes</span></a></li>
    <li class="current"><a href="files.html"><span>Files</span></a></li>
    <li><a href="dirs.html"><span>Directories</span></a></li>
    <li><a href="pages.html"><span>Related&nbsp;Pages</span></a></li>
    <li><a href="examples.html"><span>Examples</span></a></li>
    <li>
      <form action="search.php" method="get">
        <table cellspacing="0" cellpadding="0" border="0">
          <tr>
            <td><label>&nbsp;<u>S</u>earch&nbsp;for&nbsp;</label></td>
            <td><input type="text" name="query" value="" size="20" accesskey="s"/></td>
          </tr>
        </table>
      </form>
    </li>
  </ul>
</div>
<div class="nav">
<a class="el" href="dir_f60961de8e5edc3b2658ef023e959e45.html">deploy</a>&nbsp;&raquo&nbsp;<a class="el" href="dir_6b4e91e54b7316b376882a6402adbf44.html">include</a>&nbsp;&raquo&nbsp;<a class="el" href="dir_df3a7695d5a9e696f30b948b566829e7.html">axis2-1.6.0</a></div>
<h1>axutil_version.h</h1><div class="fragment"><pre class="fragment"><a name="l00001"></a>00001 
<a name="l00019"></a>00019 <span class="preprocessor">#ifndef AXUTIL_VERSION_H</span>
<a name="l00020"></a>00020 <span class="preprocessor"></span><span class="preprocessor">#define AXUTIL_VERSION_H</span>
<a name="l00021"></a>00021 <span class="preprocessor"></span>
<a name="l00022"></a>00022 <span class="comment">/* The numeric compile-time version constants. These constants are the</span>
<a name="l00023"></a>00023 <span class="comment"> * authoritative version numbers for AXIS2.</span>
<a name="l00024"></a>00024 <span class="comment"> */</span>
<a name="l00025"></a>00025 
<a name="l00031"></a>00031 <span class="preprocessor">#define AXIS2_MAJOR_VERSION       1</span>
<a name="l00032"></a>00032 <span class="preprocessor"></span>
<a name="l00037"></a>00037 <span class="preprocessor">#define AXIS2_MINOR_VERSION       6</span>
<a name="l00038"></a>00038 <span class="preprocessor"></span>
<a name="l00043"></a>00043 <span class="preprocessor">#define AXIS2_PATCH_VERSION       0</span>
<a name="l00044"></a>00044 <span class="preprocessor"></span>
<a name="l00050"></a>00050 <span class="preprocessor">#undef AXIS2_IS_DEV_VERSION</span>
<a name="l00051"></a>00051 <span class="preprocessor"></span>
<a name="l00052"></a>00052 <span class="preprocessor">#if defined(AXIS2_IS_DEV_VERSION) || defined(DOXYGEN)</span>
<a name="l00053"></a>00053 <span class="preprocessor"></span>
<a name="l00055"></a>00055 <span class="preprocessor">#define AXIS2_IS_DEV_STRING "-dev"</span>
<a name="l00056"></a>00056 <span class="preprocessor"></span><span class="preprocessor">#else</span>
<a name="l00057"></a>00057 <span class="preprocessor"></span><span class="preprocessor">#define AXIS2_IS_DEV_STRING ""</span>
<a name="l00058"></a>00058 <span class="preprocessor"></span><span class="preprocessor">#endif</span>
<a name="l00059"></a>00059 <span class="preprocessor"></span>
<a name="l00061"></a>00061 <span class="preprocessor">#define AXIS2_STRINGIFY(n) AXIS2_STRINGIFY_HELPER(n)</span>
<a name="l00062"></a>00062 <span class="preprocessor"></span>
<a name="l00064"></a>00064 <span class="preprocessor">#define AXIS2_STRINGIFY_HELPER(n) #n</span>
<a name="l00065"></a>00065 <span class="preprocessor"></span>
<a name="l00067"></a>00067 <span class="preprocessor">#define AXIS2_VERSION_STRING \</span>
<a name="l00068"></a>00068 <span class="preprocessor">     AXIS2_STRINGIFY(AXIS2_MAJOR_VERSION) "." \</span>
<a name="l00069"></a>00069 <span class="preprocessor">     AXIS2_STRINGIFY(AXIS2_MINOR_VERSION) "." \</span>
<a name="l00070"></a>00070 <span class="preprocessor">     AXIS2_STRINGIFY(AXIS2_PATCH_VERSION) \</span>
<a name="l00071"></a>00071 <span class="preprocessor">     AXIS2_IS_DEV_STRING</span>
<a name="l00072"></a>00072 <span class="preprocessor"></span>
<a name="l00075"></a>00075 <span class="comment">/* macro for Win32 .rc files using numeric csv representation */</span>
<a name="l00076"></a>00076 <span class="preprocessor">#define AXIS2_VERSION_STRING_CSV AXIS2_MAJOR_VERSION ##, \</span>
<a name="l00077"></a>00077 <span class="preprocessor">                             ##AXIS2_MINOR_VERSION ##, \</span>
<a name="l00078"></a>00078 <span class="preprocessor">                             ##AXIS2_PATCH_VERSION</span>
<a name="l00079"></a>00079 <span class="preprocessor"></span>
<a name="l00080"></a>00080 <span class="preprocessor">#ifndef AXIS2_VERSION_ONLY</span>
<a name="l00081"></a>00081 <span class="preprocessor"></span>
<a name="l00082"></a>00082 <span class="comment">/* The C language API to access the version at run time,</span>
<a name="l00083"></a>00083 <span class="comment"> * as opposed to compile time.  AXIS2_VERSION_ONLY may be defined</span>
<a name="l00084"></a>00084 <span class="comment"> * externally when preprocessing axutil_version.h to obtain strictly</span>
<a name="l00085"></a>00085 <span class="comment"> * the C Preprocessor macro declarations.</span>
<a name="l00086"></a>00086 <span class="comment"> */</span>
<a name="l00087"></a>00087 
<a name="l00088"></a>00088 <span class="preprocessor">#include "<a class="code" href="axutil__env_8h.html" title="Axis2 environment that acts as a container for error, log and memory allocator routines...">axutil_env.h</a>"</span>
<a name="l00089"></a>00089 
<a name="l00090"></a>00090 <span class="preprocessor">#ifdef __cplusplus</span>
<a name="l00091"></a>00091 <span class="preprocessor"></span><span class="keyword">extern</span> <span class="stringliteral">"C"</span>
<a name="l00092"></a>00092 {
<a name="l00093"></a>00093 <span class="preprocessor">#endif</span>
<a name="l00094"></a>00094 <span class="preprocessor"></span>
<a name="l00099"></a><a class="code" href="structaxis2__version__t.html">00099</a>     <span class="keyword">typedef</span> <span class="keyword">struct</span>
<a name="l00100"></a>00100     {
<a name="l00101"></a>00101 
<a name="l00102"></a>00102         <span class="keywordtype">int</span> major;
<a name="l00103"></a>00103 
<a name="l00106"></a>00106         <span class="keywordtype">int</span> minor;
<a name="l00107"></a>00107 
<a name="l00110"></a>00110         <span class="keywordtype">int</span> patch;
<a name="l00111"></a>00111 
<a name="l00114"></a>00114         <span class="keywordtype">int</span> is_dev;
<a name="l00115"></a>00115 
<a name="l00117"></a>00117     }
<a name="l00118"></a>00118     <a class="code" href="structaxis2__version__t.html">axis2_version_t</a>;
<a name="l00119"></a>00119 
<a name="l00126"></a>00126     AXIS2_EXTERN <span class="keywordtype">void</span> AXIS2_CALL
<a name="l00127"></a>00127     axis2_version(
<a name="l00128"></a>00128         <a class="code" href="structaxis2__version__t.html">axis2_version_t</a> * pvsn);
<a name="l00129"></a>00129 
<a name="l00131"></a>00131     AXIS2_EXTERN <span class="keyword">const</span> <span class="keywordtype">char</span> *AXIS2_CALL
<a name="l00132"></a>00132     axis2_version_string(
<a name="l00133"></a>00133         <span class="keywordtype">void</span>);
<a name="l00134"></a>00134 
<a name="l00135"></a>00135 <span class="preprocessor">#ifdef __cplusplus</span>
<a name="l00136"></a>00136 <span class="preprocessor"></span>}
<a name="l00137"></a>00137 <span class="preprocessor">#endif</span>
<a name="l00138"></a>00138 <span class="preprocessor"></span><span class="preprocessor">#endif</span>
<a name="l00139"></a>00139 <span class="preprocessor"></span>
<a name="l00140"></a>00140 <span class="preprocessor">#endif                          </span><span class="comment">/* AXIS2_VERSION_H */</span>
</pre></div><hr size="1"><address style="text-align: right;"><small>Generated on Fri Apr 17 11:49:43 2009 for Axis2/C by&nbsp;
<a href="http://www.doxygen.org/index.html">
<img src="doxygen.png" alt="doxygen" align="middle" border="0"></a> 1.5.3 </small></address>
</body>
</html>


<|start_filename|>xdocs/api/html/axutil__uri_8h-source.html<|end_filename|>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html><head><meta http-equiv="Content-Type" content="text/html;charset=UTF-8">
<title>Axis2/C: axutil_uri.h Source File</title>
<link href="doxygen.css" rel="stylesheet" type="text/css">
<link href="tabs.css" rel="stylesheet" type="text/css">
</head><body>
<!-- Generated by Doxygen 1.5.3 -->
<div class="tabs">
  <ul>
    <li><a href="index.html"><span>Main&nbsp;Page</span></a></li>
    <li><a href="modules.html"><span>Modules</span></a></li>
    <li><a href="annotated.html"><span>Classes</span></a></li>
    <li class="current"><a href="files.html"><span>Files</span></a></li>
    <li><a href="dirs.html"><span>Directories</span></a></li>
    <li><a href="pages.html"><span>Related&nbsp;Pages</span></a></li>
    <li><a href="examples.html"><span>Examples</span></a></li>
    <li>
      <form action="search.php" method="get">
        <table cellspacing="0" cellpadding="0" border="0">
          <tr>
            <td><label>&nbsp;<u>S</u>earch&nbsp;for&nbsp;</label></td>
            <td><input type="text" name="query" value="" size="20" accesskey="s"/></td>
          </tr>
        </table>
      </form>
    </li>
  </ul>
</div>
<div class="nav">
<a class="el" href="dir_f60961de8e5edc3b2658ef023e959e45.html">deploy</a>&nbsp;&raquo&nbsp;<a class="el" href="dir_6b4e91e54b7316b376882a6402adbf44.html">include</a>&nbsp;&raquo&nbsp;<a class="el" href="dir_df3a7695d5a9e696f30b948b566829e7.html">axis2-1.6.0</a></div>
<h1>axutil_uri.h</h1><a href="axutil__uri_8h.html">Go to the documentation of this file.</a><div class="fragment"><pre class="fragment"><a name="l00001"></a>00001 
<a name="l00002"></a>00002 <span class="comment">/*</span>
<a name="l00003"></a>00003 <span class="comment"> * Licensed to the Apache Software Foundation (ASF) under one or more</span>
<a name="l00004"></a>00004 <span class="comment"> * contributor license agreements.  See the NOTICE file distributed with</span>
<a name="l00005"></a>00005 <span class="comment"> * this work for additional information regarding copyright ownership.</span>
<a name="l00006"></a>00006 <span class="comment"> * The ASF licenses this file to You under the Apache License, Version 2.0</span>
<a name="l00007"></a>00007 <span class="comment"> * (the "License"); you may not use this file except in compliance with</span>
<a name="l00008"></a>00008 <span class="comment"> * the License.  You may obtain a copy of the License at</span>
<a name="l00009"></a>00009 <span class="comment"> *</span>
<a name="l00010"></a>00010 <span class="comment"> *      http://www.apache.org/licenses/LICENSE-2.0</span>
<a name="l00011"></a>00011 <span class="comment"> *</span>
<a name="l00012"></a>00012 <span class="comment"> * Unless required by applicable law or agreed to in writing, software</span>
<a name="l00013"></a>00013 <span class="comment"> * distributed under the License is distributed on an "AS IS" BASIS,</span>
<a name="l00014"></a>00014 <span class="comment"> * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.</span>
<a name="l00015"></a>00015 <span class="comment"> * See the License for the specific language governing permissions and</span>
<a name="l00016"></a>00016 <span class="comment"> * limitations under the License.</span>
<a name="l00017"></a>00017 <span class="comment"> */</span>
<a name="l00018"></a>00018 
<a name="l00019"></a>00019 <span class="preprocessor">#ifndef AXUTIL_URI_H</span>
<a name="l00020"></a>00020 <span class="preprocessor"></span><span class="preprocessor">#define AXUTIL_URI_H</span>
<a name="l00021"></a>00021 <span class="preprocessor"></span>
<a name="l00028"></a>00028 <span class="preprocessor">#include &lt;axutil_string.h&gt;</span>
<a name="l00029"></a>00029 <span class="preprocessor">#include &lt;<a class="code" href="axutil__utils_8h.html">axutil_utils.h</a>&gt;</span>
<a name="l00030"></a>00030 <span class="preprocessor">#include &lt;axutil_utils_defines.h&gt;</span>
<a name="l00031"></a>00031 <span class="preprocessor">#include &lt;<a class="code" href="axutil__env_8h.html" title="Axis2 environment that acts as a container for error, log and memory allocator routines...">axutil_env.h</a>&gt;</span>
<a name="l00032"></a>00032 
<a name="l00033"></a>00033 <span class="preprocessor">#ifdef __cplusplus</span>
<a name="l00034"></a>00034 <span class="preprocessor"></span><span class="keyword">extern</span> <span class="stringliteral">"C"</span>
<a name="l00035"></a>00035 {
<a name="l00036"></a>00036 <span class="preprocessor">#endif</span>
<a name="l00037"></a>00037 <span class="preprocessor"></span>
<a name="l00044"></a><a class="code" href="group__axutil__uri.html#g890a29bb1a4b69ad44210eb56093ef9d">00044</a> <span class="preprocessor">#define AXIS2_URI_FTP_DEFAULT_PORT         21 </span>
<a name="l00046"></a><a class="code" href="group__axutil__uri.html#g173cf9fac502ce166634f8cac97ad72b">00046</a> <span class="preprocessor">#define AXIS2_URI_SSH_DEFAULT_PORT         22 </span>
<a name="l00048"></a><a class="code" href="group__axutil__uri.html#g54be7d53a86f2b0d82bf00c7aa8f7c6f">00048</a> <span class="preprocessor">#define AXIS2_URI_TELNET_DEFAULT_PORT      23 </span>
<a name="l00050"></a><a class="code" href="group__axutil__uri.html#g1324185e1936eefc96758ac7b3bd1d1e">00050</a> <span class="preprocessor">#define AXIS2_URI_GOPHER_DEFAULT_PORT      70 </span>
<a name="l00052"></a><a class="code" href="group__axutil__uri.html#g61a736bf61ac0e9773d506a2faf98298">00052</a> <span class="preprocessor">#define AXIS2_URI_HTTP_DEFAULT_PORT        80 </span>
<a name="l00054"></a><a class="code" href="group__axutil__uri.html#g641f01da5297ffdc17302e3a35ec5df9">00054</a> <span class="preprocessor">#define AXIS2_URI_POP_DEFAULT_PORT        110 </span>
<a name="l00056"></a><a class="code" href="group__axutil__uri.html#g5cf52008ffc33b4308cdc6ab465d1271">00056</a> <span class="preprocessor">#define AXIS2_URI_NNTP_DEFAULT_PORT       119 </span>
<a name="l00058"></a><a class="code" href="group__axutil__uri.html#g05f6dc24b60711f8c7ed562ceef3cd26">00058</a> <span class="preprocessor">#define AXIS2_URI_IMAP_DEFAULT_PORT       143 </span>
<a name="l00060"></a><a class="code" href="group__axutil__uri.html#g501f92278c7825a20f532aaeae3b59ca">00060</a> <span class="preprocessor">#define AXIS2_URI_PROSPERO_DEFAULT_PORT   191 </span>
<a name="l00062"></a><a class="code" href="group__axutil__uri.html#gc73c5de55dd281e5db79bcd377bbf1ba">00062</a> <span class="preprocessor">#define AXIS2_URI_WAIS_DEFAULT_PORT       210 </span>
<a name="l00064"></a><a class="code" href="group__axutil__uri.html#gf49acba5d4eb35310a62cb62385538ef">00064</a> <span class="preprocessor">#define AXIS2_URI_LDAP_DEFAULT_PORT       389 </span>
<a name="l00066"></a><a class="code" href="group__axutil__uri.html#g3c34f69d375f38e461f09374ad90ee9c">00066</a> <span class="preprocessor">#define AXIS2_URI_HTTPS_DEFAULT_PORT      443 </span>
<a name="l00068"></a><a class="code" href="group__axutil__uri.html#g0e844d7bf3c95b104e6a25b4680a3263">00068</a> <span class="preprocessor">#define AXIS2_URI_RTSP_DEFAULT_PORT       554 </span>
<a name="l00070"></a><a class="code" href="group__axutil__uri.html#g453de6d294e03f6a1950b5ecd1c767a4">00070</a> <span class="preprocessor">#define AXIS2_URI_SNEWS_DEFAULT_PORT      563 </span>
<a name="l00072"></a><a class="code" href="group__axutil__uri.html#g597c0ffd3d295c93b341d41934926b8a">00072</a> <span class="preprocessor">#define AXIS2_URI_ACAP_DEFAULT_PORT       674 </span>
<a name="l00074"></a><a class="code" href="group__axutil__uri.html#g938eb255d804e1aff7e1d92ffb5f5b9d">00074</a> <span class="preprocessor">#define AXIS2_URI_NFS_DEFAULT_PORT       2049 </span>
<a name="l00076"></a><a class="code" href="group__axutil__uri.html#g2a5977799c7e472bc7f0ea1ee440a2c3">00076</a> <span class="preprocessor">#define AXIS2_URI_TIP_DEFAULT_PORT       3372 </span>
<a name="l00078"></a><a class="code" href="group__axutil__uri.html#g00c5165abdd8e1e3dc4e649dc91a7d14">00078</a> <span class="preprocessor">#define AXIS2_URI_SIP_DEFAULT_PORT       5060 </span>
<a name="l00083"></a><a class="code" href="group__axutil__uri.html#g9fbeb5793112dac6d410949e2f9b8547">00083</a> <span class="preprocessor">#define AXIS2_URI_UNP_OMITSITEPART      (1U&lt;&lt;0)</span>
<a name="l00084"></a>00084 <span class="preprocessor"></span>
<a name="l00086"></a><a class="code" href="group__axutil__uri.html#g72c059826dc908e6e6960b6f9023b0ad">00086</a> <span class="preprocessor">#define AXIS2_URI_UNP_OMITUSER          (1U&lt;&lt;1)</span>
<a name="l00087"></a>00087 <span class="preprocessor"></span>
<a name="l00089"></a><a class="code" href="group__axutil__uri.html#ga54bd62b2dcdf304deec6087328d9b40">00089</a> <span class="preprocessor">#define AXIS2_URI_UNP_OMITPASSWORD      (1U&lt;&lt;2)</span>
<a name="l00090"></a>00090 <span class="preprocessor"></span>
<a name="l00092"></a><a class="code" href="group__axutil__uri.html#gdf97648c61c101a22ed8628355171496">00092</a> <span class="preprocessor">#define AXIS2_URI_UNP_OMITUSERINFO      (AXIS2_URI_UNP_OMITUSER | \</span>
<a name="l00093"></a>00093 <span class="preprocessor">                                       AXIS2_URI_UNP_OMITPASSWORD)</span>
<a name="l00094"></a>00094 <span class="preprocessor"></span>
<a name="l00096"></a><a class="code" href="group__axutil__uri.html#ge4deae533f770383007885c27f9eb977">00096</a> <span class="preprocessor">#define AXIS2_URI_UNP_REVEALPASSWORD    (1U&lt;&lt;3)</span>
<a name="l00097"></a>00097 <span class="preprocessor"></span>
<a name="l00099"></a><a class="code" href="group__axutil__uri.html#gf9be5c22507d50e8852d6b346068bf85">00099</a> <span class="preprocessor">#define AXIS2_URI_UNP_OMITPATHINFO      (1U&lt;&lt;4)</span>
<a name="l00100"></a>00100 <span class="preprocessor"></span>
<a name="l00102"></a><a class="code" href="group__axutil__uri.html#gba651e91d89d096e638945c1dc729b82">00102</a> <span class="preprocessor">#define AXIS2_URI_UNP_OMITQUERY_ONLY    (1U&lt;&lt;5)</span>
<a name="l00103"></a>00103 <span class="preprocessor"></span>
<a name="l00105"></a><a class="code" href="group__axutil__uri.html#gfd1c52b377d713e8c562d138971e3da9">00105</a> <span class="preprocessor">#define AXIS2_URI_UNP_OMITFRAGMENT_ONLY (1U&lt;&lt;6)</span>
<a name="l00106"></a>00106 <span class="preprocessor"></span>
<a name="l00108"></a><a class="code" href="group__axutil__uri.html#g83806b77d30e0c012192145ee73c4eb4">00108</a> <span class="preprocessor">#define AXIS2_URI_UNP_OMITQUERY         (AXIS2_URI_UNP_OMITQUERY_ONLY | \</span>
<a name="l00109"></a>00109 <span class="preprocessor">                                       AXIS2_URI_UNP_OMITFRAGMENT_ONLY)</span>
<a name="l00110"></a>00110 <span class="preprocessor"></span>
<a name="l00112"></a><a class="code" href="group__axutil__uri.html#ge872059061cd893ffffc348e725bd021">00112</a>     <span class="keyword">typedef</span> <span class="keywordtype">unsigned</span> <span class="keywordtype">short</span> <a class="code" href="group__axutil__uri.html#ge872059061cd893ffffc348e725bd021">axis2_port_t</a>;
<a name="l00113"></a>00113     <span class="comment">/* axutil_uri.c */</span>
<a name="l00114"></a>00114 
<a name="l00115"></a>00115     <span class="keyword">typedef</span> <span class="keyword">struct </span>axutil_uri axutil_uri_t;
<a name="l00116"></a>00116 
<a name="l00122"></a>00122     AXIS2_EXTERN axutil_uri_t *AXIS2_CALL
<a name="l00123"></a>00123     <a class="code" href="group__axutil__uri.html#g935c3b7a98e6a20f2020ab3369da88e5">axutil_uri_create</a>(
<a name="l00124"></a>00124         <span class="keyword">const</span> <a class="code" href="structaxutil__env.html" title="Axis2 Environment struct.">axutil_env_t</a> * env);
<a name="l00125"></a>00125 
<a name="l00132"></a>00132     AXIS2_EXTERN axis2_port_t AXIS2_CALL
<a name="l00133"></a>00133     <a class="code" href="group__axutil__uri.html#gdf1a3e50e6387fafd45b14e1aa0f8208">axutil_uri_port_of_scheme</a>(
<a name="l00134"></a>00134         <span class="keyword">const</span> axis2_char_t * scheme_str);
<a name="l00135"></a>00135 
<a name="l00144"></a>00144     AXIS2_EXTERN axutil_uri_t *AXIS2_CALL
<a name="l00145"></a>00145     <a class="code" href="group__axutil__uri.html#g89c8721392b5307aa708bd0581cc6f87">axutil_uri_parse_string</a>(
<a name="l00146"></a>00146         <span class="keyword">const</span> <a class="code" href="structaxutil__env.html" title="Axis2 Environment struct.">axutil_env_t</a> * env,
<a name="l00147"></a>00147         <span class="keyword">const</span> axis2_char_t * uri);
<a name="l00148"></a>00148 
<a name="l00155"></a>00155     AXIS2_EXTERN axutil_uri_t *AXIS2_CALL
<a name="l00156"></a>00156     <a class="code" href="group__axutil__uri.html#g7ae7fb761871229bea556e730c092eea">axutil_uri_parse_hostinfo</a>(
<a name="l00157"></a>00157         <span class="keyword">const</span> <a class="code" href="structaxutil__env.html" title="Axis2 Environment struct.">axutil_env_t</a> * env,
<a name="l00158"></a>00158         <span class="keyword">const</span> axis2_char_t * hostinfo);
<a name="l00159"></a>00159 
<a name="l00161"></a>00161     AXIS2_EXTERN axutil_uri_t *AXIS2_CALL
<a name="l00162"></a>00162     <a class="code" href="group__axutil__uri.html#g57054f49c2c3615b1205fa4702aab1a4">axutil_uri_resolve_relative</a>(
<a name="l00163"></a>00163         <span class="keyword">const</span> <a class="code" href="structaxutil__env.html" title="Axis2 Environment struct.">axutil_env_t</a> * env,
<a name="l00164"></a>00164         <span class="keyword">const</span> axutil_uri_t * base,
<a name="l00165"></a>00165         axutil_uri_t * uptr);
<a name="l00166"></a>00166 
<a name="l00179"></a>00179     AXIS2_EXTERN axutil_uri_t *AXIS2_CALL
<a name="l00180"></a>00180     <a class="code" href="group__axutil__uri.html#gb1f06713caf077056cf82e14dddb3f6b">axutil_uri_parse_relative</a>(
<a name="l00181"></a>00181         <span class="keyword">const</span> <a class="code" href="structaxutil__env.html" title="Axis2 Environment struct.">axutil_env_t</a> * env,
<a name="l00182"></a>00182         <span class="keyword">const</span> axutil_uri_t * base,
<a name="l00183"></a>00183         <span class="keyword">const</span> <span class="keywordtype">char</span> *uri);
<a name="l00184"></a>00184 
<a name="l00185"></a>00185     AXIS2_EXTERN <span class="keywordtype">void</span> AXIS2_CALL
<a name="l00186"></a>00186     axutil_uri_free(
<a name="l00187"></a>00187         axutil_uri_t * uri,
<a name="l00188"></a>00188         <span class="keyword">const</span> <a class="code" href="structaxutil__env.html" title="Axis2 Environment struct.">axutil_env_t</a> * env);
<a name="l00189"></a>00189 
<a name="l00206"></a>00206     AXIS2_EXTERN axis2_char_t *AXIS2_CALL
<a name="l00207"></a>00207     <a class="code" href="group__axutil__uri.html#g9b9e291fb2de237b1ea16e1446cb4ef9">axutil_uri_to_string</a>(
<a name="l00208"></a>00208         <span class="keyword">const</span> axutil_uri_t * uri,
<a name="l00209"></a>00209         <span class="keyword">const</span> <a class="code" href="structaxutil__env.html" title="Axis2 Environment struct.">axutil_env_t</a> * env,
<a name="l00210"></a>00210         <span class="keywordtype">unsigned</span> flags);
<a name="l00211"></a>00211 
<a name="l00215"></a>00215     AXIS2_EXTERN axis2_char_t *AXIS2_CALL
<a name="l00216"></a>00216     <a class="code" href="group__axutil__uri.html#g7f474fba8db7111c30a4cc5878b09b09">axutil_uri_get_protocol</a>(
<a name="l00217"></a>00217         axutil_uri_t * uri,
<a name="l00218"></a>00218         <span class="keyword">const</span> <a class="code" href="structaxutil__env.html" title="Axis2 Environment struct.">axutil_env_t</a> * env);
<a name="l00219"></a>00219 
<a name="l00223"></a>00223     AXIS2_EXTERN axis2_char_t *AXIS2_CALL
<a name="l00224"></a>00224     <a class="code" href="group__axutil__uri.html#gce1f53b8049d45a7964ea893edcef747">axutil_uri_get_server</a>(
<a name="l00225"></a>00225         axutil_uri_t * uri,
<a name="l00226"></a>00226         <span class="keyword">const</span> <a class="code" href="structaxutil__env.html" title="Axis2 Environment struct.">axutil_env_t</a> * env);
<a name="l00227"></a>00227 
<a name="l00233"></a>00233     AXIS2_EXTERN axis2_char_t *AXIS2_CALL
<a name="l00234"></a>00234     <a class="code" href="group__axutil__uri.html#gaec4183fc0c510ca0e2a2038d6ed4a8d">axutil_uri_get_host</a>(
<a name="l00235"></a>00235         axutil_uri_t * uri,
<a name="l00236"></a>00236         <span class="keyword">const</span> <a class="code" href="structaxutil__env.html" title="Axis2 Environment struct.">axutil_env_t</a> * env);
<a name="l00237"></a>00237 
<a name="l00238"></a>00238     AXIS2_EXTERN axis2_port_t AXIS2_CALL
<a name="l00239"></a>00239     axutil_uri_get_port(
<a name="l00240"></a>00240         axutil_uri_t * uri,
<a name="l00241"></a>00241         <span class="keyword">const</span> <a class="code" href="structaxutil__env.html" title="Axis2 Environment struct.">axutil_env_t</a> * env);
<a name="l00242"></a>00242 
<a name="l00246"></a>00246     AXIS2_EXTERN axis2_char_t *AXIS2_CALL
<a name="l00247"></a>00247     <a class="code" href="group__axutil__uri.html#g6f187b6adfd0e2b46b63214cb29ed45a">axutil_uri_get_path</a>(
<a name="l00248"></a>00248         axutil_uri_t * uri,
<a name="l00249"></a>00249         <span class="keyword">const</span> <a class="code" href="structaxutil__env.html" title="Axis2 Environment struct.">axutil_env_t</a> * env);
<a name="l00250"></a>00250 
<a name="l00251"></a>00251     AXIS2_EXTERN axutil_uri_t *AXIS2_CALL
<a name="l00252"></a>00252     axutil_uri_clone(
<a name="l00253"></a>00253         <span class="keyword">const</span> axutil_uri_t * uri,
<a name="l00254"></a>00254         <span class="keyword">const</span> <a class="code" href="structaxutil__env.html" title="Axis2 Environment struct.">axutil_env_t</a> * env);
<a name="l00255"></a>00255 
<a name="l00259"></a>00259     AXIS2_EXTERN axis2_char_t *AXIS2_CALL
<a name="l00260"></a>00260     <a class="code" href="group__axutil__uri.html#gc967a6e1c1b5193f500f0af22506ecaa">axutil_uri_get_query</a>(
<a name="l00261"></a>00261         axutil_uri_t * uri,
<a name="l00262"></a>00262         <span class="keyword">const</span> <a class="code" href="structaxutil__env.html" title="Axis2 Environment struct.">axutil_env_t</a> * env);
<a name="l00263"></a>00263 
<a name="l00267"></a>00267     AXIS2_EXTERN axis2_char_t *AXIS2_CALL
<a name="l00268"></a>00268     <a class="code" href="group__axutil__uri.html#g854544404e22e40fc10e470c24273286">axutil_uri_get_fragment</a>(
<a name="l00269"></a>00269         axutil_uri_t * uri,
<a name="l00270"></a>00270         <span class="keyword">const</span> <a class="code" href="structaxutil__env.html" title="Axis2 Environment struct.">axutil_env_t</a> * env);
<a name="l00271"></a>00271 
<a name="l00273"></a>00273 <span class="preprocessor">#ifdef __cplusplus</span>
<a name="l00274"></a>00274 <span class="preprocessor"></span>}
<a name="l00275"></a>00275 <span class="preprocessor">#endif</span>
<a name="l00276"></a>00276 <span class="preprocessor"></span>
<a name="l00277"></a>00277 <span class="preprocessor">#endif                          </span><span class="comment">/* AXIS2_URI_H */</span>
</pre></div><hr size="1"><address style="text-align: right;"><small>Generated on Fri Apr 17 11:49:43 2009 for Axis2/C by&nbsp;
<a href="http://www.doxygen.org/index.html">
<img src="doxygen.png" alt="doxygen" align="middle" border="0"></a> 1.5.3 </small></address>
</body>
</html>


<|start_filename|>xdocs/api/html/axis2__stub_8h-source.html<|end_filename|>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html><head><meta http-equiv="Content-Type" content="text/html;charset=UTF-8">
<title>Axis2/C: axis2_stub.h Source File</title>
<link href="doxygen.css" rel="stylesheet" type="text/css">
<link href="tabs.css" rel="stylesheet" type="text/css">
</head><body>
<!-- Generated by Doxygen 1.5.3 -->
<div class="tabs">
  <ul>
    <li><a href="index.html"><span>Main&nbsp;Page</span></a></li>
    <li><a href="modules.html"><span>Modules</span></a></li>
    <li><a href="annotated.html"><span>Classes</span></a></li>
    <li class="current"><a href="files.html"><span>Files</span></a></li>
    <li><a href="dirs.html"><span>Directories</span></a></li>
    <li><a href="pages.html"><span>Related&nbsp;Pages</span></a></li>
    <li><a href="examples.html"><span>Examples</span></a></li>
    <li>
      <form action="search.php" method="get">
        <table cellspacing="0" cellpadding="0" border="0">
          <tr>
            <td><label>&nbsp;<u>S</u>earch&nbsp;for&nbsp;</label></td>
            <td><input type="text" name="query" value="" size="20" accesskey="s"/></td>
          </tr>
        </table>
      </form>
    </li>
  </ul>
</div>
<div class="nav">
<a class="el" href="dir_f60961de8e5edc3b2658ef023e959e45.html">deploy</a>&nbsp;&raquo&nbsp;<a class="el" href="dir_6b4e91e54b7316b376882a6402adbf44.html">include</a>&nbsp;&raquo&nbsp;<a class="el" href="dir_df3a7695d5a9e696f30b948b566829e7.html">axis2-1.6.0</a></div>
<h1>axis2_stub.h</h1><a href="axis2__stub_8h.html">Go to the documentation of this file.</a><div class="fragment"><pre class="fragment"><a name="l00001"></a>00001 
<a name="l00002"></a>00002 <span class="comment">/*</span>
<a name="l00003"></a>00003 <span class="comment">* Licensed to the Apache Software Foundation (ASF) under one or more</span>
<a name="l00004"></a>00004 <span class="comment">* contributor license agreements.  See the NOTICE file distributed with</span>
<a name="l00005"></a>00005 <span class="comment">* this work for additional information regarding copyright ownership.</span>
<a name="l00006"></a>00006 <span class="comment">* The ASF licenses this file to You under the Apache License, Version 2.0</span>
<a name="l00007"></a>00007 <span class="comment">* (the "License"); you may not use this file except in compliance with</span>
<a name="l00008"></a>00008 <span class="comment">* the License.  You may obtain a copy of the License at</span>
<a name="l00009"></a>00009 <span class="comment">*</span>
<a name="l00010"></a>00010 <span class="comment">*      http://www.apache.org/licenses/LICENSE-2.0</span>
<a name="l00011"></a>00011 <span class="comment">*</span>
<a name="l00012"></a>00012 <span class="comment">* Unless required by applicable law or agreed to in writing, software</span>
<a name="l00013"></a>00013 <span class="comment">* distributed under the License is distributed on an "AS IS" BASIS,</span>
<a name="l00014"></a>00014 <span class="comment">* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.</span>
<a name="l00015"></a>00015 <span class="comment">* See the License for the specific language governing permissions and</span>
<a name="l00016"></a>00016 <span class="comment">* limitations under the License.</span>
<a name="l00017"></a>00017 <span class="comment">*/</span>
<a name="l00018"></a>00018 
<a name="l00019"></a>00019 <span class="preprocessor">#ifndef AXIS2_STUB_H</span>
<a name="l00020"></a>00020 <span class="preprocessor"></span><span class="preprocessor">#define AXIS2_STUB_H</span>
<a name="l00021"></a>00021 <span class="preprocessor"></span>
<a name="l00034"></a>00034 <span class="preprocessor">#include &lt;<a class="code" href="axis2__endpoint__ref_8h.html">axis2_endpoint_ref.h</a>&gt;</span>
<a name="l00035"></a>00035 <span class="preprocessor">#include &lt;<a class="code" href="axis2__svc__client_8h.html">axis2_svc_client.h</a>&gt;</span>
<a name="l00036"></a>00036 <span class="preprocessor">#include &lt;<a class="code" href="axis2__options_8h.html">axis2_options.h</a>&gt;</span>
<a name="l00037"></a>00037 <span class="preprocessor">#include &lt;<a class="code" href="axiom__xml__reader_8h.html" title="this is the parser abstraction layer for axis2">axiom_xml_reader.h</a>&gt;</span>
<a name="l00038"></a>00038 <span class="preprocessor">#include &lt;axutil_property.h&gt;</span>
<a name="l00039"></a>00039 
<a name="l00042"></a><a class="code" href="group__axis2__stub.html#g474df5196c2a46015268b108ce2dde5c">00042</a> <span class="preprocessor">#define AXIOM_SOAP_11 1</span>
<a name="l00043"></a>00043 <span class="preprocessor"></span>
<a name="l00046"></a><a class="code" href="group__axis2__stub.html#ga869c2c88438ec26ab81a36b8727ac80">00046</a> <span class="preprocessor">#define AXIOM_SOAP_12 2</span>
<a name="l00047"></a>00047 <span class="preprocessor"></span>
<a name="l00048"></a>00048 <span class="preprocessor">#ifdef __cplusplus</span>
<a name="l00049"></a>00049 <span class="preprocessor"></span><span class="keyword">extern</span> <span class="stringliteral">"C"</span>
<a name="l00050"></a>00050 {
<a name="l00051"></a>00051 <span class="preprocessor">#endif</span>
<a name="l00052"></a>00052 <span class="preprocessor"></span>
<a name="l00054"></a><a class="code" href="group__axis2__stub.html#g8ffbf8bf99ffec0caa07cf7aacf17281">00054</a>     <span class="keyword">typedef</span> <span class="keyword">struct </span>axis2_stub <a class="code" href="group__axis2__stub.html#g8ffbf8bf99ffec0caa07cf7aacf17281">axis2_stub_t</a>;
<a name="l00055"></a>00055 
<a name="l00062"></a>00062     AXIS2_EXTERN <span class="keywordtype">void</span> AXIS2_CALL
<a name="l00063"></a>00063     <a class="code" href="group__axis2__stub.html#gfc147a4a3fbdadfd5d92051fd7be69e5">axis2_stub_free</a>(
<a name="l00064"></a>00064         <a class="code" href="group__axis2__stub.html#g8ffbf8bf99ffec0caa07cf7aacf17281">axis2_stub_t</a> * stub,
<a name="l00065"></a>00065         <span class="keyword">const</span> <a class="code" href="structaxutil__env.html" title="Axis2 Environment struct.">axutil_env_t</a> * env);
<a name="l00066"></a>00066 
<a name="l00075"></a>00075     AXIS2_EXTERN axis2_status_t AXIS2_CALL
<a name="l00076"></a>00076     <a class="code" href="group__axis2__stub.html#gf746e816fb986b581bc2d3859bb097aa">axis2_stub_set_endpoint_ref</a>(
<a name="l00077"></a>00077         <a class="code" href="group__axis2__stub.html#g8ffbf8bf99ffec0caa07cf7aacf17281">axis2_stub_t</a> * stub,
<a name="l00078"></a>00078         <span class="keyword">const</span> <a class="code" href="structaxutil__env.html" title="Axis2 Environment struct.">axutil_env_t</a> * env,
<a name="l00079"></a>00079         <a class="code" href="group__axis2__endpoint__ref.html#gf6e89c83a6b553e7e3f11e787b3fecd4">axis2_endpoint_ref_t</a> * endpoint_ref);
<a name="l00080"></a>00080 
<a name="l00088"></a>00088     AXIS2_EXTERN axis2_status_t AXIS2_CALL
<a name="l00089"></a>00089     <a class="code" href="group__axis2__stub.html#g175f162d0a5a7901f49f882bde4105ee">axis2_stub_set_endpoint_uri</a>(
<a name="l00090"></a>00090         <a class="code" href="group__axis2__stub.html#g8ffbf8bf99ffec0caa07cf7aacf17281">axis2_stub_t</a> * stub,
<a name="l00091"></a>00091         <span class="keyword">const</span> <a class="code" href="structaxutil__env.html" title="Axis2 Environment struct.">axutil_env_t</a> * env,
<a name="l00092"></a>00092         <span class="keyword">const</span> axis2_char_t * endpoint_uri);
<a name="l00093"></a>00093 
<a name="l00102"></a>00102     AXIS2_EXTERN axis2_status_t AXIS2_CALL
<a name="l00103"></a>00103     <a class="code" href="group__axis2__stub.html#gf3fdc7a48ad18635e54089e1e7e9d416">axis2_stub_set_use_separate_listener</a>(
<a name="l00104"></a>00104         <a class="code" href="group__axis2__stub.html#g8ffbf8bf99ffec0caa07cf7aacf17281">axis2_stub_t</a> * stub,
<a name="l00105"></a>00105         <span class="keyword">const</span> <a class="code" href="structaxutil__env.html" title="Axis2 Environment struct.">axutil_env_t</a> * env,
<a name="l00106"></a>00106         <span class="keyword">const</span> axis2_bool_t use_separate_listener);
<a name="l00107"></a>00107 
<a name="l00115"></a>00115     AXIS2_EXTERN axis2_status_t AXIS2_CALL
<a name="l00116"></a>00116     <a class="code" href="group__axis2__stub.html#gcffd202b2340ff245a1c972669b8ad39">axis2_stub_set_soap_version</a>(
<a name="l00117"></a>00117         <a class="code" href="group__axis2__stub.html#g8ffbf8bf99ffec0caa07cf7aacf17281">axis2_stub_t</a> * stub,
<a name="l00118"></a>00118         <span class="keyword">const</span> <a class="code" href="structaxutil__env.html" title="Axis2 Environment struct.">axutil_env_t</a> * env,
<a name="l00119"></a>00119         <span class="keyword">const</span> <span class="keywordtype">int</span> soap_version);
<a name="l00120"></a>00120 
<a name="l00127"></a>00127     AXIS2_EXTERN <span class="keyword">const</span> axis2_char_t *AXIS2_CALL
<a name="l00128"></a>00128     <a class="code" href="group__axis2__stub.html#gc313e3c8e03ada17a04e4049121d41d7">axis2_stub_get_svc_ctx_id</a>(
<a name="l00129"></a>00129         <span class="keyword">const</span> <a class="code" href="group__axis2__stub.html#g8ffbf8bf99ffec0caa07cf7aacf17281">axis2_stub_t</a> * stub,
<a name="l00130"></a>00130         <span class="keyword">const</span> <a class="code" href="structaxutil__env.html" title="Axis2 Environment struct.">axutil_env_t</a> * env);
<a name="l00131"></a>00131 
<a name="l00139"></a>00139     AXIS2_EXTERN axis2_status_t AXIS2_CALL
<a name="l00140"></a>00140     <a class="code" href="group__axis2__stub.html#gb1137e8b1493ebfbecb29e81b6554974">axis2_stub_engage_module</a>(
<a name="l00141"></a>00141         <a class="code" href="group__axis2__stub.html#g8ffbf8bf99ffec0caa07cf7aacf17281">axis2_stub_t</a> * stub,
<a name="l00142"></a>00142         <span class="keyword">const</span> <a class="code" href="structaxutil__env.html" title="Axis2 Environment struct.">axutil_env_t</a> * env,
<a name="l00143"></a>00143         <span class="keyword">const</span> axis2_char_t * module_name);
<a name="l00144"></a>00144 
<a name="l00151"></a>00151     AXIS2_EXTERN <a class="code" href="group__axis2__svc__client.html#g09ddaee99db86733d6550231293be4e7">axis2_svc_client_t</a> *AXIS2_CALL
<a name="l00152"></a>00152     <a class="code" href="group__axis2__stub.html#g2d32f2fc661d49f68c8d144ada54acd8">axis2_stub_get_svc_client</a>(
<a name="l00153"></a>00153         <span class="keyword">const</span> <a class="code" href="group__axis2__stub.html#g8ffbf8bf99ffec0caa07cf7aacf17281">axis2_stub_t</a> * stub,
<a name="l00154"></a>00154         <span class="keyword">const</span> <a class="code" href="structaxutil__env.html" title="Axis2 Environment struct.">axutil_env_t</a> * env);
<a name="l00155"></a>00155 
<a name="l00162"></a>00162     AXIS2_EXTERN <a class="code" href="group__axis2__options.html#g26794bbdc46cdd3481c7e9079c0d6094">axis2_options_t</a> *AXIS2_CALL
<a name="l00163"></a>00163     <a class="code" href="group__axis2__stub.html#ge0caef65d517bbde1018db927bbf2e27">axis2_stub_get_options</a>(
<a name="l00164"></a>00164         <span class="keyword">const</span> <a class="code" href="group__axis2__stub.html#g8ffbf8bf99ffec0caa07cf7aacf17281">axis2_stub_t</a> * stub,
<a name="l00165"></a>00165         <span class="keyword">const</span> <a class="code" href="structaxutil__env.html" title="Axis2 Environment struct.">axutil_env_t</a> * env);
<a name="l00166"></a>00166 
<a name="l00175"></a>00175     AXIS2_EXTERN <a class="code" href="group__axis2__stub.html#g8ffbf8bf99ffec0caa07cf7aacf17281">axis2_stub_t</a> *AXIS2_CALL
<a name="l00176"></a>00176     <a class="code" href="group__axis2__stub.html#g1ed17d951b3cca323b94074a747fbac7">axis2_stub_create_with_endpoint_ref_and_client_home</a>(
<a name="l00177"></a>00177         <span class="keyword">const</span> <a class="code" href="structaxutil__env.html" title="Axis2 Environment struct.">axutil_env_t</a> * env,
<a name="l00178"></a>00178         <a class="code" href="group__axis2__endpoint__ref.html#gf6e89c83a6b553e7e3f11e787b3fecd4">axis2_endpoint_ref_t</a> * endpoint_ref,
<a name="l00179"></a>00179         <span class="keyword">const</span> axis2_char_t * client_home);
<a name="l00180"></a>00180 
<a name="l00188"></a>00188     AXIS2_EXTERN <a class="code" href="group__axis2__stub.html#g8ffbf8bf99ffec0caa07cf7aacf17281">axis2_stub_t</a> *AXIS2_CALL
<a name="l00189"></a>00189     <a class="code" href="group__axis2__stub.html#gb7634341e5e96506963b79ac3b5ebe6e">axis2_stub_create_with_endpoint_uri_and_client_home</a>(
<a name="l00190"></a>00190         <span class="keyword">const</span> <a class="code" href="structaxutil__env.html" title="Axis2 Environment struct.">axutil_env_t</a> * env,
<a name="l00191"></a>00191         <span class="keyword">const</span> axis2_char_t * endpoint_uri,
<a name="l00192"></a>00192         <span class="keyword">const</span> axis2_char_t * client_home);
<a name="l00193"></a>00193 
<a name="l00196"></a>00196 <span class="preprocessor">#ifdef __cplusplus</span>
<a name="l00197"></a>00197 <span class="preprocessor"></span>}
<a name="l00198"></a>00198 <span class="preprocessor">#endif</span>
<a name="l00199"></a>00199 <span class="preprocessor"></span>
<a name="l00200"></a>00200 <span class="preprocessor">#endif                          </span><span class="comment">/* AXIS2_STUB_H */</span>
</pre></div><hr size="1"><address style="text-align: right;"><small>Generated on Fri Apr 17 11:49:42 2009 for Axis2/C by&nbsp;
<a href="http://www.doxygen.org/index.html">
<img src="doxygen.png" alt="doxygen" align="middle" border="0"></a> 1.5.3 </small></address>
</body>
</html>


<|start_filename|>xdocs/api/html/group__axis2__transport__in__desc.html<|end_filename|>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html><head><meta http-equiv="Content-Type" content="text/html;charset=UTF-8">
<title>Axis2/C: transport in description</title>
<link href="doxygen.css" rel="stylesheet" type="text/css">
<link href="tabs.css" rel="stylesheet" type="text/css">
</head><body>
<!-- Generated by Doxygen 1.5.3 -->
<div class="tabs">
  <ul>
    <li><a href="index.html"><span>Main&nbsp;Page</span></a></li>
    <li><a href="modules.html"><span>Modules</span></a></li>
    <li><a href="annotated.html"><span>Classes</span></a></li>
    <li><a href="files.html"><span>Files</span></a></li>
    <li><a href="dirs.html"><span>Directories</span></a></li>
    <li><a href="pages.html"><span>Related&nbsp;Pages</span></a></li>
    <li><a href="examples.html"><span>Examples</span></a></li>
    <li>
      <form action="search.php" method="get">
        <table cellspacing="0" cellpadding="0" border="0">
          <tr>
            <td><label>&nbsp;<u>S</u>earch&nbsp;for&nbsp;</label></td>
            <td><input type="text" name="query" value="" size="20" accesskey="s"/></td>
          </tr>
        </table>
      </form>
    </li>
  </ul>
</div>
<h1>transport in description<br>
<small>
[<a class="el" href="group__axis2__desc.html">description</a>]</small>
</h1><table border="0" cellpadding="0" cellspacing="0">
<tr><td></td></tr>
<tr><td colspan="2"><br><h2>Files</h2></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top">file &nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="axis2__transport__in__desc_8h.html">axis2_transport_in_desc.h</a></td></tr>

<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Axis2 description transport in interface. <br></td></tr>

<p>
<tr><td colspan="2"><br><h2>Typedefs</h2></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top">typedef struct <br>
axis2_transport_in_desc&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__axis2__transport__in__desc.html#g9185c8c5307454b74f49523666f7bda6">axis2_transport_in_desc_t</a></td></tr>

<tr><td colspan="2"><br><h2>Functions</h2></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top">AXIS2_EXTERN void&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__axis2__transport__in__desc.html#g21d5acc0496701bb3a3d3c6e12f8a45a">axis2_transport_in_desc_free</a> (<a class="el" href="group__axis2__transport__in__desc.html#g9185c8c5307454b74f49523666f7bda6">axis2_transport_in_desc_t</a> *transport_in_desc, const <a class="el" href="structaxutil__env.html">axutil_env_t</a> *env)</td></tr>

<tr><td class="memItemLeft" nowrap align="right" valign="top">AXIS2_EXTERN void&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__axis2__transport__in__desc.html#gfd336f266ce3e3cde1ef38b475e19dac">axis2_transport_in_desc_free_void_arg</a> (void *transport_in, const <a class="el" href="structaxutil__env.html">axutil_env_t</a> *env)</td></tr>

<tr><td class="memItemLeft" nowrap align="right" valign="top">AXIS2_EXTERN <br>
AXIS2_TRANSPORT_ENUMS&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__axis2__transport__in__desc.html#g6ec4b9bf77f2828b7461de54bb7655ce">axis2_transport_in_desc_get_enum</a> (const <a class="el" href="group__axis2__transport__in__desc.html#g9185c8c5307454b74f49523666f7bda6">axis2_transport_in_desc_t</a> *transport_in, const <a class="el" href="structaxutil__env.html">axutil_env_t</a> *env)</td></tr>

<tr><td class="memItemLeft" nowrap align="right" valign="top">AXIS2_EXTERN <br>
axis2_status_t&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__axis2__transport__in__desc.html#g4c11258fcb647146f412d89ccdbd069d">axis2_transport_in_desc_set_enum</a> (struct axis2_transport_in_desc *transport_in, const <a class="el" href="structaxutil__env.html">axutil_env_t</a> *env, const AXIS2_TRANSPORT_ENUMS trans_enum)</td></tr>

<tr><td class="memItemLeft" nowrap align="right" valign="top">AXIS2_EXTERN struct <br>
axis2_flow *&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__axis2__transport__in__desc.html#g8f29949d324d08e6c759ccf650ccab29">axis2_transport_in_desc_get_in_flow</a> (const <a class="el" href="group__axis2__transport__in__desc.html#g9185c8c5307454b74f49523666f7bda6">axis2_transport_in_desc_t</a> *transport_in, const <a class="el" href="structaxutil__env.html">axutil_env_t</a> *env)</td></tr>

<tr><td class="memItemLeft" nowrap align="right" valign="top">AXIS2_EXTERN <br>
axis2_status_t&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__axis2__transport__in__desc.html#ga0d8c3fa889518560959a8b19900e31b">axis2_transport_in_desc_set_in_flow</a> (struct axis2_transport_in_desc *transport_in, const <a class="el" href="structaxutil__env.html">axutil_env_t</a> *env, struct axis2_flow *in_flow)</td></tr>

<tr><td class="memItemLeft" nowrap align="right" valign="top">AXIS2_EXTERN struct <br>
axis2_flow *&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__axis2__transport__in__desc.html#g7eefabf8404784204c46c7d4ff639211">axis2_transport_in_desc_get_fault_in_flow</a> (const <a class="el" href="group__axis2__transport__in__desc.html#g9185c8c5307454b74f49523666f7bda6">axis2_transport_in_desc_t</a> *transport_in, const <a class="el" href="structaxutil__env.html">axutil_env_t</a> *env)</td></tr>

<tr><td class="memItemLeft" nowrap align="right" valign="top">AXIS2_EXTERN <br>
axis2_status_t&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__axis2__transport__in__desc.html#g4f702a1a39ff523cf65600fc54046643">axis2_transport_in_desc_set_fault_in_flow</a> (struct axis2_transport_in_desc *transport_in, const <a class="el" href="structaxutil__env.html">axutil_env_t</a> *env, struct axis2_flow *fault_in_flow)</td></tr>

<tr><td class="memItemLeft" nowrap align="right" valign="top">AXIS2_EXTERN struct <br>
<a class="el" href="structaxis2__transport__receiver.html">axis2_transport_receiver</a> *&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__axis2__transport__in__desc.html#gf86d50b87ddbb9adfb9856526a7a0cdf">axis2_transport_in_desc_get_recv</a> (const <a class="el" href="group__axis2__transport__in__desc.html#g9185c8c5307454b74f49523666f7bda6">axis2_transport_in_desc_t</a> *transport_in, const <a class="el" href="structaxutil__env.html">axutil_env_t</a> *env)</td></tr>

<tr><td class="memItemLeft" nowrap align="right" valign="top">AXIS2_EXTERN <br>
axis2_status_t&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__axis2__transport__in__desc.html#g1bc9262c72e46d7d485f126f7c054d48">axis2_transport_in_desc_set_recv</a> (struct axis2_transport_in_desc *transport_in, const <a class="el" href="structaxutil__env.html">axutil_env_t</a> *env, struct <a class="el" href="structaxis2__transport__receiver.html">axis2_transport_receiver</a> *recv)</td></tr>

<tr><td class="memItemLeft" nowrap align="right" valign="top">AXIS2_EXTERN struct <br>
axis2_phase *&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__axis2__transport__in__desc.html#g49f9ae8aed490c7d9e23ace6ffea2570">axis2_transport_in_desc_get_in_phase</a> (const <a class="el" href="group__axis2__transport__in__desc.html#g9185c8c5307454b74f49523666f7bda6">axis2_transport_in_desc_t</a> *transport_in, const <a class="el" href="structaxutil__env.html">axutil_env_t</a> *env)</td></tr>

<tr><td class="memItemLeft" nowrap align="right" valign="top">AXIS2_EXTERN <br>
axis2_status_t&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__axis2__transport__in__desc.html#gd86f037c003fa111e619a7e9ae5474ea">axis2_transport_in_desc_set_in_phase</a> (struct axis2_transport_in_desc *transport_in, const <a class="el" href="structaxutil__env.html">axutil_env_t</a> *env, struct axis2_phase *in_phase)</td></tr>

<tr><td class="memItemLeft" nowrap align="right" valign="top">AXIS2_EXTERN struct <br>
axis2_phase *&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__axis2__transport__in__desc.html#g7f97aa29114ec9cc9d8002a579f8a235">axis2_transport_in_desc_get_fault_phase</a> (const <a class="el" href="group__axis2__transport__in__desc.html#g9185c8c5307454b74f49523666f7bda6">axis2_transport_in_desc_t</a> *transport_in, const <a class="el" href="structaxutil__env.html">axutil_env_t</a> *env)</td></tr>

<tr><td class="memItemLeft" nowrap align="right" valign="top">AXIS2_EXTERN <br>
axis2_status_t&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__axis2__transport__in__desc.html#gdf835498b897a9987af59160c09d10e7">axis2_transport_in_desc_set_fault_phase</a> (struct axis2_transport_in_desc *transport_in, const <a class="el" href="structaxutil__env.html">axutil_env_t</a> *env, struct axis2_phase *fault_phase)</td></tr>

<tr><td class="memItemLeft" nowrap align="right" valign="top">AXIS2_EXTERN <br>
axis2_status_t&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__axis2__transport__in__desc.html#g23edaa772c9490e9f9a42c62ff501087">axis2_transport_in_desc_add_param</a> (<a class="el" href="group__axis2__transport__in__desc.html#g9185c8c5307454b74f49523666f7bda6">axis2_transport_in_desc_t</a> *transport_in_desc, const <a class="el" href="structaxutil__env.html">axutil_env_t</a> *env, axutil_param_t *param)</td></tr>

<tr><td class="memItemLeft" nowrap align="right" valign="top">AXIS2_EXTERN <br>
axutil_param_t *&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__axis2__transport__in__desc.html#g1985a26ee0e62392581b1a0092afae5f">axis2_transport_in_desc_get_param</a> (const <a class="el" href="group__axis2__transport__in__desc.html#g9185c8c5307454b74f49523666f7bda6">axis2_transport_in_desc_t</a> *transport_in_desc, const <a class="el" href="structaxutil__env.html">axutil_env_t</a> *env, const axis2_char_t *param_name)</td></tr>

<tr><td class="memItemLeft" nowrap align="right" valign="top">AXIS2_EXTERN axis2_bool_t&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__axis2__transport__in__desc.html#g4554acd6e4b3179b241a5ae1bc187895">axis2_transport_in_desc_is_param_locked</a> (<a class="el" href="group__axis2__transport__in__desc.html#g9185c8c5307454b74f49523666f7bda6">axis2_transport_in_desc_t</a> *transport_in_desc, const <a class="el" href="structaxutil__env.html">axutil_env_t</a> *env, const axis2_char_t *param_name)</td></tr>

<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="g0ed74fae154568678bd61a80568c5130"></a><!-- doxytag: member="axis2_transport_in_desc::axis2_transport_in_desc_param_container" ref="g0ed74fae154568678bd61a80568c5130" args="(const axis2_transport_in_desc_t *transport_in_desc, const axutil_env_t *env)" -->
AXIS2_EXTERN <br>
axutil_param_container_t *&nbsp;</td><td class="memItemRight" valign="bottom"><b>axis2_transport_in_desc_param_container</b> (const <a class="el" href="group__axis2__transport__in__desc.html#g9185c8c5307454b74f49523666f7bda6">axis2_transport_in_desc_t</a> *transport_in_desc, const <a class="el" href="structaxutil__env.html">axutil_env_t</a> *env)</td></tr>

<tr><td class="memItemLeft" nowrap align="right" valign="top">AXIS2_EXTERN <br>
<a class="el" href="group__axis2__transport__in__desc.html#g9185c8c5307454b74f49523666f7bda6">axis2_transport_in_desc_t</a> *&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__axis2__transport__in__desc.html#g89b3450ffcd518c2a46edea5878cb917">axis2_transport_in_desc_create</a> (const <a class="el" href="structaxutil__env.html">axutil_env_t</a> *env, const AXIS2_TRANSPORT_ENUMS trans_enum)</td></tr>

</table>
<hr><a name="_details"></a><h2>Detailed Description</h2>
transport in description represents a transport receiver configured in Axis2 configuration. There can be multiple transport receivers configured in axis2.xml file and each of them will be represented with a transport in description instance. deployment engine takes care of creating and instantiating transport in descriptions. transport in description encapsulates flows related to the transport in and also holds a reference to related transport receiver. <hr><h2>Typedef Documentation</h2>
<a class="anchor" name="g9185c8c5307454b74f49523666f7bda6"></a><!-- doxytag: member="axis2_transport_in_desc.h::axis2_transport_in_desc_t" ref="g9185c8c5307454b74f49523666f7bda6" args="" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">typedef struct axis2_transport_in_desc <a class="el" href="group__axis2__transport__in__desc.html#g9185c8c5307454b74f49523666f7bda6">axis2_transport_in_desc_t</a>          </td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
Type name for struct axis2_transport_in_desc 
</div>
</div><p>
<hr><h2>Function Documentation</h2>
<a class="anchor" name="g23edaa772c9490e9f9a42c62ff501087"></a><!-- doxytag: member="axis2_transport_in_desc.h::axis2_transport_in_desc_add_param" ref="g23edaa772c9490e9f9a42c62ff501087" args="(axis2_transport_in_desc_t *transport_in_desc, const axutil_env_t *env, axutil_param_t *param)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">AXIS2_EXTERN axis2_status_t axis2_transport_in_desc_add_param           </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="group__axis2__transport__in__desc.html#g9185c8c5307454b74f49523666f7bda6">axis2_transport_in_desc_t</a> *&nbsp;</td>
          <td class="paramname"> <em>transport_in_desc</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const <a class="el" href="structaxutil__env.html">axutil_env_t</a> *&nbsp;</td>
          <td class="paramname"> <em>env</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">axutil_param_t *&nbsp;</td>
          <td class="paramname"> <em>param</em></td><td>&nbsp;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td><td width="100%"></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
Adds given parameter. <dl compact><dt><b>Parameters:</b></dt><dd>
  <table border="0" cellspacing="2" cellpadding="0">
    <tr><td valign="top"></td><td valign="top"><em>transport_in_desc</em>&nbsp;</td><td>pointer to transport in description struct </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>env</em>&nbsp;</td><td>pointer to environment struct </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>param</em>&nbsp;</td><td>pointer to parameter, transport in description assumes ownership of parameter </td></tr>
  </table>
</dl>
<dl class="return" compact><dt><b>Returns:</b></dt><dd>AXIS2_SUCCESS on success, else AXIS2_FAILURE </dd></dl>

</div>
</div><p>
<a class="anchor" name="g89b3450ffcd518c2a46edea5878cb917"></a><!-- doxytag: member="axis2_transport_in_desc.h::axis2_transport_in_desc_create" ref="g89b3450ffcd518c2a46edea5878cb917" args="(const axutil_env_t *env, const AXIS2_TRANSPORT_ENUMS trans_enum)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">AXIS2_EXTERN <a class="el" href="group__axis2__transport__in__desc.html#g9185c8c5307454b74f49523666f7bda6">axis2_transport_in_desc_t</a>* axis2_transport_in_desc_create           </td>
          <td>(</td>
          <td class="paramtype">const <a class="el" href="structaxutil__env.html">axutil_env_t</a> *&nbsp;</td>
          <td class="paramname"> <em>env</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const AXIS2_TRANSPORT_ENUMS&nbsp;</td>
          <td class="paramname"> <em>trans_enum</em></td><td>&nbsp;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td><td width="100%"></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
Creates transport in description with given transport enum. <dl compact><dt><b>Parameters:</b></dt><dd>
  <table border="0" cellspacing="2" cellpadding="0">
    <tr><td valign="top"></td><td valign="top"><em>env</em>&nbsp;</td><td>pointer to environment struct </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>trans_enum</em>&nbsp;</td><td>transport enum </td></tr>
  </table>
</dl>
<dl class="return" compact><dt><b>Returns:</b></dt><dd>pointer to newly created phase holder </dd></dl>

</div>
</div><p>
<a class="anchor" name="g21d5acc0496701bb3a3d3c6e12f8a45a"></a><!-- doxytag: member="axis2_transport_in_desc.h::axis2_transport_in_desc_free" ref="g21d5acc0496701bb3a3d3c6e12f8a45a" args="(axis2_transport_in_desc_t *transport_in_desc, const axutil_env_t *env)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">AXIS2_EXTERN void axis2_transport_in_desc_free           </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="group__axis2__transport__in__desc.html#g9185c8c5307454b74f49523666f7bda6">axis2_transport_in_desc_t</a> *&nbsp;</td>
          <td class="paramname"> <em>transport_in_desc</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const <a class="el" href="structaxutil__env.html">axutil_env_t</a> *&nbsp;</td>
          <td class="paramname"> <em>env</em></td><td>&nbsp;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td><td width="100%"></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
Frees transport in description. <dl compact><dt><b>Parameters:</b></dt><dd>
  <table border="0" cellspacing="2" cellpadding="0">
    <tr><td valign="top"></td><td valign="top"><em>transport_in_desc</em>&nbsp;</td><td>pointer to transport in description struct </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>env</em>&nbsp;</td><td>pointer to environment struct </td></tr>
  </table>
</dl>
<dl class="return" compact><dt><b>Returns:</b></dt><dd>void </dd></dl>

</div>
</div><p>
<a class="anchor" name="gfd336f266ce3e3cde1ef38b475e19dac"></a><!-- doxytag: member="axis2_transport_in_desc.h::axis2_transport_in_desc_free_void_arg" ref="gfd336f266ce3e3cde1ef38b475e19dac" args="(void *transport_in, const axutil_env_t *env)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">AXIS2_EXTERN void axis2_transport_in_desc_free_void_arg           </td>
          <td>(</td>
          <td class="paramtype">void *&nbsp;</td>
          <td class="paramname"> <em>transport_in</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const <a class="el" href="structaxutil__env.html">axutil_env_t</a> *&nbsp;</td>
          <td class="paramname"> <em>env</em></td><td>&nbsp;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td><td width="100%"></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
Frees transport in description given as a void parameter. <dl compact><dt><b>Parameters:</b></dt><dd>
  <table border="0" cellspacing="2" cellpadding="0">
    <tr><td valign="top"></td><td valign="top"><em>transport_in</em>&nbsp;</td><td>pointer to transport in description as a void pointer </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>env</em>&nbsp;</td><td>pointer to environment struct </td></tr>
  </table>
</dl>
<dl class="return" compact><dt><b>Returns:</b></dt><dd>void </dd></dl>

</div>
</div><p>
<a class="anchor" name="g6ec4b9bf77f2828b7461de54bb7655ce"></a><!-- doxytag: member="axis2_transport_in_desc.h::axis2_transport_in_desc_get_enum" ref="g6ec4b9bf77f2828b7461de54bb7655ce" args="(const axis2_transport_in_desc_t *transport_in, const axutil_env_t *env)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">AXIS2_EXTERN AXIS2_TRANSPORT_ENUMS axis2_transport_in_desc_get_enum           </td>
          <td>(</td>
          <td class="paramtype">const <a class="el" href="group__axis2__transport__in__desc.html#g9185c8c5307454b74f49523666f7bda6">axis2_transport_in_desc_t</a> *&nbsp;</td>
          <td class="paramname"> <em>transport_in</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const <a class="el" href="structaxutil__env.html">axutil_env_t</a> *&nbsp;</td>
          <td class="paramname"> <em>env</em></td><td>&nbsp;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td><td width="100%"></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
Gets transport enum. <dl compact><dt><b>Parameters:</b></dt><dd>
  <table border="0" cellspacing="2" cellpadding="0">
    <tr><td valign="top"></td><td valign="top"><em>transport_in</em>&nbsp;</td><td>pointer to transport in description struct </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>env</em>&nbsp;</td><td>pointer to environment struct </td></tr>
  </table>
</dl>
<dl class="return" compact><dt><b>Returns:</b></dt><dd>transport enum </dd></dl>

</div>
</div><p>
<a class="anchor" name="g7eefabf8404784204c46c7d4ff639211"></a><!-- doxytag: member="axis2_transport_in_desc.h::axis2_transport_in_desc_get_fault_in_flow" ref="g7eefabf8404784204c46c7d4ff639211" args="(const axis2_transport_in_desc_t *transport_in, const axutil_env_t *env)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">AXIS2_EXTERN struct axis2_flow* axis2_transport_in_desc_get_fault_in_flow           </td>
          <td>(</td>
          <td class="paramtype">const <a class="el" href="group__axis2__transport__in__desc.html#g9185c8c5307454b74f49523666f7bda6">axis2_transport_in_desc_t</a> *&nbsp;</td>
          <td class="paramname"> <em>transport_in</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const <a class="el" href="structaxutil__env.html">axutil_env_t</a> *&nbsp;</td>
          <td class="paramname"> <em>env</em></td><td>&nbsp;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td><td width="100%"><code> [read]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
Gets fault in flow. Fault in flow represents the list of phases invoked along the receive path if a fault happens. <dl compact><dt><b>Parameters:</b></dt><dd>
  <table border="0" cellspacing="2" cellpadding="0">
    <tr><td valign="top"></td><td valign="top"><em>transport_in</em>&nbsp;</td><td>pointer to transport in description struct </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>env</em>&nbsp;</td><td>pointer to environment struct </td></tr>
  </table>
</dl>
<dl class="return" compact><dt><b>Returns:</b></dt><dd>pointer to flow representing fault in flow, returns a reference, not a cloned copy </dd></dl>

</div>
</div><p>
<a class="anchor" name="g7f97aa29114ec9cc9d8002a579f8a235"></a><!-- doxytag: member="axis2_transport_in_desc.h::axis2_transport_in_desc_get_fault_phase" ref="g7f97aa29114ec9cc9d8002a579f8a235" args="(const axis2_transport_in_desc_t *transport_in, const axutil_env_t *env)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">AXIS2_EXTERN struct axis2_phase* axis2_transport_in_desc_get_fault_phase           </td>
          <td>(</td>
          <td class="paramtype">const <a class="el" href="group__axis2__transport__in__desc.html#g9185c8c5307454b74f49523666f7bda6">axis2_transport_in_desc_t</a> *&nbsp;</td>
          <td class="paramname"> <em>transport_in</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const <a class="el" href="structaxutil__env.html">axutil_env_t</a> *&nbsp;</td>
          <td class="paramname"> <em>env</em></td><td>&nbsp;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td><td width="100%"><code> [read]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
Gets the transport fault phase associated with transport in description. <dl compact><dt><b>Parameters:</b></dt><dd>
  <table border="0" cellspacing="2" cellpadding="0">
    <tr><td valign="top"></td><td valign="top"><em>transport_in</em>&nbsp;</td><td>pointer to transport in description struct </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>env</em>&nbsp;</td><td>pointer to environment struct </td></tr>
  </table>
</dl>
<dl class="return" compact><dt><b>Returns:</b></dt><dd>pointer to phase representing fault phase </dd></dl>

</div>
</div><p>
<a class="anchor" name="g8f29949d324d08e6c759ccf650ccab29"></a><!-- doxytag: member="axis2_transport_in_desc.h::axis2_transport_in_desc_get_in_flow" ref="g8f29949d324d08e6c759ccf650ccab29" args="(const axis2_transport_in_desc_t *transport_in, const axutil_env_t *env)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">AXIS2_EXTERN struct axis2_flow* axis2_transport_in_desc_get_in_flow           </td>
          <td>(</td>
          <td class="paramtype">const <a class="el" href="group__axis2__transport__in__desc.html#g9185c8c5307454b74f49523666f7bda6">axis2_transport_in_desc_t</a> *&nbsp;</td>
          <td class="paramname"> <em>transport_in</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const <a class="el" href="structaxutil__env.html">axutil_env_t</a> *&nbsp;</td>
          <td class="paramname"> <em>env</em></td><td>&nbsp;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td><td width="100%"><code> [read]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
Gets in flow. In flow represents the list of phases invoked along the receive path. <dl compact><dt><b>Parameters:</b></dt><dd>
  <table border="0" cellspacing="2" cellpadding="0">
    <tr><td valign="top"></td><td valign="top"><em>transport_in</em>&nbsp;</td><td>pointer to transport in description struct </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>env</em>&nbsp;</td><td>pointer to environment struct </td></tr>
  </table>
</dl>
<dl class="return" compact><dt><b>Returns:</b></dt><dd>pointer to flow representing in flow, returns a reference, not a cloned copy </dd></dl>

</div>
</div><p>
<a class="anchor" name="g49f9ae8aed490c7d9e23ace6ffea2570"></a><!-- doxytag: member="axis2_transport_in_desc.h::axis2_transport_in_desc_get_in_phase" ref="g49f9ae8aed490c7d9e23ace6ffea2570" args="(const axis2_transport_in_desc_t *transport_in, const axutil_env_t *env)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">AXIS2_EXTERN struct axis2_phase* axis2_transport_in_desc_get_in_phase           </td>
          <td>(</td>
          <td class="paramtype">const <a class="el" href="group__axis2__transport__in__desc.html#g9185c8c5307454b74f49523666f7bda6">axis2_transport_in_desc_t</a> *&nbsp;</td>
          <td class="paramname"> <em>transport_in</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const <a class="el" href="structaxutil__env.html">axutil_env_t</a> *&nbsp;</td>
          <td class="paramname"> <em>env</em></td><td>&nbsp;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td><td width="100%"><code> [read]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
Gets the transport in phase associated with transport in description. <dl compact><dt><b>Parameters:</b></dt><dd>
  <table border="0" cellspacing="2" cellpadding="0">
    <tr><td valign="top"></td><td valign="top"><em>transport_in</em>&nbsp;</td><td>pointer to transport in description struct </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>env</em>&nbsp;</td><td>pointer to environment struct </td></tr>
  </table>
</dl>
<dl class="return" compact><dt><b>Returns:</b></dt><dd>transport in phase, returns a reference, not a cloned copy </dd></dl>

</div>
</div><p>
<a class="anchor" name="g1985a26ee0e62392581b1a0092afae5f"></a><!-- doxytag: member="axis2_transport_in_desc.h::axis2_transport_in_desc_get_param" ref="g1985a26ee0e62392581b1a0092afae5f" args="(const axis2_transport_in_desc_t *transport_in_desc, const axutil_env_t *env, const axis2_char_t *param_name)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">AXIS2_EXTERN axutil_param_t* axis2_transport_in_desc_get_param           </td>
          <td>(</td>
          <td class="paramtype">const <a class="el" href="group__axis2__transport__in__desc.html#g9185c8c5307454b74f49523666f7bda6">axis2_transport_in_desc_t</a> *&nbsp;</td>
          <td class="paramname"> <em>transport_in_desc</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const <a class="el" href="structaxutil__env.html">axutil_env_t</a> *&nbsp;</td>
          <td class="paramname"> <em>env</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const axis2_char_t *&nbsp;</td>
          <td class="paramname"> <em>param_name</em></td><td>&nbsp;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td><td width="100%"></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
Gets named parameter. <dl compact><dt><b>Parameters:</b></dt><dd>
  <table border="0" cellspacing="2" cellpadding="0">
    <tr><td valign="top"></td><td valign="top"><em>transport_in_desc</em>&nbsp;</td><td>pointer to transport in description struct </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>env</em>&nbsp;</td><td>pointer to environment struct </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>param_name</em>&nbsp;</td><td>parameter name string </td></tr>
  </table>
</dl>
<dl class="return" compact><dt><b>Returns:</b></dt><dd>pointer to named parameter if it exists, else NULL. Returns a reference, not a cloned copy </dd></dl>

</div>
</div><p>
<a class="anchor" name="gf86d50b87ddbb9adfb9856526a7a0cdf"></a><!-- doxytag: member="axis2_transport_in_desc.h::axis2_transport_in_desc_get_recv" ref="gf86d50b87ddbb9adfb9856526a7a0cdf" args="(const axis2_transport_in_desc_t *transport_in, const axutil_env_t *env)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">AXIS2_EXTERN struct <a class="el" href="structaxis2__transport__receiver.html">axis2_transport_receiver</a>* axis2_transport_in_desc_get_recv           </td>
          <td>(</td>
          <td class="paramtype">const <a class="el" href="group__axis2__transport__in__desc.html#g9185c8c5307454b74f49523666f7bda6">axis2_transport_in_desc_t</a> *&nbsp;</td>
          <td class="paramname"> <em>transport_in</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const <a class="el" href="structaxutil__env.html">axutil_env_t</a> *&nbsp;</td>
          <td class="paramname"> <em>env</em></td><td>&nbsp;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td><td width="100%"><code> [read]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
Gets transport receiver associated with the transport in description. <dl compact><dt><b>Parameters:</b></dt><dd>
  <table border="0" cellspacing="2" cellpadding="0">
    <tr><td valign="top"></td><td valign="top"><em>transport_in</em>&nbsp;</td><td>pointer to transport in description struct </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>env</em>&nbsp;</td><td>pointer to environment struct </td></tr>
  </table>
</dl>
<dl class="return" compact><dt><b>Returns:</b></dt><dd>pointer to transport receiver, returns a reference, not a cloned copy </dd></dl>

</div>
</div><p>
<a class="anchor" name="g4554acd6e4b3179b241a5ae1bc187895"></a><!-- doxytag: member="axis2_transport_in_desc.h::axis2_transport_in_desc_is_param_locked" ref="g4554acd6e4b3179b241a5ae1bc187895" args="(axis2_transport_in_desc_t *transport_in_desc, const axutil_env_t *env, const axis2_char_t *param_name)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">AXIS2_EXTERN axis2_bool_t axis2_transport_in_desc_is_param_locked           </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="group__axis2__transport__in__desc.html#g9185c8c5307454b74f49523666f7bda6">axis2_transport_in_desc_t</a> *&nbsp;</td>
          <td class="paramname"> <em>transport_in_desc</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const <a class="el" href="structaxutil__env.html">axutil_env_t</a> *&nbsp;</td>
          <td class="paramname"> <em>env</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const axis2_char_t *&nbsp;</td>
          <td class="paramname"> <em>param_name</em></td><td>&nbsp;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td><td width="100%"></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
Checks if the named parameter is locked. <dl compact><dt><b>Parameters:</b></dt><dd>
  <table border="0" cellspacing="2" cellpadding="0">
    <tr><td valign="top"></td><td valign="top"><em>transport_in_desc</em>&nbsp;</td><td>pointer to transport in description struct </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>env</em>&nbsp;</td><td>pointer to environment struct </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>param_name</em>&nbsp;</td><td>parameter name string </td></tr>
  </table>
</dl>
<dl class="return" compact><dt><b>Returns:</b></dt><dd>AXIS2_TRUE if named parameter is locked, else AXIS2_FALSE </dd></dl>

</div>
</div><p>
<a class="anchor" name="g4c11258fcb647146f412d89ccdbd069d"></a><!-- doxytag: member="axis2_transport_in_desc.h::axis2_transport_in_desc_set_enum" ref="g4c11258fcb647146f412d89ccdbd069d" args="(struct axis2_transport_in_desc *transport_in, const axutil_env_t *env, const AXIS2_TRANSPORT_ENUMS trans_enum)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">AXIS2_EXTERN axis2_status_t axis2_transport_in_desc_set_enum           </td>
          <td>(</td>
          <td class="paramtype">struct axis2_transport_in_desc *&nbsp;</td>
          <td class="paramname"> <em>transport_in</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const <a class="el" href="structaxutil__env.html">axutil_env_t</a> *&nbsp;</td>
          <td class="paramname"> <em>env</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const AXIS2_TRANSPORT_ENUMS&nbsp;</td>
          <td class="paramname"> <em>trans_enum</em></td><td>&nbsp;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td><td width="100%"></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
Sets transport enum. <dl compact><dt><b>Parameters:</b></dt><dd>
  <table border="0" cellspacing="2" cellpadding="0">
    <tr><td valign="top"></td><td valign="top"><em>transport_in</em>&nbsp;</td><td>pointer to transport in description struct </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>env</em>&nbsp;</td><td>pointer to environment struct </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>trans_enum</em>&nbsp;</td><td>transport enum </td></tr>
  </table>
</dl>
<dl class="return" compact><dt><b>Returns:</b></dt><dd>AXIS2_SUCCESS on success, else AXIS2_FAILURE </dd></dl>

</div>
</div><p>
<a class="anchor" name="g4f702a1a39ff523cf65600fc54046643"></a><!-- doxytag: member="axis2_transport_in_desc.h::axis2_transport_in_desc_set_fault_in_flow" ref="g4f702a1a39ff523cf65600fc54046643" args="(struct axis2_transport_in_desc *transport_in, const axutil_env_t *env, struct axis2_flow *fault_in_flow)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">AXIS2_EXTERN axis2_status_t axis2_transport_in_desc_set_fault_in_flow           </td>
          <td>(</td>
          <td class="paramtype">struct axis2_transport_in_desc *&nbsp;</td>
          <td class="paramname"> <em>transport_in</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const <a class="el" href="structaxutil__env.html">axutil_env_t</a> *&nbsp;</td>
          <td class="paramname"> <em>env</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">struct axis2_flow *&nbsp;</td>
          <td class="paramname"> <em>fault_in_flow</em></td><td>&nbsp;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td><td width="100%"></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
Sets fault in flow. Fault in flow represents the list of phases invoked along the receive path if a fault happens. <dl compact><dt><b>Parameters:</b></dt><dd>
  <table border="0" cellspacing="2" cellpadding="0">
    <tr><td valign="top"></td><td valign="top"><em>transport_in</em>&nbsp;</td><td>pointer to transport in description struct </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>env</em>&nbsp;</td><td>pointer to environment struct </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>fault_in_flow</em>&nbsp;</td><td>pointer to flow representing fault in flow, transport in description assumes the ownership of the flow </td></tr>
  </table>
</dl>
<dl class="return" compact><dt><b>Returns:</b></dt><dd>AXIS2_SUCCESS on success, else AXIS2_FAILURE </dd></dl>

</div>
</div><p>
<a class="anchor" name="gdf835498b897a9987af59160c09d10e7"></a><!-- doxytag: member="axis2_transport_in_desc.h::axis2_transport_in_desc_set_fault_phase" ref="gdf835498b897a9987af59160c09d10e7" args="(struct axis2_transport_in_desc *transport_in, const axutil_env_t *env, struct axis2_phase *fault_phase)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">AXIS2_EXTERN axis2_status_t axis2_transport_in_desc_set_fault_phase           </td>
          <td>(</td>
          <td class="paramtype">struct axis2_transport_in_desc *&nbsp;</td>
          <td class="paramname"> <em>transport_in</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const <a class="el" href="structaxutil__env.html">axutil_env_t</a> *&nbsp;</td>
          <td class="paramname"> <em>env</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">struct axis2_phase *&nbsp;</td>
          <td class="paramname"> <em>fault_phase</em></td><td>&nbsp;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td><td width="100%"></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
Sets the transport fault phase associated with transport in description. <dl compact><dt><b>Parameters:</b></dt><dd>
  <table border="0" cellspacing="2" cellpadding="0">
    <tr><td valign="top"></td><td valign="top"><em>transport_in</em>&nbsp;</td><td>pointer to transport in description struct </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>env</em>&nbsp;</td><td>pointer to environment struct </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>fault_phase</em>&nbsp;</td><td>pointer to fault phase </td></tr>
  </table>
</dl>
<dl class="return" compact><dt><b>Returns:</b></dt><dd>AXIS2_SUCCESS on success, else AXIS2_FAILURE </dd></dl>

</div>
</div><p>
<a class="anchor" name="ga0d8c3fa889518560959a8b19900e31b"></a><!-- doxytag: member="axis2_transport_in_desc.h::axis2_transport_in_desc_set_in_flow" ref="ga0d8c3fa889518560959a8b19900e31b" args="(struct axis2_transport_in_desc *transport_in, const axutil_env_t *env, struct axis2_flow *in_flow)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">AXIS2_EXTERN axis2_status_t axis2_transport_in_desc_set_in_flow           </td>
          <td>(</td>
          <td class="paramtype">struct axis2_transport_in_desc *&nbsp;</td>
          <td class="paramname"> <em>transport_in</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const <a class="el" href="structaxutil__env.html">axutil_env_t</a> *&nbsp;</td>
          <td class="paramname"> <em>env</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">struct axis2_flow *&nbsp;</td>
          <td class="paramname"> <em>in_flow</em></td><td>&nbsp;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td><td width="100%"></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
Sets in flow. In flow represents the list of phases invoked along the receive path. <dl compact><dt><b>Parameters:</b></dt><dd>
  <table border="0" cellspacing="2" cellpadding="0">
    <tr><td valign="top"></td><td valign="top"><em>transport_in</em>&nbsp;</td><td>pointer to transport in description struct </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>env</em>&nbsp;</td><td>pointer to environment struct </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>in_flow</em>&nbsp;</td><td>pointer to in flow representing in flow, transport in description assumes ownership of the flow </td></tr>
  </table>
</dl>
<dl class="return" compact><dt><b>Returns:</b></dt><dd>AXIS2_SUCCESS on success, else AXIS2_FAILURE </dd></dl>

</div>
</div><p>
<a class="anchor" name="gd86f037c003fa111e619a7e9ae5474ea"></a><!-- doxytag: member="axis2_transport_in_desc.h::axis2_transport_in_desc_set_in_phase" ref="gd86f037c003fa111e619a7e9ae5474ea" args="(struct axis2_transport_in_desc *transport_in, const axutil_env_t *env, struct axis2_phase *in_phase)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">AXIS2_EXTERN axis2_status_t axis2_transport_in_desc_set_in_phase           </td>
          <td>(</td>
          <td class="paramtype">struct axis2_transport_in_desc *&nbsp;</td>
          <td class="paramname"> <em>transport_in</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const <a class="el" href="structaxutil__env.html">axutil_env_t</a> *&nbsp;</td>
          <td class="paramname"> <em>env</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">struct axis2_phase *&nbsp;</td>
          <td class="paramname"> <em>in_phase</em></td><td>&nbsp;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td><td width="100%"></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
Sets the transport in phase associated with transport in description. <dl compact><dt><b>Parameters:</b></dt><dd>
  <table border="0" cellspacing="2" cellpadding="0">
    <tr><td valign="top"></td><td valign="top"><em>transport_in</em>&nbsp;</td><td>pointer to transport in description struct </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>env</em>&nbsp;</td><td>pointer to environment struct </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>in_phase</em>&nbsp;</td><td>pointer to phase representing transport in phase, transport in description assumes ownership of phase </td></tr>
  </table>
</dl>
<dl class="return" compact><dt><b>Returns:</b></dt><dd>AXIS2_SUCCESS on success, else AXIS2_FAILURE </dd></dl>

</div>
</div><p>
<a class="anchor" name="g1bc9262c72e46d7d485f126f7c054d48"></a><!-- doxytag: member="axis2_transport_in_desc.h::axis2_transport_in_desc_set_recv" ref="g1bc9262c72e46d7d485f126f7c054d48" args="(struct axis2_transport_in_desc *transport_in, const axutil_env_t *env, struct axis2_transport_receiver *recv)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">AXIS2_EXTERN axis2_status_t axis2_transport_in_desc_set_recv           </td>
          <td>(</td>
          <td class="paramtype">struct axis2_transport_in_desc *&nbsp;</td>
          <td class="paramname"> <em>transport_in</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const <a class="el" href="structaxutil__env.html">axutil_env_t</a> *&nbsp;</td>
          <td class="paramname"> <em>env</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">struct <a class="el" href="structaxis2__transport__receiver.html">axis2_transport_receiver</a> *&nbsp;</td>
          <td class="paramname"> <em>recv</em></td><td>&nbsp;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td><td width="100%"></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
Sets transport receiver associated with the transport in description. <dl compact><dt><b>Parameters:</b></dt><dd>
  <table border="0" cellspacing="2" cellpadding="0">
    <tr><td valign="top"></td><td valign="top"><em>transport_in</em>&nbsp;</td><td>pointer to transport in description struct </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>env</em>&nbsp;</td><td>pointer to environment struct </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>recv</em>&nbsp;</td><td>pointer to transport receiver, transport in description assumes ownership of the receiver </td></tr>
  </table>
</dl>
<dl class="return" compact><dt><b>Returns:</b></dt><dd>AXIS2_SUCCESS on success, else AXIS2_FAILURE </dd></dl>

</div>
</div><p>
<hr size="1"><address style="text-align: right;"><small>Generated on Fri Apr 17 11:49:45 2009 for Axis2/C by&nbsp;
<a href="http://www.doxygen.org/index.html">
<img src="doxygen.png" alt="doxygen" align="middle" border="0"></a> 1.5.3 </small></address>
</body>
</html>


<|start_filename|>xdocs/api/html/guththila__xml__writer_8h-source.html<|end_filename|>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html><head><meta http-equiv="Content-Type" content="text/html;charset=UTF-8">
<title>Axis2/C: guththila_xml_writer.h Source File</title>
<link href="doxygen.css" rel="stylesheet" type="text/css">
<link href="tabs.css" rel="stylesheet" type="text/css">
</head><body>
<!-- Generated by Doxygen 1.5.3 -->
<div class="tabs">
  <ul>
    <li><a href="index.html"><span>Main&nbsp;Page</span></a></li>
    <li><a href="modules.html"><span>Modules</span></a></li>
    <li><a href="annotated.html"><span>Classes</span></a></li>
    <li class="current"><a href="files.html"><span>Files</span></a></li>
    <li><a href="dirs.html"><span>Directories</span></a></li>
    <li><a href="pages.html"><span>Related&nbsp;Pages</span></a></li>
    <li><a href="examples.html"><span>Examples</span></a></li>
    <li>
      <form action="search.php" method="get">
        <table cellspacing="0" cellpadding="0" border="0">
          <tr>
            <td><label>&nbsp;<u>S</u>earch&nbsp;for&nbsp;</label></td>
            <td><input type="text" name="query" value="" size="20" accesskey="s"/></td>
          </tr>
        </table>
      </form>
    </li>
  </ul>
</div>
<div class="nav">
<a class="el" href="dir_f60961de8e5edc3b2658ef023e959e45.html">deploy</a>&nbsp;&raquo&nbsp;<a class="el" href="dir_6b4e91e54b7316b376882a6402adbf44.html">include</a>&nbsp;&raquo&nbsp;<a class="el" href="dir_df3a7695d5a9e696f30b948b566829e7.html">axis2-1.6.0</a></div>
<h1>guththila_xml_writer.h</h1><div class="fragment"><pre class="fragment"><a name="l00001"></a>00001 
<a name="l00002"></a>00002 <span class="comment">/*</span>
<a name="l00003"></a>00003 <span class="comment"> * Licensed to the Apache Software Foundation (ASF) under one or more</span>
<a name="l00004"></a>00004 <span class="comment"> * contributor license agreements.  See the NOTICE file distributed with</span>
<a name="l00005"></a>00005 <span class="comment"> * this work for additional information regarding copyright ownership.</span>
<a name="l00006"></a>00006 <span class="comment"> * The ASF licenses this file to You under the Apache License, Version 2.0</span>
<a name="l00007"></a>00007 <span class="comment"> * (the "License"); you may not use this file except in compliance with</span>
<a name="l00008"></a>00008 <span class="comment"> * the License.  You may obtain a copy of the License at</span>
<a name="l00009"></a>00009 <span class="comment"> *</span>
<a name="l00010"></a>00010 <span class="comment"> *      http://www.apache.org/licenses/LICENSE-2.0</span>
<a name="l00011"></a>00011 <span class="comment"> *</span>
<a name="l00012"></a>00012 <span class="comment"> * Unless required by applicable law or agreed to in writing, software</span>
<a name="l00013"></a>00013 <span class="comment"> * distributed under the License is distributed on an "AS IS" BASIS,</span>
<a name="l00014"></a>00014 <span class="comment"> * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.</span>
<a name="l00015"></a>00015 <span class="comment"> * See the License for the specific language governing permissions and</span>
<a name="l00016"></a>00016 <span class="comment"> * limitations under the License.</span>
<a name="l00017"></a>00017 <span class="comment"> */</span>
<a name="l00018"></a>00018 <span class="preprocessor">#ifndef GUTHTHILA_XML_WRITER_H</span>
<a name="l00019"></a>00019 <span class="preprocessor"></span><span class="preprocessor">#define GUTHTHILA_XML_WRITER_H</span>
<a name="l00020"></a>00020 <span class="preprocessor"></span>
<a name="l00021"></a>00021 <span class="preprocessor">#include &lt;guththila_token.h&gt;</span>
<a name="l00022"></a>00022 <span class="preprocessor">#include &lt;guththila_defines.h&gt;</span>
<a name="l00023"></a>00023 <span class="preprocessor">#include &lt;guththila_buffer.h&gt;</span>
<a name="l00024"></a>00024 <span class="preprocessor">#include &lt;guththila.h&gt;</span>
<a name="l00025"></a>00025 <span class="preprocessor">#include &lt;<a class="code" href="axutil__utils_8h.html">axutil_utils.h</a>&gt;</span>
<a name="l00026"></a>00026 
<a name="l00027"></a>00027 EXTERN_C_START()
<a name="l00028"></a>00028 <span class="preprocessor">#define GUTHTHILA_XML_WRITER_TOKEN</span>
<a name="l00029"></a>00029 <span class="preprocessor"></span>
<a name="l00030"></a>00030 <span class="comment">/*</span>
<a name="l00031"></a>00031 <span class="comment">Design notes:-</span>
<a name="l00032"></a>00032 <span class="comment">namesp member of guththila_xml_writer_s is populated with malloc created objects.</span>
<a name="l00033"></a>00033 <span class="comment">Providing a list for this seems expensive because most of the times only few</span>
<a name="l00034"></a>00034 <span class="comment">namespaces are present in a XML document.</span>
<a name="l00035"></a>00035 <span class="comment"></span>
<a name="l00036"></a>00036 <span class="comment">element member of guththila_xml_writer_s must be povided the list capablity. This</span>
<a name="l00037"></a>00037 <span class="comment">is particularly important in very deep XML documents.</span>
<a name="l00038"></a>00038 <span class="comment">*/</span>
<a name="l00039"></a>00039 <span class="keyword">typedef</span> <span class="keyword">enum</span> guththila_writer_type_s
<a name="l00040"></a>00040 {
<a name="l00041"></a>00041     GUTHTHILA_WRITER_FILE = 1,
<a name="l00042"></a>00042     GUTHTHILA_WRITER_MEMORY
<a name="l00043"></a>00043 } guththila_writer_type_t;
<a name="l00044"></a>00044 
<a name="l00045"></a>00045 <span class="keyword">typedef</span> <span class="keyword">struct </span>guththila_writer_s
<a name="l00046"></a>00046 {
<a name="l00047"></a>00047     <span class="keywordtype">short</span> type;
<a name="l00048"></a>00048     FILE *out_stream;
<a name="l00049"></a>00049     guththila_buffer_t *buffer;
<a name="l00050"></a>00050     <span class="keywordtype">int</span> next;
<a name="l00051"></a>00051 }
<a name="l00052"></a>00052 guththila_writer_t;
<a name="l00053"></a>00053 
<a name="l00054"></a>00054 <span class="keyword">typedef</span> <span class="keyword">enum</span> guththila_writer_status_s
<a name="l00055"></a>00055 {
<a name="l00056"></a>00056     <span class="comment">/*Started writing a non empty element */</span>
<a name="l00057"></a>00057     START = 1,
<a name="l00058"></a>00058     <span class="comment">/*Started writing a empty element */</span>
<a name="l00059"></a>00059     START_EMPTY,
<a name="l00060"></a>00060     <span class="comment">/*We are in a position to begin wrting an element */</span>
<a name="l00061"></a>00061     BEGINING
<a name="l00062"></a>00062 } guththila_writer_status_t;
<a name="l00063"></a>00063 
<a name="l00064"></a>00064 <span class="comment">/*Main structure which provides the writer capability*/</span>
<a name="l00065"></a>00065 <span class="keyword">typedef</span> <span class="keyword">struct </span>guththila_xml_writer_s
<a name="l00066"></a>00066 {
<a name="l00067"></a>00067     guththila_stack_t element;
<a name="l00068"></a>00068     guththila_stack_t namesp;
<a name="l00069"></a>00069     guththila_writer_t *writer;
<a name="l00070"></a>00070 <span class="preprocessor">#ifdef GUTHTHILA_XML_WRITER_TOKEN</span>
<a name="l00071"></a>00071 <span class="preprocessor"></span>    guththila_tok_list_t tok_list;
<a name="l00072"></a>00072 <span class="preprocessor">#endif</span>
<a name="l00073"></a>00073 <span class="preprocessor"></span>    <span class="comment">/* Type of this writer. Can be file writer or memory writer */</span>
<a name="l00074"></a>00074     guththila_writer_type_t type;
<a name="l00075"></a>00075 
<a name="l00076"></a>00076     FILE *out_stream;
<a name="l00077"></a>00077     guththila_buffer_t buffer;
<a name="l00078"></a>00078     guththila_writer_status_t status;
<a name="l00079"></a>00079     <span class="keywordtype">int</span> next;
<a name="l00080"></a>00080 } guththila_xml_writer_t;
<a name="l00081"></a>00081 
<a name="l00082"></a>00082 <span class="comment">/*TODO: we need to came up with common implementation of followng two structures in writer and reader*/</span>
<a name="l00083"></a>00083 
<a name="l00084"></a>00084 <span class="comment">/*</span>
<a name="l00085"></a>00085 <span class="comment">This is a private structure for keeping track of the elements. When we start to write an element this structure will be pop</span>
<a name="l00086"></a>00086 <span class="comment">*/</span>
<a name="l00087"></a>00087 <span class="keyword">typedef</span> <span class="keyword">struct </span>guththila_xml_writer_element_s
<a name="l00088"></a>00088 {
<a name="l00089"></a>00089 <span class="preprocessor">#ifdef GUTHTHILA_XML_WRITER_TOKEN</span>
<a name="l00090"></a>00090 <span class="preprocessor"></span>    guththila_token_t *prefix;
<a name="l00091"></a>00091     guththila_token_t *name;
<a name="l00092"></a>00092 <span class="preprocessor">#else</span>
<a name="l00093"></a>00093 <span class="preprocessor"></span>    guththila_char_t *prefix;
<a name="l00094"></a>00094     guththila_char_t *name;
<a name="l00095"></a>00095 <span class="preprocessor">#endif</span>
<a name="l00096"></a>00096 <span class="preprocessor"></span>    <span class="comment">/* contains the number of the stack which holds the namespaces</span>
<a name="l00097"></a>00097 <span class="comment">       for this element. When we close this element all the namespaces </span>
<a name="l00098"></a>00098 <span class="comment">       that are below this should also must be closed */</span>
<a name="l00099"></a>00099     <span class="keywordtype">int</span> name_sp_stack_no;
<a name="l00100"></a>00100 }
<a name="l00101"></a>00101 guththila_xml_writer_element_t;
<a name="l00102"></a>00102 
<a name="l00103"></a>00103 <span class="keyword">typedef</span> <span class="keyword">struct </span>guththila_xml_writer_namesp_s
<a name="l00104"></a>00104 {
<a name="l00105"></a>00105     <span class="comment">/* These are double pointers because a single element may contain multple</span>
<a name="l00106"></a>00106 <span class="comment">       namespace declarations */</span>
<a name="l00107"></a>00107 <span class="preprocessor">#ifdef GUTHTHILA_XML_WRITER_TOKEN</span>
<a name="l00108"></a>00108 <span class="preprocessor"></span>    guththila_token_t **name;
<a name="l00109"></a>00109     guththila_token_t **uri;
<a name="l00110"></a>00110 <span class="preprocessor">#else</span>
<a name="l00111"></a>00111 <span class="preprocessor"></span>    guththila_char_t **name;
<a name="l00112"></a>00112     guththila_char_t **uri;
<a name="l00113"></a>00113 <span class="preprocessor">#endif</span>
<a name="l00114"></a>00114 <span class="preprocessor"></span>    <span class="keywordtype">int</span> no;             <span class="comment">/*number of namespaces */</span>
<a name="l00115"></a>00115     <span class="keywordtype">int</span> size;
<a name="l00116"></a>00116 }
<a name="l00117"></a>00117 guththila_xml_writer_namesp_t;
<a name="l00118"></a>00118 
<a name="l00119"></a>00119 <span class="preprocessor">#define GUTHTHILA_XML_WRITER_NAMESP_DEF_SIZE 4</span>
<a name="l00120"></a>00120 <span class="preprocessor"></span>
<a name="l00121"></a>00121 <span class="comment">/*Writer functions*/</span>
<a name="l00122"></a>00122 
<a name="l00123"></a>00123 <span class="comment">/* </span>
<a name="l00124"></a>00124 <span class="comment"> * Create a writer which writes to a file.</span>
<a name="l00125"></a>00125 <span class="comment"> * @param file_name name of the file</span>
<a name="l00126"></a>00126 <span class="comment"> * @param env pointer to the environment</span>
<a name="l00127"></a>00127 <span class="comment"> */</span>
<a name="l00128"></a>00128 GUTHTHILA_EXPORT guththila_xml_writer_t *GUTHTHILA_CALL
<a name="l00129"></a>00129 guththila_create_xml_stream_writer(
<a name="l00130"></a>00130     <span class="keywordtype">char</span> *file_name,
<a name="l00131"></a>00131     <span class="keyword">const</span> <a class="code" href="structaxutil__env.html" title="Axis2 Environment struct.">axutil_env_t</a> * env);
<a name="l00132"></a>00132 
<a name="l00133"></a>00133 <span class="comment">/* </span>
<a name="l00134"></a>00134 <span class="comment"> * Create a writer which writes to a memory buffer.</span>
<a name="l00135"></a>00135 <span class="comment"> * @param env pointer to the environment</span>
<a name="l00136"></a>00136 <span class="comment"> */</span>
<a name="l00137"></a>00137 GUTHTHILA_EXPORT guththila_xml_writer_t *GUTHTHILA_CALL
<a name="l00138"></a>00138 guththila_create_xml_stream_writer_for_memory(
<a name="l00139"></a>00139     <span class="keyword">const</span> <a class="code" href="structaxutil__env.html" title="Axis2 Environment struct.">axutil_env_t</a> * env);
<a name="l00140"></a>00140 
<a name="l00141"></a>00141 <span class="comment">/* </span>
<a name="l00142"></a>00142 <span class="comment"> * Jus write what ever the content in the buffer. If the writer was in </span>
<a name="l00143"></a>00143 <span class="comment"> * a start of a element it will close it.</span>
<a name="l00144"></a>00144 <span class="comment"> * @param wr pointer to the writer</span>
<a name="l00145"></a>00145 <span class="comment"> * @param buff buffer containing the data</span>
<a name="l00146"></a>00146 <span class="comment"> * @param size size of the buffer</span>
<a name="l00147"></a>00147 <span class="comment"> * @param env pointer to the environment</span>
<a name="l00148"></a>00148 <span class="comment"> */</span>
<a name="l00149"></a>00149 GUTHTHILA_EXPORT <span class="keywordtype">int</span> GUTHTHILA_CALL guththila_write_to_buffer(
<a name="l00150"></a>00150     guththila_xml_writer_t * wr,
<a name="l00151"></a>00151     <span class="keywordtype">char</span> *buff,
<a name="l00152"></a>00152     <span class="keywordtype">int</span> size,
<a name="l00153"></a>00153     <span class="keyword">const</span> <a class="code" href="structaxutil__env.html" title="Axis2 Environment struct.">axutil_env_t</a> * env);
<a name="l00154"></a>00154 
<a name="l00155"></a>00155 <span class="comment">/*</span>
<a name="l00156"></a>00156 <span class="comment"> * Write the name space with the given prifix and namespace.</span>
<a name="l00157"></a>00157 <span class="comment"> * @param wr pointer to the writer</span>
<a name="l00158"></a>00158 <span class="comment"> * @param prefix prefix of the namespace</span>
<a name="l00159"></a>00159 <span class="comment"> * @param uri uri of the namespace</span>
<a name="l00160"></a>00160 <span class="comment"> * @param env pointer to the environment </span>
<a name="l00161"></a>00161 <span class="comment"> */</span>
<a name="l00162"></a>00162 GUTHTHILA_EXPORT <span class="keywordtype">int</span> GUTHTHILA_CALL guththila_write_namespace(
<a name="l00163"></a>00163     guththila_xml_writer_t * wr,
<a name="l00164"></a>00164     <span class="keywordtype">char</span> *prefix,
<a name="l00165"></a>00165     <span class="keywordtype">char</span> *uri,
<a name="l00166"></a>00166     <span class="keyword">const</span> <a class="code" href="structaxutil__env.html" title="Axis2 Environment struct.">axutil_env_t</a> * env);
<a name="l00167"></a>00167 
<a name="l00168"></a>00168 <span class="comment">/*</span>
<a name="l00169"></a>00169 <span class="comment"> * Write the name space with the given prifix and namespace.</span>
<a name="l00170"></a>00170 <span class="comment"> * @param wr pointer to the writer</span>
<a name="l00171"></a>00171 <span class="comment"> * @param prefix prefix of the namespace</span>
<a name="l00172"></a>00172 <span class="comment"> * @param uri uri of the namespace</span>
<a name="l00173"></a>00173 <span class="comment"> * @param local_name name of the attribute</span>
<a name="l00174"></a>00174 <span class="comment"> * @param value value of the attribute</span>
<a name="l00175"></a>00175 <span class="comment"> * @param env pointer to the environment </span>
<a name="l00176"></a>00176 <span class="comment"> */</span>
<a name="l00177"></a>00177 GUTHTHILA_EXPORT <span class="keywordtype">int</span> GUTHTHILA_CALL
<a name="l00178"></a>00178 guththila_do_write_attribute_with_prefix_and_namespace(
<a name="l00179"></a>00179     guththila_xml_writer_t * wr,
<a name="l00180"></a>00180     <span class="keywordtype">char</span> *prefix,
<a name="l00181"></a>00181     <span class="keywordtype">char</span> *uri,
<a name="l00182"></a>00182     <span class="keywordtype">char</span> *local_name,
<a name="l00183"></a>00183     <span class="keywordtype">char</span> *value,
<a name="l00184"></a>00184     <span class="keyword">const</span> <a class="code" href="structaxutil__env.html" title="Axis2 Environment struct.">axutil_env_t</a> * env);
<a name="l00185"></a>00185 
<a name="l00186"></a>00186 
<a name="l00187"></a>00187 <span class="comment">/*</span>
<a name="l00188"></a>00188 <span class="comment"> * Write the start document element with the xml version and encoding.</span>
<a name="l00189"></a>00189 <span class="comment"> * @param wr pointer to the writer</span>
<a name="l00190"></a>00190 <span class="comment"> * @param env pointer to the environment </span>
<a name="l00191"></a>00191 <span class="comment"> * @param encoding encoding of the XML.</span>
<a name="l00192"></a>00192 <span class="comment"> * @param version xml version</span>
<a name="l00193"></a>00193 <span class="comment"> */</span>
<a name="l00194"></a>00194 GUTHTHILA_EXPORT <span class="keywordtype">int</span> GUTHTHILA_CALL guththila_write_start_document(
<a name="l00195"></a>00195     guththila_xml_writer_t * wr,
<a name="l00196"></a>00196     <span class="keyword">const</span> <a class="code" href="structaxutil__env.html" title="Axis2 Environment struct.">axutil_env_t</a> * env,
<a name="l00197"></a>00197     <span class="keywordtype">char</span> *encoding,
<a name="l00198"></a>00198     <span class="keywordtype">char</span> *version);
<a name="l00199"></a>00199 
<a name="l00200"></a>00200 <span class="comment">/*</span>
<a name="l00201"></a>00201 <span class="comment"> * Write the start element.</span>
<a name="l00202"></a>00202 <span class="comment"> * @param wr pointer to the writer</span>
<a name="l00203"></a>00203 <span class="comment"> * @param name name of the element</span>
<a name="l00204"></a>00204 <span class="comment"> * @param env pointer to the environment </span>
<a name="l00205"></a>00205 <span class="comment"> */</span>
<a name="l00206"></a>00206 GUTHTHILA_EXPORT <span class="keywordtype">int</span> GUTHTHILA_CALL guththila_write_start_element(
<a name="l00207"></a>00207     guththila_xml_writer_t * wr,
<a name="l00208"></a>00208     <span class="keywordtype">char</span> *name,
<a name="l00209"></a>00209     <span class="keyword">const</span> <a class="code" href="structaxutil__env.html" title="Axis2 Environment struct.">axutil_env_t</a> * env);
<a name="l00210"></a>00210 
<a name="l00211"></a>00211 <span class="comment">/*</span>
<a name="l00212"></a>00212 <span class="comment"> * Write the end element. </span>
<a name="l00213"></a>00213 <span class="comment"> * @param wr pointer to the writer</span>
<a name="l00214"></a>00214 <span class="comment"> * @param env pointer to the environment </span>
<a name="l00215"></a>00215 <span class="comment"> */</span>
<a name="l00216"></a>00216 GUTHTHILA_EXPORT <span class="keywordtype">int</span> GUTHTHILA_CALL guththila_write_end_element(
<a name="l00217"></a>00217     guththila_xml_writer_t * wr,
<a name="l00218"></a>00218     <span class="keyword">const</span> <a class="code" href="structaxutil__env.html" title="Axis2 Environment struct.">axutil_env_t</a> * env);
<a name="l00219"></a>00219 
<a name="l00220"></a>00220 <span class="comment">/*</span>
<a name="l00221"></a>00221 <span class="comment"> * Not implemented.</span>
<a name="l00222"></a>00222 <span class="comment"> * @param wr pointer to the writer</span>
<a name="l00223"></a>00223 <span class="comment"> * @param env pointer to the environment </span>
<a name="l00224"></a>00224 <span class="comment"> */</span>
<a name="l00225"></a>00225 GUTHTHILA_EXPORT <span class="keywordtype">int</span> GUTHTHILA_CALL guththila_close(
<a name="l00226"></a>00226     guththila_xml_writer_t * wr,
<a name="l00227"></a>00227     <span class="keyword">const</span> <a class="code" href="structaxutil__env.html" title="Axis2 Environment struct.">axutil_env_t</a> * env);
<a name="l00228"></a>00228 
<a name="l00229"></a>00229 <span class="comment">/*</span>
<a name="l00230"></a>00230 <span class="comment"> * Write the text content of a element. </span>
<a name="l00231"></a>00231 <span class="comment"> * @param wr pointer to the writer</span>
<a name="l00232"></a>00232 <span class="comment"> * @param buff character string</span>
<a name="l00233"></a>00233 <span class="comment"> * @param env pointer to the environment </span>
<a name="l00234"></a>00234 <span class="comment"> */</span>
<a name="l00235"></a>00235 GUTHTHILA_EXPORT <span class="keywordtype">int</span> GUTHTHILA_CALL guththila_write_characters(
<a name="l00236"></a>00236     guththila_xml_writer_t * wr,
<a name="l00237"></a>00237     <span class="keywordtype">char</span> *buff,
<a name="l00238"></a>00238     <span class="keyword">const</span> <a class="code" href="structaxutil__env.html" title="Axis2 Environment struct.">axutil_env_t</a> * env);
<a name="l00239"></a>00239 
<a name="l00240"></a>00240 <span class="comment">/*</span>
<a name="l00241"></a>00241 <span class="comment"> * Write comment with the given text data. </span>
<a name="l00242"></a>00242 <span class="comment"> * @param wr pointer to the writer</span>
<a name="l00243"></a>00243 <span class="comment"> * @param buff character string</span>
<a name="l00244"></a>00244 <span class="comment"> * @param env pointer to the environment</span>
<a name="l00245"></a>00245 <span class="comment"> */</span> 
<a name="l00246"></a>00246 GUTHTHILA_EXPORT <span class="keywordtype">int</span> GUTHTHILA_CALL guththila_write_comment(
<a name="l00247"></a>00247     guththila_xml_writer_t * wr,
<a name="l00248"></a>00248     <span class="keywordtype">char</span> *buff,
<a name="l00249"></a>00249     <span class="keyword">const</span> <a class="code" href="structaxutil__env.html" title="Axis2 Environment struct.">axutil_env_t</a> * env);
<a name="l00250"></a>00250 
<a name="l00251"></a>00251 <span class="comment">/*</span>
<a name="l00252"></a>00252 <span class="comment"> * Write scape character. </span>
<a name="l00253"></a>00253 <span class="comment"> * @param wr pointer to the writer</span>
<a name="l00254"></a>00254 <span class="comment"> * @param buff character string</span>
<a name="l00255"></a>00255 <span class="comment"> * @param env pointer to the environment</span>
<a name="l00256"></a>00256 <span class="comment"> */</span> 
<a name="l00257"></a>00257 GUTHTHILA_EXPORT <span class="keywordtype">int</span> GUTHTHILA_CALL guththila_write_escape_character(
<a name="l00258"></a>00258     guththila_xml_writer_t * wr,
<a name="l00259"></a>00259     <span class="keywordtype">char</span> *buff,
<a name="l00260"></a>00260     <span class="keyword">const</span> <a class="code" href="structaxutil__env.html" title="Axis2 Environment struct.">axutil_env_t</a> * env);
<a name="l00261"></a>00261 
<a name="l00262"></a>00262 <span class="comment">/*</span>
<a name="l00263"></a>00263 <span class="comment"> * Start to write an empty element with the given name. </span>
<a name="l00264"></a>00264 <span class="comment"> * @param wr pointer to the writer</span>
<a name="l00265"></a>00265 <span class="comment"> * @param name name of the element</span>
<a name="l00266"></a>00266 <span class="comment"> * @param env pointer to the environment</span>
<a name="l00267"></a>00267 <span class="comment"> */</span> 
<a name="l00268"></a>00268 GUTHTHILA_EXPORT <span class="keywordtype">int</span> GUTHTHILA_CALL guththila_write_empty_element(
<a name="l00269"></a>00269     guththila_xml_writer_t * wr,
<a name="l00270"></a>00270     <span class="keywordtype">char</span> *name,
<a name="l00271"></a>00271     <span class="keyword">const</span> <a class="code" href="structaxutil__env.html" title="Axis2 Environment struct.">axutil_env_t</a> * env);
<a name="l00272"></a>00272 
<a name="l00273"></a>00273 <span class="comment">/*</span>
<a name="l00274"></a>00274 <span class="comment"> * Write a defualt namespace. </span>
<a name="l00275"></a>00275 <span class="comment"> * @param wr pointer to the writer</span>
<a name="l00276"></a>00276 <span class="comment"> * @param uri uri of the namespace</span>
<a name="l00277"></a>00277 <span class="comment"> * @param env pointer to the environment</span>
<a name="l00278"></a>00278 <span class="comment"> */</span> 
<a name="l00279"></a>00279 GUTHTHILA_EXPORT <span class="keywordtype">int</span> GUTHTHILA_CALL guththila_write_default_namespace(
<a name="l00280"></a>00280     guththila_xml_writer_t * wr,
<a name="l00281"></a>00281     <span class="keywordtype">char</span> *uri,
<a name="l00282"></a>00282     <span class="keyword">const</span> <a class="code" href="structaxutil__env.html" title="Axis2 Environment struct.">axutil_env_t</a> * env);
<a name="l00283"></a>00283 
<a name="l00284"></a>00284 <span class="comment">/*</span>
<a name="l00285"></a>00285 <span class="comment"> * Write a attribute with the given name and value. </span>
<a name="l00286"></a>00286 <span class="comment"> * @param wr pointer to the writer</span>
<a name="l00287"></a>00287 <span class="comment"> * @param localname name of the attribute</span>
<a name="l00288"></a>00288 <span class="comment"> * @param value value of the attribute</span>
<a name="l00289"></a>00289 <span class="comment"> * @param env pointer to the environment</span>
<a name="l00290"></a>00290 <span class="comment"> */</span> 
<a name="l00291"></a>00291 GUTHTHILA_EXPORT <span class="keywordtype">int</span> GUTHTHILA_CALL guththila_write_attribute(
<a name="l00292"></a>00292     guththila_xml_writer_t * wr,
<a name="l00293"></a>00293     <span class="keywordtype">char</span> *localname,
<a name="l00294"></a>00294     <span class="keywordtype">char</span> *value,
<a name="l00295"></a>00295     <span class="keyword">const</span> <a class="code" href="structaxutil__env.html" title="Axis2 Environment struct.">axutil_env_t</a> * env);
<a name="l00296"></a>00296 
<a name="l00297"></a>00297 <span class="comment">/*</span>
<a name="l00298"></a>00298 <span class="comment"> * Write a attribute with the given name and value and namespace. </span>
<a name="l00299"></a>00299 <span class="comment"> * @param wr pointer to the writer</span>
<a name="l00300"></a>00300 <span class="comment"> * @param prefix prefix of the attribute</span>
<a name="l00301"></a>00301 <span class="comment"> * @param namespace_uri uri of the namespace</span>
<a name="l00302"></a>00302 <span class="comment"> * @param localname name of the attribute</span>
<a name="l00303"></a>00303 <span class="comment"> * @param value value of the attribute</span>
<a name="l00304"></a>00304 <span class="comment"> * @param env pointer to the environment</span>
<a name="l00305"></a>00305 <span class="comment"> */</span> 
<a name="l00306"></a>00306 GUTHTHILA_EXPORT <span class="keywordtype">int</span> GUTHTHILA_CALL
<a name="l00307"></a>00307 guththila_write_attribute_with_prefix_and_namespace(
<a name="l00308"></a>00308     guththila_xml_writer_t * wr,
<a name="l00309"></a>00309     <span class="keywordtype">char</span> *prefix,
<a name="l00310"></a>00310     <span class="keywordtype">char</span> *namespace_uri,
<a name="l00311"></a>00311     <span class="keywordtype">char</span> *localname,
<a name="l00312"></a>00312     <span class="keywordtype">char</span> *value,
<a name="l00313"></a>00313     <span class="keyword">const</span> <a class="code" href="structaxutil__env.html" title="Axis2 Environment struct.">axutil_env_t</a> * env);
<a name="l00314"></a>00314 
<a name="l00315"></a>00315 <span class="comment">/*</span>
<a name="l00316"></a>00316 <span class="comment"> * Write a attribute with the given name, value and prefix. If the prefix </span>
<a name="l00317"></a>00317 <span class="comment"> * is not defined previously as a namespace this method will fail. </span>
<a name="l00318"></a>00318 <span class="comment"> * @param wr pointer to the writer</span>
<a name="l00319"></a>00319 <span class="comment"> * @param prefix prefix of the attribute</span>
<a name="l00320"></a>00320 <span class="comment"> * @param localname name of the attribute</span>
<a name="l00321"></a>00321 <span class="comment"> * @param value value of the attribute</span>
<a name="l00322"></a>00322 <span class="comment"> * @param env pointer to the environment</span>
<a name="l00323"></a>00323 <span class="comment"> */</span> 
<a name="l00324"></a>00324 GUTHTHILA_EXPORT <span class="keywordtype">int</span> GUTHTHILA_CALL guththila_write_attribute_with_prefix(
<a name="l00325"></a>00325     guththila_xml_writer_t * wr,
<a name="l00326"></a>00326     <span class="keywordtype">char</span> *prefix,
<a name="l00327"></a>00327     <span class="keywordtype">char</span> *localname,
<a name="l00328"></a>00328     <span class="keywordtype">char</span> *value,
<a name="l00329"></a>00329     <span class="keyword">const</span> <a class="code" href="structaxutil__env.html" title="Axis2 Environment struct.">axutil_env_t</a> * env);
<a name="l00330"></a>00330 
<a name="l00331"></a>00331 <span class="comment">/*</span>
<a name="l00332"></a>00332 <span class="comment"> * Write a attribute with the given name, value and namespace uri.  </span>
<a name="l00333"></a>00333 <span class="comment"> * If the namespace is not defined previously as a namespace this </span>
<a name="l00334"></a>00334 <span class="comment"> * method will fail. The prefix corresponding to the namespace uri </span>
<a name="l00335"></a>00335 <span class="comment"> * will be used. </span>
<a name="l00336"></a>00336 <span class="comment"> * @param wr pointer to the writer</span>
<a name="l00337"></a>00337 <span class="comment"> * @param namesp namespace uri</span>
<a name="l00338"></a>00338 <span class="comment"> * @param localname name of the attribute</span>
<a name="l00339"></a>00339 <span class="comment"> * @param value value of the attribute</span>
<a name="l00340"></a>00340 <span class="comment"> * @param env pointer to the environment</span>
<a name="l00341"></a>00341 <span class="comment"> */</span> 
<a name="l00342"></a>00342 GUTHTHILA_EXPORT <span class="keywordtype">int</span> GUTHTHILA_CALL guththila_write_attribute_with_namespace(
<a name="l00343"></a>00343     guththila_xml_writer_t * wr,
<a name="l00344"></a>00344     <span class="keywordtype">char</span> *namesp,
<a name="l00345"></a>00345     <span class="keywordtype">char</span> *localname,
<a name="l00346"></a>00346     <span class="keywordtype">char</span> *value,
<a name="l00347"></a>00347     <span class="keyword">const</span> <a class="code" href="structaxutil__env.html" title="Axis2 Environment struct.">axutil_env_t</a> * env);
<a name="l00348"></a>00348 
<a name="l00349"></a>00349 <span class="comment">/*</span>
<a name="l00350"></a>00350 <span class="comment"> * Write a start element with prefix and namespace. If the namespace is not </span>
<a name="l00351"></a>00351 <span class="comment"> * defined previoully new namespace will be written. </span>
<a name="l00352"></a>00352 <span class="comment"> * @param wr pointer to the writer</span>
<a name="l00353"></a>00353 <span class="comment"> * @param prefix prefix of the attribute</span>
<a name="l00354"></a>00354 <span class="comment"> * @param namespace_uri uri</span>
<a name="l00355"></a>00355 <span class="comment"> * @param localname name of the attribute</span>
<a name="l00356"></a>00356 <span class="comment"> * @param env pointer to the environment</span>
<a name="l00357"></a>00357 <span class="comment"> */</span> 
<a name="l00358"></a>00358 GUTHTHILA_EXPORT <span class="keywordtype">int</span> GUTHTHILA_CALL
<a name="l00359"></a>00359 guththila_write_start_element_with_prefix_and_namespace(
<a name="l00360"></a>00360     guththila_xml_writer_t * wr,
<a name="l00361"></a>00361     <span class="keywordtype">char</span> *prefix,
<a name="l00362"></a>00362     <span class="keywordtype">char</span> *namespace_uri,
<a name="l00363"></a>00363     <span class="keywordtype">char</span> *local_name,
<a name="l00364"></a>00364     <span class="keyword">const</span> <a class="code" href="structaxutil__env.html" title="Axis2 Environment struct.">axutil_env_t</a> * env);
<a name="l00365"></a>00365 
<a name="l00366"></a>00366 <span class="comment">/*</span>
<a name="l00367"></a>00367 <span class="comment"> * Write a start element with the namespace. If the namespace is not </span>
<a name="l00368"></a>00368 <span class="comment"> * defined previously method will fail. </span>
<a name="l00369"></a>00369 <span class="comment"> * @param wr pointer to the writer</span>
<a name="l00370"></a>00370 <span class="comment"> * @param namespace_uri uri</span>
<a name="l00371"></a>00371 <span class="comment"> * @param localname name of the attribute</span>
<a name="l00372"></a>00372 <span class="comment"> * @param env pointer to the environment</span>
<a name="l00373"></a>00373 <span class="comment"> */</span> 
<a name="l00374"></a>00374 GUTHTHILA_EXPORT <span class="keywordtype">int</span> GUTHTHILA_CALL
<a name="l00375"></a>00375 guththila_write_start_element_with_namespace(
<a name="l00376"></a>00376     guththila_xml_writer_t * wr,
<a name="l00377"></a>00377     <span class="keywordtype">char</span> *namespace_uri,
<a name="l00378"></a>00378     <span class="keywordtype">char</span> *local_name,
<a name="l00379"></a>00379     <span class="keyword">const</span> <a class="code" href="structaxutil__env.html" title="Axis2 Environment struct.">axutil_env_t</a> * env);
<a name="l00380"></a>00380 
<a name="l00381"></a>00381 <span class="comment">/*</span>
<a name="l00382"></a>00382 <span class="comment"> * Write a start element with the prefix. If the prefix is not </span>
<a name="l00383"></a>00383 <span class="comment"> * defined previously method will fail. </span>
<a name="l00384"></a>00384 <span class="comment"> * @param wr pointer to the writer</span>
<a name="l00385"></a>00385 <span class="comment"> * @param namespace_uri uri</span>
<a name="l00386"></a>00386 <span class="comment"> * @param localname name of the attribute</span>
<a name="l00387"></a>00387 <span class="comment"> * @param env pointer to the environment</span>
<a name="l00388"></a>00388 <span class="comment"> */</span> 
<a name="l00389"></a>00389 GUTHTHILA_EXPORT <span class="keywordtype">int</span> GUTHTHILA_CALL
<a name="l00390"></a>00390 guththila_write_start_element_with_prefix(
<a name="l00391"></a>00391     guththila_xml_writer_t * wr,
<a name="l00392"></a>00392     <span class="keywordtype">char</span> *prefix,
<a name="l00393"></a>00393     <span class="keywordtype">char</span> *local_name,
<a name="l00394"></a>00394     <span class="keyword">const</span> <a class="code" href="structaxutil__env.html" title="Axis2 Environment struct.">axutil_env_t</a> * env);
<a name="l00395"></a>00395 
<a name="l00396"></a>00396 <span class="comment">/*</span>
<a name="l00397"></a>00397 <span class="comment"> * Write a empty element with prefix and namespace. If the namespace is not </span>
<a name="l00398"></a>00398 <span class="comment"> * defined previoully new namespace will be written. </span>
<a name="l00399"></a>00399 <span class="comment"> * @param wr pointer to the writer</span>
<a name="l00400"></a>00400 <span class="comment"> * @param prefix prefix of the attribute</span>
<a name="l00401"></a>00401 <span class="comment"> * @param namespace_uri uri</span>
<a name="l00402"></a>00402 <span class="comment"> * @param localname name of the attribute</span>
<a name="l00403"></a>00403 <span class="comment"> * @param env pointer to the environment</span>
<a name="l00404"></a>00404 <span class="comment"> */</span> 
<a name="l00405"></a>00405 GUTHTHILA_EXPORT <span class="keywordtype">int</span> GUTHTHILA_CALL
<a name="l00406"></a>00406 guththila_write_empty_element_with_prefix_and_namespace(
<a name="l00407"></a>00407     guththila_xml_writer_t * wr,
<a name="l00408"></a>00408     <span class="keywordtype">char</span> *prefix,
<a name="l00409"></a>00409     <span class="keywordtype">char</span> *namespace_uri,
<a name="l00410"></a>00410     <span class="keywordtype">char</span> *local_name,
<a name="l00411"></a>00411     <span class="keyword">const</span> <a class="code" href="structaxutil__env.html" title="Axis2 Environment struct.">axutil_env_t</a> * env);
<a name="l00412"></a>00412 
<a name="l00413"></a>00413 <span class="comment">/*</span>
<a name="l00414"></a>00414 <span class="comment"> * Write a empty element with the namespace. If the namespace is not </span>
<a name="l00415"></a>00415 <span class="comment"> * defined previously method will fail. </span>
<a name="l00416"></a>00416 <span class="comment"> * @param wr pointer to the writer</span>
<a name="l00417"></a>00417 <span class="comment"> * @param namespace_uri uri</span>
<a name="l00418"></a>00418 <span class="comment"> * @param localname name of the attribute</span>
<a name="l00419"></a>00419 <span class="comment"> * @param env pointer to the environment</span>
<a name="l00420"></a>00420 <span class="comment"> */</span> 
<a name="l00421"></a>00421 GUTHTHILA_EXPORT <span class="keywordtype">int</span> GUTHTHILA_CALL
<a name="l00422"></a>00422 guththila_write_empty_element_with_namespace(
<a name="l00423"></a>00423     guththila_xml_writer_t * wr,
<a name="l00424"></a>00424     <span class="keywordtype">char</span> *namespace_uri,
<a name="l00425"></a>00425     <span class="keywordtype">char</span> *local_name,
<a name="l00426"></a>00426     <span class="keyword">const</span> <a class="code" href="structaxutil__env.html" title="Axis2 Environment struct.">axutil_env_t</a> * env);
<a name="l00427"></a>00427 
<a name="l00428"></a>00428 <span class="comment">/*</span>
<a name="l00429"></a>00429 <span class="comment"> * Write a empty element with the prefix. If the prefix is not </span>
<a name="l00430"></a>00430 <span class="comment"> * defined previously method will fail. </span>
<a name="l00431"></a>00431 <span class="comment"> * @param wr pointer to the writer</span>
<a name="l00432"></a>00432 <span class="comment"> * @param namespace_uri uri</span>
<a name="l00433"></a>00433 <span class="comment"> * @param localname name of the attribute</span>
<a name="l00434"></a>00434 <span class="comment"> * @param env pointer to the environment</span>
<a name="l00435"></a>00435 <span class="comment"> */</span> 
<a name="l00436"></a>00436 GUTHTHILA_EXPORT <span class="keywordtype">int</span> GUTHTHILA_CALL
<a name="l00437"></a>00437 guththila_write_empty_element_with_prefix(
<a name="l00438"></a>00438     guththila_xml_writer_t * wr,
<a name="l00439"></a>00439     <span class="keywordtype">char</span> *prefix,
<a name="l00440"></a>00440     <span class="keywordtype">char</span> *local_name,
<a name="l00441"></a>00441     <span class="keyword">const</span> <a class="code" href="structaxutil__env.html" title="Axis2 Environment struct.">axutil_env_t</a> * env);
<a name="l00442"></a>00442 
<a name="l00443"></a>00443 <span class="comment">/*</span>
<a name="l00444"></a>00444 <span class="comment"> * Close all the elements that were started by writing the end elements.</span>
<a name="l00445"></a>00445 <span class="comment"> * @param wr pointer to the writer</span>
<a name="l00446"></a>00446 <span class="comment"> * @param env pointer to the environment</span>
<a name="l00447"></a>00447 <span class="comment"> */</span> 
<a name="l00448"></a>00448 GUTHTHILA_EXPORT <span class="keywordtype">int</span> GUTHTHILA_CALL guththila_write_end_document(
<a name="l00449"></a>00449     guththila_xml_writer_t * wr,
<a name="l00450"></a>00450     <span class="keyword">const</span> <a class="code" href="structaxutil__env.html" title="Axis2 Environment struct.">axutil_env_t</a> * env);
<a name="l00451"></a>00451 <span class="comment">/* </span>
<a name="l00452"></a>00452 <span class="comment"> * Write a new element with the name, then write the characters as text, </span>
<a name="l00453"></a>00453 <span class="comment"> * then close the element and write a new line.</span>
<a name="l00454"></a>00454 <span class="comment"> * @param wr pointer to the writer</span>
<a name="l00455"></a>00455 <span class="comment"> * @element_name name of the element</span>
<a name="l00456"></a>00456 <span class="comment"> * @characters text of the new element</span>
<a name="l00457"></a>00457 <span class="comment"> * @param env pointer to the environment</span>
<a name="l00458"></a>00458 <span class="comment"> */</span>
<a name="l00459"></a>00459 GUTHTHILA_EXPORT <span class="keywordtype">int</span> GUTHTHILA_CALL guththila_write_line(
<a name="l00460"></a>00460     guththila_xml_writer_t * wr,
<a name="l00461"></a>00461     <span class="keywordtype">char</span> *element_name,
<a name="l00462"></a>00462     <span class="keywordtype">char</span> *characters,
<a name="l00463"></a>00463     <span class="keyword">const</span> <a class="code" href="structaxutil__env.html" title="Axis2 Environment struct.">axutil_env_t</a> * env);
<a name="l00464"></a>00464 
<a name="l00465"></a>00465 <span class="comment">/*</span>
<a name="l00466"></a>00466 <span class="comment"> * Get the memory buffer that is written.  </span>
<a name="l00467"></a>00467 <span class="comment"> * @param wr pointer to the writer</span>
<a name="l00468"></a>00468 <span class="comment"> * @param env pointer to the environment</span>
<a name="l00469"></a>00469 <span class="comment"> * @return memory buffer</span>
<a name="l00470"></a>00470 <span class="comment"> */</span>
<a name="l00471"></a>00471 GUTHTHILA_EXPORT <span class="keywordtype">char</span> *GUTHTHILA_CALL guththila_get_memory_buffer(
<a name="l00472"></a>00472     guththila_xml_writer_t * wr,
<a name="l00473"></a>00473     <span class="keyword">const</span> <a class="code" href="structaxutil__env.html" title="Axis2 Environment struct.">axutil_env_t</a> * env);
<a name="l00474"></a>00474 
<a name="l00475"></a>00475 <span class="comment">/*</span>
<a name="l00476"></a>00476 <span class="comment"> * Get the size of the memory buffer. </span>
<a name="l00477"></a>00477 <span class="comment"> * @param wr pointer to the writer</span>
<a name="l00478"></a>00478 <span class="comment"> * @param env pointer to the environment</span>
<a name="l00479"></a>00479 <span class="comment"> * @return size of the buffer</span>
<a name="l00480"></a>00480 <span class="comment"> */</span>
<a name="l00481"></a>00481 GUTHTHILA_EXPORT <span class="keywordtype">unsigned</span> <span class="keywordtype">int</span> GUTHTHILA_CALL
<a name="l00482"></a>00482 guththila_get_memory_buffer_size(
<a name="l00483"></a>00483     guththila_xml_writer_t * wr,
<a name="l00484"></a>00484     <span class="keyword">const</span> <a class="code" href="structaxutil__env.html" title="Axis2 Environment struct.">axutil_env_t</a> * env);
<a name="l00485"></a>00485 
<a name="l00486"></a>00486 <span class="comment">/*</span>
<a name="l00487"></a>00487 <span class="comment"> * Free the writer. </span>
<a name="l00488"></a>00488 <span class="comment"> * @param wr pointer to the writer</span>
<a name="l00489"></a>00489 <span class="comment"> * @param env pointer to the environment</span>
<a name="l00490"></a>00490 <span class="comment"> */</span>
<a name="l00491"></a>00491 GUTHTHILA_EXPORT <span class="keywordtype">void</span> GUTHTHILA_CALL guththila_xml_writer_free(
<a name="l00492"></a>00492     guththila_xml_writer_t * wr,
<a name="l00493"></a>00493     <span class="keyword">const</span> <a class="code" href="structaxutil__env.html" title="Axis2 Environment struct.">axutil_env_t</a> * env);
<a name="l00494"></a>00494 <span class="comment">/*</span>
<a name="l00495"></a>00495 <span class="comment"> * Get the prefix for the namespace.</span>
<a name="l00496"></a>00496 <span class="comment"> * @param wr pointer to the writer</span>
<a name="l00497"></a>00497 <span class="comment"> * @namespace namespace uri</span>
<a name="l00498"></a>00498 <span class="comment"> * @param env pointer to the environment</span>
<a name="l00499"></a>00499 <span class="comment"> * @return prefix for the namspace uri</span>
<a name="l00500"></a>00500 <span class="comment"> */</span>
<a name="l00501"></a>00501 GUTHTHILA_EXPORT <span class="keywordtype">char</span> *GUTHTHILA_CALL guththila_get_prefix_for_namespace(
<a name="l00502"></a>00502     guththila_xml_writer_t * wr,
<a name="l00503"></a>00503     <span class="keywordtype">char</span> *<span class="keyword">namespace</span>,
<a name="l00504"></a>00504     <span class="keyword">const</span> <a class="code" href="structaxutil__env.html" title="Axis2 Environment struct.">axutil_env_t</a> * env);
<a name="l00505"></a>00505 
<a name="l00506"></a>00506 EXTERN_C_END()
<a name="l00507"></a>00507 <span class="preprocessor">#endif</span>
</pre></div><hr size="1"><address style="text-align: right;"><small>Generated on Fri Apr 17 11:49:43 2009 for Axis2/C by&nbsp;
<a href="http://www.doxygen.org/index.html">
<img src="doxygen.png" alt="doxygen" align="middle" border="0"></a> 1.5.3 </small></address>
</body>
</html>


<|start_filename|>src/core/transport/http/common/http_header.c<|end_filename|>

/*
 * 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.
 */

#include <axis2_http_header.h>
#include <axutil_string.h>
#include <axis2_http_transport.h>
#include <stdio.h>
#include <string.h>

struct axis2_http_header
{
    axis2_char_t *name;
    axis2_char_t *value;
};

AXIS2_EXTERN axis2_http_header_t *AXIS2_CALL
axis2_http_header_create(
    const axutil_env_t * env,
    const axis2_char_t * name,
    const axis2_char_t * value)
{
    axis2_http_header_t *http_header = NULL;

    http_header = (axis2_http_header_t *) AXIS2_MALLOC
        (env->allocator, sizeof(axis2_http_header_t));

    if (!http_header)
    {
        AXIS2_HANDLE_ERROR(env, AXIS2_ERROR_NO_MEMORY, AXIS2_FAILURE);
        return NULL;
    }
    memset ((void *)http_header, 0, sizeof (axis2_http_header_t));
    http_header->name = (axis2_char_t *) axutil_strdup(env, name);
    http_header->value = (axis2_char_t *) axutil_strdup(env, value);

    return http_header;
}

AXIS2_EXTERN axis2_http_header_t *AXIS2_CALL
axis2_http_header_create_by_str(
    const axutil_env_t * env,
    const axis2_char_t * str)
{
    axis2_char_t *tmp_str = NULL;
    axis2_char_t *ch = NULL;
    axis2_char_t *ch2 = NULL;
    axis2_http_header_t *ret = NULL;

    AXIS2_PARAM_CHECK (env->error, str, NULL);

    tmp_str = axutil_strdup(env, str);
    if (!tmp_str)
    {
        AXIS2_LOG_ERROR (env->log, AXIS2_LOG_SI, 
                         "unable to strdup string, %s", str);
        return NULL;
    }
    /* remove trailing \r\n */
    if ((axutil_strlen(tmp_str) >= 2) && (AXIS2_RETURN == tmp_str[axutil_strlen(tmp_str) - 2]))
    {
        tmp_str[axutil_strlen(tmp_str) - 2] = AXIS2_ESC_NULL;
    }

    ch = strchr((const char *) tmp_str, AXIS2_COLON);
    if (!ch)
    {
        AXIS2_FREE(env->allocator, tmp_str);
        return NULL;
    }

    ch2 = ch + sizeof(axis2_char_t);
    /* skip spaces */
    while (AXIS2_SPACE  == *ch2)
    {
        ch2 += sizeof(axis2_char_t);
    }
    *ch = AXIS2_ESC_NULL;
    ret = axis2_http_header_create(env, tmp_str, ch2);
    AXIS2_FREE(env->allocator, tmp_str);
    return ret;
}

AXIS2_EXTERN void AXIS2_CALL
axis2_http_header_free(
    axis2_http_header_t * http_header,
    const axutil_env_t * env)
{

    if (!http_header)
    {
        return;
    }

    if (http_header->name)
    {
        AXIS2_FREE(env->allocator, http_header->name);
    }
    if (http_header->value)
    {
        AXIS2_FREE(env->allocator, http_header->value);
    }

    AXIS2_FREE(env->allocator, http_header);
    return;
}

AXIS2_EXTERN axis2_char_t *AXIS2_CALL
axis2_http_header_to_external_form(
    axis2_http_header_t * http_header,
    const axutil_env_t * env)
{
    axis2_ssize_t len = 0;
    axis2_char_t *external_form = NULL;

    AXIS2_PARAM_CHECK(env->error, http_header, NULL);

    len = axutil_strlen(http_header->name) +
        axutil_strlen(http_header->value) + 8;
    external_form = (axis2_char_t *) AXIS2_MALLOC(env->allocator, len);
    sprintf(external_form, "%s: %s%s", http_header->name,
            http_header->value, AXIS2_HTTP_CRLF);
    return external_form;
}

AXIS2_EXTERN axis2_char_t *AXIS2_CALL
axis2_http_header_get_name(
    const axis2_http_header_t * http_header,
    const axutil_env_t * env)
{
    return http_header->name;
}

AXIS2_EXTERN axis2_char_t *AXIS2_CALL
axis2_http_header_get_value(
    const axis2_http_header_t * http_header,
    const axutil_env_t * env)
{
    return http_header->value;
}

AXIS2_EXTERN void AXIS2_CALL
axis2_http_header_set_value(
    axis2_http_header_t * http_header,
    const axutil_env_t * env,
    const axis2_char_t *value)
{
    if(http_header->value)
    {
        AXIS2_FREE(env->allocator, http_header->value);
        http_header->value = NULL;
    }
    http_header->value = (axis2_char_t *)axutil_strdup(env, value);
}



<|start_filename|>xdocs/api/html/axis2__const_8h-source.html<|end_filename|>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html><head><meta http-equiv="Content-Type" content="text/html;charset=UTF-8">
<title>Axis2/C: axis2_const.h Source File</title>
<link href="doxygen.css" rel="stylesheet" type="text/css">
<link href="tabs.css" rel="stylesheet" type="text/css">
</head><body>
<!-- Generated by Doxygen 1.5.3 -->
<div class="tabs">
  <ul>
    <li><a href="index.html"><span>Main&nbsp;Page</span></a></li>
    <li><a href="modules.html"><span>Modules</span></a></li>
    <li><a href="annotated.html"><span>Classes</span></a></li>
    <li class="current"><a href="files.html"><span>Files</span></a></li>
    <li><a href="dirs.html"><span>Directories</span></a></li>
    <li><a href="pages.html"><span>Related&nbsp;Pages</span></a></li>
    <li><a href="examples.html"><span>Examples</span></a></li>
    <li>
      <form action="search.php" method="get">
        <table cellspacing="0" cellpadding="0" border="0">
          <tr>
            <td><label>&nbsp;<u>S</u>earch&nbsp;for&nbsp;</label></td>
            <td><input type="text" name="query" value="" size="20" accesskey="s"/></td>
          </tr>
        </table>
      </form>
    </li>
  </ul>
</div>
<div class="nav">
<a class="el" href="dir_f60961de8e5edc3b2658ef023e959e45.html">deploy</a>&nbsp;&raquo&nbsp;<a class="el" href="dir_6b4e91e54b7316b376882a6402adbf44.html">include</a>&nbsp;&raquo&nbsp;<a class="el" href="dir_df3a7695d5a9e696f30b948b566829e7.html">axis2-1.6.0</a></div>
<h1>axis2_const.h</h1><div class="fragment"><pre class="fragment"><a name="l00001"></a>00001 
<a name="l00002"></a>00002 <span class="comment">/*</span>
<a name="l00003"></a>00003 <span class="comment"> * Licensed to the Apache Software Foundation (ASF) under one or more</span>
<a name="l00004"></a>00004 <span class="comment"> * contributor license agreements.  See the NOTICE file distributed with</span>
<a name="l00005"></a>00005 <span class="comment"> * this work for additional information regarding copyright ownership.</span>
<a name="l00006"></a>00006 <span class="comment"> * The ASF licenses this file to You under the Apache License, Version 2.0</span>
<a name="l00007"></a>00007 <span class="comment"> * (the "License"); you may not use this file except in compliance with</span>
<a name="l00008"></a>00008 <span class="comment"> * the License.  You may obtain a copy of the License at</span>
<a name="l00009"></a>00009 <span class="comment"> *</span>
<a name="l00010"></a>00010 <span class="comment"> *      http://www.apache.org/licenses/LICENSE-2.0</span>
<a name="l00011"></a>00011 <span class="comment"> *</span>
<a name="l00012"></a>00012 <span class="comment"> * Unless required by applicable law or agreed to in writing, software</span>
<a name="l00013"></a>00013 <span class="comment"> * distributed under the License is distributed on an "AS IS" BASIS,</span>
<a name="l00014"></a>00014 <span class="comment"> * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.</span>
<a name="l00015"></a>00015 <span class="comment"> * See the License for the specific language governing permissions and</span>
<a name="l00016"></a>00016 <span class="comment"> * limitations under the License.</span>
<a name="l00017"></a>00017 <span class="comment"> */</span>
<a name="l00018"></a>00018 
<a name="l00019"></a>00019 <span class="preprocessor">#ifndef AXIS2_CONST_H</span>
<a name="l00020"></a>00020 <span class="preprocessor"></span><span class="preprocessor">#define AXIS2_CONST_H</span>
<a name="l00021"></a>00021 <span class="preprocessor"></span>
<a name="l00027"></a>00027 <span class="preprocessor">#include &lt;<a class="code" href="axutil__env_8h.html" title="Axis2 environment that acts as a container for error, log and memory allocator routines...">axutil_env.h</a>&gt;</span>
<a name="l00028"></a>00028 <span class="preprocessor">#include &lt;<a class="code" href="axutil__utils_8h.html">axutil_utils.h</a>&gt;</span>
<a name="l00029"></a>00029 
<a name="l00030"></a>00030 <span class="preprocessor">#ifdef __cplusplus</span>
<a name="l00031"></a>00031 <span class="preprocessor"></span><span class="keyword">extern</span> <span class="stringliteral">"C"</span>
<a name="l00032"></a>00032 {
<a name="l00033"></a>00033 <span class="preprocessor">#endif</span>
<a name="l00034"></a>00034 <span class="preprocessor"></span>
<a name="l00053"></a>00053     <span class="comment">/******************************************************************************/</span>
<a name="l00054"></a>00054 
<a name="l00055"></a>00055     <span class="comment">/********************Axis2 specific constants**********************************/</span>
<a name="l00056"></a>00056 
<a name="l00057"></a>00057     <span class="comment">/******************************************************************************/</span>
<a name="l00058"></a>00058 
<a name="l00062"></a>00062 <span class="preprocessor">#define AXIOM_SOAP_STYLE_RPC_ENCODED 1000</span>
<a name="l00063"></a>00063 <span class="preprocessor"></span>
<a name="l00068"></a>00068     <span class="comment">/*#define AXIOM_SOAP_STYLE_RPC_LITERAL 1001 */</span>
<a name="l00069"></a>00069 
<a name="l00073"></a>00073 <span class="preprocessor">#define AXIOM_SOAP_STYLE_DOC_LITERAL_WRAPPED 1002</span>
<a name="l00074"></a>00074 <span class="preprocessor"></span>
<a name="l00075"></a>00075 <span class="preprocessor">#define AXIS2_SCOPE "scope"</span>
<a name="l00076"></a>00076 <span class="preprocessor"></span>
<a name="l00080"></a>00080 <span class="preprocessor">#define AXIS2_APPLICATION_SCOPE "application"</span>
<a name="l00081"></a>00081 <span class="preprocessor"></span>
<a name="l00085"></a>00085 <span class="preprocessor">#define AXIS2_SESSION_SCOPE "session"</span>
<a name="l00086"></a>00086 <span class="preprocessor"></span>
<a name="l00090"></a>00090 <span class="preprocessor">#define AXIS2_MESSAGE_SCOPE "message"</span>
<a name="l00091"></a>00091 <span class="preprocessor"></span>
<a name="l00095"></a>00095 <span class="preprocessor">#define AXIS2_PHASE_SERVICE "service"</span>
<a name="l00096"></a>00096 <span class="preprocessor"></span>
<a name="l00100"></a>00100 <span class="preprocessor">#define AXIS2_PHASE_TRANSPORT "transport"</span>
<a name="l00101"></a>00101 <span class="preprocessor"></span>
<a name="l00105"></a>00105 <span class="preprocessor">#define AXIS2_PHASE_GLOBAL "global"</span>
<a name="l00106"></a>00106 <span class="preprocessor"></span>
<a name="l00110"></a>00110 <span class="preprocessor">#define AXIS2_SESSION_CONTEXT_PROPERTY "SessionContext"</span>
<a name="l00111"></a>00111 <span class="preprocessor"></span>
<a name="l00115"></a>00115 <span class="preprocessor">#define AXIS2_TRANSPORT_HTTP    "http"</span>
<a name="l00116"></a>00116 <span class="preprocessor"></span><span class="preprocessor">#define AXIS2_TRANSPORT_SMTP    "smtp"</span>
<a name="l00117"></a>00117 <span class="preprocessor"></span><span class="preprocessor">#define AXIS2_TRANSPORT_TCP             "tcp"</span>
<a name="l00118"></a>00118 <span class="preprocessor"></span><span class="preprocessor">#define AXIS2_TRANSPORT_XMPP    "xmpp"</span>
<a name="l00119"></a>00119 <span class="preprocessor"></span><span class="preprocessor">#define AXIS2_TRANSPORT_HTTPS   "https"</span>
<a name="l00120"></a>00120 <span class="preprocessor"></span><span class="preprocessor">#define AXIS2_TRANSPORT_AMQP    "amqp"</span>
<a name="l00121"></a>00121 <span class="preprocessor"></span><span class="preprocessor">#define AXIS2_TRANSPORT_UDP             "soap.udp"</span>
<a name="l00122"></a>00122 <span class="preprocessor"></span>    <span class="keyword">typedef</span> <span class="keyword">enum</span>
<a name="l00123"></a>00123     {
<a name="l00124"></a>00124         AXIS2_TRANSPORT_ENUM_HTTP = 0,
<a name="l00125"></a>00125         AXIS2_TRANSPORT_ENUM_SMTP,
<a name="l00126"></a>00126         AXIS2_TRANSPORT_ENUM_TCP,
<a name="l00127"></a>00127         AXIS2_TRANSPORT_ENUM_XMPP,
<a name="l00128"></a>00128         AXIS2_TRANSPORT_ENUM_HTTPS,
<a name="l00129"></a>00129         AXIS2_TRANSPORT_ENUM_AMQP,
<a name="l00130"></a>00130                 AXIS2_TRANSPORT_ENUM_UDP,
<a name="l00131"></a>00131         AXIS2_TRANSPORT_ENUM_MAX
<a name="l00132"></a>00132     } AXIS2_TRANSPORT_ENUMS;
<a name="l00133"></a>00133 
<a name="l00135"></a>00135 <span class="preprocessor">#ifndef AXIS2_REQUEST_URL_PREFIX</span>
<a name="l00136"></a>00136 <span class="preprocessor"></span><span class="preprocessor">#define AXIS2_REQUEST_URL_PREFIX "/services"</span>
<a name="l00137"></a>00137 <span class="preprocessor"></span><span class="preprocessor">#endif</span>
<a name="l00138"></a>00138 <span class="preprocessor"></span>
<a name="l00139"></a>00139 <span class="preprocessor">#define AXIS2_LISTSERVICES "listServices"</span>
<a name="l00140"></a>00140 <span class="preprocessor"></span>
<a name="l00141"></a>00141 <span class="preprocessor">#define AXIS2_LIST_SERVICE_FOR_MODULE_ENGAMNET "listop"</span>
<a name="l00142"></a>00142 <span class="preprocessor"></span>
<a name="l00146"></a>00146 <span class="preprocessor">#define AXIS2_ADMIN_LISTSERVICES "listService"</span>
<a name="l00147"></a>00147 <span class="preprocessor"></span>
<a name="l00148"></a>00148 <span class="preprocessor">#define AXIS2_LIST_MODULES "listModules"</span>
<a name="l00149"></a>00149 <span class="preprocessor"></span>
<a name="l00150"></a>00150 <span class="preprocessor">#define AXIS2_LIST_GLOABLLY_ENGAGED_MODULES "globalModules"</span>
<a name="l00151"></a>00151 <span class="preprocessor"></span>
<a name="l00152"></a>00152 <span class="preprocessor">#define AXIS2_LIST_PHASES "listPhases"</span>
<a name="l00153"></a>00153 <span class="preprocessor"></span>
<a name="l00154"></a>00154 <span class="preprocessor">#define AXIS2_ENGAGE_GLOBAL_MODULE "engagingglobally"</span>
<a name="l00155"></a>00155 <span class="preprocessor"></span><span class="preprocessor">#define AXIS2_ENGAGE_MODULE_TO_SERVICE "engageToService"</span>
<a name="l00156"></a>00156 <span class="preprocessor"></span>
<a name="l00157"></a>00157 <span class="preprocessor">#define AXIS2_ENGAGE_MODULE_TO_SERVICE_GROUP "engageToServiceGroup"</span>
<a name="l00158"></a>00158 <span class="preprocessor"></span>
<a name="l00159"></a>00159 <span class="preprocessor">#define AXIS2_ADMIN_LOGIN "adminlogin"</span>
<a name="l00160"></a>00160 <span class="preprocessor"></span>
<a name="l00161"></a>00161 <span class="preprocessor">#define AXIS2_LIST_CONTEXTS "listContexts"</span>
<a name="l00162"></a>00162 <span class="preprocessor"></span><span class="preprocessor">#define AXIS2_LOGOUT "logout"</span>
<a name="l00163"></a>00163 <span class="preprocessor"></span>
<a name="l00164"></a>00164 <span class="preprocessor">#define AXIS2_VIEW_GLOBAL_HANDLERS "viewGlobalHandlers"</span>
<a name="l00165"></a>00165 <span class="preprocessor"></span><span class="preprocessor">#define AXIS2_SELECT_SERVICE "selectService"</span>
<a name="l00166"></a>00166 <span class="preprocessor"></span><span class="preprocessor">#define AXIS2_EDIR_SERVICE_PARA "editServicepara"</span>
<a name="l00167"></a>00167 <span class="preprocessor"></span><span class="preprocessor">#define AXIS2_SELECT_SERVICE_FOR_PARA_EDIT "selectServiceParaEdit"</span>
<a name="l00168"></a>00168 <span class="preprocessor"></span><span class="preprocessor">#define AXIS2_VIEW_SERVICE_HANDLERS "viewServiceHandlers"</span>
<a name="l00169"></a>00169 <span class="preprocessor"></span><span class="preprocessor">#define AXIS2_LIST_SERVIC_GROUPS "listServciceGroups"</span>
<a name="l00170"></a>00170 <span class="preprocessor"></span>
<a name="l00174"></a>00174 <span class="preprocessor">#define AXIS2_SERVICE_MAP "servicemap"</span>
<a name="l00175"></a>00175 <span class="preprocessor"></span><span class="preprocessor">#define AXIS2_SERVICE_GROUP_MAP "serviceGroupmap"</span>
<a name="l00176"></a>00176 <span class="preprocessor"></span>
<a name="l00177"></a>00177 <span class="preprocessor">#define AXIS2_CONFIG_CONTEXT "config_context"</span>
<a name="l00178"></a>00178 <span class="preprocessor"></span><span class="preprocessor">#define AXIS2_ACTION_MAPPING "actionMapping"</span>
<a name="l00179"></a>00179 <span class="preprocessor"></span><span class="preprocessor">#define AXIS2_OUTPUT_ACTION_MAPPING "outputActionMapping"</span>
<a name="l00180"></a>00180 <span class="preprocessor"></span><span class="preprocessor">#define AXI2_FAULT_ACTION_MAPPING "faultActionMapping"</span>
<a name="l00181"></a>00181 <span class="preprocessor"></span>
<a name="l00182"></a>00182 <span class="preprocessor">#define AXIS2_SERVICE "service"</span>
<a name="l00183"></a>00183 <span class="preprocessor"></span>
<a name="l00184"></a>00184 <span class="preprocessor">#define AXIS2_OPEARTION_MAP "opmap"</span>
<a name="l00185"></a>00185 <span class="preprocessor"></span>
<a name="l00189"></a>00189 <span class="preprocessor">#define AXIS2_MODULE_MAP "modulemap"</span>
<a name="l00190"></a>00190 <span class="preprocessor"></span>
<a name="l00191"></a>00191 <span class="preprocessor">#define AXIS2_SELECT_SERVICE_TYPE "SELECT_SERVICE_TYPE"</span>
<a name="l00192"></a>00192 <span class="preprocessor"></span>
<a name="l00193"></a>00193 <span class="preprocessor">#define AXIS2_GLOBAL_HANDLERS "axisconfig"</span>
<a name="l00194"></a>00194 <span class="preprocessor"></span><span class="preprocessor">#define AXIS2_SERVICE_HANDLERS "serviceHandlers"</span>
<a name="l00195"></a>00195 <span class="preprocessor"></span>
<a name="l00196"></a>00196 <span class="preprocessor">#define AXIS2_PHASE_LIST "phaseList"</span>
<a name="l00197"></a>00197 <span class="preprocessor"></span>
<a name="l00198"></a>00198 <span class="preprocessor">#define AXIS2_LIST_OPS_FOR_THE_SERVICE "listOperations"</span>
<a name="l00199"></a>00199 <span class="preprocessor"></span>
<a name="l00200"></a>00200 <span class="preprocessor">#define AXIS2_REMOVE_SERVICE "removeService"</span>
<a name="l00201"></a>00201 <span class="preprocessor"></span>
<a name="l00202"></a>00202 <span class="preprocessor">#define AXIS2_ENGAGE_STATUS "engagestatus"</span>
<a name="l00203"></a>00203 <span class="preprocessor"></span>
<a name="l00207"></a>00207 <span class="preprocessor">#define AXIS2_ERROR_SERVICE_MAP "errprservicemap"</span>
<a name="l00208"></a>00208 <span class="preprocessor"></span><span class="preprocessor">#define AXIS2_ERROR_MODULE_MAP "errormodulesmap"</span>
<a name="l00209"></a>00209 <span class="preprocessor"></span>
<a name="l00210"></a>00210 <span class="preprocessor">#define AXIS2_IS_FAULTY "Fault"</span>
<a name="l00211"></a>00211 <span class="preprocessor"></span>
<a name="l00212"></a>00212 <span class="preprocessor">#define AXIS2_MODULE_ADDRESSING "addressing"</span>
<a name="l00213"></a>00213 <span class="preprocessor"></span>
<a name="l00214"></a>00214 <span class="preprocessor">#define AXIS2_USE_SEPARATE_LISTENER "use_listener"</span>
<a name="l00215"></a>00215 <span class="preprocessor"></span>
<a name="l00216"></a>00216 <span class="preprocessor">#define AXIS2_USER_NAME "userName"</span>
<a name="l00217"></a>00217 <span class="preprocessor"></span><span class="preprocessor">#define AXIS2_PASSWORD "password"</span>
<a name="l00218"></a>00218 <span class="preprocessor"></span>
<a name="l00222"></a>00222 <span class="preprocessor">#define AXIS2_SINGLE_SERVICE "singleservice"</span>
<a name="l00223"></a>00223 <span class="preprocessor"></span><span class="preprocessor">#define AXIS2_WSDL_CONTENT "wsdl"</span>
<a name="l00224"></a>00224 <span class="preprocessor"></span><span class="preprocessor">#define AXIS2_REQUEST_WSDL "?wsdl"</span>
<a name="l00225"></a>00225 <span class="preprocessor"></span>
<a name="l00226"></a>00226 <span class="preprocessor">#define AXIS2_STYLE_RPC  "rpc"</span>
<a name="l00227"></a>00227 <span class="preprocessor"></span><span class="preprocessor">#define AXIS2_STYLE_DOC  "doc"</span>
<a name="l00228"></a>00228 <span class="preprocessor"></span><span class="preprocessor">#define AXIS2_STYLE_MSG  "msg"</span>
<a name="l00229"></a>00229 <span class="preprocessor"></span>
<a name="l00230"></a>00230     <span class="keyword">typedef</span> <span class="keyword">enum</span> axis2_wsdl_msg_labels
<a name="l00231"></a>00231     {
<a name="l00232"></a>00232         AXIS2_WSDL_MESSAGE_LABEL_IN = 0,
<a name="l00233"></a>00233         AXIS2_WSDL_MESSAGE_LABEL_OUT,
<a name="l00234"></a>00234         AXIS2_WSDL_MESSAGE_LABEL_MAX
<a name="l00235"></a>00235     } axis2_wsdl_msg_labels_t;
<a name="l00236"></a>00236 
<a name="l00237"></a>00237     <span class="comment">/*********************Message Exchange Pattern Constants***********************/</span>
<a name="l00238"></a>00238 
<a name="l00242"></a>00242 <span class="preprocessor">#define AXIS2_MEP_URI_IN_ONLY "http://www.w3.org/2004/08/wsdl/in-only"</span>
<a name="l00243"></a>00243 <span class="preprocessor"></span>
<a name="l00244"></a>00244 <span class="preprocessor">#define AXIS2_MEP_CONSTANT_IN_ONLY 10</span>
<a name="l00245"></a>00245 <span class="preprocessor"></span>
<a name="l00249"></a>00249 <span class="preprocessor">#define AXIS2_MEP_URI_ROBUST_IN_ONLY "http://www.w3.org/2004/08/wsdl/robust-in-only"</span>
<a name="l00250"></a>00250 <span class="preprocessor"></span>
<a name="l00251"></a>00251 <span class="preprocessor">#define AXIS2_MEP_CONSTANT_ROBUST_IN_ONLY 11</span>
<a name="l00252"></a>00252 <span class="preprocessor"></span>
<a name="l00256"></a>00256 <span class="preprocessor">#define AXIS2_MEP_URI_IN_OUT "http://www.w3.org/2004/08/wsdl/in-out"</span>
<a name="l00257"></a>00257 <span class="preprocessor"></span>
<a name="l00258"></a>00258 <span class="preprocessor">#define AXIS2_MEP_CONSTANT_IN_OUT 12</span>
<a name="l00259"></a>00259 <span class="preprocessor"></span>
<a name="l00263"></a>00263 <span class="preprocessor">#define AXIS2_MEP_URI_IN_OPTIONAL_OUT "http://www.w3.org/2004/08/wsdl/in-opt-out"</span>
<a name="l00264"></a>00264 <span class="preprocessor"></span>
<a name="l00265"></a>00265 <span class="preprocessor">#define AXIS2_MEP_CONSTANT_IN_OPTIONAL_OUT 13</span>
<a name="l00266"></a>00266 <span class="preprocessor"></span>
<a name="l00270"></a>00270 <span class="preprocessor">#define AXIS2_MEP_URI_OUT_ONLY "http://www.w3.org/2004/08/wsdl/out-only"</span>
<a name="l00271"></a>00271 <span class="preprocessor"></span>
<a name="l00272"></a>00272 <span class="preprocessor">#define AXIS2_MEP_CONSTANT_OUT_ONLY 14</span>
<a name="l00273"></a>00273 <span class="preprocessor"></span>
<a name="l00277"></a>00277 <span class="preprocessor">#define AXIS2_MEP_URI_ROBUST_OUT_ONLY "http://www.w3.org/2004/08/wsdl/robust-out-only"</span>
<a name="l00278"></a>00278 <span class="preprocessor"></span>
<a name="l00279"></a>00279 <span class="preprocessor">#define AXIS2_MEP_CONSTANT_ROBUST_OUT_ONLY 15</span>
<a name="l00280"></a>00280 <span class="preprocessor"></span>
<a name="l00284"></a>00284 <span class="preprocessor">#define AXIS2_MEP_URI_OUT_IN "http://www.w3.org/2004/08/wsdl/out-in"</span>
<a name="l00285"></a>00285 <span class="preprocessor"></span>
<a name="l00286"></a>00286 <span class="preprocessor">#define AXIS2_MEP_CONSTANT_OUT_IN 16</span>
<a name="l00287"></a>00287 <span class="preprocessor"></span>
<a name="l00291"></a>00291 <span class="preprocessor">#define AXIS2_MEP_URI_OUT_OPTIONAL_IN "http://www.w3.org/2004/08/wsdl/out-opt-in"</span>
<a name="l00292"></a>00292 <span class="preprocessor"></span>
<a name="l00293"></a>00293 <span class="preprocessor">#define AXIS2_MEP_CONSTANT_OUT_OPTIONAL_IN 17</span>
<a name="l00294"></a>00294 <span class="preprocessor"></span>
<a name="l00295"></a>00295 <span class="preprocessor">#define AXIS2_MEP_CONSTANT_INVALID -1</span>
<a name="l00296"></a>00296 <span class="preprocessor"></span>
<a name="l00300"></a>00300 <span class="preprocessor">#define AXIS2_WSDL_MESSAGE_DIRECTION_IN "in"</span>
<a name="l00301"></a>00301 <span class="preprocessor"></span>
<a name="l00305"></a>00305 <span class="preprocessor">#define AXIS2_WSDL_MESSAGE_DIRECTION_OUT "out"</span>
<a name="l00306"></a>00306 <span class="preprocessor"></span>
<a name="l00310"></a>00310 <span class="preprocessor">#define AXIS2_REST_HTTP_LOCATION "RESTLocation"</span>
<a name="l00311"></a>00311 <span class="preprocessor"></span>
<a name="l00315"></a>00315 <span class="preprocessor">#define AXIS2_REST_HTTP_METHOD "RESTMethod"</span>
<a name="l00316"></a>00316 <span class="preprocessor"></span>
<a name="l00320"></a>00320 <span class="preprocessor">#define AXIS2_DEFAULT_REST_HTTP_METHOD "defaultRESTMethod"</span>
<a name="l00321"></a>00321 <span class="preprocessor"></span>
<a name="l00326"></a>00326     <span class="comment">/* static const char METHOD_NAME_ESCAPE_CHARACTOR '?' */</span>
<a name="l00327"></a>00327 
<a name="l00328"></a>00328 <span class="preprocessor">#define AXIS2_LOGGED "Logged"</span>
<a name="l00329"></a>00329 <span class="preprocessor"></span>
<a name="l00330"></a>00330     <span class="comment">/* static const char SERVICE_NAME_SPLIT_CHAR':' */</span>
<a name="l00331"></a>00331 
<a name="l00332"></a>00332     <span class="comment">/*********************Configuration *******************************************/</span>
<a name="l00333"></a>00333 
<a name="l00334"></a>00334 <span class="preprocessor">#define AXIS2_ENABLE_REST "enableREST"</span>
<a name="l00335"></a>00335 <span class="preprocessor"></span><span class="preprocessor">#define AXIS2_ENABLE_REST_THROUGH_GET "restThroughGet"</span>
<a name="l00336"></a>00336 <span class="preprocessor"></span>
<a name="l00337"></a>00337 <span class="preprocessor">#define AXIS2_FORCE_PROXY_AUTH "forceProxyAuth"</span>
<a name="l00338"></a>00338 <span class="preprocessor"></span><span class="preprocessor">#define AXIS2_FORCE_HTTP_AUTH "forceHTTPAuth"</span>
<a name="l00339"></a>00339 <span class="preprocessor"></span>
<a name="l00340"></a>00340 <span class="preprocessor">#define AXIS2_PROXY_AUTH_TYPE "proxyAuthType"</span>
<a name="l00341"></a>00341 <span class="preprocessor"></span><span class="preprocessor">#define AXIS2_HTTP_AUTH_TYPE "HTTPAuthType"</span>
<a name="l00342"></a>00342 <span class="preprocessor"></span>
<a name="l00346"></a>00346 <span class="preprocessor">#define AXIS2_TEST_PROXY_AUTH "testProxyAuth"</span>
<a name="l00347"></a>00347 <span class="preprocessor"></span>
<a name="l00351"></a>00351 <span class="preprocessor">#define AXIS2_TEST_HTTP_AUTH "testHTTPAuth"</span>
<a name="l00352"></a>00352 <span class="preprocessor"></span>
<a name="l00353"></a>00353     <span class="comment">/* add xml declaration */</span>
<a name="l00354"></a>00354 <span class="preprocessor">#define AXIS2_XML_DECLARATION "xml-declaration"</span>
<a name="l00355"></a>00355 <span class="preprocessor"></span><span class="preprocessor">#define AXIS2_ADD_XML_DECLARATION "insert"</span>
<a name="l00356"></a>00356 <span class="preprocessor"></span>
<a name="l00357"></a>00357     <span class="comment">/* globally enable MTOM */</span>
<a name="l00358"></a>00358 <span class="preprocessor">#define AXIS2_ENABLE_MTOM "enableMTOM"</span>
<a name="l00359"></a>00359 <span class="preprocessor"></span><span class="preprocessor">#define AXIS2_ATTACHMENT_DIR "attachmentDIR"</span>
<a name="l00360"></a>00360 <span class="preprocessor"></span><span class="preprocessor">#define AXIS2_MTOM_BUFFER_SIZE "MTOMBufferSize"</span>
<a name="l00361"></a>00361 <span class="preprocessor"></span><span class="preprocessor">#define AXIS2_MTOM_MAX_BUFFERS "MTOMMaxBuffers"</span>
<a name="l00362"></a>00362 <span class="preprocessor"></span><span class="preprocessor">#define AXIS2_MTOM_CACHING_CALLBACK "MTOMCachingCallback"</span>
<a name="l00363"></a>00363 <span class="preprocessor"></span><span class="preprocessor">#define AXIS2_MTOM_SENDING_CALLBACK "MTOMSendingCallback"</span>
<a name="l00364"></a>00364 <span class="preprocessor"></span><span class="preprocessor">#define AXIS2_ENABLE_MTOM_SERVICE_CALLBACK "EnableMTOMServiceCallback"</span>
<a name="l00365"></a>00365 <span class="preprocessor"></span>
<a name="l00366"></a>00366     <span class="comment">/* op_ctx persistance */</span>
<a name="l00367"></a>00367 <span class="preprocessor">#define AXIS2_PERSIST_OP_CTX "persistOperationContext"</span>
<a name="l00368"></a>00368 <span class="preprocessor"></span>
<a name="l00369"></a>00369 <span class="preprocessor">#define AXIS2_EXPOSE_HEADERS "exposeHeaders"</span>
<a name="l00370"></a>00370 <span class="preprocessor"></span>
<a name="l00371"></a>00371     <span class="comment">/******************************************************************************/</span>
<a name="l00372"></a>00372 
<a name="l00373"></a>00373 <span class="preprocessor">#define AXIS2_VALUE_TRUE "true"</span>
<a name="l00374"></a>00374 <span class="preprocessor"></span><span class="preprocessor">#define AXIS2_VALUE_FALSE "false"</span>
<a name="l00375"></a>00375 <span class="preprocessor"></span><span class="preprocessor">#define AXIS2_CONTAINER_MANAGED "ContainerManaged"</span>
<a name="l00376"></a>00376 <span class="preprocessor"></span><span class="preprocessor">#define AXIS2_RESPONSE_WRITTEN "CONTENT_WRITTEN"</span>
<a name="l00377"></a>00377 <span class="preprocessor"></span>
<a name="l00378"></a>00378 <span class="preprocessor">#define AXIS2_TESTING_PATH "target/test-resources/"</span>
<a name="l00379"></a>00379 <span class="preprocessor"></span>
<a name="l00380"></a>00380 <span class="preprocessor">#define AXIS2_TESTING_REPOSITORY "target/test-resources/samples"</span>
<a name="l00381"></a>00381 <span class="preprocessor"></span>
<a name="l00382"></a>00382     <span class="comment">/* Indicate whether the axis2 service should be loaded at start up */</span>
<a name="l00383"></a>00383 <span class="preprocessor">#define AXIS2_LOAD_SVC_STARTUP "loadServiceAtStartup"</span>
<a name="l00384"></a>00384 <span class="preprocessor"></span>
<a name="l00385"></a>00385     <span class="comment">/*************************** REST_WITH_GET ************************************/</span>
<a name="l00386"></a>00386 
<a name="l00387"></a>00387 <span class="preprocessor">#define AXIS2_GET_PARAMETER_OP "op"</span>
<a name="l00388"></a>00388 <span class="preprocessor"></span><span class="preprocessor">#define AXIS2_GET_PARAMETER_URL "http://ws.apache.org/goGetWithREST"</span>
<a name="l00389"></a>00389 <span class="preprocessor"></span>
<a name="l00390"></a>00390     <span class="comment">/******************************************************************************/</span>
<a name="l00391"></a>00391 
<a name="l00392"></a>00392 <span class="preprocessor">#define AXIS2_NAMESPACE_PREFIX "axis2"</span>
<a name="l00393"></a>00393 <span class="preprocessor"></span><span class="preprocessor">#define AXIS2_NAMESPACE_URI "http://ws.apache.org/namespaces/axis2"</span>
<a name="l00394"></a>00394 <span class="preprocessor"></span>
<a name="l00395"></a>00395 <span class="preprocessor">#define AXIS2_SVC_GRP_ID "ServiceGroupId"</span>
<a name="l00396"></a>00396 <span class="preprocessor"></span>
<a name="l00397"></a>00397 <span class="preprocessor">#define AXIS2_RESPONSE_SOAP_ENVELOPE "Axis2ResponseEnvelope"</span>
<a name="l00398"></a>00398 <span class="preprocessor"></span><span class="preprocessor">#define AXIS2_HANDLER_ALREADY_VISITED "handler_already_visited"</span>
<a name="l00399"></a>00399 <span class="preprocessor"></span><span class="preprocessor">#define AXIS2_IS_SVR_SIDE "axis2_is_svr_side"</span>
<a name="l00400"></a>00400 <span class="preprocessor"></span>
<a name="l00401"></a>00401 <span class="preprocessor">#define AXIS2_SERVICE_DIR "servicesDir"</span>
<a name="l00402"></a>00402 <span class="preprocessor"></span><span class="preprocessor">#define AXIS2_MODULE_DIR "moduleDir"</span>
<a name="l00403"></a>00403 <span class="preprocessor"></span>
<a name="l00404"></a>00404 <span class="preprocessor">#define AXIS2_MESSAGE_ID_PREFIX "urn:uuid:"</span>
<a name="l00405"></a>00405 <span class="preprocessor"></span>
<a name="l00407"></a>00407 <span class="preprocessor">#define AXIS2_ANON_SERVICE  "__ANONYMOUS_SERVICE__"</span>
<a name="l00408"></a>00408 <span class="preprocessor"></span>
<a name="l00410"></a>00410 <span class="preprocessor">#define AXIS2_ANON_OUT_ONLY_OP "__OPERATION_OUT_ONLY__"</span>
<a name="l00411"></a>00411 <span class="preprocessor"></span>
<a name="l00413"></a>00413 <span class="preprocessor">#define AXIS2_ANON_ROBUST_OUT_ONLY_OP "__OPERATION_ROBUST_OUT_ONLY__"</span>
<a name="l00414"></a>00414 <span class="preprocessor"></span>
<a name="l00416"></a>00416 <span class="preprocessor">#define AXIS2_ANON_OUT_IN_OP "__OPERATION_OUT_IN__"</span>
<a name="l00417"></a>00417 <span class="preprocessor"></span>
<a name="l00419"></a>00419 <span class="preprocessor">#define AXIS2_WSDL_LOCATION_IN_REPO "woden"</span>
<a name="l00420"></a>00420 <span class="preprocessor"></span>
<a name="l00421"></a>00421 <span class="preprocessor">#ifdef __cplusplus</span>
<a name="l00422"></a>00422 <span class="preprocessor"></span>}
<a name="l00423"></a>00423 <span class="preprocessor">#endif</span>
<a name="l00424"></a>00424 <span class="preprocessor"></span>
<a name="l00425"></a>00425 <span class="preprocessor">#endif                          </span><span class="comment">/* AXIS2_CONST_H */</span>
</pre></div><hr size="1"><address style="text-align: right;"><small>Generated on Fri Apr 17 11:49:42 2009 for Axis2/C by&nbsp;
<a href="http://www.doxygen.org/index.html">
<img src="doxygen.png" alt="doxygen" align="middle" border="0"></a> 1.5.3 </small></address>
</body>
</html>


<|start_filename|>neethi/src/secpolicy/model/signed_encrypted_parts.c<|end_filename|>

/*
 * 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.
 */

#include <rp_signed_encrypted_parts.h>

struct rp_signed_encrypted_parts_t
{
    axis2_bool_t body;
    axis2_bool_t signedparts;
    axis2_bool_t attachments;
    axutil_array_list_t *headers;
    int ref;
};

AXIS2_EXTERN rp_signed_encrypted_parts_t *AXIS2_CALL
rp_signed_encrypted_parts_create(
    const axutil_env_t * env)
{
    rp_signed_encrypted_parts_t *signed_encrypted_parts = NULL;
    signed_encrypted_parts = (rp_signed_encrypted_parts_t *) AXIS2_MALLOC(
        env->allocator, sizeof(rp_signed_encrypted_parts_t));

    if(!signed_encrypted_parts)
    {
        AXIS2_LOG_ERROR(env->log, AXIS2_LOG_SI, 
            "[neethi] Cannot create signed_encrypted_parts. Insuficient memory.");
        return NULL;
    }

    signed_encrypted_parts->headers = axutil_array_list_create(env, 0);
    if (!signed_encrypted_parts->headers)
    {
        rp_signed_encrypted_parts_free(signed_encrypted_parts, env);
        AXIS2_ERROR_SET(env->error, AXIS2_ERROR_NO_MEMORY, AXIS2_FAILURE);
        AXIS2_LOG_ERROR(env->log, AXIS2_LOG_SI, 
            "[neethi] Cannot create signed_encrypted_parts. Headers array list creation failed.");
        return NULL;
    }

    signed_encrypted_parts->body = AXIS2_FALSE;
    signed_encrypted_parts->ref = 0;
    signed_encrypted_parts->signedparts = AXIS2_FALSE;
    signed_encrypted_parts->attachments = AXIS2_FALSE;
    return signed_encrypted_parts;
}

AXIS2_EXTERN void AXIS2_CALL
rp_signed_encrypted_parts_free(
    rp_signed_encrypted_parts_t * signed_encrypted_parts,
    const axutil_env_t * env)
{
    if (signed_encrypted_parts)
    {
        if (--(signed_encrypted_parts->ref) > 0)
        {
            return;
        }

        if (signed_encrypted_parts->headers)
        {
            int i = 0;
            for (i = 0; i < axutil_array_list_size(signed_encrypted_parts->headers, env); i++)
            {
                rp_header_t *header = NULL;
                header = (rp_header_t *)axutil_array_list_get(
                    signed_encrypted_parts->headers, env, i);
                if (header)
                {
                    rp_header_free(header, env);
                }
            }
            axutil_array_list_free(signed_encrypted_parts->headers, env);
            signed_encrypted_parts->headers = NULL;
        }
        AXIS2_FREE(env->allocator, signed_encrypted_parts);
        signed_encrypted_parts = NULL;
    }
}

/* Implementations */

AXIS2_EXTERN axis2_bool_t AXIS2_CALL
rp_signed_encrypted_parts_get_body(
    rp_signed_encrypted_parts_t * signed_encrypted_parts,
    const axutil_env_t * env)
{
    return signed_encrypted_parts->body;
}

AXIS2_EXTERN axis2_status_t AXIS2_CALL
rp_signed_encrypted_parts_set_body(
    rp_signed_encrypted_parts_t * signed_encrypted_parts,
    const axutil_env_t * env,
    axis2_bool_t body)
{
    AXIS2_PARAM_CHECK(env->error, body, AXIS2_FAILURE);
    signed_encrypted_parts->body = body;
    return AXIS2_SUCCESS;
}

AXIS2_EXTERN axis2_bool_t AXIS2_CALL
rp_signed_encrypted_parts_get_signedparts(
    rp_signed_encrypted_parts_t * signed_encrypted_parts,
    const axutil_env_t * env)
{
    return signed_encrypted_parts->signedparts;
}

AXIS2_EXTERN axis2_status_t AXIS2_CALL
rp_signed_encrypted_parts_set_signedparts(
    rp_signed_encrypted_parts_t * signed_encrypted_parts,
    const axutil_env_t * env,
    axis2_bool_t signedparts)
{
    signed_encrypted_parts->signedparts = signedparts;
    return AXIS2_SUCCESS;
}

AXIS2_EXTERN axutil_array_list_t *AXIS2_CALL
rp_signed_encrypted_parts_get_headers(
    rp_signed_encrypted_parts_t * signed_encrypted_parts,
    const axutil_env_t * env)
{
    return signed_encrypted_parts->headers;
}

AXIS2_EXTERN axis2_status_t AXIS2_CALL
rp_signed_encrypted_parts_add_header(
    rp_signed_encrypted_parts_t * signed_encrypted_parts,
    const axutil_env_t * env,
    rp_header_t * header)
{
    AXIS2_PARAM_CHECK(env->error, header, AXIS2_FAILURE);
    axutil_array_list_add(signed_encrypted_parts->headers, env, header);
    return AXIS2_SUCCESS;
}

AXIS2_EXTERN axis2_status_t AXIS2_CALL
rp_signed_encrypted_parts_increment_ref(
    rp_signed_encrypted_parts_t * signed_encrypted_parts,
    const axutil_env_t * env)
{
    signed_encrypted_parts->ref++;
    return AXIS2_SUCCESS;
}
AXIS2_EXTERN axis2_bool_t AXIS2_CALL
rp_signed_encrypted_parts_get_attachments(
    rp_signed_encrypted_parts_t * signed_encrypted_parts,
    const axutil_env_t * env)
{
    return signed_encrypted_parts->attachments;
}

AXIS2_EXTERN axis2_status_t AXIS2_CALL
rp_signed_encrypted_parts_set_attachments(
    rp_signed_encrypted_parts_t * signed_encrypted_parts,
    const axutil_env_t * env,
    axis2_bool_t attachments)
{
    signed_encrypted_parts->attachments = attachments;
    return AXIS2_SUCCESS;
}


<|start_filename|>util/src/file_handler.c<|end_filename|>
/*
 * 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.
 */

#include <string.h>
#include <stdlib.h>
#include <stdio.h>
#include <platforms/axutil_platform_auto_sense.h>
#include <sys/stat.h>

#include <axutil_file_handler.h>

AXIS2_EXTERN void *AXIS2_CALL
axutil_file_handler_open(
    const axis2_char_t *file_name,
    const axis2_char_t *options)
{
    FILE *file_ptr;

    if (!file_name)
        return NULL;

    if (!options)
        return NULL;

    file_ptr = fopen(file_name, options);
    return file_ptr;
}

AXIS2_EXTERN axis2_status_t AXIS2_CALL
axutil_file_handler_close(
    void *file_ptr)
{
    if (!file_ptr)
        return -1;
    return (axis2_status_t) fclose(file_ptr);
}

AXIS2_EXTERN axis2_status_t AXIS2_CALL
axutil_file_handler_access(
    const axis2_char_t *path,
    int mode)
{
    int i = 0;
    axis2_status_t status = AXIS2_FAILURE;
    i = AXIS2_ACCESS(path, mode);
    if (0 == i)
    {
        status = AXIS2_SUCCESS;
    }
    else if (-1 == i)
    {
        status = AXIS2_FAILURE;
    }
    return status;
}

AXIS2_EXTERN axis2_status_t AXIS2_CALL
axutil_file_handler_copy(
    FILE *from, 
    FILE *to)
{
    axis2_char_t ch;
    
    /* It is assumed that source and destination files are accessible and open*/
    while(!feof(from)) 
    {
        ch = (axis2_char_t)fgetc(from);
        /* We are sure that the conversion is safe */
        if(ferror(from)) 
        {
            /* Error reading source file */
            return AXIS2_FAILURE;
        }
        if(!feof(from)) fputc(ch, to);
        if(ferror(to)) 
        {
            /* Error writing destination file */
            return AXIS2_FAILURE;
        }
    }
    return AXIS2_SUCCESS;
}

AXIS2_EXTERN long AXIS2_CALL
axutil_file_handler_size(
    const axis2_char_t *const name)
{
    struct stat stbuf;
    if(stat(name, &stbuf) == -1)
    {
        /* The file could not be accessed */
        return AXIS2_FAILURE;
    }
    return stbuf.st_size;
}



<|start_filename|>guththila/tests/test_utf8_decoder.c<|end_filename|>

/*
 * 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.
 */  
#include <guththila.h>
#include <check.h>
#include <string.h>
#include "test.h"

static guththila_utf8_decoder_t *decoder = NULL;

void
setup_utf8_decoder(
    void)
{
    allocator = axutil_allocator_init(NULL);
    env = axutil_env_create(allocator);
    decoder = guththila_utf8_decoder_create(env);
}

void
teardown_utf8_decoder(
    void)
{
    guththila_utf8_decoder_free(decoder, env);
    axutil_env_free(env);
}

START_TEST(test_decode_1_byte_letter)
{
    int code_point;
    int is_done =
        guththila_utf8_decoder_decode(decoder, 'A', &code_point, env);
    fail_if(is_done == 0, "guththila decoder not done");
    fail_if(GUTHTHILA_UTF8_DECODER_IS_ERROR(decoder) != 0,
            "guththila decoder detected error");
    fail_if(GUTHTHILA_UTF8_DECODER_IS_CODE_POINT(decoder) == 0,
            "guththila decoder has no code point");
    fail_if(code_point != 'A', "guththila code_point not A");
    fail_if(GUTHTHILA_UTF8_DECODER_GET_CODE_POINT(decoder) != 'A',
            "guththila decoder code_point not A");
}
END_TEST

START_TEST(test_decode_2_byte_letter)
{
    //       Greek Alpha:   Code point: 913 UTF-8: \xCE\x91
    int code_point;
    int is_done =
        guththila_utf8_decoder_decode(decoder, '\xCE', &code_point, env);
    fail_if(is_done != 0, "guththila decoder already done");
    fail_if(GUTHTHILA_UTF8_DECODER_IS_ERROR(decoder) != 0,
            "guththila decoder detected error");
    fail_if(GUTHTHILA_UTF8_DECODER_IS_CODE_POINT(decoder) != 0,
            "guththila decoder already has code point");
    is_done =
        guththila_utf8_decoder_decode(decoder, '\x91', &code_point, env);
    fail_if(is_done == 0, "guththila decoder not done");
    fail_if(GUTHTHILA_UTF8_DECODER_IS_ERROR(decoder) != 0,
            "guththila decoder detected error");
    fail_if(GUTHTHILA_UTF8_DECODER_IS_CODE_POINT(decoder) == 0,
            "guththila decoder has no code point");
    fail_if(code_point != 913, "guththila code_point not Greek alpha");
    fail_if(GUTHTHILA_UTF8_DECODER_GET_CODE_POINT(decoder) != 913,
            "guththila decoder code_point not Greek alpha");
}
END_TEST

START_TEST(test_decode_3_byte_letter)
{
    //       Thai Sara U:   Code point: 3640 UTF-8: \xE0\xB8\xB8
    int code_point;
    int is_done =
        guththila_utf8_decoder_decode(decoder, '\xE0', &code_point, env);
    fail_if(is_done != 0, "guththila decoder already done");
    fail_if(GUTHTHILA_UTF8_DECODER_IS_ERROR(decoder) != 0,
            "guththila decoder detected error");
    fail_if(GUTHTHILA_UTF8_DECODER_IS_CODE_POINT(decoder) != 0,
            "guththila decoder already has code point");
    is_done =
        guththila_utf8_decoder_decode(decoder, '\xB8', &code_point, env);
    fail_if(is_done != 0, "guththila decoder already done");
    fail_if(GUTHTHILA_UTF8_DECODER_IS_ERROR(decoder) != 0,
            "guththila decoder detected error");
    fail_if(GUTHTHILA_UTF8_DECODER_IS_CODE_POINT(decoder) != 0,
            "guththila decoder already has code point");
    is_done =
        guththila_utf8_decoder_decode(decoder, '\xB8', &code_point, env);
    fail_if(is_done == 0, "guththila decoder not done");
    fail_if(GUTHTHILA_UTF8_DECODER_IS_ERROR(decoder) != 0,
            "guththila decoder detected error");
    fail_if(GUTHTHILA_UTF8_DECODER_IS_CODE_POINT(decoder) == 0,
            "guththila decoder has no code point");
    fail_if(code_point != 3640, "guththila code_point not Thai Sara U");
    fail_if(GUTHTHILA_UTF8_DECODER_GET_CODE_POINT(decoder) != 3640,
            "guththila decoder code_point not Thai Sara U");
}
END_TEST

START_TEST(test_decode_4_byte_letter)
{
    // Chinese Treestump:   Code point: 144308 UTF-8: \xF0\xA3\x8E\xB4
    int code_point;
    int is_done =
        guththila_utf8_decoder_decode(decoder, '\xF0', &code_point, env);
    fail_if(is_done != 0, "guththila decoder already done");
    fail_if(GUTHTHILA_UTF8_DECODER_IS_ERROR(decoder) != 0,
            "guththila decoder detected error");
    fail_if(GUTHTHILA_UTF8_DECODER_IS_CODE_POINT(decoder) != 0,
            "guththila decoder already has code point");
    is_done =
        guththila_utf8_decoder_decode(decoder, '\xA3', &code_point, env);
    fail_if(is_done != 0, "guththila decoder already done");
    fail_if(GUTHTHILA_UTF8_DECODER_IS_ERROR(decoder) != 0,
            "guththila decoder detected error");
    fail_if(GUTHTHILA_UTF8_DECODER_IS_CODE_POINT(decoder) != 0,
            "guththila decoder already has code point");
    is_done =
        guththila_utf8_decoder_decode(decoder, '\x8E', &code_point, env);
    fail_if(is_done != 0, "guththila decoder already done");
    fail_if(GUTHTHILA_UTF8_DECODER_IS_ERROR(decoder) != 0,
            "guththila decoder detected error");
    fail_if(GUTHTHILA_UTF8_DECODER_IS_CODE_POINT(decoder) != 0,
            "guththila decoder already has code point");
    is_done =
        guththila_utf8_decoder_decode(decoder, '\xB4', &code_point, env);
    fail_if(is_done == 0, "guththila decoder not done");
    fail_if(GUTHTHILA_UTF8_DECODER_IS_ERROR(decoder) != 0,
            "guththila decoder detected error");
    fail_if(GUTHTHILA_UTF8_DECODER_IS_CODE_POINT(decoder) == 0,
            "guththila decoder has no code point");
    fail_if(code_point != 144308, "guththila code_point not Chinese Treestump");
    fail_if(GUTHTHILA_UTF8_DECODER_GET_CODE_POINT(decoder) != 144308,
            "guththila decoder code_point not Chinese Treestump");
}
END_TEST

START_TEST(test_decode_1_byte_lower_bound)
{
/*
 *       Code Point
 *      Decimal    Hex          Binary
 *                 UTF-8 Encoding
 * From         0  0x00000000   0000 0000  0000 0000  0000 0000
 *                 0
 *                 0x00
 *                 0000 0000
 */
    int code_point;
    int is_done =
        guththila_utf8_decoder_decode(decoder, '\0', &code_point, env);
    fail_if(is_done == 0, "guththila decoder not done");
    fail_if(GUTHTHILA_UTF8_DECODER_IS_ERROR(decoder) != 0,
            "guththila decoder detected error");
    fail_if(GUTHTHILA_UTF8_DECODER_IS_CODE_POINT(decoder) == 0,
            "guththila decoder has no code point");
    fail_if(code_point != 0x00000000, "guththila code_point not 0x00000000");
    fail_if(GUTHTHILA_UTF8_DECODER_GET_CODE_POINT(decoder) != 0x00000000,
            "guththila decoder code_point not 0x00000000");
}
END_TEST

START_TEST(test_decode_1_byte_upper_bound)
{
/*
 *       Code Point
 *      Decimal    Hex          Binary
 *                 UTF-8 Encoding
 * To         127  0x0000007f   0000 0000  0000 0000  0111 1111
 *                 127
 *                 0x7f
 *                 0111 1111
 */
    int code_point;
    int is_done =
        guththila_utf8_decoder_decode(decoder, '\x7F', &code_point, env);
    fail_if(is_done == 0, "guththila decoder not done");
    fail_if(GUTHTHILA_UTF8_DECODER_IS_ERROR(decoder) != 0,
            "guththila decoder detected error");
    fail_if(GUTHTHILA_UTF8_DECODER_IS_CODE_POINT(decoder) == 0,
            "guththila decoder has no code point");
    fail_if(code_point != 0x0000007f, "guththila code_point not 0x0000007f");
    fail_if(GUTHTHILA_UTF8_DECODER_GET_CODE_POINT(decoder) != 0x0000007f,
            "guththila decoder code_point not 0x0000007f");
}
END_TEST

START_TEST(test_decode_2_byte_lower_bound)
{
/*
 *       Code Point
 *      Decimal    Hex          Binary
 *                 UTF-8 Encoding
 * From       128  0x00000080   0000 0000  0000 0000  1000 0000
 *                 194        128
 *                 0xc2       0x80
 *                 1100 0010  1000 0000
 */
    int code_point;
    int is_done =
        guththila_utf8_decoder_decode(decoder, '\xC2', &code_point, env);
    fail_if(is_done != 0, "guththila decoder already done");
    fail_if(GUTHTHILA_UTF8_DECODER_IS_ERROR(decoder) != 0,
            "guththila decoder detected error");
    fail_if(GUTHTHILA_UTF8_DECODER_IS_CODE_POINT(decoder) != 0,
            "guththila decoder already has code point");
    is_done =
        guththila_utf8_decoder_decode(decoder, '\x80', &code_point, env);
    fail_if(is_done == 0, "guththila decoder not done");
    fail_if(GUTHTHILA_UTF8_DECODER_IS_ERROR(decoder) != 0,
            "guththila decoder detected error");
    fail_if(GUTHTHILA_UTF8_DECODER_IS_CODE_POINT(decoder) == 0,
            "guththila decoder has no code point");
    fail_if(code_point != 0x00000080, "guththila code_point not 0x00000080");
    fail_if(GUTHTHILA_UTF8_DECODER_GET_CODE_POINT(decoder) != 0x00000080,
            "guththila decoder code_point not 0x00000080");
}
END_TEST

START_TEST(test_decode_2_byte_upper_bound)
{
/*
 *       Code Point
 *      Decimal    Hex          Binary
 *                 UTF-8 Encoding
 * To       2,047  0x000007ff   0000 0000  0000 0111  1111 1111
 *                 223        191
 *                 0xdf       0xbf
 *                 1101 1111  1011 1111
 */
    int code_point;
    int is_done =
        guththila_utf8_decoder_decode(decoder, '\xDF', &code_point, env);
    fail_if(is_done != 0, "guththila decoder already done");
    fail_if(GUTHTHILA_UTF8_DECODER_IS_ERROR(decoder) != 0,
            "guththila decoder detected error");
    fail_if(GUTHTHILA_UTF8_DECODER_IS_CODE_POINT(decoder) != 0,
            "guththila decoder already has code point");
    is_done =
        guththila_utf8_decoder_decode(decoder, '\xBF', &code_point, env);
    fail_if(is_done == 0, "guththila decoder not done");
    fail_if(GUTHTHILA_UTF8_DECODER_IS_ERROR(decoder) != 0,
            "guththila decoder detected error");
    fail_if(GUTHTHILA_UTF8_DECODER_IS_CODE_POINT(decoder) == 0,
            "guththila decoder has no code point");
    fail_if(code_point != 0x000007ff, "guththila code_point not 0x000007ff");
    fail_if(GUTHTHILA_UTF8_DECODER_GET_CODE_POINT(decoder) != 0x000007ff,
            "guththila decoder code_point not 0x000007ff");
}
END_TEST

START_TEST(test_decode_3_byte_lower_bound)
{
/*
 *       Code Point
 *      Decimal    Hex          Binary
 *                 UTF-8 Encoding
 * From     2,048  0x00000800   0000 0000  0000 1000  0000 0000
 *                 224        160        128
 *                 0xe0       0xa0       0x80
 *                 1110 0000  1010 0000  1000 0000
 */
    int code_point;
    int is_done =
        guththila_utf8_decoder_decode(decoder, '\xE0', &code_point, env);
    fail_if(is_done != 0, "guththila decoder already done");
    fail_if(GUTHTHILA_UTF8_DECODER_IS_ERROR(decoder) != 0,
            "guththila decoder detected error");
    fail_if(GUTHTHILA_UTF8_DECODER_IS_CODE_POINT(decoder) != 0,
            "guththila decoder already has code point");
    is_done =
        guththila_utf8_decoder_decode(decoder, '\xA0', &code_point, env);
    fail_if(is_done != 0, "guththila decoder already done");
    fail_if(GUTHTHILA_UTF8_DECODER_IS_ERROR(decoder) != 0,
            "guththila decoder detected error");
    fail_if(GUTHTHILA_UTF8_DECODER_IS_CODE_POINT(decoder) != 0,
            "guththila decoder already has code point");
    is_done =
        guththila_utf8_decoder_decode(decoder, '\x80', &code_point, env);
    fail_if(is_done == 0, "guththila decoder not done");
    fail_if(GUTHTHILA_UTF8_DECODER_IS_ERROR(decoder) != 0,
            "guththila decoder detected error");
    fail_if(GUTHTHILA_UTF8_DECODER_IS_CODE_POINT(decoder) == 0,
            "guththila decoder has no code point");
    fail_if(code_point != 0x00000800, "guththila code_point not 0x00000800");
    fail_if(GUTHTHILA_UTF8_DECODER_GET_CODE_POINT(decoder) != 0x00000800,
            "guththila decoder code_point not 0x00000800");
}
END_TEST

START_TEST(test_decode_3_byte_upper_bound)
{
/*
 *       Code Point
 *      Decimal    Hex          Binary
 *                 UTF-8 Encoding
 * To      65,535  0x0000ffff   0000 0000  1111 1111  1111 1111
 *                 239        191        191
 *                 0xef       0xbf       0xbf
 *                 1110 1111  1011 1111  1011 1111
 */
    int code_point;
    int is_done =
        guththila_utf8_decoder_decode(decoder, '\xEF', &code_point, env);
    fail_if(is_done != 0, "guththila decoder already done");
    fail_if(GUTHTHILA_UTF8_DECODER_IS_ERROR(decoder) != 0,
            "guththila decoder detected error");
    fail_if(GUTHTHILA_UTF8_DECODER_IS_CODE_POINT(decoder) != 0,
            "guththila decoder already has code point");
    is_done =
        guththila_utf8_decoder_decode(decoder, '\xBF', &code_point, env);
    fail_if(is_done != 0, "guththila decoder already done");
    fail_if(GUTHTHILA_UTF8_DECODER_IS_ERROR(decoder) != 0,
            "guththila decoder detected error");
    fail_if(GUTHTHILA_UTF8_DECODER_IS_CODE_POINT(decoder) != 0,
            "guththila decoder already has code point");
    is_done =
        guththila_utf8_decoder_decode(decoder, '\xBF', &code_point, env);
    fail_if(is_done == 0, "guththila decoder not done");
    fail_if(GUTHTHILA_UTF8_DECODER_IS_ERROR(decoder) != 0,
            "guththila decoder detected error");
    fail_if(GUTHTHILA_UTF8_DECODER_IS_CODE_POINT(decoder) == 0,
            "guththila decoder has no code point");
    fail_if(code_point != 0x0000ffff, "guththila code_point not 0x0000ffff");
    fail_if(GUTHTHILA_UTF8_DECODER_GET_CODE_POINT(decoder) != 0x0000ffff,
            "guththila decoder code_point not 0x0000ffff");
}
END_TEST

START_TEST(test_decode_4_byte_lower_bound)
{
/*
 *       Code Point
 *      Decimal    Hex          Binary
 *                 UTF-8 Encoding
 * From    65,536  0x00010000   0000 0001  0000 0000  0000 0000
 *                 240        144        128        128
 *                 0xf0       0x90       0x80       0x80
 *                 1111 0000  1001 0000  1000 0000  1000 0000
 */
    int code_point;
    int is_done =
        guththila_utf8_decoder_decode(decoder, '\xF0', &code_point, env);
    fail_if(is_done != 0, "guththila decoder already done");
    fail_if(GUTHTHILA_UTF8_DECODER_IS_ERROR(decoder) != 0,
            "guththila decoder detected error");
    fail_if(GUTHTHILA_UTF8_DECODER_IS_CODE_POINT(decoder) != 0,
            "guththila decoder already has code point");
    is_done =
        guththila_utf8_decoder_decode(decoder, '\x90', &code_point, env);
    fail_if(is_done != 0, "guththila decoder already done");
    fail_if(GUTHTHILA_UTF8_DECODER_IS_ERROR(decoder) != 0,
            "guththila decoder detected error");
    fail_if(GUTHTHILA_UTF8_DECODER_IS_CODE_POINT(decoder) != 0,
            "guththila decoder already has code point");
    is_done =
        guththila_utf8_decoder_decode(decoder, '\x80', &code_point, env);
    fail_if(is_done != 0, "guththila decoder already done");
    fail_if(GUTHTHILA_UTF8_DECODER_IS_ERROR(decoder) != 0,
            "guththila decoder detected error");
    fail_if(GUTHTHILA_UTF8_DECODER_IS_CODE_POINT(decoder) != 0,
            "guththila decoder already has code point");
    is_done =
        guththila_utf8_decoder_decode(decoder, '\x80', &code_point, env);
    fail_if(is_done == 0, "guththila decoder not done");
    fail_if(GUTHTHILA_UTF8_DECODER_IS_ERROR(decoder) != 0,
            "guththila decoder detected error");
    fail_if(GUTHTHILA_UTF8_DECODER_IS_CODE_POINT(decoder) == 0,
            "guththila decoder has no code point");
    fail_if(code_point != 0x00010000, "guththila code_point not 0x00010000");
    fail_if(GUTHTHILA_UTF8_DECODER_GET_CODE_POINT(decoder) != 0x00010000,
            "guththila decoder code_point not 0x00010000");
}
END_TEST

START_TEST(test_decode_4_byte_upper_bound)
{
/*
 *       Code Point
 *      Decimal    Hex          Binary
 *                 UTF-8 Encoding
 * To   1,114,111  0x0010ffff   0001 0000  1111 1111  1111 1111
 *                 244        143        191        191
 *                 0xf4       0x8f       0xbf       0xbf
 *                 1111 0100  1000 1111  1011 1111  1011 1111
 */
    int code_point;
    int is_done =
        guththila_utf8_decoder_decode(decoder, '\xF4', &code_point, env);
    fail_if(is_done != 0, "guththila decoder already done");
    fail_if(GUTHTHILA_UTF8_DECODER_IS_ERROR(decoder) != 0,
            "guththila decoder detected error");
    fail_if(GUTHTHILA_UTF8_DECODER_IS_CODE_POINT(decoder) != 0,
            "guththila decoder already has code point");
    is_done =
        guththila_utf8_decoder_decode(decoder, '\x8F', &code_point, env);
    fail_if(is_done != 0, "guththila decoder already done");
    fail_if(GUTHTHILA_UTF8_DECODER_IS_ERROR(decoder) != 0,
            "guththila decoder detected error");
    fail_if(GUTHTHILA_UTF8_DECODER_IS_CODE_POINT(decoder) != 0,
            "guththila decoder already has code point");
    is_done =
        guththila_utf8_decoder_decode(decoder, '\xBF', &code_point, env);
    fail_if(is_done != 0, "guththila decoder already done");
    fail_if(GUTHTHILA_UTF8_DECODER_IS_ERROR(decoder) != 0,
            "guththila decoder detected error");
    fail_if(GUTHTHILA_UTF8_DECODER_IS_CODE_POINT(decoder) != 0,
            "guththila decoder already has code point");
    is_done =
        guththila_utf8_decoder_decode(decoder, '\xBF', &code_point, env);
    fail_if(is_done == 0, "guththila decoder not done");
    fail_if(GUTHTHILA_UTF8_DECODER_IS_ERROR(decoder) != 0,
            "guththila decoder detected error");
    fail_if(GUTHTHILA_UTF8_DECODER_IS_CODE_POINT(decoder) == 0,
            "guththila decoder has no code point");
    fail_if(code_point != 0x0010ffff, "guththila code_point not 0x0010ffff");
    fail_if(GUTHTHILA_UTF8_DECODER_GET_CODE_POINT(decoder) != 0x0010ffff,
            "guththila decoder code_point not 0x0010ffff");
}
END_TEST

START_TEST(test_decode_2_byte_overlong)
{
    //            Overlong 0x0000: \xC0\x80
    int code_point;
    int is_done =
        guththila_utf8_decoder_decode(decoder, '\xC0', &code_point, env);
    fail_if(is_done == 0, "guththila decoder is not done");
    fail_if(GUTHTHILA_UTF8_DECODER_IS_ERROR(decoder) == 0,
            "guththila decoder not detected error");
    fail_if(GUTHTHILA_UTF8_DECODER_IS_CODE_POINT(decoder) != 0,
            "guththila decoder has code point");
}
END_TEST

START_TEST(test_decode_4_byte_over_upper_bound)
{
/*
 *       Code Point
 *      Decimal    Hex          Binary
 *                 UTF-8 Encoding
 * To   1,114,112  0x00110000   0001 0001  0000 0000  0000 0000
 *                 244        143        128        128
 *                 0xf4       0x90       0x80       0x80
 *                 1111 0100  1001 0000  1000 0000  1000 0000
 */
    int code_point;
    int is_done =
        guththila_utf8_decoder_decode(decoder, '\xF4', &code_point, env);
    fail_if(is_done != 0, "guththila decoder already done");
    fail_if(GUTHTHILA_UTF8_DECODER_IS_ERROR(decoder) != 0,
            "guththila decoder detected error");
    fail_if(GUTHTHILA_UTF8_DECODER_IS_CODE_POINT(decoder) != 0,
            "guththila decoder already has code point");
    is_done =
        guththila_utf8_decoder_decode(decoder, '\x90', &code_point, env);
    fail_if(is_done != 0, "guththila decoder already done");
    fail_if(GUTHTHILA_UTF8_DECODER_IS_ERROR(decoder) != 0,
            "guththila decoder detected error");
    fail_if(GUTHTHILA_UTF8_DECODER_IS_CODE_POINT(decoder) != 0,
            "guththila decoder already has code point");
    is_done =
        guththila_utf8_decoder_decode(decoder, '\x80', &code_point, env);
    fail_if(is_done != 0, "guththila decoder already done");
    fail_if(GUTHTHILA_UTF8_DECODER_IS_ERROR(decoder) != 0,
            "guththila decoder detected error");
    fail_if(GUTHTHILA_UTF8_DECODER_IS_CODE_POINT(decoder) != 0,
            "guththila decoder already has code point");
    is_done =
        guththila_utf8_decoder_decode(decoder, '\x80', &code_point, env);
    fail_if(is_done == 0, "guththila decoder not done");
    fail_if(GUTHTHILA_UTF8_DECODER_IS_ERROR(decoder) == 0,
            "guththila decoder not detected error");
    fail_if(GUTHTHILA_UTF8_DECODER_IS_CODE_POINT(decoder) != 0,
            "guththila decoder has code point");
}
END_TEST

START_TEST(test_decode_2_byte_missing_continuation)
{
/*
 *       Code Point
 *      Decimal    Hex          Binary
 *                 UTF-8 Encoding
 * To       2,047  0x000007ff   0000 0000  0000 0111  1111 1111
 *                 223        191
 *                 0xdf       0xbf
 *                 1101 1111  1011 1111
 */
    int code_point;
    int is_done =
        guththila_utf8_decoder_decode(decoder, '\xDF', &code_point, env);
    fail_if(is_done != 0, "guththila decoder already done");
    fail_if(GUTHTHILA_UTF8_DECODER_IS_ERROR(decoder) != 0,
            "guththila decoder detected error");
    fail_if(GUTHTHILA_UTF8_DECODER_IS_CODE_POINT(decoder) != 0,
            "guththila decoder already has code point");
    is_done =
        guththila_utf8_decoder_decode(decoder, 'A', &code_point, env);
    fail_if(is_done == 0, "guththila decoder not done");
    fail_if(GUTHTHILA_UTF8_DECODER_IS_ERROR(decoder) == 0,
            "guththila decoder not detected error");
    fail_if(GUTHTHILA_UTF8_DECODER_IS_CODE_POINT(decoder) == 0,
            "guththila decoder has no code point");
    fail_if(code_point != 'A', "guththila code_point not A");
    fail_if(GUTHTHILA_UTF8_DECODER_GET_CODE_POINT(decoder) != 'A',
            "guththila decoder code_point not A");
}
END_TEST

START_TEST(test_encode_decode_all_1_to_3_byte)
{
    int code_point;
    guththila_utf8_encoder_t *encoder = guththila_utf8_encoder_create(env);
    for (code_point = 0; code_point <= 0x0000ffff; code_point++)
    {
        //fprintf(stderr, "CODE POINT: %d\n", code_point);
        guththila_char_t buffer[10];
        int buffer_length = 10;
        int is_done =
            guththila_utf8_encoder_encode(encoder, code_point, buffer,
                                          &buffer_length, env);
        fail_if(is_done == 0, "guththila encoder is not done");
        fail_if(GUTHTHILA_UTF8_ENCODER_IS_ERROR(encoder) != 0,
                "guththila encoder detected error");
        fail_if(GUTHTHILA_UTF8_ENCODER_IS_BUFFERED(encoder) == 0,
                "guththila encoder has no buffer space");
        int encoded_length = 10 - buffer_length;
        int decoded_code_point = 0;
        int index;
        //fprintf(stderr, "Encoding: %d = ", encoded_length);
        //for (index = 0; index < encoded_length; index++)
        //{
        //    fprintf(stderr, " %02x", (0x00ff & buffer[index]));
        //}
        //fprintf(stderr, "\n");
        for (index = 0; index < encoded_length; index++)
        {
            is_done = guththila_utf8_decoder_decode(decoder, buffer[index],
                &decoded_code_point, env);
            fail_if(GUTHTHILA_UTF8_DECODER_IS_ERROR(decoder) != 0,
                    "guththila decoder detected error");
            if (index == encoded_length - 1)
            {
                fail_if(GUTHTHILA_UTF8_DECODER_IS_CODE_POINT(decoder) == 0,
                        "guththila decoder has no code point");
            }
            else
            {
                fail_if(GUTHTHILA_UTF8_DECODER_IS_CODE_POINT(decoder) != 0,
                        "guththila decoder already has code point");
            }
        }
        fail_if(decoded_code_point != code_point,
                "guththila decoded code point not the same");
    }
    guththila_utf8_encoder_free(encoder, env);
}
END_TEST

START_TEST(test_encode_decode_all_4_byte)
{
    int code_point;
    guththila_utf8_encoder_t *encoder = guththila_utf8_encoder_create(env);
    for (code_point = 0x00010000; code_point <= 0x0010ffff; code_point++)
    {
        //fprintf(stderr, "CODE POINT: %d\n", code_point);
        guththila_char_t buffer[10];
        int buffer_length = 10;
        int is_done =
            guththila_utf8_encoder_encode(encoder, code_point, buffer,
                                          &buffer_length, env);
        fail_if(is_done == 0, "guththila encoder is not done");
        fail_if(GUTHTHILA_UTF8_ENCODER_IS_ERROR(encoder) != 0,
                "guththila encoder detected error");
        fail_if(GUTHTHILA_UTF8_ENCODER_IS_BUFFERED(encoder) == 0,
                "guththila encoder has no buffer space");
        int encoded_length = 10 - buffer_length;
        int decoded_code_point = 0;
        int index;
        //fprintf(stderr, "Encoding: %d = ", encoded_length);
        //for (index = 0; index < encoded_length; index++)
        //{
        //    fprintf(stderr, " %02x", (0x00ff & buffer[index]));
        //}
        //fprintf(stderr, "\n");
        for (index = 0; index < encoded_length; index++)
        {
            is_done = guththila_utf8_decoder_decode(decoder, buffer[index],
                &decoded_code_point, env);
            fail_if(GUTHTHILA_UTF8_DECODER_IS_ERROR(decoder) != 0,
                    "guththila decoder detected error");
            if (index == encoded_length - 1)
            {
                fail_if(GUTHTHILA_UTF8_DECODER_IS_CODE_POINT(decoder) == 0,
                        "guththila decoder has no code point");
            }
            else
            {
                fail_if(GUTHTHILA_UTF8_DECODER_IS_CODE_POINT(decoder) != 0,
                        "guththila decoder already has code point");
            }
        }
        fail_if(decoded_code_point != code_point,
                "guththila decoded code point not the same");
    }
    guththila_utf8_encoder_free(encoder, env);
}
END_TEST

Suite * guththila_utf8_decoder_suite(void)
{
    Suite *s = suite_create("Guththila_utf8_decoder");

    /* Core test case */
    TCase *tc_core = tcase_create("utf8_decoder");
    tcase_add_checked_fixture(tc_core, setup_utf8_decoder, teardown_utf8_decoder);
    tcase_add_test(tc_core, test_decode_1_byte_letter);
    tcase_add_test(tc_core, test_decode_2_byte_letter);
    tcase_add_test(tc_core, test_decode_3_byte_letter);
    tcase_add_test(tc_core, test_decode_4_byte_letter);
    tcase_add_test(tc_core, test_decode_1_byte_lower_bound);
    tcase_add_test(tc_core, test_decode_1_byte_upper_bound);
    tcase_add_test(tc_core, test_decode_2_byte_lower_bound);
    tcase_add_test(tc_core, test_decode_2_byte_upper_bound);
    tcase_add_test(tc_core, test_decode_3_byte_lower_bound);
    tcase_add_test(tc_core, test_decode_3_byte_upper_bound);
    tcase_add_test(tc_core, test_decode_4_byte_lower_bound);
    tcase_add_test(tc_core, test_decode_4_byte_upper_bound);
    tcase_add_test(tc_core, test_decode_2_byte_overlong);
    tcase_add_test(tc_core, test_decode_4_byte_over_upper_bound);
    tcase_add_test(tc_core, test_decode_2_byte_missing_continuation);
    tcase_add_test(tc_core, test_encode_decode_all_1_to_3_byte);
    tcase_set_timeout(tc_core, 600);
    tcase_add_test(tc_core, test_encode_decode_all_4_byte);
    suite_add_tcase(s, tc_core);
    return s;
}


<|start_filename|>xdocs/api/html/group__axiom__attribute.html<|end_filename|>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html><head><meta http-equiv="Content-Type" content="text/html;charset=UTF-8">
<title>Axis2/C: attribute</title>
<link href="doxygen.css" rel="stylesheet" type="text/css">
<link href="tabs.css" rel="stylesheet" type="text/css">
</head><body>
<!-- Generated by Doxygen 1.5.3 -->
<div class="tabs">
  <ul>
    <li><a href="index.html"><span>Main&nbsp;Page</span></a></li>
    <li><a href="modules.html"><span>Modules</span></a></li>
    <li><a href="annotated.html"><span>Classes</span></a></li>
    <li><a href="files.html"><span>Files</span></a></li>
    <li><a href="dirs.html"><span>Directories</span></a></li>
    <li><a href="pages.html"><span>Related&nbsp;Pages</span></a></li>
    <li><a href="examples.html"><span>Examples</span></a></li>
    <li>
      <form action="search.php" method="get">
        <table cellspacing="0" cellpadding="0" border="0">
          <tr>
            <td><label>&nbsp;<u>S</u>earch&nbsp;for&nbsp;</label></td>
            <td><input type="text" name="query" value="" size="20" accesskey="s"/></td>
          </tr>
        </table>
      </form>
    </li>
  </ul>
</div>
<h1>attribute<br>
<small>
[<a class="el" href="group__axiom__om.html">AXIOM</a>]</small>
</h1><table border="0" cellpadding="0" cellspacing="0">
<tr><td></td></tr>
<tr><td colspan="2"><br><h2>Typedefs</h2></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="gf77817edfc3f692871ad6e3a4d1160ff"></a><!-- doxytag: member="axiom_attribute::axiom_attribute_t" ref="gf77817edfc3f692871ad6e3a4d1160ff" args="" -->
typedef struct <br>
axiom_attribute&nbsp;</td><td class="memItemRight" valign="bottom"><b>axiom_attribute_t</b></td></tr>

<tr><td colspan="2"><br><h2>Functions</h2></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top">AXIS2_EXTERN <br>
axiom_attribute_t *&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__axiom__attribute.html#gda66e5da53578d93c34f0c717394605d">axiom_attribute_create</a> (const <a class="el" href="structaxutil__env.html">axutil_env_t</a> *env, const axis2_char_t *localname, const axis2_char_t *value, axiom_namespace_t *ns)</td></tr>

<tr><td class="memItemLeft" nowrap align="right" valign="top">AXIS2_EXTERN void&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__axiom__attribute.html#geb9ac7efe5dbb33273cd37c9ddc99b0a">axiom_attribute_free_void_arg</a> (void *om_attribute, const <a class="el" href="structaxutil__env.html">axutil_env_t</a> *env)</td></tr>

<tr><td class="memItemLeft" nowrap align="right" valign="top">AXIS2_EXTERN void&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__axiom__attribute.html#gd28f7c80adad15d93a1be5a8918c92c9">axiom_attribute_free</a> (struct axiom_attribute *om_attribute, const <a class="el" href="structaxutil__env.html">axutil_env_t</a> *env)</td></tr>

<tr><td class="memItemLeft" nowrap align="right" valign="top">AXIS2_EXTERN <br>
axutil_qname_t *&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__axiom__attribute.html#g749197cc40576ff4139c9d19298f9f24">axiom_attribute_get_qname</a> (struct axiom_attribute *om_attribute, const <a class="el" href="structaxutil__env.html">axutil_env_t</a> *env)</td></tr>

<tr><td class="memItemLeft" nowrap align="right" valign="top">AXIS2_EXTERN int&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__axiom__attribute.html#gac6dabe7926ef1275437d5b5d1363108">axiom_attribute_serialize</a> (struct axiom_attribute *om_attribute, const <a class="el" href="structaxutil__env.html">axutil_env_t</a> *env, <a class="el" href="group__axiom__output.html#gfe1ea804d7a8179e85371f065cd9df09">axiom_output_t</a> *om_output)</td></tr>

<tr><td class="memItemLeft" nowrap align="right" valign="top">AXIS2_EXTERN <br>
axis2_char_t *&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__axiom__attribute.html#g7ec0c8a1b00cdd260d3bbbe9c25d48d6">axiom_attribute_get_localname</a> (struct axiom_attribute *om_attribute, const <a class="el" href="structaxutil__env.html">axutil_env_t</a> *env)</td></tr>

<tr><td class="memItemLeft" nowrap align="right" valign="top">AXIS2_EXTERN <br>
axis2_char_t *&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__axiom__attribute.html#g95d26b917b6beea23aada61bf1402376">axiom_attribute_get_value</a> (struct axiom_attribute *om_attribute, const <a class="el" href="structaxutil__env.html">axutil_env_t</a> *env)</td></tr>

<tr><td class="memItemLeft" nowrap align="right" valign="top">AXIS2_EXTERN <br>
axiom_namespace_t *&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__axiom__attribute.html#gf5237ea2eed7bb6326f19e2cda6ffe9c">axiom_attribute_get_namespace</a> (struct axiom_attribute *om_attribute, const <a class="el" href="structaxutil__env.html">axutil_env_t</a> *env)</td></tr>

<tr><td class="memItemLeft" nowrap align="right" valign="top">AXIS2_EXTERN <br>
axis2_status_t&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__axiom__attribute.html#g45d596e4d7eaf81d205f9b8f01c580e5">axiom_attribute_set_localname</a> (struct axiom_attribute *om_attribute, const <a class="el" href="structaxutil__env.html">axutil_env_t</a> *env, const axis2_char_t *localname)</td></tr>

<tr><td class="memItemLeft" nowrap align="right" valign="top">AXIS2_EXTERN <br>
axis2_status_t&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__axiom__attribute.html#g04e602a4d9456b9111bdbad5ea89a0ec">axiom_attribute_set_value</a> (struct axiom_attribute *om_attribute, const <a class="el" href="structaxutil__env.html">axutil_env_t</a> *env, const axis2_char_t *value)</td></tr>

<tr><td class="memItemLeft" nowrap align="right" valign="top">AXIS2_EXTERN <br>
axis2_status_t&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__axiom__attribute.html#g4b27824f6bb94509562fe09644adf9a3">axiom_attribute_set_namespace</a> (struct axiom_attribute *om_attribute, const <a class="el" href="structaxutil__env.html">axutil_env_t</a> *env, axiom_namespace_t *om_namespace)</td></tr>

<tr><td class="memItemLeft" nowrap align="right" valign="top">AXIS2_EXTERN struct <br>
axiom_attribute *&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__axiom__attribute.html#g21014966fb2d80f589bbbe23a66ff478">axiom_attribute_clone</a> (struct axiom_attribute *om_attribute, const <a class="el" href="structaxutil__env.html">axutil_env_t</a> *env)</td></tr>

<tr><td class="memItemLeft" nowrap align="right" valign="top">AXIS2_EXTERN <br>
axis2_status_t&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__axiom__attribute.html#g4e9157492474b5a0e828935b606f943e">axiom_attribute_increment_ref</a> (struct axiom_attribute *om_attribute, const <a class="el" href="structaxutil__env.html">axutil_env_t</a> *env)</td></tr>

<tr><td class="memItemLeft" nowrap align="right" valign="top">AXIS2_EXTERN <br>
axiom_attribute_t *&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__axiom__attribute.html#gb9836150f9d8af4256bcadace600c79f">axiom_attribute_create_str</a> (const <a class="el" href="structaxutil__env.html">axutil_env_t</a> *env, axutil_string_t *localname, axutil_string_t *value, axiom_namespace_t *ns)</td></tr>

<tr><td class="memItemLeft" nowrap align="right" valign="top">AXIS2_EXTERN <br>
axutil_string_t *&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__axiom__attribute.html#g9e36fa98afd7d60eff62da45e760dce4">axiom_attribute_get_localname_str</a> (axiom_attribute_t *attribute, const <a class="el" href="structaxutil__env.html">axutil_env_t</a> *env)</td></tr>

<tr><td class="memItemLeft" nowrap align="right" valign="top">AXIS2_EXTERN <br>
axutil_string_t *&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__axiom__attribute.html#g0f1e956758b142ba21d18dcd30cca1d9">axiom_attribute_get_value_str</a> (axiom_attribute_t *attribute, const <a class="el" href="structaxutil__env.html">axutil_env_t</a> *env)</td></tr>

<tr><td class="memItemLeft" nowrap align="right" valign="top">AXIS2_EXTERN <br>
axis2_status_t&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__axiom__attribute.html#g5433c75c8f87f602ae89c9943f45df81">axiom_attribute_set_localname_str</a> (axiom_attribute_t *attribute, const <a class="el" href="structaxutil__env.html">axutil_env_t</a> *env, axutil_string_t *localname)</td></tr>

<tr><td class="memItemLeft" nowrap align="right" valign="top">AXIS2_EXTERN <br>
axis2_status_t&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__axiom__attribute.html#g10bfe30de55eb9f2f19829b1578913c1">axiom_attribute_set_value_str</a> (axiom_attribute_t *attribute, const <a class="el" href="structaxutil__env.html">axutil_env_t</a> *env, axutil_string_t *value)</td></tr>

</table>
<hr><h2>Function Documentation</h2>
<a class="anchor" name="g21014966fb2d80f589bbbe23a66ff478"></a><!-- doxytag: member="axiom_attribute.h::axiom_attribute_clone" ref="g21014966fb2d80f589bbbe23a66ff478" args="(struct axiom_attribute *om_attribute, const axutil_env_t *env)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">AXIS2_EXTERN struct axiom_attribute* axiom_attribute_clone           </td>
          <td>(</td>
          <td class="paramtype">struct axiom_attribute *&nbsp;</td>
          <td class="paramname"> <em>om_attribute</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const <a class="el" href="structaxutil__env.html">axutil_env_t</a> *&nbsp;</td>
          <td class="paramname"> <em>env</em></td><td>&nbsp;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td><td width="100%"><code> [read]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
clones an om attribute <dl compact><dt><b>Parameters:</b></dt><dd>
  <table border="0" cellspacing="2" cellpadding="0">
    <tr><td valign="top"></td><td valign="top"><em>om_attibute</em>&nbsp;</td><td></td></tr>
    <tr><td valign="top"></td><td valign="top"><em>env</em>&nbsp;</td><td>environment </td></tr>
  </table>
</dl>
<dl class="return" compact><dt><b>Returns:</b></dt><dd>pointer to cloned om attribute struct on success NULL otherwise </dd></dl>

</div>
</div><p>
<a class="anchor" name="gda66e5da53578d93c34f0c717394605d"></a><!-- doxytag: member="axiom_attribute.h::axiom_attribute_create" ref="gda66e5da53578d93c34f0c717394605d" args="(const axutil_env_t *env, const axis2_char_t *localname, const axis2_char_t *value, axiom_namespace_t *ns)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">AXIS2_EXTERN axiom_attribute_t* axiom_attribute_create           </td>
          <td>(</td>
          <td class="paramtype">const <a class="el" href="structaxutil__env.html">axutil_env_t</a> *&nbsp;</td>
          <td class="paramname"> <em>env</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const axis2_char_t *&nbsp;</td>
          <td class="paramname"> <em>localname</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const axis2_char_t *&nbsp;</td>
          <td class="paramname"> <em>value</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">axiom_namespace_t *&nbsp;</td>
          <td class="paramname"> <em>ns</em></td><td>&nbsp;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td><td width="100%"></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
creates an om_attribute struct <dl compact><dt><b>Parameters:</b></dt><dd>
  <table border="0" cellspacing="2" cellpadding="0">
    <tr><td valign="top"></td><td valign="top"><em>env</em>&nbsp;</td><td>Environment. MUST NOT be NULL </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>localname</em>&nbsp;</td><td>localname of the attribute, should not be a null value. </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>value</em>&nbsp;</td><td>normalized attribute value. cannot be NULL </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>ns</em>&nbsp;</td><td>namespace, if any, of the attribute. Optional, can be NULL om_attribute wont free the ns </td></tr>
  </table>
</dl>
<dl class="return" compact><dt><b>Returns:</b></dt><dd>a pointer to newly created attribute struct, returns NULL on error with error code set in environment's error. </dd></dl>

</div>
</div><p>
<a class="anchor" name="gb9836150f9d8af4256bcadace600c79f"></a><!-- doxytag: member="axiom_attribute.h::axiom_attribute_create_str" ref="gb9836150f9d8af4256bcadace600c79f" args="(const axutil_env_t *env, axutil_string_t *localname, axutil_string_t *value, axiom_namespace_t *ns)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">AXIS2_EXTERN axiom_attribute_t* axiom_attribute_create_str           </td>
          <td>(</td>
          <td class="paramtype">const <a class="el" href="structaxutil__env.html">axutil_env_t</a> *&nbsp;</td>
          <td class="paramname"> <em>env</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">axutil_string_t *&nbsp;</td>
          <td class="paramname"> <em>localname</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">axutil_string_t *&nbsp;</td>
          <td class="paramname"> <em>value</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">axiom_namespace_t *&nbsp;</td>
          <td class="paramname"> <em>ns</em></td><td>&nbsp;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td><td width="100%"></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
Create OM attribute <dl compact><dt><b>Parameters:</b></dt><dd>
  <table border="0" cellspacing="2" cellpadding="0">
    <tr><td valign="top"></td><td valign="top"><em>om_attribute</em>&nbsp;</td><td>a pointer to om_attribute struct </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>env</em>&nbsp;</td><td>environment, MUST NOT be NULL. </td></tr>
  </table>
</dl>
<dl class="return" compact><dt><b>Returns:</b></dt><dd>status code, AXIS2_SUCCESS on success and AXIS2_FAILURE on error. </dd></dl>

</div>
</div><p>
<a class="anchor" name="gd28f7c80adad15d93a1be5a8918c92c9"></a><!-- doxytag: member="axiom_attribute.h::axiom_attribute_free" ref="gd28f7c80adad15d93a1be5a8918c92c9" args="(struct axiom_attribute *om_attribute, const axutil_env_t *env)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">AXIS2_EXTERN void axiom_attribute_free           </td>
          <td>(</td>
          <td class="paramtype">struct axiom_attribute *&nbsp;</td>
          <td class="paramname"> <em>om_attribute</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const <a class="el" href="structaxutil__env.html">axutil_env_t</a> *&nbsp;</td>
          <td class="paramname"> <em>env</em></td><td>&nbsp;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td><td width="100%"></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
Free an axiom_attribute struct <dl compact><dt><b>Parameters:</b></dt><dd>
  <table border="0" cellspacing="2" cellpadding="0">
    <tr><td valign="top"></td><td valign="top"><em>om_attribute</em>&nbsp;</td><td>pointer to attribute struct to be freed </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>env</em>&nbsp;</td><td>Environment. MUST NOT be NULL </td></tr>
  </table>
</dl>

</div>
</div><p>
<a class="anchor" name="geb9ac7efe5dbb33273cd37c9ddc99b0a"></a><!-- doxytag: member="axiom_attribute.h::axiom_attribute_free_void_arg" ref="geb9ac7efe5dbb33273cd37c9ddc99b0a" args="(void *om_attribute, const axutil_env_t *env)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">AXIS2_EXTERN void axiom_attribute_free_void_arg           </td>
          <td>(</td>
          <td class="paramtype">void *&nbsp;</td>
          <td class="paramname"> <em>om_attribute</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const <a class="el" href="structaxutil__env.html">axutil_env_t</a> *&nbsp;</td>
          <td class="paramname"> <em>env</em></td><td>&nbsp;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td><td width="100%"></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
Free om attribute passed as void pointer. This will be cast into appropriate type and then pass the cast object into the om_attribute structure's free method <dl compact><dt><b>Parameters:</b></dt><dd>
  <table border="0" cellspacing="2" cellpadding="0">
    <tr><td valign="top"></td><td valign="top"><em>om_attribute</em>&nbsp;</td><td>pointer to attribute struct to be freed </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>env</em>&nbsp;</td><td>Environment. MUST NOT be NULL </td></tr>
  </table>
</dl>

</div>
</div><p>
<a class="anchor" name="g7ec0c8a1b00cdd260d3bbbe9c25d48d6"></a><!-- doxytag: member="axiom_attribute.h::axiom_attribute_get_localname" ref="g7ec0c8a1b00cdd260d3bbbe9c25d48d6" args="(struct axiom_attribute *om_attribute, const axutil_env_t *env)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">AXIS2_EXTERN axis2_char_t* axiom_attribute_get_localname           </td>
          <td>(</td>
          <td class="paramtype">struct axiom_attribute *&nbsp;</td>
          <td class="paramname"> <em>om_attribute</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const <a class="el" href="structaxutil__env.html">axutil_env_t</a> *&nbsp;</td>
          <td class="paramname"> <em>env</em></td><td>&nbsp;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td><td width="100%"></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
Returns the localname of this attribute <dl compact><dt><b>Parameters:</b></dt><dd>
  <table border="0" cellspacing="2" cellpadding="0">
    <tr><td valign="top"></td><td valign="top"><em>om_attribute</em>&nbsp;</td><td>pointer to attribute struct </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>env</em>&nbsp;</td><td>environment. MUST NOT not be NULL. </td></tr>
  </table>
</dl>
<dl class="return" compact><dt><b>Returns:</b></dt><dd>localname returns NULL on error. </dd></dl>

</div>
</div><p>
<a class="anchor" name="g9e36fa98afd7d60eff62da45e760dce4"></a><!-- doxytag: member="axiom_attribute.h::axiom_attribute_get_localname_str" ref="g9e36fa98afd7d60eff62da45e760dce4" args="(axiom_attribute_t *attribute, const axutil_env_t *env)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">AXIS2_EXTERN axutil_string_t* axiom_attribute_get_localname_str           </td>
          <td>(</td>
          <td class="paramtype">axiom_attribute_t *&nbsp;</td>
          <td class="paramname"> <em>attribute</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const <a class="el" href="structaxutil__env.html">axutil_env_t</a> *&nbsp;</td>
          <td class="paramname"> <em>env</em></td><td>&nbsp;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td><td width="100%"></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
Get the localname as a string <dl compact><dt><b>Parameters:</b></dt><dd>
  <table border="0" cellspacing="2" cellpadding="0">
    <tr><td valign="top"></td><td valign="top"><em>om_attribute</em>&nbsp;</td><td>a pointer to om_attribute struct </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>env</em>&nbsp;</td><td>environment, MUST NOT be NULL. </td></tr>
  </table>
</dl>
<dl class="return" compact><dt><b>Returns:</b></dt><dd>status code, AXIS2_SUCCESS on success and AXIS2_FAILURE on error. </dd></dl>

</div>
</div><p>
<a class="anchor" name="gf5237ea2eed7bb6326f19e2cda6ffe9c"></a><!-- doxytag: member="axiom_attribute.h::axiom_attribute_get_namespace" ref="gf5237ea2eed7bb6326f19e2cda6ffe9c" args="(struct axiom_attribute *om_attribute, const axutil_env_t *env)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">AXIS2_EXTERN axiom_namespace_t* axiom_attribute_get_namespace           </td>
          <td>(</td>
          <td class="paramtype">struct axiom_attribute *&nbsp;</td>
          <td class="paramname"> <em>om_attribute</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const <a class="el" href="structaxutil__env.html">axutil_env_t</a> *&nbsp;</td>
          <td class="paramname"> <em>env</em></td><td>&nbsp;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td><td width="100%"></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
returns namespace of this attribute <dl compact><dt><b>Parameters:</b></dt><dd>
  <table border="0" cellspacing="2" cellpadding="0">
    <tr><td valign="top"></td><td valign="top"><em>om_attribute</em>&nbsp;</td><td></td></tr>
    <tr><td valign="top"></td><td valign="top"><em>env</em>&nbsp;</td><td>environment MUST NOT be NULL </td></tr>
  </table>
</dl>
<dl class="return" compact><dt><b>Returns:</b></dt><dd>a pointer to om_namespace struct , returns NULL on error. </dd></dl>

</div>
</div><p>
<a class="anchor" name="g749197cc40576ff4139c9d19298f9f24"></a><!-- doxytag: member="axiom_attribute.h::axiom_attribute_get_qname" ref="g749197cc40576ff4139c9d19298f9f24" args="(struct axiom_attribute *om_attribute, const axutil_env_t *env)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">AXIS2_EXTERN axutil_qname_t* axiom_attribute_get_qname           </td>
          <td>(</td>
          <td class="paramtype">struct axiom_attribute *&nbsp;</td>
          <td class="paramname"> <em>om_attribute</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const <a class="el" href="structaxutil__env.html">axutil_env_t</a> *&nbsp;</td>
          <td class="paramname"> <em>env</em></td><td>&nbsp;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td><td width="100%"></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
Creates and returns a qname struct for this attribute <dl compact><dt><b>Parameters:</b></dt><dd>
  <table border="0" cellspacing="2" cellpadding="0">
    <tr><td valign="top"></td><td valign="top"><em>om_attribute</em>&nbsp;</td><td>pointer to attribute struct for which the qname is to be returned </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>env</em>&nbsp;</td><td>Environment. MUST NOT be NULL </td></tr>
  </table>
</dl>
<dl class="return" compact><dt><b>Returns:</b></dt><dd>returns qname for given attribute.NULL on error </dd></dl>

</div>
</div><p>
<a class="anchor" name="g95d26b917b6beea23aada61bf1402376"></a><!-- doxytag: member="axiom_attribute.h::axiom_attribute_get_value" ref="g95d26b917b6beea23aada61bf1402376" args="(struct axiom_attribute *om_attribute, const axutil_env_t *env)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">AXIS2_EXTERN axis2_char_t* axiom_attribute_get_value           </td>
          <td>(</td>
          <td class="paramtype">struct axiom_attribute *&nbsp;</td>
          <td class="paramname"> <em>om_attribute</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const <a class="el" href="structaxutil__env.html">axutil_env_t</a> *&nbsp;</td>
          <td class="paramname"> <em>env</em></td><td>&nbsp;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td><td width="100%"></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
returns value of this attribute <dl compact><dt><b>Parameters:</b></dt><dd>
  <table border="0" cellspacing="2" cellpadding="0">
    <tr><td valign="top"></td><td valign="top"><em>om_attribute</em>&nbsp;</td><td>pointer to om_attribute struct </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>env</em>&nbsp;</td><td>environment N not be null </td></tr>
  </table>
</dl>
<dl class="return" compact><dt><b>Returns:</b></dt><dd>value , null on error </dd></dl>

</div>
</div><p>
<a class="anchor" name="g0f1e956758b142ba21d18dcd30cca1d9"></a><!-- doxytag: member="axiom_attribute.h::axiom_attribute_get_value_str" ref="g0f1e956758b142ba21d18dcd30cca1d9" args="(axiom_attribute_t *attribute, const axutil_env_t *env)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">AXIS2_EXTERN axutil_string_t* axiom_attribute_get_value_str           </td>
          <td>(</td>
          <td class="paramtype">axiom_attribute_t *&nbsp;</td>
          <td class="paramname"> <em>attribute</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const <a class="el" href="structaxutil__env.html">axutil_env_t</a> *&nbsp;</td>
          <td class="paramname"> <em>env</em></td><td>&nbsp;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td><td width="100%"></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
Get the value as a string <dl compact><dt><b>Parameters:</b></dt><dd>
  <table border="0" cellspacing="2" cellpadding="0">
    <tr><td valign="top"></td><td valign="top"><em>om_attribute</em>&nbsp;</td><td>a pointer to om_attribute struct </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>env</em>&nbsp;</td><td>environment, MUST NOT be NULL. </td></tr>
  </table>
</dl>
<dl class="return" compact><dt><b>Returns:</b></dt><dd>status code, AXIS2_SUCCESS on success and AXIS2_FAILURE on error. </dd></dl>

</div>
</div><p>
<a class="anchor" name="g4e9157492474b5a0e828935b606f943e"></a><!-- doxytag: member="axiom_attribute.h::axiom_attribute_increment_ref" ref="g4e9157492474b5a0e828935b606f943e" args="(struct axiom_attribute *om_attribute, const axutil_env_t *env)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">AXIS2_EXTERN axis2_status_t axiom_attribute_increment_ref           </td>
          <td>(</td>
          <td class="paramtype">struct axiom_attribute *&nbsp;</td>
          <td class="paramname"> <em>om_attribute</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const <a class="el" href="structaxutil__env.html">axutil_env_t</a> *&nbsp;</td>
          <td class="paramname"> <em>env</em></td><td>&nbsp;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td><td width="100%"></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
Increment the reference counter. <dl compact><dt><b>Parameters:</b></dt><dd>
  <table border="0" cellspacing="2" cellpadding="0">
    <tr><td valign="top"></td><td valign="top"><em>om_attribute</em>&nbsp;</td><td>a pointer to om_attribute struct </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>env</em>&nbsp;</td><td>environment, MUST NOT be NULL. </td></tr>
  </table>
</dl>
<dl class="return" compact><dt><b>Returns:</b></dt><dd>status code, AXIS2_SUCCESS on success and AXIS2_FAILURE on error. </dd></dl>

</div>
</div><p>
<a class="anchor" name="gac6dabe7926ef1275437d5b5d1363108"></a><!-- doxytag: member="axiom_attribute.h::axiom_attribute_serialize" ref="gac6dabe7926ef1275437d5b5d1363108" args="(struct axiom_attribute *om_attribute, const axutil_env_t *env, axiom_output_t *om_output)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">AXIS2_EXTERN int axiom_attribute_serialize           </td>
          <td>(</td>
          <td class="paramtype">struct axiom_attribute *&nbsp;</td>
          <td class="paramname"> <em>om_attribute</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const <a class="el" href="structaxutil__env.html">axutil_env_t</a> *&nbsp;</td>
          <td class="paramname"> <em>env</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype"><a class="el" href="group__axiom__output.html#gfe1ea804d7a8179e85371f065cd9df09">axiom_output_t</a> *&nbsp;</td>
          <td class="paramname"> <em>om_output</em></td><td>&nbsp;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td><td width="100%"></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
Serialize op <dl compact><dt><b>Parameters:</b></dt><dd>
  <table border="0" cellspacing="2" cellpadding="0">
    <tr><td valign="top"></td><td valign="top"><em>om_attribute</em>&nbsp;</td><td>pointer to attribute struct to be serialized </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>env</em>&nbsp;</td><td>Environment. MUST NOT be NULL, </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>om_output</em>&nbsp;</td><td>AXIOM output handler to be used in serializing </td></tr>
  </table>
</dl>
<dl class="return" compact><dt><b>Returns:</b></dt><dd>satus of the op. AXIS2_SUCCESS on success else AXIS2_FAILURE. </dd></dl>

</div>
</div><p>
<a class="anchor" name="g45d596e4d7eaf81d205f9b8f01c580e5"></a><!-- doxytag: member="axiom_attribute.h::axiom_attribute_set_localname" ref="g45d596e4d7eaf81d205f9b8f01c580e5" args="(struct axiom_attribute *om_attribute, const axutil_env_t *env, const axis2_char_t *localname)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">AXIS2_EXTERN axis2_status_t axiom_attribute_set_localname           </td>
          <td>(</td>
          <td class="paramtype">struct axiom_attribute *&nbsp;</td>
          <td class="paramname"> <em>om_attribute</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const <a class="el" href="structaxutil__env.html">axutil_env_t</a> *&nbsp;</td>
          <td class="paramname"> <em>env</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const axis2_char_t *&nbsp;</td>
          <td class="paramname"> <em>localname</em></td><td>&nbsp;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td><td width="100%"></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
sets the localname of the attribute <dl compact><dt><b>Parameters:</b></dt><dd>
  <table border="0" cellspacing="2" cellpadding="0">
    <tr><td valign="top"></td><td valign="top"><em>om_attribute</em>&nbsp;</td><td>pointer to om attribute struct. </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>env</em>&nbsp;</td><td>environment, MUST NOT be null. </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>localname</em>&nbsp;</td><td>localname that should be set for this attribute </td></tr>
  </table>
</dl>
<dl class="return" compact><dt><b>Returns:</b></dt><dd>status code AXIS2_SUCCESS on success and AXIS2_FAILURE on error. </dd></dl>

</div>
</div><p>
<a class="anchor" name="g5433c75c8f87f602ae89c9943f45df81"></a><!-- doxytag: member="axiom_attribute.h::axiom_attribute_set_localname_str" ref="g5433c75c8f87f602ae89c9943f45df81" args="(axiom_attribute_t *attribute, const axutil_env_t *env, axutil_string_t *localname)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">AXIS2_EXTERN axis2_status_t axiom_attribute_set_localname_str           </td>
          <td>(</td>
          <td class="paramtype">axiom_attribute_t *&nbsp;</td>
          <td class="paramname"> <em>attribute</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const <a class="el" href="structaxutil__env.html">axutil_env_t</a> *&nbsp;</td>
          <td class="paramname"> <em>env</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">axutil_string_t *&nbsp;</td>
          <td class="paramname"> <em>localname</em></td><td>&nbsp;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td><td width="100%"></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
Set the localname of the attribute <dl compact><dt><b>Parameters:</b></dt><dd>
  <table border="0" cellspacing="2" cellpadding="0">
    <tr><td valign="top"></td><td valign="top"><em>om_attribute</em>&nbsp;</td><td>a pointer to om_attribute struct </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>env</em>&nbsp;</td><td>environment, MUST NOT be NULL. </td></tr>
  </table>
</dl>
<dl class="return" compact><dt><b>Returns:</b></dt><dd>status code, AXIS2_SUCCESS on success and AXIS2_FAILURE on error. </dd></dl>

</div>
</div><p>
<a class="anchor" name="g4b27824f6bb94509562fe09644adf9a3"></a><!-- doxytag: member="axiom_attribute.h::axiom_attribute_set_namespace" ref="g4b27824f6bb94509562fe09644adf9a3" args="(struct axiom_attribute *om_attribute, const axutil_env_t *env, axiom_namespace_t *om_namespace)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">AXIS2_EXTERN axis2_status_t axiom_attribute_set_namespace           </td>
          <td>(</td>
          <td class="paramtype">struct axiom_attribute *&nbsp;</td>
          <td class="paramname"> <em>om_attribute</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const <a class="el" href="structaxutil__env.html">axutil_env_t</a> *&nbsp;</td>
          <td class="paramname"> <em>env</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">axiom_namespace_t *&nbsp;</td>
          <td class="paramname"> <em>om_namespace</em></td><td>&nbsp;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td><td width="100%"></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
set namespace of the attribute <dl compact><dt><b>Parameters:</b></dt><dd>
  <table border="0" cellspacing="2" cellpadding="0">
    <tr><td valign="top"></td><td valign="top"><em>om_attribute</em>&nbsp;</td><td>a pointer to om_attribute struct </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>env</em>&nbsp;</td><td>environment, MUST NOT be NULL. </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>om_namespace</em>&nbsp;</td><td>a pointer to om_namespace struct that should be set for this attribute </td></tr>
  </table>
</dl>
<dl class="return" compact><dt><b>Returns:</b></dt><dd>status code, AXIS2_SUCCESS on success and AXIS2_FAILURE on error. </dd></dl>

</div>
</div><p>
<a class="anchor" name="g04e602a4d9456b9111bdbad5ea89a0ec"></a><!-- doxytag: member="axiom_attribute.h::axiom_attribute_set_value" ref="g04e602a4d9456b9111bdbad5ea89a0ec" args="(struct axiom_attribute *om_attribute, const axutil_env_t *env, const axis2_char_t *value)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">AXIS2_EXTERN axis2_status_t axiom_attribute_set_value           </td>
          <td>(</td>
          <td class="paramtype">struct axiom_attribute *&nbsp;</td>
          <td class="paramname"> <em>om_attribute</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const <a class="el" href="structaxutil__env.html">axutil_env_t</a> *&nbsp;</td>
          <td class="paramname"> <em>env</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const axis2_char_t *&nbsp;</td>
          <td class="paramname"> <em>value</em></td><td>&nbsp;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td><td width="100%"></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
set the attribute value <dl compact><dt><b>Parameters:</b></dt><dd>
  <table border="0" cellspacing="2" cellpadding="0">
    <tr><td valign="top"></td><td valign="top"><em>om_attribute</em>&nbsp;</td><td>a pointer to om_attribute struct. </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>env</em>&nbsp;</td><td>environment, MUST NOT be NULL. </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>value</em>&nbsp;</td><td>value that should be set for this attribute </td></tr>
  </table>
</dl>
<dl class="return" compact><dt><b>Returns:</b></dt><dd>status code, AXIS2_SUCCESS on success and AXIS2_FAILURE on error. </dd></dl>

</div>
</div><p>
<a class="anchor" name="g10bfe30de55eb9f2f19829b1578913c1"></a><!-- doxytag: member="axiom_attribute.h::axiom_attribute_set_value_str" ref="g10bfe30de55eb9f2f19829b1578913c1" args="(axiom_attribute_t *attribute, const axutil_env_t *env, axutil_string_t *value)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">AXIS2_EXTERN axis2_status_t axiom_attribute_set_value_str           </td>
          <td>(</td>
          <td class="paramtype">axiom_attribute_t *&nbsp;</td>
          <td class="paramname"> <em>attribute</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const <a class="el" href="structaxutil__env.html">axutil_env_t</a> *&nbsp;</td>
          <td class="paramname"> <em>env</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">axutil_string_t *&nbsp;</td>
          <td class="paramname"> <em>value</em></td><td>&nbsp;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td><td width="100%"></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
Set the value of the attribute <dl compact><dt><b>Parameters:</b></dt><dd>
  <table border="0" cellspacing="2" cellpadding="0">
    <tr><td valign="top"></td><td valign="top"><em>om_attribute</em>&nbsp;</td><td>a pointer to om_attribute struct </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>env</em>&nbsp;</td><td>environment, MUST NOT be NULL. </td></tr>
  </table>
</dl>
<dl class="return" compact><dt><b>Returns:</b></dt><dd>status code, AXIS2_SUCCESS on success and AXIS2_FAILURE on error. </dd></dl>

</div>
</div><p>
<hr size="1"><address style="text-align: right;"><small>Generated on Fri Apr 17 11:49:44 2009 for Axis2/C by&nbsp;
<a href="http://www.doxygen.org/index.html">
<img src="doxygen.png" alt="doxygen" align="middle" border="0"></a> 1.5.3 </small></address>
</body>
</html>


<|start_filename|>src/core/deployment/ws_info.c<|end_filename|>

/*
 * 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.
 */

#include "axis2_ws_info.h"
#include <string.h>

struct axis2_ws_info
{
    axis2_char_t *file_name;
    long last_modified_date;

    /**
     * To check whether the file is a module or a servise
     */
    int type;
};

AXIS2_EXTERN axis2_ws_info_t *AXIS2_CALL
axis2_ws_info_create_with_file_name_and_last_modified_date(
    const axutil_env_t * env,
    axis2_char_t * file_name,
    long last_modified_date)
{
    axis2_ws_info_t *ws_info = NULL;

    AXIS2_PARAM_CHECK(env->error, file_name, NULL);

    ws_info = (axis2_ws_info_t *) AXIS2_MALLOC(env->allocator,
                                               sizeof(axis2_ws_info_t));

    if (!ws_info)
    {
        AXIS2_ERROR_SET(env->error, AXIS2_ERROR_NO_MEMORY, AXIS2_FAILURE);
        return NULL;
    }

    ws_info->file_name = NULL;
    ws_info->last_modified_date = 0;
    ws_info->type = 0;

    ws_info->file_name = axutil_strdup(env, file_name);
    if (!ws_info->file_name)
    {
        axis2_ws_info_free(ws_info, env);
        AXIS2_ERROR_SET(env->error, AXIS2_ERROR_NO_MEMORY, AXIS2_FAILURE);
        return NULL;
    }

    ws_info->last_modified_date = last_modified_date;

    return ws_info;
}

AXIS2_EXTERN axis2_ws_info_t *AXIS2_CALL
axis2_ws_info_create_with_file_name_and_last_modified_date_and_type(
    const axutil_env_t * env,
    axis2_char_t * file_name,
    long last_modified_date,
    int type)
{
    axis2_ws_info_t *ws_info = NULL;

    AXIS2_PARAM_CHECK(env->error, file_name, NULL);

    ws_info = (axis2_ws_info_t *)
        axis2_ws_info_create_with_file_name_and_last_modified_date(env,
                                                                   file_name,
                                                                   last_modified_date);
    if (!ws_info)
    {
        axis2_ws_info_free(ws_info, env);
        AXIS2_ERROR_SET(env->error, AXIS2_ERROR_NO_MEMORY, AXIS2_FAILURE);
        return NULL;
    }
    ws_info->type = type;
    return ws_info;
}

AXIS2_EXTERN void AXIS2_CALL
axis2_ws_info_free(
    axis2_ws_info_t * ws_info,
    const axutil_env_t * env)
{
    if (ws_info->file_name)
    {
        AXIS2_FREE(env->allocator, ws_info->file_name);
    }

    if (ws_info)
    {
        AXIS2_FREE(env->allocator, ws_info);
    }

    return;
}

AXIS2_EXTERN axis2_char_t *AXIS2_CALL
axis2_ws_info_get_file_name(
    const axis2_ws_info_t * ws_info,
    const axutil_env_t * env)
{
    return ws_info->file_name;
}

AXIS2_EXTERN axis2_status_t AXIS2_CALL
axis2_ws_info_set_file_name(
    axis2_ws_info_t * ws_info,
    const axutil_env_t * env,
    axis2_char_t * file_name)
{
    AXIS2_PARAM_CHECK(env->error, file_name, AXIS2_FAILURE);

    if (ws_info->file_name)
    {
        AXIS2_FREE(env->allocator, ws_info->file_name);
        ws_info->file_name = NULL;
    }
    ws_info->file_name = file_name;
    return AXIS2_SUCCESS;
}

AXIS2_EXTERN long AXIS2_CALL
axis2_ws_info_get_last_modified_date(
    const axis2_ws_info_t * ws_info,
    const axutil_env_t * env)
{
    return ws_info->last_modified_date;
}

AXIS2_EXTERN axis2_status_t AXIS2_CALL
axis2_ws_info_set_last_modified_date(
    axis2_ws_info_t * ws_info,
    const axutil_env_t * env,
    long last_modified_date)
{
    ws_info->last_modified_date = last_modified_date;
    return AXIS2_SUCCESS;
}

AXIS2_EXTERN int AXIS2_CALL
axis2_ws_info_get_type(
    const axis2_ws_info_t * ws_info,
    const axutil_env_t * env)
{
    return ws_info->type;
}



<|start_filename|>xdocs/api/html/axiom__mtom__sending__callback_8h.html<|end_filename|>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html><head><meta http-equiv="Content-Type" content="text/html;charset=UTF-8">
<title>Axis2/C: axiom_mtom_sending_callback.h File Reference</title>
<link href="doxygen.css" rel="stylesheet" type="text/css">
<link href="tabs.css" rel="stylesheet" type="text/css">
</head><body>
<!-- Generated by Doxygen 1.5.3 -->
<div class="tabs">
  <ul>
    <li><a href="index.html"><span>Main&nbsp;Page</span></a></li>
    <li><a href="modules.html"><span>Modules</span></a></li>
    <li><a href="annotated.html"><span>Classes</span></a></li>
    <li class="current"><a href="files.html"><span>Files</span></a></li>
    <li><a href="dirs.html"><span>Directories</span></a></li>
    <li><a href="pages.html"><span>Related&nbsp;Pages</span></a></li>
    <li><a href="examples.html"><span>Examples</span></a></li>
    <li>
      <form action="search.php" method="get">
        <table cellspacing="0" cellpadding="0" border="0">
          <tr>
            <td><label>&nbsp;<u>S</u>earch&nbsp;for&nbsp;</label></td>
            <td><input type="text" name="query" value="" size="20" accesskey="s"/></td>
          </tr>
        </table>
      </form>
    </li>
  </ul>
</div>
<div class="nav">
<a class="el" href="dir_f60961de8e5edc3b2658ef023e959e45.html">deploy</a>&nbsp;&raquo&nbsp;<a class="el" href="dir_6b4e91e54b7316b376882a6402adbf44.html">include</a>&nbsp;&raquo&nbsp;<a class="el" href="dir_df3a7695d5a9e696f30b948b566829e7.html">axis2-1.6.0</a></div>
<h1>axiom_mtom_sending_callback.h File Reference</h1>sending callback for attachment sending <a href="#_details">More...</a>
<p>
<code>#include &lt;<a class="el" href="axutil__env_8h-source.html">axutil_env.h</a>&gt;</code><br>
<code>#include &lt;<a class="el" href="axutil__param_8h-source.html">axutil_param.h</a>&gt;</code><br>

<p>
<a href="axiom__mtom__sending__callback_8h-source.html">Go to the source code of this file.</a><table border="0" cellpadding="0" cellspacing="0">
<tr><td></td></tr>
<tr><td colspan="2"><br><h2>Classes</h2></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top">struct &nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="structaxiom__mtom__sending__callback__ops.html">axiom_mtom_sending_callback_ops</a></td></tr>

<tr><td class="memItemLeft" nowrap align="right" valign="top">struct &nbsp;</td><td class="memItemRight" valign="bottom"><b>axiom_mtom_sending_callback</b></td></tr>

<tr><td colspan="2"><br><h2>Defines</h2></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="g94942a31b2618aab652c761b4b8c0b10"></a><!-- doxytag: member="axiom_mtom_sending_callback.h::AXIOM_MTOM_SENDING_CALLBACK_INIT_HANDLER" ref="g94942a31b2618aab652c761b4b8c0b10" args="(mtom_sending_callback, env, user_param)" -->
#define&nbsp;</td><td class="memItemRight" valign="bottom"><b>AXIOM_MTOM_SENDING_CALLBACK_INIT_HANDLER</b>(mtom_sending_callback, env, user_param)&nbsp;&nbsp;&nbsp;((mtom_sending_callback)-&gt;ops-&gt;init_handler(mtom_sending_callback, env, user_param))</td></tr>

<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="g4bd56dcddd5fe934a05b794317878f8e"></a><!-- doxytag: member="axiom_mtom_sending_callback.h::AXIOM_MTOM_SENDING_CALLBACK_LOAD_DATA" ref="g4bd56dcddd5fe934a05b794317878f8e" args="(mtom_sending_callback, env, handler, buffer)" -->
#define&nbsp;</td><td class="memItemRight" valign="bottom"><b>AXIOM_MTOM_SENDING_CALLBACK_LOAD_DATA</b>(mtom_sending_callback, env, handler, buffer)&nbsp;&nbsp;&nbsp;((mtom_sending_callback)-&gt;ops-&gt;load_data(mtom_sending_callback, env, handler, buffer))</td></tr>

<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="gad9fbb348469253ab2f95b1e73322102"></a><!-- doxytag: member="axiom_mtom_sending_callback.h::AXIOM_MTOM_SENDING_CALLBACK_CLOSE_HANDLER" ref="gad9fbb348469253ab2f95b1e73322102" args="(mtom_sending_callback, env, handler)" -->
#define&nbsp;</td><td class="memItemRight" valign="bottom"><b>AXIOM_MTOM_SENDING_CALLBACK_CLOSE_HANDLER</b>(mtom_sending_callback, env, handler)&nbsp;&nbsp;&nbsp;((mtom_sending_callback)-&gt;ops-&gt;close_handler(mtom_sending_callback, env, handler))</td></tr>

<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="g211dda45a1cf339794a6ed55fe4f94d9"></a><!-- doxytag: member="axiom_mtom_sending_callback.h::AXIOM_MTOM_SENDING_CALLBACK_FREE" ref="g211dda45a1cf339794a6ed55fe4f94d9" args="(mtom_sending_callback, env)" -->
#define&nbsp;</td><td class="memItemRight" valign="bottom"><b>AXIOM_MTOM_SENDING_CALLBACK_FREE</b>(mtom_sending_callback, env)&nbsp;&nbsp;&nbsp;((mtom_sending_callback)-&gt;ops-&gt;free(mtom_sending_callback, env))</td></tr>

<tr><td colspan="2"><br><h2>Typedefs</h2></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top">typedef struct <br>
<a class="el" href="structaxiom__mtom__sending__callback__ops.html">axiom_mtom_sending_callback_ops</a>&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__mtom__sending__callback.html#g2ec4f4b0d36484d7d80600f079ad153c">axiom_mtom_sending_callback_ops_t</a></td></tr>

<tr><td class="memItemLeft" nowrap align="right" valign="top">typedef struct <br>
axiom_mtom_sending_callback&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__mtom__sending__callback.html#g1b8c0dbaa427283987be2131fcb340ee">axiom_mtom_sending_callback_t</a></td></tr>

</table>
<hr><a name="_details"></a><h2>Detailed Description</h2>
sending callback for attachment sending 
<p>
<hr size="1"><address style="text-align: right;"><small>Generated on Fri Apr 17 11:49:43 2009 for Axis2/C by&nbsp;
<a href="http://www.doxygen.org/index.html">
<img src="doxygen.png" alt="doxygen" align="middle" border="0"></a> 1.5.3 </small></address>
</body>
</html>


<|start_filename|>xdocs/api/html/group__axutil__types.html<|end_filename|>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html><head><meta http-equiv="Content-Type" content="text/html;charset=UTF-8">
<title>Axis2/C: type convertors</title>
<link href="doxygen.css" rel="stylesheet" type="text/css">
<link href="tabs.css" rel="stylesheet" type="text/css">
</head><body>
<!-- Generated by Doxygen 1.5.3 -->
<div class="tabs">
  <ul>
    <li><a href="index.html"><span>Main&nbsp;Page</span></a></li>
    <li><a href="modules.html"><span>Modules</span></a></li>
    <li><a href="annotated.html"><span>Classes</span></a></li>
    <li><a href="files.html"><span>Files</span></a></li>
    <li><a href="dirs.html"><span>Directories</span></a></li>
    <li><a href="pages.html"><span>Related&nbsp;Pages</span></a></li>
    <li><a href="examples.html"><span>Examples</span></a></li>
    <li>
      <form action="search.php" method="get">
        <table cellspacing="0" cellpadding="0" border="0">
          <tr>
            <td><label>&nbsp;<u>S</u>earch&nbsp;for&nbsp;</label></td>
            <td><input type="text" name="query" value="" size="20" accesskey="s"/></td>
          </tr>
        </table>
      </form>
    </li>
  </ul>
</div>
<h1>type convertors<br>
<small>
[<a class="el" href="group__axis2__util.html">utilities</a>]</small>
</h1><table border="0" cellpadding="0" cellspacing="0">
<tr><td></td></tr>
<tr><td colspan="2"><br><h2>Defines</h2></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="gb4cf88ba910b63082b1524ba2d1bc34e"></a><!-- doxytag: member="axutil_types::AXIS2_ATOI" ref="gb4cf88ba910b63082b1524ba2d1bc34e" args="(s)" -->
#define&nbsp;</td><td class="memItemRight" valign="bottom"><b>AXIS2_ATOI</b>(s)&nbsp;&nbsp;&nbsp;axutil_atoi(s)</td></tr>

<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="ge16ce4990e15f6d94e34ee08ca8063d7"></a><!-- doxytag: member="axutil_types::AXIS2_STRTOUL" ref="ge16ce4990e15f6d94e34ee08ca8063d7" args="(s, e, b)" -->
#define&nbsp;</td><td class="memItemRight" valign="bottom"><b>AXIS2_STRTOUL</b>(s, e, b)&nbsp;&nbsp;&nbsp;axutil_strtoul(s, e, b)</td></tr>

<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="g9f34abbfec8a98cbfc75bb9aa6ce6203"></a><!-- doxytag: member="axutil_types::AXIS2_STRTOL" ref="g9f34abbfec8a98cbfc75bb9aa6ce6203" args="(s, e, b)" -->
#define&nbsp;</td><td class="memItemRight" valign="bottom"><b>AXIS2_STRTOL</b>(s, e, b)&nbsp;&nbsp;&nbsp;axutil_strtol(s, e, b)</td></tr>

<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="g8ad1d8a008341eebbbcdcb8816e2f211"></a><!-- doxytag: member="axutil_types::AXIS2_ATOL" ref="g8ad1d8a008341eebbbcdcb8816e2f211" args="(s)" -->
#define&nbsp;</td><td class="memItemRight" valign="bottom"><b>AXIS2_ATOL</b>(s)&nbsp;&nbsp;&nbsp;axutil_atol(s)</td></tr>

<tr><td colspan="2"><br><h2>Functions</h2></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="gbf0c2fe4c961e7329012ceb162361447"></a><!-- doxytag: member="axutil_types::axutil_atoi" ref="gbf0c2fe4c961e7329012ceb162361447" args="(const char *s)" -->
AXIS2_EXTERN int&nbsp;</td><td class="memItemRight" valign="bottom"><b>axutil_atoi</b> (const char *s)</td></tr>

<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="g3d6c8870244da9b6d6294a420eb9232a"></a><!-- doxytag: member="axutil_types::axutil_strtoul" ref="g3d6c8870244da9b6d6294a420eb9232a" args="(const char *nptr, char **endptr, int base)" -->
AXIS2_EXTERN uint64_t&nbsp;</td><td class="memItemRight" valign="bottom"><b>axutil_strtoul</b> (const char *nptr, char **endptr, int base)</td></tr>

<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="g57ae365c36198358746da262a8c371e3"></a><!-- doxytag: member="axutil_types::axutil_strtol" ref="g57ae365c36198358746da262a8c371e3" args="(const char *nptr, char **endptr, int base)" -->
AXIS2_EXTERN int64_t&nbsp;</td><td class="memItemRight" valign="bottom"><b>axutil_strtol</b> (const char *nptr, char **endptr, int base)</td></tr>

<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="g439d2ddcce6903cccdbdae1ea7f51219"></a><!-- doxytag: member="axutil_types::axutil_atol" ref="g439d2ddcce6903cccdbdae1ea7f51219" args="(const char *s)" -->
AXIS2_EXTERN int64_t&nbsp;</td><td class="memItemRight" valign="bottom"><b>axutil_atol</b> (const char *s)</td></tr>

</table>
<hr><a name="_details"></a><h2>Detailed Description</h2>
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<p>
<a href="http://www.apache.org/licenses/LICENSE-2.0">http://www.apache.org/licenses/LICENSE-2.0</a><p>
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. <hr size="1"><address style="text-align: right;"><small>Generated on Fri Apr 17 11:49:46 2009 for Axis2/C by&nbsp;
<a href="http://www.doxygen.org/index.html">
<img src="doxygen.png" alt="doxygen" align="middle" border="0"></a> 1.5.3 </small></address>
</body>
</html>


<|start_filename|>axiom/src/om/om_document.c<|end_filename|>

/*
 * 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.
 */

#include <axiom_document.h>
#include <axiom_stax_builder.h>
#include <axutil_string.h>

struct axiom_document
{

    /** root element */
    axiom_node_t *root_element;

    /** last child */
    axiom_node_t *last_child;

    /** first child */
    axiom_node_t *first_child;

    /** done building the document */
    axis2_bool_t done;

    /** builder of the document */
    struct axiom_stax_builder *builder;

    /** char set encoding */
    axis2_char_t *char_set_encoding;

    /** XML version */
    axis2_char_t *xml_version;
};

AXIS2_EXTERN axiom_document_t *AXIS2_CALL
axiom_document_create(
    const axutil_env_t * env,
    axiom_node_t * root,
    axiom_stax_builder_t * builder)
{
    axiom_document_t *document = NULL;

    AXIS2_ENV_CHECK(env, NULL);

    document = (axiom_document_t *) AXIS2_MALLOC(env->allocator,
                                                 sizeof(axiom_document_t));

    if (!document)
    {
        AXIS2_ERROR_SET(env->error, AXIS2_ERROR_NO_MEMORY, AXIS2_FAILURE);
        return NULL;
    }

    document->builder = builder;
    document->root_element = root;
    document->first_child = root;
    document->last_child = root;
    document->xml_version = XML_VERSION;
    document->char_set_encoding = CHAR_SET_ENCODING;
    document->done = AXIS2_FALSE;

    return document;
}

AXIS2_EXTERN void AXIS2_CALL
axiom_document_free(
    axiom_document_t * document,
    const axutil_env_t * env)
{
    AXIS2_ENV_CHECK(env, void);

    if (document->root_element)
    {
        axiom_node_free_tree(document->root_element, env);
    }
    AXIS2_FREE(env->allocator, document);
    return;
}

AXIS2_EXTERN void AXIS2_CALL
axiom_document_free_self(
    axiom_document_t * document,
    const axutil_env_t * env)
{
    AXIS2_FREE(env->allocator, document);
    return;
}

AXIS2_EXTERN axiom_node_t *AXIS2_CALL
axiom_document_build_next(
    axiom_document_t * document,
    const axutil_env_t * env)
{
    axiom_node_t *last_child = NULL;

    AXIS2_ENV_CHECK(env, NULL);

    if (!document->builder)
    {
        return NULL;
    }

    if (!(document->root_element))
    {
        last_child = axiom_stax_builder_next(document->builder, env);
        if (last_child)
        {
            document->last_child = last_child;
            document->root_element = last_child;
        }
        return last_child;
    }
    else if ((document->root_element) &&
             (axiom_node_is_complete(document->root_element, env) ==
              AXIS2_TRUE))
        return NULL;            /* Nothing wrong but done with pulling */

    last_child = axiom_stax_builder_next(document->builder, env);
    if (last_child)
    {
        document->last_child = last_child;
    }
    return last_child;
}

AXIS2_EXTERN axiom_node_t *AXIS2_CALL
axiom_document_get_root_element(
    axiom_document_t * document,
    const axutil_env_t * env)
{
    axiom_node_t *node = NULL;
    AXIS2_ENV_CHECK(env, NULL);

    if (document->root_element)
    {
        return document->root_element;
    }
    node = axiom_document_build_next(document, env);

    if (document->root_element)
    {
        return document->root_element;
    }
    AXIS2_ERROR_SET(env->error,
                    AXIS2_ERROR_INVALID_DOCUMENT_STATE_ROOT_NULL,
                    AXIS2_FAILURE);
    return NULL;
}

AXIS2_EXTERN axis2_status_t AXIS2_CALL
axiom_document_set_root_element(
    axiom_document_t * document,
    const axutil_env_t * env,
    axiom_node_t * node)
{
    AXIS2_ENV_CHECK(env, AXIS2_FAILURE);
    AXIS2_PARAM_CHECK(env->error, node, AXIS2_FAILURE);

    if (document->root_element)
    {
        axiom_node_free_tree(document->root_element, env);
        document->root_element = node;
        return AXIS2_SUCCESS;
    }
    else
    {
        document->root_element = node;
    }
    return AXIS2_SUCCESS;
}

AXIS2_EXTERN axiom_node_t *AXIS2_CALL
axiom_document_build_all(
    struct axiom_document * document,
    const axutil_env_t * env)
{
    AXIS2_ENV_CHECK(env, NULL);
    if (!document)
    {
        return NULL;
    }
    if (!document->root_element)
    {
        axiom_document_get_root_element(document, env);
    }
    if (document->root_element)
    {
        do
        {
            axiom_node_t *ret_val = NULL;
            ret_val = axiom_document_build_next(document, env);
            if (!ret_val)
            {
                if (axiom_node_is_complete(document->root_element, env) ==
                    AXIS2_TRUE)
                {

                    /** document is completly build */
                    return document->root_element;
                }
                else
                {

                    /** error occurred */
                    return NULL;
                }
            }
        }
        while (!axiom_node_is_complete(document->root_element, env));
        return document->root_element;
    }
    else
        return NULL;
}

AXIS2_EXTERN axiom_stax_builder_t *AXIS2_CALL
axiom_document_get_builder(
    axiom_document_t * document,
    const axutil_env_t * env)
{
    AXIS2_ENV_CHECK(env, NULL);
    return document->builder;
}

AXIS2_EXTERN void AXIS2_CALL
axiom_document_set_builder(
    axiom_document_t * document,
    const axutil_env_t * env,
    axiom_stax_builder_t * builder)
{
    document->builder = builder;
}

AXIS2_EXTERN axis2_status_t AXIS2_CALL
axiom_document_serialize(
    axiom_document_t * document,
    const axutil_env_t * env,
    axiom_output_t * om_output)
{
    if (!document)
        return AXIS2_FAILURE;

    AXIS2_ENV_CHECK(env, AXIS2_FAILURE);
    if (!(document->root_element))
    {
        axiom_document_get_root_element(document, env);
    }
    if (document->root_element)
    {
        return axiom_node_serialize(document->root_element, env, om_output);
    }
    else
    {
        return AXIS2_FAILURE;
    }
}


<|start_filename|>axiom/src/soap/soap_body.c<|end_filename|>

/*
 * 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.
 */

#include "_axiom_soap_envelope.h"
#include "_axiom_soap_body.h"
#include <axutil_hash.h>
#include <axiom_soap_const.h>
#include <axiom_soap_builder.h>
#include <axiom_soap_fault_code.h>
#include <axiom_soap_fault_reason.h>
#include <axiom_soap_fault_detail.h>
#include <axiom_soap_fault_role.h>
#include "_axiom_soap_fault_value.h"
#include "_axiom_soap_fault_text.h"
#include <axiom_util.h>

struct axiom_soap_body
{
    axiom_node_t *om_ele_node;

    axis2_bool_t has_fault;

    axiom_soap_fault_t *soap_fault;

    axiom_soap_builder_t *soap_builder;

    int soap_version;
};

AXIS2_EXTERN axiom_soap_body_t *AXIS2_CALL
axiom_soap_body_create(
    const axutil_env_t * env)
{
    axiom_soap_body_t *soap_body = NULL;

    soap_body = (axiom_soap_body_t *) AXIS2_MALLOC(env->allocator,
                                                   sizeof(axiom_soap_body_t));

    if (!soap_body)
    {
        AXIS2_ERROR_SET(env->error, AXIS2_ERROR_NO_MEMORY, AXIS2_FAILURE);
        return NULL;
    }
    soap_body->om_ele_node = NULL;
    soap_body->soap_builder = NULL;
    soap_body->has_fault = AXIS2_FALSE;
    soap_body->soap_fault = NULL;

    return soap_body;
}

AXIS2_EXTERN axiom_soap_body_t *AXIS2_CALL
axiom_soap_body_create_with_parent(
    const axutil_env_t * env,
    axiom_soap_envelope_t * envelope)
{
    axiom_soap_body_t *soap_body = NULL;
    axiom_element_t *ele = NULL;
    axiom_node_t *parent_node = NULL;
    axiom_element_t *parent_ele = NULL;
    axiom_namespace_t *om_ns = NULL;

    AXIS2_PARAM_CHECK(env->error, envelope, NULL);

    soap_body = axiom_soap_body_create(env);
    if (!soap_body)
    {
        return NULL;
    }

    /*get parent node from SOAP envelope */
    parent_node = axiom_soap_envelope_get_base_node(envelope, env);
    if (!parent_node)
    {
        axiom_soap_body_free(soap_body, env);
        return NULL;
    }
    parent_ele =
        (axiom_element_t *) axiom_node_get_data_element(parent_node, env);

    if (!parent_ele)
    {
        axiom_soap_body_free(soap_body, env);
        return NULL;
    }

    om_ns = axiom_element_get_namespace(parent_ele, env, parent_node);

    ele = axiom_element_create(env, parent_node,
                               AXIOM_SOAP_BODY_LOCAL_NAME, om_ns,
                               &(soap_body->om_ele_node));
    if (!ele)
    {
        axiom_soap_body_free(soap_body, env);
        return NULL;
    }

    axiom_soap_envelope_set_body(envelope, env, soap_body);

    return soap_body;
}

AXIS2_EXTERN void AXIS2_CALL
axiom_soap_body_free(
    axiom_soap_body_t * soap_body,
    const axutil_env_t * env)
{

    if (soap_body->soap_fault)
    {
        axiom_soap_fault_free(soap_body->soap_fault, env);
        soap_body->soap_fault = NULL;
    }
    AXIS2_FREE(env->allocator, soap_body);
    soap_body = NULL;
    return;
}

AXIS2_EXTERN axis2_bool_t AXIS2_CALL
axiom_soap_body_has_fault(
    axiom_soap_body_t * soap_body,
    const axutil_env_t * env)
{
    int status = AXIS2_SUCCESS;

    if (soap_body->soap_fault)
    {
        soap_body->has_fault = AXIS2_TRUE;
        return AXIS2_TRUE;
    }
    else
    {
        if (soap_body->soap_builder)
        {
            while (!(soap_body->soap_fault) &&
                   !(axiom_node_is_complete(soap_body->om_ele_node, env)))
            {
                status = axiom_soap_builder_next(soap_body->soap_builder, env);
                if (status == AXIS2_FAILURE)
                {
                    return AXIS2_FALSE;
                }
            }
            if (soap_body->soap_fault)
            {
                soap_body->has_fault = AXIS2_TRUE;
                return AXIS2_TRUE;
            }
        }
    }

    return AXIS2_FALSE;
}

/**
 * Returns the axiom_soap_fault_t struct in this axiom_soap_bodY_t
 * struct
 *
 * @return the <code>SOAPFault</code> object in this <code>SOAPBody</code>
 *         object
 */
AXIS2_EXTERN axiom_soap_fault_t *AXIS2_CALL
axiom_soap_body_get_fault(
    axiom_soap_body_t * soap_body,
    const axutil_env_t * env)
{
    if (soap_body->soap_fault)
    {
        return soap_body->soap_fault;
    }
    else if (soap_body->soap_builder)
    {
        while (!(soap_body->soap_fault) &&
               !(axiom_node_is_complete(soap_body->om_ele_node, env)))
        {
            int status = AXIS2_SUCCESS;
            status = axiom_soap_builder_next(soap_body->soap_builder, env);
            if (status == AXIS2_FAILURE)
            {   
                return NULL;
            }
        }
        if (soap_body->soap_fault)
        {
            soap_body->has_fault = AXIS2_TRUE;
            return soap_body->soap_fault;
        }
    }
    return NULL;
}

AXIS2_EXTERN axiom_node_t *AXIS2_CALL
axiom_soap_body_get_base_node(
    axiom_soap_body_t * soap_body,
    const axutil_env_t * env)
{
    return soap_body->om_ele_node;
}

AXIS2_EXTERN axis2_status_t AXIS2_CALL
axiom_soap_body_set_base_node(
    axiom_soap_body_t * soap_body,
    const axutil_env_t * env,
    axiom_node_t * node)
{
    AXIS2_PARAM_CHECK(env->error, node, AXIS2_FAILURE);
    if (axiom_node_get_node_type(node, env) != AXIOM_ELEMENT)
    {
        AXIS2_ERROR_SET(env->error, AXIS2_ERROR_INVALID_BASE_TYPE,
                        AXIS2_FAILURE);
        return AXIS2_FAILURE;
    }
    soap_body->om_ele_node = node;
    return AXIS2_SUCCESS;
}

AXIS2_EXTERN axis2_status_t AXIS2_CALL
axiom_soap_body_set_builder(
    axiom_soap_body_t * soap_body,
    const axutil_env_t * env,
    axiom_soap_builder_t * builder)
{
    AXIS2_PARAM_CHECK(env->error, builder, AXIS2_FAILURE);
    
    soap_body->soap_builder = builder;
    return AXIS2_SUCCESS;
}

AXIS2_EXTERN axis2_status_t AXIS2_CALL
axiom_soap_body_build(
    axiom_soap_body_t * soap_body,
    const axutil_env_t * env)
{
    int status = AXIS2_SUCCESS;
    axiom_node_t *xop_node = NULL;    
    axis2_bool_t is_replaced = AXIS2_FALSE;
    axiom_element_t *xop_element = NULL;

                                                                                                                                    
    if (soap_body->om_ele_node && soap_body->soap_builder)
    {
        xop_node = axiom_util_get_node_by_local_name(env, 
            soap_body->om_ele_node, AXIS2_XOP_INCLUDE);

        if(xop_node)
        {
            xop_element = (axiom_element_t *)axiom_node_get_data_element(
                xop_node, env);
            if(xop_element)
            {
                is_replaced = axiom_soap_builder_replace_xop(soap_body->soap_builder, 
                    env, xop_node, xop_element);
            }
        }    

        while (axiom_node_is_complete(soap_body->om_ele_node, env) !=
               AXIS2_TRUE)
        {
            status = axiom_soap_builder_next(soap_body->soap_builder, env);
            if (status == AXIS2_FAILURE)
            {
                return AXIS2_FAILURE;
            }
        }
    }
    return AXIS2_SUCCESS;
}

/**
    This is an internal function

*/
AXIS2_EXTERN axis2_status_t AXIS2_CALL
axiom_soap_body_set_fault(
    axiom_soap_body_t * soap_body,
    const axutil_env_t * env,
    axiom_soap_fault_t * soap_fault)
{
    AXIS2_PARAM_CHECK(env->error, soap_fault, AXIS2_FAILURE);
    if (soap_body->soap_fault)
    {
        AXIS2_ERROR_SET(env->error,
                        AXIS2_ERROR_ONLY_ONE_SOAP_FAULT_ALLOWED_IN_BODY,
                        AXIS2_FAILURE);
        return AXIS2_FAILURE;
    }
    else
    {
        soap_body->soap_fault = soap_fault;
        soap_body->has_fault = AXIS2_TRUE;
    }
    return AXIS2_SUCCESS;
}

AXIS2_EXTERN axis2_status_t AXIS2_CALL
axiom_soap_body_add_child(
    axiom_soap_body_t * soap_body,
    const axutil_env_t * env,
    axiom_node_t * child)
{
    AXIS2_PARAM_CHECK(env->error, child, AXIS2_FAILURE);

    if (soap_body->om_ele_node)
    {
        return axiom_node_add_child(soap_body->om_ele_node, env, child);
    }
    return AXIS2_FAILURE;
}

AXIS2_EXTERN int AXIS2_CALL
axiom_soap_body_get_soap_version(
    axiom_soap_body_t * soap_body,
    const axutil_env_t * env)
{
    axiom_element_t *body_ele = NULL;
    axiom_namespace_t *om_ns = NULL;
    axis2_char_t *uri = NULL;
    
    if (!soap_body->om_ele_node)
    {
        return AXIS2_FAILURE;
    }
    body_ele = axiom_node_get_data_element(soap_body->om_ele_node, env);
    if (!body_ele)
    {
        return AXIS2_FAILURE;
    }
    om_ns = axiom_element_get_namespace(body_ele, env, soap_body->om_ele_node);
    if (!om_ns)
    {
        return AXIS2_FAILURE;
    }
    uri = axiom_namespace_get_uri(om_ns, env);
    if (uri)
    {
        if (axutil_strcmp(uri, AXIOM_SOAP11_SOAP_ENVELOPE_NAMESPACE_URI) == 0)
        {
            return AXIOM_SOAP11;
        }
        else if (axutil_strcmp(uri, AXIOM_SOAP12_SOAP_ENVELOPE_NAMESPACE_URI) ==
                 0)
        {         
            return AXIOM_SOAP12;
        }
    }
    return AXIS2_FAILURE;
}

AXIS2_EXTERN axis2_status_t AXIS2_CALL
axiom_soap_body_convert_fault_to_soap11(
    axiom_soap_body_t * soap_body,
    const axutil_env_t * env)
{
    if (soap_body)
    {
        axiom_soap_fault_t *soap_fault = NULL;
        if (axiom_soap_body_has_fault(soap_body, env))
        {
            soap_fault = axiom_soap_body_get_fault(soap_body, env);
            if (soap_fault)
            {
                axiom_soap_fault_code_t *fault_code = NULL;
                axiom_soap_fault_reason_t *fault_reason = NULL;
                axiom_soap_fault_detail_t *fault_detail = NULL;
                axiom_soap_fault_role_t *fault_role = NULL;
                fault_code = axiom_soap_fault_get_code(soap_fault, env);
                if (fault_code)
                {
                    axiom_node_t *fault_code_om_node = NULL;
                    axiom_element_t *fault_code_om_ele = NULL;
                    axiom_node_t *fault_value_om_node = NULL;
                    axiom_element_t *fault_value_om_ele = NULL;
                    axiom_soap_fault_value_t *fault_value = NULL;
                    axis2_char_t *text = NULL;

                    fault_code_om_node =
                        axiom_soap_fault_code_get_base_node(fault_code, env);
                    if (fault_code_om_node)
                    {
                        fault_code_om_ele = (axiom_element_t *)
                            axiom_node_get_data_element(fault_code_om_node,
                                                        env);
                        if (fault_code_om_ele)
                        {
                            axiom_element_set_localname(fault_code_om_ele,
                                                        env,
                                                        AXIOM_SOAP11_SOAP_FAULT_CODE_LOCAL_NAME);

                            fault_value =
                                axiom_soap_fault_code_get_value(fault_code,
                                                                env);

                            if (fault_value)
                            {
                                fault_value_om_node =
                                    axiom_soap_fault_value_get_base_node
                                    (fault_value, env);
                                if (fault_value_om_node)
                                {
                                    fault_value_om_ele =
                                        (axiom_element_t *)
                                        axiom_node_get_data_element
                                        (fault_value_om_node, env);
                                    if (fault_value_om_ele)
                                    {
                                        text =
                                            axiom_element_get_text
                                            (fault_value_om_ele, env,
                                             fault_value_om_node);
                                        if (text)
                                        {
                                            axiom_element_set_text
                                                (fault_code_om_ele, env, text,
                                                 fault_code_om_node);
                                        }
                                    }
                                    axiom_node_free_tree
                                        (fault_value_om_node, env);
                                    axiom_soap_fault_value_set_base_node
                                        (fault_value, env, NULL);
                                }
                            }
                        }
                    }
                }
                fault_reason = axiom_soap_fault_get_reason(soap_fault, env);
                if (fault_reason)
                {
                    axiom_node_t *fault_reason_om_node = NULL;
                    axiom_element_t *fault_reason_om_ele = NULL;
                    axiom_node_t *fault_text_om_node = NULL;
                    axiom_element_t *fault_text_om_ele = NULL;
                    axiom_soap_fault_text_t *fault_text = NULL;
                    axis2_char_t *text = NULL;

                    fault_reason_om_node =
                        axiom_soap_fault_reason_get_base_node(fault_reason,
                                                              env);
                    if (fault_reason_om_node)
                    {
                        fault_reason_om_ele = (axiom_element_t *)
                            axiom_node_get_data_element(fault_reason_om_node,
                                                        env);

                        if (fault_reason_om_ele)
                        {

                            axiom_element_set_localname(fault_reason_om_ele,
                                                        env,
                                                        AXIOM_SOAP11_SOAP_FAULT_STRING_LOCAL_NAME);

                            fault_text =
                                axiom_soap_fault_reason_get_first_soap_fault_text
                                (fault_reason, env);
                            if (fault_text)
                            {
                                fault_text_om_node =
                                    axiom_soap_fault_text_get_base_node
                                    (fault_text, env);
                                if (fault_text_om_node)
                                {
                                    fault_text_om_ele =
                                        (axiom_element_t *)
                                        axiom_node_get_data_element
                                        (fault_text_om_node, env);
                                    if (fault_text_om_ele)
                                    {
                                        text =
                                            axiom_element_get_text
                                            (fault_text_om_ele, env,
                                             fault_text_om_node);
                                        if (text)
                                        {
                                            axiom_element_set_text
                                                (fault_reason_om_ele, env, text,
                                                 fault_reason_om_node);
                                        }
                                    }
                                    axiom_node_free_tree(fault_text_om_node,
                                                         env);
                                    axiom_soap_fault_text_set_base_node
                                        (fault_text, env, NULL);
                                }
                            }
                        }
                    }
                }

                fault_role = axiom_soap_fault_get_role(soap_fault, env);
                if (fault_role)
                {
                    axiom_node_t *fault_role_om_node = NULL;
                    axiom_element_t *fault_role_om_ele = NULL;

                    fault_role_om_node =
                        axiom_soap_fault_role_get_base_node(fault_role, env);
                    if (fault_role_om_node)
                    {
                        fault_role_om_ele = (axiom_element_t *)
                            axiom_node_get_data_element(fault_role_om_node,
                                                        env);
                        if (fault_role_om_ele)
                        {
                            axiom_element_set_localname(fault_role_om_ele, env,
                                                        AXIOM_SOAP11_SOAP_FAULT_ACTOR_LOCAL_NAME);
                        }
                    }
                }

                fault_detail = axiom_soap_fault_get_detail(soap_fault, env);
                if (fault_detail)
                {
                    axiom_node_t *fault_detail_om_node = NULL;
                    axiom_element_t *fault_detail_om_ele = NULL;
                    fault_detail_om_node =
                        axiom_soap_fault_detail_get_base_node(fault_detail,
                                                              env);
                    if (fault_detail_om_node)
                    {
                        fault_detail_om_ele = (axiom_element_t *)
                            axiom_node_get_data_element(fault_detail_om_node,
                                                        env);
                        if (fault_detail_om_ele)
                        {
                            axiom_element_set_localname(fault_detail_om_ele,
                                                        env,
                                                        AXIOM_SOAP11_SOAP_FAULT_DETAIL_LOCAL_NAME);
                        }
                    }
                }
            }
        }
    }
    return AXIS2_SUCCESS;
}

AXIS2_EXTERN axis2_status_t AXIS2_CALL
axiom_soap_body_process_attachments(
    axiom_soap_body_t * soap_body,
    const axutil_env_t * env,
    void *user_pram,
    axis2_char_t *callback_name)
{
    axis2_status_t status = AXIS2_FAILURE;

    status = axiom_soap_builder_create_attachments(
        soap_body->soap_builder, env, user_pram, callback_name);

    if(status == AXIS2_FAILURE)
    {
        return status;                 
    }    
    else
    {
        return axiom_soap_body_build(soap_body, env);                        
    }
}


<|start_filename|>src/core/transport/http/server/CGI/axis2_cgi_main.c<|end_filename|>

/*
 * 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.
 */

#include "axis2_cgi_out_transport_info.h"
#include "axis2_cgi_stream.h"

#include <stdio.h>
#include <stdlib.h>
#include <axutil_error_default.h>
#include <axutil_log_default.h>
#include <axutil_thread_pool.h>
#include <axutil_types.h>
#include <axutil_version.h>
#include <axutil_file_handler.h>
#include <axutil_url.h>
#include <axutil_string.h>
#include <platforms/axutil_platform_auto_sense.h>

#include <axis2_engine.h>
#include <axis2_conf_init.h>
#include <axis2_http_transport_utils.h>

axis2_char_t *axis2_cgi_default_url_prefix = "/cgi-bin/axis2.cgi/";

/***************************** Function headers *******************************/

void axis2_cgi_system_exit(
    axutil_env_t * env,
    int status);
    
void axis2_cgi_set_request_vars(
    axis2_cgi_request_t *cgi_request);
    
axis2_status_t axis2_cgi_write_response(
    const void *buffer,
    unsigned int length);

/***************************** End of function headers ************************/

int
main(
    int argc,
    char *argv[])
{    
    axutil_allocator_t *allocator = NULL;
    axutil_env_t *env = NULL;
    const axis2_char_t *repo_path;	
    axis2_conf_ctx_t *conf_ctx;
    axis2_cgi_request_t *cgi_request = NULL;
    int content_length = 0;
    axis2_char_t *request_url = NULL;
    /* axutil_stream_t *request_body_stream = NULL; */
    axutil_stream_t *out_stream = NULL;
    axis2_transport_in_desc_t *in_desc = NULL;
    axis2_transport_out_desc_t *out_desc = NULL;
    /* axis2_msg_ctx_t *msg_ctx = NULL; */
    /* axis2_bool_t processed = AXIS2_FALSE; */
    axis2_http_transport_in_t request;	
    axis2_http_transport_out_t response;
    /*axis2_http_header_t* http_header = NULL; */
    /*axutil_hash_t *headers = NULL; */
    /* axis2_char_t *axis2_cgi_url_prefix = NULL; */
    
	if (!(repo_path = AXIS2_GETENV("AXIS2C_HOME")))
	{
		fprintf(stderr, "Error: AXIS2C_HOME environment variable not set!");
		axis2_cgi_system_exit(env, -1);
	}

    allocator = axutil_allocator_init(NULL);
    env = axutil_env_create(allocator);
    
    if (axutil_file_handler_access (repo_path, AXIS2_R_OK) != AXIS2_SUCCESS)
    {
		fprintf(stderr, "Error reading repository: %s\nPlease check AXIS2C_HOME var", repo_path);
		axis2_cgi_system_exit(env, -1);
    }
    
    /* Set configuration */

	conf_ctx = axis2_build_conf_ctx(env, repo_path);
	if (!conf_ctx)
	{
		fprintf(stderr, "Error: Configuration not builded propertly\n");
	    axis2_cgi_system_exit(env, -1);
	}
		
	axis2_http_transport_utils_transport_out_init(&response, env);
    axis2_http_transport_utils_transport_in_init(&request, env);

    /* Get input info */
    
    cgi_request = AXIS2_MALLOC(allocator, sizeof(axis2_cgi_request_t));
    axis2_cgi_set_request_vars(cgi_request);
    
    request_url = (axis2_char_t *) AXIS2_MALLOC(allocator, 
           (7 +                 /* "http:" */
		    strlen(cgi_request->server_name) + 
			((strlen(cgi_request->server_port))?1:0) + /* ":"*/
		    strlen(cgi_request->server_port) +
			strlen(cgi_request->script_name) + 
            strlen(cgi_request->path_info) +
            ((strlen(cgi_request->path_info))?1:0) + /* "?" */
            strlen(cgi_request->query_string) ) * sizeof(axis2_char_t));
            
    request_url[0] = '\0';
	
	strcat(request_url, "http://");
	strcat(request_url, cgi_request->server_name);
	if (strlen(cgi_request->server_port)) strcat(request_url, ":");
	strcat(request_url, cgi_request->server_port);
    strcat(request_url, cgi_request->script_name); 
    strcat(request_url, cgi_request->path_info);
    if (strlen(cgi_request->query_string)) strcat(request_url, "?");
    strcat(request_url, cgi_request->query_string);
    
    if (cgi_request->content_length) content_length = axutil_atoi(cgi_request->content_length);
    else content_length = 0;
    
    /* Set streams */

    out_stream = axutil_stream_create_basic(env);
        
	/* Set message contexts */
        
    out_desc = axis2_conf_get_transport_out(axis2_conf_ctx_get_conf
                                            (conf_ctx, env),
                                            env, AXIS2_TRANSPORT_ENUM_HTTP);
    in_desc = axis2_conf_get_transport_in(axis2_conf_ctx_get_conf
                                            (conf_ctx, env),
                                            env, AXIS2_TRANSPORT_ENUM_HTTP);     

    request.msg_ctx = axis2_msg_ctx_create(env, conf_ctx, in_desc, out_desc);                                

    axis2_msg_ctx_set_server_side(request.msg_ctx, env, AXIS2_TRUE);
    axis2_msg_ctx_set_transport_out_stream(request.msg_ctx, env, out_stream);
    axis2_msg_ctx_set_transport_headers(request.msg_ctx, env, NULL);

    /* Set request parameters */

    request.soap_action = cgi_request->soap_action;
    request.in_stream = axutil_stream_create_cgi(env, content_length);
    request.remote_ip = cgi_request->remote_addr;
    request.content_length = content_length;
    request.content_type = cgi_request->content_type;
    request.request_uri = request_url;
    request.svr_port = cgi_request->server_port;
    request.accept_header = AXIS2_GETENV("HTTP_ACCEPT");
    request.accept_language_header = AXIS2_GETENV("HTTP_ACCEPT_LANGUAGE");
    request.accept_charset_header = AXIS2_GETENV("HTTP_ACCEPT_CHARSET");
    request.request_url_prefix = (AXIS2_GETENV("AXIS2C_URL_PREFIX"))?
                                  AXIS2_GETENV("AXIS2C_URL_PREFIX"):
                                  axis2_cgi_default_url_prefix;
            
    if (axutil_strcasecmp(cgi_request->request_method, "POST") == 0)
	{
		request.request_method = AXIS2_HTTP_METHOD_POST;
	}
	else if (axutil_strcasecmp(cgi_request->request_method, "GET") == 0)
	{
		request.request_method = AXIS2_HTTP_METHOD_GET;
	}
	else if (axutil_strcasecmp(cgi_request->request_method, "HEAD") == 0)
	{
		request.request_method = AXIS2_HTTP_METHOD_HEAD;
	}
	else if (axutil_strcasecmp(cgi_request->request_method, "PUT") == 0)
	{
		request.request_method = AXIS2_HTTP_METHOD_PUT;
	}
	else if (axutil_strcasecmp(cgi_request->request_method, "DELETE") == 0)
	{
		request.request_method = AXIS2_HTTP_METHOD_DELETE;
	}
	
	request.out_transport_info = axis2_cgi_out_transport_info_create(env, cgi_request);
        
    /*Process request */
    fprintf(stderr, "ok\n");
    axis2_http_transport_utils_process_request(env, conf_ctx, &request, &response);
    fprintf(stderr, "ok\n");
    /*Send status */
    
    fprintf(stdout, "Status: %d %s \r\n", response.http_status_code, response.http_status_code_name);

    if (response.content_type)
    {
        fprintf(stdout, "Content-type: %s \r\n", response.content_type);
    }
    else if (strlen(axis2_cgi_out_transport_get_content(request.out_transport_info))
               && axis2_cgi_out_transport_get_content(request.out_transport_info))
    {
        fprintf(stdout, "Content-type: %s \r\n", axis2_cgi_out_transport_get_content(request.out_transport_info));
    }
    
    fprintf(stdout, "\r\n"); /* End of headers for server */
    
    /* Write data body */
    if (!axis2_cgi_write_response(response.response_data, response.response_data_length))
    {
        fprintf(stderr, "Error writing output data\n");
    }
        
    axis2_http_transport_utils_transport_in_uninit(&request, env);
	axis2_http_transport_utils_transport_out_uninit(&response, env);
	
	return 0;
}

axis2_status_t axis2_cgi_write_response(
    const void *buffer,
    unsigned int length)
{
    if (buffer && length)
    {
        unsigned int completed = 0;
        unsigned int written = 0;
        
        while (completed < length)
        {
            written = fwrite(buffer, sizeof(char), length - completed, stdout);
            if (written < 0) return AXIS2_FALSE;
            completed += written;
        }
    }
    return AXIS2_TRUE;
}

void
axis2_cgi_set_request_vars(
    axis2_cgi_request_t *cgi_request)
{
    cgi_request->server_name = (AXIS2_GETENV("SERVER_NAME"))?AXIS2_GETENV("SERVER_NAME"):"";
	cgi_request->script_name = (AXIS2_GETENV("SCRIPT_NAME"))?AXIS2_GETENV("SCRIPT_NAME"):"";
	cgi_request->path_info = (AXIS2_GETENV("PATH_INFO"))?AXIS2_GETENV("PATH_INFO"):"";
	cgi_request->server_port = (AXIS2_GETENV("SERVER_PORT"))?AXIS2_GETENV("SERVER_PORT"):"";
	cgi_request->server_protocol = (AXIS2_GETENV("SERVER_PROTOCOL"))?AXIS2_GETENV("SERVER_PROTOCOL"):"";
	cgi_request->content_length = (AXIS2_GETENV("CONTENT_LENGTH"))?AXIS2_GETENV("CONTENT_LENGTH"):"";
	cgi_request->content_type = (AXIS2_GETENV("CONTENT_TYPE"))?AXIS2_GETENV("CONTENT_TYPE"):"";
	cgi_request->request_method = (AXIS2_GETENV("REQUEST_METHOD"))?AXIS2_GETENV("REQUEST_METHOD"):"";
	cgi_request->remote_addr = (AXIS2_GETENV("REMOTE_ADDR"))?AXIS2_GETENV("REMOTE_ADDR"):"";
	cgi_request->soap_action = (AXIS2_GETENV("HTTP_SOAPACTION"))?AXIS2_GETENV("HTTP_SOAPACTION"):NULL;
	cgi_request->query_string = (AXIS2_GETENV("QUERY_STRING"))?AXIS2_GETENV("QUERY_STRING"):"";
}

void
axis2_cgi_system_exit(
    axutil_env_t * env,
    int status)
{
    axutil_allocator_t *allocator = NULL;
	
    if (env)
    {
        allocator = env->allocator;
        axutil_env_free(env);
    }
    exit(status);
}


<|start_filename|>xdocs/api/html/axiom__soap__builder_8h-source.html<|end_filename|>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html><head><meta http-equiv="Content-Type" content="text/html;charset=UTF-8">
<title>Axis2/C: axiom_soap_builder.h Source File</title>
<link href="doxygen.css" rel="stylesheet" type="text/css">
<link href="tabs.css" rel="stylesheet" type="text/css">
</head><body>
<!-- Generated by Doxygen 1.5.3 -->
<div class="tabs">
  <ul>
    <li><a href="index.html"><span>Main&nbsp;Page</span></a></li>
    <li><a href="modules.html"><span>Modules</span></a></li>
    <li><a href="annotated.html"><span>Classes</span></a></li>
    <li class="current"><a href="files.html"><span>Files</span></a></li>
    <li><a href="dirs.html"><span>Directories</span></a></li>
    <li><a href="pages.html"><span>Related&nbsp;Pages</span></a></li>
    <li><a href="examples.html"><span>Examples</span></a></li>
    <li>
      <form action="search.php" method="get">
        <table cellspacing="0" cellpadding="0" border="0">
          <tr>
            <td><label>&nbsp;<u>S</u>earch&nbsp;for&nbsp;</label></td>
            <td><input type="text" name="query" value="" size="20" accesskey="s"/></td>
          </tr>
        </table>
      </form>
    </li>
  </ul>
</div>
<div class="nav">
<a class="el" href="dir_f60961de8e5edc3b2658ef023e959e45.html">deploy</a>&nbsp;&raquo&nbsp;<a class="el" href="dir_6b4e91e54b7316b376882a6402adbf44.html">include</a>&nbsp;&raquo&nbsp;<a class="el" href="dir_df3a7695d5a9e696f30b948b566829e7.html">axis2-1.6.0</a></div>
<h1>axiom_soap_builder.h</h1><a href="axiom__soap__builder_8h.html">Go to the documentation of this file.</a><div class="fragment"><pre class="fragment"><a name="l00001"></a>00001 
<a name="l00002"></a>00002 <span class="comment">/*</span>
<a name="l00003"></a>00003 <span class="comment"> * Licensed to the Apache Software Foundation (ASF) under one or more</span>
<a name="l00004"></a>00004 <span class="comment"> * contributor license agreements.  See the NOTICE file distributed with</span>
<a name="l00005"></a>00005 <span class="comment"> * this work for additional information regarding copyright ownership.</span>
<a name="l00006"></a>00006 <span class="comment"> * The ASF licenses this file to You under the Apache License, Version 2.0</span>
<a name="l00007"></a>00007 <span class="comment"> * (the "License"); you may not use this file except in compliance with</span>
<a name="l00008"></a>00008 <span class="comment"> * the License.  You may obtain a copy of the License at</span>
<a name="l00009"></a>00009 <span class="comment"> *</span>
<a name="l00010"></a>00010 <span class="comment"> *      http://www.apache.org/licenses/LICENSE-2.0</span>
<a name="l00011"></a>00011 <span class="comment"> *</span>
<a name="l00012"></a>00012 <span class="comment"> * Unless required by applicable law or agreed to in writing, software</span>
<a name="l00013"></a>00013 <span class="comment"> * distributed under the License is distributed on an "AS IS" BASIS,</span>
<a name="l00014"></a>00014 <span class="comment"> * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.</span>
<a name="l00015"></a>00015 <span class="comment"> * See the License for the specific language governing permissions and</span>
<a name="l00016"></a>00016 <span class="comment"> * limitations under the License.</span>
<a name="l00017"></a>00017 <span class="comment"> */</span>
<a name="l00018"></a>00018 
<a name="l00019"></a>00019 <span class="preprocessor">#ifndef AXIOM_SOAP_BUILDER_H</span>
<a name="l00020"></a>00020 <span class="preprocessor"></span><span class="preprocessor">#define AXIOM_SOAP_BUILDER_H</span>
<a name="l00021"></a>00021 <span class="preprocessor"></span>
<a name="l00022"></a>00022 <span class="preprocessor">#include &lt;axiom_stax_builder.h&gt;</span>
<a name="l00023"></a>00023 <span class="preprocessor">#include &lt;<a class="code" href="axiom__soap__envelope_8h.html" title="axiom_soap_envelope struct corresponds to root element of soap message">axiom_soap_envelope.h</a>&gt;</span>
<a name="l00024"></a>00024 <span class="preprocessor">#include &lt;<a class="code" href="axiom__mime__parser_8h.html" title="axis2 mime_parser interface">axiom_mime_parser.h</a>&gt;</span>
<a name="l00025"></a>00025 
<a name="l00031"></a>00031 <span class="preprocessor">#ifdef __cplusplus</span>
<a name="l00032"></a>00032 <span class="preprocessor"></span><span class="keyword">extern</span> <span class="stringliteral">"C"</span>
<a name="l00033"></a>00033 {
<a name="l00034"></a>00034 <span class="preprocessor">#endif</span>
<a name="l00035"></a>00035 <span class="preprocessor"></span>
<a name="l00036"></a>00036     <span class="keyword">typedef</span> <span class="keyword">struct </span>axiom_soap_builder axiom_soap_builder_t;
<a name="l00037"></a>00037 
<a name="l00050"></a>00050     AXIS2_EXTERN axiom_soap_builder_t *AXIS2_CALL
<a name="l00051"></a>00051     <a class="code" href="group__axiom__soap__builder.html#g774e5f3b0fd997c686481d8ec16c2264">axiom_soap_builder_create</a>(
<a name="l00052"></a>00052         <span class="keyword">const</span> <a class="code" href="structaxutil__env.html" title="Axis2 Environment struct.">axutil_env_t</a> * env,
<a name="l00053"></a>00053         axiom_stax_builder_t * builder,
<a name="l00054"></a>00054         <span class="keyword">const</span> axis2_char_t * soap_version);
<a name="l00062"></a>00062     AXIS2_EXTERN <span class="keywordtype">void</span> AXIS2_CALL
<a name="l00063"></a>00063     <a class="code" href="group__axiom__soap__builder.html#gf57256b5e28bf4df73bb2ff089263a9d">axiom_soap_builder_free</a>(
<a name="l00064"></a>00064         axiom_soap_builder_t * builder,
<a name="l00065"></a>00065         <span class="keyword">const</span> <a class="code" href="structaxutil__env.html" title="Axis2 Environment struct.">axutil_env_t</a> * env);
<a name="l00066"></a>00066 
<a name="l00074"></a>00074     AXIS2_EXTERN axiom_soap_envelope_t *AXIS2_CALL
<a name="l00075"></a>00075     <a class="code" href="group__axiom__soap__builder.html#geb67f37a1ab8b01af8f9073c137cd92b">axiom_soap_builder_get_soap_envelope</a>(
<a name="l00076"></a>00076         axiom_soap_builder_t * builder,
<a name="l00077"></a>00077         <span class="keyword">const</span> <a class="code" href="structaxutil__env.html" title="Axis2 Environment struct.">axutil_env_t</a> * env);
<a name="l00078"></a>00078 
<a name="l00086"></a>00086     AXIS2_EXTERN axiom_document_t *AXIS2_CALL
<a name="l00087"></a>00087     <a class="code" href="group__axiom__soap__builder.html#g9889a86a4c589ea9140e6c7c0f427261">axiom_soap_builder_get_document</a>(
<a name="l00088"></a>00088         axiom_soap_builder_t * builder,
<a name="l00089"></a>00089         <span class="keyword">const</span> <a class="code" href="structaxutil__env.html" title="Axis2 Environment struct.">axutil_env_t</a> * env);
<a name="l00090"></a>00090 
<a name="l00098"></a>00098     AXIS2_EXTERN axis2_status_t AXIS2_CALL
<a name="l00099"></a>00099     <a class="code" href="group__axiom__soap__builder.html#gbb3d06154356e916298f4740d5b8eaeb">axiom_soap_builder_next</a>(
<a name="l00100"></a>00100         axiom_soap_builder_t * builder,
<a name="l00101"></a>00101         <span class="keyword">const</span> <a class="code" href="structaxutil__env.html" title="Axis2 Environment struct.">axutil_env_t</a> * env);
<a name="l00102"></a>00102 
<a name="l00110"></a>00110     AXIS2_EXTERN axiom_node_t *AXIS2_CALL
<a name="l00111"></a>00111     <a class="code" href="group__axiom__soap__builder.html#g612ed080bcef174cde30adb0fc087c2a">axiom_soap_builder_get_document_element</a>(
<a name="l00112"></a>00112         axiom_soap_builder_t * builder,
<a name="l00113"></a>00113         <span class="keyword">const</span> <a class="code" href="structaxutil__env.html" title="Axis2 Environment struct.">axutil_env_t</a> * env);
<a name="l00114"></a>00114 
<a name="l00122"></a>00122     AXIS2_EXTERN axis2_status_t AXIS2_CALL
<a name="l00123"></a>00123     <a class="code" href="group__axiom__soap__builder.html#g87f4a91ddb83e585b2e06c1584bb503b">axiom_soap_builder_set_bool_processing_mandatory_fault_elements</a>(
<a name="l00124"></a>00124         axiom_soap_builder_t * builder,
<a name="l00125"></a>00125         <span class="keyword">const</span> <a class="code" href="structaxutil__env.html" title="Axis2 Environment struct.">axutil_env_t</a> * env,
<a name="l00126"></a>00126         axis2_bool_t value);
<a name="l00127"></a>00127 
<a name="l00135"></a>00135     AXIS2_EXTERN axis2_status_t AXIS2_CALL
<a name="l00136"></a>00136     <a class="code" href="group__axiom__soap__builder.html#g4b4ece690ddf6f42c3a0151e4718be72">axiom_soap_builder_set_processing_detail_elements</a>(
<a name="l00137"></a>00137         axiom_soap_builder_t * builder,
<a name="l00138"></a>00138         <span class="keyword">const</span> <a class="code" href="structaxutil__env.html" title="Axis2 Environment struct.">axutil_env_t</a> * env,
<a name="l00139"></a>00139         axis2_bool_t value);
<a name="l00140"></a>00140 
<a name="l00148"></a>00148     AXIS2_EXTERN axis2_bool_t AXIS2_CALL
<a name="l00149"></a>00149     <a class="code" href="group__axiom__soap__builder.html#gb428e7fa5b20be177e665700d34aa138">axiom_soap_builder_is_processing_detail_elements</a>(
<a name="l00150"></a>00150         axiom_soap_builder_t * builder,
<a name="l00151"></a>00151         <span class="keyword">const</span> <a class="code" href="structaxutil__env.html" title="Axis2 Environment struct.">axutil_env_t</a> * env);
<a name="l00152"></a>00152 
<a name="l00160"></a>00160     AXIS2_EXTERN <span class="keywordtype">int</span> AXIS2_CALL
<a name="l00161"></a>00161     <a class="code" href="group__axiom__soap__builder.html#g023955efd4b61a9a8852a5c79e893c48">axiom_soap_builder_get_soap_version</a>(
<a name="l00162"></a>00162         axiom_soap_builder_t * builder,
<a name="l00163"></a>00163         <span class="keyword">const</span> <a class="code" href="structaxutil__env.html" title="Axis2 Environment struct.">axutil_env_t</a> * env);
<a name="l00164"></a>00164 
<a name="l00172"></a>00172     AXIS2_EXTERN axis2_status_t AXIS2_CALL
<a name="l00173"></a>00173     <a class="code" href="group__axiom__soap__builder.html#g6b11917cd8ae237471cb800083f20873">axiom_soap_builder_process_namespace_data</a>(
<a name="l00174"></a>00174         axiom_soap_builder_t * builder,
<a name="l00175"></a>00175         <span class="keyword">const</span> <a class="code" href="structaxutil__env.html" title="Axis2 Environment struct.">axutil_env_t</a> * env,
<a name="l00176"></a>00176         axiom_node_t * om_node,
<a name="l00177"></a>00177         axis2_bool_t is_soap_element);
<a name="l00178"></a>00178 
<a name="l00186"></a>00186     AXIS2_EXTERN axis2_status_t AXIS2_CALL
<a name="l00187"></a>00187     <a class="code" href="group__axiom__soap__builder.html#g3402c29c059ffbb670cd412871b65e13">axiom_soap_builder_set_mime_body_parts</a>(
<a name="l00188"></a>00188         axiom_soap_builder_t * builder,
<a name="l00189"></a>00189         <span class="keyword">const</span> <a class="code" href="structaxutil__env.html" title="Axis2 Environment struct.">axutil_env_t</a> * env,
<a name="l00190"></a>00190         <a class="code" href="group__axutil__hash.html#gb2d7d14db2de92a101573f44421ac12a">axutil_hash_t</a> * map);
<a name="l00191"></a>00191 
<a name="l00199"></a>00199     AXIS2_EXTERN <a class="code" href="group__axutil__hash.html#gb2d7d14db2de92a101573f44421ac12a">axutil_hash_t</a> *AXIS2_CALL
<a name="l00200"></a>00200     <a class="code" href="group__axiom__soap__builder.html#g41b1ec4410e05ade94e2cde9397a616d">axiom_soap_builder_get_mime_body_parts</a>(
<a name="l00201"></a>00201         axiom_soap_builder_t * builder,
<a name="l00202"></a>00202         <span class="keyword">const</span> <a class="code" href="structaxutil__env.html" title="Axis2 Environment struct.">axutil_env_t</a> * env);
<a name="l00203"></a>00203 
<a name="l00211"></a>00211     AXIS2_EXTERN <span class="keywordtype">void</span> AXIS2_CALL
<a name="l00212"></a>00212     <a class="code" href="group__axiom__soap__builder.html#gea4871693c3e2aa81ae285bbe9c98a30">axiom_soap_builder_set_mime_parser</a>(
<a name="l00213"></a>00213         axiom_soap_builder_t * builder,
<a name="l00214"></a>00214         <span class="keyword">const</span> <a class="code" href="structaxutil__env.html" title="Axis2 Environment struct.">axutil_env_t</a> * env,
<a name="l00215"></a>00215         axiom_mime_parser_t *mime_parser);
<a name="l00216"></a>00216 
<a name="l00224"></a>00224     AXIS2_EXTERN <span class="keywordtype">void</span> AXIS2_CALL
<a name="l00225"></a>00225     <a class="code" href="group__axiom__soap__builder.html#gecdfaf38e60ea4bdc42e9cde3bd25486">axiom_soap_builder_set_callback_function</a>(
<a name="l00226"></a>00226         axiom_soap_builder_t * builder,
<a name="l00227"></a>00227         <span class="keyword">const</span> <a class="code" href="structaxutil__env.html" title="Axis2 Environment struct.">axutil_env_t</a> * env,
<a name="l00228"></a>00228         AXIS2_READ_INPUT_CALLBACK callback);
<a name="l00229"></a>00229 
<a name="l00237"></a>00237     AXIS2_EXTERN <span class="keywordtype">void</span> AXIS2_CALL
<a name="l00238"></a>00238     <a class="code" href="group__axiom__soap__builder.html#gc031d875440a4006012395dd0de317d0">axiom_soap_builder_set_callback_ctx</a>(
<a name="l00239"></a>00239         axiom_soap_builder_t * builder,
<a name="l00240"></a>00240         <span class="keyword">const</span> <a class="code" href="structaxutil__env.html" title="Axis2 Environment struct.">axutil_env_t</a> * env,
<a name="l00241"></a>00241         <span class="keywordtype">void</span> *callback_ctx);
<a name="l00242"></a>00242 
<a name="l00243"></a>00243     AXIS2_EXTERN axis2_status_t AXIS2_CALL
<a name="l00244"></a>00244     axiom_soap_builder_create_attachments(
<a name="l00245"></a>00245         axiom_soap_builder_t * builder,
<a name="l00246"></a>00246         <span class="keyword">const</span> <a class="code" href="structaxutil__env.html" title="Axis2 Environment struct.">axutil_env_t</a> * env,
<a name="l00247"></a>00247         <span class="keywordtype">void</span> *user_param,
<a name="l00248"></a>00248         axis2_char_t *callback_name);
<a name="l00249"></a>00249 
<a name="l00250"></a>00250     AXIS2_EXTERN axis2_bool_t AXIS2_CALL
<a name="l00251"></a>00251     axiom_soap_builder_replace_xop(
<a name="l00252"></a>00252         axiom_soap_builder_t * builder,
<a name="l00253"></a>00253         <span class="keyword">const</span> <a class="code" href="structaxutil__env.html" title="Axis2 Environment struct.">axutil_env_t</a> * env,
<a name="l00254"></a>00254         axiom_node_t *om_element_node,
<a name="l00255"></a>00255         axiom_element_t *om_element);
<a name="l00256"></a>00256         
<a name="l00257"></a>00257 
<a name="l00258"></a>00258 
<a name="l00259"></a>00259 
<a name="l00261"></a>00261 <span class="preprocessor">#ifdef __cplusplus</span>
<a name="l00262"></a>00262 <span class="preprocessor"></span>}
<a name="l00263"></a>00263 <span class="preprocessor">#endif</span>
<a name="l00264"></a>00264 <span class="preprocessor"></span><span class="preprocessor">#endif                          </span><span class="comment">/* AXIOM_SOAP_BUILDER_H */</span>
</pre></div><hr size="1"><address style="text-align: right;"><small>Generated on Fri Apr 17 11:49:42 2009 for Axis2/C by&nbsp;
<a href="http://www.doxygen.org/index.html">
<img src="doxygen.png" alt="doxygen" align="middle" border="0"></a> 1.5.3 </small></address>
</body>
</html>


<|start_filename|>src/core/util/core_utils.c<|end_filename|>

/*
 * 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.
 */

#include <axis2_core_utils.h>
#include <axutil_string.h>
#include <axis2_conf.h>
#include <axis2_relates_to.h>
#include <axis2_addr.h>
#include <axis2_http_transport.h>
#include <axutil_uuid_gen.h>
#include <axutil_property.h>
#include <axis2_conf_ctx.h>



/* internal structure to keep the rest map in a multi level hash */
typedef struct {
    /* the structure will keep as many as following fields */

    /* if the mapped value is directly the operation */
    axis2_op_t *op_desc;

    /* if the mapped value is a constant, this keeps a hash map of
    possible constants => corrosponding map_internal structure */
    axutil_hash_t *consts_map;

    /* if the mapped value is a param, this keeps a hash map of
    possible param_values => corrosponding_map_internal structre */
    axutil_hash_t *params_map;

} axutil_core_utils_map_internal_t;

/* some functions to use internally in handling rest map */
/* infer op from the live url */
axis2_op_t *
axis2_core_utils_infer_op_from_parent_rest_map(
	const axutil_env_t *env,
    axutil_hash_t *rest_map,
	axis2_char_t *live_url,
	axutil_array_list_t *param_keys,
	axutil_array_list_t *param_values);

/* build the restmap recursively - internal function*/
axis2_status_t AXIS2_CALL
axis2_core_utils_internal_build_rest_map_recursively(
	const axutil_env_t * env,
	axis2_char_t * url,
    axutil_core_utils_map_internal_t *mapping_struct,
    axis2_op_t *op_desc);

/* infer op from the live url recursively */
axis2_op_t *AXIS2_CALL
axis2_core_utils_internal_infer_op_from_rest_map_recursively(
	const axutil_env_t *env,
    const axutil_core_utils_map_internal_t *parent_mapping_struct,
	axis2_char_t *live_url,
	axutil_array_list_t *param_keys,
	axutil_array_list_t *param_values);

/* match a pattern with a url component */
axis2_status_t
axis2_core_utils_match_url_component_with_pattern(const axutil_env_t *env,
             axis2_char_t *pattern,
             axis2_char_t *url_component, 
             axutil_array_list_t *param_keys, 
             axutil_array_list_t *param_values);

AXIS2_EXTERN axis2_msg_ctx_t *AXIS2_CALL
axis2_core_utils_create_out_msg_ctx(
    const axutil_env_t * env,
    axis2_msg_ctx_t * in_msg_ctx)
{
    axis2_ctx_t *ctx = NULL;
    axis2_msg_ctx_t *new_msg_ctx = NULL;
    axis2_conf_ctx_t *conf_ctx = NULL;
    axis2_transport_in_desc_t *transport_in = NULL;
    axis2_transport_out_desc_t *transport_out = NULL;
    axis2_msg_info_headers_t *old_msg_info_headers = NULL;
    axis2_msg_info_headers_t *msg_info_headers = NULL;
    axis2_endpoint_ref_t *reply_to = NULL;
    axis2_endpoint_ref_t *fault_to = NULL;
    axis2_endpoint_ref_t *to = NULL;
    const axis2_char_t *msg_id = NULL;
    axis2_relates_to_t *relates_to = NULL;
    const axis2_char_t *action = NULL;
    axis2_op_ctx_t *op_ctx = NULL;
    axis2_svc_ctx_t *svc_ctx = NULL;
    axis2_bool_t doing_rest = AXIS2_FALSE;
    axis2_bool_t doing_mtom = AXIS2_FALSE;
#ifdef AXIS2_JSON_ENABLED
    axis2_bool_t doing_json = AXIS2_FALSE;
#endif
    axis2_bool_t server_side = AXIS2_FALSE;
    axis2_svc_grp_ctx_t *svc_grp_ctx = NULL;
    axis2_char_t *msg_uuid = NULL;
    axutil_stream_t *out_stream = NULL;
    axutil_param_t *expose_headers_param = NULL;
    axis2_bool_t expose_headers = AXIS2_FALSE;

    AXIS2_PARAM_CHECK(env->error, in_msg_ctx, NULL);

    conf_ctx = axis2_msg_ctx_get_conf_ctx(in_msg_ctx, env);
    transport_in = axis2_msg_ctx_get_transport_in_desc(in_msg_ctx, env);
    transport_out = axis2_msg_ctx_get_transport_out_desc(in_msg_ctx, env);

    new_msg_ctx =
        axis2_msg_ctx_create(env, conf_ctx, transport_in, transport_out);
    if (!new_msg_ctx)
    {
        return NULL;
    }

    if (transport_in)
    {
        expose_headers_param =
            axutil_param_container_get_param(
                 axis2_transport_in_desc_param_container(transport_in, env), env,
                 AXIS2_EXPOSE_HEADERS);
    }
    if (expose_headers_param)
    {
        axis2_char_t *expose_headers_value = NULL;
        expose_headers_value = axutil_param_get_value(expose_headers_param, env);
        if (expose_headers_value && 0 == axutil_strcasecmp (expose_headers_value, AXIS2_VALUE_TRUE))
        {
            expose_headers = AXIS2_TRUE;
        }
    }
    if (expose_headers)
    {
        axis2_msg_ctx_set_transport_headers(new_msg_ctx, env,
                axis2_msg_ctx_extract_transport_headers(in_msg_ctx, env));
    }
    axis2_msg_ctx_set_http_accept_record_list(new_msg_ctx, env,
        axis2_msg_ctx_extract_http_accept_record_list(in_msg_ctx, env));
    axis2_msg_ctx_set_http_accept_charset_record_list(new_msg_ctx, env,
        axis2_msg_ctx_extract_http_accept_charset_record_list(in_msg_ctx, env));
    axis2_msg_ctx_set_http_accept_language_record_list(new_msg_ctx, env,
        axis2_msg_ctx_extract_http_accept_language_record_list(in_msg_ctx, env));

    old_msg_info_headers = axis2_msg_ctx_get_msg_info_headers(in_msg_ctx, env);
    if (!old_msg_info_headers)
    {
        return NULL;
    }
    msg_info_headers = axis2_msg_ctx_get_msg_info_headers(new_msg_ctx, env);
    if (!msg_info_headers)
    {
        /* if there is no msg info header in ew msg ctx, then create one */
        msg_info_headers = axis2_msg_info_headers_create(env, NULL, NULL);
        if (!msg_info_headers)
            return NULL;
        axis2_msg_ctx_set_msg_info_headers(new_msg_ctx, env, msg_info_headers);
    }

    msg_uuid = axutil_uuid_gen(env);
    axis2_msg_info_headers_set_message_id(msg_info_headers, env, msg_uuid);
    if (msg_uuid)
    {
        AXIS2_FREE(env->allocator, msg_uuid);
        msg_uuid = NULL;
    }
    reply_to = axis2_msg_info_headers_get_reply_to(old_msg_info_headers, env);
    axis2_msg_info_headers_set_to(msg_info_headers, env, reply_to);

    fault_to = axis2_msg_info_headers_get_fault_to(old_msg_info_headers, env);
    axis2_msg_info_headers_set_fault_to(msg_info_headers, env, fault_to);

    to = axis2_msg_info_headers_get_to(old_msg_info_headers, env);
    axis2_msg_info_headers_set_from(msg_info_headers, env, to);

    msg_id = axis2_msg_info_headers_get_message_id(old_msg_info_headers, env);
   
    /* we can create with default Relates to namespace. 
    Actual namespace based on addressing version will be created in addressing out handler */
    relates_to = axis2_relates_to_create(env, msg_id,
                                         AXIS2_WSA_RELATES_TO_RELATIONSHIP_TYPE_DEFAULT_VALUE);
    axis2_msg_info_headers_set_relates_to(msg_info_headers, env, relates_to);

    action = axis2_msg_info_headers_get_action(old_msg_info_headers, env);
    axis2_msg_info_headers_set_action(msg_info_headers, env, action);

    op_ctx = axis2_msg_ctx_get_op_ctx(in_msg_ctx, env);
    axis2_msg_ctx_set_op_ctx(new_msg_ctx, env, op_ctx);

    svc_ctx = axis2_msg_ctx_get_svc_ctx(in_msg_ctx, env);
    axis2_msg_ctx_set_svc_ctx(new_msg_ctx, env, svc_ctx);

    ctx = axis2_msg_ctx_get_base(in_msg_ctx, env);
    if (ctx)
    {
        axis2_ctx_t *new_ctx = axis2_msg_ctx_get_base(new_msg_ctx, env);
        if (new_ctx)
        {
            axis2_ctx_set_property_map(new_ctx, env,
                                       axis2_ctx_get_property_map(ctx, env));
        }
    }

    out_stream = axis2_msg_ctx_get_transport_out_stream(in_msg_ctx, env);
    axis2_msg_ctx_set_transport_out_stream(new_msg_ctx, env, out_stream);
    axis2_msg_ctx_set_out_transport_info(new_msg_ctx, env,
         axis2_msg_ctx_get_out_transport_info
         (in_msg_ctx, env));

    /* Setting the charater set encoding */
    doing_rest = axis2_msg_ctx_get_doing_rest(in_msg_ctx, env);
    axis2_msg_ctx_set_doing_rest(new_msg_ctx, env, doing_rest);

    doing_mtom = axis2_msg_ctx_get_doing_mtom(in_msg_ctx, env);
    axis2_msg_ctx_set_doing_mtom(new_msg_ctx, env, doing_mtom);

#ifdef AXIS2_JSON_ENABLED
    doing_json = axis2_msg_ctx_get_doing_json(in_msg_ctx, env);
    axis2_msg_ctx_set_doing_json(new_msg_ctx, env, doing_json);
#endif

    server_side = axis2_msg_ctx_get_server_side(in_msg_ctx, env);
    axis2_msg_ctx_set_server_side(new_msg_ctx, env, server_side);

    svc_grp_ctx = axis2_msg_ctx_get_svc_grp_ctx(in_msg_ctx, env);
    axis2_msg_ctx_set_svc_grp_ctx(new_msg_ctx, env, svc_grp_ctx);

    axis2_msg_ctx_set_is_soap_11(new_msg_ctx, env,
                                 axis2_msg_ctx_get_is_soap_11(in_msg_ctx, env));
    axis2_msg_ctx_set_keep_alive(new_msg_ctx, env,
                                 axis2_msg_ctx_is_keep_alive(in_msg_ctx, env));

    axis2_msg_ctx_set_charset_encoding(new_msg_ctx, env,
                                       axis2_msg_ctx_get_charset_encoding
                                       (in_msg_ctx, env));

    return new_msg_ctx;
}

AXIS2_EXTERN void AXIS2_CALL
axis2_core_utils_reset_out_msg_ctx(
    const axutil_env_t * env,
    axis2_msg_ctx_t * out_msg_ctx)
{
    axis2_msg_info_headers_t *msg_info_headers = NULL;
    if (!out_msg_ctx)
        return;

    msg_info_headers = axis2_msg_ctx_get_msg_info_headers(out_msg_ctx, env);
    if (msg_info_headers)
    {
        axis2_msg_info_headers_set_to(msg_info_headers, env, NULL);
        axis2_msg_info_headers_set_fault_to(msg_info_headers, env, NULL);
        axis2_msg_info_headers_set_from(msg_info_headers, env, NULL);
        axis2_msg_info_headers_set_reply_to(msg_info_headers, env, NULL);
    }

    axis2_msg_ctx_set_op_ctx(out_msg_ctx, env, NULL);
    axis2_msg_ctx_set_svc_ctx(out_msg_ctx, env, NULL);
    axis2_msg_ctx_reset_transport_out_stream(out_msg_ctx, env);
    axis2_msg_ctx_reset_out_transport_info(out_msg_ctx, env);
    axis2_msg_ctx_set_svc_grp_ctx(out_msg_ctx, env, NULL);

    return;
}

AXIS2_EXTERN axutil_qname_t *AXIS2_CALL
axis2_core_utils_get_module_qname(
    const axutil_env_t * env,
    const axis2_char_t * name,
    const axis2_char_t * version)
{
    axutil_qname_t *ret_qname = NULL;
    AXIS2_PARAM_CHECK(env->error, name, NULL);

    if (version && 0 != axutil_strlen(version))
    {
        axis2_char_t *mod_name1 = NULL;
        axis2_char_t *mod_name = NULL;
        mod_name1 = axutil_stracat(env, name, "-");
        if (!mod_name1)
        {
            return NULL;
        }
        mod_name = axutil_stracat(env, mod_name1, version);
        if (!mod_name)
        {
            AXIS2_FREE(env->allocator, mod_name1);
            mod_name1 = NULL;
            return NULL;
        }
        ret_qname = axutil_qname_create(env, mod_name, NULL, NULL);
        AXIS2_FREE(env->allocator, mod_name);
        AXIS2_FREE(env->allocator, mod_name1);
        return ret_qname;
    }
    ret_qname = axutil_qname_create(env, name, NULL, NULL);
    return ret_qname;
}

AXIS2_EXTERN axis2_status_t AXIS2_CALL
axis2_core_utils_calculate_default_module_version(
    const axutil_env_t * env,
    axutil_hash_t * modules_map,
    axis2_conf_t * axis_conf)
{
    axutil_hash_t *default_modules = NULL;
    axutil_hash_index_t *hi = NULL;
    void *val = NULL;

    AXIS2_PARAM_CHECK(env->error, modules_map, AXIS2_FAILURE);
    AXIS2_PARAM_CHECK(env->error, axis_conf, AXIS2_FAILURE);

    default_modules = axutil_hash_make(env);
    if (!default_modules)
    {
        return AXIS2_FAILURE;
    }
    for (hi = axutil_hash_first(modules_map, env); hi;
         hi = axutil_hash_next(env, hi))
    {
        axis2_module_desc_t *mod_desc = NULL;

        axutil_hash_this(hi, NULL, NULL, &val);
        mod_desc = (axis2_module_desc_t *) val;
        if (mod_desc)
        {
            const axutil_qname_t *module_qname = NULL;
            module_qname = axis2_module_desc_get_qname(mod_desc, env);
            if (module_qname)
            {
                axis2_char_t *mod_name_with_ver = NULL;
                mod_name_with_ver =
                    axutil_qname_get_localpart(module_qname, env);
                if (mod_name_with_ver)
                {
                    axis2_char_t *module_name_str = NULL;
                    axis2_char_t *module_ver_str = NULL;
                    axis2_char_t *current_def_ver = NULL;

                    module_name_str = axis2_core_utils_get_module_name(env,
                                                                       mod_name_with_ver);
                    if (!module_name_str)
                    {
                        return AXIS2_FAILURE;
                    }
                    module_ver_str = axis2_core_utils_get_module_version(env,
                                                                         mod_name_with_ver);
                    current_def_ver = axutil_hash_get(default_modules,
                                                      module_name_str,
                                                      AXIS2_HASH_KEY_STRING);
                    if (current_def_ver)
                    {
                        if (module_ver_str && AXIS2_TRUE ==
                            axis2_core_utils_is_latest_mod_ver(env,
                                                               module_ver_str,
                                                               current_def_ver))
                        {
                            axutil_hash_set(default_modules, module_name_str,
                                            AXIS2_HASH_KEY_STRING,
                                            module_ver_str);
                        }
                        else
                        {
                            if (module_name_str)
                            {
                                AXIS2_FREE(env->allocator, module_name_str);
                            }
                            if (module_ver_str)
                            {
                                AXIS2_FREE(env->allocator, module_ver_str);
                            }
                        }
                    }
                    else
                    {
                        axutil_hash_set(default_modules, module_name_str,
                                        AXIS2_HASH_KEY_STRING, module_ver_str);
                    }

                    if (module_name_str)
                    {
                        AXIS2_FREE(env->allocator, module_name_str);
                    }
                }
            }
        }
        val = NULL;
    }

    hi = NULL;
    val = NULL;
    for (hi = axutil_hash_first(default_modules, env); hi;
         hi = axutil_hash_next(env, hi))
    {
        void *key_string = NULL;
        axutil_hash_this(hi, (const void **) &key_string, NULL, &val);
        if (key_string && NULL != val)
        {
            axis2_conf_add_default_module_version(axis_conf, env,
                                                  (axis2_char_t *) key_string,
                                                  (axis2_char_t *) val);
            AXIS2_LOG_DEBUG(env->log, AXIS2_LOG_SI,
                            "Added default module"
                            " version : %s for module : %s",
                            (axis2_char_t *) val, (axis2_char_t *) key_string);
        }
    }

    if (default_modules)
    {
        axutil_hash_free(default_modules, env);
        default_modules = NULL;
    }

    return AXIS2_SUCCESS;
}

AXIS2_EXTERN axis2_char_t *AXIS2_CALL
axis2_core_utils_get_module_name(
    const axutil_env_t * env,
    axis2_char_t * module_name)
{
    axis2_char_t version_seperator = '-';
    axis2_char_t *name = NULL;
    axis2_char_t *version_sep_loc = NULL;

    AXIS2_PARAM_CHECK(env->error, module_name, NULL);

    name = axutil_strdup(env, module_name);
    if (!name)
    {
        return NULL;
    }
    version_sep_loc = axutil_rindex(name, version_seperator);
    if (version_sep_loc)
    {
        *version_sep_loc = '\0';
    }
    return name;
}

AXIS2_EXTERN axis2_char_t *AXIS2_CALL
axis2_core_utils_get_module_version(
    const axutil_env_t * env,
    axis2_char_t * module_name)
{
    axis2_char_t version_seperator = '-';
    axis2_char_t *version_sep_loc = NULL;

    AXIS2_PARAM_CHECK(env->error, module_name, NULL);

    version_sep_loc = axutil_rindex(module_name, version_seperator);
    if (version_sep_loc)
    {
        return axutil_strdup(env, version_sep_loc + sizeof(axis2_char_t));
    }
    return NULL;
}

AXIS2_EXTERN axis2_bool_t AXIS2_CALL
axis2_core_utils_is_latest_mod_ver(
    const axutil_env_t * env,
    axis2_char_t * module_ver,
    axis2_char_t * current_def_ver)
{
    double cur_ver = 0.0;
    double mod_ver = 0.0;
    AXIS2_PARAM_CHECK(env->error, module_ver, AXIS2_FALSE);
    AXIS2_PARAM_CHECK(env->error, current_def_ver, AXIS2_FALSE);
    cur_ver = atof(current_def_ver);
    mod_ver = atof(module_ver);
    if (mod_ver > cur_ver)
    {
        return AXIS2_TRUE;
    }
    return AXIS2_FAILURE;
}


/* build the rest map - external function */
AXIS2_EXTERN axis2_status_t AXIS2_CALL
axis2_core_utils_prepare_rest_mapping (
	const axutil_env_t * env,
	axis2_char_t * url,
    axutil_hash_t *rest_map,
    axis2_op_t *op_desc)
{
    
    
    axis2_char_t *first_delimitter = NULL;
    axis2_char_t *next_level_url = NULL;
    axis2_char_t *mapping_key = NULL;
    axutil_core_utils_map_internal_t *mapping_struct =  NULL;
    axis2_status_t status = AXIS2_SUCCESS;
    axis2_char_t *bracket_start = NULL;

    first_delimitter = axutil_strchr(url, '/');
   
    if(first_delimitter)
    {
        /* if there is another recursive level,
           this will get the url of that level */
        next_level_url = first_delimitter + 1;
        *first_delimitter = '\0';
    }

    if((bracket_start = axutil_strchr(url, '{')))
    {
        /* we support multiple param per url component,
           but we validate only one param */
        if(axutil_strchr(bracket_start, '}'))
        {
            /* this is validated */
        }

        else
        {
            AXIS2_ERROR_SET(env->error, AXIS2_ERROR_INVALID_URL_FORMAT, AXIS2_FAILURE);
            AXIS2_LOG_ERROR(env->log, AXIS2_LOG_SI,
                "Invalid URL Format, no closing bracket in declaring parameters");
            return AXIS2_FAILURE;
        }
    }

    
    /* only constants are allowed in this level, so here url become the mapping_key */
    mapping_key = url;

    if(*mapping_key == '\0') /* empty mapping key */
    {
        AXIS2_ERROR_SET(env->error, AXIS2_ERROR_INVALID_URL_FORMAT, AXIS2_FAILURE);
        AXIS2_LOG_ERROR(env->log, AXIS2_LOG_SI, "Invalid URL Format: empty mapping key");
        return AXIS2_FAILURE;
    }


    /* retrieve or create the mapping structure for the key*/
    mapping_struct = axutil_hash_get(rest_map,
                            mapping_key, AXIS2_HASH_KEY_STRING);
    if(!mapping_struct)
    {
        mapping_struct = (axutil_core_utils_map_internal_t*)AXIS2_MALLOC (env->allocator,
                                       sizeof(axutil_core_utils_map_internal_t));
        if(!mapping_struct) {
           AXIS2_ERROR_SET(env->error, AXIS2_ERROR_NO_MEMORY, AXIS2_FAILURE);
           AXIS2_LOG_ERROR(env->log, AXIS2_LOG_SI,
                    "No memory. Cannot create internal rest mapping structure");
           return AXIS2_FAILURE;

        }
        memset(mapping_struct, 0, sizeof(axutil_core_utils_map_internal_t));
        
        mapping_key = axutil_strdup(env, mapping_key);
        axutil_hash_set(rest_map, mapping_key, AXIS2_HASH_KEY_STRING, mapping_struct);
    }

    if(!next_level_url) {
        /* if no next level url, put the op_desc in right this level */
        if(mapping_struct->op_desc) {
           AXIS2_ERROR_SET(env->error, AXIS2_ERROR_DUPLICATE_URL_REST_MAPPING, AXIS2_FAILURE);
           AXIS2_LOG_ERROR(env->log, AXIS2_LOG_SI,
                    "Duplicate URL Mapping found");
           return AXIS2_FAILURE;
        }
        mapping_struct->op_desc = op_desc;
    }
    else {
        /* we have to build the map_internal structure recursively */
        status = axis2_core_utils_internal_build_rest_map_recursively(env,
                            next_level_url,
                            mapping_struct,
                            op_desc);
    }

    return status;

}

/* build the restmap recursively - internal function*/
axis2_status_t AXIS2_CALL
axis2_core_utils_internal_build_rest_map_recursively(
	const axutil_env_t * env,
	axis2_char_t * url,
    axutil_core_utils_map_internal_t *parent_mapping_struct,
    axis2_op_t *op_desc) {

 /* Here url is expected to be in the form
    {student}/marks/{subject} or
    marks/{subject} 
    */

    axis2_char_t *first_delimitter = NULL;
    axis2_char_t *next_level_url = NULL;
    axis2_char_t *mapping_key = NULL;
    axutil_core_utils_map_internal_t *mapping_struct =  NULL;
    axutil_hash_t *cur_level_rest_map = NULL;
    axis2_status_t status = AXIS2_SUCCESS;
    axis2_char_t *bracket_start = NULL;

    axis2_bool_t is_key_a_param = AXIS2_FALSE;

    first_delimitter = axutil_strchr(url, '/');
   
    if(first_delimitter)
    {
        /* if there is another recurisive level,
           this will get the url of that level */
        next_level_url = first_delimitter + 1;
        *first_delimitter = '\0';
    }

    if((bracket_start = axutil_strchr(url, '{')))
    {
        /* we support multiple param per url component,
           but we validate only one param */
        if(axutil_strchr(bracket_start, '}'))
        {
            is_key_a_param = AXIS2_TRUE;
        }

        else
        {
            AXIS2_ERROR_SET(env->error, AXIS2_ERROR_INVALID_URL_FORMAT, AXIS2_FAILURE);
            AXIS2_LOG_ERROR(env->log, AXIS2_LOG_SI,
                "Invalid URL Format, no closing bracket in declaring parameters");
            return AXIS2_FAILURE;
        }
    }
    
    /* here the url become the mapping_key */
    mapping_key = url;

    if(*mapping_key == '\0') /* empty mappng key */
    {
        AXIS2_ERROR_SET(env->error, AXIS2_ERROR_INVALID_URL_FORMAT, AXIS2_FAILURE);
        AXIS2_LOG_ERROR(env->log, AXIS2_LOG_SI, "Invalid URL Format: empty mapping key");
        return AXIS2_FAILURE;
    }

    if(is_key_a_param) {
        /* set the rest map as the params_map */
        if(parent_mapping_struct->params_map == NULL) {
            parent_mapping_struct->params_map = axutil_hash_make(env);
            if(!parent_mapping_struct->params_map) {
               AXIS2_ERROR_SET(env->error, AXIS2_ERROR_NO_MEMORY, AXIS2_FAILURE);
               AXIS2_LOG_ERROR(env->log, AXIS2_LOG_SI,
                        "No memory. Cannot create internal rest mapping structure");
               return AXIS2_FAILURE;
            }
        }
        cur_level_rest_map = parent_mapping_struct->params_map;
    }
    else {
        /* set the rest map as the consts_map */
        if(parent_mapping_struct->consts_map == NULL) {
            parent_mapping_struct->consts_map = axutil_hash_make(env);
            if(!parent_mapping_struct->consts_map) {
               AXIS2_ERROR_SET(env->error, AXIS2_ERROR_NO_MEMORY, AXIS2_FAILURE);
               AXIS2_LOG_ERROR(env->log, AXIS2_LOG_SI,
                        "No memory. Cannot create internal rest mapping structure");
               return AXIS2_FAILURE;
            }
        }
        cur_level_rest_map = parent_mapping_struct->consts_map;
    }

    /* retrieve or create the maping structure for the key*/
    mapping_struct = axutil_hash_get(cur_level_rest_map,
                            mapping_key, AXIS2_HASH_KEY_STRING);
    if(!mapping_struct) {
        mapping_struct = (axutil_core_utils_map_internal_t*)AXIS2_MALLOC (env->allocator,
                                       sizeof(axutil_core_utils_map_internal_t));
        if(!mapping_struct) {
            AXIS2_ERROR_SET(env->error, AXIS2_ERROR_NO_MEMORY, AXIS2_FAILURE);
            AXIS2_LOG_ERROR(env->log, AXIS2_LOG_SI,
                    "No memory. Cannot create internal rest mapping structure");
            return AXIS2_FAILURE;

        }
        memset(mapping_struct, 0, sizeof(axutil_core_utils_map_internal_t));
        
        mapping_key = axutil_strdup(env, mapping_key);
        axutil_hash_set(cur_level_rest_map, mapping_key, AXIS2_HASH_KEY_STRING, mapping_struct);
    }

    if(!next_level_url) {
        /* if no next level url, put the op_desc in right this level */
        if(mapping_struct->op_desc) {
           AXIS2_ERROR_SET(env->error, AXIS2_ERROR_DUPLICATE_URL_REST_MAPPING, AXIS2_FAILURE);
           AXIS2_LOG_ERROR(env->log, AXIS2_LOG_SI,
                    "Duplicate URL Mapping found");
           return AXIS2_FAILURE;
        }
        mapping_struct->op_desc = op_desc;
    }
    else {
        /* we have to build the map_internal structure recursively */
        status = axis2_core_utils_internal_build_rest_map_recursively(env,
                            next_level_url,
                            mapping_struct,
                            op_desc);
    }

    return status;
}


/* free the rest map recursively */
AXIS2_EXTERN axis2_status_t AXIS2_CALL
axis2_core_utils_free_rest_map (
	const axutil_env_t *env,
    axutil_hash_t *rest_map) {

    axutil_hash_index_t *hi = NULL;
    const void *key = NULL;
    void *val = NULL;
    axis2_status_t status = AXIS2_SUCCESS;

    for (hi = axutil_hash_first(rest_map, env); hi;
         hi = axutil_hash_next(env, hi))
    {
        axutil_hash_this(hi, &key, NULL, &val);

        if (val)
        {
            axutil_core_utils_map_internal_t *mapping_struct = NULL;
            mapping_struct = (axutil_core_utils_map_internal_t*)val;
            
            /* freeing the consts_map and params_map */
            if(mapping_struct->consts_map) {
                axis2_core_utils_free_rest_map(env, mapping_struct->consts_map);
            }
            
            if(mapping_struct->params_map) {
                axis2_core_utils_free_rest_map(env, mapping_struct->params_map);
            }  
            AXIS2_FREE(env->allocator, mapping_struct);
        }

        if (key)
        {
            AXIS2_FREE(env->allocator, (axis2_char_t *) key);
            key = NULL;
        }
    }
    axutil_hash_free(rest_map, env);
    return status;
}

AXIS2_EXTERN axis2_op_t *AXIS2_CALL
axis2_core_utils_get_rest_op_with_method_and_location(axis2_svc_t *svc,
                    const axutil_env_t *env, 
                    const axis2_char_t *method, 
                    const axis2_char_t *location,
                    axutil_array_list_t *param_keys,
                    axutil_array_list_t *param_values) 
{
    axis2_char_t *addition_params_str = NULL;
    axis2_char_t *adjusted_local_url = NULL;

    axis2_char_t *live_mapping_url = NULL;
    axis2_char_t *local_url = NULL;

    axis2_op_t *op = NULL;
    
    int key_len = 0;

    AXIS2_LOG_DEBUG(env->log, AXIS2_LOG_SI,
                    "Checking for operation using "
                    "REST HTTP Location fragment : %s", location);

    /* we are creating a dup of the location */
    local_url = (axis2_char_t*)axutil_strdup(env, location);
    if(!local_url) {
       AXIS2_ERROR_SET(env->error, AXIS2_ERROR_NO_MEMORY, AXIS2_FAILURE);
       AXIS2_LOG_ERROR(env->log, AXIS2_LOG_SI,
                "No memory. Cannot create the live rest mapping url");
       return NULL;
    }
    
    /* checking the existence of the addition parameters
       after the question mark '?' */
    addition_params_str = strchr(local_url, '?');
    if(addition_params_str)
    {
        *addition_params_str = '\0';
        addition_params_str ++;
    }
    
    /* if the first character is '/' ignore that */
    if(*local_url == '/')
    {
        adjusted_local_url = local_url + 1;
    }
    else
    {
        adjusted_local_url = local_url;
    }
    
    /* now create the mapping url */
    key_len = axutil_strlen(method) + axutil_strlen(adjusted_local_url) + 2;
    
    live_mapping_url = (axis2_char_t *) (AXIS2_MALLOC (env->allocator,
                                              sizeof (axis2_char_t) * key_len));
    
    if(!live_mapping_url)
    {
        AXIS2_ERROR_SET(env->error, AXIS2_ERROR_NO_MEMORY, AXIS2_FAILURE);
        AXIS2_LOG_ERROR(env->log, AXIS2_LOG_SI,
                "No memory. Cannot create the live rest mapping url");
        AXIS2_FREE(env->allocator, local_url);
        return NULL;
    }

    sprintf(live_mapping_url, "%s:%s", method, adjusted_local_url);


    op = axis2_core_utils_infer_op_from_parent_rest_map(
                env,
                axis2_svc_get_rest_map(svc, env),
                live_mapping_url,
                param_keys,
                param_values);
    
    
    if (op)
    {
        axis2_char_t *params_str;

        AXIS2_LOG_DEBUG(env->log, AXIS2_LOG_SI,
                        "Operation found using target endpoint uri fragment");

        /* here we are going to extract out the additional parameters 
         * put after '?' mark */
        params_str =  addition_params_str;
        while(params_str && *params_str != '\0')
        {
            axis2_char_t *next_params_str = NULL;
            axis2_char_t *key_value_seperator = NULL;

            axis2_char_t *key = NULL;
            axis2_char_t *value= NULL;

            
            /* we take one parameter pair to the params_str */
            next_params_str = strchr(params_str, '&');
            if(next_params_str) 
            {
                *next_params_str = '\0';
            }
            
            key_value_seperator = strchr(params_str, '=');
            if(key_value_seperator) 
            {
                /* devide the key value pair */
                *key_value_seperator = '\0';
                key = params_str;
                value = key_value_seperator + 1;
            }
            else {
                /* there is no '=' symbol, that mean only the key exist */
                key = params_str;
            }
            if(key) {
                key = axutil_strdup(env, key);
                axutil_array_list_add(param_keys, env, key);
            }
            if(value) {
                value = axutil_strdup(env, value);
                axutil_array_list_add(param_values, env, value);
            }

            if(next_params_str)
            {
                /* if there was an '&' character then */
                params_str = next_params_str + 1;
            }
            else {
                params_str = NULL; /* just to end the loop */
            }
        }
    }

    if (live_mapping_url)
    {
        AXIS2_FREE (env->allocator, live_mapping_url);
    }
    if(local_url)
    {
        AXIS2_FREE(env->allocator, local_url);
    }
    return op;
}


/* infer op from the live url */
axis2_op_t *
axis2_core_utils_infer_op_from_parent_rest_map(
	const axutil_env_t *env,
    axutil_hash_t *rest_map,
	axis2_char_t *live_url,
	axutil_array_list_t *param_keys,
	axutil_array_list_t *param_values) 
{
    axis2_char_t *first_delimitter = NULL;
    axis2_char_t *next_level_url = NULL;
    axis2_char_t *url_component = NULL;

    axis2_op_t *op_desc = NULL;
    axutil_core_utils_map_internal_t *mapping_struct =  NULL;

    first_delimitter = axutil_strchr(live_url, '/');
   
    if(first_delimitter)
    {
        /* if there is another recursive level,
           this will get the url of that level */
        next_level_url = first_delimitter + 1;
        *first_delimitter = '\0';
    }

    /* so live url is the url_component */
    url_component = live_url;

    /* check it in the hash map */
    mapping_struct = (axutil_core_utils_map_internal_t*)axutil_hash_get(rest_map,
                            url_component, AXIS2_HASH_KEY_STRING);
    
    if(mapping_struct)
    {
        if(!next_level_url)
        {
            /* if no level exists, find it here */
            op_desc = mapping_struct->op_desc;
        }
        else 
        {

            op_desc = axis2_core_utils_internal_infer_op_from_rest_map_recursively(
                        env,
                        mapping_struct,
                        next_level_url,
                        param_keys,
                        param_values);
        }
    }
    if(!op_desc)
    {
        /* if the url is not mapped to the given constant url 
         * we have to match it with the url pattern */

        axutil_hash_index_t *hi = NULL;
        const void *key = NULL;
        void *val = NULL;
        axis2_status_t matched_status = AXIS2_FAILURE;

        for (hi = axutil_hash_first(rest_map, env); hi;
             hi = axutil_hash_next(env, hi))
        {
            axutil_hash_this(hi, &key, NULL, &val);
            
            if(key == url_component)
            {
                continue; /* skip the already checked key */
            }
            if (key && val)
            {
                axis2_char_t *hash_key = (axis2_char_t*)key;
                axis2_char_t *dup_url_component = NULL;
                axis2_char_t *dup_pattern = NULL;

                /* temporary param keys and values for each entry */
                axutil_array_list_t *tmp_param_keys = NULL;
                axutil_array_list_t *tmp_param_values = NULL;


                tmp_param_keys = axutil_array_list_create(env, 10);
                if(!tmp_param_keys)
                {
                    AXIS2_ERROR_SET(env->error, AXIS2_ERROR_NO_MEMORY, AXIS2_FAILURE);
                    AXIS2_LOG_ERROR(env->log, AXIS2_LOG_SI,
                            "No memory. Cannot create internal rest mapping structure");

                    return NULL;
                }
                tmp_param_values = axutil_array_list_create(env, 10);
                if(!tmp_param_values)
                {
                    AXIS2_ERROR_SET(env->error, AXIS2_ERROR_NO_MEMORY, AXIS2_FAILURE);
                    AXIS2_LOG_ERROR(env->log, AXIS2_LOG_SI,
                            "No memory. Cannot create internal rest mapping structure");
                    axutil_array_list_free(tmp_param_keys, env);
                    return NULL;
                }

                dup_url_component = axutil_strdup(env, url_component);
                if(!dup_url_component)
                {
                    AXIS2_ERROR_SET(env->error, AXIS2_ERROR_NO_MEMORY, AXIS2_FAILURE);
                    AXIS2_LOG_ERROR(env->log, AXIS2_LOG_SI,
                            "No memory. Cannot create internal rest mapping structure");
                    axutil_array_list_free(tmp_param_keys, env);
                    axutil_array_list_free(tmp_param_values, env);
                    return NULL;
                }
                dup_pattern = axutil_strdup(env, hash_key);
                if(!dup_pattern)
                {
                    AXIS2_ERROR_SET(env->error, AXIS2_ERROR_NO_MEMORY, AXIS2_FAILURE);
                    AXIS2_LOG_ERROR(env->log, AXIS2_LOG_SI,
                            "No memory. Cannot create internal rest mapping structure");
                    axutil_array_list_free(tmp_param_keys, env);
                    axutil_array_list_free(tmp_param_values, env);
                    AXIS2_FREE(env->allocator, dup_url_component);
                    return NULL;
                }

                matched_status = axis2_core_utils_match_url_component_with_pattern(env,
                                 dup_pattern, dup_url_component, tmp_param_keys, tmp_param_values);

                AXIS2_FREE(env->allocator, dup_url_component);
                AXIS2_FREE(env->allocator, dup_pattern);

                if(matched_status == AXIS2_SUCCESS && val)
                {
                    mapping_struct = (axutil_core_utils_map_internal_t*)val;

                    if(!next_level_url)
                    {
                        op_desc = mapping_struct->op_desc;
                    }
                    else
                    {

                        op_desc = axis2_core_utils_internal_infer_op_from_rest_map_recursively(
                                    env,
                                    mapping_struct,
                                    next_level_url,
                                    tmp_param_keys,
                                    tmp_param_values);
                    }
                    if(op_desc)
                    {
                        /* we are done, the url is matched with a pattern */
                        /* but before leaving should merge the param arrays */

                        int i = 0;
                        void *param_key = NULL;
                        void *param_value = NULL;

                        for(i = 0; i < axutil_array_list_size(tmp_param_keys, env); i ++)
                        {
                            /* size(tmp_param_keys) == size(tmp_param_values) */
                            param_key = axutil_array_list_get(tmp_param_keys, env, i);
                            param_value = axutil_array_list_get(tmp_param_values, env, i);

                            /* add it to original array */
                            axutil_array_list_add(param_keys, env, param_key);
                            axutil_array_list_add(param_values, env, param_value);

                        }
                        /* since of is found, no more searches needed */
                        break;
                    }
                }
                /* freeing the temporary arrays */
                axutil_array_list_free(tmp_param_keys, env);
                axutil_array_list_free(tmp_param_values, env);
            }
        }
    }

    if(!op_desc)
    {
        /* no more to look up */
        AXIS2_ERROR_SET(env->error, AXIS2_ERROR_INVALID_URL_FORMAT, AXIS2_FAILURE);
        AXIS2_LOG_ERROR(env->log, AXIS2_LOG_SI,
            "REST maping structure is NULL for the accessed URL");
        return NULL;
    }

    return op_desc;
}

/* infer op from the live url recursively */
axis2_op_t *AXIS2_CALL
axis2_core_utils_internal_infer_op_from_rest_map_recursively(
	const axutil_env_t *env,
    const axutil_core_utils_map_internal_t *parent_mapping_struct,
	axis2_char_t *live_url,
	axutil_array_list_t *param_keys,
	axutil_array_list_t *param_values)
{

    axis2_char_t *first_delimitter = NULL;
    axis2_char_t *next_level_url = NULL;
    axis2_char_t *url_component = NULL;

    axis2_op_t *op_desc = NULL;
    axutil_core_utils_map_internal_t *child_mapping_struct = NULL;
   
    axutil_hash_index_t *hi = NULL;
    const void *key = NULL;
    void *val = NULL;

    
    first_delimitter = axutil_strchr(live_url, '/');
   
    if(first_delimitter)
    {
        /* if there is another recurisive level,
           this will get the url of that level */
        next_level_url = first_delimitter + 1;
        *first_delimitter = '\0';
    }

    /* so live url is the url_component */
    url_component = live_url;
    
    /* first check the url component in the constants array list */
    if(parent_mapping_struct->consts_map) 
    {
        child_mapping_struct = axutil_hash_get(parent_mapping_struct->consts_map,
                            url_component, AXIS2_HASH_KEY_STRING);
    }
    
    /* if the url component exists in the consts_map, go through it inside */

    if(child_mapping_struct)
    {
        if(!next_level_url)
        {
            /* there is no another level, so the op should be here */

            op_desc = child_mapping_struct->op_desc;
            
            if(!op_desc) {
                AXIS2_LOG_DEBUG(env->log, AXIS2_LOG_SI, 
                    "The operation descriptor not found constant given in the url");
            }
            /* rather than returning NULL we continue to search params_map */
            
        }
        else {

            op_desc = axis2_core_utils_internal_infer_op_from_rest_map_recursively(
                        env,
                        child_mapping_struct,
                        next_level_url,
                        param_keys,
                        param_values);
        }
    }

    if(op_desc)
    {
        /* if the op for the accessed url found, no further searching is needed */
        return op_desc;
    }

    /* if it is not found in the consts_map we have to assume it is in a params_map */

    if(!parent_mapping_struct->params_map)
    {
        /* wrong operation, abort to continue to let calling function to check other operations */
        if(first_delimitter)
        {
            /* restore the delimmiters */
            *first_delimitter = '/';
        }
        return NULL;
    }

    for (hi = axutil_hash_first(parent_mapping_struct->params_map, env); hi;
         hi = axutil_hash_next(env, hi))
    {
        axutil_hash_this(hi, &key, NULL, &val);

        if (key && val)
        {
            int i = 0;
            axis2_char_t *hash_key = (axis2_char_t*)key;
            axis2_status_t matched_status = AXIS2_SUCCESS;
            axis2_char_t *dup_url_component = NULL;
            axis2_char_t *dup_pattern = NULL;

            /* temporary param keys and values for each entry */
            axutil_array_list_t *tmp_param_keys;
            axutil_array_list_t *tmp_param_values;


            tmp_param_keys = axutil_array_list_create(env, 10);
            if(!tmp_param_keys)
            {
                AXIS2_ERROR_SET(env->error, AXIS2_ERROR_NO_MEMORY, AXIS2_FAILURE);
                AXIS2_LOG_ERROR(env->log, AXIS2_LOG_SI,
                        "No memory. Cannot create internal rest mapping structure");

                AXIS2_FREE(env->allocator, hi);
                return NULL;
            }
            tmp_param_values = axutil_array_list_create(env, 10);
            if(!tmp_param_values)
            {
                AXIS2_ERROR_SET(env->error, AXIS2_ERROR_NO_MEMORY, AXIS2_FAILURE);
                AXIS2_LOG_ERROR(env->log, AXIS2_LOG_SI,
                        "No memory. Cannot create internal rest mapping structure");
                axutil_array_list_free(tmp_param_keys, env);
                AXIS2_FREE(env->allocator, hi);
                return NULL;
            }

            dup_url_component = axutil_strdup(env, url_component);
            if(!dup_url_component)
            {
                AXIS2_ERROR_SET(env->error, AXIS2_ERROR_NO_MEMORY, AXIS2_FAILURE);
                AXIS2_LOG_ERROR(env->log, AXIS2_LOG_SI,
                        "No memory. Cannot create internal rest mapping structure");
                axutil_array_list_free(tmp_param_keys, env);
                axutil_array_list_free(tmp_param_values, env);
                AXIS2_FREE(env->allocator, hi);
                return NULL;
            }
            dup_pattern = axutil_strdup(env, hash_key);
            if(!dup_pattern)
            {
                AXIS2_ERROR_SET(env->error, AXIS2_ERROR_NO_MEMORY, AXIS2_FAILURE);
                AXIS2_LOG_ERROR(env->log, AXIS2_LOG_SI,
                        "No memory. Cannot create internal rest mapping structure");
                axutil_array_list_free(tmp_param_keys, env);
                axutil_array_list_free(tmp_param_values, env);
                AXIS2_FREE(env->allocator, dup_url_component);
                AXIS2_FREE(env->allocator, hi);
                return NULL;
            }

            matched_status = axis2_core_utils_match_url_component_with_pattern(env,
                             dup_pattern, dup_url_component, tmp_param_keys, tmp_param_values);

            AXIS2_FREE(env->allocator, dup_url_component);
            AXIS2_FREE(env->allocator, dup_pattern);

            if(matched_status == AXIS2_SUCCESS)
            {
                child_mapping_struct = (axutil_core_utils_map_internal_t*)val;

                if(!next_level_url)
                {
                    /* there is no another level, so the op should be here */
                    op_desc = child_mapping_struct->op_desc;
                    
                }
                else {
                    
                    /* if there is next level, we should check that level too */
                    op_desc = axis2_core_utils_internal_infer_op_from_rest_map_recursively(
                                env,
                                child_mapping_struct,
                                next_level_url,
                                tmp_param_keys,
                                tmp_param_values);
                }

                if(op_desc) {
                    /* the operation is found */
                    /* but before leaving should merge the param arrays */

                    int i = 0;
                    void *param_key = NULL;
                    void *param_value = NULL;
                    for(i = 0; i < axutil_array_list_size(tmp_param_keys, env); i ++)
                    {
                        /* size(tmp_param_keys) == size(tmp_param_values) */
                        param_key = axutil_array_list_get(tmp_param_keys, env, i);
                        param_value = axutil_array_list_get(tmp_param_values, env, i);

                        /* add it to original array */
                        axutil_array_list_add(param_keys, env, param_key);
                        axutil_array_list_add(param_values, env, param_value);

                    }
                    
                    /* freeing the temporary arrays */
                    axutil_array_list_free(tmp_param_keys, env);
                    axutil_array_list_free(tmp_param_values, env);
                    /* since of is found, no more searches needed */
                    AXIS2_FREE(env->allocator, hi);
                    break;
                }
            }

            /* if we come here => op is not yet found */
            /* just freeing the temp key and value arrays */
            for(i = 0; i < axutil_array_list_size(tmp_param_keys, env); i ++) {
                void *value = axutil_array_list_get(tmp_param_keys, env, i);
                if(value) {
                    AXIS2_FREE(env->allocator, value);
                }
            }
            for(i = 0; i < axutil_array_list_size(tmp_param_values, env); i ++) {
                void *value = axutil_array_list_get(tmp_param_values, env, i);
                if(value) {
                    AXIS2_FREE(env->allocator, value);
                }
            }
            axutil_array_list_free(tmp_param_keys, env);
            axutil_array_list_free(tmp_param_values, env);
        }
    }

    if(!op_desc) {
        /* this is not an error, since the calling function
            may find another opertion match with the url */
        AXIS2_LOG_DEBUG(env->log, AXIS2_LOG_SI, 
                    "The operation descriptor not found for the accessed URL");

        if(first_delimitter)
        {
            /* restore the delimmiters */
            *first_delimitter = '/';
        }
    }
    return op_desc;
}


/* match a pattern with a url component */
axis2_status_t
axis2_core_utils_match_url_component_with_pattern(const axutil_env_t *env,
             axis2_char_t *pattern,
             axis2_char_t *url_component, 
             axutil_array_list_t *param_keys, 
             axutil_array_list_t *param_values)
{
    axutil_array_list_t *const_components = NULL;
    axis2_char_t *c = NULL;
    axis2_char_t *url_c = NULL;
    axis2_char_t *pattern_c = NULL;
    axis2_char_t *const_part = NULL;
    axis2_char_t *param_part = NULL;
    axis2_char_t *param_value = NULL;
    axis2_status_t status = AXIS2_SUCCESS;
    /* here the state can have following values
       0 - inside a constant
       1 - inside a param 
     */
    int loop_state = 0;
    int i = 0;
    int pattern_ending_with_param = 0;

    /* the constant that undergoing matching */
    int matching_constant_index = 0;
    axis2_char_t *matching_constant = NULL;


    /* dividing the pattern to consts */
    const_components = axutil_array_list_create(env, 10);
    if(!const_components)
    {
        AXIS2_ERROR_SET(env->error, AXIS2_ERROR_NO_MEMORY, AXIS2_FAILURE);
        AXIS2_LOG_ERROR(env->log, AXIS2_LOG_SI,
                    "No memory. Cannot create internal rest mapping structure");
    }
    /* check whether the pattern ending with a param */
    if(*(pattern + axutil_strlen(pattern) -1) == '}')
    {
        pattern_ending_with_param = 1;
    }

    const_part = pattern;
    /* a parse to fil the const array and key array */
    for(c = pattern; c && *c != '\0'; c ++)
    {
        if(loop_state == 0) 
        {
            /* inside a constant */
            if(*c == '{')
            {
                if(const_part == c) 
                {
                    /* no const part */
                }
                else 
                {
                    /* add the constant */
                    *c = '\0';
                    const_part = axutil_strdup(env, const_part);
                    if(!const_part)
                    {
                        AXIS2_ERROR_SET(env->error, AXIS2_ERROR_NO_MEMORY, AXIS2_FAILURE);
                        AXIS2_LOG_ERROR(env->log, AXIS2_LOG_SI,
                                    "No memory. Cannot create internal rest mapping structure");

                        status = AXIS2_FAILURE;
                        break;

                    }
                    axutil_array_list_add(const_components, env, const_part);

                }
                param_part = c + 1; /* start the param */
                loop_state = 1; /* moving to the param from next iteration */
            }
            else if(*c == '}')
            {
                /* invalid state */
                AXIS2_ERROR_SET(env->error, AXIS2_ERROR_INVALID_URL_FORMAT, AXIS2_FAILURE);
                AXIS2_LOG_ERROR(env->log, AXIS2_LOG_SI,
                    "Error in parsing the url for %s", url_component);

                status = AXIS2_FAILURE;
                break;
            }
        }
        else
        {
            /* inside a param */
            if(*c == '}')
            {
                if(*(c + 1) == '{') /* you can not have two params without a constant in between */
                {
                    /* invalid state */
                    AXIS2_ERROR_SET(env->error, AXIS2_ERROR_INVALID_URL_FORMAT, AXIS2_FAILURE);
                    AXIS2_LOG_ERROR(env->log, AXIS2_LOG_SI,
                        "Error in parsing the url for %s, Please put constant between 2 parameters",
                        url_component);

                    status = AXIS2_FAILURE;
                    break;
                }
                if(param_part == c) 
                {
                    /* no param part */
                }
                else
                {
                    /* add the param */
                    *c = '\0';
                    param_part = axutil_strdup(env, param_part);

                    if(param_part == NULL)
                    {
                        AXIS2_ERROR_SET(env->error, AXIS2_ERROR_NO_MEMORY, AXIS2_FAILURE);
                        AXIS2_LOG_ERROR(env->log, AXIS2_LOG_SI,
                                    "No memory. Cannot create internal rest mapping structure");
                        status = AXIS2_FAILURE;
                        break;
                    }
                    axutil_array_list_add(param_keys, env, param_part);

                    const_part = c + 1; /* start the const */
                }
                loop_state = 0; /* moving to the const from next iteration */
            }
            else if(*c == '{')
            {
                /* invalid state */
                AXIS2_ERROR_SET(env->error, AXIS2_ERROR_INVALID_URL_FORMAT, AXIS2_FAILURE);
                AXIS2_LOG_ERROR(env->log, AXIS2_LOG_SI,
                    "Error in parsing the url for %s", url_component);

                status = AXIS2_FAILURE;
                break;

            }
        }
    }
    /* loop should stop in state 0 */
    if(loop_state != 0)
    {
        status = AXIS2_FAILURE;
    }

    if(const_part != c) {
        /* add the tailing const */
        const_part = axutil_strdup(env, const_part);
        if(!const_part) {
            AXIS2_ERROR_SET(env->error, AXIS2_ERROR_NO_MEMORY, AXIS2_FAILURE);
            AXIS2_LOG_ERROR(env->log, AXIS2_LOG_SI,
                        "No memory. Cannot create internal rest mapping structure");
            status = AXIS2_FAILURE;
        }
        axutil_array_list_add(const_components, env, const_part);
    }

    if(axutil_array_list_size(const_components, env) == 0 && status == AXIS2_SUCCESS) {
        /* no constants mean, the url componenent itself is the value */
        url_component = axutil_strdup(env, url_component);
        if(url_component)
        {
            axutil_array_list_add(param_values, env, url_component);

            /* free the empty const array */
            
            axutil_array_list_free(const_components, env);
            return AXIS2_SUCCESS;
        }
        AXIS2_ERROR_SET(env->error, AXIS2_ERROR_NO_MEMORY, AXIS2_FAILURE);
        AXIS2_LOG_ERROR(env->log, AXIS2_LOG_SI,
                    "No memory. Cannot create internal rest mapping structure");
        status = AXIS2_FAILURE;
       
    }
    
    if(status == AXIS2_FAILURE)
    {
        /* invalid state */
        AXIS2_ERROR_SET(env->error, AXIS2_ERROR_INVALID_URL_FORMAT, AXIS2_FAILURE);
        AXIS2_LOG_ERROR(env->log, AXIS2_LOG_SI,
            "Error in parsing the url for %s", url_component);

        /* free the const array */
        for(i = 0; i < axutil_array_list_size(const_components, env); i ++)
        {
            void *value;
            value = axutil_array_list_get(const_components, env, i);

            AXIS2_FREE(env->allocator, value);
        }

        axutil_array_list_free(const_components, env);
       
        return status;
    }

    /* we are tracking the loop_state here too - this is useful only to track start*/
    /* we are using the param_value part to track the matching param value */
    if(*pattern != '{') {
        /* starting_with_constant  */
        loop_state = 0;
        param_value = NULL;
    }
    else {
        /* starting_with_param  */
        loop_state = 1;
        param_value = url_component;
        
    }

    matching_constant_index = 0;
    matching_constant = axutil_array_list_get(const_components, env, 0);

    /* now parse the url component */
    for(url_c = url_component;
        *url_c != '\0' && status == AXIS2_SUCCESS && matching_constant != NULL; url_c ++ )
    {
        axis2_char_t *tmp_url_c = url_c;
        pattern_c = matching_constant;
        
        while(*tmp_url_c == *pattern_c && *tmp_url_c != '\0' && *pattern_c != '\0')
        {
            tmp_url_c ++;
            pattern_c ++;
        }

        if(*pattern_c == '\0')
        {
            /* we finised matching the constant pattern successfuly*/
            if(loop_state == 0) 
            {
                /* loop_state => we expected there is a constant */
            }
            else {
                /* we expected a param, but the constant is found => 
                   url_c should mark the end of the param */
                if(param_value == NULL) {
                    /* unexpected invalid state */
                    AXIS2_ERROR_SET(env->error, AXIS2_ERROR_INVALID_URL_FORMAT, AXIS2_FAILURE);
                    AXIS2_LOG_ERROR(env->log, AXIS2_LOG_SI,
                        "Error in parsing the url for %s", url_component);
                    status = AXIS2_FAILURE;
                }
                *url_c = '\0';
                param_value = axutil_strdup(env, param_value);

                if(param_value == NULL)
                {
                    AXIS2_ERROR_SET(env->error, AXIS2_ERROR_NO_MEMORY, AXIS2_FAILURE);
                    AXIS2_LOG_ERROR(env->log, AXIS2_LOG_SI,
                                "No memory. Cannot create internal rest mapping structure");
                    status = AXIS2_FAILURE;
                    break;
                }
                axutil_array_list_add(param_values, env, param_value);

            }
            /* next the param part is starting */
            param_value = tmp_url_c; 

            loop_state = 1; /* the end of the constant expects, start of a variable */

            /* so we found one constant, go for the other */
            matching_constant_index ++;
            matching_constant = axutil_array_list_get(const_components,
                    env, matching_constant_index);

            tmp_url_c --;
            /* increment the url_c to tmp_url_c */
            url_c = tmp_url_c;
        }
        else
        {
            /* pattern not matched */
            if(loop_state == 0)
            {
                /* we are expected this to be a constant, but it has not happend
                 * mean: the pattern match failed 
                 */
                status = AXIS2_FAILURE;
                break;
            }
        }
       
    }

    if(matching_constant_index !=  axutil_array_list_size(const_components, env))
    {
        status = AXIS2_FAILURE;
    }

    if(pattern_ending_with_param)
    {
        if(param_value)
        {
            param_value = axutil_strdup(env, param_value);

            if(param_value == NULL)
            {
                AXIS2_ERROR_SET(env->error, AXIS2_ERROR_NO_MEMORY, AXIS2_FAILURE);
                AXIS2_LOG_ERROR(env->log, AXIS2_LOG_SI,
                            "No memory. Cannot create internal rest mapping structure");
                status = AXIS2_FAILURE;
            }
            else {
                axutil_array_list_add(param_values, env, param_value);
            }
        }
    }
    else if(*url_c != '\0')
    {
        /* here the pattern ending is a constant (not a param), and matches all are already made
         * but some url part left => this is a not mach */
        status = AXIS2_FAILURE;
    }

    /* finally freeing the const array */
    for(i = 0; i < axutil_array_list_size(const_components, env); i ++)
    {
        void *value;
        value = axutil_array_list_get(const_components, env, i);

        AXIS2_FREE(env->allocator, value);
    }
    axutil_array_list_free(const_components, env);

    return status;
}


<|start_filename|>xdocs/api/html/group__axutil__qname.html<|end_filename|>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html><head><meta http-equiv="Content-Type" content="text/html;charset=UTF-8">
<title>Axis2/C: qname</title>
<link href="doxygen.css" rel="stylesheet" type="text/css">
<link href="tabs.css" rel="stylesheet" type="text/css">
</head><body>
<!-- Generated by Doxygen 1.5.3 -->
<div class="tabs">
  <ul>
    <li><a href="index.html"><span>Main&nbsp;Page</span></a></li>
    <li><a href="modules.html"><span>Modules</span></a></li>
    <li><a href="annotated.html"><span>Classes</span></a></li>
    <li><a href="files.html"><span>Files</span></a></li>
    <li><a href="dirs.html"><span>Directories</span></a></li>
    <li><a href="pages.html"><span>Related&nbsp;Pages</span></a></li>
    <li><a href="examples.html"><span>Examples</span></a></li>
    <li>
      <form action="search.php" method="get">
        <table cellspacing="0" cellpadding="0" border="0">
          <tr>
            <td><label>&nbsp;<u>S</u>earch&nbsp;for&nbsp;</label></td>
            <td><input type="text" name="query" value="" size="20" accesskey="s"/></td>
          </tr>
        </table>
      </form>
    </li>
  </ul>
</div>
<h1>qname<br>
<small>
[<a class="el" href="group__axis2__util.html">utilities</a>]</small>
</h1><table border="0" cellpadding="0" cellspacing="0">
<tr><td></td></tr>
<tr><td colspan="2"><br><h2>Typedefs</h2></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="g70855cdbece0ebf4cb99013541254d44"></a><!-- doxytag: member="axutil_qname::axutil_qname_t" ref="g70855cdbece0ebf4cb99013541254d44" args="" -->
typedef struct <br>
axutil_qname&nbsp;</td><td class="memItemRight" valign="bottom"><b>axutil_qname_t</b></td></tr>

<tr><td colspan="2"><br><h2>Functions</h2></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top">AXIS2_EXTERN <br>
axutil_qname_t *&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__axutil__qname.html#gf2494bb225ee6ca4fd80641e5c8f30b5">axutil_qname_create</a> (const <a class="el" href="structaxutil__env.html">axutil_env_t</a> *env, const axis2_char_t *localpart, const axis2_char_t *namespace_uri, const axis2_char_t *prefix)</td></tr>

<tr><td class="memItemLeft" nowrap align="right" valign="top">AXIS2_EXTERN <br>
axutil_qname_t *&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__axutil__qname.html#gf1f907c61c777c414eccd333e4947b44">axutil_qname_create_from_string</a> (const <a class="el" href="structaxutil__env.html">axutil_env_t</a> *env, const axis2_char_t *string)</td></tr>

<tr><td class="memItemLeft" nowrap align="right" valign="top">AXIS2_EXTERN void&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__axutil__qname.html#gb04bf5c012c622e6c4fcd244a26f934c">axutil_qname_free</a> (struct axutil_qname *qname, const <a class="el" href="structaxutil__env.html">axutil_env_t</a> *env)</td></tr>

<tr><td class="memItemLeft" nowrap align="right" valign="top">AXIS2_EXTERN axis2_bool_t&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__axutil__qname.html#g1c9a3b98ac4a0f1dd0b323f4c118c2f4">axutil_qname_equals</a> (const struct axutil_qname *qname, const <a class="el" href="structaxutil__env.html">axutil_env_t</a> *env, const struct axutil_qname *qname1)</td></tr>

<tr><td class="memItemLeft" nowrap align="right" valign="top">AXIS2_EXTERN struct <br>
axutil_qname *&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__axutil__qname.html#g2f085b6bb1bb492f5dab48f14d5c544d">axutil_qname_clone</a> (struct axutil_qname *qname, const <a class="el" href="structaxutil__env.html">axutil_env_t</a> *env)</td></tr>

<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="gaaa9fce6ef2a94083546be7d70eb8a0a"></a><!-- doxytag: member="axutil_qname::axutil_qname_get_uri" ref="gaaa9fce6ef2a94083546be7d70eb8a0a" args="(const struct axutil_qname *qname, const axutil_env_t *env)" -->
AXIS2_EXTERN <br>
axis2_char_t *&nbsp;</td><td class="memItemRight" valign="bottom"><b>axutil_qname_get_uri</b> (const struct axutil_qname *qname, const <a class="el" href="structaxutil__env.html">axutil_env_t</a> *env)</td></tr>

<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="g7d34b1bd9765dec3c93fbbb44a5a8170"></a><!-- doxytag: member="axutil_qname::axutil_qname_get_prefix" ref="g7d34b1bd9765dec3c93fbbb44a5a8170" args="(const struct axutil_qname *qname, const axutil_env_t *env)" -->
AXIS2_EXTERN <br>
axis2_char_t *&nbsp;</td><td class="memItemRight" valign="bottom"><b>axutil_qname_get_prefix</b> (const struct axutil_qname *qname, const <a class="el" href="structaxutil__env.html">axutil_env_t</a> *env)</td></tr>

<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="gd204cce2ce51abb0decb1199d66f0b69"></a><!-- doxytag: member="axutil_qname::axutil_qname_get_localpart" ref="gd204cce2ce51abb0decb1199d66f0b69" args="(const struct axutil_qname *qname, const axutil_env_t *env)" -->
AXIS2_EXTERN <br>
axis2_char_t *&nbsp;</td><td class="memItemRight" valign="bottom"><b>axutil_qname_get_localpart</b> (const struct axutil_qname *qname, const <a class="el" href="structaxutil__env.html">axutil_env_t</a> *env)</td></tr>

<tr><td class="memItemLeft" nowrap align="right" valign="top">AXIS2_EXTERN <br>
axis2_char_t *&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__axutil__qname.html#gce05f5dabf88994e7ae8b3bf46fa968e">axutil_qname_to_string</a> (struct axutil_qname *qname, const <a class="el" href="structaxutil__env.html">axutil_env_t</a> *env)</td></tr>

</table>
<hr><h2>Function Documentation</h2>
<a class="anchor" name="g2f085b6bb1bb492f5dab48f14d5c544d"></a><!-- doxytag: member="axutil_qname.h::axutil_qname_clone" ref="g2f085b6bb1bb492f5dab48f14d5c544d" args="(struct axutil_qname *qname, const axutil_env_t *env)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">AXIS2_EXTERN struct axutil_qname* axutil_qname_clone           </td>
          <td>(</td>
          <td class="paramtype">struct axutil_qname *&nbsp;</td>
          <td class="paramname"> <em>qname</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const <a class="el" href="structaxutil__env.html">axutil_env_t</a> *&nbsp;</td>
          <td class="paramname"> <em>env</em></td><td>&nbsp;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td><td width="100%"><code> [read]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
clones a given qname <dl compact><dt><b>Parameters:</b></dt><dd>
  <table border="0" cellspacing="2" cellpadding="0">
    <tr><td valign="top"></td><td valign="top"><em>qname,qname</em>&nbsp;</td><td>struct instance to be cloned  environment , double pointer to environment </td></tr>
  </table>
</dl>
<dl class="return" compact><dt><b>Returns:</b></dt><dd>the newly cloned qname struct instance </dd></dl>

</div>
</div><p>
<a class="anchor" name="gf2494bb225ee6ca4fd80641e5c8f30b5"></a><!-- doxytag: member="axutil_qname.h::axutil_qname_create" ref="gf2494bb225ee6ca4fd80641e5c8f30b5" args="(const axutil_env_t *env, const axis2_char_t *localpart, const axis2_char_t *namespace_uri, const axis2_char_t *prefix)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">AXIS2_EXTERN axutil_qname_t* axutil_qname_create           </td>
          <td>(</td>
          <td class="paramtype">const <a class="el" href="structaxutil__env.html">axutil_env_t</a> *&nbsp;</td>
          <td class="paramname"> <em>env</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const axis2_char_t *&nbsp;</td>
          <td class="paramname"> <em>localpart</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const axis2_char_t *&nbsp;</td>
          <td class="paramname"> <em>namespace_uri</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const axis2_char_t *&nbsp;</td>
          <td class="paramname"> <em>prefix</em></td><td>&nbsp;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td><td width="100%"></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
creates a qname struct returns a pointer to a qname struct  mandatory  mandatory  optional The prefix. Must not be null. Use "" (empty string) to indicate that no namespace URI is present or the namespace URI is not relevant if null is passed for prefix and uri , "'(empty string ) will be assinged to those fields <dl class="return" compact><dt><b>Returns:</b></dt><dd>a pointer to newly created qname struct </dd></dl>

</div>
</div><p>
<a class="anchor" name="gf1f907c61c777c414eccd333e4947b44"></a><!-- doxytag: member="axutil_qname.h::axutil_qname_create_from_string" ref="gf1f907c61c777c414eccd333e4947b44" args="(const axutil_env_t *env, const axis2_char_t *string)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">AXIS2_EXTERN axutil_qname_t* axutil_qname_create_from_string           </td>
          <td>(</td>
          <td class="paramtype">const <a class="el" href="structaxutil__env.html">axutil_env_t</a> *&nbsp;</td>
          <td class="paramname"> <em>env</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const axis2_char_t *&nbsp;</td>
          <td class="paramname"> <em>string</em></td><td>&nbsp;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td><td width="100%"></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
returns a newly created qname using a string genarated from axutil_qname_to_string method freeing the returned qname is users responsibility 
</div>
</div><p>
<a class="anchor" name="g1c9a3b98ac4a0f1dd0b323f4c118c2f4"></a><!-- doxytag: member="axutil_qname.h::axutil_qname_equals" ref="g1c9a3b98ac4a0f1dd0b323f4c118c2f4" args="(const struct axutil_qname *qname, const axutil_env_t *env, const struct axutil_qname *qname1)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">AXIS2_EXTERN axis2_bool_t axutil_qname_equals           </td>
          <td>(</td>
          <td class="paramtype">const struct axutil_qname *&nbsp;</td>
          <td class="paramname"> <em>qname</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const <a class="el" href="structaxutil__env.html">axutil_env_t</a> *&nbsp;</td>
          <td class="paramname"> <em>env</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const struct axutil_qname *&nbsp;</td>
          <td class="paramname"> <em>qname1</em></td><td>&nbsp;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td><td width="100%"></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
Compare two qnames prefix is ignored when comparing If ns_uri and localpart of qname1 and qname2 is equal returns true <dl class="return" compact><dt><b>Returns:</b></dt><dd>true if qname1 equals qname2, false otherwise </dd></dl>

</div>
</div><p>
<a class="anchor" name="gb04bf5c012c622e6c4fcd244a26f934c"></a><!-- doxytag: member="axutil_qname.h::axutil_qname_free" ref="gb04bf5c012c622e6c4fcd244a26f934c" args="(struct axutil_qname *qname, const axutil_env_t *env)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">AXIS2_EXTERN void axutil_qname_free           </td>
          <td>(</td>
          <td class="paramtype">struct axutil_qname *&nbsp;</td>
          <td class="paramname"> <em>qname</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const <a class="el" href="structaxutil__env.html">axutil_env_t</a> *&nbsp;</td>
          <td class="paramname"> <em>env</em></td><td>&nbsp;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td><td width="100%"></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
Free a qname struct <dl class="return" compact><dt><b>Returns:</b></dt><dd>Status code </dd></dl>

</div>
</div><p>
<a class="anchor" name="gce05f5dabf88994e7ae8b3bf46fa968e"></a><!-- doxytag: member="axutil_qname.h::axutil_qname_to_string" ref="gce05f5dabf88994e7ae8b3bf46fa968e" args="(struct axutil_qname *qname, const axutil_env_t *env)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">AXIS2_EXTERN axis2_char_t* axutil_qname_to_string           </td>
          <td>(</td>
          <td class="paramtype">struct axutil_qname *&nbsp;</td>
          <td class="paramname"> <em>qname</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const <a class="el" href="structaxutil__env.html">axutil_env_t</a> *&nbsp;</td>
          <td class="paramname"> <em>env</em></td><td>&nbsp;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td><td width="100%"></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
returns a unique string created by concatanting namespace uri and localpart . The string is of the form localpart|url The returned char* is freed when qname free function is called. 
</div>
</div><p>
<hr size="1"><address style="text-align: right;"><small>Generated on Fri Apr 17 11:49:46 2009 for Axis2/C by&nbsp;
<a href="http://www.doxygen.org/index.html">
<img src="doxygen.png" alt="doxygen" align="middle" border="0"></a> 1.5.3 </small></address>
</body>
</html>


<|start_filename|>guththila/samples/guththila_main.c<|end_filename|>

/*
 * 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.
 */

#include "guththila.h"
#include "guththila_defines.h"

int
main(
    int argc,
    char *argv[])
{
    int c;
    axutil_allocator_t *allocator;
    guththila_reader_t *red;
    axutil_env_t *environment;
    guththila_t *parser;
    char *xml_buffer;
    allocator = axutil_allocator_init(NULL);
    xml_buffer =
        "<?xml version = \"1.0\"?><test a=\"din\">addddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddd123</test>";
    environment = axutil_env_create(allocator);

    if (argc > 1)
        red = guththila_reader_create_for_file(environment, argv[1]);
    else
    {
        if (xml_buffer)
        {
            int size = 0;
            size = strlen(xml_buffer);
            red =
                guththila_reader_create_for_memory(environment,
                                                   (void *) xml_buffer, size,
                                                   NULL);
        }
    }

    parser = guththila_create(environment, red);
    guththila_read(environment, parser);

    while ((c = guththila_next(environment, parser)) != -1)
    {
        switch (c)
        {
        case GUTHTHILA_START_DOCUMENT:
            {
                int ix;
                printf("<?xml ");

                ix = guththila_get_attribute_count(environment, parser);
                for (; ix > 0; ix--)
                {
                    guththila_attribute_t *a;
                    char *p;
                    a = guththila_get_attribute(environment, parser);
                    p = guththila_get_attribute_name(environment, parser, a);
                    printf("%s=\"", p);
                    AXIS2_FREE(allocator, p);
                    p = guththila_get_attribute_value(environment, parser, a);
                    printf("%s\" ", p);
                    AXIS2_FREE(allocator, p);
                    guththila_attribute_free(environment, a);
                }
                printf("?>\n");
            }
            break;
        case GUTHTHILA_START_ELEMENT:
        case GUTHTHILA_EMPTY_ELEMENT:
            {
                int ia;
                int d;
                char *p;
                guththila_depth_t *depth;

                printf("<");
                p = guththila_get_prefix(environment, parser);
                if (p)
                {
                    printf("%s:", p);
                    AXIS2_FREE(allocator, p);
                }
                p = guththila_get_name(environment, parser);
                printf("%s", p);
                AXIS2_FREE(allocator, p);

                ia = guththila_get_attribute_count(environment, parser);
                for (; ia > 0; ia--)
                {
                    /* p = guththila_get_attribute_prefix_by_number
                       (parser, ia); */
                    p = guththila_get_attribute_prefix_by_number(environment,
                                                                 parser, ia);
                    if (p)
                    {
                        printf(" %s:", p);
                        AXIS2_FREE(allocator, p);
                        p = guththila_get_attribute_name_by_number(environment,
                                                                   parser, ia);
                        printf("%s=\"", p);
                        AXIS2_FREE(allocator, p);
                        p = guththila_get_attribute_value_by_number(environment,
                                                                    parser, ia);
                        printf("%s\"", p);
                        AXIS2_FREE(allocator, p);
                    }
                    else
                    {
                        p = guththila_get_attribute_name_by_number(environment,
                                                                   parser, ia);
                        printf(" %s=\"", p);
                        AXIS2_FREE(allocator, p);
                        p = guththila_get_attribute_value_by_number(environment,
                                                                    parser, ia);
                        printf("%s\"", p);
                        AXIS2_FREE(allocator, p);
                    }
                }
                depth =
                    (guththila_depth_t *) axutil_stack_get(parser->dep,
                                                           environment);
                d = depth->count;
                for (; d > 0; d--)
                {
                    p = guththila_get_namespace_prefix_by_number(environment,
                                                                 parser, d);
                    if (strncmp(p, "xmlns", 5))
                    {
                        printf(" xmlns:");
                        printf("%s=\"", p);
                    }
                    else
                        printf(" xmlns=\"");
                    AXIS2_FREE(allocator, p);
                    p = guththila_get_namespace_uri_by_number
                        (environment, parser, d);
                    printf("%s\"", p);
                    AXIS2_FREE(allocator, p);
                }
                if (parser->guththila_event == GUTHTHILA_START_ELEMENT)
                    printf(">");
                else if (parser->guththila_event == GUTHTHILA_EMPTY_ELEMENT)
                    printf("/>");
                else
                    printf("error \n");

            }
            break;
        case GUTHTHILA_END_ELEMENT:
            {
                char *p;
                printf("</");
                p = guththila_get_prefix(environment, parser);
                if (p)
                {
                    printf("%s:", p);
                    AXIS2_FREE(allocator, p);
                }
                p = guththila_get_name(environment, parser);
                printf("%s", p);
                AXIS2_FREE(allocator, p);
                printf(">");
            }
            break;
        case GUTHTHILA_CHARACTER:
            {
                char *p = NULL;
                p = guththila_get_value(environment, parser);
                /*    if (!parser->is_whitespace) */
                /*                 { */
                /*                     printf(p); */
                /*                 } */
                printf("%s", p);
                AXIS2_FREE(allocator, p);
            }
            break;
        case GUTHTHILA_COMMENT:
            break;
        };
    }
    guththila_reader_free(environment, red);
    guththila_free(environment, parser);
    axutil_env_free(environment);
    return 0;
}


<|start_filename|>xdocs/api/html/group__axis2__relates__to.html<|end_filename|>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html><head><meta http-equiv="Content-Type" content="text/html;charset=UTF-8">
<title>Axis2/C: relates to</title>
<link href="doxygen.css" rel="stylesheet" type="text/css">
<link href="tabs.css" rel="stylesheet" type="text/css">
</head><body>
<!-- Generated by Doxygen 1.5.3 -->
<div class="tabs">
  <ul>
    <li><a href="index.html"><span>Main&nbsp;Page</span></a></li>
    <li><a href="modules.html"><span>Modules</span></a></li>
    <li><a href="annotated.html"><span>Classes</span></a></li>
    <li><a href="files.html"><span>Files</span></a></li>
    <li><a href="dirs.html"><span>Directories</span></a></li>
    <li><a href="pages.html"><span>Related&nbsp;Pages</span></a></li>
    <li><a href="examples.html"><span>Examples</span></a></li>
    <li>
      <form action="search.php" method="get">
        <table cellspacing="0" cellpadding="0" border="0">
          <tr>
            <td><label>&nbsp;<u>S</u>earch&nbsp;for&nbsp;</label></td>
            <td><input type="text" name="query" value="" size="20" accesskey="s"/></td>
          </tr>
        </table>
      </form>
    </li>
  </ul>
</div>
<h1>relates to<br>
<small>
[<a class="el" href="group__axis2__addr.html">WS-Addressing</a>]</small>
</h1><table border="0" cellpadding="0" cellspacing="0">
<tr><td></td></tr>
<tr><td colspan="2"><br><h2>Files</h2></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top">file &nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="axis2__relates__to_8h.html">axis2_relates_to.h</a></td></tr>

<tr><td colspan="2"><br><h2>Typedefs</h2></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top">typedef struct <br>
axis2_relates_to&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__axis2__relates__to.html#gd92fd7b0e63b44c6343db15b61aeba45">axis2_relates_to_t</a></td></tr>

<tr><td colspan="2"><br><h2>Functions</h2></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top">AXIS2_EXTERN <br>
<a class="el" href="group__axis2__relates__to.html#gd92fd7b0e63b44c6343db15b61aeba45">axis2_relates_to_t</a> *&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__axis2__relates__to.html#g1f7a4765f50521b1cc0bedc34da084be">axis2_relates_to_create</a> (const <a class="el" href="structaxutil__env.html">axutil_env_t</a> *env, const axis2_char_t *value, const axis2_char_t *relationship_type)</td></tr>

<tr><td class="memItemLeft" nowrap align="right" valign="top">AXIS2_EXTERN const <br>
axis2_char_t *&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__axis2__relates__to.html#g06f3ca8b23f7f1ec80eb753a75203cf4">axis2_relates_to_get_value</a> (const <a class="el" href="group__axis2__relates__to.html#gd92fd7b0e63b44c6343db15b61aeba45">axis2_relates_to_t</a> *relates_to, const <a class="el" href="structaxutil__env.html">axutil_env_t</a> *env)</td></tr>

<tr><td class="memItemLeft" nowrap align="right" valign="top">AXIS2_EXTERN <br>
axis2_status_t&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__axis2__relates__to.html#gaa3dd97df52d084ea15a5d05d6931a82">axis2_relates_to_set_value</a> (struct axis2_relates_to *relates_to, const <a class="el" href="structaxutil__env.html">axutil_env_t</a> *env, const axis2_char_t *value)</td></tr>

<tr><td class="memItemLeft" nowrap align="right" valign="top">AXIS2_EXTERN const <br>
axis2_char_t *&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__axis2__relates__to.html#g3208f2fae771fc2fe5e6a604f0b9c3bf">axis2_relates_to_get_relationship_type</a> (const <a class="el" href="group__axis2__relates__to.html#gd92fd7b0e63b44c6343db15b61aeba45">axis2_relates_to_t</a> *relates_to, const <a class="el" href="structaxutil__env.html">axutil_env_t</a> *env)</td></tr>

<tr><td class="memItemLeft" nowrap align="right" valign="top">AXIS2_EXTERN <br>
axis2_status_t&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__axis2__relates__to.html#g964c1e6a4cd9029fade0c95209b46166">axis2_relates_to_set_relationship_type</a> (struct axis2_relates_to *relates_to, const <a class="el" href="structaxutil__env.html">axutil_env_t</a> *env, const axis2_char_t *relationship_type)</td></tr>

<tr><td class="memItemLeft" nowrap align="right" valign="top">AXIS2_EXTERN void&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__axis2__relates__to.html#g6f8c0bf96b07b67ed99af0ea01136e3e">axis2_relates_to_free</a> (struct axis2_relates_to *relates_to, const <a class="el" href="structaxutil__env.html">axutil_env_t</a> *env)</td></tr>

</table>
<hr><a name="_details"></a><h2>Detailed Description</h2>
relates to encapsulates data that indicate how a message relates to another message. The related message is identified by a URI that corresponds to the related message's message ID. The type of the relationship is also captured by relates to. Basically relates to handles the following WS-Addressing header &lt;wsa:RelatesTo RelationshipType="..."?&gt;xs:anyURI&lt;/wsa:RelatesTo&gt; <hr><h2>Typedef Documentation</h2>
<a class="anchor" name="gd92fd7b0e63b44c6343db15b61aeba45"></a><!-- doxytag: member="axis2_relates_to.h::axis2_relates_to_t" ref="gd92fd7b0e63b44c6343db15b61aeba45" args="" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">typedef struct axis2_relates_to <a class="el" href="group__axis2__relates__to.html#gd92fd7b0e63b44c6343db15b61aeba45">axis2_relates_to_t</a>          </td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
Type name for struct axis2_relates_to 
</div>
</div><p>
<hr><h2>Function Documentation</h2>
<a class="anchor" name="g1f7a4765f50521b1cc0bedc34da084be"></a><!-- doxytag: member="axis2_relates_to.h::axis2_relates_to_create" ref="g1f7a4765f50521b1cc0bedc34da084be" args="(const axutil_env_t *env, const axis2_char_t *value, const axis2_char_t *relationship_type)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">AXIS2_EXTERN <a class="el" href="group__axis2__relates__to.html#gd92fd7b0e63b44c6343db15b61aeba45">axis2_relates_to_t</a>* axis2_relates_to_create           </td>
          <td>(</td>
          <td class="paramtype">const <a class="el" href="structaxutil__env.html">axutil_env_t</a> *&nbsp;</td>
          <td class="paramname"> <em>env</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const axis2_char_t *&nbsp;</td>
          <td class="paramname"> <em>value</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const axis2_char_t *&nbsp;</td>
          <td class="paramname"> <em>relationship_type</em></td><td>&nbsp;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td><td width="100%"></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
creates relates to struct. <dl compact><dt><b>Parameters:</b></dt><dd>
  <table border="0" cellspacing="2" cellpadding="0">
    <tr><td valign="top"></td><td valign="top"><em>env</em>&nbsp;</td><td>pointer to environment struct </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>value</em>&nbsp;</td><td>value string </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>relationship_type</em>&nbsp;</td><td>relationship type string </td></tr>
  </table>
</dl>

</div>
</div><p>
<a class="anchor" name="g6f8c0bf96b07b67ed99af0ea01136e3e"></a><!-- doxytag: member="axis2_relates_to.h::axis2_relates_to_free" ref="g6f8c0bf96b07b67ed99af0ea01136e3e" args="(struct axis2_relates_to *relates_to, const axutil_env_t *env)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">AXIS2_EXTERN void axis2_relates_to_free           </td>
          <td>(</td>
          <td class="paramtype">struct axis2_relates_to *&nbsp;</td>
          <td class="paramname"> <em>relates_to</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const <a class="el" href="structaxutil__env.html">axutil_env_t</a> *&nbsp;</td>
          <td class="paramname"> <em>env</em></td><td>&nbsp;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td><td width="100%"></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
Frees relates to struct. <dl compact><dt><b>Parameters:</b></dt><dd>
  <table border="0" cellspacing="2" cellpadding="0">
    <tr><td valign="top"></td><td valign="top"><em>relates_to</em>&nbsp;</td><td>pointer to relates to struct </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>env</em>&nbsp;</td><td>pointer to environment struct </td></tr>
  </table>
</dl>
<dl class="return" compact><dt><b>Returns:</b></dt><dd>void </dd></dl>

</div>
</div><p>
<a class="anchor" name="g3208f2fae771fc2fe5e6a604f0b9c3bf"></a><!-- doxytag: member="axis2_relates_to.h::axis2_relates_to_get_relationship_type" ref="g3208f2fae771fc2fe5e6a604f0b9c3bf" args="(const axis2_relates_to_t *relates_to, const axutil_env_t *env)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">AXIS2_EXTERN const axis2_char_t* axis2_relates_to_get_relationship_type           </td>
          <td>(</td>
          <td class="paramtype">const <a class="el" href="group__axis2__relates__to.html#gd92fd7b0e63b44c6343db15b61aeba45">axis2_relates_to_t</a> *&nbsp;</td>
          <td class="paramname"> <em>relates_to</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const <a class="el" href="structaxutil__env.html">axutil_env_t</a> *&nbsp;</td>
          <td class="paramname"> <em>env</em></td><td>&nbsp;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td><td width="100%"></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
Gets relationship type. <dl compact><dt><b>Parameters:</b></dt><dd>
  <table border="0" cellspacing="2" cellpadding="0">
    <tr><td valign="top"></td><td valign="top"><em>relates_to</em>&nbsp;</td><td>pointer to relates to struct </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>env</em>&nbsp;</td><td>pointer to environment struct </td></tr>
  </table>
</dl>
<dl class="return" compact><dt><b>Returns:</b></dt><dd>relationship type string </dd></dl>

</div>
</div><p>
<a class="anchor" name="g06f3ca8b23f7f1ec80eb753a75203cf4"></a><!-- doxytag: member="axis2_relates_to.h::axis2_relates_to_get_value" ref="g06f3ca8b23f7f1ec80eb753a75203cf4" args="(const axis2_relates_to_t *relates_to, const axutil_env_t *env)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">AXIS2_EXTERN const axis2_char_t* axis2_relates_to_get_value           </td>
          <td>(</td>
          <td class="paramtype">const <a class="el" href="group__axis2__relates__to.html#gd92fd7b0e63b44c6343db15b61aeba45">axis2_relates_to_t</a> *&nbsp;</td>
          <td class="paramname"> <em>relates_to</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const <a class="el" href="structaxutil__env.html">axutil_env_t</a> *&nbsp;</td>
          <td class="paramname"> <em>env</em></td><td>&nbsp;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td><td width="100%"></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
Gets value. The value field represents the URI that corresponds to the related message's message ID <dl compact><dt><b>Parameters:</b></dt><dd>
  <table border="0" cellspacing="2" cellpadding="0">
    <tr><td valign="top"></td><td valign="top"><em>relates_to</em>&nbsp;</td><td>pointer to relates to struct </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>env</em>&nbsp;</td><td>pointer to environment struct </td></tr>
  </table>
</dl>
<dl class="return" compact><dt><b>Returns:</b></dt><dd>value string </dd></dl>

</div>
</div><p>
<a class="anchor" name="g964c1e6a4cd9029fade0c95209b46166"></a><!-- doxytag: member="axis2_relates_to.h::axis2_relates_to_set_relationship_type" ref="g964c1e6a4cd9029fade0c95209b46166" args="(struct axis2_relates_to *relates_to, const axutil_env_t *env, const axis2_char_t *relationship_type)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">AXIS2_EXTERN axis2_status_t axis2_relates_to_set_relationship_type           </td>
          <td>(</td>
          <td class="paramtype">struct axis2_relates_to *&nbsp;</td>
          <td class="paramname"> <em>relates_to</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const <a class="el" href="structaxutil__env.html">axutil_env_t</a> *&nbsp;</td>
          <td class="paramname"> <em>env</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const axis2_char_t *&nbsp;</td>
          <td class="paramname"> <em>relationship_type</em></td><td>&nbsp;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td><td width="100%"></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
Sets relationship type. <dl compact><dt><b>Parameters:</b></dt><dd>
  <table border="0" cellspacing="2" cellpadding="0">
    <tr><td valign="top"></td><td valign="top"><em>relates_to</em>&nbsp;</td><td>pointer to relates to struct </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>env</em>&nbsp;</td><td>pointer to environment struct </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>relationship_type</em>&nbsp;</td><td>relationship type string </td></tr>
  </table>
</dl>
<dl class="return" compact><dt><b>Returns:</b></dt><dd>AXIS2_SUCCESS on success, else AXIS2_FAILURE </dd></dl>

</div>
</div><p>
<a class="anchor" name="gaa3dd97df52d084ea15a5d05d6931a82"></a><!-- doxytag: member="axis2_relates_to.h::axis2_relates_to_set_value" ref="gaa3dd97df52d084ea15a5d05d6931a82" args="(struct axis2_relates_to *relates_to, const axutil_env_t *env, const axis2_char_t *value)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">AXIS2_EXTERN axis2_status_t axis2_relates_to_set_value           </td>
          <td>(</td>
          <td class="paramtype">struct axis2_relates_to *&nbsp;</td>
          <td class="paramname"> <em>relates_to</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const <a class="el" href="structaxutil__env.html">axutil_env_t</a> *&nbsp;</td>
          <td class="paramname"> <em>env</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const axis2_char_t *&nbsp;</td>
          <td class="paramname"> <em>value</em></td><td>&nbsp;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td><td width="100%"></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
Sets value. The value field represents the URI that corresponds to the related message's message ID <dl compact><dt><b>Parameters:</b></dt><dd>
  <table border="0" cellspacing="2" cellpadding="0">
    <tr><td valign="top"></td><td valign="top"><em>relates_to</em>&nbsp;</td><td>pointer to relates to struct </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>env</em>&nbsp;</td><td>pointer to environment struct </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>value</em>&nbsp;</td><td>value string </td></tr>
  </table>
</dl>
<dl class="return" compact><dt><b>Returns:</b></dt><dd>AXIS2_SUCCESS on success, else AXIS2_FAILURE </dd></dl>

</div>
</div><p>
<hr size="1"><address style="text-align: right;"><small>Generated on Fri Apr 17 11:49:45 2009 for Axis2/C by&nbsp;
<a href="http://www.doxygen.org/index.html">
<img src="doxygen.png" alt="doxygen" align="middle" border="0"></a> 1.5.3 </small></address>
</body>
</html>


<|start_filename|>xdocs/api/html/group__axiom__soap__body.html<|end_filename|>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html><head><meta http-equiv="Content-Type" content="text/html;charset=UTF-8">
<title>Axis2/C: soap body</title>
<link href="doxygen.css" rel="stylesheet" type="text/css">
<link href="tabs.css" rel="stylesheet" type="text/css">
</head><body>
<!-- Generated by Doxygen 1.5.3 -->
<div class="tabs">
  <ul>
    <li><a href="index.html"><span>Main&nbsp;Page</span></a></li>
    <li><a href="modules.html"><span>Modules</span></a></li>
    <li><a href="annotated.html"><span>Classes</span></a></li>
    <li><a href="files.html"><span>Files</span></a></li>
    <li><a href="dirs.html"><span>Directories</span></a></li>
    <li><a href="pages.html"><span>Related&nbsp;Pages</span></a></li>
    <li><a href="examples.html"><span>Examples</span></a></li>
    <li>
      <form action="search.php" method="get">
        <table cellspacing="0" cellpadding="0" border="0">
          <tr>
            <td><label>&nbsp;<u>S</u>earch&nbsp;for&nbsp;</label></td>
            <td><input type="text" name="query" value="" size="20" accesskey="s"/></td>
          </tr>
        </table>
      </form>
    </li>
  </ul>
</div>
<h1>soap body<br>
<small>
[<a class="el" href="group__axiom__soap.html">SOAP</a>]</small>
</h1><table border="0" cellpadding="0" cellspacing="0">
<tr><td></td></tr>
<tr><td colspan="2"><br><h2>Functions</h2></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top">AXIS2_EXTERN <br>
axiom_soap_body_t *&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__axiom__soap__body.html#ged07d656f1b298588cdbc539609d979f">axiom_soap_body_create_with_parent</a> (const <a class="el" href="structaxutil__env.html">axutil_env_t</a> *env, struct axiom_soap_envelope *envelope)</td></tr>

<tr><td class="memItemLeft" nowrap align="right" valign="top">AXIS2_EXTERN void&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__axiom__soap__body.html#g34c1b50ba393f19106007eed20104e1d">axiom_soap_body_free</a> (axiom_soap_body_t *body, const <a class="el" href="structaxutil__env.html">axutil_env_t</a> *env)</td></tr>

<tr><td class="memItemLeft" nowrap align="right" valign="top">AXIS2_EXTERN axis2_bool_t&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__axiom__soap__body.html#g5e88d50ff93d508053b3920f301f301c">axiom_soap_body_has_fault</a> (axiom_soap_body_t *body, const <a class="el" href="structaxutil__env.html">axutil_env_t</a> *env)</td></tr>

<tr><td class="memItemLeft" nowrap align="right" valign="top">AXIS2_EXTERN <br>
axiom_soap_fault_t *&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__axiom__soap__body.html#ga5be4d54bfebaa44966685511e2ad96b">axiom_soap_body_get_fault</a> (axiom_soap_body_t *body, const <a class="el" href="structaxutil__env.html">axutil_env_t</a> *env)</td></tr>

<tr><td class="memItemLeft" nowrap align="right" valign="top">AXIS2_EXTERN <br>
axiom_node_t *&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__axiom__soap__body.html#g9bbf0f7a4ecab44106145d9b97f07dfc">axiom_soap_body_get_base_node</a> (axiom_soap_body_t *body, const <a class="el" href="structaxutil__env.html">axutil_env_t</a> *env)</td></tr>

<tr><td class="memItemLeft" nowrap align="right" valign="top">AXIS2_EXTERN int&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__axiom__soap__body.html#ge87f17d53d2995ac6c3b05be6d7dddaa">axiom_soap_body_get_soap_version</a> (axiom_soap_body_t *body, const <a class="el" href="structaxutil__env.html">axutil_env_t</a> *env)</td></tr>

<tr><td class="memItemLeft" nowrap align="right" valign="top">AXIS2_EXTERN <br>
axis2_status_t&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__axiom__soap__body.html#g5a7066590890390e527b0a718178c785">axiom_soap_body_build</a> (axiom_soap_body_t *body, const <a class="el" href="structaxutil__env.html">axutil_env_t</a> *env)</td></tr>

<tr><td class="memItemLeft" nowrap align="right" valign="top">AXIS2_EXTERN <br>
axis2_status_t&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__axiom__soap__body.html#g67ce69f3f13c325bd541fff5a2059d49">axiom_soap_body_add_child</a> (axiom_soap_body_t *body, const <a class="el" href="structaxutil__env.html">axutil_env_t</a> *env, axiom_node_t *child)</td></tr>

<tr><td class="memItemLeft" nowrap align="right" valign="top">AXIS2_EXTERN <br>
axis2_status_t&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__axiom__soap__body.html#g9e5fafdf4c3be8634b6460caaf2483c0">axiom_soap_body_convert_fault_to_soap11</a> (axiom_soap_body_t *soap_body, const <a class="el" href="structaxutil__env.html">axutil_env_t</a> *env)</td></tr>

<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="g1ef09e32ddc88eba85dac1ddee378b3b"></a><!-- doxytag: member="axiom_soap_body::axiom_soap_body_process_attachments" ref="g1ef09e32ddc88eba85dac1ddee378b3b" args="(axiom_soap_body_t *soap_body, const axutil_env_t *env, void *user_param, axis2_char_t *callback_name)" -->
AXIS2_EXTERN <br>
axis2_status_t&nbsp;</td><td class="memItemRight" valign="bottom"><b>axiom_soap_body_process_attachments</b> (axiom_soap_body_t *soap_body, const <a class="el" href="structaxutil__env.html">axutil_env_t</a> *env, void *user_param, axis2_char_t *callback_name)</td></tr>

</table>
<hr><h2>Function Documentation</h2>
<a class="anchor" name="g67ce69f3f13c325bd541fff5a2059d49"></a><!-- doxytag: member="axiom_soap_body.h::axiom_soap_body_add_child" ref="g67ce69f3f13c325bd541fff5a2059d49" args="(axiom_soap_body_t *body, const axutil_env_t *env, axiom_node_t *child)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">AXIS2_EXTERN axis2_status_t axiom_soap_body_add_child           </td>
          <td>(</td>
          <td class="paramtype">axiom_soap_body_t *&nbsp;</td>
          <td class="paramname"> <em>body</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const <a class="el" href="structaxutil__env.html">axutil_env_t</a> *&nbsp;</td>
          <td class="paramname"> <em>env</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">axiom_node_t *&nbsp;</td>
          <td class="paramname"> <em>child</em></td><td>&nbsp;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td><td width="100%"></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
add an om node as the child to this soap_body the child is added to as the first child <dl compact><dt><b>Parameters:</b></dt><dd>
  <table border="0" cellspacing="2" cellpadding="0">
    <tr><td valign="top"></td><td valign="top"><em>body</em>&nbsp;</td><td>pointer to soap_body struct </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>env</em>&nbsp;</td><td>axutil_environment struct MUST not be NULL </td></tr>
  </table>
</dl>
<dl class="return" compact><dt><b>Returns:</b></dt><dd>status code , AXIS2_SUCCESS on success , AXIS2_ERROR otherwise </dd></dl>

</div>
</div><p>
<a class="anchor" name="g5a7066590890390e527b0a718178c785"></a><!-- doxytag: member="axiom_soap_body.h::axiom_soap_body_build" ref="g5a7066590890390e527b0a718178c785" args="(axiom_soap_body_t *body, const axutil_env_t *env)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">AXIS2_EXTERN axis2_status_t axiom_soap_body_build           </td>
          <td>(</td>
          <td class="paramtype">axiom_soap_body_t *&nbsp;</td>
          <td class="paramname"> <em>body</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const <a class="el" href="structaxutil__env.html">axutil_env_t</a> *&nbsp;</td>
          <td class="paramname"> <em>env</em></td><td>&nbsp;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td><td width="100%"></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
build the soap body completely . return the status code, <dl compact><dt><b>Parameters:</b></dt><dd>
  <table border="0" cellspacing="2" cellpadding="0">
    <tr><td valign="top"></td><td valign="top"><em>body</em>&nbsp;</td><td>pointer to soap_body struct </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>env</em>&nbsp;</td><td>axutil_environment struct MUST not be NULL </td></tr>
  </table>
</dl>
<dl class="return" compact><dt><b>Returns:</b></dt><dd>status code , AXIS2_SUCCESS on success , AXIS2_ERROR </dd></dl>

</div>
</div><p>
<a class="anchor" name="g9e5fafdf4c3be8634b6460caaf2483c0"></a><!-- doxytag: member="axiom_soap_body.h::axiom_soap_body_convert_fault_to_soap11" ref="g9e5fafdf4c3be8634b6460caaf2483c0" args="(axiom_soap_body_t *soap_body, const axutil_env_t *env)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">AXIS2_EXTERN axis2_status_t axiom_soap_body_convert_fault_to_soap11           </td>
          <td>(</td>
          <td class="paramtype">axiom_soap_body_t *&nbsp;</td>
          <td class="paramname"> <em>soap_body</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const <a class="el" href="structaxutil__env.html">axutil_env_t</a> *&nbsp;</td>
          <td class="paramname"> <em>env</em></td><td>&nbsp;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td><td width="100%"></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
SOAP builder construct a SOAP 1.2 fault all the time. So when SOAP 1.1 is in use, we should convert SOAP fault to SOAP 1.1 fault format before use. <dl compact><dt><b>Parameters:</b></dt><dd>
  <table border="0" cellspacing="2" cellpadding="0">
    <tr><td valign="top"></td><td valign="top"><em>body</em>&nbsp;</td><td>pointer to soap_body struct </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>env</em>&nbsp;</td><td>axutil_environment struct MUST not be NULL </td></tr>
  </table>
</dl>
<dl class="return" compact><dt><b>Returns:</b></dt><dd>status code , AXIS2_SUCCESS on success , AXIS2_ERROR </dd></dl>

</div>
</div><p>
<a class="anchor" name="ged07d656f1b298588cdbc539609d979f"></a><!-- doxytag: member="axiom_soap_body.h::axiom_soap_body_create_with_parent" ref="ged07d656f1b298588cdbc539609d979f" args="(const axutil_env_t *env, struct axiom_soap_envelope *envelope)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">AXIS2_EXTERN axiom_soap_body_t* axiom_soap_body_create_with_parent           </td>
          <td>(</td>
          <td class="paramtype">const <a class="el" href="structaxutil__env.html">axutil_env_t</a> *&nbsp;</td>
          <td class="paramname"> <em>env</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">struct axiom_soap_envelope *&nbsp;</td>
          <td class="paramname"> <em>envelope</em></td><td>&nbsp;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td><td width="100%"></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
a struct that represents the contents of the SOAP body element in a SOAP message. SOAP body element consists of XML data that affects the way the application-specific content is processed. soap_body_struct contains soap_header and which have the content for the SOAP body. this also contains axiom_soap_fault_t struct , which carries status and/or error information. creates a soap body struct <dl compact><dt><b>Parameters:</b></dt><dd>
  <table border="0" cellspacing="2" cellpadding="0">
    <tr><td valign="top"></td><td valign="top"><em>env</em>&nbsp;</td><td>Environment. MUST NOT be NULL </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>envelope</em>&nbsp;</td><td>the SOAP envelope to set the SOAP Body </td></tr>
  </table>
</dl>
<dl class="return" compact><dt><b>Returns:</b></dt><dd>created SOAP Body </dd></dl>

</div>
</div><p>
<a class="anchor" name="g34c1b50ba393f19106007eed20104e1d"></a><!-- doxytag: member="axiom_soap_body.h::axiom_soap_body_free" ref="g34c1b50ba393f19106007eed20104e1d" args="(axiom_soap_body_t *body, const axutil_env_t *env)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">AXIS2_EXTERN void axiom_soap_body_free           </td>
          <td>(</td>
          <td class="paramtype">axiom_soap_body_t *&nbsp;</td>
          <td class="paramname"> <em>body</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const <a class="el" href="structaxutil__env.html">axutil_env_t</a> *&nbsp;</td>
          <td class="paramname"> <em>env</em></td><td>&nbsp;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td><td width="100%"></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
Deallocate all the resources associated to soap_body But it does not deallocate the underlying om structure <dl compact><dt><b>Parameters:</b></dt><dd>
  <table border="0" cellspacing="2" cellpadding="0">
    <tr><td valign="top"></td><td valign="top"><em>body</em>&nbsp;</td><td>soap_body struct </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>env</em>&nbsp;</td><td>must not be null </td></tr>
  </table>
</dl>
<dl class="return" compact><dt><b>Returns:</b></dt><dd>status code AXIS2_SUCCESS </dd></dl>

</div>
</div><p>
<a class="anchor" name="g9bbf0f7a4ecab44106145d9b97f07dfc"></a><!-- doxytag: member="axiom_soap_body.h::axiom_soap_body_get_base_node" ref="g9bbf0f7a4ecab44106145d9b97f07dfc" args="(axiom_soap_body_t *body, const axutil_env_t *env)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">AXIS2_EXTERN axiom_node_t* axiom_soap_body_get_base_node           </td>
          <td>(</td>
          <td class="paramtype">axiom_soap_body_t *&nbsp;</td>
          <td class="paramname"> <em>body</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const <a class="el" href="structaxutil__env.html">axutil_env_t</a> *&nbsp;</td>
          <td class="paramname"> <em>env</em></td><td>&nbsp;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td><td width="100%"></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
get the underlying om_node <dl compact><dt><b>Parameters:</b></dt><dd>
  <table border="0" cellspacing="2" cellpadding="0">
    <tr><td valign="top"></td><td valign="top"><em>body</em>&nbsp;</td><td>soap_body </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>env</em>&nbsp;</td><td>environment must not be null </td></tr>
  </table>
</dl>
<dl class="return" compact><dt><b>Returns:</b></dt><dd>axiom_node_t </dd></dl>

</div>
</div><p>
<a class="anchor" name="ga5be4d54bfebaa44966685511e2ad96b"></a><!-- doxytag: member="axiom_soap_body.h::axiom_soap_body_get_fault" ref="ga5be4d54bfebaa44966685511e2ad96b" args="(axiom_soap_body_t *body, const axutil_env_t *env)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">AXIS2_EXTERN axiom_soap_fault_t* axiom_soap_body_get_fault           </td>
          <td>(</td>
          <td class="paramtype">axiom_soap_body_t *&nbsp;</td>
          <td class="paramname"> <em>body</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const <a class="el" href="structaxutil__env.html">axutil_env_t</a> *&nbsp;</td>
          <td class="paramname"> <em>env</em></td><td>&nbsp;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td><td width="100%"></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
returns the soap fault in this soap_body IF a soap_builder is associated with the soap_body Pulling will take place <dl compact><dt><b>Parameters:</b></dt><dd>
  <table border="0" cellspacing="2" cellpadding="0">
    <tr><td valign="top"></td><td valign="top"><em>body</em>&nbsp;</td><td>soap_body </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>env</em>&nbsp;</td><td>environment must not be null </td></tr>
  </table>
</dl>
<dl class="return" compact><dt><b>Returns:</b></dt><dd>axiom_soap_fault_t if available, NULL otherwise </dd></dl>

</div>
</div><p>
<a class="anchor" name="ge87f17d53d2995ac6c3b05be6d7dddaa"></a><!-- doxytag: member="axiom_soap_body.h::axiom_soap_body_get_soap_version" ref="ge87f17d53d2995ac6c3b05be6d7dddaa" args="(axiom_soap_body_t *body, const axutil_env_t *env)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">AXIS2_EXTERN int axiom_soap_body_get_soap_version           </td>
          <td>(</td>
          <td class="paramtype">axiom_soap_body_t *&nbsp;</td>
          <td class="paramname"> <em>body</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const <a class="el" href="structaxutil__env.html">axutil_env_t</a> *&nbsp;</td>
          <td class="paramname"> <em>env</em></td><td>&nbsp;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td><td width="100%"></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
return the soap version <dl compact><dt><b>Parameters:</b></dt><dd>
  <table border="0" cellspacing="2" cellpadding="0">
    <tr><td valign="top"></td><td valign="top"><em>body</em>&nbsp;</td><td>soap_body </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>env</em>&nbsp;</td><td>environment must not be null </td></tr>
  </table>
</dl>
<dl class="return" compact><dt><b>Returns:</b></dt><dd>one of AXIOM_SOAP11 or AXIOM_SOAP12 </dd></dl>

</div>
</div><p>
<a class="anchor" name="g5e88d50ff93d508053b3920f301f301c"></a><!-- doxytag: member="axiom_soap_body.h::axiom_soap_body_has_fault" ref="g5e88d50ff93d508053b3920f301f301c" args="(axiom_soap_body_t *body, const axutil_env_t *env)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">AXIS2_EXTERN axis2_bool_t axiom_soap_body_has_fault           </td>
          <td>(</td>
          <td class="paramtype">axiom_soap_body_t *&nbsp;</td>
          <td class="paramname"> <em>body</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const <a class="el" href="structaxutil__env.html">axutil_env_t</a> *&nbsp;</td>
          <td class="paramname"> <em>env</em></td><td>&nbsp;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td><td width="100%"></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
Indicates whether a soap fault is available with this soap body <dl compact><dt><b>Parameters:</b></dt><dd>
  <table border="0" cellspacing="2" cellpadding="0">
    <tr><td valign="top"></td><td valign="top"><em>body</em>&nbsp;</td><td>soap_body struct </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>env</em>&nbsp;</td><td>environment must not be null </td></tr>
  </table>
</dl>
<dl class="return" compact><dt><b>Returns:</b></dt><dd>AXIS2_TRUE if fault is available, AXIS2_FALSE otherwise </dd></dl>

</div>
</div><p>
<hr size="1"><address style="text-align: right;"><small>Generated on Fri Apr 17 11:49:44 2009 for Axis2/C by&nbsp;
<a href="http://www.doxygen.org/index.html">
<img src="doxygen.png" alt="doxygen" align="middle" border="0"></a> 1.5.3 </small></address>
</body>
</html>


<|start_filename|>util/test/env/test_env.c<|end_filename|>
#include <stdio.h>
#include <axutil_env.h>
#include <axutil_properties.h>
#include "../test_common/axis2c_test_macros.h"

#define THREAD_AMMOUNT 100

void test_create_env()
{
    START_TEST_CASE("create_env");
    axutil_allocator_t *allocator = NULL;
    axutil_log_t *log = NULL;
    axutil_error_t *error = NULL;
    axutil_env_t *env = NULL;

    allocator = axutil_allocator_init(NULL);
    log = axutil_log_create(allocator, NULL, NULL);
    error = axutil_error_create(allocator);

    EXPECT_NULL(axutil_env_create_with_error_log(NULL, error, log));
    EXPECT_NULL(axutil_env_create_with_error_log(allocator, NULL, log));

    env = axutil_env_create_with_error_log(allocator, error, log);

    EXPECT_NOT_NULL(env);

    axutil_env_free(env);

    END_TEST_CASE();
}

void test_log_env()
{
    START_TEST_CASE("test_log_env");
    axutil_env_t *env = NULL;
    env = axutil_env_create_all("test_log_env.log", AXIS2_LOG_LEVEL_TRACE);

    TEST_ASSERT_VOID(env);

    AXIS2_LOG_CRITICAL(env->log, AXIS2_LOG_SI, "log1 %s", "test1");
    AXIS2_LOG_ERROR(env->log, AXIS2_LOG_SI, "log2 %d", 2);
    AXIS2_LOG_WARNING(env->log, AXIS2_LOG_SI, "log3 %s", "test3");
    AXIS2_LOG_INFO(env->log, AXIS2_LOG_SI, "log4 %s %s", "info1", "info2");
    AXIS2_LOG_DEBUG(env->log, AXIS2_LOG_SI, "log5 %s %d", "test", 5);

    axutil_env_free(env);
    END_TEST_CASE();
}

void test_thread_env()
{
    START_TEST_CASE("test_thread_env");

    axutil_env_t *env = NULL;
    axutil_env_t *thread_env1 = NULL;
    axutil_env_t *thread_env2 = NULL;
    axutil_env_t *thread_env3 = NULL;

    env = axutil_env_create_all("test_thread_env.log", AXIS2_LOG_LEVEL_TRACE);

    EXPECT_NOT_NULL(env);

    thread_env1 = axutil_init_thread_env(env);
    thread_env2 = axutil_init_thread_env(env);

    EXPECT_NOT_NULL(thread_env1);
    EXPECT_NOT_NULL(thread_env2);

    thread_env3 = axutil_init_thread_env(thread_env1);

    axutil_free_thread_env(thread_env1);
    axutil_free_thread_env(thread_env2);

    AXIS2_LOG_INFO(thread_env3->log, AXIS2_LOG_SI, "log4 %s %s", "info1", "info2");

    axutil_free_thread_env(thread_env3);

    AXIS2_LOG_INFO(env->log, AXIS2_LOG_SI, "log4 %s %s", "info1", "info2");

    axutil_env_free(env);

    END_TEST_CASE();
}

void *AXIS2_CALL
test_ref(
    axutil_thread_t * td,
    void *param)
{
    axutil_env_t *env;
    env = ((axutil_env_t *) param);


    axutil_env_increment_ref(env);
    axutil_env_free(env);
    axutil_env_increment_ref(env);
    axutil_env_free(env);

    axutil_thread_exit(td, env->allocator);

    return (void *) 1;
}

void test_thread_env_reference_count()
{
    START_TEST_CASE("test_thread_env_reference_count");

    axutil_env_t *env = NULL;

    env = axutil_env_create_all("test_thread_env_reference_count.log", AXIS2_LOG_LEVEL_TRACE);

    axis2_status_t rv = AXIS2_FAILURE;
    axutil_allocator_t *allocator = NULL;
    int i;

    axutil_thread_t *t1[THREAD_AMMOUNT];

    allocator = env->allocator;

    for(i=0;i < THREAD_AMMOUNT; i++)
    {
        t1[i] = axutil_thread_create(allocator, NULL, test_ref, (void *) env);
        EXPECT_NOT_NULL(t1[i]);
        axutil_thread_detach(t1[i]);
    }

    sleep(1);

    axutil_env_free(env);

    END_TEST_CASE();
}

void test_multiple_envs()
{
    START_TEST_CASE("test_multiple_envs");

    axutil_env_t *env1 = NULL;
    axutil_env_t *env2 = NULL;

    env1 = axutil_env_create_all("test_multiple_envs1.log", AXIS2_LOG_LEVEL_TRACE);
    env2 = axutil_env_create_all("test_multiple_envs2.log", AXIS2_LOG_LEVEL_TRACE);

    TEST_ASSERT_VOID(env1);
    TEST_ASSERT_VOID(env2);

    axutil_env_free(env1);

    AXIS2_ERROR_SET_STATUS_CODE(env2->error,1234);

    EXPECT_EQ(axutil_env_check_status(env2),1234);
    AXIS2_LOG_DEBUG(env2->log, AXIS2_LOG_SI, "log5 %s %d", "test", 5);

    axutil_env_free(env2);
    END_TEST_CASE();
}


void test_reference_count()
{
    START_TEST_CASE("test_reference_count");
    axutil_allocator_t *allocator = NULL;
    axutil_log_t *log = NULL;
    axutil_error_t *error = NULL;
    axutil_env_t *env = NULL;
    axutil_env_t *thread_env = NULL;

    allocator = axutil_allocator_init(NULL);
    log = axutil_log_create(allocator, NULL, NULL);
    error = axutil_error_create(allocator);

    env = axutil_env_create_with_error_log(allocator, error, log);

    EXPECT_NOT_NULL(env);

    thread_env = axutil_init_thread_env(env);

    EXPECT_EQ(env->ref,1);

    axutil_env_increment_ref(env);
    axutil_env_increment_ref(env);
    axutil_env_increment_ref(env);

    EXPECT_EQ(env->ref,4);

    axutil_env_free(env);
    axutil_env_free(env);
    axutil_env_free(env);

    EXPECT_EQ(env->ref,1);

    axutil_free_thread_env(thread_env);

    axutil_env_free(env);

    END_TEST_CASE();
}

int main()
{
    START_TEST();

    test_create_env();
    test_log_env();
    test_thread_env();
    test_reference_count();
    test_thread_env_reference_count();
    test_multiple_envs();

    END_TEST();
    return 0;
}











<|start_filename|>build/win32/axis2_env.bat<|end_filename|>
SET AXIS2C_HOME=%AXIS2C_HOME%
PATH=%PATH%;%ZLIB_HOME%\bin
PATH=%PATH%;%CURL_HOME%\bin
PATH=%PATH%;%ICONV_HOME%\bin
PATH=%PATH%;%LIBXML_HOME%\bin
PATH=%PATH%;%OPENSSL_HOME%\bin
PATH=%PATH%;%AXIS2C_HOME%\lib


<|start_filename|>xdocs/api/html/axiom__mime__part_8h.html<|end_filename|>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html><head><meta http-equiv="Content-Type" content="text/html;charset=UTF-8">
<title>Axis2/C: axiom_mime_part.h File Reference</title>
<link href="doxygen.css" rel="stylesheet" type="text/css">
<link href="tabs.css" rel="stylesheet" type="text/css">
</head><body>
<!-- Generated by Doxygen 1.5.3 -->
<div class="tabs">
  <ul>
    <li><a href="index.html"><span>Main&nbsp;Page</span></a></li>
    <li><a href="modules.html"><span>Modules</span></a></li>
    <li><a href="annotated.html"><span>Classes</span></a></li>
    <li class="current"><a href="files.html"><span>Files</span></a></li>
    <li><a href="dirs.html"><span>Directories</span></a></li>
    <li><a href="pages.html"><span>Related&nbsp;Pages</span></a></li>
    <li><a href="examples.html"><span>Examples</span></a></li>
    <li>
      <form action="search.php" method="get">
        <table cellspacing="0" cellpadding="0" border="0">
          <tr>
            <td><label>&nbsp;<u>S</u>earch&nbsp;for&nbsp;</label></td>
            <td><input type="text" name="query" value="" size="20" accesskey="s"/></td>
          </tr>
        </table>
      </form>
    </li>
  </ul>
</div>
<div class="nav">
<a class="el" href="dir_f60961de8e5edc3b2658ef023e959e45.html">deploy</a>&nbsp;&raquo&nbsp;<a class="el" href="dir_6b4e91e54b7316b376882a6402adbf44.html">include</a>&nbsp;&raquo&nbsp;<a class="el" href="dir_df3a7695d5a9e696f30b948b566829e7.html">axis2-1.6.0</a></div>
<h1>axiom_mime_part.h File Reference</h1>axis2 mime_part interface <a href="#_details">More...</a>
<p>
<code>#include &lt;<a class="el" href="axutil__utils_8h-source.html">axutil_utils.h</a>&gt;</code><br>
<code>#include &lt;axutil_error.h&gt;</code><br>
<code>#include &lt;axutil_utils_defines.h&gt;</code><br>
<code>#include &lt;<a class="el" href="axutil__env_8h-source.html">axutil_env.h</a>&gt;</code><br>
<code>#include &lt;<a class="el" href="axutil__allocator_8h-source.html">axutil_allocator.h</a>&gt;</code><br>
<code>#include &lt;axutil_string.h&gt;</code><br>
<code>#include &lt;<a class="el" href="axutil__array__list_8h-source.html">axutil_array_list.h</a>&gt;</code><br>

<p>
<a href="axiom__mime__part_8h-source.html">Go to the source code of this file.</a><table border="0" cellpadding="0" cellspacing="0">
<tr><td></td></tr>
<tr><td colspan="2"><br><h2>Classes</h2></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top">struct &nbsp;</td><td class="memItemRight" valign="bottom"><b>axiom_mime_part_t</b></td></tr>

<tr><td colspan="2"><br><h2>Typedefs</h2></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="7211acf08c51682b40ad4ca03f316c21"></a><!-- doxytag: member="axiom_mime_part.h::axiom_mime_part_t" ref="7211acf08c51682b40ad4ca03f316c21" args="" -->
typedef struct <br>
axiom_mime_part_t&nbsp;</td><td class="memItemRight" valign="bottom"><b>axiom_mime_part_t</b></td></tr>

<tr><td colspan="2"><br><h2>Enumerations</h2></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top">enum &nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="axiom__mime__part_8h.html#e5d74402433163c4fd1259ff4b7bf468">axiom_mime_part_type_t</a> { <a class="el" href="axiom__mime__part_8h.html#e5d74402433163c4fd1259ff4b7bf4684ed963acaf82e2ca1343397b3e0a520f">AXIOM_MIME_PART_BUFFER</a> =  0, 
<b>AXIOM_MIME_PART_FILE</b>, 
<b>AXIOM_MIME_PART_CALLBACK</b>, 
<b>AXIOM_MIME_PART_UNKNOWN</b>
 }</td></tr>

<tr><td colspan="2"><br><h2>Functions</h2></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="5b5fa4502b62c4bd8d173fcd28a3c703"></a><!-- doxytag: member="axiom_mime_part.h::axiom_mime_part_get_content_type_for_mime" ref="5b5fa4502b62c4bd8d173fcd28a3c703" args="(const axutil_env_t *env, axis2_char_t *boundary, axis2_char_t *content_id, axis2_char_t *char_set_encoding, const axis2_char_t *soap_content_type)" -->
AXIS2_EXTERN const <br>
axis2_char_t *&nbsp;</td><td class="memItemRight" valign="bottom"><b>axiom_mime_part_get_content_type_for_mime</b> (const <a class="el" href="structaxutil__env.html">axutil_env_t</a> *env, axis2_char_t *boundary, axis2_char_t *content_id, axis2_char_t *char_set_encoding, const axis2_char_t *soap_content_type)</td></tr>

<tr><td class="memItemLeft" nowrap align="right" valign="top">AXIS2_EXTERN <br>
axiom_mime_part_t *&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="axiom__mime__part_8h.html#e71826186bee5d49b56847a207cafcfc">axiom_mime_part_create</a> (const <a class="el" href="structaxutil__env.html">axutil_env_t</a> *env)</td></tr>

<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="28a806a0961d30b9e844ee0cb1bfc432"></a><!-- doxytag: member="axiom_mime_part.h::axiom_mime_part_create_part_list" ref="28a806a0961d30b9e844ee0cb1bfc432" args="(const axutil_env_t *env, axis2_char_t *soap_body, axutil_array_list_t *binary_node_list, axis2_char_t *boundary, axis2_char_t *content_id, axis2_char_t *char_set_encoding, const axis2_char_t *soap_content_type)" -->
AXIS2_EXTERN <br>
<a class="el" href="group__axutil__array__list.html#g1a6a89777db876cfa0cc86787b7be6a0">axutil_array_list_t</a> *&nbsp;</td><td class="memItemRight" valign="bottom"><b>axiom_mime_part_create_part_list</b> (const <a class="el" href="structaxutil__env.html">axutil_env_t</a> *env, axis2_char_t *soap_body, <a class="el" href="group__axutil__array__list.html#g1a6a89777db876cfa0cc86787b7be6a0">axutil_array_list_t</a> *binary_node_list, axis2_char_t *boundary, axis2_char_t *content_id, axis2_char_t *char_set_encoding, const axis2_char_t *soap_content_type)</td></tr>

<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="817580de26ce5bc950ff6be20687b1f3"></a><!-- doxytag: member="axiom_mime_part.h::axiom_mime_part_free" ref="817580de26ce5bc950ff6be20687b1f3" args="(axiom_mime_part_t *mime_part, const axutil_env_t *env)" -->
AXIS2_EXTERN void&nbsp;</td><td class="memItemRight" valign="bottom"><b>axiom_mime_part_free</b> (axiom_mime_part_t *mime_part, const <a class="el" href="structaxutil__env.html">axutil_env_t</a> *env)</td></tr>

</table>
<hr><a name="_details"></a><h2>Detailed Description</h2>
axis2 mime_part interface 
<p>
<hr><h2>Enumeration Type Documentation</h2>
<a class="anchor" name="e5d74402433163c4fd1259ff4b7bf468"></a><!-- doxytag: member="axiom_mime_part.h::axiom_mime_part_type_t" ref="e5d74402433163c4fd1259ff4b7bf468" args="" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">enum <a class="el" href="axiom__mime__part_8h.html#e5d74402433163c4fd1259ff4b7bf468">axiom_mime_part_type_t</a>          </td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
<dl compact><dt><b>Enumerator: </b></dt><dd>
<table border="0" cellspacing="2" cellpadding="0">
<tr><td valign="top"><em><a class="anchor" name="e5d74402433163c4fd1259ff4b7bf4684ed963acaf82e2ca1343397b3e0a520f"></a><!-- doxytag: member="AXIOM_MIME_PART_BUFFER" ref="e5d74402433163c4fd1259ff4b7bf4684ed963acaf82e2ca1343397b3e0a520f" args="" -->AXIOM_MIME_PART_BUFFER</em>&nbsp;</td><td>
Char buffer </td></tr>
</table>
</dl>

</div>
</div><p>
<hr><h2>Function Documentation</h2>
<a class="anchor" name="e71826186bee5d49b56847a207cafcfc"></a><!-- doxytag: member="axiom_mime_part.h::axiom_mime_part_create" ref="e71826186bee5d49b56847a207cafcfc" args="(const axutil_env_t *env)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">AXIS2_EXTERN axiom_mime_part_t* axiom_mime_part_create           </td>
          <td>(</td>
          <td class="paramtype">const <a class="el" href="structaxutil__env.html">axutil_env_t</a> *&nbsp;</td>
          <td class="paramname"> <em>env</em>          </td>
          <td>&nbsp;)&nbsp;</td>
          <td width="100%"></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
Creates mime_part struct <dl class="return" compact><dt><b>Returns:</b></dt><dd>pointer to newly created mime_part </dd></dl>

</div>
</div><p>
<hr size="1"><address style="text-align: right;"><small>Generated on Fri Apr 17 11:49:43 2009 for Axis2/C by&nbsp;
<a href="http://www.doxygen.org/index.html">
<img src="doxygen.png" alt="doxygen" align="middle" border="0"></a> 1.5.3 </small></address>
</body>
</html>


<|start_filename|>src/core/addr/relates_to.c<|end_filename|>

/*
 * 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.
 */

#include <axis2_relates_to.h>
#include <axutil_string.h>

struct axis2_relates_to
{

    /** value string  */
    axis2_char_t *value;

    /** relationship type string */
    axis2_char_t *relationship_type;
};

axis2_relates_to_t *AXIS2_CALL
axis2_relates_to_create(
    const axutil_env_t * env,
    const axis2_char_t * value,
    const axis2_char_t * relationship_type)
{
    axis2_relates_to_t *relates_to = NULL;

    AXIS2_ENV_CHECK(env, NULL);

    relates_to = AXIS2_MALLOC(env->allocator, sizeof(axis2_relates_to_t));
    if (!relates_to)
    {
        AXIS2_ERROR_SET(env->error, AXIS2_ERROR_NO_MEMORY, AXIS2_FAILURE);
        return NULL;
    }

    relates_to->value = NULL;
    relates_to->relationship_type = NULL;

    if (value)
    {
        relates_to->value = axutil_strdup(env, value);
        if (!(relates_to->value))
        {
            AXIS2_ERROR_SET(env->error, AXIS2_ERROR_NO_MEMORY, AXIS2_FAILURE);
            axis2_relates_to_free(relates_to, env);
            return NULL;
        }
    }

    if (relationship_type)
    {
        relates_to->relationship_type = axutil_strdup(env, relationship_type);
        if (!(relates_to->relationship_type))
        {
            AXIS2_ERROR_SET(env->error, AXIS2_ERROR_NO_MEMORY, AXIS2_FAILURE);
            axis2_relates_to_free(relates_to, env);
            return NULL;
        }
    }

    return relates_to;
}

const axis2_char_t *AXIS2_CALL
axis2_relates_to_get_value(
    const axis2_relates_to_t * relates_to,
    const axutil_env_t * env)
{
    return relates_to->value;
}

axis2_status_t AXIS2_CALL
axis2_relates_to_set_value(
    struct axis2_relates_to * relates_to,
    const axutil_env_t * env,
    const axis2_char_t * value)
{
    AXIS2_ENV_CHECK(env, AXIS2_FAILURE);

    if (relates_to->value)
    {
        AXIS2_FREE(env->allocator, relates_to->value);
    }

    if (value)
    {
        relates_to->value = (axis2_char_t *) axutil_strdup(env, value);
        if (!(relates_to->value))
        {
            AXIS2_ERROR_SET(env->error, AXIS2_ERROR_NO_MEMORY, AXIS2_FAILURE);
            return AXIS2_FAILURE;
        }
    }

    return AXIS2_SUCCESS;
}

const axis2_char_t *AXIS2_CALL
axis2_relates_to_get_relationship_type(
    const axis2_relates_to_t * relates_to,
    const axutil_env_t * env)
{
    return relates_to->relationship_type;
}

axis2_status_t AXIS2_CALL
axis2_relates_to_set_relationship_type(
    struct axis2_relates_to * relates_to,
    const axutil_env_t * env,
    const axis2_char_t * relationship_type)
{
    AXIS2_ENV_CHECK(env, AXIS2_FAILURE);

    if (relates_to->relationship_type)
    {
        AXIS2_FREE(env->allocator, relates_to->relationship_type);
    }

    if (relationship_type)
    {
        relates_to->relationship_type =
            (axis2_char_t *) axutil_strdup(env, relationship_type);
        if (!(relates_to->relationship_type))
        {
            AXIS2_ERROR_SET(env->error, AXIS2_ERROR_NO_MEMORY, AXIS2_FAILURE);
            return AXIS2_FAILURE;
        }
    }

    return AXIS2_SUCCESS;
}

void AXIS2_CALL
axis2_relates_to_free(
    struct axis2_relates_to *relates_to,
    const axutil_env_t * env)
{
    AXIS2_ENV_CHECK(env, void);

    if (relates_to->value)
    {
        AXIS2_FREE(env->allocator, relates_to->value);
    }

    if (relates_to->relationship_type)
    {
        AXIS2_FREE(env->allocator, relates_to->relationship_type);
    }

    AXIS2_FREE(env->allocator, relates_to);

    return;
}


<|start_filename|>src/core/transport/amqp/receiver/axis2_amqp_receiver.h<|end_filename|>
/*
* 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 AXIS2_AMQP_RECEIVER_H
#define AXIS2_AMQP_RECEIVER_H

#include <axis2_transport_receiver.h>
#include <axis2_conf_init.h>
#include <axis2_qpid_receiver_interface.h>

typedef struct axis2_amqp_receiver_resource_pack
{
    axis2_transport_receiver_t  		 receiver;
	axis2_qpid_receiver_resource_pack_t* qpid_receiver;
    axis2_conf_ctx_t*           		 conf_ctx;
    axis2_conf_ctx_t*           		 conf_ctx_private;
}
axis2_amqp_receiver_resource_pack_t;

#define AXIS2_AMQP_RECEIVER_TO_RESOURCE_PACK(amqp_receiver) \
                ((axis2_amqp_receiver_resource_pack_t*)(amqp_receiver))

AXIS2_EXTERN axis2_transport_receiver_t* AXIS2_CALL
axis2_amqp_receiver_create(
	const axutil_env_t* env,
	const axis2_char_t* repo,
	const axis2_char_t* qpid_broker_ip,
	int qpid_broker_port);

AXIS2_EXTERN axis2_status_t AXIS2_CALL 
axis2_amqp_receiver_init(
	axis2_transport_receiver_t* receiver,
	const axutil_env_t* env,
	axis2_conf_ctx_t* conf_ctx,
	axis2_transport_in_desc_t* in_desc);

AXIS2_EXTERN axis2_status_t AXIS2_CALL 
axis2_amqp_receiver_start(
	axis2_transport_receiver_t* receiver,
	const axutil_env_t* env);

AXIS2_EXTERN axis2_endpoint_ref_t* AXIS2_CALL 
axis2_amqp_receiver_get_reply_to_epr(
	axis2_transport_receiver_t* receiver,
	const axutil_env_t* env,
	const axis2_char_t* svc_name);

AXIS2_EXTERN axis2_conf_ctx_t* AXIS2_CALL 
axis2_amqp_receiver_get_conf_ctx(
	axis2_transport_receiver_t* receiver,
	const axutil_env_t* env);

AXIS2_EXTERN axis2_bool_t AXIS2_CALL 
axis2_amqp_receiver_is_running(
	axis2_transport_receiver_t* receiver,
	const axutil_env_t* env);

AXIS2_EXTERN axis2_status_t AXIS2_CALL 
axis2_amqp_receiver_stop(
	axis2_transport_receiver_t* receiver,
	const axutil_env_t* env);

AXIS2_EXTERN void AXIS2_CALL 
axis2_amqp_receiver_free(
	axis2_transport_receiver_t* receiver,
	const axutil_env_t* env);

#endif


<|start_filename|>xdocs/api/html/group__axiom__xml__reader.html<|end_filename|>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html><head><meta http-equiv="Content-Type" content="text/html;charset=UTF-8">
<title>Axis2/C: XML reader</title>
<link href="doxygen.css" rel="stylesheet" type="text/css">
<link href="tabs.css" rel="stylesheet" type="text/css">
</head><body>
<!-- Generated by Doxygen 1.5.3 -->
<div class="tabs">
  <ul>
    <li><a href="index.html"><span>Main&nbsp;Page</span></a></li>
    <li><a href="modules.html"><span>Modules</span></a></li>
    <li><a href="annotated.html"><span>Classes</span></a></li>
    <li><a href="files.html"><span>Files</span></a></li>
    <li><a href="dirs.html"><span>Directories</span></a></li>
    <li><a href="pages.html"><span>Related&nbsp;Pages</span></a></li>
    <li><a href="examples.html"><span>Examples</span></a></li>
    <li>
      <form action="search.php" method="get">
        <table cellspacing="0" cellpadding="0" border="0">
          <tr>
            <td><label>&nbsp;<u>S</u>earch&nbsp;for&nbsp;</label></td>
            <td><input type="text" name="query" value="" size="20" accesskey="s"/></td>
          </tr>
        </table>
      </form>
    </li>
  </ul>
</div>
<h1>XML reader<br>
<small>
[<a class="el" href="group__axiom__parser.html">parser</a>]</small>
</h1><table border="0" cellpadding="0" cellspacing="0">
<tr><td></td></tr>
<tr><td colspan="2"><br><h2>Classes</h2></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top">struct &nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="structaxiom__xml__reader__ops.html">axiom_xml_reader_ops</a></td></tr>

<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">AXIOM_XML_READER ops Encapsulator struct for ops of <a class="el" href="structaxiom__xml__reader.html" title="axiom_xml_reader struct Axis2 OM pull_parser">axiom_xml_reader</a>.  <a href="structaxiom__xml__reader__ops.html#_details">More...</a><br></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top">struct &nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="structaxiom__xml__reader.html">axiom_xml_reader</a></td></tr>

<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight"><a class="el" href="structaxiom__xml__reader.html" title="axiom_xml_reader struct Axis2 OM pull_parser">axiom_xml_reader</a> struct Axis2 OM pull_parser  <a href="structaxiom__xml__reader.html#_details">More...</a><br></td></tr>
<tr><td colspan="2"><br><h2>Enumerations</h2></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top">enum &nbsp;</td><td class="memItemRight" valign="bottom"><b>axiom_xml_reader_event_types</b> { <br>
&nbsp;&nbsp;<b>AXIOM_XML_READER_START_DOCUMENT</b> =  0, 
<b>AXIOM_XML_READER_START_ELEMENT</b>, 
<b>AXIOM_XML_READER_END_ELEMENT</b>, 
<b>AXIOM_XML_READER_SPACE</b>, 
<br>
&nbsp;&nbsp;<b>AXIOM_XML_READER_EMPTY_ELEMENT</b>, 
<b>AXIOM_XML_READER_CHARACTER</b>, 
<b>AXIOM_XML_READER_ENTITY_REFERENCE</b>, 
<b>AXIOM_XML_READER_COMMENT</b>, 
<br>
&nbsp;&nbsp;<b>AXIOM_XML_READER_PROCESSING_INSTRUCTION</b>, 
<b>AXIOM_XML_READER_CDATA</b>, 
<b>AXIOM_XML_READER_DOCUMENT_TYPE</b>
<br>
 }</td></tr>

<tr><td colspan="2"><br><h2>Functions</h2></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top">AXIS2_EXTERN <br>
<a class="el" href="structaxiom__xml__reader.html">axiom_xml_reader_t</a> *&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__axiom__xml__reader.html#gcdedc0633fbbd6d3a3f2a1af534f047a">axiom_xml_reader_create_for_file</a> (const <a class="el" href="structaxutil__env.html">axutil_env_t</a> *env, char *filename, const axis2_char_t *encoding)</td></tr>

<tr><td class="memItemLeft" nowrap align="right" valign="top">AXIS2_EXTERN <br>
<a class="el" href="structaxiom__xml__reader.html">axiom_xml_reader_t</a> *&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__axiom__xml__reader.html#g77bd95155c1f98044ecc2b2c0f525e9b">axiom_xml_reader_create_for_io</a> (const <a class="el" href="structaxutil__env.html">axutil_env_t</a> *env, AXIS2_READ_INPUT_CALLBACK, AXIS2_CLOSE_INPUT_CALLBACK, void *ctx, const axis2_char_t *encoding)</td></tr>

<tr><td class="memItemLeft" nowrap align="right" valign="top">AXIS2_EXTERN <br>
<a class="el" href="structaxiom__xml__reader.html">axiom_xml_reader_t</a> *&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__axiom__xml__reader.html#g2c03628448af33ea26951fc798e6ef84">axiom_xml_reader_create_for_memory</a> (const <a class="el" href="structaxutil__env.html">axutil_env_t</a> *env, void *container, int size, const axis2_char_t *encoding, int type)</td></tr>

<tr><td class="memItemLeft" nowrap align="right" valign="top">AXIS2_EXTERN <br>
axis2_status_t&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__axiom__xml__reader.html#g8e39a922babd615678d53209c3d86c25">axiom_xml_reader_init</a> (void)</td></tr>

<tr><td class="memItemLeft" nowrap align="right" valign="top">AXIS2_EXTERN <br>
axis2_status_t&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__axiom__xml__reader.html#gaaf09b4bb704c449270da3eebda5e813">axiom_xml_reader_cleanup</a> (void)</td></tr>

<tr><td class="memItemLeft" nowrap align="right" valign="top">AXIS2_EXTERN int&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__axiom__xml__reader.html#g3374162deb7e15d0a66fb47d5de68d4d">axiom_xml_reader_next</a> (<a class="el" href="structaxiom__xml__reader.html">axiom_xml_reader_t</a> *parser, const <a class="el" href="structaxutil__env.html">axutil_env_t</a> *env)</td></tr>

<tr><td class="memItemLeft" nowrap align="right" valign="top">AXIS2_EXTERN void&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__axiom__xml__reader.html#g9bf782a28329a5661230324bde422a03">axiom_xml_reader_free</a> (<a class="el" href="structaxiom__xml__reader.html">axiom_xml_reader_t</a> *parser, const <a class="el" href="structaxutil__env.html">axutil_env_t</a> *env)</td></tr>

<tr><td class="memItemLeft" nowrap align="right" valign="top">AXIS2_EXTERN int&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__axiom__xml__reader.html#gae564cf8501da5b814ff04c2ff193c72">axiom_xml_reader_get_attribute_count</a> (<a class="el" href="structaxiom__xml__reader.html">axiom_xml_reader_t</a> *parser, const <a class="el" href="structaxutil__env.html">axutil_env_t</a> *env)</td></tr>

<tr><td class="memItemLeft" nowrap align="right" valign="top">AXIS2_EXTERN <br>
axis2_char_t *&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__axiom__xml__reader.html#g41431f427bb3e0d68091225f346af9ef">axiom_xml_reader_get_attribute_name_by_number</a> (<a class="el" href="structaxiom__xml__reader.html">axiom_xml_reader_t</a> *parser, const <a class="el" href="structaxutil__env.html">axutil_env_t</a> *env, int i)</td></tr>

<tr><td class="memItemLeft" nowrap align="right" valign="top">AXIS2_EXTERN <br>
axis2_char_t *&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__axiom__xml__reader.html#g6ab4ee9babdcbf9ff38f2ee7fde7f8bd">axiom_xml_reader_get_attribute_prefix_by_number</a> (<a class="el" href="structaxiom__xml__reader.html">axiom_xml_reader_t</a> *parser, const <a class="el" href="structaxutil__env.html">axutil_env_t</a> *env, int i)</td></tr>

<tr><td class="memItemLeft" nowrap align="right" valign="top">AXIS2_EXTERN <br>
axis2_char_t *&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__axiom__xml__reader.html#g5008312eab21f2d6af4ab9c1facec082">axiom_xml_reader_get_attribute_value_by_number</a> (<a class="el" href="structaxiom__xml__reader.html">axiom_xml_reader_t</a> *parser, const <a class="el" href="structaxutil__env.html">axutil_env_t</a> *env, int i)</td></tr>

<tr><td class="memItemLeft" nowrap align="right" valign="top">AXIS2_EXTERN <br>
axis2_char_t *&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__axiom__xml__reader.html#g8095baf49f5ae2577dc6ddd47bbf9b80">axiom_xml_reader_get_attribute_namespace_by_number</a> (<a class="el" href="structaxiom__xml__reader.html">axiom_xml_reader_t</a> *parser, const <a class="el" href="structaxutil__env.html">axutil_env_t</a> *env, int i)</td></tr>

<tr><td class="memItemLeft" nowrap align="right" valign="top">AXIS2_EXTERN <br>
axis2_char_t *&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__axiom__xml__reader.html#gc28be6f3ba09e107505989be82ccaa74">axiom_xml_reader_get_value</a> (<a class="el" href="structaxiom__xml__reader.html">axiom_xml_reader_t</a> *parser, const <a class="el" href="structaxutil__env.html">axutil_env_t</a> *env)</td></tr>

<tr><td class="memItemLeft" nowrap align="right" valign="top">AXIS2_EXTERN int&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__axiom__xml__reader.html#g5b6d2609022f69113b08cc5b592ce200">axiom_xml_reader_get_namespace_count</a> (<a class="el" href="structaxiom__xml__reader.html">axiom_xml_reader_t</a> *parser, const <a class="el" href="structaxutil__env.html">axutil_env_t</a> *env)</td></tr>

<tr><td class="memItemLeft" nowrap align="right" valign="top">AXIS2_EXTERN <br>
axis2_char_t *&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__axiom__xml__reader.html#g5e0eb27b0a37e723592881e5a35e0bb2">axiom_xml_reader_get_namespace_uri_by_number</a> (<a class="el" href="structaxiom__xml__reader.html">axiom_xml_reader_t</a> *parser, const <a class="el" href="structaxutil__env.html">axutil_env_t</a> *env, int i)</td></tr>

<tr><td class="memItemLeft" nowrap align="right" valign="top">AXIS2_EXTERN <br>
axis2_char_t *&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__axiom__xml__reader.html#gedb9e7e00933a87a9f9681625aa051af">axiom_xml_reader_get_namespace_prefix_by_number</a> (<a class="el" href="structaxiom__xml__reader.html">axiom_xml_reader_t</a> *parser, const <a class="el" href="structaxutil__env.html">axutil_env_t</a> *env, int i)</td></tr>

<tr><td class="memItemLeft" nowrap align="right" valign="top">AXIS2_EXTERN <br>
axis2_char_t *&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__axiom__xml__reader.html#g044e4fce90018e0abe787a224673109e">axiom_xml_reader_get_prefix</a> (<a class="el" href="structaxiom__xml__reader.html">axiom_xml_reader_t</a> *parser, const <a class="el" href="structaxutil__env.html">axutil_env_t</a> *env)</td></tr>

<tr><td class="memItemLeft" nowrap align="right" valign="top">AXIS2_EXTERN <br>
axis2_char_t *&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__axiom__xml__reader.html#g4aa5740186e9a96828f3faceee38f09e">axiom_xml_reader_get_name</a> (<a class="el" href="structaxiom__xml__reader.html">axiom_xml_reader_t</a> *parser, const <a class="el" href="structaxutil__env.html">axutil_env_t</a> *env)</td></tr>

<tr><td class="memItemLeft" nowrap align="right" valign="top">AXIS2_EXTERN <br>
axis2_char_t *&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__axiom__xml__reader.html#g02a3310afc9f6e696a1945b09c81df6e">axiom_xml_reader_get_pi_target</a> (<a class="el" href="structaxiom__xml__reader.html">axiom_xml_reader_t</a> *parser, const <a class="el" href="structaxutil__env.html">axutil_env_t</a> *env)</td></tr>

<tr><td class="memItemLeft" nowrap align="right" valign="top">AXIS2_EXTERN <br>
axis2_char_t *&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__axiom__xml__reader.html#g19f6e1a4ea34d5aa7ba16066501c3a08">axiom_xml_reader_get_pi_data</a> (<a class="el" href="structaxiom__xml__reader.html">axiom_xml_reader_t</a> *parser, const <a class="el" href="structaxutil__env.html">axutil_env_t</a> *env)</td></tr>

<tr><td class="memItemLeft" nowrap align="right" valign="top">AXIS2_EXTERN <br>
axis2_char_t *&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__axiom__xml__reader.html#g1c1f7c88232c5aec33cafc72fda5830e">axiom_xml_reader_get_dtd</a> (<a class="el" href="structaxiom__xml__reader.html">axiom_xml_reader_t</a> *parser, const <a class="el" href="structaxutil__env.html">axutil_env_t</a> *env)</td></tr>

<tr><td class="memItemLeft" nowrap align="right" valign="top">AXIS2_EXTERN void&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__axiom__xml__reader.html#g06c3e71eb295e7a0869a21ca2c88386d">axiom_xml_reader_xml_free</a> (<a class="el" href="structaxiom__xml__reader.html">axiom_xml_reader_t</a> *parser, const <a class="el" href="structaxutil__env.html">axutil_env_t</a> *env, void *data)</td></tr>

<tr><td class="memItemLeft" nowrap align="right" valign="top">AXIS2_EXTERN <br>
axis2_char_t *&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__axiom__xml__reader.html#gfea9c20e6adcb4fa1228bba4de19774c">axiom_xml_reader_get_char_set_encoding</a> (<a class="el" href="structaxiom__xml__reader.html">axiom_xml_reader_t</a> *parser, const <a class="el" href="structaxutil__env.html">axutil_env_t</a> *env)</td></tr>

<tr><td class="memItemLeft" nowrap align="right" valign="top">AXIS2_EXTERN <br>
axis2_char_t *&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__axiom__xml__reader.html#geb34cdd664cab7fd67f4ef1b15e5c53f">axiom_xml_reader_get_namespace_uri</a> (<a class="el" href="structaxiom__xml__reader.html">axiom_xml_reader_t</a> *parser, const <a class="el" href="structaxutil__env.html">axutil_env_t</a> *env)</td></tr>

<tr><td class="memItemLeft" nowrap align="right" valign="top">AXIS2_EXTERN <br>
axis2_char_t *&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__axiom__xml__reader.html#g19fa07ce807e4e7b7442b46ccac57120">axiom_xml_reader_get_namespace_uri_by_prefix</a> (<a class="el" href="structaxiom__xml__reader.html">axiom_xml_reader_t</a> *parser, const <a class="el" href="structaxutil__env.html">axutil_env_t</a> *env, axis2_char_t *prefix)</td></tr>

</table>
<hr><h2>Function Documentation</h2>
<a class="anchor" name="gaaf09b4bb704c449270da3eebda5e813"></a><!-- doxytag: member="axiom_xml_reader.h::axiom_xml_reader_cleanup" ref="gaaf09b4bb704c449270da3eebda5e813" args="(void)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">AXIS2_EXTERN axis2_status_t axiom_xml_reader_cleanup           </td>
          <td>(</td>
          <td class="paramtype">void&nbsp;</td>
          <td class="paramname">          </td>
          <td>&nbsp;)&nbsp;</td>
          <td width="100%"></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
parser cleanup function. This function is used to clean up the globals of libxml2 parser. 
</div>
</div><p>
<a class="anchor" name="gcdedc0633fbbd6d3a3f2a1af534f047a"></a><!-- doxytag: member="axiom_xml_reader.h::axiom_xml_reader_create_for_file" ref="gcdedc0633fbbd6d3a3f2a1af534f047a" args="(const axutil_env_t *env, char *filename, const axis2_char_t *encoding)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">AXIS2_EXTERN <a class="el" href="structaxiom__xml__reader.html">axiom_xml_reader_t</a>* axiom_xml_reader_create_for_file           </td>
          <td>(</td>
          <td class="paramtype">const <a class="el" href="structaxutil__env.html">axutil_env_t</a> *&nbsp;</td>
          <td class="paramname"> <em>env</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">char *&nbsp;</td>
          <td class="paramname"> <em>filename</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const axis2_char_t *&nbsp;</td>
          <td class="paramname"> <em>encoding</em></td><td>&nbsp;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td><td width="100%"></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
Creates an instance of <a class="el" href="structaxiom__xml__reader.html" title="axiom_xml_reader struct Axis2 OM pull_parser">axiom_xml_reader</a> to parse a file using an xml document in a file system <dl compact><dt><b>Parameters:</b></dt><dd>
  <table border="0" cellspacing="2" cellpadding="0">
    <tr><td valign="top"></td><td valign="top"><em>env</em>&nbsp;</td><td>environment struct, must not be null </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>filename</em>&nbsp;</td><td>url of an xml document </td></tr>
  </table>
</dl>
<dl class="return" compact><dt><b>Returns:</b></dt><dd>a pointer to xml_pull_parser_t struct NULL on error with error code set in the environment's error </dd></dl>

</div>
</div><p>
<a class="anchor" name="g77bd95155c1f98044ecc2b2c0f525e9b"></a><!-- doxytag: member="axiom_xml_reader.h::axiom_xml_reader_create_for_io" ref="g77bd95155c1f98044ecc2b2c0f525e9b" args="(const axutil_env_t *env, AXIS2_READ_INPUT_CALLBACK, AXIS2_CLOSE_INPUT_CALLBACK, void *ctx, const axis2_char_t *encoding)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">AXIS2_EXTERN <a class="el" href="structaxiom__xml__reader.html">axiom_xml_reader_t</a>* axiom_xml_reader_create_for_io           </td>
          <td>(</td>
          <td class="paramtype">const <a class="el" href="structaxutil__env.html">axutil_env_t</a> *&nbsp;</td>
          <td class="paramname"> <em>env</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">AXIS2_READ_INPUT_CALLBACK&nbsp;</td>
          <td class="paramname">, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">AXIS2_CLOSE_INPUT_CALLBACK&nbsp;</td>
          <td class="paramname">, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">void *&nbsp;</td>
          <td class="paramname"> <em>ctx</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const axis2_char_t *&nbsp;</td>
          <td class="paramname"> <em>encoding</em></td><td>&nbsp;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td><td width="100%"></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
This create an instance of <a class="el" href="structaxiom__xml__reader.html" title="axiom_xml_reader struct Axis2 OM pull_parser">axiom_xml_reader</a> to parse a xml document in a buffer. It takes a callback function that takes a buffer and the size of the buffer The user must implement a function that takes in buffer and size and fill the buffer with specified size with xml stream, parser will call this function to fill the buffer on the fly while parsing. <dl compact><dt><b>Parameters:</b></dt><dd>
  <table border="0" cellspacing="2" cellpadding="0">
    <tr><td valign="top"></td><td valign="top"><em>env</em>&nbsp;</td><td>environment MUST NOT be NULL. </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>read_input_callback()</em>&nbsp;</td><td>callback function that fills a char buffer. </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>close_input_callback()</em>&nbsp;</td><td>callback function that closes the input stream. </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>ctx,context</em>&nbsp;</td><td>can be any data that needs to be passed to the callback method. </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>encoding</em>&nbsp;</td><td>encoding scheme of the xml stream </td></tr>
  </table>
</dl>

</div>
</div><p>
<a class="anchor" name="g2c03628448af33ea26951fc798e6ef84"></a><!-- doxytag: member="axiom_xml_reader.h::axiom_xml_reader_create_for_memory" ref="g2c03628448af33ea26951fc798e6ef84" args="(const axutil_env_t *env, void *container, int size, const axis2_char_t *encoding, int type)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">AXIS2_EXTERN <a class="el" href="structaxiom__xml__reader.html">axiom_xml_reader_t</a>* axiom_xml_reader_create_for_memory           </td>
          <td>(</td>
          <td class="paramtype">const <a class="el" href="structaxutil__env.html">axutil_env_t</a> *&nbsp;</td>
          <td class="paramname"> <em>env</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">void *&nbsp;</td>
          <td class="paramname"> <em>container</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">int&nbsp;</td>
          <td class="paramname"> <em>size</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const axis2_char_t *&nbsp;</td>
          <td class="paramname"> <em>encoding</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">int&nbsp;</td>
          <td class="paramname"> <em>type</em></td><td>&nbsp;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td><td width="100%"></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
Create an axiom_xml_reader_t using a buffer, which is the xml input <dl compact><dt><b>Parameters:</b></dt><dd>
  <table border="0" cellspacing="2" cellpadding="0">
    <tr><td valign="top"></td><td valign="top"><em>env</em>&nbsp;</td><td>environment, MUST not be NULL </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>container</em>&nbsp;</td><td>any data that needs to passed to the corresponding parser's create_for_memory method. The reader does not take ownership of this data. </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>size</em>&nbsp;</td><td>size of the buffer </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>encoding</em>&nbsp;</td><td>encoding of the xml </td></tr>
  </table>
</dl>
<dl class="return" compact><dt><b>Returns:</b></dt><dd>pointer to axiom_xml_reader_t struct on success , NULL otherwise </dd></dl>

</div>
</div><p>
<a class="anchor" name="g9bf782a28329a5661230324bde422a03"></a><!-- doxytag: member="axiom_xml_reader.h::axiom_xml_reader_free" ref="g9bf782a28329a5661230324bde422a03" args="(axiom_xml_reader_t *parser, const axutil_env_t *env)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">AXIS2_EXTERN void axiom_xml_reader_free           </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="structaxiom__xml__reader.html">axiom_xml_reader_t</a> *&nbsp;</td>
          <td class="paramname"> <em>parser</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const <a class="el" href="structaxutil__env.html">axutil_env_t</a> *&nbsp;</td>
          <td class="paramname"> <em>env</em></td><td>&nbsp;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td><td width="100%"></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
<dl compact><dt><b>Parameters:</b></dt><dd>
  <table border="0" cellspacing="2" cellpadding="0">
    <tr><td valign="top"></td><td valign="top"><em>parser</em>&nbsp;</td><td>pointer to the OM XML Reader struct </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>env</em>&nbsp;</td><td>environment struct, must not be null</td></tr>
  </table>
</dl>
<dl class="return" compact><dt><b>Returns:</b></dt><dd></dd></dl>

</div>
</div><p>
<a class="anchor" name="gae564cf8501da5b814ff04c2ff193c72"></a><!-- doxytag: member="axiom_xml_reader.h::axiom_xml_reader_get_attribute_count" ref="gae564cf8501da5b814ff04c2ff193c72" args="(axiom_xml_reader_t *parser, const axutil_env_t *env)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">AXIS2_EXTERN int axiom_xml_reader_get_attribute_count           </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="structaxiom__xml__reader.html">axiom_xml_reader_t</a> *&nbsp;</td>
          <td class="paramname"> <em>parser</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const <a class="el" href="structaxutil__env.html">axutil_env_t</a> *&nbsp;</td>
          <td class="paramname"> <em>env</em></td><td>&nbsp;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td><td width="100%"></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
free method for xml reader <dl compact><dt><b>Parameters:</b></dt><dd>
  <table border="0" cellspacing="2" cellpadding="0">
    <tr><td valign="top"></td><td valign="top"><em>parser</em>&nbsp;</td><td>pointer to the OM XML Reader struct </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>env</em>&nbsp;</td><td>environment struct, must not be null</td></tr>
  </table>
</dl>
<dl class="return" compact><dt><b>Returns:</b></dt><dd></dd></dl>

</div>
</div><p>
<a class="anchor" name="g41431f427bb3e0d68091225f346af9ef"></a><!-- doxytag: member="axiom_xml_reader.h::axiom_xml_reader_get_attribute_name_by_number" ref="g41431f427bb3e0d68091225f346af9ef" args="(axiom_xml_reader_t *parser, const axutil_env_t *env, int i)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">AXIS2_EXTERN axis2_char_t* axiom_xml_reader_get_attribute_name_by_number           </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="structaxiom__xml__reader.html">axiom_xml_reader_t</a> *&nbsp;</td>
          <td class="paramname"> <em>parser</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const <a class="el" href="structaxutil__env.html">axutil_env_t</a> *&nbsp;</td>
          <td class="paramname"> <em>env</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">int&nbsp;</td>
          <td class="paramname"> <em>i</em></td><td>&nbsp;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td><td width="100%"></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
<dl compact><dt><b>Parameters:</b></dt><dd>
  <table border="0" cellspacing="2" cellpadding="0">
    <tr><td valign="top"></td><td valign="top"><em>parser</em>&nbsp;</td><td>pointer to the OM XML Reader struct </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>env</em>&nbsp;</td><td>environment struct, must not be null</td></tr>
  </table>
</dl>
<dl class="return" compact><dt><b>Returns:</b></dt><dd>number of attributes in an element </dd></dl>

</div>
</div><p>
<a class="anchor" name="g8095baf49f5ae2577dc6ddd47bbf9b80"></a><!-- doxytag: member="axiom_xml_reader.h::axiom_xml_reader_get_attribute_namespace_by_number" ref="g8095baf49f5ae2577dc6ddd47bbf9b80" args="(axiom_xml_reader_t *parser, const axutil_env_t *env, int i)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">AXIS2_EXTERN axis2_char_t* axiom_xml_reader_get_attribute_namespace_by_number           </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="structaxiom__xml__reader.html">axiom_xml_reader_t</a> *&nbsp;</td>
          <td class="paramname"> <em>parser</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const <a class="el" href="structaxutil__env.html">axutil_env_t</a> *&nbsp;</td>
          <td class="paramname"> <em>env</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">int&nbsp;</td>
          <td class="paramname"> <em>i</em></td><td>&nbsp;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td><td width="100%"></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
<dl compact><dt><b>Parameters:</b></dt><dd>
  <table border="0" cellspacing="2" cellpadding="0">
    <tr><td valign="top"></td><td valign="top"><em>parser</em>&nbsp;</td><td>pointer to the OM XML Reader struct </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>env</em>&nbsp;</td><td>environment struct, must not be null</td></tr>
  </table>
</dl>
<dl class="return" compact><dt><b>Returns:</b></dt><dd>attribute value by number </dd></dl>

</div>
</div><p>
<a class="anchor" name="g6ab4ee9babdcbf9ff38f2ee7fde7f8bd"></a><!-- doxytag: member="axiom_xml_reader.h::axiom_xml_reader_get_attribute_prefix_by_number" ref="g6ab4ee9babdcbf9ff38f2ee7fde7f8bd" args="(axiom_xml_reader_t *parser, const axutil_env_t *env, int i)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">AXIS2_EXTERN axis2_char_t* axiom_xml_reader_get_attribute_prefix_by_number           </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="structaxiom__xml__reader.html">axiom_xml_reader_t</a> *&nbsp;</td>
          <td class="paramname"> <em>parser</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const <a class="el" href="structaxutil__env.html">axutil_env_t</a> *&nbsp;</td>
          <td class="paramname"> <em>env</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">int&nbsp;</td>
          <td class="paramname"> <em>i</em></td><td>&nbsp;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td><td width="100%"></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
<dl compact><dt><b>Parameters:</b></dt><dd>
  <table border="0" cellspacing="2" cellpadding="0">
    <tr><td valign="top"></td><td valign="top"><em>parser</em>&nbsp;</td><td>pointer to the OM XML Reader struct </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>env</em>&nbsp;</td><td>environment struct, must not be null</td></tr>
  </table>
</dl>
<dl class="return" compact><dt><b>Returns:</b></dt><dd>the attribute name by number </dd></dl>

</div>
</div><p>
<a class="anchor" name="g5008312eab21f2d6af4ab9c1facec082"></a><!-- doxytag: member="axiom_xml_reader.h::axiom_xml_reader_get_attribute_value_by_number" ref="g5008312eab21f2d6af4ab9c1facec082" args="(axiom_xml_reader_t *parser, const axutil_env_t *env, int i)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">AXIS2_EXTERN axis2_char_t* axiom_xml_reader_get_attribute_value_by_number           </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="structaxiom__xml__reader.html">axiom_xml_reader_t</a> *&nbsp;</td>
          <td class="paramname"> <em>parser</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const <a class="el" href="structaxutil__env.html">axutil_env_t</a> *&nbsp;</td>
          <td class="paramname"> <em>env</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">int&nbsp;</td>
          <td class="paramname"> <em>i</em></td><td>&nbsp;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td><td width="100%"></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
<dl compact><dt><b>Parameters:</b></dt><dd>
  <table border="0" cellspacing="2" cellpadding="0">
    <tr><td valign="top"></td><td valign="top"><em>parser</em>&nbsp;</td><td>pointer to the OM XML Reader struct </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>env</em>&nbsp;</td><td>environment struct, must not be null</td></tr>
  </table>
</dl>
<dl class="return" compact><dt><b>Returns:</b></dt><dd>the attribute prefix by number </dd></dl>

</div>
</div><p>
<a class="anchor" name="gfea9c20e6adcb4fa1228bba4de19774c"></a><!-- doxytag: member="axiom_xml_reader.h::axiom_xml_reader_get_char_set_encoding" ref="gfea9c20e6adcb4fa1228bba4de19774c" args="(axiom_xml_reader_t *parser, const axutil_env_t *env)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">AXIS2_EXTERN axis2_char_t* axiom_xml_reader_get_char_set_encoding           </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="structaxiom__xml__reader.html">axiom_xml_reader_t</a> *&nbsp;</td>
          <td class="paramname"> <em>parser</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const <a class="el" href="structaxutil__env.html">axutil_env_t</a> *&nbsp;</td>
          <td class="paramname"> <em>env</em></td><td>&nbsp;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td><td width="100%"></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
free method for xml <dl compact><dt><b>Parameters:</b></dt><dd>
  <table border="0" cellspacing="2" cellpadding="0">
    <tr><td valign="top"></td><td valign="top"><em>parser</em>&nbsp;</td><td>pointer to the OM XML Reader struct </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>env</em>&nbsp;</td><td>environment struct, must not be null</td></tr>
  </table>
</dl>
<dl class="return" compact><dt><b>Returns:</b></dt><dd></dd></dl>

</div>
</div><p>
<a class="anchor" name="g1c1f7c88232c5aec33cafc72fda5830e"></a><!-- doxytag: member="axiom_xml_reader.h::axiom_xml_reader_get_dtd" ref="g1c1f7c88232c5aec33cafc72fda5830e" args="(axiom_xml_reader_t *parser, const axutil_env_t *env)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">AXIS2_EXTERN axis2_char_t* axiom_xml_reader_get_dtd           </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="structaxiom__xml__reader.html">axiom_xml_reader_t</a> *&nbsp;</td>
          <td class="paramname"> <em>parser</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const <a class="el" href="structaxutil__env.html">axutil_env_t</a> *&nbsp;</td>
          <td class="paramname"> <em>env</em></td><td>&nbsp;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td><td width="100%"></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
<dl compact><dt><b>Parameters:</b></dt><dd>
  <table border="0" cellspacing="2" cellpadding="0">
    <tr><td valign="top"></td><td valign="top"><em>parser</em>&nbsp;</td><td>pointer to the OM XML Reader struct </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>env</em>&nbsp;</td><td>environment struct, must not be null</td></tr>
  </table>
</dl>
<dl class="return" compact><dt><b>Returns:</b></dt><dd></dd></dl>

</div>
</div><p>
<a class="anchor" name="g4aa5740186e9a96828f3faceee38f09e"></a><!-- doxytag: member="axiom_xml_reader.h::axiom_xml_reader_get_name" ref="g4aa5740186e9a96828f3faceee38f09e" args="(axiom_xml_reader_t *parser, const axutil_env_t *env)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">AXIS2_EXTERN axis2_char_t* axiom_xml_reader_get_name           </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="structaxiom__xml__reader.html">axiom_xml_reader_t</a> *&nbsp;</td>
          <td class="paramname"> <em>parser</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const <a class="el" href="structaxutil__env.html">axutil_env_t</a> *&nbsp;</td>
          <td class="paramname"> <em>env</em></td><td>&nbsp;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td><td width="100%"></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
<dl compact><dt><b>Parameters:</b></dt><dd>
  <table border="0" cellspacing="2" cellpadding="0">
    <tr><td valign="top"></td><td valign="top"><em>parser</em>&nbsp;</td><td>pointer to the OM XML Reader struct </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>env</em>&nbsp;</td><td>environment struct, must not be null</td></tr>
  </table>
</dl>
<dl class="return" compact><dt><b>Returns:</b></dt><dd>namespace prefix </dd></dl>

</div>
</div><p>
<a class="anchor" name="g5b6d2609022f69113b08cc5b592ce200"></a><!-- doxytag: member="axiom_xml_reader.h::axiom_xml_reader_get_namespace_count" ref="g5b6d2609022f69113b08cc5b592ce200" args="(axiom_xml_reader_t *parser, const axutil_env_t *env)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">AXIS2_EXTERN int axiom_xml_reader_get_namespace_count           </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="structaxiom__xml__reader.html">axiom_xml_reader_t</a> *&nbsp;</td>
          <td class="paramname"> <em>parser</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const <a class="el" href="structaxutil__env.html">axutil_env_t</a> *&nbsp;</td>
          <td class="paramname"> <em>env</em></td><td>&nbsp;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td><td width="100%"></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
<dl compact><dt><b>Parameters:</b></dt><dd>
  <table border="0" cellspacing="2" cellpadding="0">
    <tr><td valign="top"></td><td valign="top"><em>parser</em>&nbsp;</td><td>pointer to the OM XML Reader struct </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>env</em>&nbsp;</td><td>environment struct, must not be null</td></tr>
  </table>
</dl>
<dl class="return" compact><dt><b>Returns:</b></dt><dd>value of the element </dd></dl>

</div>
</div><p>
<a class="anchor" name="gedb9e7e00933a87a9f9681625aa051af"></a><!-- doxytag: member="axiom_xml_reader.h::axiom_xml_reader_get_namespace_prefix_by_number" ref="gedb9e7e00933a87a9f9681625aa051af" args="(axiom_xml_reader_t *parser, const axutil_env_t *env, int i)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">AXIS2_EXTERN axis2_char_t* axiom_xml_reader_get_namespace_prefix_by_number           </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="structaxiom__xml__reader.html">axiom_xml_reader_t</a> *&nbsp;</td>
          <td class="paramname"> <em>parser</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const <a class="el" href="structaxutil__env.html">axutil_env_t</a> *&nbsp;</td>
          <td class="paramname"> <em>env</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">int&nbsp;</td>
          <td class="paramname"> <em>i</em></td><td>&nbsp;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td><td width="100%"></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
<dl compact><dt><b>Parameters:</b></dt><dd>
  <table border="0" cellspacing="2" cellpadding="0">
    <tr><td valign="top"></td><td valign="top"><em>parser</em>&nbsp;</td><td>pointer to the OM XML Reader struct </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>env</em>&nbsp;</td><td>environment struct, must not be null</td></tr>
  </table>
</dl>
<dl class="return" compact><dt><b>Returns:</b></dt><dd>uri or the namespace by number </dd></dl>

</div>
</div><p>
<a class="anchor" name="geb34cdd664cab7fd67f4ef1b15e5c53f"></a><!-- doxytag: member="axiom_xml_reader.h::axiom_xml_reader_get_namespace_uri" ref="geb34cdd664cab7fd67f4ef1b15e5c53f" args="(axiom_xml_reader_t *parser, const axutil_env_t *env)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">AXIS2_EXTERN axis2_char_t* axiom_xml_reader_get_namespace_uri           </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="structaxiom__xml__reader.html">axiom_xml_reader_t</a> *&nbsp;</td>
          <td class="paramname"> <em>parser</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const <a class="el" href="structaxutil__env.html">axutil_env_t</a> *&nbsp;</td>
          <td class="paramname"> <em>env</em></td><td>&nbsp;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td><td width="100%"></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
<dl compact><dt><b>Parameters:</b></dt><dd>
  <table border="0" cellspacing="2" cellpadding="0">
    <tr><td valign="top"></td><td valign="top"><em>parser</em>&nbsp;</td><td>pointer to the OM XML Reader struct </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>env</em>&nbsp;</td><td>environment struct, must not be null</td></tr>
  </table>
</dl>
<dl class="return" compact><dt><b>Returns:</b></dt><dd>charactor encoding </dd></dl>

</div>
</div><p>
<a class="anchor" name="g5e0eb27b0a37e723592881e5a35e0bb2"></a><!-- doxytag: member="axiom_xml_reader.h::axiom_xml_reader_get_namespace_uri_by_number" ref="g5e0eb27b0a37e723592881e5a35e0bb2" args="(axiom_xml_reader_t *parser, const axutil_env_t *env, int i)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">AXIS2_EXTERN axis2_char_t* axiom_xml_reader_get_namespace_uri_by_number           </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="structaxiom__xml__reader.html">axiom_xml_reader_t</a> *&nbsp;</td>
          <td class="paramname"> <em>parser</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const <a class="el" href="structaxutil__env.html">axutil_env_t</a> *&nbsp;</td>
          <td class="paramname"> <em>env</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">int&nbsp;</td>
          <td class="paramname"> <em>i</em></td><td>&nbsp;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td><td width="100%"></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
<dl compact><dt><b>Parameters:</b></dt><dd>
  <table border="0" cellspacing="2" cellpadding="0">
    <tr><td valign="top"></td><td valign="top"><em>parser</em>&nbsp;</td><td>pointer to the OM XML Reader struct </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>env</em>&nbsp;</td><td>environment struct, must not be null</td></tr>
  </table>
</dl>
<dl class="return" compact><dt><b>Returns:</b></dt><dd>the number of namespaces in an element </dd></dl>

</div>
</div><p>
<a class="anchor" name="g19fa07ce807e4e7b7442b46ccac57120"></a><!-- doxytag: member="axiom_xml_reader.h::axiom_xml_reader_get_namespace_uri_by_prefix" ref="g19fa07ce807e4e7b7442b46ccac57120" args="(axiom_xml_reader_t *parser, const axutil_env_t *env, axis2_char_t *prefix)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">AXIS2_EXTERN axis2_char_t* axiom_xml_reader_get_namespace_uri_by_prefix           </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="structaxiom__xml__reader.html">axiom_xml_reader_t</a> *&nbsp;</td>
          <td class="paramname"> <em>parser</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const <a class="el" href="structaxutil__env.html">axutil_env_t</a> *&nbsp;</td>
          <td class="paramname"> <em>env</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">axis2_char_t *&nbsp;</td>
          <td class="paramname"> <em>prefix</em></td><td>&nbsp;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td><td width="100%"></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
<dl compact><dt><b>Parameters:</b></dt><dd>
  <table border="0" cellspacing="2" cellpadding="0">
    <tr><td valign="top"></td><td valign="top"><em>parser</em>&nbsp;</td><td>pointer to the OM XML Reader struct </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>env</em>&nbsp;</td><td>environment struct, must not be null</td></tr>
  </table>
</dl>
<dl class="return" compact><dt><b>Returns:</b></dt><dd></dd></dl>

</div>
</div><p>
<a class="anchor" name="g19f6e1a4ea34d5aa7ba16066501c3a08"></a><!-- doxytag: member="axiom_xml_reader.h::axiom_xml_reader_get_pi_data" ref="g19f6e1a4ea34d5aa7ba16066501c3a08" args="(axiom_xml_reader_t *parser, const axutil_env_t *env)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">AXIS2_EXTERN axis2_char_t* axiom_xml_reader_get_pi_data           </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="structaxiom__xml__reader.html">axiom_xml_reader_t</a> *&nbsp;</td>
          <td class="paramname"> <em>parser</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const <a class="el" href="structaxutil__env.html">axutil_env_t</a> *&nbsp;</td>
          <td class="paramname"> <em>env</em></td><td>&nbsp;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td><td width="100%"></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
<dl compact><dt><b>Parameters:</b></dt><dd>
  <table border="0" cellspacing="2" cellpadding="0">
    <tr><td valign="top"></td><td valign="top"><em>parser</em>&nbsp;</td><td>pointer to the OM XML Reader struct </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>env</em>&nbsp;</td><td>environment struct, must not be null</td></tr>
  </table>
</dl>
<dl class="return" compact><dt><b>Returns:</b></dt><dd></dd></dl>

</div>
</div><p>
<a class="anchor" name="g02a3310afc9f6e696a1945b09c81df6e"></a><!-- doxytag: member="axiom_xml_reader.h::axiom_xml_reader_get_pi_target" ref="g02a3310afc9f6e696a1945b09c81df6e" args="(axiom_xml_reader_t *parser, const axutil_env_t *env)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">AXIS2_EXTERN axis2_char_t* axiom_xml_reader_get_pi_target           </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="structaxiom__xml__reader.html">axiom_xml_reader_t</a> *&nbsp;</td>
          <td class="paramname"> <em>parser</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const <a class="el" href="structaxutil__env.html">axutil_env_t</a> *&nbsp;</td>
          <td class="paramname"> <em>env</em></td><td>&nbsp;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td><td width="100%"></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
<dl compact><dt><b>Parameters:</b></dt><dd>
  <table border="0" cellspacing="2" cellpadding="0">
    <tr><td valign="top"></td><td valign="top"><em>parser</em>&nbsp;</td><td>pointer to the OM XML Reader struct </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>env</em>&nbsp;</td><td>environment struct, must not be null</td></tr>
  </table>
</dl>
<dl class="return" compact><dt><b>Returns:</b></dt><dd>name of the element </dd></dl>

</div>
</div><p>
<a class="anchor" name="g044e4fce90018e0abe787a224673109e"></a><!-- doxytag: member="axiom_xml_reader.h::axiom_xml_reader_get_prefix" ref="g044e4fce90018e0abe787a224673109e" args="(axiom_xml_reader_t *parser, const axutil_env_t *env)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">AXIS2_EXTERN axis2_char_t* axiom_xml_reader_get_prefix           </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="structaxiom__xml__reader.html">axiom_xml_reader_t</a> *&nbsp;</td>
          <td class="paramname"> <em>parser</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const <a class="el" href="structaxutil__env.html">axutil_env_t</a> *&nbsp;</td>
          <td class="paramname"> <em>env</em></td><td>&nbsp;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td><td width="100%"></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
<dl compact><dt><b>Parameters:</b></dt><dd>
  <table border="0" cellspacing="2" cellpadding="0">
    <tr><td valign="top"></td><td valign="top"><em>parser</em>&nbsp;</td><td>pointer to the OM XML Reader struct </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>env</em>&nbsp;</td><td>environment struct, must not be null</td></tr>
  </table>
</dl>
<dl class="return" compact><dt><b>Returns:</b></dt><dd>prefix of the namespace by number </dd></dl>

</div>
</div><p>
<a class="anchor" name="gc28be6f3ba09e107505989be82ccaa74"></a><!-- doxytag: member="axiom_xml_reader.h::axiom_xml_reader_get_value" ref="gc28be6f3ba09e107505989be82ccaa74" args="(axiom_xml_reader_t *parser, const axutil_env_t *env)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">AXIS2_EXTERN axis2_char_t* axiom_xml_reader_get_value           </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="structaxiom__xml__reader.html">axiom_xml_reader_t</a> *&nbsp;</td>
          <td class="paramname"> <em>parser</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const <a class="el" href="structaxutil__env.html">axutil_env_t</a> *&nbsp;</td>
          <td class="paramname"> <em>env</em></td><td>&nbsp;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td><td width="100%"></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
<dl compact><dt><b>Parameters:</b></dt><dd>
  <table border="0" cellspacing="2" cellpadding="0">
    <tr><td valign="top"></td><td valign="top"><em>parser</em>&nbsp;</td><td>pointer to the OM XML Reader struct </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>env</em>&nbsp;</td><td>environment struct, must not be null</td></tr>
  </table>
</dl>
<dl class="return" compact><dt><b>Returns:</b></dt><dd>attribute namespace by number </dd></dl>

</div>
</div><p>
<a class="anchor" name="g8e39a922babd615678d53209c3d86c25"></a><!-- doxytag: member="axiom_xml_reader.h::axiom_xml_reader_init" ref="g8e39a922babd615678d53209c3d86c25" args="(void)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">AXIS2_EXTERN axis2_status_t axiom_xml_reader_init           </td>
          <td>(</td>
          <td class="paramtype">void&nbsp;</td>
          <td class="paramname">          </td>
          <td>&nbsp;)&nbsp;</td>
          <td width="100%"></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
init function initializes the parser. When using libxml2 parser, this function is needed to initialize libxml2. 
</div>
</div><p>
<a class="anchor" name="g3374162deb7e15d0a66fb47d5de68d4d"></a><!-- doxytag: member="axiom_xml_reader.h::axiom_xml_reader_next" ref="g3374162deb7e15d0a66fb47d5de68d4d" args="(axiom_xml_reader_t *parser, const axutil_env_t *env)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">AXIS2_EXTERN int axiom_xml_reader_next           </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="structaxiom__xml__reader.html">axiom_xml_reader_t</a> *&nbsp;</td>
          <td class="paramname"> <em>parser</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const <a class="el" href="structaxutil__env.html">axutil_env_t</a> *&nbsp;</td>
          <td class="paramname"> <em>env</em></td><td>&nbsp;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td><td width="100%"></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
while parsing through this method is calling for each and every time it parse a charactor.This is the atomic method which parse charactors. <dl compact><dt><b>Parameters:</b></dt><dd>
  <table border="0" cellspacing="2" cellpadding="0">
    <tr><td valign="top"></td><td valign="top"><em>parser</em>&nbsp;</td><td>pointer to the OM XML Reader struct </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>env</em>&nbsp;</td><td>environment struct, must not be null</td></tr>
  </table>
</dl>
<dl class="return" compact><dt><b>Returns:</b></dt><dd></dd></dl>

</div>
</div><p>
<a class="anchor" name="g06c3e71eb295e7a0869a21ca2c88386d"></a><!-- doxytag: member="axiom_xml_reader.h::axiom_xml_reader_xml_free" ref="g06c3e71eb295e7a0869a21ca2c88386d" args="(axiom_xml_reader_t *parser, const axutil_env_t *env, void *data)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">AXIS2_EXTERN void axiom_xml_reader_xml_free           </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="structaxiom__xml__reader.html">axiom_xml_reader_t</a> *&nbsp;</td>
          <td class="paramname"> <em>parser</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const <a class="el" href="structaxutil__env.html">axutil_env_t</a> *&nbsp;</td>
          <td class="paramname"> <em>env</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">void *&nbsp;</td>
          <td class="paramname"> <em>data</em></td><td>&nbsp;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td><td width="100%"></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
<dl compact><dt><b>Parameters:</b></dt><dd>
  <table border="0" cellspacing="2" cellpadding="0">
    <tr><td valign="top"></td><td valign="top"><em>parser</em>&nbsp;</td><td>pointer to the OM XML Reader struct </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>env</em>&nbsp;</td><td>environment struct, must not be null</td></tr>
  </table>
</dl>
<dl class="return" compact><dt><b>Returns:</b></dt><dd></dd></dl>

</div>
</div><p>
<hr size="1"><address style="text-align: right;"><small>Generated on Fri Apr 17 11:49:44 2009 for Axis2/C by&nbsp;
<a href="http://www.doxygen.org/index.html">
<img src="doxygen.png" alt="doxygen" align="middle" border="0"></a> 1.5.3 </small></address>
</body>
</html>


<|start_filename|>src/core/engine/soap_body_disp.c<|end_filename|>

/*
 * 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.
 */

#include <axis2_disp.h>
#include <axis2_handler_desc.h>
#include <axutil_string.h>
#include <axis2_svc.h>
#include <axis2_const.h>
#include <axis2_conf_ctx.h>
#include <axutil_utils.h>
#include <axiom_soap_envelope.h>
#include <axiom_soap_body.h>

const axis2_char_t *AXIS2_SOAP_MESSAGE_BODY_DISP_NAME =
    "soap_message_body_based_dispatcher";

axis2_status_t AXIS2_CALL axis2_soap_body_disp_invoke(
    axis2_handler_t * handler,
    const axutil_env_t * env,
    struct axis2_msg_ctx *msg_ctx);

axis2_svc_t *AXIS2_CALL axis2_soap_body_disp_find_svc(
    axis2_msg_ctx_t * msg_ctx,
    const axutil_env_t * env);

axis2_op_t *AXIS2_CALL axis2_soap_body_disp_find_op(
    axis2_msg_ctx_t * msg_ctx,
    const axutil_env_t * env,
    axis2_svc_t * svc);

axis2_disp_t *AXIS2_CALL
axis2_soap_body_disp_create(
    const axutil_env_t * env)
{
    axis2_disp_t *disp = NULL;
    axis2_handler_t *handler = NULL;
    axutil_string_t *name = NULL;

    name = axutil_string_create_const(env,
                                      (axis2_char_t **) &
                                      AXIS2_SOAP_MESSAGE_BODY_DISP_NAME);

    disp = axis2_disp_create(env, name);
    if (!disp)
    {
        AXIS2_ERROR_SET(env->error, AXIS2_ERROR_NO_MEMORY, AXIS2_FAILURE);
        return NULL;
    }

    handler = axis2_disp_get_base(disp, env);
    if (!handler)
    {
        AXIS2_ERROR_SET(env->error,
                        AXIS2_ERROR_INVALID_HANDLER_STATE, AXIS2_FAILURE);
        return NULL;
    }

    axis2_handler_set_invoke(handler, env, axis2_soap_body_disp_invoke);

    axutil_string_free(name, env);

    return disp;
}

axis2_svc_t *AXIS2_CALL
axis2_soap_body_disp_find_svc(
    axis2_msg_ctx_t * msg_ctx,
    const axutil_env_t * env)
{
    axiom_soap_envelope_t *soap_envelope = NULL;
    axis2_svc_t *svc = NULL;

    if (axis2_msg_ctx_get_doing_rest(msg_ctx, env))
        return NULL;

    soap_envelope = axis2_msg_ctx_get_soap_envelope(msg_ctx, env);
    if (soap_envelope)
    {
        axiom_soap_body_t *soap_body =
            axiom_soap_envelope_get_body(soap_envelope, env);
        if (soap_body)
        {
            axiom_node_t *body_node =
                axiom_soap_body_get_base_node(soap_body, env);
            if (body_node)
            {
                axiom_node_t *body_first_child_node =
                    axiom_node_get_first_element(body_node, env);

                if (body_first_child_node)
                {
                    if (axiom_node_get_node_type(body_first_child_node, env) ==
                        AXIOM_ELEMENT)
                    {
                        axiom_element_t *element = NULL;
                        element =
                            (axiom_element_t *)
                            axiom_node_get_data_element(body_first_child_node,
                                                        env);
                        if (element)
                        {
                            axiom_namespace_t *ns =
                                axiom_element_get_namespace(element, env,
                                                            body_first_child_node);
                            if (ns)
                            {
                                axis2_char_t *uri =
                                    axiom_namespace_get_uri(ns, env);
                                if (uri)
                                {
                                    axis2_char_t **url_tokens = NULL;
                                    AXIS2_LOG_DEBUG(env->log, AXIS2_LOG_SI,
                                                    "Checking for service "
                                                    "using SOAP message body's "
                                                    "first child's namespace "
                                                    "URI : %s", uri);

                                    url_tokens =
                                        axutil_parse_request_url_for_svc_and_op
                                        (env, uri);

                                    if (url_tokens)
                                    {
                                        if (url_tokens[0])
                                        {
                                            axis2_conf_ctx_t *conf_ctx = NULL;

                                            conf_ctx =
                                                axis2_msg_ctx_get_conf_ctx
                                                (msg_ctx, env);
                                            if (conf_ctx)
                                            {
                                                axis2_conf_t *conf = NULL;
                                                conf =
                                                    axis2_conf_ctx_get_conf
                                                    (conf_ctx, env);
                                                if (conf)
                                                {
                                                    svc =
                                                        axis2_conf_get_svc(conf,
                                                                           env,
                                                                           url_tokens
                                                                           [0]);
                                                    if (svc)
                                                        AXIS2_LOG_DEBUG(env->
                                                            log, AXIS2_LOG_SI,
                                                            "Service found "\
                                                            "using SOAP message"\
                                                            "body's first "\
                                                            "child's namespace URI");
                                                }
                                            }
                                            AXIS2_FREE(env->allocator,
                                                       url_tokens[0]);
                                        }

                                        AXIS2_FREE(env->allocator, url_tokens);
                                        url_tokens = NULL;
                                    }
                                }
                            }
                        }
                    }
                }
            }
        }
    }

    return svc;
}

axis2_op_t *AXIS2_CALL
axis2_soap_body_disp_find_op(
    axis2_msg_ctx_t * msg_ctx,
    const axutil_env_t * env,
    axis2_svc_t * svc)
{
    axiom_soap_envelope_t *soap_envelope = NULL;
    axis2_op_t *op = NULL;

    AXIS2_PARAM_CHECK(env->error, svc, NULL);

    if (axis2_msg_ctx_get_doing_rest(msg_ctx, env))
        return NULL;

    soap_envelope = axis2_msg_ctx_get_soap_envelope(msg_ctx, env);
    if (soap_envelope)
    {
        axiom_soap_body_t *soap_body =
            axiom_soap_envelope_get_body(soap_envelope, env);
        if (soap_body)
        {
            axiom_node_t *body_node =
                axiom_soap_body_get_base_node(soap_body, env);
            if (body_node)
            {
                axiom_node_t *body_first_child_node =
                    axiom_node_get_first_element(body_node, env);

                if (body_first_child_node)
                {
                    if (axiom_node_get_node_type(body_first_child_node, env) ==
                        AXIOM_ELEMENT)
                    {
                        axiom_element_t *element = NULL;
                        element =
                            (axiom_element_t *)
                            axiom_node_get_data_element(body_first_child_node,
                                                        env);
                        if (element)
                        {
                            axis2_char_t *element_name =
                                axiom_element_get_localname(element, env);
                            if (element_name)
                            {
                                AXIS2_LOG_DEBUG(env->log, AXIS2_LOG_SI,
                                    "Checking for operation using SOAP message"\
                                    "body's first child's local name : %s", 
                                    element_name);

                                op = axis2_svc_get_op_with_name(svc, env,
                                                                element_name);

                                if (op)
                                    AXIS2_LOG_DEBUG(env->log, AXIS2_LOG_SI,
                                        "Operation found using SOAP message "\
                                        "body's first child's local name");

                            }
                        }
                    }
                }
            }
        }
    }
    return op;
}

axis2_status_t AXIS2_CALL
axis2_soap_body_disp_invoke(
    axis2_handler_t * handler,
    const axutil_env_t * env,
    struct axis2_msg_ctx * msg_ctx)
{
    axis2_msg_ctx_set_find_svc(msg_ctx, env, axis2_soap_body_disp_find_svc);
    axis2_msg_ctx_set_find_op(msg_ctx, env, axis2_soap_body_disp_find_op);
    return axis2_disp_find_svc_and_op(handler, env, msg_ctx);
}



<|start_filename|>xdocs/api/html/axutil__string_8h-source.html<|end_filename|>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html><head><meta http-equiv="Content-Type" content="text/html;charset=UTF-8">
<title>Axis2/C: axutil_string.h Source File</title>
<link href="doxygen.css" rel="stylesheet" type="text/css">
<link href="tabs.css" rel="stylesheet" type="text/css">
</head><body>
<!-- Generated by Doxygen 1.5.3 -->
<div class="tabs">
  <ul>
    <li><a href="index.html"><span>Main&nbsp;Page</span></a></li>
    <li><a href="modules.html"><span>Modules</span></a></li>
    <li><a href="annotated.html"><span>Classes</span></a></li>
    <li class="current"><a href="files.html"><span>Files</span></a></li>
    <li><a href="dirs.html"><span>Directories</span></a></li>
    <li><a href="pages.html"><span>Related&nbsp;Pages</span></a></li>
    <li><a href="examples.html"><span>Examples</span></a></li>
    <li>
      <form action="search.php" method="get">
        <table cellspacing="0" cellpadding="0" border="0">
          <tr>
            <td><label>&nbsp;<u>S</u>earch&nbsp;for&nbsp;</label></td>
            <td><input type="text" name="query" value="" size="20" accesskey="s"/></td>
          </tr>
        </table>
      </form>
    </li>
  </ul>
</div>
<div class="nav">
<a class="el" href="dir_f60961de8e5edc3b2658ef023e959e45.html">deploy</a>&nbsp;&raquo&nbsp;<a class="el" href="dir_6b4e91e54b7316b376882a6402adbf44.html">include</a>&nbsp;&raquo&nbsp;<a class="el" href="dir_df3a7695d5a9e696f30b948b566829e7.html">axis2-1.6.0</a></div>
<h1>axutil_string.h</h1><div class="fragment"><pre class="fragment"><a name="l00001"></a>00001 
<a name="l00019"></a>00019 <span class="preprocessor">#ifndef AXUTIL_STRING_H</span>
<a name="l00020"></a>00020 <span class="preprocessor"></span><span class="preprocessor">#define AXUTIL_STRING_H</span>
<a name="l00021"></a>00021 <span class="preprocessor"></span>
<a name="l00022"></a>00022 <span class="preprocessor">#include &lt;axutil_utils_defines.h&gt;</span>
<a name="l00023"></a>00023 <span class="preprocessor">#include &lt;axutil_error.h&gt;</span>
<a name="l00024"></a>00024 <span class="preprocessor">#include &lt;<a class="code" href="axutil__env_8h.html" title="Axis2 environment that acts as a container for error, log and memory allocator routines...">axutil_env.h</a>&gt;</span>
<a name="l00025"></a>00025 <span class="preprocessor">#include &lt;string.h&gt;</span>
<a name="l00026"></a>00026 
<a name="l00027"></a>00027 <span class="preprocessor">#ifdef __cplusplus</span>
<a name="l00028"></a>00028 <span class="preprocessor"></span><span class="keyword">extern</span> <span class="stringliteral">"C"</span>
<a name="l00029"></a>00029 {
<a name="l00030"></a>00030 <span class="preprocessor">#endif</span>
<a name="l00031"></a>00031 <span class="preprocessor"></span>
<a name="l00038"></a>00038     <span class="keyword">typedef</span> <span class="keyword">struct </span>axutil_string axutil_string_t;
<a name="l00039"></a>00039 
<a name="l00047"></a>00047     AXIS2_EXTERN axutil_string_t *AXIS2_CALL
<a name="l00048"></a>00048     <a class="code" href="group__axutil__string.html#g7ae6b326c8670f129c62d90f41141717">axutil_string_create</a>(
<a name="l00049"></a>00049         <span class="keyword">const</span> <a class="code" href="structaxutil__env.html" title="Axis2 Environment struct.">axutil_env_t</a> * env,
<a name="l00050"></a>00050         <span class="keyword">const</span> axis2_char_t * str);
<a name="l00051"></a>00051 
<a name="l00059"></a>00059     AXIS2_EXTERN axutil_string_t *AXIS2_CALL
<a name="l00060"></a>00060 
<a name="l00061"></a>00061     <a class="code" href="group__axutil__string.html#g12d5d062c9f901653ec55934667df4ff">axutil_string_create_assume_ownership</a>(
<a name="l00062"></a>00062         <span class="keyword">const</span> <a class="code" href="structaxutil__env.html" title="Axis2 Environment struct.">axutil_env_t</a> * env,
<a name="l00063"></a>00063         axis2_char_t ** str);
<a name="l00064"></a>00064 
<a name="l00072"></a>00072     AXIS2_EXTERN axutil_string_t *AXIS2_CALL
<a name="l00073"></a>00073     <a class="code" href="group__axutil__string.html#gf3c10a118a1ab009b22542abeef72b06">axutil_string_create_const</a>(
<a name="l00074"></a>00074         <span class="keyword">const</span> <a class="code" href="structaxutil__env.html" title="Axis2 Environment struct.">axutil_env_t</a> * env,
<a name="l00075"></a>00075         axis2_char_t ** str);
<a name="l00076"></a>00076 
<a name="l00083"></a>00083     AXIS2_EXTERN <span class="keywordtype">void</span> AXIS2_CALL
<a name="l00084"></a>00084     <a class="code" href="group__axutil__string.html#g940859e6f4889463780078c9845bf41f">axutil_string_free</a>(
<a name="l00085"></a>00085         <span class="keyword">struct</span> axutil_string *<span class="keywordtype">string</span>,
<a name="l00086"></a>00086         <span class="keyword">const</span> <a class="code" href="structaxutil__env.html" title="Axis2 Environment struct.">axutil_env_t</a> * env);
<a name="l00087"></a>00087 
<a name="l00096"></a>00096     AXIS2_EXTERN axis2_bool_t AXIS2_CALL
<a name="l00097"></a>00097     <a class="code" href="group__axutil__string.html#g026785c54c66b09cb278f1e20c47b6bf">axutil_string_equals</a>(
<a name="l00098"></a>00098         <span class="keyword">const</span> <span class="keyword">struct</span> axutil_string *<span class="keywordtype">string</span>,
<a name="l00099"></a>00099         <span class="keyword">const</span> <a class="code" href="structaxutil__env.html" title="Axis2 Environment struct.">axutil_env_t</a> * env,
<a name="l00100"></a>00100         <span class="keyword">const</span> <span class="keyword">struct</span> axutil_string *string1);
<a name="l00101"></a>00101 
<a name="l00110"></a>00110     AXIS2_EXTERN <span class="keyword">struct </span>axutil_string *AXIS2_CALL
<a name="l00111"></a>00111                 <a class="code" href="group__axutil__string.html#ga117973350a2025cfcc0463f6f21fdfa">axutil_string_clone</a>(
<a name="l00112"></a>00112                     <span class="keyword">struct</span> axutil_string *<span class="keywordtype">string</span>,
<a name="l00113"></a>00113                     <span class="keyword">const</span> <a class="code" href="structaxutil__env.html" title="Axis2 Environment struct.">axutil_env_t</a> * env);
<a name="l00114"></a>00114 
<a name="l00121"></a>00121     AXIS2_EXTERN <span class="keyword">const</span> axis2_char_t *AXIS2_CALL
<a name="l00122"></a>00122     <a class="code" href="group__axutil__string.html#g9c0f8f5767c62ec199047bf8c1071630">axutil_string_get_buffer</a>(
<a name="l00123"></a>00123         <span class="keyword">const</span> <span class="keyword">struct</span> axutil_string *<span class="keywordtype">string</span>,
<a name="l00124"></a>00124         <span class="keyword">const</span> <a class="code" href="structaxutil__env.html" title="Axis2 Environment struct.">axutil_env_t</a> * env);
<a name="l00125"></a>00125 
<a name="l00128"></a>00128     AXIS2_EXTERN <span class="keywordtype">unsigned</span> <span class="keywordtype">int</span> AXIS2_CALL
<a name="l00129"></a>00129     <a class="code" href="group__axutil__string.html#gca7b79811404b25130d326842b74c414">axutil_string_get_length</a>(
<a name="l00130"></a>00130         <span class="keyword">const</span> <span class="keyword">struct</span> axutil_string *<span class="keywordtype">string</span>,
<a name="l00131"></a>00131         <span class="keyword">const</span> <a class="code" href="structaxutil__env.html" title="Axis2 Environment struct.">axutil_env_t</a> * env);
<a name="l00132"></a>00132 
<a name="l00141"></a>00141     AXIS2_EXTERN <span class="keywordtype">void</span> *AXIS2_CALL
<a name="l00142"></a>00142     axutil_strdup(
<a name="l00143"></a>00143         <span class="keyword">const</span> <a class="code" href="structaxutil__env.html" title="Axis2 Environment struct.">axutil_env_t</a> * env,
<a name="l00144"></a>00144         <span class="keyword">const</span> <span class="keywordtype">void</span> *ptr);
<a name="l00145"></a>00145 
<a name="l00153"></a>00153     AXIS2_EXTERN <span class="keywordtype">void</span> *AXIS2_CALL
<a name="l00154"></a>00154     <a class="code" href="group__axutil__string__utils.html#g8827b05fe58fbe74d0342f9e4ae19a72">axutil_strndup</a>(
<a name="l00155"></a>00155         <span class="keyword">const</span> <a class="code" href="structaxutil__env.html" title="Axis2 Environment struct.">axutil_env_t</a> * env,
<a name="l00156"></a>00156         <span class="keyword">const</span> <span class="keywordtype">void</span> *ptr,
<a name="l00157"></a>00157         <span class="keywordtype">int</span> n);
<a name="l00158"></a>00158 
<a name="l00170"></a>00170     AXIS2_EXTERN <span class="keywordtype">void</span> *AXIS2_CALL
<a name="l00171"></a>00171     <a class="code" href="group__axutil__string__utils.html#gd2bde5b665c91059e573e276db3fe33e">axutil_strmemdup</a>(
<a name="l00172"></a>00172         <span class="keyword">const</span> <span class="keywordtype">void</span> *ptr,
<a name="l00173"></a>00173         <span class="keywordtype">size_t</span> n,
<a name="l00174"></a>00174         <span class="keyword">const</span> <a class="code" href="structaxutil__env.html" title="Axis2 Environment struct.">axutil_env_t</a> * env);
<a name="l00175"></a>00175 
<a name="l00176"></a>00176     AXIS2_EXTERN <span class="keywordtype">void</span> *AXIS2_CALL
<a name="l00177"></a>00177     axutil_memchr(
<a name="l00178"></a>00178         <span class="keyword">const</span> <span class="keywordtype">void</span> *ptr,
<a name="l00179"></a>00179         <span class="keywordtype">int</span> c,
<a name="l00180"></a>00180         <span class="keywordtype">size_t</span> n);
<a name="l00181"></a>00181 
<a name="l00182"></a>00182     AXIS2_EXTERN <span class="keywordtype">int</span> AXIS2_CALL
<a name="l00183"></a>00183     axutil_strcmp(
<a name="l00184"></a>00184         <span class="keyword">const</span> axis2_char_t * s1,
<a name="l00185"></a>00185         <span class="keyword">const</span> axis2_char_t * s2);
<a name="l00186"></a>00186 
<a name="l00187"></a>00187     AXIS2_EXTERN <span class="keywordtype">int</span> AXIS2_CALL
<a name="l00188"></a>00188     axutil_strncmp(
<a name="l00189"></a>00189         <span class="keyword">const</span> axis2_char_t * s1,
<a name="l00190"></a>00190         <span class="keyword">const</span> axis2_char_t * s2,
<a name="l00191"></a>00191         <span class="keywordtype">int</span> n);
<a name="l00192"></a>00192 
<a name="l00193"></a>00193     AXIS2_EXTERN axis2_ssize_t AXIS2_CALL
<a name="l00194"></a>00194     axutil_strlen(
<a name="l00195"></a>00195         <span class="keyword">const</span> axis2_char_t * s);
<a name="l00196"></a>00196 
<a name="l00197"></a>00197     AXIS2_EXTERN <span class="keywordtype">int</span> AXIS2_CALL
<a name="l00198"></a>00198     axutil_strcasecmp(
<a name="l00199"></a>00199         <span class="keyword">const</span> axis2_char_t * s1,
<a name="l00200"></a>00200         <span class="keyword">const</span> axis2_char_t * s2);
<a name="l00201"></a>00201 
<a name="l00202"></a>00202     AXIS2_EXTERN <span class="keywordtype">int</span> AXIS2_CALL
<a name="l00203"></a>00203     axutil_strncasecmp(
<a name="l00204"></a>00204         <span class="keyword">const</span> axis2_char_t * s1,
<a name="l00205"></a>00205         <span class="keyword">const</span> axis2_char_t * s2,
<a name="l00206"></a>00206         <span class="keyword">const</span> <span class="keywordtype">int</span> n);
<a name="l00207"></a>00207 
<a name="l00208"></a>00208     <span class="comment">/* much similar to the strcat behaviour. But the difference is</span>
<a name="l00209"></a>00209 <span class="comment">     * this allocates new memory to put the conatenated string rather than</span>
<a name="l00210"></a>00210 <span class="comment">     * modifying the first argument. The user should free the allocated</span>
<a name="l00211"></a>00211 <span class="comment">     * memory for the return value</span>
<a name="l00212"></a>00212 <span class="comment">     */</span>
<a name="l00213"></a>00213     AXIS2_EXTERN axis2_char_t *AXIS2_CALL
<a name="l00214"></a>00214     axutil_stracat(
<a name="l00215"></a>00215         <span class="keyword">const</span> <a class="code" href="structaxutil__env.html" title="Axis2 Environment struct.">axutil_env_t</a> * env,
<a name="l00216"></a>00216         <span class="keyword">const</span> axis2_char_t * s1,
<a name="l00217"></a>00217         <span class="keyword">const</span> axis2_char_t * s2);
<a name="l00218"></a>00218 
<a name="l00224"></a>00224     AXIS2_EXTERN axis2_char_t *AXIS2_CALL
<a name="l00225"></a>00225     <a class="code" href="group__axutil__string__utils.html#g6f853777560c912e0dd6416eb95fe2ea">axutil_strcat</a>(
<a name="l00226"></a>00226         <span class="keyword">const</span> <a class="code" href="structaxutil__env.html" title="Axis2 Environment struct.">axutil_env_t</a> * env,
<a name="l00227"></a>00227         ...);
<a name="l00228"></a>00228 
<a name="l00229"></a>00229     AXIS2_EXTERN axis2_char_t *AXIS2_CALL
<a name="l00230"></a>00230     axutil_strstr(
<a name="l00231"></a>00231         <span class="keyword">const</span> axis2_char_t * heystack,
<a name="l00232"></a>00232         <span class="keyword">const</span> axis2_char_t * needle);
<a name="l00233"></a>00233 
<a name="l00241"></a>00241     AXIS2_EXTERN axis2_char_t *AXIS2_CALL
<a name="l00242"></a>00242     <a class="code" href="group__axutil__string__utils.html#gb8e4a59c1f0dccadb35f30e47991291b">axutil_strchr</a>(
<a name="l00243"></a>00243         <span class="keyword">const</span> axis2_char_t * s,
<a name="l00244"></a>00244         axis2_char_t ch);
<a name="l00245"></a>00245 
<a name="l00246"></a>00246     AXIS2_EXTERN axis2_char_t *AXIS2_CALL
<a name="l00247"></a>00247     axutil_rindex(
<a name="l00248"></a>00248         <span class="keyword">const</span> axis2_char_t * s,
<a name="l00249"></a>00249         axis2_char_t c);
<a name="l00250"></a>00250 
<a name="l00251"></a>00251     <span class="comment">/* replaces s1 with s2 */</span>
<a name="l00252"></a>00252     AXIS2_EXTERN axis2_char_t *AXIS2_CALL
<a name="l00253"></a>00253     axutil_replace(
<a name="l00254"></a>00254         <span class="keyword">const</span> <a class="code" href="structaxutil__env.html" title="Axis2 Environment struct.">axutil_env_t</a> * env,
<a name="l00255"></a>00255         axis2_char_t * str,
<a name="l00256"></a>00256         <span class="keywordtype">int</span> s1,
<a name="l00257"></a>00257         <span class="keywordtype">int</span> s2);
<a name="l00258"></a>00258 
<a name="l00259"></a>00259     AXIS2_EXTERN axis2_char_t *AXIS2_CALL
<a name="l00260"></a>00260     axutil_strltrim(
<a name="l00261"></a>00261         <span class="keyword">const</span> <a class="code" href="structaxutil__env.html" title="Axis2 Environment struct.">axutil_env_t</a> * env,
<a name="l00262"></a>00262         <span class="keyword">const</span> axis2_char_t * _s,
<a name="l00263"></a>00263         <span class="keyword">const</span> axis2_char_t * _trim);
<a name="l00264"></a>00264 
<a name="l00265"></a>00265     AXIS2_EXTERN axis2_char_t *AXIS2_CALL
<a name="l00266"></a>00266     axutil_strrtrim(
<a name="l00267"></a>00267         <span class="keyword">const</span> <a class="code" href="structaxutil__env.html" title="Axis2 Environment struct.">axutil_env_t</a> * env,
<a name="l00268"></a>00268         <span class="keyword">const</span> axis2_char_t * _s,
<a name="l00269"></a>00269         <span class="keyword">const</span> axis2_char_t * _trim);
<a name="l00270"></a>00270 
<a name="l00271"></a>00271     AXIS2_EXTERN axis2_char_t *AXIS2_CALL
<a name="l00272"></a>00272     axutil_strtrim(
<a name="l00273"></a>00273         <span class="keyword">const</span> <a class="code" href="structaxutil__env.html" title="Axis2 Environment struct.">axutil_env_t</a> * env,
<a name="l00274"></a>00274         <span class="keyword">const</span> axis2_char_t * _s,
<a name="l00275"></a>00275         <span class="keyword">const</span> axis2_char_t * _trim);
<a name="l00276"></a>00276 
<a name="l00284"></a>00284     AXIS2_EXTERN axis2_char_t *AXIS2_CALL
<a name="l00285"></a>00285     <a class="code" href="group__axutil__string__utils.html#gd262592f6f079b1dd4e5380ba0edcdbd">axutil_string_replace</a>(
<a name="l00286"></a>00286         axis2_char_t * str,
<a name="l00287"></a>00287         axis2_char_t old_char,
<a name="l00288"></a>00288         axis2_char_t new_char);
<a name="l00289"></a>00289 
<a name="l00296"></a>00296     AXIS2_EXTERN axis2_char_t *AXIS2_CALL
<a name="l00297"></a>00297 
<a name="l00298"></a>00298     <a class="code" href="group__axutil__string__utils.html#g3fbd93acf1500a6eb20839e6035bdb46">axutil_string_substring_starting_at</a>(
<a name="l00299"></a>00299         axis2_char_t * str,
<a name="l00300"></a>00300         <span class="keywordtype">int</span> s);
<a name="l00301"></a>00301 
<a name="l00308"></a>00308     AXIS2_EXTERN axis2_char_t *AXIS2_CALL
<a name="l00309"></a>00309     <a class="code" href="group__axutil__string__utils.html#g5fa2c2b4d112595920df38373dd25415">axutil_string_substring_ending_at</a>(
<a name="l00310"></a>00310         axis2_char_t * str,
<a name="l00311"></a>00311         <span class="keywordtype">int</span> e);
<a name="l00312"></a>00312 
<a name="l00318"></a>00318     AXIS2_EXTERN axis2_char_t *AXIS2_CALL
<a name="l00319"></a>00319     <a class="code" href="group__axutil__string__utils.html#gf407c3ed17d58602e5ff165a9d8880d6">axutil_string_tolower</a>(
<a name="l00320"></a>00320         axis2_char_t * str);
<a name="l00321"></a>00321 
<a name="l00327"></a>00327     AXIS2_EXTERN axis2_char_t *AXIS2_CALL
<a name="l00328"></a>00328     <a class="code" href="group__axutil__string__utils.html#gf53501a68e7cb1ecc2ef8c0ef3a20585">axutil_string_toupper</a>(
<a name="l00329"></a>00329         axis2_char_t * str);
<a name="l00330"></a>00330 
<a name="l00339"></a>00339     AXIS2_EXTERN axis2_char_t *AXIS2_CALL
<a name="l00340"></a>00340     <a class="code" href="group__axutil__string__utils.html#g40d66df30dd87c5c2e39c851473414ad">axutil_strcasestr</a>(
<a name="l00341"></a>00341         <span class="keyword">const</span> axis2_char_t * heystack,
<a name="l00342"></a>00342         <span class="keyword">const</span> axis2_char_t * needle);
<a name="l00343"></a>00343 
<a name="l00346"></a>00346 <span class="preprocessor">#ifdef __cplusplus</span>
<a name="l00347"></a>00347 <span class="preprocessor"></span>}
<a name="l00348"></a>00348 <span class="preprocessor">#endif</span>
<a name="l00349"></a>00349 <span class="preprocessor"></span>
<a name="l00350"></a>00350 <span class="preprocessor">#endif                          </span><span class="comment">/* AXIS2_STRING_H */</span>
</pre></div><hr size="1"><address style="text-align: right;"><small>Generated on Fri Apr 17 11:49:43 2009 for Axis2/C by&nbsp;
<a href="http://www.doxygen.org/index.html">
<img src="doxygen.png" alt="doxygen" align="middle" border="0"></a> 1.5.3 </small></address>
</body>
</html>


<|start_filename|>samples/codegen/server/calculator/axis2_skel_Calculator.c<|end_filename|>


    /**
     * axis2_skel_Calculator.c
     *
     * This file was auto-generated from WSDL for "Calculator|http://localhost/axis/Calculator" service
     * by the Apache Axis2/C version: #axisVersion# #today#
     * axis2_skel_Calculator Axis2/C skeleton for the axisService
     */

     #include "axis2_skel_Calculator.h"

     

		 
        /**
         * auto generated function definition signature
         * for "div|http://localhost/axis/Calculator" operation.
         
         * @param div
         */
        
        adb_divResponse_t* axis2_skel_Calculator_div (const axutil_env_t *env,
                                                          adb_div_t *_div1)
        {
            
            
            adb_divResponse_t *_divresponse2;
            int int_2;
            
            int int_0;
            int int_1;
            
            /* Extract the request */
            
            int_0 = adb_div_get_in0(_div1, env);
            printf("Returned int: %d\n", int_0);
            int_1 = adb_div_get_in1(_div1, env);
            printf("Returned int: %d\n", int_1);
        
            /* Build the response adb */
            
            _divresponse2 = adb_divResponse_create(env);
            int_2 = int_0 / int_1;
            adb_divResponse_set_divReturn(_divresponse2, env, int_2);
            
            return _divresponse2;
        }
     

		 
        /**
         * auto generated function definition signature
         * for "mul|http://localhost/axis/Calculator" operation.
         
         * @param mul
         */
        
        adb_mulResponse_t* axis2_skel_Calculator_mul (const axutil_env_t *env,
                                                          adb_mul_t *_mul1)
        {
            
            
            adb_mulResponse_t *_mulresponse2;
            int int_5;
            
            int int_3;
            int int_4;
            
            /* Extract the request */
            
            int_3 = adb_mul_get_in0(_mul1, env);
            printf("Returned int: %d\n", int_3);
            int_4 = adb_mul_get_in1(_mul1, env);
            printf("Returned int: %d\n", int_4);
        
            /* Build the response adb */
            
            _mulresponse2 = adb_mulResponse_create(env);
            int_5 = int_3 * int_4;
            adb_mulResponse_set_mulReturn(_mulresponse2, env, int_5);
            
            return _mulresponse2;
        }
     

		 
        /**
         * auto generated function definition signature
         * for "add|http://localhost/axis/Calculator" operation.
         
         * @param add
         */
        
        adb_addResponse_t* axis2_skel_Calculator_add (const axutil_env_t *env,
                                                          adb_add_t *_add1)
        {
            
            
            adb_addResponse_t *_addresponse2;
            int int_8;
            
            int int_6;
            int int_7;
            
            /* Extract the request */
            
            int_6 = adb_add_get_in0(_add1, env);
            printf("Returned int: %d\n", int_6);
            int_7 = adb_add_get_in1(_add1, env);
            printf("Returned int: %d\n", int_7);
        
            /* Build the response adb */
            
            _addresponse2 = adb_addResponse_create(env);
            int_8 = int_6 + int_7;
            adb_addResponse_set_addReturn(_addresponse2, env, int_8);
            
            return _addresponse2;
        }
     

		 
        /**
         * auto generated function definition signature
         * for "sub|http://localhost/axis/Calculator" operation.
         
         * @param sub
         */
        
        adb_subResponse_t* axis2_skel_Calculator_sub (const axutil_env_t *env,
                                                          adb_sub_t *_sub1)
        {
            
            
            adb_subResponse_t *_subresponse2;
            int int_11;
            
            int int_9;
            int int_10;
            
            /* Extract the request */
            
            int_9 = adb_sub_get_in0(_sub1, env);
            printf("Returned int: %d\n", int_9);
            int_10 = adb_sub_get_in1(_sub1, env);
            printf("Returned int: %d\n", int_10);
        
            /* Build the response adb */
            
            _subresponse2 = adb_subResponse_create(env);
            int_11 = int_9 - int_10;
            adb_subResponse_set_subReturn(_subresponse2, env, int_11);
            
            return _subresponse2;
        }
     



<|start_filename|>axiom/test/om/test_om.c<|end_filename|>

/*
 * 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.
 */

#include <axiom_stax_builder.h>
#include <axiom_document.h>
#include <axiom_node.h>
#include <axiom_element.h>
#include <axiom_text.h>
#include <axiom_data_source.h>
#include <axutil_stream.h>
#include <axutil_log_default.h>
#include <axutil_error_default.h>
#include <axiom_xml_reader.h>
#include <stdio.h>
#include <axiom_xml_writer.h>
#include <axutil_env.h>

/**
   Define the environment related variables globally so that they are available
   for both functions
*/

axutil_allocator_t *allocator = NULL;
axutil_env_t *environment = NULL;
axutil_stream_t *stream = NULL;
axutil_error_t *error = NULL;
axutil_log_t *axis_log = NULL;
FILE *f = NULL;

/** a method that demonstrate creating a om model using an xml file */

int AXIS2_CALL
read_input(
    char *buffer,
    int size,
    void *ctx)
{
    int len = 0;
    char *pos = NULL;
    len = fread(buffer, sizeof(char), size, f);
    if (buffer)
        pos = strstr(buffer, "---");
    if (pos)
    {
        len = pos - buffer;
        *pos = '\0';
    }
    return len;
}

int
test_om_build(
    const char *filename)
{
    axiom_element_t *ele1 = NULL,
        *ele2 = NULL;
    axiom_stax_builder_t *builder = NULL;
    axiom_text_t *text = NULL;
    axiom_document_t *document = NULL;
    axiom_node_t *node1 = NULL,
        *node2 = NULL;
    axiom_node_t *node3 = NULL;
    axiom_output_t *om_output = NULL;
    axiom_namespace_t *ns = NULL;
    axiom_xml_reader_t *reader = NULL;
    axiom_xml_writer_t *writer = NULL;

    char *buffer = NULL;
    axutil_hash_t* hash = NULL;

    printf("\nstart test_om_build\n");

    f = fopen(filename, "r");
    if (!f)
    {
        printf("FILE COULDN'T BE OPENED %s \n",filename);
        return -1;
    }

    /** create pull parser */
    reader =
        axiom_xml_reader_create_for_io(environment, read_input, NULL, NULL,
                                       NULL);

    if (!reader)
    {
        printf("ERROR CREATING PULLPARSER");
        return -1;
    }

     /** create axiom_stax_builder by parsing pull_parser struct */

    builder = axiom_stax_builder_create(environment, reader);

    if (!builder)
    {
        printf("ERROR CREATING PULL PARSER");
        return -1;
    }

    /**
        create an om document
        document is the container of om model created using builder 
    */

    document = axiom_stax_builder_get_document(builder, environment);

    /**
        get root element , building starts hear 
     */
    if (!document)
    {
        printf("COULDN'T BUILD DOCUMENT");
        return -1;
    }

    node1 = axiom_document_get_root_element(document, environment);
    if (!node1)
    {
        printf(" root element null ");
        axiom_stax_builder_free(builder, environment);
        return -1;
    }
    if (node1)
    {

        /** print root node information */

        ele1 = axiom_node_get_data_element(node1, environment);
        if (ele1)
        {
            printf("root localname %s\n",
                   axiom_element_get_localname(ele1, environment));
        
            hash = axiom_element_get_all_attributes(ele1,environment);
            if(hash)
            {
                axutil_hash_index_t *hi;
                const void *key= NULL;
                void *val = NULL;
                for (hi = axutil_hash_first(hash,environment); hi; hi = axutil_hash_next(environment, hi))
                {
                    axutil_hash_this(hi, &key, NULL,&val);
                    if(val)
                    {
                        printf(" Attribute name: %s",
                            axiom_attribute_get_localname((axiom_attribute_t *)val,environment));
                        printf("   value: %s\n",
                            axiom_attribute_get_value((axiom_attribute_t *)val,environment));
                    }
                }
            }
        }

        ns = axiom_element_get_namespace(ele1, environment, node1);

        if (ns)
        {
            printf("root ns prefix %s\n",
                   axiom_namespace_get_prefix(ns, environment));
            printf("root ns uri %s\n",
                   axiom_namespace_get_uri(ns, environment));
                        printf("=============================================");

        }
        else
            printf("=============================================");

    }

    /** build the document continuously untill all the xml file is built in to a om model */

    node2 = axiom_document_build_next(document, environment);
    do
    {

        if (!node2)
            break;

        switch (axiom_node_get_node_type(node2, environment))
        {
        case AXIOM_ELEMENT:
            ele2 =
                (axiom_element_t *) axiom_node_get_data_element(node2,
                                                                environment);
                    printf("=============================================");
            if (ele2 && axiom_element_get_localname(ele2, environment))
            {
                printf("\n localname %s\n",
                           axiom_element_get_localname(ele2, environment));
                hash = axiom_element_get_all_attributes(ele2,environment);
                if(hash)
                {
                    axutil_hash_index_t *hi;
                    const void *key= NULL;
                    void *val = NULL;
                    for (hi = axutil_hash_first(hash,environment); hi; hi = axutil_hash_next(environment, hi))
                    {
                        axutil_hash_this(hi, &key, NULL,&val);
                        if(val)
                        {
                            printf(" Attribute name: %s",
                                axiom_attribute_get_localname((axiom_attribute_t *)val,environment));
                            printf("   value: %s\n",
                                axiom_attribute_get_value((axiom_attribute_t *)val,environment));
                        }
                    }
                }

            }


            
            if (!node3)
                node3 = node2;

            break;
        case AXIOM_TEXT:

            text =
                (axiom_text_t *) axiom_node_get_data_element(node2,
                                                             environment);
            if (text && axiom_text_get_value(text, environment))
                printf("\n text value  %s \n",
                       axiom_text_get_value(text, environment));
            break;

        default:
            break;
        }

        node2 = axiom_document_build_next(document, environment);
    }
    while (node2);
    printf("END: pull document\n");

    printf("Serialize pulled document\n");

    writer =
        axiom_xml_writer_create_for_memory(environment, NULL, AXIS2_TRUE, 0,
                                           AXIS2_XML_PARSER_TYPE_BUFFER);
    om_output = axiom_output_create(environment, writer);

    axiom_node_serialize_sub_tree(node3, environment, om_output);

    buffer = (axis2_char_t *) axiom_xml_writer_get_xml(writer, environment);

    if (buffer)
        printf("Sub Tree = %s\n", buffer);

    axiom_output_free(om_output, environment);

    axiom_stax_builder_free(builder, environment);

/*     if (buffer) */

/*         AXIS2_FREE(environment->allocator, buffer); */
    printf("\nend test_om_build\n");
    fclose(f);
    return 0;
}


int test_om_buffer()
{
    /*AXIS2C-1628 buffer modified by axiom_node_create_from_buffer */
    axis2_char_t * output;

    char * xml = strdup("<foo>T1 &amp; T2</foo>");
    char * xml_unaltered= strdup("<foo>T1 &amp; T2</foo>");

    printf("\nstart test_om_bufer\n");

    axiom_node_t * om_node = axiom_node_create_from_buffer(environment, xml);

    output = axiom_node_to_string(om_node,environment);

    if(axutil_strcmp(xml,xml_unaltered))
    {
        printf("ERROR BUFFER MODIFIED\n");
        return -1;
    }

    if(axutil_strcmp(output,xml_unaltered))
    {
        printf("ERROR OUTPUT DOESNT MATCH\n");
        return -1;
    }

    axiom_node_free_tree(om_node,environment);
    AXIS2_FREE(environment->allocator, output);
    AXIS2_FREE(environment->allocator, xml);
    AXIS2_FREE(environment->allocator, xml_unaltered);

    printf("\nend test_om_bufer\n");

    return 0;
}


int
test_om_serialize(
    )
{

    /*
       <book xmlns:axiomc="http://ws.apache.org/axis2/c/om" xmlns:isbn="urn:ISBN:0-395-74341-6">
       <title>Axis2/C OM HOWTO</title>
       <isbn:number>1748491379</isbn:number>
       <author title="Mr" name="<NAME>" />
       <notes>
       <p xmlns="urn:w3-org-ns:HTML">
       This is <i>vey good</i> book on OM!
       </p>
       </notes>
       </book>
     */
    int status;
    axiom_element_t *ele1 = NULL,
        *ele2 = NULL,
        *ele3 = NULL,
        *ele4 = NULL;
    axiom_node_t *node1 = NULL,
        *node2 = NULL,
        *node3 = NULL,
        *node4 = NULL,
        *node5 = NULL,
        *node6 = NULL;
    axiom_data_source_t *data_source = NULL;
    axutil_stream_t *stream = NULL;
    axiom_attribute_t *attr1 = NULL,
        *attr2 = NULL;
    axiom_namespace_t *ns1 = NULL,
        *ns2 = NULL;
    axiom_text_t *text1 = NULL;
    axiom_output_t *om_output = NULL;
    axiom_xml_writer_t *writer = NULL;
    axis2_char_t *output_buffer = NULL;

    printf("\nstart test_om_serialize\n");

    ns1 =
        axiom_namespace_create(environment,
                               "http://ws.apache.org/axis2/c/om", "axiom");
    ns2 = axiom_namespace_create(environment, "urn:ISBN:0-395-74341-6", "isbn");
    ele1 = axiom_element_create(environment, NULL, "book", ns1, &node1);
    axiom_element_declare_namespace(ele1, environment, node1, ns2);

    ele2 = axiom_element_create(environment, node1, "title", ns1, &node2);
    attr1 = axiom_attribute_create(environment, "title22", NULL, NULL);

    axiom_element_add_attribute(ele2, environment, attr1, node2);

    text1 = axiom_text_create(environment, node2, "Axis2/C OM HOWTO", &node3);

    ele3 = axiom_element_create(environment, node1, "number", ns2, &node4);

    text1 = axiom_text_create(environment, node4, "1748491379", &node5);

    ele4 = axiom_element_create(environment, node1, "author", ns1, &node6);

    attr1 = axiom_attribute_create(environment, "title", "Mr", ns1);

    axiom_element_add_attribute(ele4, environment, attr1, node6);

    attr2 = axiom_attribute_create(environment, "name", "<NAME>", ns1);

    axiom_element_add_attribute(ele4, environment, attr2, node6);

    data_source = axiom_data_source_create(environment, node1, &node6);
    stream = axiom_data_source_get_stream(data_source, environment);
    if (stream)
    {
        axutil_stream_write(stream, environment,
                            "<this xmlns:axiom=\"http://ws.apache.org/axis2/c/om\">is a test</this>",
                            axutil_strlen
                            ("<this xmlns:axiom=\"http://ws.apache.org/axis2/c/om\">is a test</this>"));
    }

    /* serializing stuff */
    writer =
        axiom_xml_writer_create_for_memory(environment, NULL, AXIS2_TRUE, 0,
                                           AXIS2_XML_PARSER_TYPE_BUFFER);
    om_output = axiom_output_create(environment, writer);

    printf("Serialize built document\n");
    status = axiom_node_serialize(node1, environment, om_output);
    if (status != AXIS2_SUCCESS)
    {
        printf("\naxiom_node_serialize failed\n");
        return status;
    }
    else
        printf("\naxiom_node_serialize success\n");
    /* end serializing stuff */

    axiom_node_free_tree(node1, environment);
    output_buffer =
        (axis2_char_t *) axiom_xml_writer_get_xml(writer, environment);

    axiom_output_free(om_output, environment);
    /*    if (output_buffer) */
    /*     { */
    /*         printf("%s", output_buffer); */
    /*         AXIS2_FREE(environment->allocator, output_buffer); */
    /*     } */

    printf("\nend test_om_serialize\n");

    return 0;
}

int
main(
    int argc,
    char *argv[])
 {
    const char *file_name = "../../resources/xml/om/test.xml";
    if (argc > 1)
        file_name = argv[1];
    allocator = axutil_allocator_init(NULL);
    axis_log = axutil_log_create(allocator, NULL, NULL);
    error = axutil_error_create(allocator);

    environment = axutil_env_create_with_error_log(allocator, error, axis_log);
    test_om_build(file_name);
    test_om_serialize();
    test_om_buffer();

    axutil_env_free(environment);
    return 0;
}


<|start_filename|>xdocs/api/html/axutil__log_8h-source.html<|end_filename|>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html><head><meta http-equiv="Content-Type" content="text/html;charset=UTF-8">
<title>Axis2/C: axutil_log.h Source File</title>
<link href="doxygen.css" rel="stylesheet" type="text/css">
<link href="tabs.css" rel="stylesheet" type="text/css">
</head><body>
<!-- Generated by Doxygen 1.5.3 -->
<div class="tabs">
  <ul>
    <li><a href="index.html"><span>Main&nbsp;Page</span></a></li>
    <li><a href="modules.html"><span>Modules</span></a></li>
    <li><a href="annotated.html"><span>Classes</span></a></li>
    <li class="current"><a href="files.html"><span>Files</span></a></li>
    <li><a href="dirs.html"><span>Directories</span></a></li>
    <li><a href="pages.html"><span>Related&nbsp;Pages</span></a></li>
    <li><a href="examples.html"><span>Examples</span></a></li>
    <li>
      <form action="search.php" method="get">
        <table cellspacing="0" cellpadding="0" border="0">
          <tr>
            <td><label>&nbsp;<u>S</u>earch&nbsp;for&nbsp;</label></td>
            <td><input type="text" name="query" value="" size="20" accesskey="s"/></td>
          </tr>
        </table>
      </form>
    </li>
  </ul>
</div>
<div class="nav">
<a class="el" href="dir_f60961de8e5edc3b2658ef023e959e45.html">deploy</a>&nbsp;&raquo&nbsp;<a class="el" href="dir_6b4e91e54b7316b376882a6402adbf44.html">include</a>&nbsp;&raquo&nbsp;<a class="el" href="dir_df3a7695d5a9e696f30b948b566829e7.html">axis2-1.6.0</a></div>
<h1>axutil_log.h</h1><div class="fragment"><pre class="fragment"><a name="l00001"></a>00001 
<a name="l00002"></a>00002 <span class="comment">/*</span>
<a name="l00003"></a>00003 <span class="comment"> * Licensed to the Apache Software Foundation (ASF) under one or more</span>
<a name="l00004"></a>00004 <span class="comment"> * contributor license agreements.  See the NOTICE file distributed with</span>
<a name="l00005"></a>00005 <span class="comment"> * this work for additional information regarding copyright ownership.</span>
<a name="l00006"></a>00006 <span class="comment"> * The ASF licenses this file to You under the Apache License, Version 2.0</span>
<a name="l00007"></a>00007 <span class="comment"> * (the "License"); you may not use this file except in compliance with</span>
<a name="l00008"></a>00008 <span class="comment"> * the License.  You may obtain a copy of the License at</span>
<a name="l00009"></a>00009 <span class="comment"> *</span>
<a name="l00010"></a>00010 <span class="comment"> *      http://www.apache.org/licenses/LICENSE-2.0</span>
<a name="l00011"></a>00011 <span class="comment"> *</span>
<a name="l00012"></a>00012 <span class="comment"> * Unless required by applicable law or agreed to in writing, software</span>
<a name="l00013"></a>00013 <span class="comment"> * distributed under the License is distributed on an "AS IS" BASIS,</span>
<a name="l00014"></a>00014 <span class="comment"> * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.</span>
<a name="l00015"></a>00015 <span class="comment"> * See the License for the specific language governing permissions and</span>
<a name="l00016"></a>00016 <span class="comment"> * limitations under the License.</span>
<a name="l00017"></a>00017 <span class="comment"> */</span>
<a name="l00018"></a>00018 
<a name="l00019"></a>00019 <span class="preprocessor">#ifndef AXUTIL_LOG_H</span>
<a name="l00020"></a>00020 <span class="preprocessor"></span><span class="preprocessor">#define AXUTIL_LOG_H</span>
<a name="l00021"></a>00021 <span class="preprocessor"></span>
<a name="l00022"></a>00022 <span class="preprocessor">#include &lt;<a class="code" href="axutil__allocator_8h.html" title="Axis2 memory allocator interface.">axutil_allocator.h</a>&gt;</span>
<a name="l00023"></a>00023 
<a name="l00024"></a>00024 <span class="preprocessor">#ifdef __cplusplus</span>
<a name="l00025"></a>00025 <span class="preprocessor"></span><span class="keyword">extern</span> <span class="stringliteral">"C"</span>
<a name="l00026"></a>00026 {
<a name="l00027"></a>00027 <span class="preprocessor">#endif</span>
<a name="l00028"></a>00028 <span class="preprocessor"></span>
<a name="l00029"></a>00029     <span class="keyword">typedef</span> <span class="keyword">struct </span><a class="code" href="structaxutil__log__ops.html" title="Axis2 log ops struct.">axutil_log_ops</a> <a class="code" href="structaxutil__log__ops.html" title="Axis2 log ops struct.">axutil_log_ops_t</a>;
<a name="l00030"></a>00030     <span class="keyword">typedef</span> <span class="keyword">struct </span><a class="code" href="structaxutil__log.html" title="Axis2 Log struct.">axutil_log</a> <a class="code" href="structaxutil__log.html" title="Axis2 Log struct.">axutil_log_t</a>;
<a name="l00031"></a>00031 
<a name="l00032"></a>00032 <span class="preprocessor">#define AXIS2_LOG_SI __FILE__,__LINE__</span>
<a name="l00033"></a>00033 <span class="preprocessor"></span>
<a name="l00057"></a><a class="code" href="group__axutil__log.html#gd0a4d978fc80ce29636196b75e21b06d">00057</a>     <span class="keyword">typedef</span> <span class="keyword">enum</span> <a class="code" href="group__axutil__log.html#gd0a4d978fc80ce29636196b75e21b06d" title="Axis2 log levels.">axutil_log_levels</a>
<a name="l00058"></a>00058     {
<a name="l00059"></a>00059 
<a name="l00061"></a><a class="code" href="group__axutil__log.html#ggd0a4d978fc80ce29636196b75e21b06d3d9bff0d07c3094f69ff9e74ef717ed7">00061</a>         <a class="code" href="group__axutil__log.html#ggd0a4d978fc80ce29636196b75e21b06d3d9bff0d07c3094f69ff9e74ef717ed7">AXIS2_LOG_LEVEL_CRITICAL</a> = 0,
<a name="l00062"></a>00062 
<a name="l00064"></a><a class="code" href="group__axutil__log.html#ggd0a4d978fc80ce29636196b75e21b06d410d801a5f0eb97df330d0da1047619e">00064</a>         <a class="code" href="group__axutil__log.html#ggd0a4d978fc80ce29636196b75e21b06d410d801a5f0eb97df330d0da1047619e">AXIS2_LOG_LEVEL_ERROR</a>,
<a name="l00065"></a>00065 
<a name="l00067"></a><a class="code" href="group__axutil__log.html#ggd0a4d978fc80ce29636196b75e21b06de7f00415a79bf4f624bda5ddd6bbbf8e">00067</a>         <a class="code" href="group__axutil__log.html#ggd0a4d978fc80ce29636196b75e21b06de7f00415a79bf4f624bda5ddd6bbbf8e">AXIS2_LOG_LEVEL_WARNING</a>,
<a name="l00068"></a>00068 
<a name="l00070"></a><a class="code" href="group__axutil__log.html#ggd0a4d978fc80ce29636196b75e21b06dd53347fbe4d1731713539c819a5a5b4f">00070</a>         <a class="code" href="group__axutil__log.html#ggd0a4d978fc80ce29636196b75e21b06dd53347fbe4d1731713539c819a5a5b4f">AXIS2_LOG_LEVEL_INFO</a>,
<a name="l00071"></a>00071 
<a name="l00073"></a><a class="code" href="group__axutil__log.html#ggd0a4d978fc80ce29636196b75e21b06d4768c51dc9b67f5e514c96012f636f1a">00073</a>         <a class="code" href="group__axutil__log.html#ggd0a4d978fc80ce29636196b75e21b06d4768c51dc9b67f5e514c96012f636f1a">AXIS2_LOG_LEVEL_DEBUG</a>,
<a name="l00074"></a>00074         
<a name="l00076"></a><a class="code" href="group__axutil__log.html#ggd0a4d978fc80ce29636196b75e21b06d441caacbd7c7caa46d508d5c12e78a4f">00076</a>         <a class="code" href="group__axutil__log.html#ggd0a4d978fc80ce29636196b75e21b06d441caacbd7c7caa46d508d5c12e78a4f">AXIS2_LOG_LEVEL_USER</a>,
<a name="l00077"></a>00077 
<a name="l00079"></a><a class="code" href="group__axutil__log.html#ggd0a4d978fc80ce29636196b75e21b06d2d474b93f843a054c6025515cef68aea">00079</a>         <a class="code" href="group__axutil__log.html#ggd0a4d978fc80ce29636196b75e21b06d2d474b93f843a054c6025515cef68aea">AXIS2_LOG_LEVEL_TRACE</a>
<a name="l00080"></a>00080         
<a name="l00081"></a>00081     } <a class="code" href="group__axutil__log.html#g0c477f6f8724a6258a9caaabfcf2c482" title="Axis2 log levels.">axutil_log_levels_t</a>;
<a name="l00082"></a>00082 
<a name="l00088"></a><a class="code" href="structaxutil__log__ops.html">00088</a>     <span class="keyword">struct </span><a class="code" href="structaxutil__log__ops.html" title="Axis2 log ops struct.">axutil_log_ops</a>
<a name="l00089"></a>00089     {
<a name="l00090"></a>00090 
<a name="l00096"></a>00096         void(
<a name="l00097"></a>00097             AXIS2_CALL
<a name="l00098"></a>00098             * <a class="code" href="structaxutil__log__ops.html#b4996bdfbcd42be8cf62950dc59c2a7b">free</a>)(
<a name="l00099"></a>00099                 <a class="code" href="structaxutil__allocator.html" title="Axis2 memory allocator.">axutil_allocator_t</a> * allocator,
<a name="l00100"></a>00100                 <span class="keyword">struct </span><a class="code" href="structaxutil__log.html" title="Axis2 Log struct.">axutil_log</a> * log);
<a name="l00101"></a>00101 
<a name="l00108"></a>00108         void(
<a name="l00109"></a>00109             AXIS2_CALL
<a name="l00110"></a>00110             * <a class="code" href="structaxutil__log__ops.html#8992fe7f68747b72629f1b3b73bcffbe">write</a>)(
<a name="l00111"></a>00111                 <a class="code" href="structaxutil__log.html" title="Axis2 Log struct.">axutil_log_t</a> * log,
<a name="l00112"></a>00112                 <span class="keyword">const</span> axis2_char_t * buffer,
<a name="l00113"></a>00113                 <a class="code" href="group__axutil__log.html#g0c477f6f8724a6258a9caaabfcf2c482" title="Axis2 log levels.">axutil_log_levels_t</a> <a class="code" href="structaxutil__log.html#083fd70b8c1f8b74b63cf5e2121aa945">level</a>,
<a name="l00114"></a>00114                 <span class="keyword">const</span> axis2_char_t * file,
<a name="l00115"></a>00115                 <span class="keyword">const</span> <span class="keywordtype">int</span> line);
<a name="l00116"></a>00116     };
<a name="l00117"></a>00117 
<a name="l00123"></a><a class="code" href="structaxutil__log.html">00123</a>     <span class="keyword">struct </span><a class="code" href="structaxutil__log.html" title="Axis2 Log struct.">axutil_log</a>
<a name="l00124"></a>00124     {
<a name="l00125"></a>00125 
<a name="l00127"></a><a class="code" href="structaxutil__log.html#111db95f40c855be83d589bc6d21b3b3">00127</a>         <span class="keyword">const</span> <a class="code" href="structaxutil__log__ops.html" title="Axis2 log ops struct.">axutil_log_ops_t</a> *<a class="code" href="structaxutil__log.html#111db95f40c855be83d589bc6d21b3b3">ops</a>;
<a name="l00128"></a>00128 
<a name="l00130"></a><a class="code" href="structaxutil__log.html#083fd70b8c1f8b74b63cf5e2121aa945">00130</a>         <a class="code" href="group__axutil__log.html#g0c477f6f8724a6258a9caaabfcf2c482" title="Axis2 log levels.">axutil_log_levels_t</a> <a class="code" href="structaxutil__log.html#083fd70b8c1f8b74b63cf5e2121aa945">level</a>;
<a name="l00131"></a>00131         
<a name="l00133"></a><a class="code" href="structaxutil__log.html#3ad3ef2ff2f88500c8bf1520aca564cf">00133</a>         <span class="keywordtype">int</span> <a class="code" href="structaxutil__log.html#3ad3ef2ff2f88500c8bf1520aca564cf">size</a>;
<a name="l00134"></a>00134 
<a name="l00136"></a><a class="code" href="structaxutil__log.html#61962855615898f2ff2409bbe9fb7ccc">00136</a>         axis2_bool_t <a class="code" href="structaxutil__log.html#61962855615898f2ff2409bbe9fb7ccc">enabled</a>;
<a name="l00137"></a>00137 
<a name="l00138"></a>00138     };
<a name="l00139"></a>00139 
<a name="l00140"></a>00140     AXIS2_EXTERN <span class="keywordtype">void</span> AXIS2_CALL
<a name="l00141"></a>00141     axutil_log_impl_log_critical(
<a name="l00142"></a>00142         <a class="code" href="structaxutil__log.html" title="Axis2 Log struct.">axutil_log_t</a> * log,
<a name="l00143"></a>00143         <span class="keyword">const</span> axis2_char_t * filename,
<a name="l00144"></a>00144         <span class="keyword">const</span> <span class="keywordtype">int</span> linenumber,
<a name="l00145"></a>00145         <span class="keyword">const</span> axis2_char_t * format,
<a name="l00146"></a>00146         ...);
<a name="l00147"></a>00147 
<a name="l00148"></a>00148     AXIS2_EXTERN <span class="keywordtype">void</span> AXIS2_CALL
<a name="l00149"></a>00149     axutil_log_impl_log_error(
<a name="l00150"></a>00150         <a class="code" href="structaxutil__log.html" title="Axis2 Log struct.">axutil_log_t</a> * log,
<a name="l00151"></a>00151         <span class="keyword">const</span> axis2_char_t * filename,
<a name="l00152"></a>00152         <span class="keyword">const</span> <span class="keywordtype">int</span> linenumber,
<a name="l00153"></a>00153         <span class="keyword">const</span> axis2_char_t * format,
<a name="l00154"></a>00154         ...);
<a name="l00155"></a>00155 
<a name="l00156"></a>00156     AXIS2_EXTERN <span class="keywordtype">void</span> AXIS2_CALL
<a name="l00157"></a>00157     axutil_log_impl_log_warning(
<a name="l00158"></a>00158         <a class="code" href="structaxutil__log.html" title="Axis2 Log struct.">axutil_log_t</a> * log,
<a name="l00159"></a>00159         <span class="keyword">const</span> axis2_char_t * filename,
<a name="l00160"></a>00160         <span class="keyword">const</span> <span class="keywordtype">int</span> linenumber,
<a name="l00161"></a>00161         <span class="keyword">const</span> axis2_char_t * format,
<a name="l00162"></a>00162         ...);
<a name="l00163"></a>00163 
<a name="l00164"></a>00164     AXIS2_EXTERN <span class="keywordtype">void</span> AXIS2_CALL
<a name="l00165"></a>00165     axutil_log_impl_log_info(
<a name="l00166"></a>00166         <a class="code" href="structaxutil__log.html" title="Axis2 Log struct.">axutil_log_t</a> * log,
<a name="l00167"></a>00167         <span class="keyword">const</span> axis2_char_t * format,
<a name="l00168"></a>00168         ...);
<a name="l00169"></a>00169 
<a name="l00170"></a>00170     AXIS2_EXTERN <span class="keywordtype">void</span> AXIS2_CALL
<a name="l00171"></a>00171     axutil_log_impl_log_user(
<a name="l00172"></a>00172         <a class="code" href="structaxutil__log.html" title="Axis2 Log struct.">axutil_log_t</a> * log,
<a name="l00173"></a>00173         <span class="keyword">const</span> axis2_char_t * filename,
<a name="l00174"></a>00174         <span class="keyword">const</span> <span class="keywordtype">int</span> linenumber,
<a name="l00175"></a>00175         <span class="keyword">const</span> axis2_char_t * format,
<a name="l00176"></a>00176         ...);
<a name="l00177"></a>00177 
<a name="l00178"></a>00178     AXIS2_EXTERN <span class="keywordtype">void</span> AXIS2_CALL
<a name="l00179"></a>00179     axutil_log_impl_log_debug(
<a name="l00180"></a>00180         <a class="code" href="structaxutil__log.html" title="Axis2 Log struct.">axutil_log_t</a> * log,
<a name="l00181"></a>00181         <span class="keyword">const</span> axis2_char_t * filename,
<a name="l00182"></a>00182         <span class="keyword">const</span> <span class="keywordtype">int</span> linenumber,
<a name="l00183"></a>00183         <span class="keyword">const</span> axis2_char_t * format,
<a name="l00184"></a>00184         ...);
<a name="l00185"></a>00185 
<a name="l00186"></a>00186     AXIS2_EXTERN <span class="keywordtype">void</span> AXIS2_CALL
<a name="l00187"></a>00187     axutil_log_impl_log_trace(
<a name="l00188"></a>00188         <a class="code" href="structaxutil__log.html" title="Axis2 Log struct.">axutil_log_t</a> * log,
<a name="l00189"></a>00189         <span class="keyword">const</span> axis2_char_t * filename,
<a name="l00190"></a>00190         <span class="keyword">const</span> <span class="keywordtype">int</span> linenumber,
<a name="l00191"></a>00191         <span class="keyword">const</span> axis2_char_t * format,
<a name="l00192"></a>00192         ...);
<a name="l00193"></a>00193 
<a name="l00194"></a>00194     AXIS2_EXTERN <span class="keywordtype">void</span> AXIS2_CALL
<a name="l00195"></a>00195     axutil_log_free(
<a name="l00196"></a>00196         <a class="code" href="structaxutil__allocator.html" title="Axis2 memory allocator.">axutil_allocator_t</a> * allocator,
<a name="l00197"></a>00197         <span class="keyword">struct</span> <a class="code" href="structaxutil__log.html" title="Axis2 Log struct.">axutil_log</a> *log);
<a name="l00198"></a>00198 
<a name="l00199"></a>00199     AXIS2_EXTERN <span class="keywordtype">void</span> AXIS2_CALL
<a name="l00200"></a>00200     axutil_log_write(
<a name="l00201"></a>00201         <a class="code" href="structaxutil__log.html" title="Axis2 Log struct.">axutil_log_t</a> * log,
<a name="l00202"></a>00202         <span class="keyword">const</span> axis2_char_t * buffer,
<a name="l00203"></a>00203         <a class="code" href="group__axutil__log.html#g0c477f6f8724a6258a9caaabfcf2c482" title="Axis2 log levels.">axutil_log_levels_t</a> level,
<a name="l00204"></a>00204         <span class="keyword">const</span> axis2_char_t * file,
<a name="l00205"></a>00205         <span class="keyword">const</span> <span class="keywordtype">int</span> line);
<a name="l00206"></a>00206 
<a name="l00207"></a>00207 
<a name="l00208"></a>00208 <span class="preprocessor">#define AXIS2_LOG_FREE(allocator, log) \</span>
<a name="l00209"></a>00209 <span class="preprocessor">      axutil_log_free(allocator, log)</span>
<a name="l00210"></a>00210 <span class="preprocessor"></span>
<a name="l00211"></a>00211 <span class="preprocessor">#define AXIS2_LOG_WRITE(log, buffer, level, file) \</span>
<a name="l00212"></a>00212 <span class="preprocessor">      axutil_log_write(log, buffer, level, file, AXIS2_LOG_SI)</span>
<a name="l00213"></a>00213 <span class="preprocessor"></span>
<a name="l00214"></a>00214 <span class="preprocessor">#define AXIS2_LOG_USER axutil_log_impl_log_user</span>
<a name="l00215"></a>00215 <span class="preprocessor"></span><span class="preprocessor">#define AXIS2_LOG_DEBUG axutil_log_impl_log_debug</span>
<a name="l00216"></a>00216 <span class="preprocessor"></span><span class="preprocessor">#define AXIS2_LOG_INFO axutil_log_impl_log_info</span>
<a name="l00217"></a>00217 <span class="preprocessor"></span><span class="preprocessor">#define AXIS2_LOG_WARNING axutil_log_impl_log_warning</span>
<a name="l00218"></a>00218 <span class="preprocessor"></span><span class="preprocessor">#define AXIS2_LOG_ERROR axutil_log_impl_log_error</span>
<a name="l00219"></a>00219 <span class="preprocessor"></span><span class="preprocessor">#define AXIS2_LOG_CRITICAL axutil_log_impl_log_critical</span>
<a name="l00220"></a>00220 <span class="preprocessor"></span>
<a name="l00221"></a>00221 <span class="preprocessor">#ifdef AXIS2_TRACE</span>
<a name="l00222"></a>00222 <span class="preprocessor"></span><span class="preprocessor">#define AXIS2_LOG_TRACE axutil_log_impl_log_trace</span>
<a name="l00223"></a>00223 <span class="preprocessor"></span><span class="preprocessor">#else</span>
<a name="l00224"></a>00224 <span class="preprocessor"></span><span class="preprocessor"># ifdef HAVE_GNUC_VARARGS</span>
<a name="l00225"></a>00225 <span class="preprocessor"></span><span class="preprocessor">#  define AXIS2_LOG_TRACE(params, args ...)</span>
<a name="l00226"></a>00226 <span class="preprocessor"></span><span class="preprocessor"># elif defined HAVE_ISO_VARARGS</span>
<a name="l00227"></a>00227 <span class="preprocessor"></span><span class="preprocessor">#  define AXIS2_LOG_TRACE(params, ...)</span>
<a name="l00228"></a>00228 <span class="preprocessor"></span><span class="preprocessor"># elif __STDC__ &amp;&amp; __STDC_VERSION &gt; 199901L</span>
<a name="l00229"></a>00229 <span class="preprocessor"></span><span class="preprocessor">#  define AXIS2_LOG_TRACE(params, ...)</span>
<a name="l00230"></a>00230 <span class="preprocessor"></span><span class="preprocessor"># elif WIN32</span>
<a name="l00231"></a>00231 <span class="preprocessor"></span><span class="preprocessor">#  define AXIS2_LOG_TRACE axutil_log_impl_log_trace</span>
<a name="l00232"></a>00232 <span class="preprocessor"></span><span class="preprocessor"># else</span>
<a name="l00233"></a>00233 <span class="preprocessor"></span><span class="preprocessor">#  define AXIS2_LOG_TRACE axutil_log_impl_log_trace</span>
<a name="l00234"></a>00234 <span class="preprocessor"></span><span class="preprocessor"># endif</span>
<a name="l00235"></a>00235 <span class="preprocessor"></span><span class="preprocessor">#endif</span>
<a name="l00236"></a>00236 <span class="preprocessor"></span>
<a name="l00237"></a>00237 <span class="preprocessor">#ifndef AXIS2_LOG_PROJECT_PREFIX</span>
<a name="l00238"></a>00238 <span class="preprocessor"></span>
<a name="l00239"></a><a class="code" href="group__axutil__log.html#gf01a406e8f8b40a092a8e32c337ef029">00239</a> <span class="preprocessor">#define AXIS2_LOG_PROJECT_PREFIX "[axis2c]"</span>
<a name="l00240"></a>00240 <span class="preprocessor"></span><span class="preprocessor">#endif </span>
<a name="l00241"></a>00241 <span class="preprocessor"></span>
<a name="l00242"></a>00242 <span class="preprocessor">#define AXIS2_LOG_USER_MSG(log, msg) AXIS2_LOG_USER (log, AXIS2_LOG_SI, "%s %s", AXIS2_LOG_PROJECT_PREFIX, msg)</span>
<a name="l00243"></a>00243 <span class="preprocessor"></span><span class="preprocessor">#define AXIS2_LOG_DEBUG_MSG(log, msg) AXIS2_LOG_DEBUG (log, AXIS2_LOG_SI, "%s %s", AXIS2_LOG_PROJECT_PREFIX, msg)</span>
<a name="l00244"></a>00244 <span class="preprocessor"></span><span class="preprocessor">#define AXIS2_LOG_INFO_MSG(log, msg) AXIS2_LOG_INFO (log, "%s %s", AXIS2_LOG_PROJECT_PREFIX, msg)</span>
<a name="l00245"></a>00245 <span class="preprocessor"></span><span class="preprocessor">#define AXIS2_LOG_WARNING_MSG(log, msg) AXIS2_LOG_WARNING (log, AXIS2_LOG_SI, "%s %s", AXIS2_LOG_PROJECT_PREFIX, msg)</span>
<a name="l00246"></a>00246 <span class="preprocessor"></span><span class="preprocessor">#define AXIS2_LOG_ERROR_MSG(log, msg) AXIS2_LOG_ERROR (log, AXIS2_LOG_SI, "%s %s", AXIS2_LOG_PROJECT_PREFIX, msg)</span>
<a name="l00247"></a>00247 <span class="preprocessor"></span><span class="preprocessor">#define AXIS2_LOG_CRITICAL_MSG(log, msg) AXIS2_LOG_CRITICAL (log, AXIS2_LOG_SI, "%s %s", AXIS2_LOG_PROJECT_PREFIX, msg)</span>
<a name="l00248"></a>00248 <span class="preprocessor"></span><span class="preprocessor">#define AXIS2_LOG_TRACE_MSG(log, msg) AXIS2_LOG_TRACE (log, AXIS2_LOG_SI, "%s %s", AXIS2_LOG_PROJECT_PREFIX, msg)</span>
<a name="l00249"></a>00249 <span class="preprocessor"></span>
<a name="l00252"></a>00252 <span class="preprocessor">#ifdef __cplusplus</span>
<a name="l00253"></a>00253 <span class="preprocessor"></span>}
<a name="l00254"></a>00254 <span class="preprocessor">#endif</span>
<a name="l00255"></a>00255 <span class="preprocessor"></span>
<a name="l00256"></a>00256 <span class="preprocessor">#endif                          </span><span class="comment">/* AXIS2_LOG_H */</span>
</pre></div><hr size="1"><address style="text-align: right;"><small>Generated on Fri Apr 17 11:49:42 2009 for Axis2/C by&nbsp;
<a href="http://www.doxygen.org/index.html">
<img src="doxygen.png" alt="doxygen" align="middle" border="0"></a> 1.5.3 </small></address>
</body>
</html>


<|start_filename|>xdocs/api/html/axis2__svc__grp__ctx_8h-source.html<|end_filename|>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html><head><meta http-equiv="Content-Type" content="text/html;charset=UTF-8">
<title>Axis2/C: axis2_svc_grp_ctx.h Source File</title>
<link href="doxygen.css" rel="stylesheet" type="text/css">
<link href="tabs.css" rel="stylesheet" type="text/css">
</head><body>
<!-- Generated by Doxygen 1.5.3 -->
<div class="tabs">
  <ul>
    <li><a href="index.html"><span>Main&nbsp;Page</span></a></li>
    <li><a href="modules.html"><span>Modules</span></a></li>
    <li><a href="annotated.html"><span>Classes</span></a></li>
    <li class="current"><a href="files.html"><span>Files</span></a></li>
    <li><a href="dirs.html"><span>Directories</span></a></li>
    <li><a href="pages.html"><span>Related&nbsp;Pages</span></a></li>
    <li><a href="examples.html"><span>Examples</span></a></li>
    <li>
      <form action="search.php" method="get">
        <table cellspacing="0" cellpadding="0" border="0">
          <tr>
            <td><label>&nbsp;<u>S</u>earch&nbsp;for&nbsp;</label></td>
            <td><input type="text" name="query" value="" size="20" accesskey="s"/></td>
          </tr>
        </table>
      </form>
    </li>
  </ul>
</div>
<div class="nav">
<a class="el" href="dir_f60961de8e5edc3b2658ef023e959e45.html">deploy</a>&nbsp;&raquo&nbsp;<a class="el" href="dir_6b4e91e54b7316b376882a6402adbf44.html">include</a>&nbsp;&raquo&nbsp;<a class="el" href="dir_df3a7695d5a9e696f30b948b566829e7.html">axis2-1.6.0</a></div>
<h1>axis2_svc_grp_ctx.h</h1><a href="axis2__svc__grp__ctx_8h.html">Go to the documentation of this file.</a><div class="fragment"><pre class="fragment"><a name="l00001"></a>00001 
<a name="l00002"></a>00002 <span class="comment">/*</span>
<a name="l00003"></a>00003 <span class="comment">* Licensed to the Apache Software Foundation (ASF) under one or more</span>
<a name="l00004"></a>00004 <span class="comment">* contributor license agreements.  See the NOTICE file distributed with</span>
<a name="l00005"></a>00005 <span class="comment">* this work for additional information regarding copyright ownership.</span>
<a name="l00006"></a>00006 <span class="comment">* The ASF licenses this file to You under the Apache License, Version 2.0</span>
<a name="l00007"></a>00007 <span class="comment">* (the "License"); you may not use this file except in compliance with</span>
<a name="l00008"></a>00008 <span class="comment">* the License.  You may obtain a copy of the License at</span>
<a name="l00009"></a>00009 <span class="comment">*</span>
<a name="l00010"></a>00010 <span class="comment">*      http://www.apache.org/licenses/LICENSE-2.0</span>
<a name="l00011"></a>00011 <span class="comment">*</span>
<a name="l00012"></a>00012 <span class="comment">* Unless required by applicable law or agreed to in writing, software</span>
<a name="l00013"></a>00013 <span class="comment">* distributed under the License is distributed on an "AS IS" BASIS,</span>
<a name="l00014"></a>00014 <span class="comment">* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.</span>
<a name="l00015"></a>00015 <span class="comment">* See the License for the specific language governing permissions and</span>
<a name="l00016"></a>00016 <span class="comment">* limitations under the License.</span>
<a name="l00017"></a>00017 <span class="comment">*/</span>
<a name="l00018"></a>00018 
<a name="l00019"></a>00019 <span class="preprocessor">#ifndef AXIS2_SVC_GRP_CTX_H</span>
<a name="l00020"></a>00020 <span class="preprocessor"></span><span class="preprocessor">#define AXIS2_SVC_GRP_CTX_H</span>
<a name="l00021"></a>00021 <span class="preprocessor"></span>
<a name="l00035"></a>00035 <span class="preprocessor">#include &lt;<a class="code" href="axis2__defines_8h.html" title="Useful definitions, which may have platform concerns.">axis2_defines.h</a>&gt;</span>
<a name="l00036"></a>00036 <span class="preprocessor">#include &lt;<a class="code" href="axutil__env_8h.html" title="Axis2 environment that acts as a container for error, log and memory allocator routines...">axutil_env.h</a>&gt;</span>
<a name="l00037"></a>00037 <span class="preprocessor">#include &lt;<a class="code" href="axis2__svc__ctx_8h.html">axis2_svc_ctx.h</a>&gt;</span>
<a name="l00038"></a>00038 <span class="preprocessor">#include &lt;<a class="code" href="axis2__svc__grp_8h.html">axis2_svc_grp.h</a>&gt;</span>
<a name="l00039"></a>00039 
<a name="l00040"></a>00040 <span class="preprocessor">#ifdef __cplusplus</span>
<a name="l00041"></a>00041 <span class="preprocessor"></span><span class="keyword">extern</span> <span class="stringliteral">"C"</span>
<a name="l00042"></a>00042 {
<a name="l00043"></a>00043 <span class="preprocessor">#endif</span>
<a name="l00044"></a>00044 <span class="preprocessor"></span>
<a name="l00045"></a>00045     <span class="keyword">struct </span>axis2_svc_grp;
<a name="l00046"></a>00046 
<a name="l00048"></a><a class="code" href="group__axis2__svc__grp__ctx.html#g340e0c5f75d6579013ff5768b37e4a07">00048</a>     <span class="keyword">typedef</span> <span class="keyword">struct </span>axis2_svc_grp_ctx <a class="code" href="group__axis2__svc__grp__ctx.html#g340e0c5f75d6579013ff5768b37e4a07">axis2_svc_grp_ctx_t</a>;
<a name="l00049"></a>00049 
<a name="l00060"></a>00060     AXIS2_EXTERN <a class="code" href="group__axis2__svc__grp__ctx.html#g340e0c5f75d6579013ff5768b37e4a07">axis2_svc_grp_ctx_t</a> *AXIS2_CALL
<a name="l00061"></a>00061     <a class="code" href="group__axis2__svc__grp__ctx.html#ge0d00b9b416c6d13673844dae01c7dd1">axis2_svc_grp_ctx_create</a>(
<a name="l00062"></a>00062         <span class="keyword">const</span> <a class="code" href="structaxutil__env.html" title="Axis2 Environment struct.">axutil_env_t</a> * env,
<a name="l00063"></a>00063         <span class="keyword">struct</span> axis2_svc_grp *svc_grp,
<a name="l00064"></a>00064         <span class="keyword">struct</span> axis2_conf_ctx *conf_ctx);
<a name="l00065"></a>00065 
<a name="l00073"></a>00073     AXIS2_EXTERN <a class="code" href="group__axis2__ctx.html#ga705ff779281577f08fef5330c23402c">axis2_ctx_t</a> *AXIS2_CALL
<a name="l00074"></a>00074     <a class="code" href="group__axis2__svc__grp__ctx.html#gc0e89428bb66e652ddb0fd35bce6f62d">axis2_svc_grp_ctx_get_base</a>(
<a name="l00075"></a>00075         <span class="keyword">const</span> <a class="code" href="group__axis2__svc__grp__ctx.html#g340e0c5f75d6579013ff5768b37e4a07">axis2_svc_grp_ctx_t</a> * svc_grp_ctx,
<a name="l00076"></a>00076         <span class="keyword">const</span> <a class="code" href="structaxutil__env.html" title="Axis2 Environment struct.">axutil_env_t</a> * env);
<a name="l00077"></a>00077 
<a name="l00085"></a>00085     AXIS2_EXTERN <span class="keyword">struct </span>axis2_conf_ctx *AXIS2_CALL
<a name="l00086"></a>00086     <a class="code" href="group__axis2__svc__grp__ctx.html#g237da85b5cccbee2d725b59a4885d892">axis2_svc_grp_ctx_get_parent</a>(
<a name="l00087"></a>00087         <span class="keyword">const</span> <a class="code" href="group__axis2__svc__grp__ctx.html#g340e0c5f75d6579013ff5768b37e4a07">axis2_svc_grp_ctx_t</a> * svc_grp_ctx,
<a name="l00088"></a>00088         <span class="keyword">const</span> <a class="code" href="structaxutil__env.html" title="Axis2 Environment struct.">axutil_env_t</a> * env);
<a name="l00089"></a>00089 
<a name="l00096"></a>00096     AXIS2_EXTERN <span class="keywordtype">void</span> AXIS2_CALL
<a name="l00097"></a>00097     <a class="code" href="group__axis2__svc__grp__ctx.html#g0fd950866065679d54ca9f6a8a2edfaa">axis2_svc_grp_ctx_free</a>(
<a name="l00098"></a>00098         <span class="keyword">struct</span> axis2_svc_grp_ctx *svc_grp_ctx,
<a name="l00099"></a>00099         <span class="keyword">const</span> <a class="code" href="structaxutil__env.html" title="Axis2 Environment struct.">axutil_env_t</a> * env);
<a name="l00100"></a>00100 
<a name="l00110"></a>00110     AXIS2_EXTERN axis2_status_t AXIS2_CALL
<a name="l00111"></a>00111     <a class="code" href="group__axis2__svc__grp__ctx.html#ga9b023de30ee0669a6e19b37417c4539">axis2_svc_grp_ctx_init</a>(
<a name="l00112"></a>00112         <span class="keyword">struct</span> axis2_svc_grp_ctx *svc_grp_ctx,
<a name="l00113"></a>00113         <span class="keyword">const</span> <a class="code" href="structaxutil__env.html" title="Axis2 Environment struct.">axutil_env_t</a> * env,
<a name="l00114"></a>00114         <span class="keyword">struct</span> axis2_conf *conf);
<a name="l00115"></a>00115 
<a name="l00122"></a>00122     AXIS2_EXTERN <span class="keyword">const</span> axis2_char_t *AXIS2_CALL
<a name="l00123"></a>00123     <a class="code" href="group__axis2__svc__grp__ctx.html#g5706c6b6c2d6ad360b0fcae17e66e521">axis2_svc_grp_ctx_get_id</a>(
<a name="l00124"></a>00124         <span class="keyword">const</span> <a class="code" href="group__axis2__svc__grp__ctx.html#g340e0c5f75d6579013ff5768b37e4a07">axis2_svc_grp_ctx_t</a> * svc_grp_ctx,
<a name="l00125"></a>00125         <span class="keyword">const</span> <a class="code" href="structaxutil__env.html" title="Axis2 Environment struct.">axutil_env_t</a> * env);
<a name="l00126"></a>00126 
<a name="l00134"></a>00134     AXIS2_EXTERN axis2_status_t AXIS2_CALL
<a name="l00135"></a>00135     <a class="code" href="group__axis2__svc__grp__ctx.html#ga13372f182ee6a6e712b82268a1e19e7">axis2_svc_grp_ctx_set_id</a>(
<a name="l00136"></a>00136         <span class="keyword">struct</span> axis2_svc_grp_ctx *svc_grp_ctx,
<a name="l00137"></a>00137         <span class="keyword">const</span> <a class="code" href="structaxutil__env.html" title="Axis2 Environment struct.">axutil_env_t</a> * env,
<a name="l00138"></a>00138         <span class="keyword">const</span> axis2_char_t * <span class="keywordtype">id</span>);
<a name="l00139"></a>00139 
<a name="l00147"></a>00147     AXIS2_EXTERN <span class="keyword">struct </span>axis2_svc_ctx *AXIS2_CALL
<a name="l00148"></a>00148     <a class="code" href="group__axis2__svc__grp__ctx.html#gb928c64e7297cf73eabac7dd6c851ecd">axis2_svc_grp_ctx_get_svc_ctx</a>(
<a name="l00149"></a>00149         <span class="keyword">const</span> <a class="code" href="group__axis2__svc__grp__ctx.html#g340e0c5f75d6579013ff5768b37e4a07">axis2_svc_grp_ctx_t</a> * svc_grp_ctx,
<a name="l00150"></a>00150         <span class="keyword">const</span> <a class="code" href="structaxutil__env.html" title="Axis2 Environment struct.">axutil_env_t</a> * env,
<a name="l00151"></a>00151         <span class="keyword">const</span> axis2_char_t * svc_name);
<a name="l00152"></a>00152 
<a name="l00160"></a>00160     AXIS2_EXTERN axis2_status_t AXIS2_CALL
<a name="l00161"></a>00161     <a class="code" href="group__axis2__svc__grp__ctx.html#gd39cf31f9ed602c15a98b847072fcb3c">axis2_svc_grp_ctx_fill_svc_ctx_map</a>(
<a name="l00162"></a>00162         <span class="keyword">struct</span> axis2_svc_grp_ctx *svc_grp_ctx,
<a name="l00163"></a>00163         <span class="keyword">const</span> <a class="code" href="structaxutil__env.html" title="Axis2 Environment struct.">axutil_env_t</a> * env);
<a name="l00164"></a>00164 
<a name="l00172"></a>00172     AXIS2_EXTERN <span class="keyword">struct </span>axis2_svc_grp *AXIS2_CALL
<a name="l00173"></a>00173     <a class="code" href="group__axis2__svc__grp__ctx.html#g07609d72f69f20b13a8a6d9d9c7a51cc">axis2_svc_grp_ctx_get_svc_grp</a>(
<a name="l00174"></a>00174         <span class="keyword">const</span> <a class="code" href="group__axis2__svc__grp__ctx.html#g340e0c5f75d6579013ff5768b37e4a07">axis2_svc_grp_ctx_t</a> * svc_grp_ctx,
<a name="l00175"></a>00175         <span class="keyword">const</span> <a class="code" href="structaxutil__env.html" title="Axis2 Environment struct.">axutil_env_t</a> * env);
<a name="l00176"></a>00176 
<a name="l00183"></a>00183     AXIS2_EXTERN <a class="code" href="group__axutil__hash.html#gb2d7d14db2de92a101573f44421ac12a">axutil_hash_t</a> *AXIS2_CALL
<a name="l00184"></a>00184     <a class="code" href="group__axis2__svc__grp__ctx.html#g7c8027f1714d507296e9defc65defeb5">axis2_svc_grp_ctx_get_svc_ctx_map</a>(
<a name="l00185"></a>00185         <span class="keyword">const</span> <a class="code" href="group__axis2__svc__grp__ctx.html#g340e0c5f75d6579013ff5768b37e4a07">axis2_svc_grp_ctx_t</a> * svc_grp_ctx,
<a name="l00186"></a>00186         <span class="keyword">const</span> <a class="code" href="structaxutil__env.html" title="Axis2 Environment struct.">axutil_env_t</a> * env);
<a name="l00187"></a>00187 
<a name="l00190"></a>00190 <span class="preprocessor">#ifdef __cplusplus</span>
<a name="l00191"></a>00191 <span class="preprocessor"></span>}
<a name="l00192"></a>00192 <span class="preprocessor">#endif</span>
<a name="l00193"></a>00193 <span class="preprocessor"></span>
<a name="l00194"></a>00194 <span class="preprocessor">#endif                          </span><span class="comment">/* AXIS2_SVC_GRP_CTX_H */</span>
</pre></div><hr size="1"><address style="text-align: right;"><small>Generated on Fri Apr 17 11:49:42 2009 for Axis2/C by&nbsp;
<a href="http://www.doxygen.org/index.html">
<img src="doxygen.png" alt="doxygen" align="middle" border="0"></a> 1.5.3 </small></address>
</body>
</html>


<|start_filename|>xdocs/api/html/axutil__utils__defines_8h-source.html<|end_filename|>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html><head><meta http-equiv="Content-Type" content="text/html;charset=UTF-8">
<title>Axis2/C: axutil_utils_defines.h Source File</title>
<link href="doxygen.css" rel="stylesheet" type="text/css">
<link href="tabs.css" rel="stylesheet" type="text/css">
</head><body>
<!-- Generated by Doxygen 1.5.3 -->
<div class="tabs">
  <ul>
    <li><a href="index.html"><span>Main&nbsp;Page</span></a></li>
    <li><a href="modules.html"><span>Modules</span></a></li>
    <li><a href="annotated.html"><span>Classes</span></a></li>
    <li class="current"><a href="files.html"><span>Files</span></a></li>
    <li><a href="dirs.html"><span>Directories</span></a></li>
    <li><a href="pages.html"><span>Related&nbsp;Pages</span></a></li>
    <li><a href="examples.html"><span>Examples</span></a></li>
    <li>
      <form action="search.php" method="get">
        <table cellspacing="0" cellpadding="0" border="0">
          <tr>
            <td><label>&nbsp;<u>S</u>earch&nbsp;for&nbsp;</label></td>
            <td><input type="text" name="query" value="" size="20" accesskey="s"/></td>
          </tr>
        </table>
      </form>
    </li>
  </ul>
</div>
<div class="nav">
<a class="el" href="dir_f60961de8e5edc3b2658ef023e959e45.html">deploy</a>&nbsp;&raquo&nbsp;<a class="el" href="dir_6b4e91e54b7316b376882a6402adbf44.html">include</a>&nbsp;&raquo&nbsp;<a class="el" href="dir_df3a7695d5a9e696f30b948b566829e7.html">axis2-1.6.0</a></div>
<h1>axutil_utils_defines.h</h1><div class="fragment"><pre class="fragment"><a name="l00001"></a>00001 
<a name="l00002"></a>00002 <span class="comment">/*</span>
<a name="l00003"></a>00003 <span class="comment"> * Licensed to the Apache Software Foundation (ASF) under one or more</span>
<a name="l00004"></a>00004 <span class="comment"> * contributor license agreements.  See the NOTICE file distributed with</span>
<a name="l00005"></a>00005 <span class="comment"> * this work for additional information regarding copyright ownership.</span>
<a name="l00006"></a>00006 <span class="comment"> * The ASF licenses this file to You under the Apache License, Version 2.0</span>
<a name="l00007"></a>00007 <span class="comment"> * (the "License"); you may not use this file except in compliance with</span>
<a name="l00008"></a>00008 <span class="comment"> * the License.  You may obtain a copy of the License at</span>
<a name="l00009"></a>00009 <span class="comment"> *</span>
<a name="l00010"></a>00010 <span class="comment"> *      http://www.apache.org/licenses/LICENSE-2.0</span>
<a name="l00011"></a>00011 <span class="comment"> *</span>
<a name="l00012"></a>00012 <span class="comment"> * Unless required by applicable law or agreed to in writing, software</span>
<a name="l00013"></a>00013 <span class="comment"> * distributed under the License is distributed on an "AS IS" BASIS,</span>
<a name="l00014"></a>00014 <span class="comment"> * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.</span>
<a name="l00015"></a>00015 <span class="comment"> * See the License for the specific language governing permissions and</span>
<a name="l00016"></a>00016 <span class="comment"> * limitations under the License.</span>
<a name="l00017"></a>00017 <span class="comment"> */</span>
<a name="l00018"></a>00018 
<a name="l00019"></a>00019 <span class="preprocessor">#ifndef AXUTIL_UTILS_DEFINES_H</span>
<a name="l00020"></a>00020 <span class="preprocessor"></span><span class="preprocessor">#define AXUTIL_UTILS_DEFINES_H</span>
<a name="l00021"></a>00021 <span class="preprocessor"></span>
<a name="l00022"></a>00022 <span class="preprocessor">#include &lt;stddef.h&gt;</span>
<a name="l00023"></a>00023 
<a name="l00024"></a>00024 <span class="preprocessor">#if !defined(WIN32)</span>
<a name="l00025"></a>00025 <span class="preprocessor"></span><span class="preprocessor">#include &lt;stdint.h&gt;</span> 
<a name="l00026"></a>00026 <span class="preprocessor">#endif</span>
<a name="l00027"></a>00027 <span class="preprocessor"></span>
<a name="l00028"></a>00028 <span class="preprocessor">#ifdef __cplusplus</span>
<a name="l00029"></a>00029 <span class="preprocessor"></span><span class="keyword">extern</span> <span class="stringliteral">"C"</span>
<a name="l00030"></a>00030 {
<a name="l00031"></a>00031 <span class="preprocessor">#endif</span>
<a name="l00032"></a>00032 <span class="preprocessor"></span>
<a name="l00033"></a>00033 <span class="preprocessor">#if defined(WIN32) &amp;&amp; !defined(AXIS2_SKIP_INT_TYPEDEFS)</span>
<a name="l00034"></a>00034 <span class="preprocessor"></span>
<a name="l00037"></a>00037     <span class="keyword">typedef</span> <span class="keywordtype">unsigned</span> __int8 uint8_t;
<a name="l00038"></a>00038     <span class="keyword">typedef</span> __int8 int8_t;
<a name="l00039"></a>00039     <span class="keyword">typedef</span> <span class="keywordtype">unsigned</span> __int16 uint16_t;
<a name="l00040"></a>00040     <span class="keyword">typedef</span> __int16 int16_t;
<a name="l00041"></a>00041     <span class="keyword">typedef</span> <span class="keywordtype">unsigned</span> __int32 uint32_t;
<a name="l00042"></a>00042     <span class="keyword">typedef</span> __int32 int32_t;
<a name="l00043"></a>00043     <span class="keyword">typedef</span> <span class="keywordtype">unsigned</span> __int64 uint64_t;
<a name="l00044"></a>00044     <span class="keyword">typedef</span> __int64 int64_t;
<a name="l00045"></a>00045 <span class="preprocessor">#endif</span>
<a name="l00046"></a>00046 <span class="preprocessor"></span>
<a name="l00052"></a>00052 <span class="preprocessor">#if defined(WIN32)</span>
<a name="l00053"></a>00053 <span class="preprocessor"></span><span class="preprocessor">#define AXIS2_PRINTF_INT64_FORMAT_SPECIFIER "%I64d"</span>
<a name="l00054"></a>00054 <span class="preprocessor"></span><span class="preprocessor">#define AXIS2_PRINTF_UINT64_FORMAT_SPECIFIER "%I64u"</span>
<a name="l00055"></a>00055 <span class="preprocessor"></span><span class="preprocessor">#define AXIS2_PRINTF_INT32_FORMAT_SPECIFIER "%I32d"</span>
<a name="l00056"></a>00056 <span class="preprocessor"></span><span class="preprocessor">#define AXIS2_PRINTF_UINT32_FORMAT_SPECIFIER "%I32u"</span>
<a name="l00057"></a>00057 <span class="preprocessor"></span><span class="preprocessor">#else</span>
<a name="l00058"></a>00058 <span class="preprocessor"></span><span class="preprocessor">#if __WORDSIZE == 64</span>
<a name="l00059"></a>00059 <span class="preprocessor"></span><span class="preprocessor">#define AXIS2_PRINTF_INT64_FORMAT_SPECIFIER "%ld"</span>
<a name="l00060"></a>00060 <span class="preprocessor"></span><span class="preprocessor">#define AXIS2_PRINTF_UINT64_FORMAT_SPECIFIER "%lu"</span>
<a name="l00061"></a>00061 <span class="preprocessor"></span><span class="preprocessor">#else</span>
<a name="l00062"></a>00062 <span class="preprocessor"></span><span class="preprocessor">#define AXIS2_PRINTF_INT64_FORMAT_SPECIFIER "%lld"</span>
<a name="l00063"></a>00063 <span class="preprocessor"></span><span class="preprocessor">#define AXIS2_PRINTF_UINT64_FORMAT_SPECIFIER "%llu"</span>
<a name="l00064"></a>00064 <span class="preprocessor"></span><span class="preprocessor">#endif</span>
<a name="l00065"></a>00065 <span class="preprocessor"></span><span class="preprocessor">#define AXIS2_PRINTF_INT32_FORMAT_SPECIFIER "%d"</span>
<a name="l00066"></a>00066 <span class="preprocessor"></span><span class="preprocessor">#define AXIS2_PRINTF_UINT32_FORMAT_SPECIFIER "%u"</span>
<a name="l00067"></a>00067 <span class="preprocessor"></span><span class="preprocessor">#endif</span>
<a name="l00068"></a>00068 <span class="preprocessor"></span>
<a name="l00072"></a>00072     <span class="keyword">typedef</span> <span class="keywordtype">char</span> axis2_char_t;
<a name="l00073"></a>00073     <span class="keyword">typedef</span> <span class="keywordtype">int</span> axis2_bool_t;
<a name="l00074"></a>00074     <span class="keyword">typedef</span> <span class="keywordtype">int</span> axis2_status_t;
<a name="l00075"></a>00075     <span class="keyword">typedef</span> <span class="keywordtype">int</span> axis2_scope_t;
<a name="l00076"></a>00076     <span class="keyword">typedef</span> <span class="keywordtype">unsigned</span> <span class="keywordtype">int</span> axis2_ssize_t;
<a name="l00077"></a>00077     <span class="keyword">typedef</span> <span class="keywordtype">char</span> axis2_byte_t;
<a name="l00078"></a>00078         <span class="keyword">typedef</span> <span class="keywordtype">unsigned</span> <span class="keywordtype">char</span> axis2_unsigned_byte_t;
<a name="l00079"></a>00079 
<a name="l00080"></a>00080 <span class="preprocessor">#define AXIS2_STRING(s) s</span>
<a name="l00081"></a>00081 <span class="preprocessor"></span>
<a name="l00082"></a>00082 <span class="preprocessor">#define AXIS2_CHAR(c) c</span>
<a name="l00083"></a>00083 <span class="preprocessor"></span>
<a name="l00084"></a>00084 <span class="preprocessor">#define AXIS2_CRLF_LENGTH 2</span>
<a name="l00085"></a>00085 <span class="preprocessor"></span>
<a name="l00086"></a>00086 <span class="preprocessor">#define AXIS2_CRLF "\r\n"</span>
<a name="l00087"></a>00087 <span class="preprocessor"></span>
<a name="l00088"></a>00088     <span class="comment">/* These constant definitions should later be moved to platform dependant</span>
<a name="l00089"></a>00089 <span class="comment">     * files</span>
<a name="l00090"></a>00090 <span class="comment">     */</span>
<a name="l00091"></a>00091 
<a name="l00092"></a>00092 <span class="preprocessor">#define AXIS2_EOLN '\0'</span>
<a name="l00093"></a>00093 <span class="preprocessor"></span>
<a name="l00097"></a>00097 <span class="preprocessor">#define AXIS2_TRUE 1</span>
<a name="l00098"></a>00098 <span class="preprocessor"></span><span class="preprocessor">#define AXIS2_FALSE 0</span>
<a name="l00099"></a>00099 <span class="preprocessor"></span>
<a name="l00103"></a>00103 <span class="preprocessor">#if defined(WIN32) &amp;&amp; !defined(AXIS2_DECLARE_STATIC)</span>
<a name="l00104"></a>00104 <span class="preprocessor"></span><span class="preprocessor">#define AXIS2_EXPORT __declspec(dllexport)</span>
<a name="l00105"></a>00105 <span class="preprocessor"></span><span class="preprocessor">#else</span>
<a name="l00106"></a>00106 <span class="preprocessor"></span><span class="preprocessor">#define AXIS2_EXPORT</span>
<a name="l00107"></a>00107 <span class="preprocessor"></span><span class="preprocessor">#endif</span>
<a name="l00108"></a>00108 <span class="preprocessor"></span>
<a name="l00112"></a>00112 <span class="preprocessor">#if defined(WIN32)</span>
<a name="l00113"></a>00113 <span class="preprocessor"></span><span class="preprocessor">#define AXIS2_IMPORT __declspec(dllimport)</span>
<a name="l00114"></a>00114 <span class="preprocessor"></span><span class="preprocessor">#else</span>
<a name="l00115"></a>00115 <span class="preprocessor"></span><span class="preprocessor">#define AXIS2_IMPORT</span>
<a name="l00116"></a>00116 <span class="preprocessor"></span><span class="preprocessor">#endif</span>
<a name="l00117"></a>00117 <span class="preprocessor"></span>
<a name="l00121"></a>00121 <span class="preprocessor">#if defined(__GNUC__)</span>
<a name="l00122"></a>00122 <span class="preprocessor"></span><span class="preprocessor">#if defined(__i386)</span>
<a name="l00123"></a>00123 <span class="preprocessor"></span><span class="preprocessor">#define AXIS2_CALL __attribute__((cdecl))</span>
<a name="l00124"></a>00124 <span class="preprocessor"></span><span class="preprocessor">#define AXIS2_WUR __attribute__((warn_unused_result))</span>
<a name="l00125"></a>00125 <span class="preprocessor"></span><span class="preprocessor">#else</span>
<a name="l00126"></a>00126 <span class="preprocessor"></span><span class="preprocessor">#define AXIS2_CALL</span>
<a name="l00127"></a>00127 <span class="preprocessor"></span><span class="preprocessor">#define AXIS2_WUR</span>
<a name="l00128"></a>00128 <span class="preprocessor"></span>
<a name="l00129"></a>00129 
<a name="l00130"></a>00130 <span class="preprocessor">#endif</span>
<a name="l00131"></a>00131 <span class="preprocessor"></span><span class="preprocessor">#else</span>
<a name="l00132"></a>00132 <span class="preprocessor"></span><span class="preprocessor">#if defined(__unix)</span>
<a name="l00133"></a>00133 <span class="preprocessor"></span><span class="preprocessor">#define AXIS2_CALL</span>
<a name="l00134"></a>00134 <span class="preprocessor"></span><span class="preprocessor">#define AXIS2_WUR</span>
<a name="l00135"></a>00135 <span class="preprocessor"></span>
<a name="l00136"></a>00136 
<a name="l00137"></a>00137 <span class="preprocessor">#else                           </span><span class="comment">/* WIN32 */</span>
<a name="l00138"></a>00138 <span class="preprocessor">#define AXIS2_CALL __stdcall</span>
<a name="l00139"></a>00139 <span class="preprocessor"></span><span class="preprocessor">#define AXIS2_WUR</span>
<a name="l00140"></a>00140 <span class="preprocessor"></span><span class="preprocessor">#endif</span>
<a name="l00141"></a>00141 <span class="preprocessor"></span><span class="preprocessor">#endif</span>
<a name="l00142"></a>00142 <span class="preprocessor"></span><span class="preprocessor">#define AXIS2_THREAD_FUNC AXIS2_CALL</span>
<a name="l00143"></a>00143 <span class="preprocessor"></span>
<a name="l00144"></a>00144 
<a name="l00145"></a>00145 <span class="preprocessor">#ifdef DOXYGEN</span>
<a name="l00146"></a>00146 <span class="preprocessor"></span>
<a name="l00147"></a>00147     <span class="comment">/* define these just so doxygen documents them */</span>
<a name="l00148"></a>00148 
<a name="l00160"></a>00160 <span class="preprocessor"># define AXIS2_DECLARE_STATIC</span>
<a name="l00161"></a>00161 <span class="preprocessor"></span>
<a name="l00168"></a>00168 <span class="preprocessor"># define AXIS2_DECLARE_EXPORT</span>
<a name="l00169"></a>00169 <span class="preprocessor"></span>
<a name="l00170"></a>00170 <span class="preprocessor">#endif                          </span><span class="comment">/* def DOXYGEN */</span>
<a name="l00171"></a>00171 
<a name="l00172"></a>00172 <span class="preprocessor">#if !defined(WIN32)</span>
<a name="l00173"></a>00173 <span class="preprocessor"></span>
<a name="l00186"></a>00186 <span class="preprocessor">#define AXIS2_EXTERN</span>
<a name="l00187"></a>00187 <span class="preprocessor"></span>
<a name="l00196"></a>00196 <span class="preprocessor">#define AXIS2_DECLARE_NONSTD(type)     type</span>
<a name="l00197"></a>00197 <span class="preprocessor"></span>
<a name="l00206"></a>00206 <span class="preprocessor">#define AXIS2_DECLARE_DATA</span>
<a name="l00207"></a>00207 <span class="preprocessor"></span>
<a name="l00208"></a>00208 <span class="preprocessor">#elif defined(AXIS2_DECLARE_STATIC)</span>
<a name="l00209"></a>00209 <span class="preprocessor"></span><span class="preprocessor">#define AXIS2_EXTERN</span>
<a name="l00210"></a>00210 <span class="preprocessor"></span><span class="preprocessor">#define AXIS2_EXTERN_NONSTD</span>
<a name="l00211"></a>00211 <span class="preprocessor"></span><span class="preprocessor">#define AXIS2_DECLARE_DATA</span>
<a name="l00212"></a>00212 <span class="preprocessor"></span><span class="preprocessor">#elif defined(AXIS2_DECLARE_EXPORT)</span>
<a name="l00213"></a>00213 <span class="preprocessor"></span><span class="preprocessor">#define AXIS2_EXTERN                    AXIS2_EXPORT</span>
<a name="l00214"></a>00214 <span class="preprocessor"></span><span class="preprocessor">#define AXIS2_EXTERN_NONSTD             AXIS2_EXPORT</span>
<a name="l00215"></a>00215 <span class="preprocessor"></span><span class="preprocessor">#define AXIS2_DECLARE_DATA</span>
<a name="l00216"></a>00216 <span class="preprocessor"></span><span class="preprocessor">#else</span>
<a name="l00217"></a>00217 <span class="preprocessor"></span><span class="preprocessor">#define AXIS2_EXTERN                    AXIS2_IMPORT</span>
<a name="l00218"></a>00218 <span class="preprocessor"></span><span class="preprocessor">#define AXIS2_EXTERN_NONSTD             AXIS2_IMPORT</span>
<a name="l00219"></a>00219 <span class="preprocessor"></span><span class="preprocessor">#define AXIS2_DECLARE_DATA</span>
<a name="l00220"></a>00220 <span class="preprocessor"></span><span class="preprocessor">#endif</span>
<a name="l00221"></a>00221 <span class="preprocessor"></span>
<a name="l00222"></a>00222 <span class="preprocessor">#ifdef __cplusplus</span>
<a name="l00223"></a>00223 <span class="preprocessor"></span>}
<a name="l00224"></a>00224 <span class="preprocessor">#endif</span>
<a name="l00225"></a>00225 <span class="preprocessor"></span>
<a name="l00226"></a>00226 <span class="preprocessor">#endif                          </span><span class="comment">/* AXIS2_UTILS_DEFINES_H */</span>
</pre></div><hr size="1"><address style="text-align: right;"><small>Generated on Fri Apr 17 11:49:43 2009 for Axis2/C by&nbsp;
<a href="http://www.doxygen.org/index.html">
<img src="doxygen.png" alt="doxygen" align="middle" border="0"></a> 1.5.3 </small></address>
</body>
</html>


<|start_filename|>xdocs/api/html/group__axutil__env.html<|end_filename|>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html><head><meta http-equiv="Content-Type" content="text/html;charset=UTF-8">
<title>Axis2/C: environment</title>
<link href="doxygen.css" rel="stylesheet" type="text/css">
<link href="tabs.css" rel="stylesheet" type="text/css">
</head><body>
<!-- Generated by Doxygen 1.5.3 -->
<div class="tabs">
  <ul>
    <li><a href="index.html"><span>Main&nbsp;Page</span></a></li>
    <li><a href="modules.html"><span>Modules</span></a></li>
    <li><a href="annotated.html"><span>Classes</span></a></li>
    <li><a href="files.html"><span>Files</span></a></li>
    <li><a href="dirs.html"><span>Directories</span></a></li>
    <li><a href="pages.html"><span>Related&nbsp;Pages</span></a></li>
    <li><a href="examples.html"><span>Examples</span></a></li>
    <li>
      <form action="search.php" method="get">
        <table cellspacing="0" cellpadding="0" border="0">
          <tr>
            <td><label>&nbsp;<u>S</u>earch&nbsp;for&nbsp;</label></td>
            <td><input type="text" name="query" value="" size="20" accesskey="s"/></td>
          </tr>
        </table>
      </form>
    </li>
  </ul>
</div>
<h1>environment<br>
<small>
[<a class="el" href="group__axis2__util.html">utilities</a>]</small>
</h1><table border="0" cellpadding="0" cellspacing="0">
<tr><td></td></tr>
<tr><td colspan="2"><br><h2>Classes</h2></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top">struct &nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="structaxutil__env.html">axutil_env</a></td></tr>

<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Axis2 Environment struct.  <a href="structaxutil__env.html#_details">More...</a><br></td></tr>
<tr><td colspan="2"><br><h2>Defines</h2></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="g447fa899e815a5ead66d7d11b3ec9b64"></a><!-- doxytag: member="axutil_env::AXIS_ENV_FREE_LOG" ref="g447fa899e815a5ead66d7d11b3ec9b64" args="" -->
#define&nbsp;</td><td class="memItemRight" valign="bottom"><b>AXIS_ENV_FREE_LOG</b>&nbsp;&nbsp;&nbsp;0x1</td></tr>

<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="g7e82bfc152825a777665e7acf05a682f"></a><!-- doxytag: member="axutil_env::AXIS_ENV_FREE_ERROR" ref="g7e82bfc152825a777665e7acf05a682f" args="" -->
#define&nbsp;</td><td class="memItemRight" valign="bottom"><b>AXIS_ENV_FREE_ERROR</b>&nbsp;&nbsp;&nbsp;0x2</td></tr>

<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="g79f0bf625d0f1496c0bfba6089b8b158"></a><!-- doxytag: member="axutil_env::AXIS_ENV_FREE_THREADPOOL" ref="g79f0bf625d0f1496c0bfba6089b8b158" args="" -->
#define&nbsp;</td><td class="memItemRight" valign="bottom"><b>AXIS_ENV_FREE_THREADPOOL</b>&nbsp;&nbsp;&nbsp;0x4</td></tr>

<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="g82b7c5dfb8ae2c8f79565619d3f832ee"></a><!-- doxytag: member="axutil_env::AXIS2_ENV_CHECK" ref="g82b7c5dfb8ae2c8f79565619d3f832ee" args="(env, error_return)" -->
#define&nbsp;</td><td class="memItemRight" valign="bottom"><b>AXIS2_ENV_CHECK</b>(env, error_return)</td></tr>

<tr><td colspan="2"><br><h2>Typedefs</h2></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top">typedef struct <a class="el" href="structaxutil__env.html">axutil_env</a>&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__axutil__env.html#gd1083f9198686518871a41ce0e08cd0a">axutil_env_t</a></td></tr>

<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Axis2 Environment struct.  <a href="#gd1083f9198686518871a41ce0e08cd0a"></a><br></td></tr>
<tr><td colspan="2"><br><h2>Functions</h2></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top">AXIS2_EXTERN <br>
<a class="el" href="structaxutil__env.html">axutil_env_t</a> *&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__axutil__env.html#g136fef9fc5d4e435f40a0949375d324d">axutil_env_create</a> (<a class="el" href="structaxutil__allocator.html">axutil_allocator_t</a> *allocator)</td></tr>

<tr><td class="memItemLeft" nowrap align="right" valign="top">AXIS2_EXTERN <br>
<a class="el" href="structaxutil__env.html">axutil_env_t</a> *&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__axutil__env.html#g2dc8a2c80be26e619410e196725a9599">axutil_env_create_all</a> (const axis2_char_t *log_file, const <a class="el" href="group__axutil__log.html#g0c477f6f8724a6258a9caaabfcf2c482">axutil_log_levels_t</a> log_level)</td></tr>

<tr><td class="memItemLeft" nowrap align="right" valign="top">AXIS2_EXTERN <br>
<a class="el" href="structaxutil__env.html">axutil_env_t</a> *&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__axutil__env.html#gbab7fef475986db1dfcf5c3cec7e5b6b">axutil_env_create_with_error</a> (<a class="el" href="structaxutil__allocator.html">axutil_allocator_t</a> *allocator, <a class="el" href="structaxutil__error.html">axutil_error_t</a> *error)</td></tr>

<tr><td class="memItemLeft" nowrap align="right" valign="top">AXIS2_EXTERN <br>
<a class="el" href="structaxutil__env.html">axutil_env_t</a> *&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__axutil__env.html#g69b71ca4f32dffb546a225e8f018256e">axutil_env_create_with_error_log</a> (<a class="el" href="structaxutil__allocator.html">axutil_allocator_t</a> *allocator, <a class="el" href="structaxutil__error.html">axutil_error_t</a> *error, <a class="el" href="structaxutil__log.html">axutil_log_t</a> *log)</td></tr>

<tr><td class="memItemLeft" nowrap align="right" valign="top">AXIS2_EXTERN <br>
<a class="el" href="structaxutil__env.html">axutil_env_t</a> *&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__axutil__env.html#g354311dd06dcbb5cb4e2d6ec2532e8a6">axutil_env_create_with_error_log_thread_pool</a> (<a class="el" href="structaxutil__allocator.html">axutil_allocator_t</a> *allocator, <a class="el" href="structaxutil__error.html">axutil_error_t</a> *error, <a class="el" href="structaxutil__log.html">axutil_log_t</a> *log, axutil_thread_pool_t *pool)</td></tr>

<tr><td class="memItemLeft" nowrap align="right" valign="top">AXIS2_EXTERN <br>
axis2_status_t&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__axutil__env.html#g3a5d8481e405b8b63bd05df9b33b9ccd">axutil_env_enable_log</a> (<a class="el" href="structaxutil__env.html">axutil_env_t</a> *env, axis2_bool_t enable)</td></tr>

<tr><td class="memItemLeft" nowrap align="right" valign="top">AXIS2_EXTERN <br>
axis2_status_t&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__axutil__env.html#g14eb39c983da990a3cdc5d2505a3ab31">axutil_env_check_status</a> (const <a class="el" href="structaxutil__env.html">axutil_env_t</a> *env)</td></tr>

<tr><td class="memItemLeft" nowrap align="right" valign="top">AXIS2_EXTERN void&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__axutil__env.html#g35511f188ef8470bec29c255e84217db">axutil_env_free</a> (<a class="el" href="structaxutil__env.html">axutil_env_t</a> *env)</td></tr>

<tr><td class="memItemLeft" nowrap align="right" valign="top">AXIS2_EXTERN void&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__axutil__env.html#g538c867378b066cd37390a8a0589f6cb">axutil_env_free_masked</a> (<a class="el" href="structaxutil__env.html">axutil_env_t</a> *env, char mask)</td></tr>

<tr><td class="memItemLeft" nowrap align="right" valign="top">AXIS2_EXTERN <br>
axis2_status_t&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__axutil__env.html#g5ea411964e441ce76a071a1ac3a08a78">axutil_env_increment_ref</a> (<a class="el" href="structaxutil__env.html">axutil_env_t</a> *env)</td></tr>

</table>
<hr><h2>Typedef Documentation</h2>
<a class="anchor" name="gd1083f9198686518871a41ce0e08cd0a"></a><!-- doxytag: member="axutil_env.h::axutil_env_t" ref="gd1083f9198686518871a41ce0e08cd0a" args="" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">typedef struct <a class="el" href="structaxutil__env.html">axutil_env</a>
     <a class="el" href="structaxutil__env.html">axutil_env_t</a>          </td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
Axis2 Environment struct. 
<p>
Environment acts as a container for error, log, memory allocator and threading routines 
</div>
</div><p>
<hr><h2>Function Documentation</h2>
<a class="anchor" name="g14eb39c983da990a3cdc5d2505a3ab31"></a><!-- doxytag: member="axutil_env.h::axutil_env_check_status" ref="g14eb39c983da990a3cdc5d2505a3ab31" args="(const axutil_env_t *env)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">AXIS2_EXTERN axis2_status_t axutil_env_check_status           </td>
          <td>(</td>
          <td class="paramtype">const <a class="el" href="structaxutil__env.html">axutil_env_t</a> *&nbsp;</td>
          <td class="paramname"> <em>env</em>          </td>
          <td>&nbsp;)&nbsp;</td>
          <td width="100%"></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
Checks the status code of environment stored within error struct. <dl compact><dt><b>Parameters:</b></dt><dd>
  <table border="0" cellspacing="2" cellpadding="0">
    <tr><td valign="top"></td><td valign="top"><em>env</em>&nbsp;</td><td>pointer to environment struct </td></tr>
  </table>
</dl>
<dl class="return" compact><dt><b>Returns:</b></dt><dd>error status code or AXIS2_CRITICAL_FAILURE in case of a failure </dd></dl>

</div>
</div><p>
<a class="anchor" name="g136fef9fc5d4e435f40a0949375d324d"></a><!-- doxytag: member="axutil_env.h::axutil_env_create" ref="g136fef9fc5d4e435f40a0949375d324d" args="(axutil_allocator_t *allocator)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">AXIS2_EXTERN <a class="el" href="structaxutil__env.html">axutil_env_t</a>* axutil_env_create           </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="structaxutil__allocator.html">axutil_allocator_t</a> *&nbsp;</td>
          <td class="paramname"> <em>allocator</em>          </td>
          <td>&nbsp;)&nbsp;</td>
          <td width="100%"></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
Creates an environment struct. Would include a default log and error structs within the created environment. By default, logging would be enabled and the default log level would be debug. <dl compact><dt><b>Parameters:</b></dt><dd>
  <table border="0" cellspacing="2" cellpadding="0">
    <tr><td valign="top"></td><td valign="top"><em>allocator</em>&nbsp;</td><td>pointer to an instance of allocator struct. Must not be NULL </td></tr>
  </table>
</dl>
<dl class="return" compact><dt><b>Returns:</b></dt><dd>pointer to the newly created environment struct </dd></dl>

</div>
</div><p>
<a class="anchor" name="g2dc8a2c80be26e619410e196725a9599"></a><!-- doxytag: member="axutil_env.h::axutil_env_create_all" ref="g2dc8a2c80be26e619410e196725a9599" args="(const axis2_char_t *log_file, const axutil_log_levels_t log_level)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">AXIS2_EXTERN <a class="el" href="structaxutil__env.html">axutil_env_t</a>* axutil_env_create_all           </td>
          <td>(</td>
          <td class="paramtype">const axis2_char_t *&nbsp;</td>
          <td class="paramname"> <em>log_file</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const <a class="el" href="group__axutil__log.html#g0c477f6f8724a6258a9caaabfcf2c482">axutil_log_levels_t</a>&nbsp;</td>
          <td class="paramname"> <em>log_level</em></td><td>&nbsp;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td><td width="100%"></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
Creates an environment struct with all of its default parts, that is an allocator, error, log and a thread pool. <dl compact><dt><b>Parameters:</b></dt><dd>
  <table border="0" cellspacing="2" cellpadding="0">
    <tr><td valign="top"></td><td valign="top"><em>log_file</em>&nbsp;</td><td>name of the log file. If NULL, a default log would be created. </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>log_level</em>&nbsp;</td><td>log level to be used. If not valid, debug would be used as the default log level </td></tr>
  </table>
</dl>
<dl class="return" compact><dt><b>Returns:</b></dt><dd>pointer to the newly created environment struct </dd></dl>

</div>
</div><p>
<a class="anchor" name="gbab7fef475986db1dfcf5c3cec7e5b6b"></a><!-- doxytag: member="axutil_env.h::axutil_env_create_with_error" ref="gbab7fef475986db1dfcf5c3cec7e5b6b" args="(axutil_allocator_t *allocator, axutil_error_t *error)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">AXIS2_EXTERN <a class="el" href="structaxutil__env.html">axutil_env_t</a>* axutil_env_create_with_error           </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="structaxutil__allocator.html">axutil_allocator_t</a> *&nbsp;</td>
          <td class="paramname"> <em>allocator</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype"><a class="el" href="structaxutil__error.html">axutil_error_t</a> *&nbsp;</td>
          <td class="paramname"> <em>error</em></td><td>&nbsp;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td><td width="100%"></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
Creates an environment struct with given error struct. <dl compact><dt><b>Parameters:</b></dt><dd>
  <table border="0" cellspacing="2" cellpadding="0">
    <tr><td valign="top"></td><td valign="top"><em>allocator</em>&nbsp;</td><td>pointer to an instance of allocator struct. Must not be NULL </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>error</em>&nbsp;</td><td>pointer to an instance of error struct. Must not be NULL </td></tr>
  </table>
</dl>
<dl class="return" compact><dt><b>Returns:</b></dt><dd>pointer to the newly created environment struct </dd></dl>

</div>
</div><p>
<a class="anchor" name="g69b71ca4f32dffb546a225e8f018256e"></a><!-- doxytag: member="axutil_env.h::axutil_env_create_with_error_log" ref="g69b71ca4f32dffb546a225e8f018256e" args="(axutil_allocator_t *allocator, axutil_error_t *error, axutil_log_t *log)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">AXIS2_EXTERN <a class="el" href="structaxutil__env.html">axutil_env_t</a>* axutil_env_create_with_error_log           </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="structaxutil__allocator.html">axutil_allocator_t</a> *&nbsp;</td>
          <td class="paramname"> <em>allocator</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype"><a class="el" href="structaxutil__error.html">axutil_error_t</a> *&nbsp;</td>
          <td class="paramname"> <em>error</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype"><a class="el" href="structaxutil__log.html">axutil_log_t</a> *&nbsp;</td>
          <td class="paramname"> <em>log</em></td><td>&nbsp;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td><td width="100%"></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
Creates an environment struct with given error and log structs. <dl compact><dt><b>Parameters:</b></dt><dd>
  <table border="0" cellspacing="2" cellpadding="0">
    <tr><td valign="top"></td><td valign="top"><em>allocator</em>&nbsp;</td><td>pointer to an instance of allocator struct. Must not be NULL </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>error</em>&nbsp;</td><td>pointer to an instance of error struct. Must not be NULL </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>log</em>&nbsp;</td><td>pointer to an instance of log struct. If NULL it would be assumed that logging is disabled. </td></tr>
  </table>
</dl>
<dl class="return" compact><dt><b>Returns:</b></dt><dd>pointer to the newly created environment struct </dd></dl>

</div>
</div><p>
<a class="anchor" name="g354311dd06dcbb5cb4e2d6ec2532e8a6"></a><!-- doxytag: member="axutil_env.h::axutil_env_create_with_error_log_thread_pool" ref="g354311dd06dcbb5cb4e2d6ec2532e8a6" args="(axutil_allocator_t *allocator, axutil_error_t *error, axutil_log_t *log, axutil_thread_pool_t *pool)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">AXIS2_EXTERN <a class="el" href="structaxutil__env.html">axutil_env_t</a>* axutil_env_create_with_error_log_thread_pool           </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="structaxutil__allocator.html">axutil_allocator_t</a> *&nbsp;</td>
          <td class="paramname"> <em>allocator</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype"><a class="el" href="structaxutil__error.html">axutil_error_t</a> *&nbsp;</td>
          <td class="paramname"> <em>error</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype"><a class="el" href="structaxutil__log.html">axutil_log_t</a> *&nbsp;</td>
          <td class="paramname"> <em>log</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">axutil_thread_pool_t *&nbsp;</td>
          <td class="paramname"> <em>pool</em></td><td>&nbsp;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td><td width="100%"></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
Creates an environment struct with given error, log and thread pool structs. <dl compact><dt><b>Parameters:</b></dt><dd>
  <table border="0" cellspacing="2" cellpadding="0">
    <tr><td valign="top"></td><td valign="top"><em>allocator</em>&nbsp;</td><td>pointer to an instance of allocator struct. Must not be NULL </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>error</em>&nbsp;</td><td>pointer to an instance of error struct. Must not be NULL </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>log</em>&nbsp;</td><td>pointer to an instance of log struct. If NULL it would be assumed that logging is disabled. </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>pool</em>&nbsp;</td><td>pointer to an instance of thread_pool. Must not be NULL </td></tr>
  </table>
</dl>
<dl class="return" compact><dt><b>Returns:</b></dt><dd>pointer to the newly created environment struct </dd></dl>

</div>
</div><p>
<a class="anchor" name="g3a5d8481e405b8b63bd05df9b33b9ccd"></a><!-- doxytag: member="axutil_env.h::axutil_env_enable_log" ref="g3a5d8481e405b8b63bd05df9b33b9ccd" args="(axutil_env_t *env, axis2_bool_t enable)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">AXIS2_EXTERN axis2_status_t axutil_env_enable_log           </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="structaxutil__env.html">axutil_env_t</a> *&nbsp;</td>
          <td class="paramname"> <em>env</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">axis2_bool_t&nbsp;</td>
          <td class="paramname"> <em>enable</em></td><td>&nbsp;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td><td width="100%"></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
Enable or disable logging. <dl compact><dt><b>Parameters:</b></dt><dd>
  <table border="0" cellspacing="2" cellpadding="0">
    <tr><td valign="top"></td><td valign="top"><em>env</em>&nbsp;</td><td>pointer to environment struct </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>enable</em>&nbsp;</td><td>AXIS2_TRUE to enable logging and AXIS2_FALSE to disable logging </td></tr>
  </table>
</dl>
<dl class="return" compact><dt><b>Returns:</b></dt><dd>AXIS2_SUCCESS on success else AXIS2_FAILURE </dd></dl>

</div>
</div><p>
<a class="anchor" name="g35511f188ef8470bec29c255e84217db"></a><!-- doxytag: member="axutil_env.h::axutil_env_free" ref="g35511f188ef8470bec29c255e84217db" args="(axutil_env_t *env)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">AXIS2_EXTERN void axutil_env_free           </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="structaxutil__env.html">axutil_env_t</a> *&nbsp;</td>
          <td class="paramname"> <em>env</em>          </td>
          <td>&nbsp;)&nbsp;</td>
          <td width="100%"></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
Frees an environment struct instance. <dl compact><dt><b>Parameters:</b></dt><dd>
  <table border="0" cellspacing="2" cellpadding="0">
    <tr><td valign="top"></td><td valign="top"><em>env</em>&nbsp;</td><td>pointer to environment struct instance to be freed. </td></tr>
  </table>
</dl>
<dl class="return" compact><dt><b>Returns:</b></dt><dd>void </dd></dl>

</div>
</div><p>
<a class="anchor" name="g538c867378b066cd37390a8a0589f6cb"></a><!-- doxytag: member="axutil_env.h::axutil_env_free_masked" ref="g538c867378b066cd37390a8a0589f6cb" args="(axutil_env_t *env, char mask)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">AXIS2_EXTERN void axutil_env_free_masked           </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="structaxutil__env.html">axutil_env_t</a> *&nbsp;</td>
          <td class="paramname"> <em>env</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">char&nbsp;</td>
          <td class="paramname"> <em>mask</em></td><td>&nbsp;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td><td width="100%"></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
Frees the environment components based on the mask. <dl compact><dt><b>Parameters:</b></dt><dd>
  <table border="0" cellspacing="2" cellpadding="0">
    <tr><td valign="top"></td><td valign="top"><em>env</em>&nbsp;</td><td>pointer to environment struct to be freed </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>mask</em>&nbsp;</td><td>bit pattern indicating which components of the env struct are to be freed AXIS_ENV_FREE_LOG - Frees the log AXIS_ENV_FREE_ERROR - Frees the error AXIS_ENV_FREE_THREADPOOL - Frees the thread pool You can use combinations to free multiple components as well E.g : AXIS_ENV_FREE_LOG | AXIS_ENV_FREE_ERROR frees both log and error, but not the thread pool </td></tr>
  </table>
</dl>
<dl class="return" compact><dt><b>Returns:</b></dt><dd>void </dd></dl>

</div>
</div><p>
<a class="anchor" name="g5ea411964e441ce76a071a1ac3a08a78"></a><!-- doxytag: member="axutil_env.h::axutil_env_increment_ref" ref="g5ea411964e441ce76a071a1ac3a08a78" args="(axutil_env_t *env)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">AXIS2_EXTERN axis2_status_t axutil_env_increment_ref           </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="structaxutil__env.html">axutil_env_t</a> *&nbsp;</td>
          <td class="paramname"> <em>env</em>          </td>
          <td>&nbsp;)&nbsp;</td>
          <td width="100%"></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
Incrent the reference count.This is used when objects are created using this env and keeping this for future use. <dl compact><dt><b>Parameters:</b></dt><dd>
  <table border="0" cellspacing="2" cellpadding="0">
    <tr><td valign="top"></td><td valign="top"><em>env</em>&nbsp;</td><td>pointer to environment struct instance to be freed. </td></tr>
  </table>
</dl>
<dl class="return" compact><dt><b>Returns:</b></dt><dd>void </dd></dl>

</div>
</div><p>
<hr size="1"><address style="text-align: right;"><small>Generated on Fri Apr 17 11:49:46 2009 for Axis2/C by&nbsp;
<a href="http://www.doxygen.org/index.html">
<img src="doxygen.png" alt="doxygen" align="middle" border="0"></a> 1.5.3 </small></address>
</body>
</html>


<|start_filename|>neethi/src/secpolicy/builder/bootstrap_policy_builder.c<|end_filename|>
/*
 * 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.
 */

#include <rp_bootstrap_policy_builder.h>
#include <neethi_operator.h>
#include <neethi_policy.h>
#include <neethi_exactlyone.h>
#include <neethi_all.h>
#include <neethi_engine.h>

AXIS2_EXTERN neethi_assertion_t *AXIS2_CALL
rp_bootstrap_policy_builder_build(
    const axutil_env_t *env,
    axiom_node_t *node,
    axiom_element_t *element)
{
    neethi_policy_t *policy = NULL;
    axiom_node_t *child_node = NULL;
    axiom_element_t *child_element = NULL;
    neethi_assertion_t *assertion = NULL;

    child_node = axiom_node_get_first_element(node, env);
    if (!child_node)
    {
        return NULL;
    }

    if (axiom_node_get_node_type(child_node, env) == AXIOM_ELEMENT)
    {
        child_element =
            (axiom_element_t *) axiom_node_get_data_element(child_node, env);
        if (child_element)
        {
            policy = neethi_engine_get_policy(env, child_node, child_element);
            if (!policy)
            {
                return NULL;
            }
            assertion = neethi_assertion_create_with_args(env,
                                                  NULL, /*this policy should not be deleted*/
                                                  policy,
                                                  ASSERTION_TYPE_BOOTSTRAP_POLICY);
            return assertion;
        }
        else
            return NULL;
    }
    else
        return NULL;
}


<|start_filename|>xdocs/api/html/axis2__http__transport__utils_8h.html<|end_filename|>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html><head><meta http-equiv="Content-Type" content="text/html;charset=UTF-8">
<title>Axis2/C: axis2_http_transport_utils.h File Reference</title>
<link href="doxygen.css" rel="stylesheet" type="text/css">
<link href="tabs.css" rel="stylesheet" type="text/css">
</head><body>
<!-- Generated by Doxygen 1.5.3 -->
<div class="tabs">
  <ul>
    <li><a href="index.html"><span>Main&nbsp;Page</span></a></li>
    <li><a href="modules.html"><span>Modules</span></a></li>
    <li><a href="annotated.html"><span>Classes</span></a></li>
    <li class="current"><a href="files.html"><span>Files</span></a></li>
    <li><a href="dirs.html"><span>Directories</span></a></li>
    <li><a href="pages.html"><span>Related&nbsp;Pages</span></a></li>
    <li><a href="examples.html"><span>Examples</span></a></li>
    <li>
      <form action="search.php" method="get">
        <table cellspacing="0" cellpadding="0" border="0">
          <tr>
            <td><label>&nbsp;<u>S</u>earch&nbsp;for&nbsp;</label></td>
            <td><input type="text" name="query" value="" size="20" accesskey="s"/></td>
          </tr>
        </table>
      </form>
    </li>
  </ul>
</div>
<div class="nav">
<a class="el" href="dir_f60961de8e5edc3b2658ef023e959e45.html">deploy</a>&nbsp;&raquo&nbsp;<a class="el" href="dir_6b4e91e54b7316b376882a6402adbf44.html">include</a>&nbsp;&raquo&nbsp;<a class="el" href="dir_df3a7695d5a9e696f30b948b566829e7.html">axis2-1.6.0</a></div>
<h1>axis2_http_transport_utils.h File Reference</h1>axis2 HTTP Transport Utility functions This file includes functions that handles soap and rest request that comes to the engine via HTTP protocol. <a href="#_details">More...</a>
<p>
<code>#include &lt;axis2_const.h&gt;</code><br>
<code>#include &lt;<a class="el" href="axis2__defines_8h-source.html">axis2_defines.h</a>&gt;</code><br>
<code>#include &lt;<a class="el" href="axutil__env_8h-source.html">axutil_env.h</a>&gt;</code><br>
<code>#include &lt;axiom_stax_builder.h&gt;</code><br>
<code>#include &lt;<a class="el" href="axis2__msg__ctx_8h-source.html">axis2_msg_ctx.h</a>&gt;</code><br>
<code>#include &lt;<a class="el" href="axis2__conf__ctx_8h-source.html">axis2_conf_ctx.h</a>&gt;</code><br>
<code>#include &lt;<a class="el" href="axutil__hash_8h-source.html">axutil_hash.h</a>&gt;</code><br>
<code>#include &lt;axiom_element.h&gt;</code><br>
<code>#include &lt;axutil_stream.h&gt;</code><br>
<code>#include &lt;<a class="el" href="axiom__soap__envelope_8h-source.html">axiom_soap_envelope.h</a>&gt;</code><br>
<code>#include &lt;<a class="el" href="axutil__http__chunked__stream_8h-source.html">axutil_http_chunked_stream.h</a>&gt;</code><br>
<code>#include &lt;<a class="el" href="axis2__http__out__transport__info_8h-source.html">axis2_http_out_transport_info.h</a>&gt;</code><br>
<code>#include &lt;<a class="el" href="axutil__url_8h-source.html">axutil_url.h</a>&gt;</code><br>
<code>#include &lt;<a class="el" href="axiom__mtom__sending__callback_8h-source.html">axiom_mtom_sending_callback.h</a>&gt;</code><br>

<p>
<a href="axis2__http__transport__utils_8h-source.html">Go to the source code of this file.</a><table border="0" cellpadding="0" cellspacing="0">
<tr><td></td></tr>
<tr><td colspan="2"><br><h2>Classes</h2></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top">struct &nbsp;</td><td class="memItemRight" valign="bottom"><b>axis2_http_transport_in</b></td></tr>

<tr><td class="memItemLeft" nowrap align="right" valign="top">struct &nbsp;</td><td class="memItemRight" valign="bottom"><b>axis2_http_transport_out</b></td></tr>

<tr><td class="memItemLeft" nowrap align="right" valign="top">enum &nbsp;</td><td class="memItemRight" valign="bottom"><b>axis2_http_method_types</b> { <br>
&nbsp;&nbsp;<b>AXIS2_HTTP_METHOD_GET</b> =  0, 
<b>AXIS2_HTTP_METHOD_POST</b>, 
<b>AXIS2_HTTP_METHOD_HEAD</b>, 
<b>AXIS2_HTTP_METHOD_PUT</b>, 
<br>
&nbsp;&nbsp;<b>AXIS2_HTTP_METHOD_DELETE</b>
<br>
 }</td></tr>

<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="e9529e4b3079fb39c0a38b3803a9d763"></a><!-- doxytag: member="axis2_http_transport_utils.h::axis2_http_method_types_t" ref="e9529e4b3079fb39c0a38b3803a9d763" args="" -->
typedef enum <br>
axis2_http_method_types&nbsp;</td><td class="memItemRight" valign="bottom"><b>axis2_http_method_types_t</b></td></tr>

<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="cd49c497384ec984139840239eafc4f0"></a><!-- doxytag: member="axis2_http_transport_utils.h::axis2_http_transport_in_t" ref="cd49c497384ec984139840239eafc4f0" args="" -->
typedef struct <br>
axis2_http_transport_in&nbsp;</td><td class="memItemRight" valign="bottom"><b>axis2_http_transport_in_t</b></td></tr>

<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="21356b6a3e8de4c5ef215147dbc76d70"></a><!-- doxytag: member="axis2_http_transport_utils.h::axis2_http_transport_out_t" ref="21356b6a3e8de4c5ef215147dbc76d70" args="" -->
typedef struct <br>
axis2_http_transport_out&nbsp;</td><td class="memItemRight" valign="bottom"><b>axis2_http_transport_out_t</b></td></tr>

<tr><td class="memItemLeft" nowrap align="right" valign="top">AXIS2_EXTERN <br>
axis2_status_t&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="axis2__http__transport__utils_8h.html#5b1c4741faf0fe96b7fe03186c69abdd">axis2_http_transport_utils_transport_in_init</a> (axis2_http_transport_in_t *in, const <a class="el" href="structaxutil__env.html">axutil_env_t</a> *env)</td></tr>

<tr><td class="memItemLeft" nowrap align="right" valign="top">AXIS2_EXTERN <br>
axis2_status_t&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="axis2__http__transport__utils_8h.html#f7234adf7d479a35a5c493bdf927cf58">axis2_http_transport_utils_transport_in_uninit</a> (axis2_http_transport_in_t *request, const <a class="el" href="structaxutil__env.html">axutil_env_t</a> *env)</td></tr>

<tr><td class="memItemLeft" nowrap align="right" valign="top">AXIS2_EXTERN <br>
axis2_status_t&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="axis2__http__transport__utils_8h.html#6e515e0c355171b2a60b9227a2dc1136">axis2_http_transport_utils_transport_out_init</a> (axis2_http_transport_out_t *out, const <a class="el" href="structaxutil__env.html">axutil_env_t</a> *env)</td></tr>

<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="ce91ce568d0eb89a81342a42e36f60eb"></a><!-- doxytag: member="axis2_http_transport_utils.h::axis2_http_transport_utils_transport_out_uninit" ref="ce91ce568d0eb89a81342a42e36f60eb" args="(axis2_http_transport_out_t *response, const axutil_env_t *env)" -->
AXIS2_EXTERN <br>
axis2_status_t&nbsp;</td><td class="memItemRight" valign="bottom"><b>axis2_http_transport_utils_transport_out_uninit</b> (axis2_http_transport_out_t *response, const <a class="el" href="structaxutil__env.html">axutil_env_t</a> *env)</td></tr>

<tr><td class="memItemLeft" nowrap align="right" valign="top">AXIS2_EXTERN <br>
axis2_status_t&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="axis2__http__transport__utils_8h.html#658b7a4b49b9e111bfa4785681f62133">axis2_http_transport_utils_process_request</a> (const <a class="el" href="structaxutil__env.html">axutil_env_t</a> *env, <a class="el" href="group__axis2__conf__ctx.html#gab2f89df328e63d4f9fa3a4d035d18f0">axis2_conf_ctx_t</a> *conf_ctx, axis2_http_transport_in_t *request, axis2_http_transport_out_t *response)</td></tr>

<tr><td class="memItemLeft" nowrap align="right" valign="top">AXIS2_EXTERN <br>
axis2_status_t&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="axis2__http__transport__utils_8h.html#e309ed43dea34867236087b7f333c1df">axis2_http_transport_utils_process_http_post_request</a> (const <a class="el" href="structaxutil__env.html">axutil_env_t</a> *env, <a class="el" href="group__axis2__msg__ctx.html#g160acae289ac39cb49fa625ffd88e410">axis2_msg_ctx_t</a> *msg_ctx, axutil_stream_t *in_stream, axutil_stream_t *out_stream, const axis2_char_t *content_type, const int content_length, axutil_string_t *soap_action_header, const axis2_char_t *request_uri)</td></tr>

<tr><td class="memItemLeft" nowrap align="right" valign="top">AXIS2_EXTERN <br>
axis2_status_t&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="axis2__http__transport__utils_8h.html#86eff382a23f3dac365a6d37c7d8ff54">axis2_http_transport_utils_process_http_put_request</a> (const <a class="el" href="structaxutil__env.html">axutil_env_t</a> *env, <a class="el" href="group__axis2__msg__ctx.html#g160acae289ac39cb49fa625ffd88e410">axis2_msg_ctx_t</a> *msg_ctx, axutil_stream_t *in_stream, axutil_stream_t *out_stream, const axis2_char_t *content_type, const int content_length, axutil_string_t *soap_action_header, const axis2_char_t *request_uri)</td></tr>

<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="f1f14d12ff155b01d6d08c7ce43518ec"></a><!-- doxytag: member="axis2_http_transport_utils.h::axis2_http_transport_utils_process_http_get_request" ref="f1f14d12ff155b01d6d08c7ce43518ec" args="(const axutil_env_t *env, axis2_msg_ctx_t *msg_ctx, axutil_stream_t *in_stream, axutil_stream_t *out_stream, const axis2_char_t *content_type, axutil_string_t *soap_action_header, const axis2_char_t *request_uri, axis2_conf_ctx_t *conf_ctx, axutil_hash_t *request_params)" -->
AXIS2_EXTERN axis2_bool_t&nbsp;</td><td class="memItemRight" valign="bottom"><b>axis2_http_transport_utils_process_http_get_request</b> (const <a class="el" href="structaxutil__env.html">axutil_env_t</a> *env, <a class="el" href="group__axis2__msg__ctx.html#g160acae289ac39cb49fa625ffd88e410">axis2_msg_ctx_t</a> *msg_ctx, axutil_stream_t *in_stream, axutil_stream_t *out_stream, const axis2_char_t *content_type, axutil_string_t *soap_action_header, const axis2_char_t *request_uri, <a class="el" href="group__axis2__conf__ctx.html#gab2f89df328e63d4f9fa3a4d035d18f0">axis2_conf_ctx_t</a> *conf_ctx, <a class="el" href="group__axutil__hash.html#gb2d7d14db2de92a101573f44421ac12a">axutil_hash_t</a> *request_params)</td></tr>

<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="ad02c7a6fe8b160cc09e9e639b030c39"></a><!-- doxytag: member="axis2_http_transport_utils.h::axis2_http_transport_utils_process_http_head_request" ref="ad02c7a6fe8b160cc09e9e639b030c39" args="(const axutil_env_t *env, axis2_msg_ctx_t *msg_ctx, axutil_stream_t *in_stream, axutil_stream_t *out_stream, const axis2_char_t *content_type, axutil_string_t *soap_action_header, const axis2_char_t *request_uri, axis2_conf_ctx_t *conf_ctx, axutil_hash_t *request_params)" -->
AXIS2_EXTERN axis2_bool_t&nbsp;</td><td class="memItemRight" valign="bottom"><b>axis2_http_transport_utils_process_http_head_request</b> (const <a class="el" href="structaxutil__env.html">axutil_env_t</a> *env, <a class="el" href="group__axis2__msg__ctx.html#g160acae289ac39cb49fa625ffd88e410">axis2_msg_ctx_t</a> *msg_ctx, axutil_stream_t *in_stream, axutil_stream_t *out_stream, const axis2_char_t *content_type, axutil_string_t *soap_action_header, const axis2_char_t *request_uri, <a class="el" href="group__axis2__conf__ctx.html#gab2f89df328e63d4f9fa3a4d035d18f0">axis2_conf_ctx_t</a> *conf_ctx, <a class="el" href="group__axutil__hash.html#gb2d7d14db2de92a101573f44421ac12a">axutil_hash_t</a> *request_params)</td></tr>

<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="500fdb4844bb9355a78c22fea6f5ef7b"></a><!-- doxytag: member="axis2_http_transport_utils.h::axis2_http_transport_utils_process_http_delete_request" ref="500fdb4844bb9355a78c22fea6f5ef7b" args="(const axutil_env_t *env, axis2_msg_ctx_t *msg_ctx, axutil_stream_t *in_stream, axutil_stream_t *out_stream, const axis2_char_t *content_type, axutil_string_t *soap_action_header, const axis2_char_t *request_uri, axis2_conf_ctx_t *conf_ctx, axutil_hash_t *request_params)" -->
AXIS2_EXTERN axis2_bool_t&nbsp;</td><td class="memItemRight" valign="bottom"><b>axis2_http_transport_utils_process_http_delete_request</b> (const <a class="el" href="structaxutil__env.html">axutil_env_t</a> *env, <a class="el" href="group__axis2__msg__ctx.html#g160acae289ac39cb49fa625ffd88e410">axis2_msg_ctx_t</a> *msg_ctx, axutil_stream_t *in_stream, axutil_stream_t *out_stream, const axis2_char_t *content_type, axutil_string_t *soap_action_header, const axis2_char_t *request_uri, <a class="el" href="group__axis2__conf__ctx.html#gab2f89df328e63d4f9fa3a4d035d18f0">axis2_conf_ctx_t</a> *conf_ctx, <a class="el" href="group__axutil__hash.html#gb2d7d14db2de92a101573f44421ac12a">axutil_hash_t</a> *request_params)</td></tr>

<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="786e56ff099ea35fcc97fa4271461af8"></a><!-- doxytag: member="axis2_http_transport_utils.h::axis2_http_transport_utils_select_builder_for_mime" ref="786e56ff099ea35fcc97fa4271461af8" args="(const axutil_env_t *env, axis2_char_t *request_uri, axis2_msg_ctx_t *msg_ctx, axutil_stream_t *in_stream, axis2_char_t *content_type)" -->
AXIS2_EXTERN <br>
axiom_stax_builder_t *&nbsp;</td><td class="memItemRight" valign="bottom"><b>axis2_http_transport_utils_select_builder_for_mime</b> (const <a class="el" href="structaxutil__env.html">axutil_env_t</a> *env, axis2_char_t *request_uri, <a class="el" href="group__axis2__msg__ctx.html#g160acae289ac39cb49fa625ffd88e410">axis2_msg_ctx_t</a> *msg_ctx, axutil_stream_t *in_stream, axis2_char_t *content_type)</td></tr>

<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="7b847d5cc53c0d75c5c484ab081c4350"></a><!-- doxytag: member="axis2_http_transport_utils.h::axis2_http_transport_utils_do_write_mtom" ref="7b847d5cc53c0d75c5c484ab081c4350" args="(const axutil_env_t *env, axis2_msg_ctx_t *msg_ctx)" -->
AXIS2_EXTERN axis2_bool_t&nbsp;</td><td class="memItemRight" valign="bottom"><b>axis2_http_transport_utils_do_write_mtom</b> (const <a class="el" href="structaxutil__env.html">axutil_env_t</a> *env, <a class="el" href="group__axis2__msg__ctx.html#g160acae289ac39cb49fa625ffd88e410">axis2_msg_ctx_t</a> *msg_ctx)</td></tr>

<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="4b9a470c2a851d91a7a29b682b097288"></a><!-- doxytag: member="axis2_http_transport_utils.h::axis2_http_transport_utils_get_request_params" ref="4b9a470c2a851d91a7a29b682b097288" args="(const axutil_env_t *env, axis2_char_t *request_uri)" -->
AXIS2_EXTERN <br>
<a class="el" href="group__axutil__hash.html#gb2d7d14db2de92a101573f44421ac12a">axutil_hash_t</a> *&nbsp;</td><td class="memItemRight" valign="bottom"><b>axis2_http_transport_utils_get_request_params</b> (const <a class="el" href="structaxutil__env.html">axutil_env_t</a> *env, axis2_char_t *request_uri)</td></tr>

<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="624055e01468790004e58da9eae891a1"></a><!-- doxytag: member="axis2_http_transport_utils.h::axis2_http_transport_utils_get_not_found" ref="624055e01468790004e58da9eae891a1" args="(const axutil_env_t *env, axis2_conf_ctx_t *conf_ctx)" -->
AXIS2_EXTERN <br>
axis2_char_t *&nbsp;</td><td class="memItemRight" valign="bottom"><b>axis2_http_transport_utils_get_not_found</b> (const <a class="el" href="structaxutil__env.html">axutil_env_t</a> *env, <a class="el" href="group__axis2__conf__ctx.html#gab2f89df328e63d4f9fa3a4d035d18f0">axis2_conf_ctx_t</a> *conf_ctx)</td></tr>

<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="795144e1035b360abad45a37cb9cc9fb"></a><!-- doxytag: member="axis2_http_transport_utils.h::axis2_http_transport_utils_get_not_implemented" ref="795144e1035b360abad45a37cb9cc9fb" args="(const axutil_env_t *env, axis2_conf_ctx_t *conf_ctx)" -->
AXIS2_EXTERN <br>
axis2_char_t *&nbsp;</td><td class="memItemRight" valign="bottom"><b>axis2_http_transport_utils_get_not_implemented</b> (const <a class="el" href="structaxutil__env.html">axutil_env_t</a> *env, <a class="el" href="group__axis2__conf__ctx.html#gab2f89df328e63d4f9fa3a4d035d18f0">axis2_conf_ctx_t</a> *conf_ctx)</td></tr>

<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="75356c46229b1d4f191d9b9c54dfd5af"></a><!-- doxytag: member="axis2_http_transport_utils.h::axis2_http_transport_utils_get_method_not_allowed" ref="75356c46229b1d4f191d9b9c54dfd5af" args="(const axutil_env_t *env, axis2_conf_ctx_t *conf_ctx)" -->
AXIS2_EXTERN <br>
axis2_char_t *&nbsp;</td><td class="memItemRight" valign="bottom"><b>axis2_http_transport_utils_get_method_not_allowed</b> (const <a class="el" href="structaxutil__env.html">axutil_env_t</a> *env, <a class="el" href="group__axis2__conf__ctx.html#gab2f89df328e63d4f9fa3a4d035d18f0">axis2_conf_ctx_t</a> *conf_ctx)</td></tr>

<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="73cfa03e792a9e98e54b09518af4f36e"></a><!-- doxytag: member="axis2_http_transport_utils.h::axis2_http_transport_utils_get_not_acceptable" ref="73cfa03e792a9e98e54b09518af4f36e" args="(const axutil_env_t *env, axis2_conf_ctx_t *conf_ctx)" -->
AXIS2_EXTERN <br>
axis2_char_t *&nbsp;</td><td class="memItemRight" valign="bottom"><b>axis2_http_transport_utils_get_not_acceptable</b> (const <a class="el" href="structaxutil__env.html">axutil_env_t</a> *env, <a class="el" href="group__axis2__conf__ctx.html#gab2f89df328e63d4f9fa3a4d035d18f0">axis2_conf_ctx_t</a> *conf_ctx)</td></tr>

<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="0ae7682ee9001fc3cd8072371e3ce059"></a><!-- doxytag: member="axis2_http_transport_utils.h::axis2_http_transport_utils_get_bad_request" ref="0ae7682ee9001fc3cd8072371e3ce059" args="(const axutil_env_t *env, axis2_conf_ctx_t *conf_ctx)" -->
AXIS2_EXTERN <br>
axis2_char_t *&nbsp;</td><td class="memItemRight" valign="bottom"><b>axis2_http_transport_utils_get_bad_request</b> (const <a class="el" href="structaxutil__env.html">axutil_env_t</a> *env, <a class="el" href="group__axis2__conf__ctx.html#gab2f89df328e63d4f9fa3a4d035d18f0">axis2_conf_ctx_t</a> *conf_ctx)</td></tr>

<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="2e95ace5a6916b520b2aa2f5fd2fc82e"></a><!-- doxytag: member="axis2_http_transport_utils.h::axis2_http_transport_utils_get_request_timeout" ref="2e95ace5a6916b520b2aa2f5fd2fc82e" args="(const axutil_env_t *env, axis2_conf_ctx_t *conf_ctx)" -->
AXIS2_EXTERN <br>
axis2_char_t *&nbsp;</td><td class="memItemRight" valign="bottom"><b>axis2_http_transport_utils_get_request_timeout</b> (const <a class="el" href="structaxutil__env.html">axutil_env_t</a> *env, <a class="el" href="group__axis2__conf__ctx.html#gab2f89df328e63d4f9fa3a4d035d18f0">axis2_conf_ctx_t</a> *conf_ctx)</td></tr>

<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="23dc72d3cb48ee6039d39c1a56dd6ee4"></a><!-- doxytag: member="axis2_http_transport_utils.h::axis2_http_transport_utils_get_conflict" ref="23dc72d3cb48ee6039d39c1a56dd6ee4" args="(const axutil_env_t *env, axis2_conf_ctx_t *conf_ctx)" -->
AXIS2_EXTERN <br>
axis2_char_t *&nbsp;</td><td class="memItemRight" valign="bottom"><b>axis2_http_transport_utils_get_conflict</b> (const <a class="el" href="structaxutil__env.html">axutil_env_t</a> *env, <a class="el" href="group__axis2__conf__ctx.html#gab2f89df328e63d4f9fa3a4d035d18f0">axis2_conf_ctx_t</a> *conf_ctx)</td></tr>

<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="763a3954121f089d37da805ac4af8639"></a><!-- doxytag: member="axis2_http_transport_utils.h::axis2_http_transport_utils_get_gone" ref="763a3954121f089d37da805ac4af8639" args="(const axutil_env_t *env, axis2_conf_ctx_t *conf_ctx)" -->
AXIS2_EXTERN <br>
axis2_char_t *&nbsp;</td><td class="memItemRight" valign="bottom"><b>axis2_http_transport_utils_get_gone</b> (const <a class="el" href="structaxutil__env.html">axutil_env_t</a> *env, <a class="el" href="group__axis2__conf__ctx.html#gab2f89df328e63d4f9fa3a4d035d18f0">axis2_conf_ctx_t</a> *conf_ctx)</td></tr>

<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="61f7e292525f4d7501187bb54090beb1"></a><!-- doxytag: member="axis2_http_transport_utils.h::axis2_http_transport_utils_get_precondition_failed" ref="61f7e292525f4d7501187bb54090beb1" args="(const axutil_env_t *env, axis2_conf_ctx_t *conf_ctx)" -->
AXIS2_EXTERN <br>
axis2_char_t *&nbsp;</td><td class="memItemRight" valign="bottom"><b>axis2_http_transport_utils_get_precondition_failed</b> (const <a class="el" href="structaxutil__env.html">axutil_env_t</a> *env, <a class="el" href="group__axis2__conf__ctx.html#gab2f89df328e63d4f9fa3a4d035d18f0">axis2_conf_ctx_t</a> *conf_ctx)</td></tr>

<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="cb9b8fb8db5ac26fd82e5b9f73800573"></a><!-- doxytag: member="axis2_http_transport_utils.h::axis2_http_transport_utils_get_request_entity_too_large" ref="cb9b8fb8db5ac26fd82e5b9f73800573" args="(const axutil_env_t *env, axis2_conf_ctx_t *conf_ctx)" -->
AXIS2_EXTERN <br>
axis2_char_t *&nbsp;</td><td class="memItemRight" valign="bottom"><b>axis2_http_transport_utils_get_request_entity_too_large</b> (const <a class="el" href="structaxutil__env.html">axutil_env_t</a> *env, <a class="el" href="group__axis2__conf__ctx.html#gab2f89df328e63d4f9fa3a4d035d18f0">axis2_conf_ctx_t</a> *conf_ctx)</td></tr>

<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="ff36076ac746291bea47f2f73642c7fb"></a><!-- doxytag: member="axis2_http_transport_utils.h::axis2_http_transport_utils_get_service_unavailable" ref="ff36076ac746291bea47f2f73642c7fb" args="(const axutil_env_t *env, axis2_conf_ctx_t *conf_ctx)" -->
AXIS2_EXTERN <br>
axis2_char_t *&nbsp;</td><td class="memItemRight" valign="bottom"><b>axis2_http_transport_utils_get_service_unavailable</b> (const <a class="el" href="structaxutil__env.html">axutil_env_t</a> *env, <a class="el" href="group__axis2__conf__ctx.html#gab2f89df328e63d4f9fa3a4d035d18f0">axis2_conf_ctx_t</a> *conf_ctx)</td></tr>

<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="e7610310e4b0566d08f796bb0e254b2b"></a><!-- doxytag: member="axis2_http_transport_utils.h::axis2_http_transport_utils_get_internal_server_error" ref="e7610310e4b0566d08f796bb0e254b2b" args="(const axutil_env_t *env, axis2_conf_ctx_t *conf_ctx)" -->
AXIS2_EXTERN <br>
axis2_char_t *&nbsp;</td><td class="memItemRight" valign="bottom"><b>axis2_http_transport_utils_get_internal_server_error</b> (const <a class="el" href="structaxutil__env.html">axutil_env_t</a> *env, <a class="el" href="group__axis2__conf__ctx.html#gab2f89df328e63d4f9fa3a4d035d18f0">axis2_conf_ctx_t</a> *conf_ctx)</td></tr>

<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="1e48a78dda202ca20f9bdf20a9687347"></a><!-- doxytag: member="axis2_http_transport_utils.h::axis2_http_transport_utils_get_services_html" ref="1e48a78dda202ca20f9bdf20a9687347" args="(const axutil_env_t *env, axis2_conf_ctx_t *conf_ctx)" -->
AXIS2_EXTERN <br>
axis2_char_t *&nbsp;</td><td class="memItemRight" valign="bottom"><b>axis2_http_transport_utils_get_services_html</b> (const <a class="el" href="structaxutil__env.html">axutil_env_t</a> *env, <a class="el" href="group__axis2__conf__ctx.html#gab2f89df328e63d4f9fa3a4d035d18f0">axis2_conf_ctx_t</a> *conf_ctx)</td></tr>

<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="ca3a8eafdc18cc90bbd0f4fc97198aa4"></a><!-- doxytag: member="axis2_http_transport_utils.h::axis2_http_transport_utils_get_services_static_wsdl" ref="ca3a8eafdc18cc90bbd0f4fc97198aa4" args="(const axutil_env_t *env, axis2_conf_ctx_t *conf_ctx, axis2_char_t *request_url)" -->
AXIS2_EXTERN <br>
axis2_char_t *&nbsp;</td><td class="memItemRight" valign="bottom"><b>axis2_http_transport_utils_get_services_static_wsdl</b> (const <a class="el" href="structaxutil__env.html">axutil_env_t</a> *env, <a class="el" href="group__axis2__conf__ctx.html#gab2f89df328e63d4f9fa3a4d035d18f0">axis2_conf_ctx_t</a> *conf_ctx, axis2_char_t *request_url)</td></tr>

<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="c495bc017e64881c3a01348486e90478"></a><!-- doxytag: member="axis2_http_transport_utils.h::axis2_http_transport_utils_create_soap_msg" ref="c495bc017e64881c3a01348486e90478" args="(const axutil_env_t *env, axis2_msg_ctx_t *msg_ctx, const axis2_char_t *soap_ns_uri)" -->
AXIS2_EXTERN <br>
axiom_soap_envelope_t *&nbsp;</td><td class="memItemRight" valign="bottom"><b>axis2_http_transport_utils_create_soap_msg</b> (const <a class="el" href="structaxutil__env.html">axutil_env_t</a> *env, <a class="el" href="group__axis2__msg__ctx.html#g160acae289ac39cb49fa625ffd88e410">axis2_msg_ctx_t</a> *msg_ctx, const axis2_char_t *soap_ns_uri)</td></tr>

<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="7639517e1cffa2769518b81e1891ab30"></a><!-- doxytag: member="axis2_http_transport_utils.h::axis2_http_transport_utils_process_accept_headers" ref="7639517e1cffa2769518b81e1891ab30" args="(const axutil_env_t *env, axis2_char_t *accept_value)" -->
AXIS2_EXTERN <br>
<a class="el" href="group__axutil__array__list.html#g1a6a89777db876cfa0cc86787b7be6a0">axutil_array_list_t</a> *&nbsp;</td><td class="memItemRight" valign="bottom"><b>axis2_http_transport_utils_process_accept_headers</b> (const <a class="el" href="structaxutil__env.html">axutil_env_t</a> *env, axis2_char_t *accept_value)</td></tr>

<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="b3cbdc9df8303525fa37c81da4818bc7"></a><!-- doxytag: member="axis2_http_transport_utils.h::axis2_http_transport_utils_send_mtom_message" ref="b3cbdc9df8303525fa37c81da4818bc7" args="(axutil_http_chunked_stream_t *chunked_stream, const axutil_env_t *env, axutil_array_list_t *mime_parts, axis2_char_t *sending_callback_name)" -->
AXIS2_EXTERN <br>
axis2_status_t&nbsp;</td><td class="memItemRight" valign="bottom"><b>axis2_http_transport_utils_send_mtom_message</b> (<a class="el" href="group__axutil__http__chunked__stream.html#g4f21d685413463e10ac26b40046a25ff">axutil_http_chunked_stream_t</a> *chunked_stream, const <a class="el" href="structaxutil__env.html">axutil_env_t</a> *env, <a class="el" href="group__axutil__array__list.html#g1a6a89777db876cfa0cc86787b7be6a0">axutil_array_list_t</a> *mime_parts, axis2_char_t *sending_callback_name)</td></tr>

<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="e0651ab2b96a7a6136f06234d5af6ffe"></a><!-- doxytag: member="axis2_http_transport_utils.h::axis2_http_transport_utils_destroy_mime_parts" ref="e0651ab2b96a7a6136f06234d5af6ffe" args="(axutil_array_list_t *mime_parts, const axutil_env_t *env)" -->
AXIS2_EXTERN void&nbsp;</td><td class="memItemRight" valign="bottom"><b>axis2_http_transport_utils_destroy_mime_parts</b> (<a class="el" href="group__axutil__array__list.html#g1a6a89777db876cfa0cc86787b7be6a0">axutil_array_list_t</a> *mime_parts, const <a class="el" href="structaxutil__env.html">axutil_env_t</a> *env)</td></tr>

<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="ec25d52c7d083bc84906c7eb3c203ffe"></a><!-- doxytag: member="axis2_http_transport_utils.h::axis2_http_transport_utils_initiate_callback" ref="ec25d52c7d083bc84906c7eb3c203ffe" args="(const axutil_env_t *env, axis2_char_t *callback_name, void *user_param, axiom_mtom_sending_callback_t **callback)" -->
AXIS2_EXTERN void *&nbsp;</td><td class="memItemRight" valign="bottom"><b>axis2_http_transport_utils_initiate_callback</b> (const <a class="el" href="structaxutil__env.html">axutil_env_t</a> *env, axis2_char_t *callback_name, void *user_param, <a class="el" href="group__mtom__sending__callback.html#g1b8c0dbaa427283987be2131fcb340ee">axiom_mtom_sending_callback_t</a> **callback)</td></tr>

<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="d3326ebfecd870645b7eee6aabd894f0"></a><!-- doxytag: member="axis2_http_transport_utils.h::axis2_http_transport_utils_is_callback_required" ref="d3326ebfecd870645b7eee6aabd894f0" args="(const axutil_env_t *env, axutil_array_list_t *mime_parts)" -->
AXIS2_EXTERN axis2_bool_t&nbsp;</td><td class="memItemRight" valign="bottom"><b>axis2_http_transport_utils_is_callback_required</b> (const <a class="el" href="structaxutil__env.html">axutil_env_t</a> *env, <a class="el" href="group__axutil__array__list.html#g1a6a89777db876cfa0cc86787b7be6a0">axutil_array_list_t</a> *mime_parts)</td></tr>

<tr><td colspan="2"><br><h2>Defines</h2></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="605517c0ae68d8300866df40fafbe59d"></a><!-- doxytag: member="axis2_http_transport_utils.h::AXIS2_MTOM_OUTPUT_BUFFER_SIZE" ref="605517c0ae68d8300866df40fafbe59d" args="" -->
#define&nbsp;</td><td class="memItemRight" valign="bottom"><b>AXIS2_MTOM_OUTPUT_BUFFER_SIZE</b>&nbsp;&nbsp;&nbsp;1024</td></tr>

</table>
<hr><a name="_details"></a><h2>Detailed Description</h2>
axis2 HTTP Transport Utility functions This file includes functions that handles soap and rest request that comes to the engine via HTTP protocol. 
<p>
<hr><h2>Function Documentation</h2>
<a class="anchor" name="e309ed43dea34867236087b7f333c1df"></a><!-- doxytag: member="axis2_http_transport_utils.h::axis2_http_transport_utils_process_http_post_request" ref="e309ed43dea34867236087b7f333c1df" args="(const axutil_env_t *env, axis2_msg_ctx_t *msg_ctx, axutil_stream_t *in_stream, axutil_stream_t *out_stream, const axis2_char_t *content_type, const int content_length, axutil_string_t *soap_action_header, const axis2_char_t *request_uri)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">AXIS2_EXTERN axis2_status_t axis2_http_transport_utils_process_http_post_request           </td>
          <td>(</td>
          <td class="paramtype">const <a class="el" href="structaxutil__env.html">axutil_env_t</a> *&nbsp;</td>
          <td class="paramname"> <em>env</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype"><a class="el" href="group__axis2__msg__ctx.html#g160acae289ac39cb49fa625ffd88e410">axis2_msg_ctx_t</a> *&nbsp;</td>
          <td class="paramname"> <em>msg_ctx</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">axutil_stream_t *&nbsp;</td>
          <td class="paramname"> <em>in_stream</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">axutil_stream_t *&nbsp;</td>
          <td class="paramname"> <em>out_stream</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const axis2_char_t *&nbsp;</td>
          <td class="paramname"> <em>content_type</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const int&nbsp;</td>
          <td class="paramname"> <em>content_length</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">axutil_string_t *&nbsp;</td>
          <td class="paramname"> <em>soap_action_header</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const axis2_char_t *&nbsp;</td>
          <td class="paramname"> <em>request_uri</em></td><td>&nbsp;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td><td width="100%"></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
This function handles the HTTP POST request that comes to the axis2 engine. The request can be either a SOAP request OR a REST request. <dl compact><dt><b>Parameters:</b></dt><dd>
  <table border="0" cellspacing="2" cellpadding="0">
    <tr><td valign="top"></td><td valign="top"><em>env,axutil_env_t</em>&nbsp;</td><td>instance </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>msg_ctx,Input</em>&nbsp;</td><td>message context. (an instance of axis2_msg_ctx_t struct.) </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>in_stream,This</em>&nbsp;</td><td>is the input message content represented as an axutil_stream instance. A callback function will be used to read as required from the stream with in the engine. </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>out_stream,This</em>&nbsp;</td><td>is the output stream. The outgoing message contents is represented as an instance of axutil_stream </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>content_type,HTTP</em>&nbsp;</td><td>content type. This value should not be null. </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>content_length,HTTP</em>&nbsp;</td><td>Content length value. </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>soap_action_header,SOAPAction</em>&nbsp;</td><td>header value. This is only required in case of SOAP 1.1. For SOAP 1.2 , the action header will be within the ContentType header and this method is able to obtain the extract the action header value from content type. </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>request_uri,This</em>&nbsp;</td><td>is the HTTP request uri. Should not be null. </td></tr>
  </table>
</dl>
<dl class="return" compact><dt><b>Returns:</b></dt><dd>AXIS2_SUCCESS on success, AXIS2_FAILURE Otherwise </dd></dl>

</div>
</div><p>
<a class="anchor" name="86eff382a23f3dac365a6d37c7d8ff54"></a><!-- doxytag: member="axis2_http_transport_utils.h::axis2_http_transport_utils_process_http_put_request" ref="86eff382a23f3dac365a6d37c7d8ff54" args="(const axutil_env_t *env, axis2_msg_ctx_t *msg_ctx, axutil_stream_t *in_stream, axutil_stream_t *out_stream, const axis2_char_t *content_type, const int content_length, axutil_string_t *soap_action_header, const axis2_char_t *request_uri)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">AXIS2_EXTERN axis2_status_t axis2_http_transport_utils_process_http_put_request           </td>
          <td>(</td>
          <td class="paramtype">const <a class="el" href="structaxutil__env.html">axutil_env_t</a> *&nbsp;</td>
          <td class="paramname"> <em>env</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype"><a class="el" href="group__axis2__msg__ctx.html#g160acae289ac39cb49fa625ffd88e410">axis2_msg_ctx_t</a> *&nbsp;</td>
          <td class="paramname"> <em>msg_ctx</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">axutil_stream_t *&nbsp;</td>
          <td class="paramname"> <em>in_stream</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">axutil_stream_t *&nbsp;</td>
          <td class="paramname"> <em>out_stream</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const axis2_char_t *&nbsp;</td>
          <td class="paramname"> <em>content_type</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const int&nbsp;</td>
          <td class="paramname"> <em>content_length</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">axutil_string_t *&nbsp;</td>
          <td class="paramname"> <em>soap_action_header</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const axis2_char_t *&nbsp;</td>
          <td class="paramname"> <em>request_uri</em></td><td>&nbsp;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td><td width="100%"></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
This method handles the HTTP put request. Parameters are similar to that of post_request method. <dl compact><dt><b>Parameters:</b></dt><dd>
  <table border="0" cellspacing="2" cellpadding="0">
    <tr><td valign="top"></td><td valign="top"><em>env,environment</em>&nbsp;</td><td></td></tr>
    <tr><td valign="top"></td><td valign="top"><em>msg_ctx,in</em>&nbsp;</td><td>message context. </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>in_stream,input</em>&nbsp;</td><td>stream </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>out_stream,output</em>&nbsp;</td><td>stream. </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>content_type,HTTP</em>&nbsp;</td><td>ContentType header value </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>content_length,HTTP</em>&nbsp;</td><td>Content length value </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>soap_action_header,SOAP</em>&nbsp;</td><td>Action header value </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>request_uri,request</em>&nbsp;</td><td>uri </td></tr>
  </table>
</dl>
<dl class="return" compact><dt><b>Returns:</b></dt><dd>AXIS2_SUCCESS on success, AXIS2_FAILURE Otherwise </dd></dl>

</div>
</div><p>
<a class="anchor" name="658b7a4b49b9e111bfa4785681f62133"></a><!-- doxytag: member="axis2_http_transport_utils.h::axis2_http_transport_utils_process_request" ref="658b7a4b49b9e111bfa4785681f62133" args="(const axutil_env_t *env, axis2_conf_ctx_t *conf_ctx, axis2_http_transport_in_t *request, axis2_http_transport_out_t *response)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">AXIS2_EXTERN axis2_status_t axis2_http_transport_utils_process_request           </td>
          <td>(</td>
          <td class="paramtype">const <a class="el" href="structaxutil__env.html">axutil_env_t</a> *&nbsp;</td>
          <td class="paramname"> <em>env</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype"><a class="el" href="group__axis2__conf__ctx.html#gab2f89df328e63d4f9fa3a4d035d18f0">axis2_conf_ctx_t</a> *&nbsp;</td>
          <td class="paramname"> <em>conf_ctx</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">axis2_http_transport_in_t *&nbsp;</td>
          <td class="paramname"> <em>request</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">axis2_http_transport_out_t *&nbsp;</td>
          <td class="paramname"> <em>response</em></td><td>&nbsp;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td><td width="100%"></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
This methods provides the HTTP request handling functionality using axis2 for server side HTTP modules. <dl compact><dt><b>Parameters:</b></dt><dd>
  <table border="0" cellspacing="2" cellpadding="0">
    <tr><td valign="top"></td><td valign="top"><em>env,environments</em>&nbsp;</td><td></td></tr>
    <tr><td valign="top"></td><td valign="top"><em>conf_ctx,Instance</em>&nbsp;</td><td>of axis2_conf_ctx_t </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>request,populated</em>&nbsp;</td><td>instance of axis2_http_transport_in_t struct </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>response,an</em>&nbsp;</td><td>instance of axis2_http_transport_out_t struct </td></tr>
  </table>
</dl>
<dl class="return" compact><dt><b>Returns:</b></dt><dd>AXIS2_SUCCESS on success, AXIS2_FAILURE Otherwise </dd></dl>

</div>
</div><p>
<a class="anchor" name="5b1c4741faf0fe96b7fe03186c69abdd"></a><!-- doxytag: member="axis2_http_transport_utils.h::axis2_http_transport_utils_transport_in_init" ref="5b1c4741faf0fe96b7fe03186c69abdd" args="(axis2_http_transport_in_t *in, const axutil_env_t *env)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">AXIS2_EXTERN axis2_status_t axis2_http_transport_utils_transport_in_init           </td>
          <td>(</td>
          <td class="paramtype">axis2_http_transport_in_t *&nbsp;</td>
          <td class="paramname"> <em>in</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const <a class="el" href="structaxutil__env.html">axutil_env_t</a> *&nbsp;</td>
          <td class="paramname"> <em>env</em></td><td>&nbsp;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td><td width="100%"></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
Initialize the axis2_http_tranport_in_t. Before using this structure users should initialize it using this method. <dl compact><dt><b>Parameters:</b></dt><dd>
  <table border="0" cellspacing="2" cellpadding="0">
    <tr><td valign="top"></td><td valign="top"><em>in</em>&nbsp;</td><td>a pointer to a axis2_http_tranport_in_t </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>env,environments</em>&nbsp;</td><td></td></tr>
  </table>
</dl>

</div>
</div><p>
<a class="anchor" name="f7234adf7d479a35a5c493bdf927cf58"></a><!-- doxytag: member="axis2_http_transport_utils.h::axis2_http_transport_utils_transport_in_uninit" ref="f7234adf7d479a35a5c493bdf927cf58" args="(axis2_http_transport_in_t *request, const axutil_env_t *env)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">AXIS2_EXTERN axis2_status_t axis2_http_transport_utils_transport_in_uninit           </td>
          <td>(</td>
          <td class="paramtype">axis2_http_transport_in_t *&nbsp;</td>
          <td class="paramname"> <em>request</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const <a class="el" href="structaxutil__env.html">axutil_env_t</a> *&nbsp;</td>
          <td class="paramname"> <em>env</em></td><td>&nbsp;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td><td width="100%"></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
Uninitialize the axis2_http_tranport_in_t. Before using this structure users should initialize it using this method. <dl compact><dt><b>Parameters:</b></dt><dd>
  <table border="0" cellspacing="2" cellpadding="0">
    <tr><td valign="top"></td><td valign="top"><em>in</em>&nbsp;</td><td>a pointer to a axis2_http_tranport_in_t </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>env,environments</em>&nbsp;</td><td></td></tr>
  </table>
</dl>

</div>
</div><p>
<a class="anchor" name="6e515e0c355171b2a60b9227a2dc1136"></a><!-- doxytag: member="axis2_http_transport_utils.h::axis2_http_transport_utils_transport_out_init" ref="6e515e0c355171b2a60b9227a2dc1136" args="(axis2_http_transport_out_t *out, const axutil_env_t *env)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">AXIS2_EXTERN axis2_status_t axis2_http_transport_utils_transport_out_init           </td>
          <td>(</td>
          <td class="paramtype">axis2_http_transport_out_t *&nbsp;</td>
          <td class="paramname"> <em>out</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const <a class="el" href="structaxutil__env.html">axutil_env_t</a> *&nbsp;</td>
          <td class="paramname"> <em>env</em></td><td>&nbsp;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td><td width="100%"></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
Initialize the axis2_http_tranport_out_t. Before using this structure users should initialize it using this method. <dl compact><dt><b>Parameters:</b></dt><dd>
  <table border="0" cellspacing="2" cellpadding="0">
    <tr><td valign="top"></td><td valign="top"><em>out</em>&nbsp;</td><td>a pointer to a axis2_http_tranport_out_t </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>env,environments</em>&nbsp;</td><td></td></tr>
  </table>
</dl>

</div>
</div><p>
<hr size="1"><address style="text-align: right;"><small>Generated on Fri Apr 17 11:49:43 2009 for Axis2/C by&nbsp;
<a href="http://www.doxygen.org/index.html">
<img src="doxygen.png" alt="doxygen" align="middle" border="0"></a> 1.5.3 </small></address>
</body>
</html>


<|start_filename|>xdocs/api/html/axiom__soap__fault_8h-source.html<|end_filename|>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html><head><meta http-equiv="Content-Type" content="text/html;charset=UTF-8">
<title>Axis2/C: axiom_soap_fault.h Source File</title>
<link href="doxygen.css" rel="stylesheet" type="text/css">
<link href="tabs.css" rel="stylesheet" type="text/css">
</head><body>
<!-- Generated by Doxygen 1.5.3 -->
<div class="tabs">
  <ul>
    <li><a href="index.html"><span>Main&nbsp;Page</span></a></li>
    <li><a href="modules.html"><span>Modules</span></a></li>
    <li><a href="annotated.html"><span>Classes</span></a></li>
    <li class="current"><a href="files.html"><span>Files</span></a></li>
    <li><a href="dirs.html"><span>Directories</span></a></li>
    <li><a href="pages.html"><span>Related&nbsp;Pages</span></a></li>
    <li><a href="examples.html"><span>Examples</span></a></li>
    <li>
      <form action="search.php" method="get">
        <table cellspacing="0" cellpadding="0" border="0">
          <tr>
            <td><label>&nbsp;<u>S</u>earch&nbsp;for&nbsp;</label></td>
            <td><input type="text" name="query" value="" size="20" accesskey="s"/></td>
          </tr>
        </table>
      </form>
    </li>
  </ul>
</div>
<div class="nav">
<a class="el" href="dir_f60961de8e5edc3b2658ef023e959e45.html">deploy</a>&nbsp;&raquo&nbsp;<a class="el" href="dir_6b4e91e54b7316b376882a6402adbf44.html">include</a>&nbsp;&raquo&nbsp;<a class="el" href="dir_df3a7695d5a9e696f30b948b566829e7.html">axis2-1.6.0</a></div>
<h1>axiom_soap_fault.h</h1><a href="axiom__soap__fault_8h.html">Go to the documentation of this file.</a><div class="fragment"><pre class="fragment"><a name="l00001"></a>00001 
<a name="l00002"></a>00002 <span class="comment">/*</span>
<a name="l00003"></a>00003 <span class="comment"> * Licensed to the Apache Software Foundation (ASF) under one or more</span>
<a name="l00004"></a>00004 <span class="comment"> * contributor license agreements.  See the NOTICE file distributed with</span>
<a name="l00005"></a>00005 <span class="comment"> * this work for additional information regarding copyright ownership.</span>
<a name="l00006"></a>00006 <span class="comment"> * The ASF licenses this file to You under the Apache License, Version 2.0</span>
<a name="l00007"></a>00007 <span class="comment"> * (the "License"); you may not use this file except in compliance with</span>
<a name="l00008"></a>00008 <span class="comment"> * the License.  You may obtain a copy of the License at</span>
<a name="l00009"></a>00009 <span class="comment"> *</span>
<a name="l00010"></a>00010 <span class="comment"> *      http://www.apache.org/licenses/LICENSE-2.0</span>
<a name="l00011"></a>00011 <span class="comment"> *</span>
<a name="l00012"></a>00012 <span class="comment"> * Unless required by applicable law or agreed to in writing, software</span>
<a name="l00013"></a>00013 <span class="comment"> * distributed under the License is distributed on an "AS IS" BASIS,</span>
<a name="l00014"></a>00014 <span class="comment"> * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.</span>
<a name="l00015"></a>00015 <span class="comment"> * See the License for the specific language governing permissions and</span>
<a name="l00016"></a>00016 <span class="comment"> * limitations under the License.</span>
<a name="l00017"></a>00017 <span class="comment"> */</span>
<a name="l00018"></a>00018 
<a name="l00019"></a>00019 <span class="preprocessor">#ifndef AXIOM_SOAP_FAULT_H</span>
<a name="l00020"></a>00020 <span class="preprocessor"></span><span class="preprocessor">#define AXIOM_SOAP_FAULT_H</span>
<a name="l00021"></a>00021 <span class="preprocessor"></span>
<a name="l00026"></a>00026 <span class="preprocessor">#include &lt;axiom_soap_const.h&gt;</span>
<a name="l00027"></a>00027 <span class="preprocessor">#include &lt;<a class="code" href="axutil__env_8h.html" title="Axis2 environment that acts as a container for error, log and memory allocator routines...">axutil_env.h</a>&gt;</span>
<a name="l00028"></a>00028 <span class="preprocessor">#include &lt;<a class="code" href="axiom__node_8h.html" title="defines axiom_node struct">axiom_node.h</a>&gt;</span>
<a name="l00029"></a>00029 <span class="preprocessor">#include &lt;axiom_element.h&gt;</span>
<a name="l00030"></a>00030 
<a name="l00031"></a>00031 <span class="preprocessor">#ifdef __cplusplus</span>
<a name="l00032"></a>00032 <span class="preprocessor"></span><span class="keyword">extern</span> <span class="stringliteral">"C"</span>
<a name="l00033"></a>00033 {
<a name="l00034"></a>00034 <span class="preprocessor">#endif</span>
<a name="l00035"></a>00035 <span class="preprocessor"></span>
<a name="l00036"></a>00036     <span class="keyword">typedef</span> <span class="keyword">struct </span>axiom_soap_fault axiom_soap_fault_t;
<a name="l00037"></a>00037 
<a name="l00038"></a>00038     <span class="keyword">struct </span>axiom_soap_fault_reason;
<a name="l00039"></a>00039     <span class="keyword">struct </span>axiom_soap_fault_detail;
<a name="l00040"></a>00040     <span class="keyword">struct </span>axiom_soap_fault_sub_code;
<a name="l00041"></a>00041     <span class="keyword">struct </span>axiom_soap_fault_code;
<a name="l00042"></a>00042     <span class="keyword">struct </span>axiom_soap_fault_node;
<a name="l00043"></a>00043     <span class="keyword">struct </span>axiom_soap_fault_role;
<a name="l00044"></a>00044     <span class="keyword">struct </span>axiom_soap_fault_text;
<a name="l00045"></a>00045     <span class="keyword">struct </span>axiom_soap_fault_value;
<a name="l00046"></a>00046     <span class="keyword">struct </span>axiom_soap_body;
<a name="l00047"></a>00047     <span class="keyword">struct </span>axiom_soap_builder;
<a name="l00048"></a>00048 
<a name="l00064"></a>00064     AXIS2_EXTERN axiom_soap_fault_t *AXIS2_CALL
<a name="l00065"></a>00065     <a class="code" href="group__axiom__soap__fault.html#g26600e5d6fad315500cad1752d60353d">axiom_soap_fault_create_with_parent</a>(
<a name="l00066"></a>00066         <span class="keyword">const</span> <a class="code" href="structaxutil__env.html" title="Axis2 Environment struct.">axutil_env_t</a> * env,
<a name="l00067"></a>00067         <span class="keyword">struct</span> axiom_soap_body *parent);
<a name="l00068"></a>00068 
<a name="l00078"></a>00078     AXIS2_EXTERN axiom_soap_fault_t *AXIS2_CALL
<a name="l00079"></a>00079     <a class="code" href="group__axiom__soap__fault.html#gde9cbf2c313c0adeedea3ac60bf148b4">axiom_soap_fault_create_with_exception</a>(
<a name="l00080"></a>00080         <span class="keyword">const</span> <a class="code" href="structaxutil__env.html" title="Axis2 Environment struct.">axutil_env_t</a> * env,
<a name="l00081"></a>00081         <span class="keyword">struct</span> axiom_soap_body *parent,
<a name="l00082"></a>00082         axis2_char_t * exception);
<a name="l00083"></a>00083 
<a name="l00094"></a>00094     AXIS2_EXTERN axiom_soap_fault_t *AXIS2_CALL
<a name="l00095"></a>00095     <a class="code" href="group__axiom__soap__fault.html#ga4dfaa0b36503de97f4b4a6b9c1fce94">axiom_soap_fault_create_default_fault</a>(
<a name="l00096"></a>00096         <span class="keyword">const</span> <a class="code" href="structaxutil__env.html" title="Axis2 Environment struct.">axutil_env_t</a> * env,
<a name="l00097"></a>00097         <span class="keyword">struct</span> axiom_soap_body *parent,
<a name="l00098"></a>00098         <span class="keyword">const</span> axis2_char_t * code_value,
<a name="l00099"></a>00099         <span class="keyword">const</span> axis2_char_t * reason_text,
<a name="l00100"></a>00100         <span class="keyword">const</span> <span class="keywordtype">int</span> soap_version);
<a name="l00101"></a>00101 
<a name="l00110"></a>00110     AXIS2_EXTERN <span class="keywordtype">void</span> AXIS2_CALL
<a name="l00111"></a>00111     <a class="code" href="group__axiom__soap__fault.html#g42e25abd4f06fe253fcb286cde0b2cb8">axiom_soap_fault_free</a>(
<a name="l00112"></a>00112         axiom_soap_fault_t * fault,
<a name="l00113"></a>00113         <span class="keyword">const</span> <a class="code" href="structaxutil__env.html" title="Axis2 Environment struct.">axutil_env_t</a> * env);
<a name="l00114"></a>00114 
<a name="l00124"></a>00124     AXIS2_EXTERN <span class="keyword">struct </span>axiom_soap_fault_code *AXIS2_CALL
<a name="l00125"></a>00125     <a class="code" href="group__axiom__soap__fault.html#gdc09d5b63b273d0ad5ab13a1e6fed5c8">axiom_soap_fault_get_code</a>(
<a name="l00126"></a>00126          axiom_soap_fault_t * fault,
<a name="l00127"></a>00127          <span class="keyword">const</span> <a class="code" href="structaxutil__env.html" title="Axis2 Environment struct.">axutil_env_t</a> * env);
<a name="l00128"></a>00128 
<a name="l00136"></a>00136     AXIS2_EXTERN <span class="keyword">struct </span>axiom_soap_fault_reason *AXIS2_CALL
<a name="l00137"></a>00137     <a class="code" href="group__axiom__soap__fault.html#g849b1969173ab4ff6394867262770179">axiom_soap_fault_get_reason</a>(
<a name="l00138"></a>00138          axiom_soap_fault_t * fault,
<a name="l00139"></a>00139          <span class="keyword">const</span> <a class="code" href="structaxutil__env.html" title="Axis2 Environment struct.">axutil_env_t</a> * env);
<a name="l00140"></a>00140 
<a name="l00147"></a>00147     AXIS2_EXTERN <span class="keyword">struct </span>axiom_soap_fault_node *AXIS2_CALL
<a name="l00148"></a>00148     <a class="code" href="group__axiom__soap__fault.html#ga63629df8b84a56382c391e4fc0f30e1">axiom_soap_fault_get_node</a>(
<a name="l00149"></a>00149         axiom_soap_fault_t * fault,
<a name="l00150"></a>00150         <span class="keyword">const</span> <a class="code" href="structaxutil__env.html" title="Axis2 Environment struct.">axutil_env_t</a> * env);
<a name="l00151"></a>00151 
<a name="l00158"></a>00158     AXIS2_EXTERN <span class="keyword">struct </span>axiom_soap_fault_role *AXIS2_CALL
<a name="l00159"></a>00159     <a class="code" href="group__axiom__soap__fault.html#gd83a049e57b3aec2aba62dd8d3349a94">axiom_soap_fault_get_role</a>(
<a name="l00160"></a>00160          axiom_soap_fault_t * fault,
<a name="l00161"></a>00161          <span class="keyword">const</span> <a class="code" href="structaxutil__env.html" title="Axis2 Environment struct.">axutil_env_t</a> * env);
<a name="l00162"></a>00162 
<a name="l00169"></a>00169     AXIS2_EXTERN <span class="keyword">struct </span>axiom_soap_fault_detail *AXIS2_CALL
<a name="l00170"></a>00170     <a class="code" href="group__axiom__soap__fault.html#gefcbf6ce5d6408bc3f56da09ac2f9afa">axiom_soap_fault_get_detail</a>(
<a name="l00171"></a>00171          axiom_soap_fault_t * fault,
<a name="l00172"></a>00172          <span class="keyword">const</span> <a class="code" href="structaxutil__env.html" title="Axis2 Environment struct.">axutil_env_t</a> * env);
<a name="l00173"></a>00173 
<a name="l00180"></a>00180     AXIS2_EXTERN axis2_char_t *AXIS2_CALL
<a name="l00181"></a>00181     <a class="code" href="group__axiom__soap__fault.html#g09b8c77a2a3de953b14fa8a56a8ed11e">axiom_soap_fault_get_exception</a>(
<a name="l00182"></a>00182         axiom_soap_fault_t * fault,
<a name="l00183"></a>00183         <span class="keyword">const</span> <a class="code" href="structaxutil__env.html" title="Axis2 Environment struct.">axutil_env_t</a> * env);
<a name="l00184"></a>00184 
<a name="l00191"></a>00191     AXIS2_EXTERN axis2_status_t AXIS2_CALL
<a name="l00192"></a>00192     <a class="code" href="group__axiom__soap__fault.html#g0f64a1849d8b05a3281e6df8e1c0602b">axiom_soap_fault_set_exception</a>(
<a name="l00193"></a>00193         axiom_soap_fault_t * fault,
<a name="l00194"></a>00194         <span class="keyword">const</span> <a class="code" href="structaxutil__env.html" title="Axis2 Environment struct.">axutil_env_t</a> * env,
<a name="l00195"></a>00195         axis2_char_t * exception);
<a name="l00196"></a>00196 
<a name="l00205"></a>00205     AXIS2_EXTERN axiom_node_t *AXIS2_CALL
<a name="l00206"></a>00206     <a class="code" href="group__axiom__soap__fault.html#g10bfdaaa36e70a7cab19f4d871cac698">axiom_soap_fault_get_base_node</a>(
<a name="l00207"></a>00207         axiom_soap_fault_t * fault,
<a name="l00208"></a>00208         <span class="keyword">const</span> <a class="code" href="structaxutil__env.html" title="Axis2 Environment struct.">axutil_env_t</a> * env);
<a name="l00209"></a>00209 
<a name="l00211"></a>00211 <span class="preprocessor">#ifdef __cplusplus</span>
<a name="l00212"></a>00212 <span class="preprocessor"></span>}
<a name="l00213"></a>00213 <span class="preprocessor">#endif</span>
<a name="l00214"></a>00214 <span class="preprocessor"></span>
<a name="l00215"></a>00215 <span class="preprocessor">#endif                          </span><span class="comment">/* AXIOM_SOAP_FAULT_H */</span>
</pre></div><hr size="1"><address style="text-align: right;"><small>Generated on Fri Apr 17 11:49:42 2009 for Axis2/C by&nbsp;
<a href="http://www.doxygen.org/index.html">
<img src="doxygen.png" alt="doxygen" align="middle" border="0"></a> 1.5.3 </small></address>
</body>
</html>


<|start_filename|>axiom/src/util/om_util.c<|end_filename|>

/*
 * 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.
 */

#include <axiom_node.h>
#include <axiom_element.h>
#include <axiom_document.h>
#include <axutil_array_list.h>
#include <axutil_uri.h>
#include <axiom_util.h>


AXIS2_EXTERN axis2_char_t *AXIS2_CALL
axiom_util_get_child_text(axiom_node_t *node, 
    const axutil_env_t * env)
{
    axiom_element_t *ele = NULL;
    axis2_char_t *txt = NULL;

    ele = (axiom_element_t*)axiom_node_get_data_element(node, env);
    txt = axiom_element_get_text(ele, env, node);
    
    return txt;
}

AXIS2_EXTERN axiom_element_t *AXIS2_CALL
axiom_util_get_first_child_element_with_uri(
    axiom_node_t * ele_node,
    const axutil_env_t * env,
    axis2_char_t * uri,
    axiom_node_t ** child)
{
    axiom_node_t *child_node = NULL;

    if (!ele_node || !uri)
    {
        AXIS2_ERROR_SET(env->error,
                        AXIS2_ERROR_INVALID_NULL_PARAM, AXIS2_FAILURE);
        AXIS2_LOG_ERROR(env->log, AXIS2_LOG_SI, "Element node or uri is NULL");
        return NULL;
    }

    child_node = axiom_node_get_first_child(ele_node, env);
    while (child_node)
    {
        if (axiom_node_get_node_type(child_node, env) == AXIOM_ELEMENT)
        {
            axiom_element_t *child_ele = NULL;
            axiom_namespace_t *ns = NULL;

            child_ele = (axiom_element_t *)
                axiom_node_get_data_element(child_node, env);
            ns = axiom_element_get_namespace(child_ele, env, child_node);
            if (ns)
            {
                axis2_char_t *child_uri = NULL;
                child_uri = axiom_namespace_get_uri(ns, env);
                if (child_uri && axutil_strcmp(child_uri, uri) == 0)
                {
                    (*child) = child_node;
                    return child_ele;
                }
            }
        }
        child_node = axiom_node_get_next_sibling(child_node, env);
    }
    return NULL;
}

AXIS2_EXTERN axiom_element_t *AXIS2_CALL
axiom_util_get_next_sibling_element_with_uri(
    axiom_node_t * ele_node,
    const axutil_env_t * env,
    axis2_char_t * uri,
    axiom_node_t ** next_node)
{
    axiom_node_t *next_sib_node = NULL;
    if (!ele_node || !uri)
    {
        AXIS2_ERROR_SET(env->error,
                        AXIS2_ERROR_INVALID_NULL_PARAM, AXIS2_FAILURE);
        AXIS2_LOG_ERROR(env->log, AXIS2_LOG_SI, "Element node or uri is NULL");
        return NULL;
    }

    next_sib_node = axiom_node_get_next_sibling(ele_node, env);
    while (next_sib_node)
    {
        if (axiom_node_get_node_type(next_sib_node, env) == AXIOM_ELEMENT)
        {
            axiom_element_t *sib_ele = NULL;
            axiom_namespace_t *ns = NULL;

            sib_ele = (axiom_element_t *)
                axiom_node_get_data_element(next_sib_node, env);
            ns = axiom_element_get_namespace(sib_ele, env, next_sib_node);
            if (ns)
            {
                axis2_char_t *sib_uri = NULL;
                sib_uri = axiom_namespace_get_uri(ns, env);
                if (sib_uri && axutil_strcmp(sib_uri, uri) == 0)
                {
                    (*next_node) = next_sib_node;
                    return sib_ele;
                }
            }
        }
        next_sib_node = axiom_node_get_next_sibling(next_sib_node, env);
    }
    return NULL;
}

AXIS2_EXTERN axiom_element_t *AXIS2_CALL
axiom_util_get_first_child_element(
    axiom_element_t * ele,
    const axutil_env_t * env,
    axiom_node_t * ele_node,
    axiom_node_t ** child_node)
{
    AXIS2_PARAM_CHECK(env->error, ele_node, NULL);
    AXIS2_PARAM_CHECK(env->error, child_node, NULL);

    return axiom_element_get_first_element(ele, env, ele_node, child_node);
}

AXIS2_EXTERN axiom_element_t *AXIS2_CALL
axiom_util_get_last_child_element(
    axiom_element_t * ele,
    const axutil_env_t * env,
    axiom_node_t * ele_node,
    axiom_node_t ** child_node)
{
    axiom_node_t *last_node = NULL;
    AXIS2_PARAM_CHECK(env->error, ele_node, NULL);
    AXIS2_PARAM_CHECK(env->error, child_node, NULL);

    last_node = axiom_node_get_last_child(ele_node, env);
    while (last_node)
    {
        if (axiom_node_get_node_type(last_node, env) == AXIOM_ELEMENT)
        {
            *child_node = last_node;
            return (axiom_element_t *)
                axiom_node_get_data_element(last_node, env);

        }
        last_node = axiom_node_get_previous_sibling(ele_node, env);
    }
    return NULL;
}

AXIS2_EXTERN axiom_element_t *AXIS2_CALL
axiom_util_get_next_sibling_element(
    axiom_element_t * ele,
    const axutil_env_t * env,
    axiom_node_t * ele_node,
    axiom_node_t ** next_node)
{
    axiom_node_t *next_sibling = NULL;
    AXIS2_PARAM_CHECK(env->error, ele_node, NULL);

    next_sibling = axiom_node_get_next_sibling(ele_node, env);
    while (next_sibling)
    {
        if (axiom_node_get_node_type(next_sibling, env) == AXIOM_ELEMENT)
        {
            *next_node = next_sibling;
            return (axiom_element_t *)
                axiom_node_get_data_element(next_sibling, env);
        }
        next_sibling = axiom_node_get_next_sibling(next_sibling, env);
    }
    return NULL;
}

AXIS2_EXTERN axiom_element_t *AXIS2_CALL
axiom_util_get_first_child_element_with_localname(
    axiom_element_t * ele,
    const axutil_env_t * env,
    axiom_node_t * ele_node,
    axis2_char_t * localname,
    axiom_node_t ** child_node)
{
    axiom_node_t *child = NULL;
    axiom_node_t *next_sibling = NULL;
    axis2_char_t *child_localname = NULL;
    axiom_element_t *om_ele = NULL;
    AXIS2_PARAM_CHECK(env->error, ele_node, NULL);
    AXIS2_PARAM_CHECK(env->error, child_node, NULL);
    AXIS2_PARAM_CHECK(env->error, localname, NULL);

    child = axiom_node_get_first_child(ele_node, env);
    if (child)
    {
        if (axiom_node_get_node_type(child, env) == AXIOM_ELEMENT)
        {
            om_ele = (axiom_element_t *)
                axiom_node_get_data_element(child, env);
            if (om_ele)
            {
                child_localname = axiom_element_get_localname(om_ele, env);
                if (child_localname &&
                    axutil_strcmp(child_localname, localname) == 0)
                {
                    *child_node = child;
                    return om_ele;
                }
            }
        }
        om_ele = NULL;
        child_localname = NULL;
    }

    next_sibling = axiom_node_get_next_sibling(child, env);
    while (next_sibling)
    {
        if (axiom_node_get_node_type(next_sibling, env) == AXIOM_ELEMENT)
        {
            om_ele = (axiom_element_t *)
                axiom_node_get_data_element(next_sibling, env);
            if (om_ele)
            {
                child_localname = axiom_element_get_localname(om_ele, env);
                if (child_localname &&
                    axutil_strcmp(child_localname, localname) == 0)
                {
                    *child_node = next_sibling;
                    return om_ele;
                }

            }
            om_ele = NULL;
            child_localname = NULL;
        }
        next_sibling = axiom_node_get_next_sibling(next_sibling, env);
    }
    return NULL;
}

AXIS2_EXTERN axiom_element_t *AXIS2_CALL
axiom_util_get_last_child_element_with_localname(
    axiom_element_t * ele,
    const axutil_env_t * env,
    axiom_node_t * ele_node,
    axis2_char_t * localname,
    axiom_node_t ** child_node)
{
    axiom_node_t *child = NULL;
    axiom_element_t *om_ele = NULL;
    axis2_char_t *child_localname = NULL;

    AXIS2_PARAM_CHECK(env->error, ele_node, NULL);
    AXIS2_PARAM_CHECK(env->error, localname, NULL);
    AXIS2_PARAM_CHECK(env->error, child_node, NULL);

    child = axiom_node_get_last_child(ele_node, env);
    while (child)
    {
        if (axiom_node_get_node_type(child, env) == AXIOM_ELEMENT)
        {
            om_ele = (axiom_element_t *)
                axiom_node_get_data_element(ele_node, env);
            if (om_ele)
            {
                child_localname = axiom_element_get_localname(om_ele, env);
                if (child_localname &&
                    axutil_strcmp(child_localname, localname) == 0)
                {
                    *child_node = child;
                    return om_ele;
                }

            }
            om_ele = NULL;
            child_localname = NULL;
        }
        child = axiom_node_get_previous_sibling(child, env);
    }
    return NULL;
}

AXIS2_EXTERN axiom_element_t *AXIS2_CALL
axiom_util_get_next_siblng_element_with_localname(
    axiom_element_t * ele,
    const axutil_env_t * env,
    axiom_node_t * ele_node,
    axis2_char_t * localname,
    axiom_node_t ** next_node)
{
    axiom_node_t *next_sibling = NULL;
    axiom_element_t *om_ele = NULL;
    axis2_char_t *ele_localname = NULL;

    AXIS2_PARAM_CHECK(env->error, ele_node, NULL);

    next_sibling = axiom_node_get_next_sibling(ele_node, env);
    while (next_sibling)
    {
        if (axiom_node_get_node_type(next_sibling, env) == AXIOM_ELEMENT)
        {
            om_ele = (axiom_element_t *)
                axiom_node_get_data_element(next_sibling, env);
            if (om_ele)
            {
                ele_localname = axiom_element_get_localname(om_ele, env);
                if (ele_localname &&
                    axutil_strcmp(localname, ele_localname) == 0)
                {
                    *next_node = next_sibling;
                    return om_ele;
                }
            }
            om_ele = NULL;
            ele_localname = NULL;
        }
        next_sibling = axiom_node_get_next_sibling(next_sibling, env);
    }
    return NULL;
}

AXIS2_EXTERN axiom_element_t *AXIS2_CALL
axiom_util_get_first_child_element_with_uri_localname(
    axiom_element_t * ele,
    const axutil_env_t * env,
    axiom_node_t * ele_node,
    axis2_char_t * localname,
    axis2_char_t * uri,
    axiom_node_t ** child_node)
{
    axiom_node_t *child = NULL;
    axiom_node_t *next_sibling = NULL;
    axis2_char_t *child_localname = NULL;
    axiom_element_t *om_ele = NULL;
    axiom_namespace_t *ns = NULL;
    axis2_char_t *ns_uri = NULL;

    AXIS2_PARAM_CHECK(env->error, ele_node, NULL);
    AXIS2_PARAM_CHECK(env->error, child_node, NULL);
    AXIS2_PARAM_CHECK(env->error, localname, NULL);
    AXIS2_PARAM_CHECK(env->error, uri, NULL);

    child = axiom_node_get_first_child(ele_node, env);
    if (!child)
    {
        return NULL;

    }
    if (axiom_node_get_node_type(ele_node, env) == AXIOM_ELEMENT)
    {
        om_ele = (axiom_element_t *) axiom_node_get_data_element(child, env);
        if (om_ele)
        {
            child_localname = axiom_element_get_localname(om_ele, env);
            ns = axiom_element_get_namespace(om_ele, env, child);
            if (ns)
            {
                ns_uri = axiom_namespace_get_uri(ns, env);
            }

            if ((child_localname) &&
                (axutil_strcmp(child_localname, localname) == 0) && (ns_uri)
                && (axutil_strcmp(ns_uri, uri) == 0))
            {
                *child_node = child;
                return om_ele;
            }
        }
    }
    om_ele = NULL;
    child_localname = NULL;
    ns = NULL;
    ns_uri = NULL;

    next_sibling = axiom_node_get_next_sibling(child, env);
    while (next_sibling)
    {
        if (axiom_node_get_node_type(next_sibling, env) == AXIOM_ELEMENT)
        {
            om_ele =
                (axiom_element_t *) axiom_node_get_data_element(next_sibling,
                                                                env);
            if (om_ele)
            {
                child_localname = axiom_element_get_localname(om_ele, env);
                ns = axiom_element_get_namespace(om_ele, env, next_sibling);
                if (ns)
                {
                    ns_uri = axiom_namespace_get_uri(ns, env);
                }

                if ((child_localname) &&
                    (axutil_strcmp(child_localname, localname) == 0) && (ns_uri)
                    && (axutil_strcmp(ns_uri, uri) == 0))
                {
                    *child_node = next_sibling;
                    return om_ele;
                }

            }
            om_ele = NULL;
            child_localname = NULL;
            ns = NULL;
            ns_uri = NULL;
        }
        next_sibling = axiom_node_get_next_sibling(next_sibling, env);
    }
    return NULL;
}
AXIS2_EXTERN axiom_element_t *AXIS2_CALL
axiom_util_get_last_child_element_with_uri_localname(
    axiom_element_t * ele,
    const axutil_env_t * env,
    axiom_node_t * ele_node,
    axis2_char_t * localname,
    axis2_char_t * uri,
    axiom_node_t ** child_node)
{
    axiom_node_t *child = NULL;
    axiom_element_t *om_ele = NULL;
    axis2_char_t *child_localname = NULL;
    axiom_namespace_t *ns = NULL;
    axis2_char_t *ns_uri = NULL;

    AXIS2_PARAM_CHECK(env->error, ele_node, NULL);
    AXIS2_PARAM_CHECK(env->error, localname, NULL);
    AXIS2_PARAM_CHECK(env->error, child_node, NULL);
    AXIS2_PARAM_CHECK(env->error, uri, NULL);

    child = axiom_node_get_last_child(ele_node, env);
    while (child)
    {
        if (axiom_node_get_node_type(child, env) == AXIOM_ELEMENT)
        {
            om_ele =
                (axiom_element_t *) axiom_node_get_data_element(ele_node, env);
            if (om_ele)
            {
                ns = axiom_element_get_namespace(om_ele, env, ele_node);
                if (ns)
                {
                    ns_uri = axiom_namespace_get_uri(ns, env);
                }
                child_localname = axiom_element_get_localname(om_ele, env);
                if (child_localname &&
                    (axutil_strcmp(child_localname, localname) == 0) && (ns_uri)
                    && (axutil_strcmp(ns_uri, uri) == 0))
                {
                    *child_node = child;
                    return om_ele;
                }
            }
            om_ele = NULL;
            child_localname = NULL;
            ns = NULL;
            ns_uri = NULL;
        }
        child = axiom_node_get_previous_sibling(child, env);
    }
    return NULL;
}

AXIS2_EXTERN axiom_element_t *AXIS2_CALL
axiom_util_get_next_sibling_element_with_uri_localname(
    axiom_element_t * ele,
    const axutil_env_t * env,
    axiom_node_t * ele_node,
    axis2_char_t * localname,
    axis2_char_t * uri,
    axiom_node_t ** next_node)
{
    axiom_node_t *next_sibling = NULL;
    axiom_element_t *om_ele = NULL;
    axis2_char_t *ele_localname = NULL;
    axiom_namespace_t *ns = NULL;
    axis2_char_t *ns_uri = NULL;
    AXIS2_PARAM_CHECK(env->error, ele_node, NULL);

    next_sibling = axiom_node_get_next_sibling(ele_node, env);
    while (next_sibling)
    {
        if (axiom_node_get_node_type(next_sibling, env) == AXIOM_ELEMENT)
        {
            om_ele = (axiom_element_t *)
                axiom_node_get_data_element(next_sibling, env);
            if (om_ele)
            {
                ns = axiom_element_get_namespace(om_ele, env, next_sibling);
                if (ns)
                {
                    ns_uri = axiom_namespace_get_uri(ns, env);
                }
                ele_localname = axiom_element_get_localname(om_ele, env);
                if (ele_localname &&
                    (axutil_strcmp(localname, ele_localname) == 0) && (ns)
                    && (axutil_strcmp(ns_uri, uri) == 0))
                {
                    *next_node = next_sibling;
                    return om_ele;
                }
            }
            om_ele = NULL;
            ele_localname = NULL;
            ns_uri = NULL;
            ns = NULL;
        }
        next_sibling = axiom_node_get_next_sibling(next_sibling, env);
    }
    return NULL;
}

AXIS2_EXTERN axiom_element_t *AXIS2_CALL
axiom_util_get_first_child_element_with_localnames(
    axiom_element_t * ele,
    const axutil_env_t * env,
    axiom_node_t * ele_node,
    axutil_array_list_t * names,
    axiom_node_t ** child_node)
{
    axiom_node_t *child = NULL;
    axiom_node_t *next_sibling = NULL;
    axis2_char_t *child_localname = NULL;
    axis2_char_t *given_localname = NULL;
    axiom_element_t *om_ele = NULL;
    int size = 0;
    int i = 0;
    AXIS2_PARAM_CHECK(env->error, ele_node, NULL);
    AXIS2_PARAM_CHECK(env->error, child_node, NULL);
    AXIS2_PARAM_CHECK(env->error, names, NULL);

    child = axiom_node_get_first_child(ele_node, env);
    if (child)
    {
        if (axiom_node_get_node_type(child, env) == AXIOM_ELEMENT)
        {
            om_ele =
                (axiom_element_t *) axiom_node_get_data_element(child, env);
            if (om_ele)
            {
                size = axutil_array_list_size(names, env);
                child_localname = axiom_element_get_localname(om_ele, env);

                for (i = 0; i < size; i++)
                {
                    given_localname =
                        (axis2_char_t *) axutil_array_list_get(names, env, i);

                    if ((child_localname) && (NULL != given_localname) &&
                        axutil_strcmp(child_localname, given_localname) == 0)
                    {
                        *child_node = child;
                        return om_ele;
                    }
                    given_localname = NULL;
                }
            }
        }
        om_ele = NULL;
        child_localname = NULL;
        given_localname = NULL;
        size = 0;
    }

    next_sibling = axiom_node_get_next_sibling(child, env);
    while (next_sibling)
    {
        if (axiom_node_get_node_type(next_sibling, env) == AXIOM_ELEMENT)
        {
            om_ele =
                (axiom_element_t *) axiom_node_get_data_element(next_sibling,
                                                                env);
            if (om_ele)
            {
                size = axutil_array_list_size(names, env);
                child_localname = axiom_element_get_localname(om_ele, env);
                for (i = 0; i < size; i++)
                {
                    given_localname =
                        (axis2_char_t *) axutil_array_list_get(names, env, i);
                    if ((child_localname) && (NULL != given_localname) &&
                        (axutil_strcmp(child_localname, given_localname) == 0))
                    {
                        *child_node = next_sibling;
                        return om_ele;
                    }
                    given_localname = NULL;
                }
            }
            om_ele = NULL;
            child_localname = NULL;
            given_localname = NULL;
        }
        next_sibling = axiom_node_get_next_sibling(next_sibling, env);
    }
    return NULL;

}

AXIS2_EXTERN axiom_element_t *AXIS2_CALL
axiom_util_get_last_child_element_with_localnames(
    axiom_element_t * ele,
    const axutil_env_t * env,
    axiom_node_t * ele_node,
    axutil_array_list_t * names,
    axiom_node_t ** child_node)
{
    axiom_node_t *child = NULL;
    axiom_element_t *om_ele = NULL;
    axis2_char_t *child_localname = NULL;
    axis2_char_t *given_localname = NULL;
    int size = 0;
    int i = 0;

    AXIS2_PARAM_CHECK(env->error, ele_node, NULL);
    AXIS2_PARAM_CHECK(env->error, names, NULL);
    AXIS2_PARAM_CHECK(env->error, child_node, NULL);

    child = axiom_node_get_last_child(ele_node, env);
    while (child)
    {
        if (axiom_node_get_node_type(child, env) == AXIOM_ELEMENT)
        {
            om_ele = (axiom_element_t *)
                axiom_node_get_data_element(ele_node, env);
            if (om_ele)
            {
                size = axutil_array_list_size(names, env);
                for (i = 0; i < size; i++)
                {
                    given_localname =
                        (axis2_char_t *) axutil_array_list_get(names, env, i);
                    child_localname = axiom_element_get_localname(om_ele, env);
                    if (child_localname && (NULL != given_localname) &&
                        (axutil_strcmp(child_localname, given_localname) == 0))
                    {
                        *child_node = child;
                        return om_ele;
                    }
                }
            }
            om_ele = NULL;
            child_localname = NULL;
            given_localname = NULL;
        }
        child = axiom_node_get_previous_sibling(child, env);
    }
    return NULL;
}

AXIS2_EXTERN axiom_element_t *AXIS2_CALL
axiom_util_get_next_siblng_element_with_localnames(
    axiom_element_t * ele,
    const axutil_env_t * env,
    axiom_node_t * ele_node,
    axutil_array_list_t * names,
    axiom_node_t ** next_node)
{
    axiom_node_t *next_sibling = NULL;
    axiom_element_t *om_ele = NULL;
    axis2_char_t *ele_localname = NULL;
    axis2_char_t *given_localname = NULL;
    int size = 0;
    int i = 0;
    AXIS2_PARAM_CHECK(env->error, ele_node, NULL);
    AXIS2_PARAM_CHECK(env->error, names, NULL);
    AXIS2_PARAM_CHECK(env->error, next_node, NULL);

    next_sibling = axiom_node_get_next_sibling(ele_node, env);
    while (next_sibling)
    {
        if (axiom_node_get_node_type(next_sibling, env) == AXIOM_ELEMENT)
        {
            om_ele = (axiom_element_t *)
                axiom_node_get_data_element(next_sibling, env);
            if (om_ele)
            {
                size = axutil_array_list_size(names, env);
                for (i = 0; i < size; i++)
                {
                    given_localname =
                        (axis2_char_t *) axutil_array_list_get(names, env, i);
                    ele_localname = axiom_element_get_localname(om_ele, env);
                    if ((ele_localname) && (NULL != given_localname) &&
                        (axutil_strcmp(given_localname, ele_localname) == 0))
                    {
                        *next_node = next_sibling;
                        return om_ele;
                    }

                }
            }
            om_ele = NULL;
            ele_localname = NULL;
        }
        next_sibling = axiom_node_get_next_sibling(next_sibling, env);
    }
    return NULL;
}

AXIS2_EXTERN axiom_element_t *AXIS2_CALL
axiom_util_get_first_child_element_with_localname_attr(
    axiom_element_t * ele,
    const axutil_env_t * env,
    axiom_node_t * ele_node,
    axis2_char_t * localname,
    axis2_char_t * attr_name,
    axis2_char_t * attr_value,
    axiom_node_t ** child_node)
{
    axiom_node_t *child = NULL;
    axiom_node_t *next_sibling = NULL;
    axis2_char_t *child_localname = NULL;
    axiom_element_t *om_ele = NULL;
    axiom_attribute_t *om_attr = NULL;
    axutil_hash_t *attr_ht = NULL;
    axutil_hash_index_t *hi = NULL;
    axis2_char_t *om_attr_value = NULL;
    axis2_char_t *om_attr_name = NULL;

    AXIS2_PARAM_CHECK(env->error, ele_node, NULL);
    AXIS2_PARAM_CHECK(env->error, child_node, NULL);
    AXIS2_PARAM_CHECK(env->error, localname, NULL);
    AXIS2_PARAM_CHECK(env->error, attr_name, NULL);
    AXIS2_PARAM_CHECK(env->error, attr_value, NULL);

    child = axiom_node_get_first_child(ele_node, env);

    if (child)
    {
        if (axiom_node_get_node_type(child, env) == AXIOM_ELEMENT)
        {
            om_ele =
                (axiom_element_t *) axiom_node_get_data_element(child, env);
            if (om_ele)
            {

                child_localname = axiom_element_get_localname(om_ele, env);
                if (child_localname &&
                    axutil_strcmp(child_localname, localname) == 0)
                {
                    attr_ht = axiom_element_get_all_attributes(om_ele, env);
                    if (attr_ht)
                    {
                        for (hi = axutil_hash_first(attr_ht, env); hi;
                             hi = axutil_hash_next(env, hi))
                        {
                            void *val = NULL;
                            axutil_hash_this(hi, NULL, NULL, &val);
                            if (val)
                            {
                                om_attr = (axiom_attribute_t *) val;
                                om_attr_name =
                                    axiom_attribute_get_localname(om_attr, env);

                                om_attr_value =
                                    axiom_attribute_get_value(om_attr, env);
                                if (om_attr_name && NULL != om_attr_value &&
                                    axutil_strcmp(om_attr_name, attr_name) == 0
                                    && axutil_strcmp(om_attr_value,
                                                     attr_value) == 0)
                                {
                                    AXIS2_FREE(env->allocator, hi);
                                    *child_node = child;
                                    return om_ele;
                                }
                                om_attr = NULL;
                                om_attr_name = NULL;
                                om_attr_value = NULL;
                            }
                        }
                    }
                }
            }
        }
        om_ele = NULL;
        child_localname = NULL;
        hi = NULL;
    }

    next_sibling = axiom_node_get_next_sibling(child, env);
    while (next_sibling)
    {
        if (axiom_node_get_node_type(next_sibling, env) == AXIOM_ELEMENT)
        {
            om_ele =
                (axiom_element_t *) axiom_node_get_data_element(next_sibling,
                                                                env);
            if (om_ele)
            {
                child_localname = axiom_element_get_localname(om_ele, env);
                if (child_localname &&
                    axutil_strcmp(child_localname, localname) == 0)
                {
                    attr_ht = axiom_element_get_all_attributes(om_ele, env);
                    if (attr_ht)
                    {

                        for (hi = axutil_hash_first(attr_ht, env); hi;
                             hi = axutil_hash_next(env, hi))
                        {
                            void *val = NULL;
                            axutil_hash_this(hi, NULL, NULL, &val);
                            if (val)
                            {
                                om_attr = (axiom_attribute_t *) val;
                                om_attr_name =
                                    axiom_attribute_get_localname(om_attr, env);

                                om_attr_value =
                                    axiom_attribute_get_value(om_attr, env);

                                if (om_attr_name && NULL != om_attr_value &&
                                    axutil_strcmp(om_attr_name, attr_name) == 0
                                    && axutil_strcmp(om_attr_value,
                                                     attr_value) == 0)
                                {
                                    *child_node = child;
                                    return om_ele;
                                }
                                om_attr = NULL;
                                om_attr_name = NULL;
                                om_attr_value = NULL;
                            }
                        }
                    }
                }

            }
            om_ele = NULL;
            child_localname = NULL;
        }
        next_sibling = axiom_node_get_next_sibling(next_sibling, env);
    }
    return NULL;
}

AXIS2_EXTERN axiom_element_t *AXIS2_CALL
axiom_util_get_last_child_element_with_localname_attr(
    axiom_element_t * ele,
    const axutil_env_t * env,
    axiom_node_t * ele_node,
    axis2_char_t * localname,
    axis2_char_t * attr_name,
    axis2_char_t * attr_value,
    axiom_node_t ** child_node)
{
    axiom_node_t *child = NULL;
    axiom_element_t *om_ele = NULL;
    axis2_char_t *child_localname = NULL;
    axiom_attribute_t *om_attr = NULL;
    axis2_char_t *om_attr_name = NULL;
    axis2_char_t *om_attr_value = NULL;
    axutil_hash_index_t *hi = NULL;
    axutil_hash_t *attr_ht = NULL;

    AXIS2_PARAM_CHECK(env->error, ele_node, NULL);
    AXIS2_PARAM_CHECK(env->error, localname, NULL);
    AXIS2_PARAM_CHECK(env->error, child_node, NULL);

    child = axiom_node_get_last_child(ele_node, env);
    while (child)
    {
        if (axiom_node_get_node_type(child, env) == AXIOM_ELEMENT)
        {
            om_ele =
                (axiom_element_t *) axiom_node_get_data_element(ele_node, env);
            if (om_ele)
            {
                child_localname = axiom_element_get_localname(om_ele, env);
                if (child_localname &&
                    axutil_strcmp(child_localname, localname) == 0)
                {
                    attr_ht = axiom_element_get_all_attributes(om_ele, env);
                    if (attr_ht)
                    {
                        for (hi = axutil_hash_first(attr_ht, env); hi;
                             hi = axutil_hash_next(env, hi))
                        {
                            void *val = NULL;
                            axutil_hash_this(hi, NULL, NULL, &val);
                            if (val)
                            {
                                om_attr = (axiom_attribute_t *) val;
                                om_attr_name =
                                    axiom_attribute_get_localname(om_attr, env);

                                om_attr_value =
                                    axiom_attribute_get_value(om_attr, env);

                                if (om_attr_name && NULL != om_attr_value &&
                                    axutil_strcmp(om_attr_name, attr_name) == 0
                                    && axutil_strcmp(om_attr_value,
                                                     attr_value) == 0)
                                {
                                    AXIS2_FREE(env->allocator, hi);
                                    *child_node = child;
                                    return om_ele;
                                }
                                om_attr = NULL;
                                om_attr_name = NULL;
                                om_attr_value = NULL;
                            }
                        }
                    }
                }

            }
            om_ele = NULL;
            child_localname = NULL;
        }
        child = axiom_node_get_previous_sibling(child, env);
    }
    return NULL;
}

AXIS2_EXTERN axiom_element_t *AXIS2_CALL
axiom_util_get_next_siblng_element_with_localname_attr(
    axiom_element_t * ele,
    const axutil_env_t * env,
    axiom_node_t * ele_node,
    axis2_char_t * localname,
    axis2_char_t * attr_name,
    axis2_char_t * attr_value,
    axiom_node_t ** child_node)
{
    axiom_node_t *next_sibling = NULL;
    axiom_element_t *om_ele = NULL;
    axis2_char_t *ele_localname = NULL;
    axiom_attribute_t *om_attr = NULL;
    axis2_char_t *om_attr_value = NULL;
    axis2_char_t *om_attr_name = NULL;
    axutil_hash_t *attr_ht = NULL;
    axutil_hash_index_t *hi = NULL;

    AXIS2_PARAM_CHECK(env->error, ele_node, NULL);

    next_sibling = axiom_node_get_next_sibling(ele_node, env);
    while (next_sibling)
    {
        if (axiom_node_get_node_type(next_sibling, env) == AXIOM_ELEMENT)
        {
            om_ele = (axiom_element_t *)
                axiom_node_get_data_element(next_sibling, env);
            if (om_ele)
            {
                ele_localname = axiom_element_get_localname(om_ele, env);
                if (ele_localname &&
                    axutil_strcmp(localname, ele_localname) == 0)
                {
                    attr_ht = axiom_element_get_all_attributes(om_ele, env);
                    if (attr_ht)
                    {
                        for (hi = axutil_hash_first(attr_ht, env); hi;
                             hi = axutil_hash_next(env, hi))
                        {
                            void *val = NULL;
                            axutil_hash_this(hi, NULL, NULL, &val);
                            if (val)
                            {
                                om_attr = (axiom_attribute_t *) val;
                                om_attr_name =
                                    axiom_attribute_get_localname(om_attr, env);

                                om_attr_value =
                                    axiom_attribute_get_value(om_attr, env);

                                if (om_attr_name && NULL != om_attr_value &&
                                    axutil_strcmp(om_attr_name, attr_name) == 0
                                    && axutil_strcmp(om_attr_value,
                                                     attr_value) == 0)
                                {
                                    AXIS2_FREE(env->allocator, hi);
                                    *child_node = next_sibling;
                                    return om_ele;
                                }
                                om_attr = NULL;
                                om_attr_name = NULL;
                                om_attr_value = NULL;
                            }
                        }
                    }
                }
            }
            om_ele = NULL;
            ele_localname = NULL;
        }
        next_sibling = axiom_node_get_next_sibling(next_sibling, env);
    }
    return NULL;
}

AXIS2_EXTERN axis2_char_t *AXIS2_CALL
axiom_util_get_child_node_text(
    axiom_node_t * om_node,
    const axutil_env_t * env)
{
    axiom_element_t *om_ele = NULL;
    if (!om_node)
    {
        return NULL;
    }
    if (axiom_node_get_node_type(om_node, env) != AXIOM_ELEMENT)
    {
        return NULL;
    }

    om_ele = (axiom_element_t *) axiom_node_get_data_element(om_node, env);

    if (om_ele)
    {
        return axiom_element_get_text(om_ele, env, om_node);
    }
    return NULL;
}

AXIS2_EXTERN axis2_char_t *AXIS2_CALL
axiom_util_get_localname(
    axiom_node_t * node,
    const axutil_env_t * env)
{
    axiom_element_t *om_ele = NULL;

    AXIS2_ENV_CHECK(env, NULL);
    if (!node)
    {
        return NULL;
    }
    if (axiom_node_get_node_type(node, env) != AXIOM_ELEMENT)
    {
        return NULL;
    }
    om_ele = (axiom_element_t *) axiom_node_get_data_element(node, env);
    if (om_ele)
    {
        return axiom_element_get_localname(om_ele, env);
    }
    return NULL;
}

AXIS2_EXTERN axis2_char_t *AXIS2_CALL
axiom_util_get_node_namespace_uri(
    axiom_node_t * om_node,
    const axutil_env_t * env)
{
    axiom_element_t *om_ele = NULL;
    axiom_namespace_t *om_ns = NULL;
    if (!om_node)
    {
        return NULL;
    }
    if (axiom_node_get_node_type(om_node, env) == AXIOM_ELEMENT)
    {
        om_ele = axiom_node_get_data_element(om_node, env);
        if (!om_ele)
        {
            return NULL;
        }
        om_ns = axiom_element_get_namespace(om_ele, env, om_node);
        if (om_ns)
        {
            return axiom_namespace_get_uri(om_ns, env);
        }
    }
    return NULL;
}

AXIS2_EXTERN axiom_child_element_iterator_t *AXIS2_CALL
axiom_util_get_child_elements(
    axiom_element_t * om_ele,
    const axutil_env_t * env,
    axiom_node_t * om_node)
{
    axiom_element_t *first_ele = NULL;
    axiom_node_t *first_node = NULL;
    AXIS2_PARAM_CHECK(env->error, om_node, NULL);
    AXIS2_PARAM_CHECK(env->error, om_ele, NULL);
    first_ele =
        axiom_element_get_first_element(om_ele, env, om_node, &first_node);
    if (first_ele)
    {
        return axiom_child_element_iterator_create(env, first_node);
    }
    return NULL;
}

AXIS2_EXTERN axiom_document_t *AXIS2_CALL
axiom_util_new_document(
    const axutil_env_t * env,
    const axutil_uri_t * uri)
{
    axis2_char_t *path = NULL;
    axiom_xml_reader_t *reader = NULL;
    axiom_stax_builder_t *om_builder = NULL;
    axiom_document_t *doc = NULL;

    AXIS2_PARAM_CHECK(env->error, uri, NULL);
    /* This is temporary code. Later complete the code to read from uri and build
     * the document
     */
    if (uri)
    {
        path = axutil_uri_get_path((axutil_uri_t *) uri, env);
    }
    else
    {
        return NULL;
    }
    if (path)
    {
        reader = axiom_xml_reader_create_for_file(env, path, NULL);
    }
    else
    {
        return NULL;
    }
    if (reader)
    {
        om_builder = axiom_stax_builder_create(env, reader);
    }
    else
    {
        return NULL;
    }
    if (om_builder)
    {
        doc = axiom_stax_builder_get_document(om_builder, env);
    }
    else
    {
        return NULL;
    }
    if (doc)
    {
        axiom_document_build_all(doc, env);
    }
    else
    {
        return NULL;
    }

    return doc;
}


AXIS2_EXTERN axiom_node_t* AXIS2_CALL
axiom_util_get_node_by_local_name(
    const axutil_env_t *env,
    axiom_node_t *node,
    axis2_char_t *local_name)
{
    axis2_char_t *temp_name = NULL;

    if(!node)
    {
        return NULL;
    }

    if(axiom_node_get_node_type(node, env) != AXIOM_ELEMENT)
    {
        return NULL;
    }

    temp_name = axiom_util_get_localname(node, env);
    AXIS2_LOG_DEBUG(env->log, AXIS2_LOG_SI, 
        "[rampart]Checking node %s for %s", temp_name, local_name );

    if(!axutil_strcmp(temp_name, local_name))
    {
        /* Gottcha.. return this node */
        return node;
    }
    else
    {
        /* Doesn't match? Get the children and search for them */
        axiom_node_t *temp_node = NULL;

        temp_node = axiom_node_get_first_element(node, env);
        while(temp_node)
        {
            axiom_node_t *res_node = NULL;
            res_node = axiom_util_get_node_by_local_name(env, temp_node, local_name);
            if(res_node)
            {
                return res_node;
            }
            temp_node = axiom_node_get_next_sibling(temp_node, env);
        }
    }
    return NULL;
}


<|start_filename|>xdocs/api/html/group__axutil__date__time.html<|end_filename|>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html><head><meta http-equiv="Content-Type" content="text/html;charset=UTF-8">
<title>Axis2/C: Axutil_date_time</title>
<link href="doxygen.css" rel="stylesheet" type="text/css">
<link href="tabs.css" rel="stylesheet" type="text/css">
</head><body>
<!-- Generated by Doxygen 1.5.3 -->
<div class="tabs">
  <ul>
    <li><a href="index.html"><span>Main&nbsp;Page</span></a></li>
    <li><a href="modules.html"><span>Modules</span></a></li>
    <li><a href="annotated.html"><span>Classes</span></a></li>
    <li><a href="files.html"><span>Files</span></a></li>
    <li><a href="dirs.html"><span>Directories</span></a></li>
    <li><a href="pages.html"><span>Related&nbsp;Pages</span></a></li>
    <li><a href="examples.html"><span>Examples</span></a></li>
    <li>
      <form action="search.php" method="get">
        <table cellspacing="0" cellpadding="0" border="0">
          <tr>
            <td><label>&nbsp;<u>S</u>earch&nbsp;for&nbsp;</label></td>
            <td><input type="text" name="query" value="" size="20" accesskey="s"/></td>
          </tr>
        </table>
      </form>
    </li>
  </ul>
</div>
<h1>Axutil_date_time<br>
<small>
[<a class="el" href="group__axis2__util.html">utilities</a>]</small>
</h1><table border="0" cellpadding="0" cellspacing="0">
<tr><td></td></tr>
<tr><td colspan="2"><br><h2>Typedefs</h2></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="g4da4e2730a27e29e18a358849362f24e"></a><!-- doxytag: member="axutil_date_time::axutil_date_time_t" ref="g4da4e2730a27e29e18a358849362f24e" args="" -->
typedef struct <br>
axutil_date_time&nbsp;</td><td class="memItemRight" valign="bottom"><b>axutil_date_time_t</b></td></tr>

<tr><td colspan="2"><br><h2>Enumerations</h2></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top">enum &nbsp;</td><td class="memItemRight" valign="bottom"><b>axutil_date_time_comp_result_t</b> { <br>
&nbsp;&nbsp;<b>AXIS2_DATE_TIME_COMP_RES_FAILURE</b> =  -1, 
<b>AXIS2_DATE_TIME_COMP_RES_UNKNOWN</b>, 
<b>AXIS2_DATE_TIME_COMP_RES_EXPIRED</b>, 
<b>AXIS2_DATE_TIME_COMP_RES_EQUAL</b>, 
<br>
&nbsp;&nbsp;<b>AXIS2_DATE_TIME_COMP_RES_NOT_EXPIRED</b>
<br>
 }</td></tr>

<tr><td colspan="2"><br><h2>Functions</h2></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top">AXIS2_EXTERN <br>
axutil_date_time_t *&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__axutil__date__time.html#g0ee93dfad91aee27df47dfea472273c8">axutil_date_time_create</a> (const <a class="el" href="structaxutil__env.html">axutil_env_t</a> *env)</td></tr>

<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="gea6816360a669494d00e4d9b985ae415"></a><!-- doxytag: member="axutil_date_time::axutil_date_time_create_with_offset" ref="gea6816360a669494d00e4d9b985ae415" args="(const axutil_env_t *env, int offset)" -->
AXIS2_EXTERN <br>
axutil_date_time_t *&nbsp;</td><td class="memItemRight" valign="bottom"><b>axutil_date_time_create_with_offset</b> (const <a class="el" href="structaxutil__env.html">axutil_env_t</a> *env, int offset)</td></tr>

<tr><td class="memItemLeft" nowrap align="right" valign="top">AXIS2_EXTERN void&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__axutil__date__time.html#gbb52288b98f13be3abf56d29248503cf">axutil_date_time_free</a> (axutil_date_time_t *date_time, const <a class="el" href="structaxutil__env.html">axutil_env_t</a> *env)</td></tr>

<tr><td class="memItemLeft" nowrap align="right" valign="top">AXIS2_EXTERN <br>
axis2_status_t&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__axutil__date__time.html#g7e5fb45f3ddfccdbb4a22f27d07f6c58">axutil_date_time_deserialize_time</a> (axutil_date_time_t *date_time, const <a class="el" href="structaxutil__env.html">axutil_env_t</a> *env, const axis2_char_t *time_str)</td></tr>

<tr><td class="memItemLeft" nowrap align="right" valign="top">AXIS2_EXTERN <br>
axis2_status_t&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__axutil__date__time.html#g41eaf8f9265a60efd098ac335e89cb0c">axutil_date_time_deserialize_date</a> (axutil_date_time_t *date_time, const <a class="el" href="structaxutil__env.html">axutil_env_t</a> *env, const axis2_char_t *date_str)</td></tr>

<tr><td class="memItemLeft" nowrap align="right" valign="top">AXIS2_EXTERN <br>
axis2_status_t&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__axutil__date__time.html#g90dabd89b0fd6ecf8ea512d748276e25">axutil_date_time_deserialize_date_time</a> (axutil_date_time_t *date_time, const <a class="el" href="structaxutil__env.html">axutil_env_t</a> *env, const axis2_char_t *date_time_str)</td></tr>

<tr><td class="memItemLeft" nowrap align="right" valign="top">AXIS2_EXTERN <br>
axis2_status_t&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__axutil__date__time.html#g5f6d46804df89a05c8c4c6b5b97e47a3">axutil_date_time_set_date_time</a> (axutil_date_time_t *date_time, const <a class="el" href="structaxutil__env.html">axutil_env_t</a> *env, int year, int month, int date, int hour, int min, int second, int milliseconds)</td></tr>

<tr><td class="memItemLeft" nowrap align="right" valign="top">AXIS2_EXTERN <br>
axis2_char_t *&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__axutil__date__time.html#gad77bd48f8d22855617fc1678c08e8ad">axutil_date_time_serialize_time</a> (axutil_date_time_t *date_time, const <a class="el" href="structaxutil__env.html">axutil_env_t</a> *env)</td></tr>

<tr><td class="memItemLeft" nowrap align="right" valign="top">AXIS2_EXTERN <br>
axis2_char_t *&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__axutil__date__time.html#ga098865ec9b787dd25530c99f22b86e0">axutil_date_time_serialize_date</a> (axutil_date_time_t *date_time, const <a class="el" href="structaxutil__env.html">axutil_env_t</a> *env)</td></tr>

<tr><td class="memItemLeft" nowrap align="right" valign="top">AXIS2_EXTERN <br>
axis2_char_t *&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__axutil__date__time.html#g23bc467a35485b46ccf1ae91a8f63016">axutil_date_time_serialize_date_time</a> (axutil_date_time_t *date_time, const <a class="el" href="structaxutil__env.html">axutil_env_t</a> *env)</td></tr>

<tr><td class="memItemLeft" nowrap align="right" valign="top">AXIS2_EXTERN <br>
axis2_char_t *&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__axutil__date__time.html#g13442224f7ef0eec0c3bc37f58abd3de">axutil_date_time_serialize_date_time_without_millisecond</a> (axutil_date_time_t *date_time, const <a class="el" href="structaxutil__env.html">axutil_env_t</a> *env)</td></tr>

<tr><td class="memItemLeft" nowrap align="right" valign="top">AXIS2_EXTERN int&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__axutil__date__time.html#g0004b9c5cc5e1a1a5b3e3f517a7fcde5">axutil_date_time_get_year</a> (axutil_date_time_t *date_time, const <a class="el" href="structaxutil__env.html">axutil_env_t</a> *env)</td></tr>

<tr><td class="memItemLeft" nowrap align="right" valign="top">AXIS2_EXTERN int&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__axutil__date__time.html#ga444d7cd64986d34e38f60f2e30aa67d">axutil_date_time_get_month</a> (axutil_date_time_t *date_time, const <a class="el" href="structaxutil__env.html">axutil_env_t</a> *env)</td></tr>

<tr><td class="memItemLeft" nowrap align="right" valign="top">AXIS2_EXTERN int&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__axutil__date__time.html#g7f852dcbdfad79040077482406e5f0ad">axutil_date_time_get_date</a> (axutil_date_time_t *date_time, const <a class="el" href="structaxutil__env.html">axutil_env_t</a> *env)</td></tr>

<tr><td class="memItemLeft" nowrap align="right" valign="top">AXIS2_EXTERN int&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__axutil__date__time.html#g709d3af760c962dc1e69b8e7f821ab70">axutil_date_time_get_hour</a> (axutil_date_time_t *date_time, const <a class="el" href="structaxutil__env.html">axutil_env_t</a> *env)</td></tr>

<tr><td class="memItemLeft" nowrap align="right" valign="top">AXIS2_EXTERN int&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__axutil__date__time.html#gb90d270ad77e3ad9b2dd7ed4e0120a63">axutil_date_time_get_minute</a> (axutil_date_time_t *date_time, const <a class="el" href="structaxutil__env.html">axutil_env_t</a> *env)</td></tr>

<tr><td class="memItemLeft" nowrap align="right" valign="top">AXIS2_EXTERN int&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__axutil__date__time.html#g36782202dd7f88a864f748649b3dff6b">axutil_date_time_get_second</a> (axutil_date_time_t *date_time, const <a class="el" href="structaxutil__env.html">axutil_env_t</a> *env)</td></tr>

<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="gaee91945923ba46dd833ea4fefadb355"></a><!-- doxytag: member="axutil_date_time::axutil_date_time_get_msec" ref="gaee91945923ba46dd833ea4fefadb355" args="(axutil_date_time_t *date_time, const axutil_env_t *env)" -->
AXIS2_EXTERN int&nbsp;</td><td class="memItemRight" valign="bottom"><b>axutil_date_time_get_msec</b> (axutil_date_time_t *date_time, const <a class="el" href="structaxutil__env.html">axutil_env_t</a> *env)</td></tr>

<tr><td class="memItemLeft" nowrap align="right" valign="top">AXIS2_EXTERN <br>
axutil_date_time_comp_result_t&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__axutil__date__time.html#g325f00cb4ca6034f6f5eb518d86e2762">axutil_date_time_compare</a> (axutil_date_time_t *date_time, const <a class="el" href="structaxutil__env.html">axutil_env_t</a> *env, axutil_date_time_t *ref)</td></tr>

<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="g38a2fda9394cf820c042acca26d3727a"></a><!-- doxytag: member="axutil_date_time::axutil_date_time_utc_to_local" ref="g38a2fda9394cf820c042acca26d3727a" args="(axutil_date_time_t *date_time, const axutil_env_t *env, axis2_bool_t is_positive, int hour, int min)" -->
AXIS2_EXTERN <br>
axutil_date_time_t *&nbsp;</td><td class="memItemRight" valign="bottom"><b>axutil_date_time_utc_to_local</b> (axutil_date_time_t *date_time, const <a class="el" href="structaxutil__env.html">axutil_env_t</a> *env, axis2_bool_t is_positive, int hour, int min)</td></tr>

<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="gf6ded9a9079fac6f4c57a829fc2b4f8d"></a><!-- doxytag: member="axutil_date_time::axutil_date_time_local_to_utc" ref="gf6ded9a9079fac6f4c57a829fc2b4f8d" args="(axutil_date_time_t *date_time, const axutil_env_t *env)" -->
AXIS2_EXTERN <br>
axutil_date_time_t *&nbsp;</td><td class="memItemRight" valign="bottom"><b>axutil_date_time_local_to_utc</b> (axutil_date_time_t *date_time, const <a class="el" href="structaxutil__env.html">axutil_env_t</a> *env)</td></tr>

<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="g6081207d7dd1f35be47849694ebc010b"></a><!-- doxytag: member="axutil_date_time::axutil_date_time_get_time_zone_hour" ref="g6081207d7dd1f35be47849694ebc010b" args="(axutil_date_time_t *date_time, const axutil_env_t *env)" -->
AXIS2_EXTERN int&nbsp;</td><td class="memItemRight" valign="bottom"><b>axutil_date_time_get_time_zone_hour</b> (axutil_date_time_t *date_time, const <a class="el" href="structaxutil__env.html">axutil_env_t</a> *env)</td></tr>

<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="gde0f3aaf4e099d4f3c610367d742b987"></a><!-- doxytag: member="axutil_date_time::axutil_date_time_get_time_zone_minute" ref="gde0f3aaf4e099d4f3c610367d742b987" args="(axutil_date_time_t *date_time, const axutil_env_t *env)" -->
AXIS2_EXTERN int&nbsp;</td><td class="memItemRight" valign="bottom"><b>axutil_date_time_get_time_zone_minute</b> (axutil_date_time_t *date_time, const <a class="el" href="structaxutil__env.html">axutil_env_t</a> *env)</td></tr>

<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="g0290358524574d067eda7a683c6ebd39"></a><!-- doxytag: member="axutil_date_time::axutil_date_time_is_time_zone_positive" ref="g0290358524574d067eda7a683c6ebd39" args="(axutil_date_time_t *date_time, const axutil_env_t *env)" -->
AXIS2_EXTERN axis2_bool_t&nbsp;</td><td class="memItemRight" valign="bottom"><b>axutil_date_time_is_time_zone_positive</b> (axutil_date_time_t *date_time, const <a class="el" href="structaxutil__env.html">axutil_env_t</a> *env)</td></tr>

<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="g8d08022eecfba692d230b028570c2cac"></a><!-- doxytag: member="axutil_date_time::axutil_date_time_set_time_zone" ref="g8d08022eecfba692d230b028570c2cac" args="(axutil_date_time_t *date_time, const axutil_env_t *env, axis2_bool_t is_positive, int hour, int min)" -->
AXIS2_EXTERN <br>
axis2_status_t&nbsp;</td><td class="memItemRight" valign="bottom"><b>axutil_date_time_set_time_zone</b> (axutil_date_time_t *date_time, const <a class="el" href="structaxutil__env.html">axutil_env_t</a> *env, axis2_bool_t is_positive, int hour, int min)</td></tr>

<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="gcba63e32abcd477aa6bfa743cc25bcf2"></a><!-- doxytag: member="axutil_date_time::axutil_date_time_deserialize_date_time_with_time_zone" ref="gcba63e32abcd477aa6bfa743cc25bcf2" args="(axutil_date_time_t *date_time, const axutil_env_t *env, const axis2_char_t *date_time_str)" -->
AXIS2_EXTERN <br>
axis2_status_t&nbsp;</td><td class="memItemRight" valign="bottom"><b>axutil_date_time_deserialize_date_time_with_time_zone</b> (axutil_date_time_t *date_time, const <a class="el" href="structaxutil__env.html">axutil_env_t</a> *env, const axis2_char_t *date_time_str)</td></tr>

<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="g0fb1bc56d8175e0312c96d189552b418"></a><!-- doxytag: member="axutil_date_time::axutil_date_time_deserialize_time_with_time_zone" ref="g0fb1bc56d8175e0312c96d189552b418" args="(axutil_date_time_t *date_time, const axutil_env_t *env, const axis2_char_t *time_str)" -->
AXIS2_EXTERN <br>
axis2_status_t&nbsp;</td><td class="memItemRight" valign="bottom"><b>axutil_date_time_deserialize_time_with_time_zone</b> (axutil_date_time_t *date_time, const <a class="el" href="structaxutil__env.html">axutil_env_t</a> *env, const axis2_char_t *time_str)</td></tr>

<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="gc70e37f23df2f9ea4162b80b251c94b4"></a><!-- doxytag: member="axutil_date_time::axutil_date_time_serialize_date_time_with_time_zone" ref="gc70e37f23df2f9ea4162b80b251c94b4" args="(axutil_date_time_t *date_time, const axutil_env_t *env)" -->
AXIS2_EXTERN <br>
axis2_char_t *&nbsp;</td><td class="memItemRight" valign="bottom"><b>axutil_date_time_serialize_date_time_with_time_zone</b> (axutil_date_time_t *date_time, const <a class="el" href="structaxutil__env.html">axutil_env_t</a> *env)</td></tr>

<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="ga3f3216bc29d2824896ac920e27a4c27"></a><!-- doxytag: member="axutil_date_time::axutil_date_time_serialize_time_with_time_zone" ref="ga3f3216bc29d2824896ac920e27a4c27" args="(axutil_date_time_t *date_time, const axutil_env_t *env)" -->
AXIS2_EXTERN <br>
axis2_char_t *&nbsp;</td><td class="memItemRight" valign="bottom"><b>axutil_date_time_serialize_time_with_time_zone</b> (axutil_date_time_t *date_time, const <a class="el" href="structaxutil__env.html">axutil_env_t</a> *env)</td></tr>

<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="ga0f217050774bcc2c6d60f4f60852a4a"></a><!-- doxytag: member="axutil_date_time::axutil_date_time_is_utc" ref="ga0f217050774bcc2c6d60f4f60852a4a" args="(axutil_date_time_t *date_time, const axutil_env_t *env)" -->
AXIS2_EXTERN axis2_bool_t&nbsp;</td><td class="memItemRight" valign="bottom"><b>axutil_date_time_is_utc</b> (axutil_date_time_t *date_time, const <a class="el" href="structaxutil__env.html">axutil_env_t</a> *env)</td></tr>

</table>
<hr><h2>Function Documentation</h2>
<a class="anchor" name="g325f00cb4ca6034f6f5eb518d86e2762"></a><!-- doxytag: member="axutil_date_time.h::axutil_date_time_compare" ref="g325f00cb4ca6034f6f5eb518d86e2762" args="(axutil_date_time_t *date_time, const axutil_env_t *env, axutil_date_time_t *ref)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">AXIS2_EXTERN axutil_date_time_comp_result_t axutil_date_time_compare           </td>
          <td>(</td>
          <td class="paramtype">axutil_date_time_t *&nbsp;</td>
          <td class="paramname"> <em>date_time</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const <a class="el" href="structaxutil__env.html">axutil_env_t</a> *&nbsp;</td>
          <td class="paramname"> <em>env</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">axutil_date_time_t *&nbsp;</td>
          <td class="paramname"> <em>ref</em></td><td>&nbsp;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td><td width="100%"></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
Compare the date and time of  with the reference  If the  &lt; this returns NOT_EXPIRED. If the  &gt; this returns EXPIRED. If the  = this returns EQUAL. <dl compact><dt><b>Parameters:</b></dt><dd>
  <table border="0" cellspacing="2" cellpadding="0">
    <tr><td valign="top"></td><td valign="top"><em>date_time</em>&nbsp;</td><td>the date time to be compared </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>env</em>&nbsp;</td><td>pointer to environment struct. MUST NOT be NULL the reference date time </td></tr>
  </table>
</dl>
<dl class="return" compact><dt><b>Returns:</b></dt><dd>NOT_EXPIRED/EXPIRED/EQUAL if valid otherwise return FAILURE </dd></dl>

</div>
</div><p>
<a class="anchor" name="g0ee93dfad91aee27df47dfea472273c8"></a><!-- doxytag: member="axutil_date_time.h::axutil_date_time_create" ref="g0ee93dfad91aee27df47dfea472273c8" args="(const axutil_env_t *env)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">AXIS2_EXTERN axutil_date_time_t* axutil_date_time_create           </td>
          <td>(</td>
          <td class="paramtype">const <a class="el" href="structaxutil__env.html">axutil_env_t</a> *&nbsp;</td>
          <td class="paramname"> <em>env</em>          </td>
          <td>&nbsp;)&nbsp;</td>
          <td width="100%"></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
Creates axutil_date_time struct with current date time <dl compact><dt><b>Parameters:</b></dt><dd>
  <table border="0" cellspacing="2" cellpadding="0">
    <tr><td valign="top"></td><td valign="top"><em>env</em>&nbsp;</td><td>double pointer to environment struct. MUST NOT be NULL </td></tr>
  </table>
</dl>
<dl class="return" compact><dt><b>Returns:</b></dt><dd>pointer to newly created axutil_date_time struct </dd></dl>

</div>
</div><p>
<a class="anchor" name="g41eaf8f9265a60efd098ac335e89cb0c"></a><!-- doxytag: member="axutil_date_time.h::axutil_date_time_deserialize_date" ref="g41eaf8f9265a60efd098ac335e89cb0c" args="(axutil_date_time_t *date_time, const axutil_env_t *env, const axis2_char_t *date_str)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">AXIS2_EXTERN axis2_status_t axutil_date_time_deserialize_date           </td>
          <td>(</td>
          <td class="paramtype">axutil_date_time_t *&nbsp;</td>
          <td class="paramname"> <em>date_time</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const <a class="el" href="structaxutil__env.html">axutil_env_t</a> *&nbsp;</td>
          <td class="paramname"> <em>env</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const axis2_char_t *&nbsp;</td>
          <td class="paramname"> <em>date_str</em></td><td>&nbsp;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td><td width="100%"></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
store the date value from plain text. <dl compact><dt><b>Parameters:</b></dt><dd>
  <table border="0" cellspacing="2" cellpadding="0">
    <tr><td valign="top"></td><td valign="top"><em>date_time</em>&nbsp;</td><td>represet the type object </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>env</em>&nbsp;</td><td>pointer to environment struct. MUST NOT be NULL </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>date</em>&nbsp;</td><td>date as a string format YYYY-MM-DD </td></tr>
  </table>
</dl>
<dl class="return" compact><dt><b>Returns:</b></dt><dd>AXIS2_SUCCESS on success, else AXIS2_FAILURE </dd></dl>

</div>
</div><p>
<a class="anchor" name="g90dabd89b0fd6ecf8ea512d748276e25"></a><!-- doxytag: member="axutil_date_time.h::axutil_date_time_deserialize_date_time" ref="g90dabd89b0fd6ecf8ea512d748276e25" args="(axutil_date_time_t *date_time, const axutil_env_t *env, const axis2_char_t *date_time_str)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">AXIS2_EXTERN axis2_status_t axutil_date_time_deserialize_date_time           </td>
          <td>(</td>
          <td class="paramtype">axutil_date_time_t *&nbsp;</td>
          <td class="paramname"> <em>date_time</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const <a class="el" href="structaxutil__env.html">axutil_env_t</a> *&nbsp;</td>
          <td class="paramname"> <em>env</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const axis2_char_t *&nbsp;</td>
          <td class="paramname"> <em>date_time_str</em></td><td>&nbsp;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td><td width="100%"></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
store the date value from plain text. <dl compact><dt><b>Parameters:</b></dt><dd>
  <table border="0" cellspacing="2" cellpadding="0">
    <tr><td valign="top"></td><td valign="top"><em>date_time</em>&nbsp;</td><td>represet the type object </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>env</em>&nbsp;</td><td>pointer to environment struct. MUST NOT be NULL </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>date_time</em>&nbsp;</td><td>string format YYYY-MM-DDTHH:MM:SSZ </td></tr>
  </table>
</dl>
<dl class="return" compact><dt><b>Returns:</b></dt><dd>AXIS2_SUCCESS on success, else AXIS2_FAILURE </dd></dl>

</div>
</div><p>
<a class="anchor" name="g7e5fb45f3ddfccdbb4a22f27d07f6c58"></a><!-- doxytag: member="axutil_date_time.h::axutil_date_time_deserialize_time" ref="g7e5fb45f3ddfccdbb4a22f27d07f6c58" args="(axutil_date_time_t *date_time, const axutil_env_t *env, const axis2_char_t *time_str)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">AXIS2_EXTERN axis2_status_t axutil_date_time_deserialize_time           </td>
          <td>(</td>
          <td class="paramtype">axutil_date_time_t *&nbsp;</td>
          <td class="paramname"> <em>date_time</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const <a class="el" href="structaxutil__env.html">axutil_env_t</a> *&nbsp;</td>
          <td class="paramname"> <em>env</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const axis2_char_t *&nbsp;</td>
          <td class="paramname"> <em>time_str</em></td><td>&nbsp;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td><td width="100%"></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
store the time value from plain text. <dl compact><dt><b>Parameters:</b></dt><dd>
  <table border="0" cellspacing="2" cellpadding="0">
    <tr><td valign="top"></td><td valign="top"><em>date_time</em>&nbsp;</td><td>represet the type object </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>env</em>&nbsp;</td><td>pointer to environment struct. MUST NOT be NULL </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>time</em>&nbsp;</td><td>time as a string format HH:MM:TTZ </td></tr>
  </table>
</dl>
<dl class="return" compact><dt><b>Returns:</b></dt><dd>AXIS2_SUCCESS on success, else AXIS2_FAILURE </dd></dl>

</div>
</div><p>
<a class="anchor" name="gbb52288b98f13be3abf56d29248503cf"></a><!-- doxytag: member="axutil_date_time.h::axutil_date_time_free" ref="gbb52288b98f13be3abf56d29248503cf" args="(axutil_date_time_t *date_time, const axutil_env_t *env)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">AXIS2_EXTERN void axutil_date_time_free           </td>
          <td>(</td>
          <td class="paramtype">axutil_date_time_t *&nbsp;</td>
          <td class="paramname"> <em>date_time</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const <a class="el" href="structaxutil__env.html">axutil_env_t</a> *&nbsp;</td>
          <td class="paramname"> <em>env</em></td><td>&nbsp;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td><td width="100%"></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
free the axutil_date_time. <dl compact><dt><b>Parameters:</b></dt><dd>
  <table border="0" cellspacing="2" cellpadding="0">
    <tr><td valign="top"></td><td valign="top"><em>date_time</em>&nbsp;</td><td>represet the type object </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>env</em>&nbsp;</td><td>pointer to environment struct. MUST NOT be NULL </td></tr>
  </table>
</dl>
<dl class="return" compact><dt><b>Returns:</b></dt><dd>AXIS2_SUCCESS on success, else AXIS2_FAILURE </dd></dl>

</div>
</div><p>
<a class="anchor" name="g7f852dcbdfad79040077482406e5f0ad"></a><!-- doxytag: member="axutil_date_time.h::axutil_date_time_get_date" ref="g7f852dcbdfad79040077482406e5f0ad" args="(axutil_date_time_t *date_time, const axutil_env_t *env)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">AXIS2_EXTERN int axutil_date_time_get_date           </td>
          <td>(</td>
          <td class="paramtype">axutil_date_time_t *&nbsp;</td>
          <td class="paramname"> <em>date_time</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const <a class="el" href="structaxutil__env.html">axutil_env_t</a> *&nbsp;</td>
          <td class="paramname"> <em>env</em></td><td>&nbsp;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td><td width="100%"></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
retrieve the date of the date time <dl compact><dt><b>Parameters:</b></dt><dd>
  <table border="0" cellspacing="2" cellpadding="0">
    <tr><td valign="top"></td><td valign="top"><em>date_time</em>&nbsp;</td><td>represet the type object </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>env</em>&nbsp;</td><td>pointer to environment struct. MUST NOT be NULL </td></tr>
  </table>
</dl>
<dl class="return" compact><dt><b>Returns:</b></dt><dd>date as an integer </dd></dl>

</div>
</div><p>
<a class="anchor" name="g709d3af760c962dc1e69b8e7f821ab70"></a><!-- doxytag: member="axutil_date_time.h::axutil_date_time_get_hour" ref="g709d3af760c962dc1e69b8e7f821ab70" args="(axutil_date_time_t *date_time, const axutil_env_t *env)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">AXIS2_EXTERN int axutil_date_time_get_hour           </td>
          <td>(</td>
          <td class="paramtype">axutil_date_time_t *&nbsp;</td>
          <td class="paramname"> <em>date_time</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const <a class="el" href="structaxutil__env.html">axutil_env_t</a> *&nbsp;</td>
          <td class="paramname"> <em>env</em></td><td>&nbsp;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td><td width="100%"></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
retrieve the hour of the date time <dl compact><dt><b>Parameters:</b></dt><dd>
  <table border="0" cellspacing="2" cellpadding="0">
    <tr><td valign="top"></td><td valign="top"><em>date_time</em>&nbsp;</td><td>represet the type object </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>env</em>&nbsp;</td><td>pointer to environment struct. MUST NOT be NULL </td></tr>
  </table>
</dl>
<dl class="return" compact><dt><b>Returns:</b></dt><dd>hour as an integer </dd></dl>

</div>
</div><p>
<a class="anchor" name="gb90d270ad77e3ad9b2dd7ed4e0120a63"></a><!-- doxytag: member="axutil_date_time.h::axutil_date_time_get_minute" ref="gb90d270ad77e3ad9b2dd7ed4e0120a63" args="(axutil_date_time_t *date_time, const axutil_env_t *env)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">AXIS2_EXTERN int axutil_date_time_get_minute           </td>
          <td>(</td>
          <td class="paramtype">axutil_date_time_t *&nbsp;</td>
          <td class="paramname"> <em>date_time</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const <a class="el" href="structaxutil__env.html">axutil_env_t</a> *&nbsp;</td>
          <td class="paramname"> <em>env</em></td><td>&nbsp;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td><td width="100%"></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
retrieve the minute of the date time <dl compact><dt><b>Parameters:</b></dt><dd>
  <table border="0" cellspacing="2" cellpadding="0">
    <tr><td valign="top"></td><td valign="top"><em>date_time</em>&nbsp;</td><td>represet the type object </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>env</em>&nbsp;</td><td>pointer to environment struct. MUST NOT be NULL </td></tr>
  </table>
</dl>
<dl class="return" compact><dt><b>Returns:</b></dt><dd>minute as an integer </dd></dl>

</div>
</div><p>
<a class="anchor" name="ga444d7cd64986d34e38f60f2e30aa67d"></a><!-- doxytag: member="axutil_date_time.h::axutil_date_time_get_month" ref="ga444d7cd64986d34e38f60f2e30aa67d" args="(axutil_date_time_t *date_time, const axutil_env_t *env)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">AXIS2_EXTERN int axutil_date_time_get_month           </td>
          <td>(</td>
          <td class="paramtype">axutil_date_time_t *&nbsp;</td>
          <td class="paramname"> <em>date_time</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const <a class="el" href="structaxutil__env.html">axutil_env_t</a> *&nbsp;</td>
          <td class="paramname"> <em>env</em></td><td>&nbsp;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td><td width="100%"></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
retrieve the month of the date time <dl compact><dt><b>Parameters:</b></dt><dd>
  <table border="0" cellspacing="2" cellpadding="0">
    <tr><td valign="top"></td><td valign="top"><em>date_time</em>&nbsp;</td><td>represet the type object </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>env</em>&nbsp;</td><td>pointer to environment struct. MUST NOT be NULL </td></tr>
  </table>
</dl>
<dl class="return" compact><dt><b>Returns:</b></dt><dd>month as an integer </dd></dl>

</div>
</div><p>
<a class="anchor" name="g36782202dd7f88a864f748649b3dff6b"></a><!-- doxytag: member="axutil_date_time.h::axutil_date_time_get_second" ref="g36782202dd7f88a864f748649b3dff6b" args="(axutil_date_time_t *date_time, const axutil_env_t *env)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">AXIS2_EXTERN int axutil_date_time_get_second           </td>
          <td>(</td>
          <td class="paramtype">axutil_date_time_t *&nbsp;</td>
          <td class="paramname"> <em>date_time</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const <a class="el" href="structaxutil__env.html">axutil_env_t</a> *&nbsp;</td>
          <td class="paramname"> <em>env</em></td><td>&nbsp;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td><td width="100%"></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
retrieve the second of the date time <dl compact><dt><b>Parameters:</b></dt><dd>
  <table border="0" cellspacing="2" cellpadding="0">
    <tr><td valign="top"></td><td valign="top"><em>date_time</em>&nbsp;</td><td>represet the type object </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>env</em>&nbsp;</td><td>pointer to environment struct. MUST NOT be NULL </td></tr>
  </table>
</dl>
<dl class="return" compact><dt><b>Returns:</b></dt><dd>second as an integer </dd></dl>

</div>
</div><p>
<a class="anchor" name="g0004b9c5cc5e1a1a5b3e3f517a7fcde5"></a><!-- doxytag: member="axutil_date_time.h::axutil_date_time_get_year" ref="g0004b9c5cc5e1a1a5b3e3f517a7fcde5" args="(axutil_date_time_t *date_time, const axutil_env_t *env)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">AXIS2_EXTERN int axutil_date_time_get_year           </td>
          <td>(</td>
          <td class="paramtype">axutil_date_time_t *&nbsp;</td>
          <td class="paramname"> <em>date_time</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const <a class="el" href="structaxutil__env.html">axutil_env_t</a> *&nbsp;</td>
          <td class="paramname"> <em>env</em></td><td>&nbsp;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td><td width="100%"></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
retrieve the year of the date time <dl compact><dt><b>Parameters:</b></dt><dd>
  <table border="0" cellspacing="2" cellpadding="0">
    <tr><td valign="top"></td><td valign="top"><em>date_time</em>&nbsp;</td><td>represet the type object </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>env</em>&nbsp;</td><td>pointer to environment struct. MUST NOT be NULL </td></tr>
  </table>
</dl>
<dl class="return" compact><dt><b>Returns:</b></dt><dd>year as an integer </dd></dl>

</div>
</div><p>
<a class="anchor" name="ga098865ec9b787dd25530c99f22b86e0"></a><!-- doxytag: member="axutil_date_time.h::axutil_date_time_serialize_date" ref="ga098865ec9b787dd25530c99f22b86e0" args="(axutil_date_time_t *date_time, const axutil_env_t *env)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">AXIS2_EXTERN axis2_char_t* axutil_date_time_serialize_date           </td>
          <td>(</td>
          <td class="paramtype">axutil_date_time_t *&nbsp;</td>
          <td class="paramname"> <em>date_time</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const <a class="el" href="structaxutil__env.html">axutil_env_t</a> *&nbsp;</td>
          <td class="paramname"> <em>env</em></td><td>&nbsp;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td><td width="100%"></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
retrive the stored date as a string <dl compact><dt><b>Parameters:</b></dt><dd>
  <table border="0" cellspacing="2" cellpadding="0">
    <tr><td valign="top"></td><td valign="top"><em>date_time</em>&nbsp;</td><td>represet the type object </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>env</em>&nbsp;</td><td>pointer to environment struct. MUST NOT be NULL </td></tr>
  </table>
</dl>
<dl class="return" compact><dt><b>Returns:</b></dt><dd>date as a string format YYYY-MM-DD </dd></dl>

</div>
</div><p>
<a class="anchor" name="g23bc467a35485b46ccf1ae91a8f63016"></a><!-- doxytag: member="axutil_date_time.h::axutil_date_time_serialize_date_time" ref="g23bc467a35485b46ccf1ae91a8f63016" args="(axutil_date_time_t *date_time, const axutil_env_t *env)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">AXIS2_EXTERN axis2_char_t* axutil_date_time_serialize_date_time           </td>
          <td>(</td>
          <td class="paramtype">axutil_date_time_t *&nbsp;</td>
          <td class="paramname"> <em>date_time</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const <a class="el" href="structaxutil__env.html">axutil_env_t</a> *&nbsp;</td>
          <td class="paramname"> <em>env</em></td><td>&nbsp;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td><td width="100%"></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
retrive the stored date time as a string with millisecond precision <dl compact><dt><b>Parameters:</b></dt><dd>
  <table border="0" cellspacing="2" cellpadding="0">
    <tr><td valign="top"></td><td valign="top"><em>date_time</em>&nbsp;</td><td>represet the type object </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>env</em>&nbsp;</td><td>pointer to environment struct. MUST NOT be NULL </td></tr>
  </table>
</dl>
<dl class="return" compact><dt><b>Returns:</b></dt><dd>time as a string format YYYY-MM-DDTHH:MM:SS.msZ </dd></dl>

</div>
</div><p>
<a class="anchor" name="g13442224f7ef0eec0c3bc37f58abd3de"></a><!-- doxytag: member="axutil_date_time.h::axutil_date_time_serialize_date_time_without_millisecond" ref="g13442224f7ef0eec0c3bc37f58abd3de" args="(axutil_date_time_t *date_time, const axutil_env_t *env)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">AXIS2_EXTERN axis2_char_t* axutil_date_time_serialize_date_time_without_millisecond           </td>
          <td>(</td>
          <td class="paramtype">axutil_date_time_t *&nbsp;</td>
          <td class="paramname"> <em>date_time</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const <a class="el" href="structaxutil__env.html">axutil_env_t</a> *&nbsp;</td>
          <td class="paramname"> <em>env</em></td><td>&nbsp;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td><td width="100%"></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
retrive the stored date time as a string without millisecond <dl compact><dt><b>Parameters:</b></dt><dd>
  <table border="0" cellspacing="2" cellpadding="0">
    <tr><td valign="top"></td><td valign="top"><em>date_time</em>&nbsp;</td><td>represet the type object </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>env</em>&nbsp;</td><td>pointer to environment struct. MUST NOT be NULL </td></tr>
  </table>
</dl>
<dl class="return" compact><dt><b>Returns:</b></dt><dd>time as a string format YYYY-MM-DDTHH:MM:SSZ </dd></dl>

</div>
</div><p>
<a class="anchor" name="gad77bd48f8d22855617fc1678c08e8ad"></a><!-- doxytag: member="axutil_date_time.h::axutil_date_time_serialize_time" ref="gad77bd48f8d22855617fc1678c08e8ad" args="(axutil_date_time_t *date_time, const axutil_env_t *env)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">AXIS2_EXTERN axis2_char_t* axutil_date_time_serialize_time           </td>
          <td>(</td>
          <td class="paramtype">axutil_date_time_t *&nbsp;</td>
          <td class="paramname"> <em>date_time</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const <a class="el" href="structaxutil__env.html">axutil_env_t</a> *&nbsp;</td>
          <td class="paramname"> <em>env</em></td><td>&nbsp;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td><td width="100%"></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
retrive the stored time as a string <dl compact><dt><b>Parameters:</b></dt><dd>
  <table border="0" cellspacing="2" cellpadding="0">
    <tr><td valign="top"></td><td valign="top"><em>date_time</em>&nbsp;</td><td>represet the type object </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>env</em>&nbsp;</td><td>pointer to environment struct. MUST NOT be NULL </td></tr>
  </table>
</dl>
<dl class="return" compact><dt><b>Returns:</b></dt><dd>time as a string format HH:MM:SSZ </dd></dl>

</div>
</div><p>
<a class="anchor" name="g5f6d46804df89a05c8c4c6b5b97e47a3"></a><!-- doxytag: member="axutil_date_time.h::axutil_date_time_set_date_time" ref="g5f6d46804df89a05c8c4c6b5b97e47a3" args="(axutil_date_time_t *date_time, const axutil_env_t *env, int year, int month, int date, int hour, int min, int second, int milliseconds)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">AXIS2_EXTERN axis2_status_t axutil_date_time_set_date_time           </td>
          <td>(</td>
          <td class="paramtype">axutil_date_time_t *&nbsp;</td>
          <td class="paramname"> <em>date_time</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const <a class="el" href="structaxutil__env.html">axutil_env_t</a> *&nbsp;</td>
          <td class="paramname"> <em>env</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">int&nbsp;</td>
          <td class="paramname"> <em>year</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">int&nbsp;</td>
          <td class="paramname"> <em>month</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">int&nbsp;</td>
          <td class="paramname"> <em>date</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">int&nbsp;</td>
          <td class="paramname"> <em>hour</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">int&nbsp;</td>
          <td class="paramname"> <em>min</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">int&nbsp;</td>
          <td class="paramname"> <em>second</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">int&nbsp;</td>
          <td class="paramname"> <em>milliseconds</em></td><td>&nbsp;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td><td width="100%"></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
store the date value from set of values <dl compact><dt><b>Parameters:</b></dt><dd>
  <table border="0" cellspacing="2" cellpadding="0">
    <tr><td valign="top"></td><td valign="top"><em>date_time</em>&nbsp;</td><td>represet the type object </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>env</em>&nbsp;</td><td>pointer to environment struct. MUST NOT be NULL </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>year</em>&nbsp;</td><td>Integer -1 can be used to ignore </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>month</em>&nbsp;</td><td>Integer -1 can be used to ignore </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>date</em>&nbsp;</td><td>Integer -1 can be used to ignore </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>hour</em>&nbsp;</td><td>Integer -1 can be used to ignore </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>min</em>&nbsp;</td><td>Integer -1 can be used to ignore </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>second</em>&nbsp;</td><td>Integer -1 can be used to ignore </td></tr>
  </table>
</dl>
<dl class="return" compact><dt><b>Returns:</b></dt><dd>AXIS2_SUCCESS on success, else AXIS2_FAILURE </dd></dl>

</div>
</div><p>
<hr size="1"><address style="text-align: right;"><small>Generated on Fri Apr 17 11:49:45 2009 for Axis2/C by&nbsp;
<a href="http://www.doxygen.org/index.html">
<img src="doxygen.png" alt="doxygen" align="middle" border="0"></a> 1.5.3 </small></address>
</body>
</html>


<|start_filename|>xdocs/api/html/group__axutil__thread.html<|end_filename|>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html><head><meta http-equiv="Content-Type" content="text/html;charset=UTF-8">
<title>Axis2/C: thread</title>
<link href="doxygen.css" rel="stylesheet" type="text/css">
<link href="tabs.css" rel="stylesheet" type="text/css">
</head><body>
<!-- Generated by Doxygen 1.5.3 -->
<div class="tabs">
  <ul>
    <li><a href="index.html"><span>Main&nbsp;Page</span></a></li>
    <li><a href="modules.html"><span>Modules</span></a></li>
    <li><a href="annotated.html"><span>Classes</span></a></li>
    <li><a href="files.html"><span>Files</span></a></li>
    <li><a href="dirs.html"><span>Directories</span></a></li>
    <li><a href="pages.html"><span>Related&nbsp;Pages</span></a></li>
    <li><a href="examples.html"><span>Examples</span></a></li>
    <li>
      <form action="search.php" method="get">
        <table cellspacing="0" cellpadding="0" border="0">
          <tr>
            <td><label>&nbsp;<u>S</u>earch&nbsp;for&nbsp;</label></td>
            <td><input type="text" name="query" value="" size="20" accesskey="s"/></td>
          </tr>
        </table>
      </form>
    </li>
  </ul>
</div>
<h1>thread<br>
<small>
[<a class="el" href="group__axis2__util.html">utilities</a>]</small>
</h1><table border="0" cellpadding="0" cellspacing="0">
<tr><td></td></tr>
<tr><td colspan="2"><br><h2>Defines</h2></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top">#define&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__axutil__thread.html#gd096680721aedfeb237647a9d59deedf">AXIS2_THREAD_MUTEX_DEFAULT</a>&nbsp;&nbsp;&nbsp;0x0</td></tr>

<tr><td class="memItemLeft" nowrap align="right" valign="top">#define&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__axutil__thread.html#g4c1de3e53fdd5e35bff45518bf01adb9">AXIS2_THREAD_MUTEX_NESTED</a>&nbsp;&nbsp;&nbsp;0x1</td></tr>

<tr><td class="memItemLeft" nowrap align="right" valign="top">#define&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__axutil__thread.html#g23f73f33dbd2bc3b73e45765daee0dfd">AXIS2_THREAD_MUTEX_UNNESTED</a>&nbsp;&nbsp;&nbsp;0x2</td></tr>

<tr><td colspan="2"><br><h2>Typedefs</h2></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top">typedef struct <br>
<a class="el" href="group__axutil__thread.html#g7b2442c6150883ffac05fd2c4844b7cc">axutil_thread_t</a>&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__axutil__thread.html#g7b2442c6150883ffac05fd2c4844b7cc">axutil_thread_t</a></td></tr>

<tr><td class="memItemLeft" nowrap align="right" valign="top">typedef struct <br>
<a class="el" href="group__axutil__thread.html#g00ba127eb9ea681435b79dfd52132bc9">axutil_threadattr_t</a>&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__axutil__thread.html#g00ba127eb9ea681435b79dfd52132bc9">axutil_threadattr_t</a></td></tr>

<tr><td class="memItemLeft" nowrap align="right" valign="top">typedef struct <br>
<a class="el" href="group__axutil__thread.html#g62e2f1428e742cdfad365b22fc2c271b">axutil_thread_once_t</a>&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__axutil__thread.html#g62e2f1428e742cdfad365b22fc2c271b">axutil_thread_once_t</a></td></tr>

<tr><td class="memItemLeft" nowrap align="right" valign="top">typedef void <br>
*(AXIS2_THREAD_FUNC *&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__axutil__thread.html#g8b1ee6e8fa770ee290503c43c087f633">axutil_thread_start_t</a> )(<a class="el" href="group__axutil__thread.html#g7b2442c6150883ffac05fd2c4844b7cc">axutil_thread_t</a> *, void *)</td></tr>

<tr><td class="memItemLeft" nowrap align="right" valign="top">typedef struct <br>
<a class="el" href="group__axutil__thread.html#g48b4d7958a921bd9780ef76e1b76c3a4">axutil_threadkey_t</a>&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__axutil__thread.html#g48b4d7958a921bd9780ef76e1b76c3a4">axutil_threadkey_t</a></td></tr>

<tr><td class="memItemLeft" nowrap align="right" valign="top">typedef struct <br>
<a class="el" href="group__axutil__thread.html#g3d6a99be71c7c750b4ac37efae2bdf87">axutil_thread_mutex_t</a>&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__axutil__thread.html#g3d6a99be71c7c750b4ac37efae2bdf87">axutil_thread_mutex_t</a></td></tr>

<tr><td colspan="2"><br><h2>Functions</h2></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top">AXIS2_EXTERN <br>
<a class="el" href="group__axutil__thread.html#g00ba127eb9ea681435b79dfd52132bc9">axutil_threadattr_t</a> *&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__axutil__thread.html#g6b8cf75c5b88d3389e3b9ea6f5371101">axutil_threadattr_create</a> (<a class="el" href="structaxutil__allocator.html">axutil_allocator_t</a> *allocator)</td></tr>

<tr><td class="memItemLeft" nowrap align="right" valign="top">AXIS2_EXTERN <br>
axis2_status_t&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__axutil__thread.html#g64df222946d03707ee4c00164d7f567a">axutil_threadattr_detach_set</a> (<a class="el" href="group__axutil__thread.html#g00ba127eb9ea681435b79dfd52132bc9">axutil_threadattr_t</a> *attr, axis2_bool_t detached)</td></tr>

<tr><td class="memItemLeft" nowrap align="right" valign="top">AXIS2_EXTERN axis2_bool_t&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__axutil__thread.html#ga27f549c32aa22df6c911fc565624d52">axutil_threadattr_is_detach</a> (<a class="el" href="group__axutil__thread.html#g00ba127eb9ea681435b79dfd52132bc9">axutil_threadattr_t</a> *attr, <a class="el" href="structaxutil__allocator.html">axutil_allocator_t</a> *allocator)</td></tr>

<tr><td class="memItemLeft" nowrap align="right" valign="top">AXIS2_EXTERN <br>
<a class="el" href="group__axutil__thread.html#g7b2442c6150883ffac05fd2c4844b7cc">axutil_thread_t</a> *&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__axutil__thread.html#g1f4f964a275cb3274a110985c0521599">axutil_thread_create</a> (<a class="el" href="structaxutil__allocator.html">axutil_allocator_t</a> *allocator, <a class="el" href="group__axutil__thread.html#g00ba127eb9ea681435b79dfd52132bc9">axutil_threadattr_t</a> *attr, <a class="el" href="group__axutil__thread.html#g8b1ee6e8fa770ee290503c43c087f633">axutil_thread_start_t</a> func, void *data)</td></tr>

<tr><td class="memItemLeft" nowrap align="right" valign="top">AXIS2_EXTERN <br>
axis2_status_t&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__axutil__thread.html#gce2c40eabd0a117145610897e3b0b350">axutil_thread_exit</a> (<a class="el" href="group__axutil__thread.html#g7b2442c6150883ffac05fd2c4844b7cc">axutil_thread_t</a> *thd, <a class="el" href="structaxutil__allocator.html">axutil_allocator_t</a> *allocator)</td></tr>

<tr><td class="memItemLeft" nowrap align="right" valign="top">AXIS2_EXTERN <br>
axis2_status_t&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__axutil__thread.html#g4503fd95978af26c67875430c4cf11d9">axutil_thread_join</a> (<a class="el" href="group__axutil__thread.html#g7b2442c6150883ffac05fd2c4844b7cc">axutil_thread_t</a> *thd)</td></tr>

<tr><td class="memItemLeft" nowrap align="right" valign="top">AXIS2_EXTERN void&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__axutil__thread.html#gb260d86a99c9c7af7ae632fb99c59106">axutil_thread_yield</a> (void)</td></tr>

<tr><td class="memItemLeft" nowrap align="right" valign="top">AXIS2_EXTERN <br>
<a class="el" href="group__axutil__thread.html#g62e2f1428e742cdfad365b22fc2c271b">axutil_thread_once_t</a> *&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__axutil__thread.html#gac95e6a2e2106ff72daa1ca244286890">axutil_thread_once_init</a> (<a class="el" href="structaxutil__allocator.html">axutil_allocator_t</a> *allocator)</td></tr>

<tr><td class="memItemLeft" nowrap align="right" valign="top">AXIS2_EXTERN <br>
axis2_status_t&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__axutil__thread.html#ga79f8c61310cfb8b6d6f3a9183114995">axutil_thread_once</a> (<a class="el" href="group__axutil__thread.html#g62e2f1428e742cdfad365b22fc2c271b">axutil_thread_once_t</a> *control, void(*func)(void))</td></tr>

<tr><td class="memItemLeft" nowrap align="right" valign="top">AXIS2_EXTERN <br>
axis2_status_t&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__axutil__thread.html#gf80d1cd64a4f888588f502bb836ace47">axutil_thread_detach</a> (<a class="el" href="group__axutil__thread.html#g7b2442c6150883ffac05fd2c4844b7cc">axutil_thread_t</a> *thd)</td></tr>

<tr><td class="memItemLeft" nowrap align="right" valign="top">AXIS2_EXTERN <br>
<a class="el" href="group__axutil__thread.html#g3d6a99be71c7c750b4ac37efae2bdf87">axutil_thread_mutex_t</a> *&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__axutil__thread.html#gcab265f8a3be8ef7c20442a3c5bccd67">axutil_thread_mutex_create</a> (<a class="el" href="structaxutil__allocator.html">axutil_allocator_t</a> *allocator, unsigned int flags)</td></tr>

<tr><td class="memItemLeft" nowrap align="right" valign="top">AXIS2_EXTERN <br>
axis2_status_t&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__axutil__thread.html#g7f987573535cf90ba67b2b2ae047ee46">axutil_thread_mutex_lock</a> (<a class="el" href="group__axutil__thread.html#g3d6a99be71c7c750b4ac37efae2bdf87">axutil_thread_mutex_t</a> *mutex)</td></tr>

<tr><td class="memItemLeft" nowrap align="right" valign="top">AXIS2_EXTERN <br>
axis2_status_t&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__axutil__thread.html#ga050c6ecf8209ba57ea8ec79330632bb">axutil_thread_mutex_trylock</a> (<a class="el" href="group__axutil__thread.html#g3d6a99be71c7c750b4ac37efae2bdf87">axutil_thread_mutex_t</a> *mutex)</td></tr>

<tr><td class="memItemLeft" nowrap align="right" valign="top">AXIS2_EXTERN <br>
axis2_status_t&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__axutil__thread.html#gd275462277abb24342d1b69967ba79b4">axutil_thread_mutex_unlock</a> (<a class="el" href="group__axutil__thread.html#g3d6a99be71c7c750b4ac37efae2bdf87">axutil_thread_mutex_t</a> *mutex)</td></tr>

<tr><td class="memItemLeft" nowrap align="right" valign="top">AXIS2_EXTERN <br>
axis2_status_t&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__axutil__thread.html#g7e441c4b47fe4466ff385e396258ead3">axutil_thread_mutex_destroy</a> (<a class="el" href="group__axutil__thread.html#g3d6a99be71c7c750b4ac37efae2bdf87">axutil_thread_mutex_t</a> *mutex)</td></tr>

</table>
<hr><h2>Define Documentation</h2>
<a class="anchor" name="gd096680721aedfeb237647a9d59deedf"></a><!-- doxytag: member="axutil_thread.h::AXIS2_THREAD_MUTEX_DEFAULT" ref="gd096680721aedfeb237647a9d59deedf" args="" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">#define AXIS2_THREAD_MUTEX_DEFAULT&nbsp;&nbsp;&nbsp;0x0          </td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
platform-optimal lock behavior 
</div>
</div><p>
<a class="anchor" name="g4c1de3e53fdd5e35bff45518bf01adb9"></a><!-- doxytag: member="axutil_thread.h::AXIS2_THREAD_MUTEX_NESTED" ref="g4c1de3e53fdd5e35bff45518bf01adb9" args="" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">#define AXIS2_THREAD_MUTEX_NESTED&nbsp;&nbsp;&nbsp;0x1          </td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
enable nested (recursive) locks 
</div>
</div><p>
<a class="anchor" name="g23f73f33dbd2bc3b73e45765daee0dfd"></a><!-- doxytag: member="axutil_thread.h::AXIS2_THREAD_MUTEX_UNNESTED" ref="g23f73f33dbd2bc3b73e45765daee0dfd" args="" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">#define AXIS2_THREAD_MUTEX_UNNESTED&nbsp;&nbsp;&nbsp;0x2          </td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
disable nested locks 
</div>
</div><p>
<hr><h2>Typedef Documentation</h2>
<a class="anchor" name="g3d6a99be71c7c750b4ac37efae2bdf87"></a><!-- doxytag: member="axutil_thread.h::axutil_thread_mutex_t" ref="g3d6a99be71c7c750b4ac37efae2bdf87" args="" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">typedef struct <a class="el" href="group__axutil__thread.html#g3d6a99be71c7c750b4ac37efae2bdf87">axutil_thread_mutex_t</a> <a class="el" href="group__axutil__thread.html#g3d6a99be71c7c750b4ac37efae2bdf87">axutil_thread_mutex_t</a>          </td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
Opaque thread-local mutex structure 
</div>
</div><p>
<a class="anchor" name="g62e2f1428e742cdfad365b22fc2c271b"></a><!-- doxytag: member="axutil_thread.h::axutil_thread_once_t" ref="g62e2f1428e742cdfad365b22fc2c271b" args="" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">typedef struct <a class="el" href="group__axutil__thread.html#g62e2f1428e742cdfad365b22fc2c271b">axutil_thread_once_t</a> <a class="el" href="group__axutil__thread.html#g62e2f1428e742cdfad365b22fc2c271b">axutil_thread_once_t</a>          </td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
Control variable for one-time atomic variables. 
</div>
</div><p>
<a class="anchor" name="g8b1ee6e8fa770ee290503c43c087f633"></a><!-- doxytag: member="axutil_thread.h::axutil_thread_start_t" ref="g8b1ee6e8fa770ee290503c43c087f633" args=")(axutil_thread_t *, void *)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">typedef void*( AXIS2_THREAD_FUNC * <a class="el" href="group__axutil__thread.html#g8b1ee6e8fa770ee290503c43c087f633">axutil_thread_start_t</a>)(<a class="el" href="group__axutil__thread.html#g7b2442c6150883ffac05fd2c4844b7cc">axutil_thread_t</a> *, void *)          </td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
The prototype for any AXIS2 thread worker functions. 
</div>
</div><p>
<a class="anchor" name="g7b2442c6150883ffac05fd2c4844b7cc"></a><!-- doxytag: member="axutil_thread.h::axutil_thread_t" ref="g7b2442c6150883ffac05fd2c4844b7cc" args="" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">typedef struct <a class="el" href="group__axutil__thread.html#g7b2442c6150883ffac05fd2c4844b7cc">axutil_thread_t</a> <a class="el" href="group__axutil__thread.html#g7b2442c6150883ffac05fd2c4844b7cc">axutil_thread_t</a>          </td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
Thread callbacks from axis2 functions must be declared with AXIS2_THREAD_FUNC so that they follow the platform's calling convention. Thread structure. 
</div>
</div><p>
<a class="anchor" name="g00ba127eb9ea681435b79dfd52132bc9"></a><!-- doxytag: member="axutil_thread.h::axutil_threadattr_t" ref="g00ba127eb9ea681435b79dfd52132bc9" args="" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">typedef struct <a class="el" href="group__axutil__thread.html#g00ba127eb9ea681435b79dfd52132bc9">axutil_threadattr_t</a> <a class="el" href="group__axutil__thread.html#g00ba127eb9ea681435b79dfd52132bc9">axutil_threadattr_t</a>          </td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
Thread attributes structure. 
</div>
</div><p>
<a class="anchor" name="g48b4d7958a921bd9780ef76e1b76c3a4"></a><!-- doxytag: member="axutil_thread.h::axutil_threadkey_t" ref="g48b4d7958a921bd9780ef76e1b76c3a4" args="" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">typedef struct <a class="el" href="group__axutil__thread.html#g48b4d7958a921bd9780ef76e1b76c3a4">axutil_threadkey_t</a> <a class="el" href="group__axutil__thread.html#g48b4d7958a921bd9780ef76e1b76c3a4">axutil_threadkey_t</a>          </td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
Thread private address space. 
</div>
</div><p>
<hr><h2>Function Documentation</h2>
<a class="anchor" name="g1f4f964a275cb3274a110985c0521599"></a><!-- doxytag: member="axutil_thread.h::axutil_thread_create" ref="g1f4f964a275cb3274a110985c0521599" args="(axutil_allocator_t *allocator, axutil_threadattr_t *attr, axutil_thread_start_t func, void *data)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">AXIS2_EXTERN <a class="el" href="group__axutil__thread.html#g7b2442c6150883ffac05fd2c4844b7cc">axutil_thread_t</a>* axutil_thread_create           </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="structaxutil__allocator.html">axutil_allocator_t</a> *&nbsp;</td>
          <td class="paramname"> <em>allocator</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype"><a class="el" href="group__axutil__thread.html#g00ba127eb9ea681435b79dfd52132bc9">axutil_threadattr_t</a> *&nbsp;</td>
          <td class="paramname"> <em>attr</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype"><a class="el" href="group__axutil__thread.html#g8b1ee6e8fa770ee290503c43c087f633">axutil_thread_start_t</a>&nbsp;</td>
          <td class="paramname"> <em>func</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">void *&nbsp;</td>
          <td class="paramname"> <em>data</em></td><td>&nbsp;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td><td width="100%"></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
Create a new thread of execution <dl compact><dt><b>Parameters:</b></dt><dd>
  <table border="0" cellspacing="2" cellpadding="0">
    <tr><td valign="top"></td><td valign="top"><em>attr</em>&nbsp;</td><td>The threadattr to use to determine how to create the thread </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>func</em>&nbsp;</td><td>The function to start the new thread in </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>data</em>&nbsp;</td><td>Any data to be passed to the starting function </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>cont</em>&nbsp;</td><td>The pool to use </td></tr>
  </table>
</dl>
<dl class="return" compact><dt><b>Returns:</b></dt><dd>The newly created thread handle. </dd></dl>

</div>
</div><p>
<a class="anchor" name="gf80d1cd64a4f888588f502bb836ace47"></a><!-- doxytag: member="axutil_thread.h::axutil_thread_detach" ref="gf80d1cd64a4f888588f502bb836ace47" args="(axutil_thread_t *thd)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">AXIS2_EXTERN axis2_status_t axutil_thread_detach           </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="group__axutil__thread.html#g7b2442c6150883ffac05fd2c4844b7cc">axutil_thread_t</a> *&nbsp;</td>
          <td class="paramname"> <em>thd</em>          </td>
          <td>&nbsp;)&nbsp;</td>
          <td width="100%"></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
detach a thread <dl compact><dt><b>Parameters:</b></dt><dd>
  <table border="0" cellspacing="2" cellpadding="0">
    <tr><td valign="top"></td><td valign="top"><em>thd</em>&nbsp;</td><td>The thread to detach </td></tr>
  </table>
</dl>
<dl class="return" compact><dt><b>Returns:</b></dt><dd>The status of the operation </dd></dl>

</div>
</div><p>
<a class="anchor" name="gce2c40eabd0a117145610897e3b0b350"></a><!-- doxytag: member="axutil_thread.h::axutil_thread_exit" ref="gce2c40eabd0a117145610897e3b0b350" args="(axutil_thread_t *thd, axutil_allocator_t *allocator)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">AXIS2_EXTERN axis2_status_t axutil_thread_exit           </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="group__axutil__thread.html#g7b2442c6150883ffac05fd2c4844b7cc">axutil_thread_t</a> *&nbsp;</td>
          <td class="paramname"> <em>thd</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype"><a class="el" href="structaxutil__allocator.html">axutil_allocator_t</a> *&nbsp;</td>
          <td class="paramname"> <em>allocator</em></td><td>&nbsp;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td><td width="100%"></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
Stop the current thread <dl compact><dt><b>Parameters:</b></dt><dd>
  <table border="0" cellspacing="2" cellpadding="0">
    <tr><td valign="top"></td><td valign="top"><em>thd</em>&nbsp;</td><td>The thread to stop </td></tr>
  </table>
</dl>
<dl class="return" compact><dt><b>Returns:</b></dt><dd>The status of the operation </dd></dl>

</div>
</div><p>
<a class="anchor" name="g4503fd95978af26c67875430c4cf11d9"></a><!-- doxytag: member="axutil_thread.h::axutil_thread_join" ref="g4503fd95978af26c67875430c4cf11d9" args="(axutil_thread_t *thd)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">AXIS2_EXTERN axis2_status_t axutil_thread_join           </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="group__axutil__thread.html#g7b2442c6150883ffac05fd2c4844b7cc">axutil_thread_t</a> *&nbsp;</td>
          <td class="paramname"> <em>thd</em>          </td>
          <td>&nbsp;)&nbsp;</td>
          <td width="100%"></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
Block until the desired thread stops executing. <dl compact><dt><b>Parameters:</b></dt><dd>
  <table border="0" cellspacing="2" cellpadding="0">
    <tr><td valign="top"></td><td valign="top"><em>thd</em>&nbsp;</td><td>The thread to join </td></tr>
  </table>
</dl>
<dl class="return" compact><dt><b>Returns:</b></dt><dd>The status of the operation </dd></dl>

</div>
</div><p>
<a class="anchor" name="gcab265f8a3be8ef7c20442a3c5bccd67"></a><!-- doxytag: member="axutil_thread.h::axutil_thread_mutex_create" ref="gcab265f8a3be8ef7c20442a3c5bccd67" args="(axutil_allocator_t *allocator, unsigned int flags)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">AXIS2_EXTERN <a class="el" href="group__axutil__thread.html#g3d6a99be71c7c750b4ac37efae2bdf87">axutil_thread_mutex_t</a>* axutil_thread_mutex_create           </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="structaxutil__allocator.html">axutil_allocator_t</a> *&nbsp;</td>
          <td class="paramname"> <em>allocator</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">unsigned int&nbsp;</td>
          <td class="paramname"> <em>flags</em></td><td>&nbsp;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td><td width="100%"></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
Create and initialize a mutex that can be used to synchronize threads. <dl compact><dt><b>Parameters:</b></dt><dd>
  <table border="0" cellspacing="2" cellpadding="0">
    <tr><td valign="top"></td><td valign="top"><em>allocator</em>&nbsp;</td><td>Memory allocator to allocate memory for the mutex </td></tr>
  </table>
</dl>
<dl class="warning" compact><dt><b>Warning:</b></dt><dd>Be cautious in using AXIS2_THREAD_MUTEX_DEFAULT. While this is the most optimal mutex based on a given platform's performance characteristics, it will behave as either a nested or an unnested lock. </dd></dl>

</div>
</div><p>
<a class="anchor" name="g7e441c4b47fe4466ff385e396258ead3"></a><!-- doxytag: member="axutil_thread.h::axutil_thread_mutex_destroy" ref="g7e441c4b47fe4466ff385e396258ead3" args="(axutil_thread_mutex_t *mutex)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">AXIS2_EXTERN axis2_status_t axutil_thread_mutex_destroy           </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="group__axutil__thread.html#g3d6a99be71c7c750b4ac37efae2bdf87">axutil_thread_mutex_t</a> *&nbsp;</td>
          <td class="paramname"> <em>mutex</em>          </td>
          <td>&nbsp;)&nbsp;</td>
          <td width="100%"></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
Destroy the mutex and free the memory associated with the lock. <dl compact><dt><b>Parameters:</b></dt><dd>
  <table border="0" cellspacing="2" cellpadding="0">
    <tr><td valign="top"></td><td valign="top"><em>mutex</em>&nbsp;</td><td>the mutex to destroy. </td></tr>
  </table>
</dl>

</div>
</div><p>
<a class="anchor" name="g7f987573535cf90ba67b2b2ae047ee46"></a><!-- doxytag: member="axutil_thread.h::axutil_thread_mutex_lock" ref="g7f987573535cf90ba67b2b2ae047ee46" args="(axutil_thread_mutex_t *mutex)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">AXIS2_EXTERN axis2_status_t axutil_thread_mutex_lock           </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="group__axutil__thread.html#g3d6a99be71c7c750b4ac37efae2bdf87">axutil_thread_mutex_t</a> *&nbsp;</td>
          <td class="paramname"> <em>mutex</em>          </td>
          <td>&nbsp;)&nbsp;</td>
          <td width="100%"></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
Acquire the lock for the given mutex. If the mutex is already locked, the current thread will be put to sleep until the lock becomes available. <dl compact><dt><b>Parameters:</b></dt><dd>
  <table border="0" cellspacing="2" cellpadding="0">
    <tr><td valign="top"></td><td valign="top"><em>mutex</em>&nbsp;</td><td>the mutex on which to acquire the lock. </td></tr>
  </table>
</dl>

</div>
</div><p>
<a class="anchor" name="ga050c6ecf8209ba57ea8ec79330632bb"></a><!-- doxytag: member="axutil_thread.h::axutil_thread_mutex_trylock" ref="ga050c6ecf8209ba57ea8ec79330632bb" args="(axutil_thread_mutex_t *mutex)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">AXIS2_EXTERN axis2_status_t axutil_thread_mutex_trylock           </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="group__axutil__thread.html#g3d6a99be71c7c750b4ac37efae2bdf87">axutil_thread_mutex_t</a> *&nbsp;</td>
          <td class="paramname"> <em>mutex</em>          </td>
          <td>&nbsp;)&nbsp;</td>
          <td width="100%"></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
Attempt to acquire the lock for the given mutex. If the mutex has already been acquired, the call returns immediately <dl compact><dt><b>Parameters:</b></dt><dd>
  <table border="0" cellspacing="2" cellpadding="0">
    <tr><td valign="top"></td><td valign="top"><em>mutex</em>&nbsp;</td><td>the mutex on which to attempt the lock acquiring. </td></tr>
  </table>
</dl>

</div>
</div><p>
<a class="anchor" name="gd275462277abb24342d1b69967ba79b4"></a><!-- doxytag: member="axutil_thread.h::axutil_thread_mutex_unlock" ref="gd275462277abb24342d1b69967ba79b4" args="(axutil_thread_mutex_t *mutex)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">AXIS2_EXTERN axis2_status_t axutil_thread_mutex_unlock           </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="group__axutil__thread.html#g3d6a99be71c7c750b4ac37efae2bdf87">axutil_thread_mutex_t</a> *&nbsp;</td>
          <td class="paramname"> <em>mutex</em>          </td>
          <td>&nbsp;)&nbsp;</td>
          <td width="100%"></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
Release the lock for the given mutex. <dl compact><dt><b>Parameters:</b></dt><dd>
  <table border="0" cellspacing="2" cellpadding="0">
    <tr><td valign="top"></td><td valign="top"><em>mutex</em>&nbsp;</td><td>the mutex from which to release the lock. </td></tr>
  </table>
</dl>

</div>
</div><p>
<a class="anchor" name="ga79f8c61310cfb8b6d6f3a9183114995"></a><!-- doxytag: member="axutil_thread.h::axutil_thread_once" ref="ga79f8c61310cfb8b6d6f3a9183114995" args="(axutil_thread_once_t *control, void(*func)(void))" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">AXIS2_EXTERN axis2_status_t axutil_thread_once           </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="group__axutil__thread.html#g62e2f1428e742cdfad365b22fc2c271b">axutil_thread_once_t</a> *&nbsp;</td>
          <td class="paramname"> <em>control</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">void(*)(void)&nbsp;</td>
          <td class="paramname"> <em>func</em></td><td>&nbsp;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td><td width="100%"></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
Run the specified function one time, regardless of how many threads call it. <dl compact><dt><b>Parameters:</b></dt><dd>
  <table border="0" cellspacing="2" cellpadding="0">
    <tr><td valign="top"></td><td valign="top"><em>control</em>&nbsp;</td><td>The control variable. The same variable should be passed in each time the function is tried to be called. This is how the underlying functions determine if the function has ever been called before. </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>func</em>&nbsp;</td><td>The function to call. </td></tr>
  </table>
</dl>
<dl class="return" compact><dt><b>Returns:</b></dt><dd>The status of the operation </dd></dl>

</div>
</div><p>
<a class="anchor" name="gac95e6a2e2106ff72daa1ca244286890"></a><!-- doxytag: member="axutil_thread.h::axutil_thread_once_init" ref="gac95e6a2e2106ff72daa1ca244286890" args="(axutil_allocator_t *allocator)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">AXIS2_EXTERN <a class="el" href="group__axutil__thread.html#g62e2f1428e742cdfad365b22fc2c271b">axutil_thread_once_t</a>* axutil_thread_once_init           </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="structaxutil__allocator.html">axutil_allocator_t</a> *&nbsp;</td>
          <td class="paramname"> <em>allocator</em>          </td>
          <td>&nbsp;)&nbsp;</td>
          <td width="100%"></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
Initialize the control variable for axutil_thread_once. <dl compact><dt><b>Parameters:</b></dt><dd>
  <table border="0" cellspacing="2" cellpadding="0">
    <tr><td valign="top"></td><td valign="top"><em>control</em>&nbsp;</td><td>The control variable to initialize </td></tr>
  </table>
</dl>
<dl class="return" compact><dt><b>Returns:</b></dt><dd>The status of the operation </dd></dl>

</div>
</div><p>
<a class="anchor" name="gb260d86a99c9c7af7ae632fb99c59106"></a><!-- doxytag: member="axutil_thread.h::axutil_thread_yield" ref="gb260d86a99c9c7af7ae632fb99c59106" args="(void)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">AXIS2_EXTERN void axutil_thread_yield           </td>
          <td>(</td>
          <td class="paramtype">void&nbsp;</td>
          <td class="paramname">          </td>
          <td>&nbsp;)&nbsp;</td>
          <td width="100%"></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
force the current thread to yield the processor 
</div>
</div><p>
<a class="anchor" name="g6b8cf75c5b88d3389e3b9ea6f5371101"></a><!-- doxytag: member="axutil_thread.h::axutil_threadattr_create" ref="g6b8cf75c5b88d3389e3b9ea6f5371101" args="(axutil_allocator_t *allocator)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">AXIS2_EXTERN <a class="el" href="group__axutil__thread.html#g00ba127eb9ea681435b79dfd52132bc9">axutil_threadattr_t</a>* axutil_threadattr_create           </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="structaxutil__allocator.html">axutil_allocator_t</a> *&nbsp;</td>
          <td class="paramname"> <em>allocator</em>          </td>
          <td>&nbsp;)&nbsp;</td>
          <td width="100%"></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
Create and initialize a new threadattr variable <dl compact><dt><b>Parameters:</b></dt><dd>
  <table border="0" cellspacing="2" cellpadding="0">
    <tr><td valign="top"></td><td valign="top"><em>cont</em>&nbsp;</td><td>The pool to use </td></tr>
  </table>
</dl>
<dl class="return" compact><dt><b>Returns:</b></dt><dd>Newly created thread attribute </dd></dl>

</div>
</div><p>
<a class="anchor" name="g64df222946d03707ee4c00164d7f567a"></a><!-- doxytag: member="axutil_thread.h::axutil_threadattr_detach_set" ref="g64df222946d03707ee4c00164d7f567a" args="(axutil_threadattr_t *attr, axis2_bool_t detached)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">AXIS2_EXTERN axis2_status_t axutil_threadattr_detach_set           </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="group__axutil__thread.html#g00ba127eb9ea681435b79dfd52132bc9">axutil_threadattr_t</a> *&nbsp;</td>
          <td class="paramname"> <em>attr</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">axis2_bool_t&nbsp;</td>
          <td class="paramname"> <em>detached</em></td><td>&nbsp;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td><td width="100%"></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
Set if newly created threads should be created in detached state. <dl compact><dt><b>Parameters:</b></dt><dd>
  <table border="0" cellspacing="2" cellpadding="0">
    <tr><td valign="top"></td><td valign="top"><em>attr</em>&nbsp;</td><td>The threadattr to affect </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>on</em>&nbsp;</td><td>Non-zero if detached threads should be created. </td></tr>
  </table>
</dl>
<dl class="return" compact><dt><b>Returns:</b></dt><dd>The status of the operation </dd></dl>

</div>
</div><p>
<a class="anchor" name="ga27f549c32aa22df6c911fc565624d52"></a><!-- doxytag: member="axutil_thread.h::axutil_threadattr_is_detach" ref="ga27f549c32aa22df6c911fc565624d52" args="(axutil_threadattr_t *attr, axutil_allocator_t *allocator)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">AXIS2_EXTERN axis2_bool_t axutil_threadattr_is_detach           </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="group__axutil__thread.html#g00ba127eb9ea681435b79dfd52132bc9">axutil_threadattr_t</a> *&nbsp;</td>
          <td class="paramname"> <em>attr</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype"><a class="el" href="structaxutil__allocator.html">axutil_allocator_t</a> *&nbsp;</td>
          <td class="paramname"> <em>allocator</em></td><td>&nbsp;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td><td width="100%"></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
Get the detach state for this threadattr. <dl compact><dt><b>Parameters:</b></dt><dd>
  <table border="0" cellspacing="2" cellpadding="0">
    <tr><td valign="top"></td><td valign="top"><em>attr</em>&nbsp;</td><td>The threadattr to reference </td></tr>
  </table>
</dl>
<dl class="return" compact><dt><b>Returns:</b></dt><dd>AXIS2_TRUE if threads are to be detached, or AXIS2_FALSE if threads are to be joinable. </dd></dl>

</div>
</div><p>
<hr size="1"><address style="text-align: right;"><small>Generated on Fri Apr 17 11:49:46 2009 for Axis2/C by&nbsp;
<a href="http://www.doxygen.org/index.html">
<img src="doxygen.png" alt="doxygen" align="middle" border="0"></a> 1.5.3 </small></address>
</body>
</html>


<|start_filename|>axiom/src/parser/libxml2/libxml2_reader_wrapper.c<|end_filename|>

/*
 * 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.
 */

#include <axiom_xml_reader.h>
#include <libxml/xmlreader.h>
#include <libxml/parser.h>
#include <axutil_utils_defines.h>
#include <axutil_utils.h>
#include <string.h>
#include <axutil_string.h>


int AXIS2_CALL axis2_libxml2_reader_wrapper_next(
    axiom_xml_reader_t * parser,
    const axutil_env_t * env);

void AXIS2_CALL axis2_libxml2_reader_wrapper_free(
    axiom_xml_reader_t * parser,
    const axutil_env_t * env);

int AXIS2_CALL axis2_libxml2_reader_wrapper_get_attribute_count(
    axiom_xml_reader_t * parser,
    const axutil_env_t * env);

axis2_char_t *AXIS2_CALL
axis2_libxml2_reader_wrapper_get_attribute_name_by_number(
    axiom_xml_reader_t * parser,
    const axutil_env_t * env,
    int i);

axis2_char_t *AXIS2_CALL
axis2_libxml2_reader_wrapper_get_attribute_prefix_by_number(
    axiom_xml_reader_t * parser,
    const axutil_env_t * env,
    int i);

axis2_char_t *AXIS2_CALL
axis2_libxml2_reader_wrapper_get_attribute_value_by_number(
    axiom_xml_reader_t * parser,
    const axutil_env_t * env,
    int i);

axis2_char_t *AXIS2_CALL
axis2_libxml2_reader_wrapper_get_attribute_namespace_by_number(
    axiom_xml_reader_t * parser,
    const axutil_env_t * env,
    int i);

axis2_char_t *AXIS2_CALL axis2_libxml2_reader_wrapper_get_value(
    axiom_xml_reader_t * parser,
    const axutil_env_t * env);

int AXIS2_CALL axis2_libxml2_reader_wrapper_get_namespace_count(
    axiom_xml_reader_t * parser,
    const axutil_env_t * env);

axis2_char_t *AXIS2_CALL
axis2_libxml2_reader_wrapper_get_namespace_uri_by_number(
    axiom_xml_reader_t * parser,
    const axutil_env_t * env,
    int i);

axis2_char_t *AXIS2_CALL
axis2_libxml2_reader_wrapper_get_namespace_prefix_by_number(
    axiom_xml_reader_t * parser,
    const axutil_env_t * env,
    int i);

axis2_char_t *AXIS2_CALL axis2_libxml2_reader_wrapper_get_prefix(
    axiom_xml_reader_t * parser,
    const axutil_env_t * env);

axis2_char_t *AXIS2_CALL axis2_libxml2_reader_wrapper_get_name(
    axiom_xml_reader_t * parser,
    const axutil_env_t * env);

axis2_char_t *AXIS2_CALL axis2_libxml2_reader_wrapper_get_pi_target(
    axiom_xml_reader_t * parser,
    const axutil_env_t * env);

axis2_char_t *AXIS2_CALL axis2_libxml2_reader_wrapper_get_pi_data(
    axiom_xml_reader_t * parser,
    const axutil_env_t * env);

axis2_char_t *AXIS2_CALL axis2_libxml2_reader_wrapper_get_dtd(
    axiom_xml_reader_t * parser,
    const axutil_env_t * env);

void AXIS2_CALL axis2_libxml2_reader_wrapper_xml_free(
    axiom_xml_reader_t * parser,
    const axutil_env_t * env,
    void *data);

axis2_char_t *AXIS2_CALL axis2_libxml2_reader_wrapper_get_char_set_encoding(
    axiom_xml_reader_t * parser,
    const axutil_env_t * env);

axis2_char_t *AXIS2_CALL axis2_libxml2_reader_wrapper_get_namespace_uri(
    axiom_xml_reader_t * parser,
    const axutil_env_t * env);

axis2_char_t *AXIS2_CALL
axis2_libxml2_reader_wrapper_get_namespace_uri_by_prefix(
    axiom_xml_reader_t * parser,
    const axutil_env_t * env,
    axis2_char_t * prefix);

axis2_status_t axis2_libxml2_reader_wrapper_fill_maps(
    axiom_xml_reader_t * parser,
    const axutil_env_t * env);

void axis2_libxml2_reader_wrapper_error_handler(
    void *arg,
    const char *msg,
    int severities,
    void *locator_ptr);

static int axis2_libxml2_reader_wrapper_read_input_callback(
    void *ctx,
    char *buffer,
    int size);

static int axis2_libxml2_reader_wrapper_close_input_callback(
    void *ctx);

typedef struct axis2_libxml2_reader_wrapper_impl_t
{
    axiom_xml_reader_t parser;

    xmlTextReaderPtr reader;

    int current_event;
    int current_attribute_count;
    int current_namespace_count;
    int event_map[18];

    void *ctx;
    /* assuming that max ns and attribute will be 20 */

    int *namespace_map;
    int *attribute_map;

    AXIS2_READ_INPUT_CALLBACK read_input_callback;

    AXIS2_CLOSE_INPUT_CALLBACK close_input_callback;

}
axis2_libxml2_reader_wrapper_impl_t;

#define AXIS2_INTF_TO_IMPL(p) ((axis2_libxml2_reader_wrapper_impl_t*)p)
#define AXIS2_IMPL_TO_INTF(p) &(p->parser)

static const axiom_xml_reader_ops_t axiom_xml_reader_ops_var = {
    axis2_libxml2_reader_wrapper_next,
    axis2_libxml2_reader_wrapper_free,
    axis2_libxml2_reader_wrapper_get_attribute_count,
    axis2_libxml2_reader_wrapper_get_attribute_name_by_number,
    axis2_libxml2_reader_wrapper_get_attribute_prefix_by_number,
    axis2_libxml2_reader_wrapper_get_attribute_value_by_number,
    axis2_libxml2_reader_wrapper_get_attribute_namespace_by_number,
    axis2_libxml2_reader_wrapper_get_value,
    axis2_libxml2_reader_wrapper_get_namespace_count,
    axis2_libxml2_reader_wrapper_get_namespace_uri_by_number,
    axis2_libxml2_reader_wrapper_get_namespace_prefix_by_number,
    axis2_libxml2_reader_wrapper_get_prefix,
    axis2_libxml2_reader_wrapper_get_name,
    axis2_libxml2_reader_wrapper_get_pi_target,
    axis2_libxml2_reader_wrapper_get_pi_data,
    axis2_libxml2_reader_wrapper_get_dtd,
    axis2_libxml2_reader_wrapper_xml_free,
    axis2_libxml2_reader_wrapper_get_char_set_encoding,
    axis2_libxml2_reader_wrapper_get_namespace_uri,
    axis2_libxml2_reader_wrapper_get_namespace_uri_by_prefix
};

static axis2_status_t
axis2_libxml2_reader_wrapper_init_map(
    axis2_libxml2_reader_wrapper_impl_t * parser)
{
    int i = 0;
    if (parser)
    {
        for (i = 0; i < 18; i++)
        {
            parser->event_map[i] = -1;
        }

        parser->event_map[XML_READER_TYPE_ELEMENT] =
            AXIOM_XML_READER_START_ELEMENT;

        parser->event_map[XML_READER_TYPE_ELEMENT] =
            AXIOM_XML_READER_START_ELEMENT;

        parser->event_map[XML_READER_TYPE_DOCUMENT] =
            AXIOM_XML_READER_START_DOCUMENT;

        parser->event_map[XML_READER_TYPE_TEXT] = AXIOM_XML_READER_CHARACTER;

        parser->event_map[XML_READER_TYPE_CDATA] = AXIOM_XML_READER_CHARACTER;

        parser->event_map[XML_READER_TYPE_SIGNIFICANT_WHITESPACE] =
            AXIOM_XML_READER_SPACE;

        parser->event_map[XML_READER_TYPE_WHITESPACE] = AXIOM_XML_READER_SPACE;

        parser->event_map[XML_READER_TYPE_END_ELEMENT] =
            AXIOM_XML_READER_END_ELEMENT;

        parser->event_map[XML_READER_TYPE_ENTITY_REFERENCE] =
            AXIOM_XML_READER_ENTITY_REFERENCE;

        parser->event_map[XML_READER_TYPE_END_ENTITY] = AXIOM_XML_READER_SPACE;

        parser->event_map[XML_READER_TYPE_ENTITY] = AXIOM_XML_READER_SPACE;

        parser->event_map[XML_READER_TYPE_PROCESSING_INSTRUCTION] =
            AXIOM_XML_READER_PROCESSING_INSTRUCTION;

        parser->event_map[XML_READER_TYPE_COMMENT] = AXIOM_XML_READER_COMMENT;

        parser->event_map[XML_READER_TYPE_DOCUMENT_TYPE] =
            AXIOM_XML_READER_DOCUMENT_TYPE;
        return AXIS2_SUCCESS;
    }
    return AXIS2_FAILURE;
}

AXIS2_EXTERN axis2_status_t AXIS2_CALL
axiom_xml_reader_init()
{
    xmlInitParser();
    return AXIS2_SUCCESS;
}

AXIS2_EXTERN axis2_status_t AXIS2_CALL
axiom_xml_reader_cleanup()
{
    xmlCleanupParser();
    return AXIS2_SUCCESS;
}

static axis2_libxml2_reader_wrapper_impl_t*
libxml2_reader_wrapper_create(const axutil_env_t *env)
{
	axis2_libxml2_reader_wrapper_impl_t *wrapper_impl = NULL;
	wrapper_impl = (axis2_libxml2_reader_wrapper_impl_t *)AXIS2_MALLOC(env->allocator,
		sizeof(axis2_libxml2_reader_wrapper_impl_t));

	if (!wrapper_impl)
	{
		AXIS2_ERROR_SET(env->error, AXIS2_ERROR_NO_MEMORY, AXIS2_FAILURE);
		AXIS2_LOG_ERROR(env->log, AXIS2_LOG_SI, "No memory. Cannot create libxml2 reader wrapper");
		return NULL;
	}
	memset(wrapper_impl, 0, sizeof(axis2_libxml2_reader_wrapper_impl_t));
	wrapper_impl->attribute_map = NULL;
	wrapper_impl->namespace_map = NULL;
	wrapper_impl->close_input_callback = NULL;
	wrapper_impl->read_input_callback = NULL;
	wrapper_impl->ctx = NULL;
	wrapper_impl->current_namespace_count = 0;
	wrapper_impl->current_attribute_count = 0;
	wrapper_impl->current_event = -1;
	return wrapper_impl;
}


AXIS2_EXTERN axiom_xml_reader_t *AXIS2_CALL
axiom_xml_reader_create_for_file(
    const axutil_env_t * env,
    char *filename,
    const axis2_char_t * encoding)
{

    axis2_libxml2_reader_wrapper_impl_t *wrapper_impl = NULL;
    AXIS2_ENV_CHECK(env, NULL);
    AXIS2_PARAM_CHECK(env->error, filename, NULL);

    wrapper_impl = libxml2_reader_wrapper_create(env);
    if (!wrapper_impl)
    {
        return NULL;
    }

    wrapper_impl->reader = xmlReaderForFile(filename, encoding, XML_PARSE_RECOVER);
    if (!(wrapper_impl->reader))
    {
        AXIS2_FREE(env->allocator, wrapper_impl);
        AXIS2_HANDLE_ERROR(env, AXIS2_ERROR_CREATING_XML_STREAM_READER,
                        AXIS2_FAILURE);
        return NULL;
    }

    xmlTextReaderSetErrorHandler(wrapper_impl->reader,
                                 (xmlTextReaderErrorFunc)
                                 axis2_libxml2_reader_wrapper_error_handler,
                                 (void *) env);
    wrapper_impl->current_event = -1;
    wrapper_impl->ctx = NULL;
    axis2_libxml2_reader_wrapper_init_map(wrapper_impl);

    wrapper_impl->parser.ops = &axiom_xml_reader_ops_var;
    return &(wrapper_impl->parser);
}

AXIS2_EXTERN axiom_xml_reader_t *AXIS2_CALL
axiom_xml_reader_create_for_io(
    const axutil_env_t * env,
    AXIS2_READ_INPUT_CALLBACK read_input_callback,
    AXIS2_CLOSE_INPUT_CALLBACK close_input_callback,
    void *ctx,
    const axis2_char_t * encoding)
{
    axis2_libxml2_reader_wrapper_impl_t *wrapper_impl = NULL;

    AXIS2_ENV_CHECK(env, NULL);

    if (!read_input_callback)
    {
        return NULL;
    }

    wrapper_impl = libxml2_reader_wrapper_create(env);
    if (!wrapper_impl)
    {
        return NULL;
    }
    wrapper_impl->close_input_callback = NULL;
    wrapper_impl->read_input_callback = NULL;
    wrapper_impl->read_input_callback = read_input_callback;
    wrapper_impl->close_input_callback = close_input_callback;
    wrapper_impl->ctx = ctx;
    if (wrapper_impl->close_input_callback)
    {
        wrapper_impl->reader =
            xmlReaderForIO(axis2_libxml2_reader_wrapper_read_input_callback,
                           axis2_libxml2_reader_wrapper_close_input_callback,
                           wrapper_impl, NULL, encoding, XML_PARSE_RECOVER);
    }
    else
    {
        wrapper_impl->reader =
            xmlReaderForIO(axis2_libxml2_reader_wrapper_read_input_callback,
                           NULL, wrapper_impl, NULL, encoding,
                           XML_PARSE_RECOVER);
    }
    if (!(wrapper_impl->reader))
    {
        AXIS2_FREE(env->allocator, wrapper_impl);
        AXIS2_HANDLE_ERROR(env, AXIS2_ERROR_CREATING_XML_STREAM_READER,
                        AXIS2_FAILURE);
        return NULL;
    }

    xmlTextReaderSetErrorHandler(wrapper_impl->reader,
                                 (xmlTextReaderErrorFunc)
                                 axis2_libxml2_reader_wrapper_error_handler,
                                 (void *) env);

    wrapper_impl->current_event = -1;

    axis2_libxml2_reader_wrapper_init_map(wrapper_impl);

    wrapper_impl->parser.ops = &axiom_xml_reader_ops_var;
    return &(wrapper_impl->parser);
}

AXIS2_EXTERN axiom_xml_reader_t *AXIS2_CALL
axiom_xml_reader_create_for_memory(
    const axutil_env_t * env,
    void *container,
    int size,
    const axis2_char_t * encoding,
    int type)
{
    axis2_libxml2_reader_wrapper_impl_t *wrapper_impl = NULL;

    AXIS2_PARAM_CHECK(env->error, container, NULL);

    wrapper_impl = libxml2_reader_wrapper_create(env);
    if (!wrapper_impl)
    {
        return NULL;
    }
    wrapper_impl->close_input_callback = NULL;
    wrapper_impl->read_input_callback = NULL;
    wrapper_impl->ctx = NULL;

    if (AXIS2_XML_PARSER_TYPE_BUFFER == type)
    {
        wrapper_impl->reader =
            xmlReaderForMemory((axis2_char_t *) container, size, NULL, encoding,
                               XML_PARSE_RECOVER);
    }
    else if (AXIS2_XML_PARSER_TYPE_DOC == type)
    {
        wrapper_impl->reader = xmlReaderWalker((xmlDocPtr) container);
    }
    else
    {
        AXIS2_FREE(env->allocator, wrapper_impl);
        AXIS2_HANDLE_ERROR(env, AXIS2_ERROR_XML_PARSER_INVALID_MEM_TYPE,
                        AXIS2_FAILURE);
        return NULL;
    }

    if (!(wrapper_impl->reader))
    {
        AXIS2_FREE(env->allocator, wrapper_impl);
        AXIS2_HANDLE_ERROR(env,
                        AXIS2_ERROR_CREATING_XML_STREAM_READER, AXIS2_FAILURE);
        return NULL;
    }

    if (AXIS2_XML_PARSER_TYPE_BUFFER == type)
    {
        xmlTextReaderSetErrorHandler(wrapper_impl->reader,
                                     (xmlTextReaderErrorFunc)
                                     axis2_libxml2_reader_wrapper_error_handler,
                                     (void *) env);
    }

    wrapper_impl->current_event = -1;

    axis2_libxml2_reader_wrapper_init_map(wrapper_impl);

    wrapper_impl->parser.ops = &axiom_xml_reader_ops_var;
    return &(wrapper_impl->parser);
}

int AXIS2_CALL
axis2_libxml2_reader_wrapper_next(
    axiom_xml_reader_t * parser,
    const axutil_env_t * env)
{
    int ret_val = 0;
    int node = 2;
    int empty_check = 0;
    axis2_libxml2_reader_wrapper_impl_t *parser_impl;
    AXIS2_ENV_CHECK(env, -1);
    parser_impl = AXIS2_INTF_TO_IMPL(parser);
    ret_val = xmlTextReaderRead(parser_impl->reader);
    if (ret_val == 0)
    {
        AXIS2_LOG_DEBUG(env->log, AXIS2_LOG_SI, "xml stream is over ");
    }
    if (ret_val == -1)
    {
        AXIS2_LOG_ERROR(env->log, AXIS2_LOG_SI,
                        " error occurred in reading xml stream ");
        return -1;
    }

    if (ret_val == 1)
    {
        node = xmlTextReaderNodeType(parser_impl->reader);
        parser_impl->current_event = parser_impl->event_map[node];
        parser_impl->current_attribute_count = 0;
        parser_impl->current_namespace_count = 0;

        if (node == XML_READER_TYPE_ELEMENT)
        {
            empty_check = xmlTextReaderIsEmptyElement(parser_impl->reader);
            axis2_libxml2_reader_wrapper_fill_maps(parser, env);
        }
        if (empty_check == 1)
        {
            parser_impl->current_event = AXIOM_XML_READER_EMPTY_ELEMENT;
            return AXIOM_XML_READER_EMPTY_ELEMENT;
        }
        return parser_impl->event_map[node];
    }
    else
    {
        return -1;
    }
}


/**
* If your application crashes here, it may be due to an earlier call to
* xmlCleanupParser() function. In client API, op_client create function has a call
* to axiom_xml_reader_init and op_client_free function has a call to axiom_xml_reader_cleanup
* function. You can avoid the call to axiom_xml_reader_cleanup using 
* axis2_options_set_xml_parser_reset function in client API.
* refer to jira issue:  https://issues.apache.org/jira/browse/AXIS2C-884
*/
void AXIS2_CALL
axis2_libxml2_reader_wrapper_free(
    axiom_xml_reader_t * parser,
    const axutil_env_t * env)
{
	axis2_libxml2_reader_wrapper_impl_t *parser_impl = NULL;
	parser_impl = AXIS2_INTF_TO_IMPL(parser);
    if (parser_impl->ctx)
    {
        AXIS2_FREE(env->allocator, parser_impl->ctx);
    }

    if (parser_impl->reader)
    {
        xmlTextReaderClose(parser_impl->reader);
        xmlFreeTextReader(parser_impl->reader);
    }
	if(parser_impl->namespace_map)
	{
		AXIS2_FREE(env->allocator,parser_impl->namespace_map);
		parser_impl->namespace_map = NULL;
	}
	if(parser_impl->attribute_map)
	{
		AXIS2_FREE(env->allocator, parser_impl->attribute_map);
		parser_impl->attribute_map = NULL;
	}
    AXIS2_FREE(env->allocator, AXIS2_INTF_TO_IMPL(parser));
    return;
}

int AXIS2_CALL
axis2_libxml2_reader_wrapper_get_attribute_count(
    axiom_xml_reader_t * parser,
    const axutil_env_t * env)
{
    axis2_libxml2_reader_wrapper_impl_t *parser_impl = NULL;
    AXIS2_ENV_CHECK(env, AXIS2_FAILURE);
    parser_impl = AXIS2_INTF_TO_IMPL(parser);
    if (parser_impl->current_event == AXIOM_XML_READER_START_ELEMENT ||
        parser_impl->current_event == AXIOM_XML_READER_EMPTY_ELEMENT)
    {
        return parser_impl->current_attribute_count;
    }
    else
    {
        return 0;
    }
}

axis2_char_t *AXIS2_CALL
axis2_libxml2_reader_wrapper_get_attribute_name_by_number(
    axiom_xml_reader_t * parser,
    const axutil_env_t * env,
    int i)
{
    axis2_libxml2_reader_wrapper_impl_t *parser_impl;
    AXIS2_ENV_CHECK(env, NULL);
    parser_impl = AXIS2_INTF_TO_IMPL(parser);

    if (parser_impl->current_attribute_count > 0 &&
        parser_impl->current_attribute_count >= i)
    {
        int ret = xmlTextReaderMoveToAttributeNo(parser_impl->reader,
                                                 parser_impl->attribute_map[i]);
        if (ret == 1)
        {
            return (axis2_char_t *) xmlTextReaderLocalName(parser_impl->reader);
        }
        else
        {
            return NULL;
        }
    }
    return NULL;
}

axis2_char_t *AXIS2_CALL
axis2_libxml2_reader_wrapper_get_attribute_prefix_by_number(
    axiom_xml_reader_t * parser,
    const axutil_env_t * env,
    int i)
{
    axis2_libxml2_reader_wrapper_impl_t *parser_impl = NULL;
    AXIS2_ENV_CHECK(env, NULL);
    parser_impl = AXIS2_INTF_TO_IMPL(parser);

    if (parser_impl->current_attribute_count > 0 &&
        parser_impl->current_attribute_count >= i)
    {
        int ret = xmlTextReaderMoveToAttributeNo(parser_impl->reader,
                                                 parser_impl->attribute_map[i]);
        if (ret == 1)
        {
            return (axis2_char_t *) xmlTextReaderPrefix(parser_impl->reader);
        }
        else
        {
            return NULL;
        }
    }
    return NULL;
}

axis2_char_t *AXIS2_CALL
axis2_libxml2_reader_wrapper_get_attribute_value_by_number(
    axiom_xml_reader_t * parser,
    const axutil_env_t * env,
    int i)
{

    axis2_libxml2_reader_wrapper_impl_t *parser_impl;
    AXIS2_ENV_CHECK(env, NULL);
    parser_impl = AXIS2_INTF_TO_IMPL(parser);

    if (parser_impl->current_attribute_count > 0 &&
        parser_impl->current_attribute_count >= i)
    {
        int ret = xmlTextReaderMoveToAttributeNo(parser_impl->reader,
                                                 parser_impl->attribute_map[i]);
        if (ret == 1)
        {
            return (axis2_char_t *) xmlTextReaderValue(parser_impl->reader);
        }
        else
        {
            return NULL;
        }
    }
    return NULL;
}

axis2_char_t *AXIS2_CALL
axis2_libxml2_reader_wrapper_get_attribute_namespace_by_number(
    axiom_xml_reader_t * parser,
    const axutil_env_t * env,
    int i)
{
    axis2_libxml2_reader_wrapper_impl_t *parser_impl;
    AXIS2_ENV_CHECK(env, NULL);
    parser_impl = AXIS2_INTF_TO_IMPL(parser);

    if (parser_impl->current_attribute_count > 0 &&
        parser_impl->current_attribute_count >= i)
    {
        int ret = xmlTextReaderMoveToAttributeNo(parser_impl->reader,
                                                 parser_impl->attribute_map[i]);

        if (ret == 1)
        {
            return (axis2_char_t *) xmlTextReaderNamespaceUri(parser_impl->
                                                              reader);
        }
        else
        {
            return NULL;
        }
    }
    return NULL;
}

axis2_char_t *AXIS2_CALL
axis2_libxml2_reader_wrapper_get_value(
    axiom_xml_reader_t * parser,
    const axutil_env_t * env)
{
    axis2_libxml2_reader_wrapper_impl_t *parser_impl = NULL;

    AXIS2_ENV_CHECK(env, NULL);
    parser_impl = AXIS2_INTF_TO_IMPL(parser);
    return (axis2_char_t *) xmlTextReaderValue(parser_impl->reader);

}

int AXIS2_CALL
axis2_libxml2_reader_wrapper_get_namespace_count(
    axiom_xml_reader_t * parser,
    const axutil_env_t * env)
{
    axis2_libxml2_reader_wrapper_impl_t *parser_impl = NULL;
    AXIS2_ENV_CHECK(env, AXIS2_FAILURE);
    parser_impl = AXIS2_INTF_TO_IMPL(parser);
    if (parser_impl->current_event == AXIOM_XML_READER_START_ELEMENT ||
        parser_impl->current_event == AXIOM_XML_READER_EMPTY_ELEMENT)
    {
        return parser_impl->current_namespace_count;
    }
    else
    {
        return 0;
    }
}

axis2_char_t *AXIS2_CALL
axis2_libxml2_reader_wrapper_get_namespace_uri_by_number(
    axiom_xml_reader_t * parser,
    const axutil_env_t * env,
    int i)
{
    axis2_libxml2_reader_wrapper_impl_t *parser_impl = NULL;
    AXIS2_ENV_CHECK(env, NULL);
    parser_impl = AXIS2_INTF_TO_IMPL(parser);

    if (parser_impl->current_namespace_count > 0 &&
        parser_impl->current_namespace_count >= i)
    {

        int ret = xmlTextReaderMoveToAttributeNo(parser_impl->reader,
                                                 parser_impl->namespace_map[i]);
        if (ret == 1)
        {
            return (axis2_char_t *) xmlTextReaderValue(parser_impl->reader);
        }
        else
            return NULL;
    }
    return NULL;
}

axis2_char_t *AXIS2_CALL
axis2_libxml2_reader_wrapper_get_namespace_prefix_by_number(
    axiom_xml_reader_t * parser,
    const axutil_env_t * env,
    int i)
{
    axis2_libxml2_reader_wrapper_impl_t *parser_impl = NULL;
    AXIS2_ENV_CHECK(env, NULL);
    parser_impl = AXIS2_INTF_TO_IMPL(parser);

    if (parser_impl->current_namespace_count > 0 &&
        parser_impl->current_namespace_count >= i)
    {
        int ret = xmlTextReaderMoveToAttributeNo(parser_impl->reader,
                                                 parser_impl->namespace_map[i]);

        if (ret == 1)
        {
            return (axis2_char_t *) xmlTextReaderLocalName(parser_impl->reader);
        }
        else
        {
            return NULL;
        }
    }
    return NULL;
}

axis2_char_t *AXIS2_CALL
axis2_libxml2_reader_wrapper_get_prefix(
    axiom_xml_reader_t * parser,
    const axutil_env_t * env)
{
    axis2_libxml2_reader_wrapper_impl_t *parser_impl = NULL;
    parser_impl = AXIS2_INTF_TO_IMPL(parser);
    xmlTextReaderMoveToElement(parser_impl->reader);
    return (axis2_char_t *) xmlTextReaderPrefix(parser_impl->reader);
}

axis2_char_t *AXIS2_CALL
axis2_libxml2_reader_wrapper_get_name(
    axiom_xml_reader_t * parser,
    const axutil_env_t * env)
{
    axis2_libxml2_reader_wrapper_impl_t *parser_impl = NULL;
    parser_impl = AXIS2_INTF_TO_IMPL(parser);
    xmlTextReaderMoveToElement(parser_impl->reader);
    return (axis2_char_t *) xmlTextReaderLocalName(parser_impl->reader);
}

axis2_char_t *AXIS2_CALL
axis2_libxml2_reader_wrapper_get_pi_target(
    axiom_xml_reader_t * parser,
    const axutil_env_t * env)
{
    axis2_libxml2_reader_wrapper_impl_t *parser_impl = NULL;
    parser_impl = AXIS2_INTF_TO_IMPL(parser);
    if (parser_impl->current_event == AXIOM_XML_READER_PROCESSING_INSTRUCTION)
    {
        return (axis2_char_t *) xmlTextReaderLocalName(parser_impl->reader);
    }
    else
    {
        return NULL;
    }
}

axis2_char_t *AXIS2_CALL
axis2_libxml2_reader_wrapper_get_dtd(
    axiom_xml_reader_t * parser,
    const axutil_env_t * env)
{
    axis2_libxml2_reader_wrapper_impl_t *parser_impl = NULL;
    parser_impl = AXIS2_INTF_TO_IMPL(parser);
    if (parser_impl->current_event == AXIOM_XML_READER_DOCUMENT_TYPE)
    {
        return (axis2_char_t *) xmlTextReaderLocalName(parser_impl->reader);
    }
    else
    {
        return NULL;
    }
}

axis2_char_t *AXIS2_CALL
axis2_libxml2_reader_wrapper_get_pi_data(
    axiom_xml_reader_t * parser,
    const axutil_env_t * env)
{
    axis2_libxml2_reader_wrapper_impl_t *parser_impl = NULL;
    parser_impl = AXIS2_INTF_TO_IMPL(parser);
    if (parser_impl->current_event == AXIOM_XML_READER_PROCESSING_INSTRUCTION)
    {
        return (axis2_char_t *) xmlTextReaderValue(parser_impl->reader);
    }
    else
    {
        return NULL;
    }
}

void AXIS2_CALL
axis2_libxml2_reader_wrapper_xml_free(
    axiom_xml_reader_t * parser,
    const axutil_env_t * env,
    void *data)
{
    AXIS2_ENV_CHECK(env, void);
    if (data)
        xmlFree(data);
    return;
}

axis2_char_t *AXIS2_CALL
axis2_libxml2_reader_wrapper_get_char_set_encoding(
    axiom_xml_reader_t * parser,
    const axutil_env_t * env)
{
    axis2_libxml2_reader_wrapper_impl_t *reader_impl = NULL;
    reader_impl = AXIS2_INTF_TO_IMPL(parser);
    return (axis2_char_t *) xmlTextReaderConstEncoding(reader_impl->reader);
}

axis2_char_t *AXIS2_CALL
axis2_libxml2_reader_wrapper_get_namespace_uri(
    axiom_xml_reader_t * parser,
    const axutil_env_t * env)
{
    axis2_libxml2_reader_wrapper_impl_t *parser_impl = NULL;
    parser_impl = AXIS2_INTF_TO_IMPL(parser);
    return (axis2_char_t *) xmlTextReaderNamespaceUri(parser_impl->reader);
}

axis2_char_t *AXIS2_CALL
axis2_libxml2_reader_wrapper_get_namespace_uri_by_prefix(
    axiom_xml_reader_t * parser,
    const axutil_env_t * env,
    axis2_char_t * prefix)
{
    axis2_libxml2_reader_wrapper_impl_t *parser_impl = NULL;
    parser_impl = AXIS2_INTF_TO_IMPL(parser);
    if (!prefix || axutil_strcmp(prefix, "") == 0)
    {
        return NULL;
    }
    return (axis2_char_t *) xmlTextReaderLookupNamespace(parser_impl->reader,
                                                         (const xmlChar *)
                                                         prefix);
}

axis2_status_t
axis2_libxml2_reader_wrapper_fill_maps(
    axiom_xml_reader_t * parser,
    const axutil_env_t * env)
{
    int libxml2_attribute_count = 0;
    int attr_count = 0;
    int ns_count = 0;
    int i = 0;
    char *q_name = NULL;
    axis2_libxml2_reader_wrapper_impl_t *parser_impl = NULL;
	int map_size = 0;
    AXIS2_ENV_CHECK(env, AXIS2_FAILURE);
    parser_impl = AXIS2_INTF_TO_IMPL(parser);

    libxml2_attribute_count = xmlTextReaderAttributeCount(parser_impl->reader);
    if (libxml2_attribute_count == 0)
    {
		parser_impl->current_attribute_count = 0;
		parser_impl->current_namespace_count = 0;
        return AXIS2_SUCCESS;
    }
	map_size = libxml2_attribute_count +1;
	if(parser_impl->namespace_map)
	{
		AXIS2_FREE(env->allocator, parser_impl->namespace_map);
		parser_impl->namespace_map = NULL;
	}
	if(parser_impl->attribute_map)
	{
		AXIS2_FREE(env->allocator, parser_impl->attribute_map);
		parser_impl->attribute_map = NULL;
	}	
	parser_impl->attribute_map = AXIS2_MALLOC(env->allocator, sizeof(int)* map_size);
	memset(parser_impl->attribute_map, 0, map_size*sizeof(int));

	parser_impl->namespace_map = AXIS2_MALLOC(env->allocator, sizeof(int)*map_size);
	memset(parser_impl->namespace_map,0, map_size*sizeof(int));
	
    for (i = 0; i < map_size ; i++)
    {
        parser_impl->namespace_map[i] = -1;
        parser_impl->attribute_map[i] = -1;
    }

    for (i = 0; i < libxml2_attribute_count; i++)
    {
        xmlTextReaderMoveToAttributeNo(parser_impl->reader, i);
        q_name = (char *) xmlTextReaderName(parser_impl->reader);
        if (q_name)
        {
            if ((strcmp(q_name, "xmlns") == 0) ||
                (strncmp(q_name, "xmlns:", 6) == 0))
            {
                /* found a namespace */
                ns_count++;
                parser_impl->namespace_map[ns_count] = i;
            }
            else
            {
                /* found an attribute */
                attr_count++;
                parser_impl->attribute_map[attr_count] = i;
            }

            xmlFree(q_name);
            q_name = NULL;
        }

        parser_impl->current_attribute_count = attr_count;
        parser_impl->current_namespace_count = ns_count;
    }
    return AXIS2_SUCCESS;
}

static int
axis2_libxml2_reader_wrapper_read_input_callback(
    void *ctx,
    char *buffer,
    int size)
{
    return ((axis2_libxml2_reader_wrapper_impl_t *) ctx)->
        read_input_callback(buffer, size,
                            ((axis2_libxml2_reader_wrapper_impl_t *) ctx)->ctx);
}

void
axis2_libxml2_reader_wrapper_error_handler(
    void *arg,
    const char *msg,
    int severities,
    void *locator_ptr)
{
    const axutil_env_t *env = NULL;
    env = (const axutil_env_t *) arg;

    switch (severities)
    {
    case XML_PARSER_SEVERITY_VALIDITY_WARNING:
        {
            AXIS2_LOG_ERROR(env->log, AXIS2_LOG_SI, "%s VALIDITY WARNTING",
                            msg);
        }
        break;
    case XML_PARSER_SEVERITY_VALIDITY_ERROR:
        {
            AXIS2_LOG_ERROR(env->log, AXIS2_LOG_SI, "%s -- VALIDITY ERROR",
                            msg);
        }
        break;
    case XML_PARSER_SEVERITY_WARNING:
        {
            AXIS2_LOG_ERROR(env->log, AXIS2_LOG_SI, "%s -- VALIDITY ERROR",
                            msg);
        }
        break;
    case XML_PARSER_SEVERITY_ERROR:
        {
            AXIS2_LOG_ERROR(env->log, AXIS2_LOG_SI, "%s -- SEVERITY_ERROR",
                            msg);
        }
        break;
    default:
        break;
    }
}

static int
axis2_libxml2_reader_wrapper_close_input_callback(
    void *ctx)
{
    return ((axis2_libxml2_reader_wrapper_impl_t *) ctx)->
        close_input_callback(((axis2_libxml2_reader_wrapper_impl_t *) ctx)->
                             ctx);
}


<|start_filename|>util/include/axutil_hash.h<|end_filename|>

/*
 * 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_HASH_H
#define AXUTIL_HASH_H

/**
 * @file axutil_hash.h
 * @brief Axis2 Hash Tables
 */

#include <axutil_utils_defines.h>
#include <axutil_env.h>

#ifdef __cplusplus
extern "C"
{
#endif

    /**
     * @defgroup axutil_hash hash
     * @ingroup axis2_util
     * @{
     */

    /**
     * When passing a key to axutil_hash_set or axutil_hash_get, this value can be
     * passed to indicate a string-valued key, and have axutil_hash compute the
     * length automatically.
     *
     * @remark axutil_hash will use strlen(key) for the length. The NUL terminator
     *         is not included in the hash value (why throw a constant in?).
     *         Since the hash table merely references the provided key (rather
     *         than copying it), axutil_hash_this() will return the NUL-term'd key.
     */
#define AXIS2_HASH_KEY_STRING     (unsigned int)(-1)

    /**
     * Abstract type for hash tables.
     */
    typedef struct axutil_hash_t axutil_hash_t;

    /**
     * Abstract type for scanning hash tables.
     */
    typedef struct axutil_hash_index_t axutil_hash_index_t;

    /**
     * Callback functions for calculating hash values.
     * @param key The key.
     * @param klen The length of the key, or AXIS2_HASH_KEY_STRING to use the string
     *             length. If AXIS2_HASH_KEY_STRING then returns the actual key length.
     */
    typedef unsigned int(
        *axutil_hashfunc_t)(
            const char *key,
            axis2_ssize_t * klen);

    /**
     * The default hash function.
     */
    unsigned int axutil_hashfunc_default(
        const char *key,
        axis2_ssize_t * klen);

    /**
     * Create a hash table.
     * @param env The environment to allocate the hash table out of
     * @return The hash table just created
      */
    AXIS2_EXTERN axutil_hash_t *AXIS2_CALL
    axutil_hash_make(
        const axutil_env_t * env);

    /**
     * Create a hash table with a custom hash function
     * @param env The environment to allocate the hash table out of
     * @param hash_func A custom hash function.
     * @return The hash table just created
      */
    AXIS2_EXTERN axutil_hash_t *AXIS2_CALL
    axutil_hash_make_custom(
        const axutil_env_t * env,
        axutil_hashfunc_t hash_func);

    /**
     * Make a copy of a hash table
     * @param ht The hash table to clone
     * @param env The environment from which to allocate the new hash table
     * @return The hash table just created
     * @remark Makes a shallow copy
     */
    AXIS2_EXTERN axutil_hash_t *AXIS2_CALL
    axutil_hash_copy(
        const axutil_hash_t * ht,
        const axutil_env_t * env);

    /**
     * Associate a value with a key in a hash table.
     * @param ht The hash table
     * @param key Pointer to the key
     * @param klen Length of the key. Can be AXIS2_HASH_KEY_STRING to use the string length.
     * @param val Value to associate with the key
     * @remark If the value is NULL the hash entry is deleted.
     */
    AXIS2_EXTERN void AXIS2_CALL
    axutil_hash_set(
        axutil_hash_t * ht,
        const void *key,
        axis2_ssize_t klen,
        const void *val);

    /**
     * Look up the value associated with a key in a hash table.
     * @param ht The hash table
     * @param key Pointer to the key
     * @param klen Length of the key. Can be AXIS2_HASH_KEY_STRING to use the string length.
     * @return Returns NULL if the key is not present.
     */
    AXIS2_EXTERN void *AXIS2_CALL
    axutil_hash_get(
        axutil_hash_t * ht,
        const void *key,
        axis2_ssize_t klen);

    /**
     * Start iterating over the entries in a hash table.
     * @param ht The hash table
     * @param p The environment to allocate the axutil_hash_index_t iterator. If this
     *          environment is NULL, then an internal, non-thread-safe iterator is used.
     * @remark  There is no restriction on adding or deleting hash entries during
     * an iteration (although the results may be unpredictable unless all you do
     * is delete the current entry) and multiple iterations can be in
     * progress at the same time.

     * @example
     */

    /**
     * <PRE>
     *
     * int sum_values(const axutil_env_t *env, axutil_hash_t *ht)
     * {
     *     axutil_hash_index_t *hi;
     *     void *val;
     *     int sum = 0;
     *     for (hi = axutil_hash_first(p, ht); hi; hi = axutil_hash_next(p, hi)) {
     *         axutil_hash_this(hi, NULL, NULL, &val);
     *         sum += *(int *)val;
     *     }
     *     return sum;
     * }
     * </PRE>
     */
    AXIS2_EXTERN axutil_hash_index_t *AXIS2_CALL
    axutil_hash_first(
        axutil_hash_t * ht,
        const axutil_env_t * env);

    /**
     * Continue iterating over the entries in a hash table.
     * @param hi The iteration state
     * @return a pointer to the updated iteration state.  NULL if there are no more
     *         entries.
     */
    AXIS2_EXTERN axutil_hash_index_t *AXIS2_CALL
    axutil_hash_next(
        const axutil_env_t * env,
        axutil_hash_index_t * hi);

    /**
     * Get the current entry's details from the iteration state.
     * @param hi The iteration state
     * @param key Return pointer for the pointer to the key.
     * @param klen Return pointer for the key length.
     * @param val Return pointer for the associated value.
     * @remark The return pointers should point to a variable that will be set to the
     *         corresponding data, or they may be NULL if the data isn't interesting.
     */
    AXIS2_EXTERN void AXIS2_CALL
    axutil_hash_this(
        axutil_hash_index_t * hi,
        const void **key,
        axis2_ssize_t * klen,
        void **val);

    /**
     * Get the number of key/value pairs in the hash table.
     * @param ht The hash table
     * @return The number of key/value pairs in the hash table.
     */
    AXIS2_EXTERN unsigned int AXIS2_CALL
    axutil_hash_count(
        axutil_hash_t * ht);

    /**
     * Merge two hash tables into one new hash table. The values of the overlay
     * hash override the values of the base if both have the same key.  Both
     * hash tables must use the same hash function.
     * @param overlay The table to add to the initial table
     * @param p The environment to use for the new hash table
     * @param base The table that represents the initial values of the new table
     * @return A new hash table containing all of the data from the two passed in
     */
    AXIS2_EXTERN axutil_hash_t *AXIS2_CALL
    axutil_hash_overlay(
        const axutil_hash_t * overlay,
        const axutil_env_t * env,
        const axutil_hash_t * base);

    /**
     * Merge two hash tables into one new hash table. If the same key
     * is present in both tables, call the supplied merge function to
     * produce a merged value for the key in the new table.  Both
     * hash tables must use the same hash function.
     * @param h1 The first of the tables to merge
     * @param p The environment to use for the new hash table
     * @param h2 The second of the tables to merge
     * @param merger A callback function to merge values, or NULL to
     *  make values from h1 override values from h2 (same semantics as
     *  axutil_hash_overlay())
     * @param data Client data to pass to the merger function
     * @return A new hash table containing all of the data from the two passed in
     */
    AXIS2_EXTERN axutil_hash_t *AXIS2_CALL
    axutil_hash_merge(
        const axutil_hash_t * h1,
        const axutil_env_t * env,
        const axutil_hash_t * h2,
        void *(*merger)(const axutil_env_t * env,
                const void *key,
                axis2_ssize_t klen,
                const void *h1_val,
                const void *h2_val,
                const void *data),
        const void *data);

    /**
     * Query whether the hash table provided as parameter contains the
     * key provided as parameter.
     *
     * @param ht hash table to be queried for key
     * @return return whether hash table contains key
     */
    AXIS2_EXTERN axis2_bool_t AXIS2_CALL
    axutil_hash_contains_key(
        axutil_hash_t * ht,
        const axutil_env_t * env,
        const axis2_char_t * key);

    /**
     * @param ht hash table to be freed
     * @param env The environment to use for hash table
     * @return return status code
     *
     */

    AXIS2_EXTERN void AXIS2_CALL
    axutil_hash_free(
        axutil_hash_t * ht,
        const axutil_env_t * env);

    /**
     * Free a hash table with hash table given as void
     * @param ht hash table to be freed as a void *
     * @param env The environment to use for hash table
     * @return return status code
     */

    AXIS2_EXTERN void AXIS2_CALL
    axutil_hash_free_void_arg(
        void *ht_void,
        const axutil_env_t * env);

    AXIS2_EXTERN void AXIS2_CALL
    axutil_hash_set_env(
        axutil_hash_t * ht,
        const axutil_env_t * env);

    /** @} */

#ifdef __cplusplus
}
#endif

#endif                          /* !AXIS2_HASH_H */


<|start_filename|>src/core/transport/http/server/apache2/apache2_stream.c<|end_filename|>

/*
 * 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.
 */

#include <string.h>
#include <stdlib.h>
#include "apache2_stream.h"
#include <http_protocol.h>

typedef struct apache2_stream_impl
{
    axutil_stream_t stream;
    axutil_stream_type_t stream_type;
    request_rec *request;
} apache2_stream_impl_t;

#define AXIS2_INTF_TO_IMPL(stream) ((apache2_stream_impl_t *)(stream))

axutil_stream_type_t AXIS2_CALL apache2_stream_get_type(
    axutil_stream_t * stream,
    const axutil_env_t * env);

int AXIS2_CALL apache2_stream_write(
    axutil_stream_t * stream,
    const axutil_env_t * env,
    const void *buffer,
    size_t count);

int AXIS2_CALL apache2_stream_read(
    axutil_stream_t * stream,
    const axutil_env_t * env,
    void *buffer,
    size_t count);

int AXIS2_CALL apache2_stream_skip(
    axutil_stream_t * stream,
    const axutil_env_t * env,
    int count);

int AXIS2_CALL apache2_stream_get_char(
    axutil_stream_t * stream,
    const axutil_env_t * env);

AXIS2_EXTERN axutil_stream_t *AXIS2_CALL
axutil_stream_create_apache2(
    const axutil_env_t * env,
    request_rec * request)
{
    apache2_stream_impl_t *stream_impl = NULL;
    AXIS2_ENV_CHECK(env, NULL);
    AXIS2_PARAM_CHECK(env->error, request, NULL);

    stream_impl =
        (apache2_stream_impl_t *) AXIS2_MALLOC(env->allocator,
                                               sizeof(apache2_stream_impl_t));

    if (!stream_impl)
    {
        AXIS2_ERROR_SET(env->error, AXIS2_ERROR_NO_MEMORY, AXIS2_FAILURE);
        return NULL;
    }

    memset(&(stream_impl->stream), 0, sizeof(axutil_stream_t));

    stream_impl->request = request;
    stream_impl->stream_type = AXIS2_STREAM_MANAGED;

    axutil_stream_set_read(&(stream_impl->stream), env, apache2_stream_read);
    axutil_stream_set_write(&(stream_impl->stream), env, apache2_stream_write);
    axutil_stream_set_skip(&(stream_impl->stream), env, apache2_stream_skip);

    return &(stream_impl->stream);
}

int AXIS2_CALL
apache2_stream_read(
    axutil_stream_t * stream,
    const axutil_env_t * env,
    void *buffer,
    size_t count)
{
    apache2_stream_impl_t *stream_impl = NULL;
    size_t read = 0;
    size_t len = 0;
    AXIS2_ENV_CHECK(env, AXIS2_CRITICAL_FAILURE);

    stream_impl = AXIS2_INTF_TO_IMPL(stream);

    while (count - len > 0)
    {
        read = ap_get_client_block(stream_impl->request, (char *) buffer + len,
                                   count - len);
        if (read > 0)
        {
            len += read;
        }
        else
        {
            break;
        }
    }

    return (int)len;
    /* We are sure that the difference lies within the int range */
}

int AXIS2_CALL
apache2_stream_write(
    axutil_stream_t * stream,
    const axutil_env_t * env,
    const void *buf,
    size_t count)
{
    apache2_stream_impl_t *stream_impl = NULL;
    axis2_char_t *buffer = NULL;
    AXIS2_ENV_CHECK(env, AXIS2_CRITICAL_FAILURE);
    AXIS2_PARAM_CHECK(env->error, buf, AXIS2_FAILURE);
    stream_impl = AXIS2_INTF_TO_IMPL(stream);
    buffer = (axis2_char_t *) buf;
    if (count <= 0)
    {
        return (int)count;
        /* We are sure that the difference lies within the int range */
    }
    /* assume that buffer is not null terminated */
    return ap_rwrite(buffer, (int)count, stream_impl->request);
    /* We are sure that the difference lies within the int range */
}

int AXIS2_CALL
apache2_stream_skip(
    axutil_stream_t * stream,
    const axutil_env_t * env,
    int count)
{
    apache2_stream_impl_t *stream_impl = NULL;
    axis2_char_t *tmp_buffer = NULL;
    int len = -1;
    AXIS2_ENV_CHECK(env, AXIS2_CRITICAL_FAILURE);
    stream_impl = AXIS2_INTF_TO_IMPL(stream);

    tmp_buffer = AXIS2_MALLOC(env->allocator, count * sizeof(axis2_char_t));
    if (tmp_buffer == NULL)
    {
        AXIS2_ERROR_SET(env->error, AXIS2_ERROR_NO_MEMORY, AXIS2_FAILURE);
        return -1;
    }
    len = ap_get_client_block(stream_impl->request, tmp_buffer, count);
    AXIS2_FREE(env->allocator, tmp_buffer);
    return len;

}

int AXIS2_CALL
apache2_stream_get_char(
    axutil_stream_t * stream,
    const axutil_env_t * env)
{
    int ret = -1;
    AXIS2_ENV_CHECK(env, AXIS2_CRITICAL_FAILURE);

    return ret;
}

axutil_stream_type_t AXIS2_CALL
apache2_stream_get_type(
    axutil_stream_t * stream,
    const axutil_env_t * env)
{
    AXIS2_ENV_CHECK(env, AXIS2_CRITICAL_FAILURE);
    return AXIS2_INTF_TO_IMPL(stream)->stream_type;
}


<|start_filename|>src/core/description/flow_container.c<|end_filename|>

/*
 * 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.
 */

#include <axis2_flow.h>
#include <axis2_flow_container.h>

struct axis2_flow_container
{
    axis2_flow_t *in;
    axis2_flow_t *out;
    axis2_flow_t *in_fault;
    axis2_flow_t *out_fault;
};

AXIS2_EXTERN axis2_flow_container_t *AXIS2_CALL
axis2_flow_container_create(
    const axutil_env_t * env)
{
    axis2_flow_container_t *flow_container = NULL;

    flow_container = (axis2_flow_container_t *) AXIS2_MALLOC(env->
                                                             allocator,
                                                             sizeof
                                                             (axis2_flow_container_t));

    if (!flow_container)
    {
        AXIS2_ERROR_SET(env->error, AXIS2_ERROR_NO_MEMORY, AXIS2_FAILURE);
        return NULL;
    }

    flow_container->in = NULL;
    flow_container->out = NULL;
    flow_container->in_fault = NULL;
    flow_container->out_fault = NULL;

    return flow_container;
}

AXIS2_EXTERN void AXIS2_CALL
axis2_flow_container_free(
    axis2_flow_container_t * flow_container,
    const axutil_env_t * env)
{
    if (flow_container->in)
    {
        axis2_flow_free(flow_container->in, env);
    }

    if (flow_container->out)
    {
        axis2_flow_free(flow_container->out, env);
    }

    if (flow_container->in_fault)
    {
        axis2_flow_free(flow_container->in_fault, env);
    }

    if (flow_container->out_fault)
    {
        axis2_flow_free(flow_container->out_fault, env);
    }

    if (flow_container)
    {
        AXIS2_FREE(env->allocator, flow_container);
    }

    return;
}

AXIS2_EXTERN axis2_flow_t *AXIS2_CALL
axis2_flow_container_get_in_flow(
    const axis2_flow_container_t * flow_container,
    const axutil_env_t * env)
{
    return flow_container->in;
}

AXIS2_EXTERN axis2_status_t AXIS2_CALL
axis2_flow_container_set_in_flow(
    axis2_flow_container_t * flow_container,
    const axutil_env_t * env,
    axis2_flow_t * in_flow)
{
    if (flow_container->in)
    {
        axis2_flow_free(flow_container->in, env);
    }
    flow_container->in = in_flow;
    return AXIS2_SUCCESS;
}

AXIS2_EXTERN axis2_flow_t *AXIS2_CALL
axis2_flow_container_get_out_flow(
    const axis2_flow_container_t * flow_container,
    const axutil_env_t * env)
{
    return flow_container->out;
}

AXIS2_EXTERN axis2_status_t AXIS2_CALL
axis2_flow_container_set_out_flow(
    axis2_flow_container_t * flow_container,
    const axutil_env_t * env,
    axis2_flow_t * out_flow)
{
    if (flow_container->out)
    {
        axis2_flow_free(flow_container->out, env);
    }
    flow_container->out = out_flow;
    return AXIS2_SUCCESS;
}

AXIS2_EXTERN axis2_flow_t *AXIS2_CALL
axis2_flow_container_get_fault_in_flow(
    const axis2_flow_container_t * flow_container,
    const axutil_env_t * env)
{
    return flow_container->in_fault;
}

AXIS2_EXTERN axis2_status_t AXIS2_CALL
axis2_flow_container_set_fault_in_flow(
    axis2_flow_container_t * flow_container,
    const axutil_env_t * env,
    axis2_flow_t * falut_in_flow)
{
    if (flow_container->in_fault)
    {
        axis2_flow_free(flow_container->in_fault, env);
    }
    flow_container->in_fault = falut_in_flow;
    return AXIS2_SUCCESS;
}

AXIS2_EXTERN axis2_flow_t *AXIS2_CALL
axis2_flow_container_get_fault_out_flow(
    const axis2_flow_container_t * flow_container,
    const axutil_env_t * env)
{
    return flow_container->out_fault;
}

AXIS2_EXTERN axis2_status_t AXIS2_CALL
axis2_flow_container_set_fault_out_flow(
    axis2_flow_container_t * flow_container,
    const axutil_env_t * env,
    axis2_flow_t * fault_out_flow)
{
    AXIS2_PARAM_CHECK(env->error, fault_out_flow, AXIS2_FAILURE);
    if (flow_container->out_fault)
    {
        axis2_flow_free(flow_container->out_fault, env);
    }
    flow_container->out_fault = fault_out_flow;
    return AXIS2_SUCCESS;
}



<|start_filename|>axiom/src/soap/soap_fault_reason.c<|end_filename|>

/*
 * 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.
 */

#include <axiom_soap_fault_reason.h>
#include "_axiom_soap_fault.h"
#include <axiom_element.h>
#include <axiom_soap_fault_text.h>
#include <axiom_soap_builder.h>
#include <axiom_soap_builder.h>

struct axiom_soap_fault_reason
{
    /* corresponding om element node */
    axiom_node_t *om_ele_node;

    axutil_array_list_t *fault_texts;
    /* pointer to soap builder */
    axiom_soap_builder_t *soap_builder;

    int soap_version;
};

static axis2_bool_t axiom_soap_fault_reason_lang_exists(
    axiom_soap_fault_reason_t * fault_reason,
    const axutil_env_t * env,
    axis2_char_t * lang);

AXIS2_EXTERN axiom_soap_fault_reason_t *AXIS2_CALL
axiom_soap_fault_reason_create(
    const axutil_env_t * env)
{
    axiom_soap_fault_reason_t *fault_reason = NULL;
    fault_reason = (axiom_soap_fault_reason_t *) AXIS2_MALLOC(env->allocator,
                                                              sizeof
                                                              (axiom_soap_fault_reason_t));
    if (!fault_reason)
    {
        AXIS2_ERROR_SET(env->error, AXIS2_ERROR_NO_MEMORY, AXIS2_FAILURE);
        AXIS2_LOG_ERROR(env->log, AXIS2_LOG_SI,
                          "No memory. Cannot create SOAP fault reason");
        return NULL;
    }

    fault_reason->om_ele_node = NULL;
    fault_reason->fault_texts = NULL;
	fault_reason->soap_version = -1;
	return fault_reason;
}

AXIS2_EXTERN axiom_soap_fault_reason_t *AXIS2_CALL
axiom_soap_fault_reason_create_with_parent(
    const axutil_env_t * env,
    axiom_soap_fault_t * fault)
{
    axiom_soap_fault_reason_t *fault_reason = NULL;
    axiom_element_t *this_ele = NULL;
    axiom_node_t *this_node = NULL;
    axiom_node_t *parent_node = NULL;
    axiom_element_t *parent_ele = NULL;
    axiom_namespace_t *parent_ns = NULL;

    AXIS2_PARAM_CHECK(env->error, fault, NULL);

    fault_reason = axiom_soap_fault_reason_create(env);
    if (!fault_reason)
    {
        return NULL;
    }
    parent_node = axiom_soap_fault_get_base_node(fault, env);
    if (!parent_node)
    {
        return NULL;
    }
    parent_ele =
        (axiom_element_t *) axiom_node_get_data_element(parent_node, env);
    if (!parent_ele)
    {
        return NULL;
    }
    fault_reason->soap_version = axiom_soap_fault_get_soap_version(fault, env);
    if (fault_reason->soap_version == AXIOM_SOAP12)
    {
        parent_ns = axiom_element_get_namespace(parent_ele, env, parent_node);
    }
    this_ele = axiom_element_create(env,
                                    parent_node,
                                    AXIOM_SOAP12_SOAP_FAULT_REASON_LOCAL_NAME,
                                    parent_ns, &this_node);
    if (!this_ele)
    {
        return NULL;
    }

    fault_reason->om_ele_node = this_node;

    axiom_soap_fault_set_reason(fault, env, fault_reason);
    return fault_reason;
}

AXIS2_EXTERN void AXIS2_CALL
axiom_soap_fault_reason_free(
    axiom_soap_fault_reason_t * fault_reason,
    const axutil_env_t * env)
{

    if (fault_reason->fault_texts)
    {
        int size = 0;
        int i = 0;
        size = axutil_array_list_size(fault_reason->fault_texts, env);

        for (i = 0; i < size; i++)
        {
            axiom_soap_fault_text_t *fault_text = NULL;
            void *value = NULL;
            value = axutil_array_list_get(fault_reason->fault_texts, env, i);
            if (value)
            {
                fault_text = (axiom_soap_fault_text_t *) value;
                axiom_soap_fault_text_free(fault_text, env);
                fault_text = NULL;
            }
        }
        axutil_array_list_free(fault_reason->fault_texts, env);
        fault_reason->fault_texts = NULL;
    }

    AXIS2_FREE(env->allocator, fault_reason);

    fault_reason = NULL;

    return;
}

AXIS2_EXTERN axiom_soap_fault_text_t *AXIS2_CALL
    axiom_soap_fault_reason_get_soap_fault_text(
    axiom_soap_fault_reason_t * fault_reason,
    const axutil_env_t * env,
    axis2_char_t * lang)
{
    int status = AXIS2_SUCCESS;
    int size = 0;
    int i = 0;

    AXIS2_PARAM_CHECK(env->error, fault_reason, NULL);
    if (!lang || (axutil_strcmp(lang, "") == 0))
    {
        return NULL;
    }
    /** Here we have to build the soap fault reason element completly */
    if (!fault_reason->fault_texts)
    {

        if (fault_reason->soap_builder &&
            !(axiom_node_is_complete(fault_reason->om_ele_node, env)))
        {
            while (!(axiom_node_is_complete(fault_reason->om_ele_node, env)))
            {
                status =
                    axiom_soap_builder_next(fault_reason->soap_builder, env);
                if (status == AXIS2_FAILURE)
                {
                    return NULL;
                }
            }
        }
    }

    if (!fault_reason->fault_texts)
    {
        return NULL;
    }
    /** iterate the array list */
    size = axutil_array_list_size(fault_reason->fault_texts, env);
    for (i = 0; i < size; i++)
    {
        axiom_soap_fault_text_t *fault_text = NULL;
        void *value = NULL;

        value = axutil_array_list_get(fault_reason->fault_texts, env, i);
        if (value)
        {
            axis2_char_t *fault_lang = NULL;
            fault_text = (axiom_soap_fault_text_t *) value;
            fault_lang = axiom_soap_fault_text_get_lang(fault_text, env);
            if (fault_lang && axutil_strcmp(lang, fault_lang) == 0)
            {
                return fault_text;
            }
        }
    }
    return NULL;
}

AXIS2_EXTERN axis2_status_t AXIS2_CALL axiom_soap_fault_reason_set_base_node(
    axiom_soap_fault_reason_t * fault_reason,
    const axutil_env_t * env,
    axiom_node_t * node)
{
    AXIS2_PARAM_CHECK(env->error, node, AXIS2_FAILURE);

    if (axiom_node_get_node_type(node, env) != AXIOM_ELEMENT)
    {
        AXIS2_HANDLE_ERROR(env,
                        AXIS2_ERROR_INVALID_BASE_TYPE, AXIS2_FAILURE);
        return AXIS2_FAILURE;
    }
    fault_reason->om_ele_node = node;

    return AXIS2_SUCCESS;
}

AXIS2_EXTERN axiom_node_t *AXIS2_CALL axiom_soap_fault_reason_get_base_node(
    axiom_soap_fault_reason_t * fault_reason,
    const axutil_env_t * env)
{
    return fault_reason->om_ele_node;
}

AXIS2_EXTERN axis2_status_t AXIS2_CALL
axiom_soap_fault_reason_set_builder(
    axiom_soap_fault_reason_t * fault_reason,
    const axutil_env_t * env,
    axiom_soap_builder_t * builder)
{
    AXIS2_PARAM_CHECK(env->error, builder, AXIS2_FAILURE);

    fault_reason->soap_builder = builder;
    return AXIS2_SUCCESS;
}

AXIS2_EXTERN axutil_array_list_t *AXIS2_CALL
    axiom_soap_fault_reason_get_all_soap_fault_texts(
    axiom_soap_fault_reason_t * fault_reason,
    const axutil_env_t * env)
{
    int status = AXIS2_SUCCESS;

    if (!(fault_reason->fault_texts) && (fault_reason->soap_builder))
    {
        if (!(axiom_node_is_complete(fault_reason->om_ele_node, env)))
        {
            while (!(axiom_node_is_complete(fault_reason->om_ele_node, env)))
            {
                status =
                    axiom_soap_builder_next(fault_reason->soap_builder, env);
                if (status == AXIS2_FAILURE)
                {
                    return NULL;
                }
            }
        }
    }
    return fault_reason->fault_texts;
}

AXIS2_EXTERN axiom_soap_fault_text_t *AXIS2_CALL
    axiom_soap_fault_reason_get_first_soap_fault_text(
    axiom_soap_fault_reason_t * fault_reason,
    const axutil_env_t * env)
{
    int status = AXIS2_SUCCESS;

    if (!(fault_reason->fault_texts) && (fault_reason->soap_builder))
    {
        if (!(axiom_node_is_complete(fault_reason->om_ele_node, env)))
        {
            while (!(axiom_node_is_complete(fault_reason->om_ele_node, env)))
            {
                status =
                    axiom_soap_builder_next(fault_reason->soap_builder, env);
                if (status == AXIS2_FAILURE)
                {
                    return NULL;
                }
            }
        }
    }
    if (fault_reason->fault_texts)
    {
        void *value = NULL;
        value = axutil_array_list_get(fault_reason->fault_texts, env, 0);
        if (value)
        {
            return (axiom_soap_fault_text_t *) value;
        }
    }
    return NULL;
}

AXIS2_EXTERN axis2_status_t AXIS2_CALL
    axiom_soap_fault_reason_add_soap_fault_text(
    axiom_soap_fault_reason_t * fault_reason,
    const axutil_env_t * env,
    axiom_soap_fault_text_t * fault_text)
{
    if (!fault_text)
    {
        return AXIS2_FAILURE;
    }
    if (!(fault_reason->fault_texts))
    {
        fault_reason->fault_texts = axutil_array_list_create(env, 1);
        if (!fault_reason->fault_texts)
        {
            return AXIS2_FAILURE;
        }
        axutil_array_list_add(fault_reason->fault_texts, env, fault_text);
    }
    else
    {
        axis2_char_t *lang = NULL;
        axis2_bool_t is_exists = AXIS2_FALSE;
        lang = axiom_soap_fault_text_get_lang(fault_text, env);
        if (lang)
        {
            is_exists =
                axiom_soap_fault_reason_lang_exists(fault_reason, env, lang);
            if (is_exists == AXIS2_TRUE)
            {
                return AXIS2_FAILURE;
            }
            /** this soap_fault text already exists */
        }
        axutil_array_list_add(fault_reason->fault_texts, env, fault_text);
    }
    return AXIS2_SUCCESS;
}

static axis2_bool_t
axiom_soap_fault_reason_lang_exists(
    axiom_soap_fault_reason_t * fault_reason,
    const axutil_env_t * env,
    axis2_char_t * lang)
{
    int size = 0;
    int i = 0;

    if (!lang || (axutil_strcmp(lang, "") == 0) || !fault_reason->fault_texts)
    {
        return AXIS2_FALSE;
    }
    size = axutil_array_list_size(fault_reason->fault_texts, env);
    for (i = 0; i < size; i++)
    {
        axiom_soap_fault_text_t *fault_text = NULL;
        void *value = NULL;
        value = axutil_array_list_get(fault_reason->fault_texts, env, i);
        if (value)
        {
            axis2_char_t *text_lang = NULL;
            fault_text = (axiom_soap_fault_text_t *) value;

            text_lang = axiom_soap_fault_text_get_lang(fault_text, env);
            if (text_lang && (axutil_strcmp(lang, text_lang) == 0))
            {
                return AXIS2_TRUE;
            }
        }
    }
    return AXIS2_FALSE;
}

/** internal function */
AXIS2_EXTERN axis2_status_t AXIS2_CALL
axiom_soap_fault_reason_set_soap_version(
    axiom_soap_fault_reason_t * fault_reason,
    const axutil_env_t * env,
    int soap_version)
{
    fault_reason->soap_version = soap_version;
    return AXIS2_SUCCESS;
}

AXIS2_EXTERN axis2_status_t AXIS2_CALL
axiom_soap_fault_reason_get_soap_version(
    axiom_soap_fault_reason_t * fault_reason,
    const axutil_env_t * env)
{
    return fault_reason->soap_version;
}


<|start_filename|>neethi/src/secpolicy/model/x509_token.c<|end_filename|>

/*
 * 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.
 */

#include <rp_x509_token.h>

struct rp_x509_token_t
{
    rp_token_t *token;
    axis2_bool_t require_key_identifier_reference;
    axis2_bool_t require_issuer_serial_reference;
    axis2_bool_t require_embedded_token_reference;
    axis2_bool_t require_thumb_print_reference;
    axis2_char_t *token_version_and_type;
    int ref;

};

AXIS2_EXTERN rp_x509_token_t *AXIS2_CALL
rp_x509_token_create(
    const axutil_env_t * env)
{
    rp_x509_token_t *x509_token = NULL;
    x509_token = (rp_x509_token_t *) AXIS2_MALLOC(env->allocator, sizeof(rp_x509_token_t));

    if (!x509_token)
    {
        AXIS2_LOG_ERROR(env->log, AXIS2_LOG_SI, 
            "[neethi] X509 token assertion creation failed. Insufficient memory");
        AXIS2_ERROR_SET(env->error, AXIS2_ERROR_NO_MEMORY, AXIS2_FAILURE);
        return NULL;
    }
    x509_token->require_key_identifier_reference = AXIS2_FALSE;
    x509_token->require_issuer_serial_reference = AXIS2_FALSE;
    x509_token->require_embedded_token_reference = AXIS2_FALSE;
    x509_token->require_thumb_print_reference = AXIS2_FALSE;
    x509_token->token_version_and_type = RP_WSS_X509_V3_TOKEN_10;
    x509_token->ref = 0;

    x509_token->token = rp_token_create(env);
    if(!x509_token->token)
    {
        AXIS2_LOG_ERROR(env->log, AXIS2_LOG_SI, "[neethi] X509 token assertion creation failed.");
        rp_x509_token_free(x509_token, env);
        return NULL;
    }
    return x509_token;
}

AXIS2_EXTERN void AXIS2_CALL
rp_x509_token_free(
    rp_x509_token_t * x509_token,
    const axutil_env_t * env)
{
    if (x509_token)
    {
        if (--(x509_token->ref) > 0)
        {
            return;
        }

        rp_token_free(x509_token->token, env);
        AXIS2_FREE(env->allocator, x509_token);
        x509_token = NULL;
    }
}

/* Implementations */

AXIS2_EXTERN axis2_char_t *AXIS2_CALL
rp_x509_token_get_inclusion(
    rp_x509_token_t * x509_token,
    const axutil_env_t * env)
{
    return rp_token_get_inclusion(x509_token->token, env);
}

AXIS2_EXTERN axis2_status_t AXIS2_CALL
rp_x509_token_set_inclusion(
    rp_x509_token_t * x509_token,
    const axutil_env_t * env,
    axis2_char_t * inclusion)
{
    return rp_token_set_inclusion(x509_token->token, env, inclusion);
}

AXIS2_EXTERN derive_key_type_t AXIS2_CALL
rp_x509_token_get_derivedkey(
    rp_x509_token_t * x509_token,
    const axutil_env_t * env)
{
    return rp_token_get_derivedkey_type(x509_token->token, env);
}

AXIS2_EXTERN axis2_status_t AXIS2_CALL
rp_x509_token_set_derivedkey(
    rp_x509_token_t * x509_token,
    const axutil_env_t * env,
    derive_key_type_t derivedkeys)
{
    return rp_token_set_derivedkey_type(x509_token->token, env, derivedkeys);
}

AXIS2_EXTERN derive_key_version_t AXIS2_CALL
rp_x509_token_get_derivedkey_version(
    rp_x509_token_t *x509_token,
    const axutil_env_t *env)
{
    return rp_token_get_derive_key_version(x509_token->token, env);
}

AXIS2_EXTERN axis2_status_t AXIS2_CALL
rp_x509_token_set_derivedkey_version(
    rp_x509_token_t *x509_token,
    const axutil_env_t *env,
    derive_key_version_t version)
{
    return rp_token_set_derive_key_version(x509_token->token, env, version);
}

AXIS2_EXTERN axis2_bool_t AXIS2_CALL
rp_x509_token_get_require_key_identifier_reference(
    rp_x509_token_t * x509_token,
    const axutil_env_t * env)
{
    return x509_token->require_key_identifier_reference;
}

AXIS2_EXTERN axis2_status_t AXIS2_CALL
rp_x509_token_set_require_key_identifier_reference(
    rp_x509_token_t * x509_token,
    const axutil_env_t * env,
    axis2_bool_t require_key_identifier_reference)
{
    x509_token->require_key_identifier_reference = require_key_identifier_reference;
    return AXIS2_SUCCESS;
}

AXIS2_EXTERN axis2_bool_t AXIS2_CALL
rp_x509_token_get_require_issuer_serial_reference(
    rp_x509_token_t * x509_token,
    const axutil_env_t * env)
{
    return x509_token->require_issuer_serial_reference;
}

AXIS2_EXTERN axis2_status_t AXIS2_CALL
rp_x509_token_set_require_issuer_serial_reference(
    rp_x509_token_t * x509_token,
    const axutil_env_t * env,
    axis2_bool_t require_issuer_serial_reference)
{
    x509_token->require_issuer_serial_reference = require_issuer_serial_reference;
    return AXIS2_SUCCESS;
}

AXIS2_EXTERN axis2_bool_t AXIS2_CALL
rp_x509_token_get_require_embedded_token_reference(
    rp_x509_token_t * x509_token,
    const axutil_env_t * env)
{
    return x509_token->require_embedded_token_reference;
}

AXIS2_EXTERN axis2_status_t AXIS2_CALL
rp_x509_token_set_require_embedded_token_reference(
    rp_x509_token_t * x509_token,
    const axutil_env_t * env,
    axis2_bool_t require_embedded_token_reference)
{
    x509_token->require_embedded_token_reference = require_embedded_token_reference;
    return AXIS2_SUCCESS;
}

AXIS2_EXTERN axis2_bool_t AXIS2_CALL
rp_x509_token_get_require_thumb_print_reference(
    rp_x509_token_t * x509_token,
    const axutil_env_t * env)
{
    return x509_token->require_thumb_print_reference;
}

AXIS2_EXTERN axis2_status_t AXIS2_CALL
rp_x509_token_set_require_thumb_print_reference(
    rp_x509_token_t * x509_token,
    const axutil_env_t * env,
    axis2_bool_t require_thumb_print_reference)
{
    x509_token->require_thumb_print_reference = require_thumb_print_reference;
    return AXIS2_SUCCESS;
}

AXIS2_EXTERN axis2_char_t *AXIS2_CALL
rp_x509_token_get_token_version_and_type(
    rp_x509_token_t * x509_token,
    const axutil_env_t * env)
{
    return x509_token->token_version_and_type;
}

AXIS2_EXTERN axis2_status_t AXIS2_CALL
rp_x509_token_set_token_version_and_type(
    rp_x509_token_t * x509_token,
    const axutil_env_t * env,
    axis2_char_t * token_version_and_type)
{
    x509_token->token_version_and_type = token_version_and_type;
    return AXIS2_SUCCESS;
}

AXIS2_EXTERN axis2_status_t AXIS2_CALL
rp_x509_token_increment_ref(
    rp_x509_token_t * x509_token,
    const axutil_env_t * env)
{
    x509_token->ref++;
    return AXIS2_SUCCESS;
}


<|start_filename|>util/test/util/create_env.h<|end_filename|>
#include <axutil_log_default.h>
#include <axutil_error_default.h>
#include <stdio.h>
#include <axutil_env.h>

axutil_env_t * create_environment();






<|start_filename|>xdocs/api/html/group__axis2__svc__client.html<|end_filename|>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html><head><meta http-equiv="Content-Type" content="text/html;charset=UTF-8">
<title>Axis2/C: service client</title>
<link href="doxygen.css" rel="stylesheet" type="text/css">
<link href="tabs.css" rel="stylesheet" type="text/css">
</head><body>
<!-- Generated by Doxygen 1.5.3 -->
<div class="tabs">
  <ul>
    <li><a href="index.html"><span>Main&nbsp;Page</span></a></li>
    <li><a href="modules.html"><span>Modules</span></a></li>
    <li><a href="annotated.html"><span>Classes</span></a></li>
    <li><a href="files.html"><span>Files</span></a></li>
    <li><a href="dirs.html"><span>Directories</span></a></li>
    <li><a href="pages.html"><span>Related&nbsp;Pages</span></a></li>
    <li><a href="examples.html"><span>Examples</span></a></li>
    <li>
      <form action="search.php" method="get">
        <table cellspacing="0" cellpadding="0" border="0">
          <tr>
            <td><label>&nbsp;<u>S</u>earch&nbsp;for&nbsp;</label></td>
            <td><input type="text" name="query" value="" size="20" accesskey="s"/></td>
          </tr>
        </table>
      </form>
    </li>
  </ul>
</div>
<h1>service client<br>
<small>
[<a class="el" href="group__axis2__client__api.html">client API</a>]</small>
</h1><table border="0" cellpadding="0" cellspacing="0">
<tr><td></td></tr>
<tr><td colspan="2"><br><h2>Files</h2></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top">file &nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="axis2__svc__client_8h.html">axis2_svc_client.h</a></td></tr>

<tr><td colspan="2"><br><h2>Typedefs</h2></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top">typedef struct <br>
axis2_svc_client&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__axis2__svc__client.html#g09ddaee99db86733d6550231293be4e7">axis2_svc_client_t</a></td></tr>

<tr><td colspan="2"><br><h2>Functions</h2></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top">AXIS2_EXTERN <br>
<a class="el" href="group__axis2__svc.html#gc4a9229f924f3af161d02183a9dd6ca3">axis2_svc_t</a> *&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__axis2__svc__client.html#gadff613f313131cacb5abc9771133294">axis2_svc_client_get_svc</a> (const <a class="el" href="group__axis2__svc__client.html#g09ddaee99db86733d6550231293be4e7">axis2_svc_client_t</a> *svc_client, const <a class="el" href="structaxutil__env.html">axutil_env_t</a> *env)</td></tr>

<tr><td class="memItemLeft" nowrap align="right" valign="top">AXIS2_EXTERN <br>
<a class="el" href="group__axis2__conf__ctx.html#gab2f89df328e63d4f9fa3a4d035d18f0">axis2_conf_ctx_t</a> *&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__axis2__svc__client.html#gb3a17a94a9587abae4aaa7c3897d5005">axis2_svc_client_get_conf_ctx</a> (const <a class="el" href="group__axis2__svc__client.html#g09ddaee99db86733d6550231293be4e7">axis2_svc_client_t</a> *svc_client, const <a class="el" href="structaxutil__env.html">axutil_env_t</a> *env)</td></tr>

<tr><td class="memItemLeft" nowrap align="right" valign="top">AXIS2_EXTERN <br>
axis2_status_t&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__axis2__svc__client.html#ge976c74f5398693aa8b6d2c083b982bf">axis2_svc_client_set_options</a> (<a class="el" href="group__axis2__svc__client.html#g09ddaee99db86733d6550231293be4e7">axis2_svc_client_t</a> *svc_client, const <a class="el" href="structaxutil__env.html">axutil_env_t</a> *env, const <a class="el" href="group__axis2__options.html#g26794bbdc46cdd3481c7e9079c0d6094">axis2_options_t</a> *options)</td></tr>

<tr><td class="memItemLeft" nowrap align="right" valign="top">AXIS2_EXTERN const <br>
<a class="el" href="group__axis2__options.html#g26794bbdc46cdd3481c7e9079c0d6094">axis2_options_t</a> *&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__axis2__svc__client.html#g2014faaebc9685d685b9b33ac7fdbb48">axis2_svc_client_get_options</a> (const <a class="el" href="group__axis2__svc__client.html#g09ddaee99db86733d6550231293be4e7">axis2_svc_client_t</a> *svc_client, const <a class="el" href="structaxutil__env.html">axutil_env_t</a> *env)</td></tr>

<tr><td class="memItemLeft" nowrap align="right" valign="top">AXIS2_EXTERN <br>
axis2_status_t&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__axis2__svc__client.html#g59e0659abbb66ae2100a66e93d692462">axis2_svc_client_set_override_options</a> (<a class="el" href="group__axis2__svc__client.html#g09ddaee99db86733d6550231293be4e7">axis2_svc_client_t</a> *svc_client, const <a class="el" href="structaxutil__env.html">axutil_env_t</a> *env, const <a class="el" href="group__axis2__options.html#g26794bbdc46cdd3481c7e9079c0d6094">axis2_options_t</a> *override_options)</td></tr>

<tr><td class="memItemLeft" nowrap align="right" valign="top">AXIS2_EXTERN const <br>
<a class="el" href="group__axis2__options.html#g26794bbdc46cdd3481c7e9079c0d6094">axis2_options_t</a> *&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__axis2__svc__client.html#g6d96f187c2183a936646d3c9c39b4a68">axis2_svc_client_get_override_options</a> (const <a class="el" href="group__axis2__svc__client.html#g09ddaee99db86733d6550231293be4e7">axis2_svc_client_t</a> *svc_client, const <a class="el" href="structaxutil__env.html">axutil_env_t</a> *env)</td></tr>

<tr><td class="memItemLeft" nowrap align="right" valign="top">AXIS2_EXTERN <br>
axis2_status_t&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__axis2__svc__client.html#ge2df35732ba09cb585e44917306ecfcd">axis2_svc_client_engage_module</a> (<a class="el" href="group__axis2__svc__client.html#g09ddaee99db86733d6550231293be4e7">axis2_svc_client_t</a> *svc_client, const <a class="el" href="structaxutil__env.html">axutil_env_t</a> *env, const axis2_char_t *module_name)</td></tr>

<tr><td class="memItemLeft" nowrap align="right" valign="top">AXIS2_EXTERN <br>
axis2_status_t&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__axis2__svc__client.html#g8e070993180e86a0d8e5a895dd02490d">axis2_svc_client_disengage_module</a> (<a class="el" href="group__axis2__svc__client.html#g09ddaee99db86733d6550231293be4e7">axis2_svc_client_t</a> *svc_client, const <a class="el" href="structaxutil__env.html">axutil_env_t</a> *env, const axis2_char_t *module_name)</td></tr>

<tr><td class="memItemLeft" nowrap align="right" valign="top">AXIS2_EXTERN <br>
axis2_status_t&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__axis2__svc__client.html#gb65906f3d7f3a0ad5f75018ffdbbd0a7">axis2_svc_client_add_header</a> (<a class="el" href="group__axis2__svc__client.html#g09ddaee99db86733d6550231293be4e7">axis2_svc_client_t</a> *svc_client, const <a class="el" href="structaxutil__env.html">axutil_env_t</a> *env, axiom_node_t *header)</td></tr>

<tr><td class="memItemLeft" nowrap align="right" valign="top">AXIS2_EXTERN <br>
axis2_status_t&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__axis2__svc__client.html#gd14cd1a3ec6aa3891369cd9bd671030b">axis2_svc_client_remove_all_headers</a> (<a class="el" href="group__axis2__svc__client.html#g09ddaee99db86733d6550231293be4e7">axis2_svc_client_t</a> *svc_client, const <a class="el" href="structaxutil__env.html">axutil_env_t</a> *env)</td></tr>

<tr><td class="memItemLeft" nowrap align="right" valign="top">AXIS2_EXTERN <br>
axis2_status_t&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__axis2__svc__client.html#g42a973429ce779dc574052bb6a8b1849">axis2_svc_client_send_robust_with_op_qname</a> (<a class="el" href="group__axis2__svc__client.html#g09ddaee99db86733d6550231293be4e7">axis2_svc_client_t</a> *svc_client, const <a class="el" href="structaxutil__env.html">axutil_env_t</a> *env, const axutil_qname_t *op_qname, const axiom_node_t *payload)</td></tr>

<tr><td class="memItemLeft" nowrap align="right" valign="top">AXIS2_EXTERN <br>
axis2_status_t&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__axis2__svc__client.html#g715a6de724d3a0d1d93bd11620c3ee78">axis2_svc_client_send_robust</a> (<a class="el" href="group__axis2__svc__client.html#g09ddaee99db86733d6550231293be4e7">axis2_svc_client_t</a> *svc_client, const <a class="el" href="structaxutil__env.html">axutil_env_t</a> *env, const axiom_node_t *payload)</td></tr>

<tr><td class="memItemLeft" nowrap align="right" valign="top">AXIS2_EXTERN void&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__axis2__svc__client.html#g43fb8eb372420c98fa3eac2f1616af9d">axis2_svc_client_fire_and_forget_with_op_qname</a> (<a class="el" href="group__axis2__svc__client.html#g09ddaee99db86733d6550231293be4e7">axis2_svc_client_t</a> *svc_client, const <a class="el" href="structaxutil__env.html">axutil_env_t</a> *env, const axutil_qname_t *op_qname, const axiom_node_t *payload)</td></tr>

<tr><td class="memItemLeft" nowrap align="right" valign="top">AXIS2_EXTERN void&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__axis2__svc__client.html#g97dacfdcae000a9830c68a92867c45a7">axis2_svc_client_fire_and_forget</a> (<a class="el" href="group__axis2__svc__client.html#g09ddaee99db86733d6550231293be4e7">axis2_svc_client_t</a> *svc_client, const <a class="el" href="structaxutil__env.html">axutil_env_t</a> *env, const axiom_node_t *payload)</td></tr>

<tr><td class="memItemLeft" nowrap align="right" valign="top">AXIS2_EXTERN <br>
axiom_node_t *&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__axis2__svc__client.html#g6e0d00d836295f92e14473d3cf3bf78b">axis2_svc_client_send_receive_with_op_qname</a> (<a class="el" href="group__axis2__svc__client.html#g09ddaee99db86733d6550231293be4e7">axis2_svc_client_t</a> *svc_client, const <a class="el" href="structaxutil__env.html">axutil_env_t</a> *env, const axutil_qname_t *op_qname, const axiom_node_t *payload)</td></tr>

<tr><td class="memItemLeft" nowrap align="right" valign="top">AXIS2_EXTERN <br>
axiom_node_t *&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__axis2__svc__client.html#g2748baf670a594d5bf8dd49d9038dbc5">axis2_svc_client_send_receive</a> (<a class="el" href="group__axis2__svc__client.html#g09ddaee99db86733d6550231293be4e7">axis2_svc_client_t</a> *svc_client, const <a class="el" href="structaxutil__env.html">axutil_env_t</a> *env, const axiom_node_t *payload)</td></tr>

<tr><td class="memItemLeft" nowrap align="right" valign="top">AXIS2_EXTERN void&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__axis2__svc__client.html#gd68cdf7e84aff54c1815c8675772c76c">axis2_svc_client_send_receive_non_blocking_with_op_qname</a> (<a class="el" href="group__axis2__svc__client.html#g09ddaee99db86733d6550231293be4e7">axis2_svc_client_t</a> *svc_client, const <a class="el" href="structaxutil__env.html">axutil_env_t</a> *env, const axutil_qname_t *op_qname, const axiom_node_t *payload, <a class="el" href="group__axis2__callback.html#g0d855254802281de06d16c71627226b5">axis2_callback_t</a> *callback)</td></tr>

<tr><td class="memItemLeft" nowrap align="right" valign="top">AXIS2_EXTERN void&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__axis2__svc__client.html#g26a5d5c7cb8a4305908d829f35dcfb13">axis2_svc_client_send_receive_non_blocking</a> (<a class="el" href="group__axis2__svc__client.html#g09ddaee99db86733d6550231293be4e7">axis2_svc_client_t</a> *svc_client, const <a class="el" href="structaxutil__env.html">axutil_env_t</a> *env, const axiom_node_t *payload, <a class="el" href="group__axis2__callback.html#g0d855254802281de06d16c71627226b5">axis2_callback_t</a> *callback)</td></tr>

<tr><td class="memItemLeft" nowrap align="right" valign="top">AXIS2_EXTERN <br>
<a class="el" href="group__axis2__op__client.html#g6bc9ac9f149e65002cdfc265f8a7e505">axis2_op_client_t</a> *&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__axis2__svc__client.html#g3feaab85a53c0340422ec9af52f69907">axis2_svc_client_create_op_client</a> (<a class="el" href="group__axis2__svc__client.html#g09ddaee99db86733d6550231293be4e7">axis2_svc_client_t</a> *svc_client, const <a class="el" href="structaxutil__env.html">axutil_env_t</a> *env, const axutil_qname_t *op_qname)</td></tr>

<tr><td class="memItemLeft" nowrap align="right" valign="top">AXIS2_EXTERN <br>
axis2_status_t&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__axis2__svc__client.html#g3376dc048e45a0e943698375698c7420">axis2_svc_client_finalize_invoke</a> (<a class="el" href="group__axis2__svc__client.html#g09ddaee99db86733d6550231293be4e7">axis2_svc_client_t</a> *svc_client, const <a class="el" href="structaxutil__env.html">axutil_env_t</a> *env)</td></tr>

<tr><td class="memItemLeft" nowrap align="right" valign="top">AXIS2_EXTERN const <br>
<a class="el" href="group__axis2__endpoint__ref.html#gf6e89c83a6b553e7e3f11e787b3fecd4">axis2_endpoint_ref_t</a> *&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__axis2__svc__client.html#gd844bd63844eaec8549c5fdc9b1a4567">axis2_svc_client_get_own_endpoint_ref</a> (const <a class="el" href="group__axis2__svc__client.html#g09ddaee99db86733d6550231293be4e7">axis2_svc_client_t</a> *svc_client, const <a class="el" href="structaxutil__env.html">axutil_env_t</a> *env, const axis2_char_t *transport)</td></tr>

<tr><td class="memItemLeft" nowrap align="right" valign="top">AXIS2_EXTERN const <br>
<a class="el" href="group__axis2__endpoint__ref.html#gf6e89c83a6b553e7e3f11e787b3fecd4">axis2_endpoint_ref_t</a> *&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__axis2__svc__client.html#gf7576c7c16ad4859bbf04f771d03cc3e">axis2_svc_client_get_target_endpoint_ref</a> (const <a class="el" href="group__axis2__svc__client.html#g09ddaee99db86733d6550231293be4e7">axis2_svc_client_t</a> *svc_client, const <a class="el" href="structaxutil__env.html">axutil_env_t</a> *env)</td></tr>

<tr><td class="memItemLeft" nowrap align="right" valign="top">AXIS2_EXTERN <br>
axis2_status_t&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__axis2__svc__client.html#gb60879c0484ac46ae301c7c4f13ba6e6">axis2_svc_client_set_target_endpoint_ref</a> (<a class="el" href="group__axis2__svc__client.html#g09ddaee99db86733d6550231293be4e7">axis2_svc_client_t</a> *svc_client, const <a class="el" href="structaxutil__env.html">axutil_env_t</a> *env, <a class="el" href="group__axis2__endpoint__ref.html#gf6e89c83a6b553e7e3f11e787b3fecd4">axis2_endpoint_ref_t</a> *target_epr)</td></tr>

<tr><td class="memItemLeft" nowrap align="right" valign="top">AXIS2_EXTERN <br>
axis2_status_t&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__axis2__svc__client.html#gcfe99e1b20b72175564545aa3643a578">axis2_svc_client_set_proxy_with_auth</a> (<a class="el" href="group__axis2__svc__client.html#g09ddaee99db86733d6550231293be4e7">axis2_svc_client_t</a> *svc_client, const <a class="el" href="structaxutil__env.html">axutil_env_t</a> *env, axis2_char_t *proxy_host, axis2_char_t *proxy_port, axis2_char_t *username, axis2_char_t *password)</td></tr>

<tr><td class="memItemLeft" nowrap align="right" valign="top">AXIS2_EXTERN <br>
axis2_status_t&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__axis2__svc__client.html#ged34edf4ad2491d96c1af33fe669fd1f">axis2_svc_client_set_proxy</a> (<a class="el" href="group__axis2__svc__client.html#g09ddaee99db86733d6550231293be4e7">axis2_svc_client_t</a> *svc_client, const <a class="el" href="structaxutil__env.html">axutil_env_t</a> *env, axis2_char_t *proxy_host, axis2_char_t *proxy_port)</td></tr>

<tr><td class="memItemLeft" nowrap align="right" valign="top">AXIS2_EXTERN <br>
<a class="el" href="group__axis2__svc__ctx.html#g2a3845db3eb9e9a47b992f6c8882e482">axis2_svc_ctx_t</a> *&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__axis2__svc__client.html#g507f51f4a690c9d13e02c98dc17eb02c">axis2_svc_client_get_svc_ctx</a> (const <a class="el" href="group__axis2__svc__client.html#g09ddaee99db86733d6550231293be4e7">axis2_svc_client_t</a> *svc_client, const <a class="el" href="structaxutil__env.html">axutil_env_t</a> *env)</td></tr>

<tr><td class="memItemLeft" nowrap align="right" valign="top">AXIS2_EXTERN void&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__axis2__svc__client.html#g11a6f345606279e19578c9f4442ae756">axis2_svc_client_free</a> (<a class="el" href="group__axis2__svc__client.html#g09ddaee99db86733d6550231293be4e7">axis2_svc_client_t</a> *svc_client, const <a class="el" href="structaxutil__env.html">axutil_env_t</a> *env)</td></tr>

<tr><td class="memItemLeft" nowrap align="right" valign="top">AXIS2_EXTERN <br>
<a class="el" href="group__axis2__op__client.html#g6bc9ac9f149e65002cdfc265f8a7e505">axis2_op_client_t</a> *&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__axis2__svc__client.html#ga67a9dd0d56c30d5f96f28e5e8040c8c">axis2_svc_client_get_op_client</a> (const <a class="el" href="group__axis2__svc__client.html#g09ddaee99db86733d6550231293be4e7">axis2_svc_client_t</a> *svc_client, const <a class="el" href="structaxutil__env.html">axutil_env_t</a> *env)</td></tr>

<tr><td class="memItemLeft" nowrap align="right" valign="top">AXIS2_EXTERN <br>
<a class="el" href="group__axis2__svc__client.html#g09ddaee99db86733d6550231293be4e7">axis2_svc_client_t</a> *&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__axis2__svc__client.html#ga53015f155024d22a32e65132cd50e4c">axis2_svc_client_create</a> (const <a class="el" href="structaxutil__env.html">axutil_env_t</a> *env, const axis2_char_t *client_home)</td></tr>

<tr><td class="memItemLeft" nowrap align="right" valign="top">AXIS2_EXTERN <br>
<a class="el" href="group__axis2__svc__client.html#g09ddaee99db86733d6550231293be4e7">axis2_svc_client_t</a> *&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__axis2__svc__client.html#g65fd398dd0af4f6b928039b27bb6bef0">axis2_svc_client_create_with_conf_ctx_and_svc</a> (const <a class="el" href="structaxutil__env.html">axutil_env_t</a> *env, const axis2_char_t *client_home, <a class="el" href="group__axis2__conf__ctx.html#gab2f89df328e63d4f9fa3a4d035d18f0">axis2_conf_ctx_t</a> *conf_ctx, <a class="el" href="group__axis2__svc.html#gc4a9229f924f3af161d02183a9dd6ca3">axis2_svc_t</a> *svc)</td></tr>

<tr><td class="memItemLeft" nowrap align="right" valign="top">AXIS2_EXTERN <br>
axiom_soap_envelope_t *&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__axis2__svc__client.html#g53d3a7c3bd84013e1ace71061b0ef98c">axis2_svc_client_get_last_response_soap_envelope</a> (const <a class="el" href="group__axis2__svc__client.html#g09ddaee99db86733d6550231293be4e7">axis2_svc_client_t</a> *svc_client, const <a class="el" href="structaxutil__env.html">axutil_env_t</a> *env)</td></tr>

<tr><td class="memItemLeft" nowrap align="right" valign="top">AXIS2_EXTERN axis2_bool_t&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__axis2__svc__client.html#ge0c17bd903894f28245d22e996c54dbd">axis2_svc_client_get_last_response_has_fault</a> (const <a class="el" href="group__axis2__svc__client.html#g09ddaee99db86733d6550231293be4e7">axis2_svc_client_t</a> *svc_client, const <a class="el" href="structaxutil__env.html">axutil_env_t</a> *env)</td></tr>

<tr><td class="memItemLeft" nowrap align="right" valign="top">AXIS2_EXTERN <br>
axis2_char_t *&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__axis2__svc__client.html#g9915f900a8e029e180b132bba116f5db">axis2_svc_client_get_auth_type</a> (const <a class="el" href="group__axis2__svc__client.html#g09ddaee99db86733d6550231293be4e7">axis2_svc_client_t</a> *svc_client, const <a class="el" href="structaxutil__env.html">axutil_env_t</a> *env)</td></tr>

<tr><td class="memItemLeft" nowrap align="right" valign="top">AXIS2_EXTERN axis2_bool_t&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__axis2__svc__client.html#g44f5bf54b151b8435880f3c109ac2eb9">axis2_svc_client_get_http_auth_required</a> (const <a class="el" href="group__axis2__svc__client.html#g09ddaee99db86733d6550231293be4e7">axis2_svc_client_t</a> *svc_client, const <a class="el" href="structaxutil__env.html">axutil_env_t</a> *env)</td></tr>

<tr><td class="memItemLeft" nowrap align="right" valign="top">AXIS2_EXTERN axis2_bool_t&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__axis2__svc__client.html#g7c97e5105557a8f3dca54c19f5d30f29">axis2_svc_client_get_proxy_auth_required</a> (const <a class="el" href="group__axis2__svc__client.html#g09ddaee99db86733d6550231293be4e7">axis2_svc_client_t</a> *svc_client, const <a class="el" href="structaxutil__env.html">axutil_env_t</a> *env)</td></tr>

<tr><td class="memItemLeft" nowrap align="right" valign="top">AXIS2_EXTERN <br>
axis2_status_t&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__axis2__svc__client.html#g43d7672cdea91171fc89fcc06799e1dc">axis2_svc_client_set_policy_from_om</a> (<a class="el" href="group__axis2__svc__client.html#g09ddaee99db86733d6550231293be4e7">axis2_svc_client_t</a> *svc_client, const <a class="el" href="structaxutil__env.html">axutil_env_t</a> *env, axiom_node_t *root_node)</td></tr>

<tr><td class="memItemLeft" nowrap align="right" valign="top">AXIS2_EXTERN <br>
axis2_status_t&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__axis2__svc__client.html#g805278c10ee19cda6d41fc224f5b9ea3">axis2_svc_client_set_policy</a> (<a class="el" href="group__axis2__svc__client.html#g09ddaee99db86733d6550231293be4e7">axis2_svc_client_t</a> *svc_client, const <a class="el" href="structaxutil__env.html">axutil_env_t</a> *env, neethi_policy_t *policy)</td></tr>

<tr><td class="memItemLeft" nowrap align="right" valign="top">AXIS2_EXTERN <br>
<a class="el" href="group__axutil__array__list.html#g1a6a89777db876cfa0cc86787b7be6a0">axutil_array_list_t</a> *&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__axis2__svc__client.html#g5ae49a916d0f5ed2cc2c53c60729dd9b">axis2_svc_client_get_http_headers</a> (<a class="el" href="group__axis2__svc__client.html#g09ddaee99db86733d6550231293be4e7">axis2_svc_client_t</a> *svc_client, const <a class="el" href="structaxutil__env.html">axutil_env_t</a> *env)</td></tr>

<tr><td class="memItemLeft" nowrap align="right" valign="top">AXIS2_EXTERN int&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__axis2__svc__client.html#geb637da8be4b1005dc722694311d058b">axis2_svc_client_get_http_status_code</a> (<a class="el" href="group__axis2__svc__client.html#g09ddaee99db86733d6550231293be4e7">axis2_svc_client_t</a> *svc_client, const <a class="el" href="structaxutil__env.html">axutil_env_t</a> *env)</td></tr>

</table>
<hr><a name="_details"></a><h2>Detailed Description</h2>
The service client interface serves as the primary client interface for consuming services. You can set the options to be used by the service client and then invoke an operation on a given service. There are several ways of invoking a service operation, which are based on the concept of a message exchange pattern (MEP). The two basic MEPs supported by service client are out-only and out-in. Each MEP can be used in either blocking or non-blocking mode. The operation invocations using the service client API are based on the XML-in/XML-out principle: both the payload to be sent to the service and the result from the service are in XML, represented in AXIOM. <hr><h2>Typedef Documentation</h2>
<a class="anchor" name="g09ddaee99db86733d6550231293be4e7"></a><!-- doxytag: member="axis2_svc_client.h::axis2_svc_client_t" ref="g09ddaee99db86733d6550231293be4e7" args="" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">typedef struct axis2_svc_client <a class="el" href="group__axis2__svc__client.html#g09ddaee99db86733d6550231293be4e7">axis2_svc_client_t</a>          </td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
Type name for struct axis2_svc_client 
</div>
</div><p>
<hr><h2>Function Documentation</h2>
<a class="anchor" name="gb65906f3d7f3a0ad5f75018ffdbbd0a7"></a><!-- doxytag: member="axis2_svc_client.h::axis2_svc_client_add_header" ref="gb65906f3d7f3a0ad5f75018ffdbbd0a7" args="(axis2_svc_client_t *svc_client, const axutil_env_t *env, axiom_node_t *header)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">AXIS2_EXTERN axis2_status_t axis2_svc_client_add_header           </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="group__axis2__svc__client.html#g09ddaee99db86733d6550231293be4e7">axis2_svc_client_t</a> *&nbsp;</td>
          <td class="paramname"> <em>svc_client</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const <a class="el" href="structaxutil__env.html">axutil_env_t</a> *&nbsp;</td>
          <td class="paramname"> <em>env</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">axiom_node_t *&nbsp;</td>
          <td class="paramname"> <em>header</em></td><td>&nbsp;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td><td width="100%"></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
Adds an XML element as a header to be sent to the server side. This allows users to go beyond the usual XML-in/XML-out pattern, and send custom SOAP headers. Once added, service client owns the header and will clean up when the service client is freed. <dl compact><dt><b>Parameters:</b></dt><dd>
  <table border="0" cellspacing="2" cellpadding="0">
    <tr><td valign="top"></td><td valign="top"><em>svc_client</em>&nbsp;</td><td>pointer to service client struct </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>env</em>&nbsp;</td><td>pointer to environment struct </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>header</em>&nbsp;</td><td>om node representing the SOAP header in XML </td></tr>
  </table>
</dl>
<dl class="return" compact><dt><b>Returns:</b></dt><dd>AXIS2_SUCCESS on success, else AXIS2_FAILURE </dd></dl>

</div>
</div><p>
<a class="anchor" name="ga53015f155024d22a32e65132cd50e4c"></a><!-- doxytag: member="axis2_svc_client.h::axis2_svc_client_create" ref="ga53015f155024d22a32e65132cd50e4c" args="(const axutil_env_t *env, const axis2_char_t *client_home)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">AXIS2_EXTERN <a class="el" href="group__axis2__svc__client.html#g09ddaee99db86733d6550231293be4e7">axis2_svc_client_t</a>* axis2_svc_client_create           </td>
          <td>(</td>
          <td class="paramtype">const <a class="el" href="structaxutil__env.html">axutil_env_t</a> *&nbsp;</td>
          <td class="paramname"> <em>env</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const axis2_char_t *&nbsp;</td>
          <td class="paramname"> <em>client_home</em></td><td>&nbsp;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td><td width="100%"></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
Creates a service client struct. <dl compact><dt><b>Parameters:</b></dt><dd>
  <table border="0" cellspacing="2" cellpadding="0">
    <tr><td valign="top"></td><td valign="top"><em>env</em>&nbsp;</td><td>pointer to environment struct </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>client_home</em>&nbsp;</td><td>name of the directory that contains the Axis2/C repository </td></tr>
  </table>
</dl>
<dl class="return" compact><dt><b>Returns:</b></dt><dd>a pointer to newly created service client struct, or NULL on error with error code set in environment's error </dd></dl>

</div>
</div><p>
<a class="anchor" name="g3feaab85a53c0340422ec9af52f69907"></a><!-- doxytag: member="axis2_svc_client.h::axis2_svc_client_create_op_client" ref="g3feaab85a53c0340422ec9af52f69907" args="(axis2_svc_client_t *svc_client, const axutil_env_t *env, const axutil_qname_t *op_qname)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">AXIS2_EXTERN <a class="el" href="group__axis2__op__client.html#g6bc9ac9f149e65002cdfc265f8a7e505">axis2_op_client_t</a>* axis2_svc_client_create_op_client           </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="group__axis2__svc__client.html#g09ddaee99db86733d6550231293be4e7">axis2_svc_client_t</a> *&nbsp;</td>
          <td class="paramname"> <em>svc_client</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const <a class="el" href="structaxutil__env.html">axutil_env_t</a> *&nbsp;</td>
          <td class="paramname"> <em>env</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const axutil_qname_t *&nbsp;</td>
          <td class="paramname"> <em>op_qname</em></td><td>&nbsp;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td><td width="100%"></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
Creates an op_client for a specific operation. This is the way to create a full functional MEP client which can be used to exchange messages for this specific operation. <dl compact><dt><b>Parameters:</b></dt><dd>
  <table border="0" cellspacing="2" cellpadding="0">
    <tr><td valign="top"></td><td valign="top"><em>svc_client</em>&nbsp;</td><td>pointer to service client struct </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>env</em>&nbsp;</td><td>pointer to environment struct </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>op_qname</em>&nbsp;</td><td>axutil_qname_t of the operation </td></tr>
  </table>
</dl>
<dl class="return" compact><dt><b>Returns:</b></dt><dd>pointer to newly created op_client configured for the given operation </dd></dl>

</div>
</div><p>
<a class="anchor" name="g65fd398dd0af4f6b928039b27bb6bef0"></a><!-- doxytag: member="axis2_svc_client.h::axis2_svc_client_create_with_conf_ctx_and_svc" ref="g65fd398dd0af4f6b928039b27bb6bef0" args="(const axutil_env_t *env, const axis2_char_t *client_home, axis2_conf_ctx_t *conf_ctx, axis2_svc_t *svc)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">AXIS2_EXTERN <a class="el" href="group__axis2__svc__client.html#g09ddaee99db86733d6550231293be4e7">axis2_svc_client_t</a>* axis2_svc_client_create_with_conf_ctx_and_svc           </td>
          <td>(</td>
          <td class="paramtype">const <a class="el" href="structaxutil__env.html">axutil_env_t</a> *&nbsp;</td>
          <td class="paramname"> <em>env</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const axis2_char_t *&nbsp;</td>
          <td class="paramname"> <em>client_home</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype"><a class="el" href="group__axis2__conf__ctx.html#gab2f89df328e63d4f9fa3a4d035d18f0">axis2_conf_ctx_t</a> *&nbsp;</td>
          <td class="paramname"> <em>conf_ctx</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype"><a class="el" href="group__axis2__svc.html#gc4a9229f924f3af161d02183a9dd6ca3">axis2_svc_t</a> *&nbsp;</td>
          <td class="paramname"> <em>svc</em></td><td>&nbsp;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td><td width="100%"></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
Creates a service client struct for a specified service and configuration context. <dl compact><dt><b>Parameters:</b></dt><dd>
  <table border="0" cellspacing="2" cellpadding="0">
    <tr><td valign="top"></td><td valign="top"><em>env</em>&nbsp;</td><td>pointer to environment struct </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>conf_ctx</em>&nbsp;</td><td>pointer to configuration context. Newly created client assumes ownership of the conf_ctx </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>svc</em>&nbsp;</td><td>pointer to service struct representing the service to be consumed. Newly created client assumes ownership of the service </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>client_home</em>&nbsp;</td><td>name of the directory that contains the Axis2/C repository </td></tr>
  </table>
</dl>
<dl class="return" compact><dt><b>Returns:</b></dt><dd>a pointer to newly created service client struct, or NULL on error with error code set in environment's error </dd></dl>

</div>
</div><p>
<a class="anchor" name="g8e070993180e86a0d8e5a895dd02490d"></a><!-- doxytag: member="axis2_svc_client.h::axis2_svc_client_disengage_module" ref="g8e070993180e86a0d8e5a895dd02490d" args="(axis2_svc_client_t *svc_client, const axutil_env_t *env, const axis2_char_t *module_name)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">AXIS2_EXTERN axis2_status_t axis2_svc_client_disengage_module           </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="group__axis2__svc__client.html#g09ddaee99db86733d6550231293be4e7">axis2_svc_client_t</a> *&nbsp;</td>
          <td class="paramname"> <em>svc_client</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const <a class="el" href="structaxutil__env.html">axutil_env_t</a> *&nbsp;</td>
          <td class="paramname"> <em>env</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const axis2_char_t *&nbsp;</td>
          <td class="paramname"> <em>module_name</em></td><td>&nbsp;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td><td width="100%"></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
Dis-engages the named module. Dis-engaging a module on a service client ensures that the axis2_engine would not invoke the named module when sending and receiving messages. <dl compact><dt><b>Parameters:</b></dt><dd>
  <table border="0" cellspacing="2" cellpadding="0">
    <tr><td valign="top"></td><td valign="top"><em>svc_client</em>&nbsp;</td><td>pointer to service client struct </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>env</em>&nbsp;</td><td>pointer to environment struct </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>module_name</em>&nbsp;</td><td>name of the module to be dis-engaged </td></tr>
  </table>
</dl>
<dl class="return" compact><dt><b>Returns:</b></dt><dd>AXIS2_SUCCESS on success, else AXIS2_FAILURE </dd></dl>

</div>
</div><p>
<a class="anchor" name="ge2df35732ba09cb585e44917306ecfcd"></a><!-- doxytag: member="axis2_svc_client.h::axis2_svc_client_engage_module" ref="ge2df35732ba09cb585e44917306ecfcd" args="(axis2_svc_client_t *svc_client, const axutil_env_t *env, const axis2_char_t *module_name)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">AXIS2_EXTERN axis2_status_t axis2_svc_client_engage_module           </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="group__axis2__svc__client.html#g09ddaee99db86733d6550231293be4e7">axis2_svc_client_t</a> *&nbsp;</td>
          <td class="paramname"> <em>svc_client</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const <a class="el" href="structaxutil__env.html">axutil_env_t</a> *&nbsp;</td>
          <td class="paramname"> <em>env</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const axis2_char_t *&nbsp;</td>
          <td class="paramname"> <em>module_name</em></td><td>&nbsp;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td><td width="100%"></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
Engages the named module. The engaged modules extend the message processing when consuming services. Modules help to apply QoS norms in messaging. Once a module is engaged to a service client, the axis2_engine makes sure to invoke the module for all the interactions between the client and the service. <dl compact><dt><b>Parameters:</b></dt><dd>
  <table border="0" cellspacing="2" cellpadding="0">
    <tr><td valign="top"></td><td valign="top"><em>svc_client</em>&nbsp;</td><td>pointer to service client struct </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>env</em>&nbsp;</td><td>pointer to environment struct </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>module_name</em>&nbsp;</td><td>name of the module to be engaged </td></tr>
  </table>
</dl>
<dl class="return" compact><dt><b>Returns:</b></dt><dd>AXIS2_SUCCESS on success, else AXIS2_FAILURE </dd></dl>

</div>
</div><p>
<a class="anchor" name="g3376dc048e45a0e943698375698c7420"></a><!-- doxytag: member="axis2_svc_client.h::axis2_svc_client_finalize_invoke" ref="g3376dc048e45a0e943698375698c7420" args="(axis2_svc_client_t *svc_client, const axutil_env_t *env)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">AXIS2_EXTERN axis2_status_t axis2_svc_client_finalize_invoke           </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="group__axis2__svc__client.html#g09ddaee99db86733d6550231293be4e7">axis2_svc_client_t</a> *&nbsp;</td>
          <td class="paramname"> <em>svc_client</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const <a class="el" href="structaxutil__env.html">axutil_env_t</a> *&nbsp;</td>
          <td class="paramname"> <em>env</em></td><td>&nbsp;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td><td width="100%"></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
Cleans up service client invocation. This will close the output stream and/or remove entry from waiting queue of the transport listener queue. <dl compact><dt><b>Parameters:</b></dt><dd>
  <table border="0" cellspacing="2" cellpadding="0">
    <tr><td valign="top"></td><td valign="top"><em>svc_client</em>&nbsp;</td><td>pointer to service client struct </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>env</em>&nbsp;</td><td>pointer to environment struct </td></tr>
  </table>
</dl>
<dl class="return" compact><dt><b>Returns:</b></dt><dd>AXIS2_SUCCESS on success, else AXIS2_FAILURE </dd></dl>

</div>
</div><p>
<a class="anchor" name="g97dacfdcae000a9830c68a92867c45a7"></a><!-- doxytag: member="axis2_svc_client.h::axis2_svc_client_fire_and_forget" ref="g97dacfdcae000a9830c68a92867c45a7" args="(axis2_svc_client_t *svc_client, const axutil_env_t *env, const axiom_node_t *payload)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">AXIS2_EXTERN void axis2_svc_client_fire_and_forget           </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="group__axis2__svc__client.html#g09ddaee99db86733d6550231293be4e7">axis2_svc_client_t</a> *&nbsp;</td>
          <td class="paramname"> <em>svc_client</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const <a class="el" href="structaxutil__env.html">axutil_env_t</a> *&nbsp;</td>
          <td class="paramname"> <em>env</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const axiom_node_t *&nbsp;</td>
          <td class="paramname"> <em>payload</em></td><td>&nbsp;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td><td width="100%"></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
Sends a message and forget about it. This method is used to interact with a service operation whose MEP is In-Only. That is, there is no opportunity to get an error from the service via this method; one may still get client-side errors, such as host unknown etc. <dl compact><dt><b>Parameters:</b></dt><dd>
  <table border="0" cellspacing="2" cellpadding="0">
    <tr><td valign="top"></td><td valign="top"><em>svc_client</em>&nbsp;</td><td>pointer to service client struct </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>env</em>&nbsp;</td><td>pointer to environment struct </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>payload</em>&nbsp;</td><td>pointer to OM node representing the XML payload to be sent. The caller has control over the payload until the service client frees it. </td></tr>
  </table>
</dl>

</div>
</div><p>
<a class="anchor" name="g43fb8eb372420c98fa3eac2f1616af9d"></a><!-- doxytag: member="axis2_svc_client.h::axis2_svc_client_fire_and_forget_with_op_qname" ref="g43fb8eb372420c98fa3eac2f1616af9d" args="(axis2_svc_client_t *svc_client, const axutil_env_t *env, const axutil_qname_t *op_qname, const axiom_node_t *payload)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">AXIS2_EXTERN void axis2_svc_client_fire_and_forget_with_op_qname           </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="group__axis2__svc__client.html#g09ddaee99db86733d6550231293be4e7">axis2_svc_client_t</a> *&nbsp;</td>
          <td class="paramname"> <em>svc_client</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const <a class="el" href="structaxutil__env.html">axutil_env_t</a> *&nbsp;</td>
          <td class="paramname"> <em>env</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const axutil_qname_t *&nbsp;</td>
          <td class="paramname"> <em>op_qname</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const axiom_node_t *&nbsp;</td>
          <td class="paramname"> <em>payload</em></td><td>&nbsp;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td><td width="100%"></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
Sends a message and forget about it. This method is used to interact with a service operation whose MEP is In-Only. That is, there is no opportunity to get an error from the service via this method; one may still get client-side errors, such as host unknown etc. <dl compact><dt><b>Parameters:</b></dt><dd>
  <table border="0" cellspacing="2" cellpadding="0">
    <tr><td valign="top"></td><td valign="top"><em>svc_client</em>&nbsp;</td><td>pointer to service client struct </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>env</em>&nbsp;</td><td>pointer to environment struct </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>op_qname</em>&nbsp;</td><td>operation qname. NULL is equivalent to an operation name of "__OPERATION_OUT_ONLY__" </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>payload</em>&nbsp;</td><td>pointer to OM node representing the XML payload to be sent. The caller has control over the payload until the service client frees it. </td></tr>
  </table>
</dl>

</div>
</div><p>
<a class="anchor" name="g11a6f345606279e19578c9f4442ae756"></a><!-- doxytag: member="axis2_svc_client.h::axis2_svc_client_free" ref="g11a6f345606279e19578c9f4442ae756" args="(axis2_svc_client_t *svc_client, const axutil_env_t *env)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">AXIS2_EXTERN void axis2_svc_client_free           </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="group__axis2__svc__client.html#g09ddaee99db86733d6550231293be4e7">axis2_svc_client_t</a> *&nbsp;</td>
          <td class="paramname"> <em>svc_client</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const <a class="el" href="structaxutil__env.html">axutil_env_t</a> *&nbsp;</td>
          <td class="paramname"> <em>env</em></td><td>&nbsp;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td><td width="100%"></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
Frees the service client. <dl compact><dt><b>Parameters:</b></dt><dd>
  <table border="0" cellspacing="2" cellpadding="0">
    <tr><td valign="top"></td><td valign="top"><em>svc_client</em>&nbsp;</td><td>pointer to service client struct </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>env</em>&nbsp;</td><td>pointer to environment struct </td></tr>
  </table>
</dl>
<dl class="return" compact><dt><b>Returns:</b></dt><dd>AXIS2_SUCCESS on success, else AXIS2_FAILURE </dd></dl>

</div>
</div><p>
<a class="anchor" name="g9915f900a8e029e180b132bba116f5db"></a><!-- doxytag: member="axis2_svc_client.h::axis2_svc_client_get_auth_type" ref="g9915f900a8e029e180b132bba116f5db" args="(const axis2_svc_client_t *svc_client, const axutil_env_t *env)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">AXIS2_EXTERN axis2_char_t* axis2_svc_client_get_auth_type           </td>
          <td>(</td>
          <td class="paramtype">const <a class="el" href="group__axis2__svc__client.html#g09ddaee99db86733d6550231293be4e7">axis2_svc_client_t</a> *&nbsp;</td>
          <td class="paramname"> <em>svc_client</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const <a class="el" href="structaxutil__env.html">axutil_env_t</a> *&nbsp;</td>
          <td class="paramname"> <em>env</em></td><td>&nbsp;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td><td width="100%"></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
Gets the authentication type required. <dl compact><dt><b>Parameters:</b></dt><dd>
  <table border="0" cellspacing="2" cellpadding="0">
    <tr><td valign="top"></td><td valign="top"><em>svc_client</em>&nbsp;</td><td>pointer to service_client struct </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>env</em>&nbsp;</td><td>env pointer to environment struct </td></tr>
  </table>
</dl>
<dl class="return" compact><dt><b>Returns:</b></dt><dd>AXIS2_TRUE if the operation succeeded, else AXIS2_FALSE </dd></dl>

</div>
</div><p>
<a class="anchor" name="gb3a17a94a9587abae4aaa7c3897d5005"></a><!-- doxytag: member="axis2_svc_client.h::axis2_svc_client_get_conf_ctx" ref="gb3a17a94a9587abae4aaa7c3897d5005" args="(const axis2_svc_client_t *svc_client, const axutil_env_t *env)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">AXIS2_EXTERN <a class="el" href="group__axis2__conf__ctx.html#gab2f89df328e63d4f9fa3a4d035d18f0">axis2_conf_ctx_t</a>* axis2_svc_client_get_conf_ctx           </td>
          <td>(</td>
          <td class="paramtype">const <a class="el" href="group__axis2__svc__client.html#g09ddaee99db86733d6550231293be4e7">axis2_svc_client_t</a> *&nbsp;</td>
          <td class="paramname"> <em>svc_client</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const <a class="el" href="structaxutil__env.html">axutil_env_t</a> *&nbsp;</td>
          <td class="paramname"> <em>env</em></td><td>&nbsp;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td><td width="100%"></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
Returns the axis2_conf_ctx_t. This is useful when creating service clients using the same configuration context as the original service client. <dl compact><dt><b>Parameters:</b></dt><dd>
  <table border="0" cellspacing="2" cellpadding="0">
    <tr><td valign="top"></td><td valign="top"><em>svc_client</em>&nbsp;</td><td>pointer to service client struct </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>env</em>&nbsp;</td><td>pointer to environment struct </td></tr>
  </table>
</dl>
<dl class="return" compact><dt><b>Returns:</b></dt><dd>a pointer to axis configuration context struct, or NULL. Returns a reference, not a cloned copy. </dd></dl>

</div>
</div><p>
<a class="anchor" name="g44f5bf54b151b8435880f3c109ac2eb9"></a><!-- doxytag: member="axis2_svc_client.h::axis2_svc_client_get_http_auth_required" ref="g44f5bf54b151b8435880f3c109ac2eb9" args="(const axis2_svc_client_t *svc_client, const axutil_env_t *env)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">AXIS2_EXTERN axis2_bool_t axis2_svc_client_get_http_auth_required           </td>
          <td>(</td>
          <td class="paramtype">const <a class="el" href="group__axis2__svc__client.html#g09ddaee99db86733d6550231293be4e7">axis2_svc_client_t</a> *&nbsp;</td>
          <td class="paramname"> <em>svc_client</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const <a class="el" href="structaxutil__env.html">axutil_env_t</a> *&nbsp;</td>
          <td class="paramname"> <em>env</em></td><td>&nbsp;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td><td width="100%"></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
Gets the boolean value indicating whether HTTP Authentication is required. <dl compact><dt><b>Parameters:</b></dt><dd>
  <table border="0" cellspacing="2" cellpadding="0">
    <tr><td valign="top"></td><td valign="top"><em>svc_client</em>&nbsp;</td><td>pointer to service_client struct </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>env</em>&nbsp;</td><td>env pointer to environment struct </td></tr>
  </table>
</dl>
<dl class="return" compact><dt><b>Returns:</b></dt><dd>AXIS2_TRUE if Authentication is required, else AXIS2_FALSE </dd></dl>

</div>
</div><p>
<a class="anchor" name="g5ae49a916d0f5ed2cc2c53c60729dd9b"></a><!-- doxytag: member="axis2_svc_client.h::axis2_svc_client_get_http_headers" ref="g5ae49a916d0f5ed2cc2c53c60729dd9b" args="(axis2_svc_client_t *svc_client, const axutil_env_t *env)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">AXIS2_EXTERN <a class="el" href="group__axutil__array__list.html#g1a6a89777db876cfa0cc86787b7be6a0">axutil_array_list_t</a>* axis2_svc_client_get_http_headers           </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="group__axis2__svc__client.html#g09ddaee99db86733d6550231293be4e7">axis2_svc_client_t</a> *&nbsp;</td>
          <td class="paramname"> <em>svc_client</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const <a class="el" href="structaxutil__env.html">axutil_env_t</a> *&nbsp;</td>
          <td class="paramname"> <em>env</em></td><td>&nbsp;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td><td width="100%"></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
Gets the HTTP Headers of the last response. <dl compact><dt><b>Parameters:</b></dt><dd>
  <table border="0" cellspacing="2" cellpadding="0">
    <tr><td valign="top"></td><td valign="top"><em>svc_client</em>&nbsp;</td><td>pointer to service_client struct </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>env</em>&nbsp;</td><td>pointer to environment struct </td></tr>
  </table>
</dl>
<dl class="return" compact><dt><b>Returns:</b></dt><dd>list of HTTP Response Headers </dd></dl>

</div>
</div><p>
<a class="anchor" name="geb637da8be4b1005dc722694311d058b"></a><!-- doxytag: member="axis2_svc_client.h::axis2_svc_client_get_http_status_code" ref="geb637da8be4b1005dc722694311d058b" args="(axis2_svc_client_t *svc_client, const axutil_env_t *env)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">AXIS2_EXTERN int axis2_svc_client_get_http_status_code           </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="group__axis2__svc__client.html#g09ddaee99db86733d6550231293be4e7">axis2_svc_client_t</a> *&nbsp;</td>
          <td class="paramname"> <em>svc_client</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const <a class="el" href="structaxutil__env.html">axutil_env_t</a> *&nbsp;</td>
          <td class="paramname"> <em>env</em></td><td>&nbsp;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td><td width="100%"></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
Gets the HTTP Status Code of the last response. <dl compact><dt><b>Parameters:</b></dt><dd>
  <table border="0" cellspacing="2" cellpadding="0">
    <tr><td valign="top"></td><td valign="top"><em>svc_client</em>&nbsp;</td><td>pointer to service_client struct </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>env</em>&nbsp;</td><td>pointer to environment struct </td></tr>
  </table>
</dl>
<dl class="return" compact><dt><b>Returns:</b></dt><dd>HTTP Status Code </dd></dl>

</div>
</div><p>
<a class="anchor" name="ge0c17bd903894f28245d22e996c54dbd"></a><!-- doxytag: member="axis2_svc_client.h::axis2_svc_client_get_last_response_has_fault" ref="ge0c17bd903894f28245d22e996c54dbd" args="(const axis2_svc_client_t *svc_client, const axutil_env_t *env)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">AXIS2_EXTERN axis2_bool_t axis2_svc_client_get_last_response_has_fault           </td>
          <td>(</td>
          <td class="paramtype">const <a class="el" href="group__axis2__svc__client.html#g09ddaee99db86733d6550231293be4e7">axis2_svc_client_t</a> *&nbsp;</td>
          <td class="paramname"> <em>svc_client</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const <a class="el" href="structaxutil__env.html">axutil_env_t</a> *&nbsp;</td>
          <td class="paramname"> <em>env</em></td><td>&nbsp;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td><td width="100%"></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
Gets the boolean value indicating if the last response had a SOAP fault. <dl compact><dt><b>Parameters:</b></dt><dd>
  <table border="0" cellspacing="2" cellpadding="0">
    <tr><td valign="top"></td><td valign="top"><em>svc_client</em>&nbsp;</td><td>pointer to service_client struct </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>env</em>&nbsp;</td><td>env pointer to environment struct </td></tr>
  </table>
</dl>
<dl class="return" compact><dt><b>Returns:</b></dt><dd>AXIS2_TRUE if there was a fault, else AXIS2_FALSE </dd></dl>

</div>
</div><p>
<a class="anchor" name="g53d3a7c3bd84013e1ace71061b0ef98c"></a><!-- doxytag: member="axis2_svc_client.h::axis2_svc_client_get_last_response_soap_envelope" ref="g53d3a7c3bd84013e1ace71061b0ef98c" args="(const axis2_svc_client_t *svc_client, const axutil_env_t *env)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">AXIS2_EXTERN axiom_soap_envelope_t* axis2_svc_client_get_last_response_soap_envelope           </td>
          <td>(</td>
          <td class="paramtype">const <a class="el" href="group__axis2__svc__client.html#g09ddaee99db86733d6550231293be4e7">axis2_svc_client_t</a> *&nbsp;</td>
          <td class="paramname"> <em>svc_client</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const <a class="el" href="structaxutil__env.html">axutil_env_t</a> *&nbsp;</td>
          <td class="paramname"> <em>env</em></td><td>&nbsp;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td><td width="100%"></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
Gets the last response SOAP envelope. <dl compact><dt><b>Parameters:</b></dt><dd>
  <table border="0" cellspacing="2" cellpadding="0">
    <tr><td valign="top"></td><td valign="top"><em>svc_client</em>&nbsp;</td><td>pointer to service_client struct </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>env</em>&nbsp;</td><td>env pointer to environment struct </td></tr>
  </table>
</dl>
<dl class="return" compact><dt><b>Returns:</b></dt><dd>pointer to SOAP envelope that was returned as a result when send_receieve was called last time </dd></dl>

</div>
</div><p>
<a class="anchor" name="ga67a9dd0d56c30d5f96f28e5e8040c8c"></a><!-- doxytag: member="axis2_svc_client.h::axis2_svc_client_get_op_client" ref="ga67a9dd0d56c30d5f96f28e5e8040c8c" args="(const axis2_svc_client_t *svc_client, const axutil_env_t *env)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">AXIS2_EXTERN <a class="el" href="group__axis2__op__client.html#g6bc9ac9f149e65002cdfc265f8a7e505">axis2_op_client_t</a>* axis2_svc_client_get_op_client           </td>
          <td>(</td>
          <td class="paramtype">const <a class="el" href="group__axis2__svc__client.html#g09ddaee99db86733d6550231293be4e7">axis2_svc_client_t</a> *&nbsp;</td>
          <td class="paramname"> <em>svc_client</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const <a class="el" href="structaxutil__env.html">axutil_env_t</a> *&nbsp;</td>
          <td class="paramname"> <em>env</em></td><td>&nbsp;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td><td width="100%"></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
Gets the operation client <dl compact><dt><b>Parameters:</b></dt><dd>
  <table border="0" cellspacing="2" cellpadding="0">
    <tr><td valign="top"></td><td valign="top"><em>svc_client</em>&nbsp;</td><td>pointer to service_client struct </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>env</em>&nbsp;</td><td>env pointer to environment struct </td></tr>
  </table>
</dl>
<dl class="return" compact><dt><b>Returns:</b></dt><dd>pointer to service context struct. service client owns the returned pointer </dd></dl>

</div>
</div><p>
<a class="anchor" name="g2014faaebc9685d685b9b33ac7fdbb48"></a><!-- doxytag: member="axis2_svc_client.h::axis2_svc_client_get_options" ref="g2014faaebc9685d685b9b33ac7fdbb48" args="(const axis2_svc_client_t *svc_client, const axutil_env_t *env)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">AXIS2_EXTERN const <a class="el" href="group__axis2__options.html#g26794bbdc46cdd3481c7e9079c0d6094">axis2_options_t</a>* axis2_svc_client_get_options           </td>
          <td>(</td>
          <td class="paramtype">const <a class="el" href="group__axis2__svc__client.html#g09ddaee99db86733d6550231293be4e7">axis2_svc_client_t</a> *&nbsp;</td>
          <td class="paramname"> <em>svc_client</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const <a class="el" href="structaxutil__env.html">axutil_env_t</a> *&nbsp;</td>
          <td class="paramname"> <em>env</em></td><td>&nbsp;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td><td width="100%"></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
Gets options used by service client. <dl compact><dt><b>Parameters:</b></dt><dd>
  <table border="0" cellspacing="2" cellpadding="0">
    <tr><td valign="top"></td><td valign="top"><em>svc_client</em>&nbsp;</td><td>pointer to service client struct </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>env</em>&nbsp;</td><td>pointer to environment struct </td></tr>
  </table>
</dl>
<dl class="return" compact><dt><b>Returns:</b></dt><dd>a pointer to the options struct if options set, else NULL. Returns a reference, not a cloned copy. </dd></dl>

</div>
</div><p>
<a class="anchor" name="g6d96f187c2183a936646d3c9c39b4a68"></a><!-- doxytag: member="axis2_svc_client.h::axis2_svc_client_get_override_options" ref="g6d96f187c2183a936646d3c9c39b4a68" args="(const axis2_svc_client_t *svc_client, const axutil_env_t *env)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">AXIS2_EXTERN const <a class="el" href="group__axis2__options.html#g26794bbdc46cdd3481c7e9079c0d6094">axis2_options_t</a>* axis2_svc_client_get_override_options           </td>
          <td>(</td>
          <td class="paramtype">const <a class="el" href="group__axis2__svc__client.html#g09ddaee99db86733d6550231293be4e7">axis2_svc_client_t</a> *&nbsp;</td>
          <td class="paramname"> <em>svc_client</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const <a class="el" href="structaxutil__env.html">axutil_env_t</a> *&nbsp;</td>
          <td class="paramname"> <em>env</em></td><td>&nbsp;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td><td width="100%"></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
Gets the overriding options. <dl compact><dt><b>Parameters:</b></dt><dd>
  <table border="0" cellspacing="2" cellpadding="0">
    <tr><td valign="top"></td><td valign="top"><em>svc_client</em>&nbsp;</td><td>pointer to service client struct </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>env</em>&nbsp;</td><td>pointer to environment struct </td></tr>
  </table>
</dl>
<dl class="return" compact><dt><b>Returns:</b></dt><dd>pointer to overriding options struct if options set, else NULL. Returns a reference, not a cloned copy. </dd></dl>

</div>
</div><p>
<a class="anchor" name="gd844bd63844eaec8549c5fdc9b1a4567"></a><!-- doxytag: member="axis2_svc_client.h::axis2_svc_client_get_own_endpoint_ref" ref="gd844bd63844eaec8549c5fdc9b1a4567" args="(const axis2_svc_client_t *svc_client, const axutil_env_t *env, const axis2_char_t *transport)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">AXIS2_EXTERN const <a class="el" href="group__axis2__endpoint__ref.html#gf6e89c83a6b553e7e3f11e787b3fecd4">axis2_endpoint_ref_t</a>* axis2_svc_client_get_own_endpoint_ref           </td>
          <td>(</td>
          <td class="paramtype">const <a class="el" href="group__axis2__svc__client.html#g09ddaee99db86733d6550231293be4e7">axis2_svc_client_t</a> *&nbsp;</td>
          <td class="paramname"> <em>svc_client</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const <a class="el" href="structaxutil__env.html">axutil_env_t</a> *&nbsp;</td>
          <td class="paramname"> <em>env</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const axis2_char_t *&nbsp;</td>
          <td class="paramname"> <em>transport</em></td><td>&nbsp;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td><td width="100%"></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
Gets the service client's own endpoint_ref, that is the endpoint the client will be sending from. <dl compact><dt><b>Parameters:</b></dt><dd>
  <table border="0" cellspacing="2" cellpadding="0">
    <tr><td valign="top"></td><td valign="top"><em>svc_client</em>&nbsp;</td><td>pointer to service client struct </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>env</em>&nbsp;</td><td>pointer to environment struct </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>transport</em>&nbsp;</td><td>name of the transport, e.g "http" </td></tr>
  </table>
</dl>
<dl class="return" compact><dt><b>Returns:</b></dt><dd>pointer to the endpoint_ref struct. Returns a reference, not a cloned copy. </dd></dl>

</div>
</div><p>
<a class="anchor" name="g7c97e5105557a8f3dca54c19f5d30f29"></a><!-- doxytag: member="axis2_svc_client.h::axis2_svc_client_get_proxy_auth_required" ref="g7c97e5105557a8f3dca54c19f5d30f29" args="(const axis2_svc_client_t *svc_client, const axutil_env_t *env)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">AXIS2_EXTERN axis2_bool_t axis2_svc_client_get_proxy_auth_required           </td>
          <td>(</td>
          <td class="paramtype">const <a class="el" href="group__axis2__svc__client.html#g09ddaee99db86733d6550231293be4e7">axis2_svc_client_t</a> *&nbsp;</td>
          <td class="paramname"> <em>svc_client</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const <a class="el" href="structaxutil__env.html">axutil_env_t</a> *&nbsp;</td>
          <td class="paramname"> <em>env</em></td><td>&nbsp;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td><td width="100%"></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
Gets the boolean value indicating whether Proxy Authentication is required. <dl compact><dt><b>Parameters:</b></dt><dd>
  <table border="0" cellspacing="2" cellpadding="0">
    <tr><td valign="top"></td><td valign="top"><em>svc_client</em>&nbsp;</td><td>pointer to service_client struct </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>env</em>&nbsp;</td><td>env pointer to environment struct </td></tr>
  </table>
</dl>
<dl class="return" compact><dt><b>Returns:</b></dt><dd>AXIS2_TRUE if Authentication is required, else AXIS2_FALSE </dd></dl>

</div>
</div><p>
<a class="anchor" name="gadff613f313131cacb5abc9771133294"></a><!-- doxytag: member="axis2_svc_client.h::axis2_svc_client_get_svc" ref="gadff613f313131cacb5abc9771133294" args="(const axis2_svc_client_t *svc_client, const axutil_env_t *env)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">AXIS2_EXTERN <a class="el" href="group__axis2__svc.html#gc4a9229f924f3af161d02183a9dd6ca3">axis2_svc_t</a>* axis2_svc_client_get_svc           </td>
          <td>(</td>
          <td class="paramtype">const <a class="el" href="group__axis2__svc__client.html#g09ddaee99db86733d6550231293be4e7">axis2_svc_client_t</a> *&nbsp;</td>
          <td class="paramname"> <em>svc_client</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const <a class="el" href="structaxutil__env.html">axutil_env_t</a> *&nbsp;</td>
          <td class="paramname"> <em>env</em></td><td>&nbsp;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td><td width="100%"></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
Returns the axis2_svc_t this is a client for. This is primarily useful when the service is created anonymously or from WSDL. <dl compact><dt><b>Parameters:</b></dt><dd>
  <table border="0" cellspacing="2" cellpadding="0">
    <tr><td valign="top"></td><td valign="top"><em>svc_client</em>&nbsp;</td><td>pointer to service client struct </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>env</em>&nbsp;</td><td>pointer to environment struct </td></tr>
  </table>
</dl>
<dl class="return" compact><dt><b>Returns:</b></dt><dd>a pointer to axis service struct, or NULL if no service is associated. Returns a reference, not a cloned copy. </dd></dl>

</div>
</div><p>
<a class="anchor" name="g507f51f4a690c9d13e02c98dc17eb02c"></a><!-- doxytag: member="axis2_svc_client.h::axis2_svc_client_get_svc_ctx" ref="g507f51f4a690c9d13e02c98dc17eb02c" args="(const axis2_svc_client_t *svc_client, const axutil_env_t *env)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">AXIS2_EXTERN <a class="el" href="group__axis2__svc__ctx.html#g2a3845db3eb9e9a47b992f6c8882e482">axis2_svc_ctx_t</a>* axis2_svc_client_get_svc_ctx           </td>
          <td>(</td>
          <td class="paramtype">const <a class="el" href="group__axis2__svc__client.html#g09ddaee99db86733d6550231293be4e7">axis2_svc_client_t</a> *&nbsp;</td>
          <td class="paramname"> <em>svc_client</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const <a class="el" href="structaxutil__env.html">axutil_env_t</a> *&nbsp;</td>
          <td class="paramname"> <em>env</em></td><td>&nbsp;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td><td width="100%"></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
Gets the service context. <dl compact><dt><b>Parameters:</b></dt><dd>
  <table border="0" cellspacing="2" cellpadding="0">
    <tr><td valign="top"></td><td valign="top"><em>svc_client</em>&nbsp;</td><td>pointer to service client struct </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>env</em>&nbsp;</td><td>pointer to environment struct </td></tr>
  </table>
</dl>
<dl class="return" compact><dt><b>Returns:</b></dt><dd>pointer to service context struct. service client owns the returned pointer. </dd></dl>

</div>
</div><p>
<a class="anchor" name="gf7576c7c16ad4859bbf04f771d03cc3e"></a><!-- doxytag: member="axis2_svc_client.h::axis2_svc_client_get_target_endpoint_ref" ref="gf7576c7c16ad4859bbf04f771d03cc3e" args="(const axis2_svc_client_t *svc_client, const axutil_env_t *env)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">AXIS2_EXTERN const <a class="el" href="group__axis2__endpoint__ref.html#gf6e89c83a6b553e7e3f11e787b3fecd4">axis2_endpoint_ref_t</a>* axis2_svc_client_get_target_endpoint_ref           </td>
          <td>(</td>
          <td class="paramtype">const <a class="el" href="group__axis2__svc__client.html#g09ddaee99db86733d6550231293be4e7">axis2_svc_client_t</a> *&nbsp;</td>
          <td class="paramname"> <em>svc_client</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const <a class="el" href="structaxutil__env.html">axutil_env_t</a> *&nbsp;</td>
          <td class="paramname"> <em>env</em></td><td>&nbsp;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td><td width="100%"></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
Gets the target endpoint ref. <dl compact><dt><b>Parameters:</b></dt><dd>
  <table border="0" cellspacing="2" cellpadding="0">
    <tr><td valign="top"></td><td valign="top"><em>svc_client</em>&nbsp;</td><td>pointer to service client struct </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>env</em>&nbsp;</td><td>pointer to environment struct </td></tr>
  </table>
</dl>
<dl class="return" compact><dt><b>Returns:</b></dt><dd>pointer to the endpoint_ref struct. Returns a reference, not a cloned copy. </dd></dl>

</div>
</div><p>
<a class="anchor" name="gd14cd1a3ec6aa3891369cd9bd671030b"></a><!-- doxytag: member="axis2_svc_client.h::axis2_svc_client_remove_all_headers" ref="gd14cd1a3ec6aa3891369cd9bd671030b" args="(axis2_svc_client_t *svc_client, const axutil_env_t *env)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">AXIS2_EXTERN axis2_status_t axis2_svc_client_remove_all_headers           </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="group__axis2__svc__client.html#g09ddaee99db86733d6550231293be4e7">axis2_svc_client_t</a> *&nbsp;</td>
          <td class="paramname"> <em>svc_client</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const <a class="el" href="structaxutil__env.html">axutil_env_t</a> *&nbsp;</td>
          <td class="paramname"> <em>env</em></td><td>&nbsp;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td><td width="100%"></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
Removes all the headers added to service client. <dl compact><dt><b>Parameters:</b></dt><dd>
  <table border="0" cellspacing="2" cellpadding="0">
    <tr><td valign="top"></td><td valign="top"><em>svc_client</em>&nbsp;</td><td>pointer to service client struct </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>env</em>&nbsp;</td><td>pointer to environment struct </td></tr>
  </table>
</dl>
<dl class="return" compact><dt><b>Returns:</b></dt><dd>AXIS2_SUCCESS on success, else AXIS2_FAILURE </dd></dl>

</div>
</div><p>
<a class="anchor" name="g2748baf670a594d5bf8dd49d9038dbc5"></a><!-- doxytag: member="axis2_svc_client.h::axis2_svc_client_send_receive" ref="g2748baf670a594d5bf8dd49d9038dbc5" args="(axis2_svc_client_t *svc_client, const axutil_env_t *env, const axiom_node_t *payload)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">AXIS2_EXTERN axiom_node_t* axis2_svc_client_send_receive           </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="group__axis2__svc__client.html#g09ddaee99db86733d6550231293be4e7">axis2_svc_client_t</a> *&nbsp;</td>
          <td class="paramname"> <em>svc_client</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const <a class="el" href="structaxutil__env.html">axutil_env_t</a> *&nbsp;</td>
          <td class="paramname"> <em>env</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const axiom_node_t *&nbsp;</td>
          <td class="paramname"> <em>payload</em></td><td>&nbsp;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td><td width="100%"></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
Sends XML request and receives XML response. This method is used to interact with a service operation whose MEP is In-Out. <dl compact><dt><b>Parameters:</b></dt><dd>
  <table border="0" cellspacing="2" cellpadding="0">
    <tr><td valign="top"></td><td valign="top"><em>svc_client</em>&nbsp;</td><td>pointer to service client struct </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>env</em>&nbsp;</td><td>pointer to environment struct </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>payload</em>&nbsp;</td><td>pointer to OM node representing the XML payload to be sent. The caller has control over the payload until the service client frees it. </td></tr>
  </table>
</dl>
<dl class="return" compact><dt><b>Returns:</b></dt><dd>pointer to OM node representing the XML response. The caller owns the returned node. </dd></dl>

</div>
</div><p>
<a class="anchor" name="g26a5d5c7cb8a4305908d829f35dcfb13"></a><!-- doxytag: member="axis2_svc_client.h::axis2_svc_client_send_receive_non_blocking" ref="g26a5d5c7cb8a4305908d829f35dcfb13" args="(axis2_svc_client_t *svc_client, const axutil_env_t *env, const axiom_node_t *payload, axis2_callback_t *callback)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">AXIS2_EXTERN void axis2_svc_client_send_receive_non_blocking           </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="group__axis2__svc__client.html#g09ddaee99db86733d6550231293be4e7">axis2_svc_client_t</a> *&nbsp;</td>
          <td class="paramname"> <em>svc_client</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const <a class="el" href="structaxutil__env.html">axutil_env_t</a> *&nbsp;</td>
          <td class="paramname"> <em>env</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const axiom_node_t *&nbsp;</td>
          <td class="paramname"> <em>payload</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype"><a class="el" href="group__axis2__callback.html#g0d855254802281de06d16c71627226b5">axis2_callback_t</a> *&nbsp;</td>
          <td class="paramname"> <em>callback</em></td><td>&nbsp;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td><td width="100%"></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
Sends XML request and receives XML response, but does not block for response. This method is used to interact in non-blocking mode with a service operation whose MEP is In-Out. <dl compact><dt><b>Parameters:</b></dt><dd>
  <table border="0" cellspacing="2" cellpadding="0">
    <tr><td valign="top"></td><td valign="top"><em>svc_client</em>&nbsp;</td><td>pointer to service client struct </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>env</em>&nbsp;</td><td>pointer to environment struct </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>payload</em>&nbsp;</td><td>pointer to OM node representing the XML payload to be sent. The caller has control over the payload until the service client frees it.  pointer to callback struct used to capture response </td></tr>
  </table>
</dl>

</div>
</div><p>
<a class="anchor" name="gd68cdf7e84aff54c1815c8675772c76c"></a><!-- doxytag: member="axis2_svc_client.h::axis2_svc_client_send_receive_non_blocking_with_op_qname" ref="gd68cdf7e84aff54c1815c8675772c76c" args="(axis2_svc_client_t *svc_client, const axutil_env_t *env, const axutil_qname_t *op_qname, const axiom_node_t *payload, axis2_callback_t *callback)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">AXIS2_EXTERN void axis2_svc_client_send_receive_non_blocking_with_op_qname           </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="group__axis2__svc__client.html#g09ddaee99db86733d6550231293be4e7">axis2_svc_client_t</a> *&nbsp;</td>
          <td class="paramname"> <em>svc_client</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const <a class="el" href="structaxutil__env.html">axutil_env_t</a> *&nbsp;</td>
          <td class="paramname"> <em>env</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const axutil_qname_t *&nbsp;</td>
          <td class="paramname"> <em>op_qname</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const axiom_node_t *&nbsp;</td>
          <td class="paramname"> <em>payload</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype"><a class="el" href="group__axis2__callback.html#g0d855254802281de06d16c71627226b5">axis2_callback_t</a> *&nbsp;</td>
          <td class="paramname"> <em>callback</em></td><td>&nbsp;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td><td width="100%"></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
Sends XML request and receives XML response, but does not block for response. This method is used to interact in non-blocking mode with a service operation whose MEP is In-Out. <dl compact><dt><b>Parameters:</b></dt><dd>
  <table border="0" cellspacing="2" cellpadding="0">
    <tr><td valign="top"></td><td valign="top"><em>svc_client</em>&nbsp;</td><td>pointer to service client struct </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>env</em>&nbsp;</td><td>pointer to environment struct </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>op_qname</em>&nbsp;</td><td>operation qname. NULL is equivalent to an operation name of "__OPERATION_OUT_IN__" </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>payload</em>&nbsp;</td><td>pointer to OM node representing the XML payload to be sent. The caller has control over the payload until the service client frees it.  pointer to callback struct used to capture response </td></tr>
  </table>
</dl>

</div>
</div><p>
<a class="anchor" name="g6e0d00d836295f92e14473d3cf3bf78b"></a><!-- doxytag: member="axis2_svc_client.h::axis2_svc_client_send_receive_with_op_qname" ref="g6e0d00d836295f92e14473d3cf3bf78b" args="(axis2_svc_client_t *svc_client, const axutil_env_t *env, const axutil_qname_t *op_qname, const axiom_node_t *payload)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">AXIS2_EXTERN axiom_node_t* axis2_svc_client_send_receive_with_op_qname           </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="group__axis2__svc__client.html#g09ddaee99db86733d6550231293be4e7">axis2_svc_client_t</a> *&nbsp;</td>
          <td class="paramname"> <em>svc_client</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const <a class="el" href="structaxutil__env.html">axutil_env_t</a> *&nbsp;</td>
          <td class="paramname"> <em>env</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const axutil_qname_t *&nbsp;</td>
          <td class="paramname"> <em>op_qname</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const axiom_node_t *&nbsp;</td>
          <td class="paramname"> <em>payload</em></td><td>&nbsp;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td><td width="100%"></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
Sends XML request and receives XML response. This method is used to interact with a service operation whose MEP is In-Out. <dl compact><dt><b>Parameters:</b></dt><dd>
  <table border="0" cellspacing="2" cellpadding="0">
    <tr><td valign="top"></td><td valign="top"><em>svc_client</em>&nbsp;</td><td>pointer to service client struct </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>env</em>&nbsp;</td><td>pointer to environment struct </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>op_qname</em>&nbsp;</td><td>operation qname. NULL is equivalent to an operation name of "__OPERATION_OUT_IN__" </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>payload</em>&nbsp;</td><td>pointer to OM node representing the XML payload to be sent. The caller has control over the payload until the service client frees it. </td></tr>
  </table>
</dl>
<dl class="return" compact><dt><b>Returns:</b></dt><dd>pointer to OM node representing the XML response. The caller owns the returned node. </dd></dl>

</div>
</div><p>
<a class="anchor" name="g715a6de724d3a0d1d93bd11620c3ee78"></a><!-- doxytag: member="axis2_svc_client.h::axis2_svc_client_send_robust" ref="g715a6de724d3a0d1d93bd11620c3ee78" args="(axis2_svc_client_t *svc_client, const axutil_env_t *env, const axiom_node_t *payload)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">AXIS2_EXTERN axis2_status_t axis2_svc_client_send_robust           </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="group__axis2__svc__client.html#g09ddaee99db86733d6550231293be4e7">axis2_svc_client_t</a> *&nbsp;</td>
          <td class="paramname"> <em>svc_client</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const <a class="el" href="structaxutil__env.html">axutil_env_t</a> *&nbsp;</td>
          <td class="paramname"> <em>env</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const axiom_node_t *&nbsp;</td>
          <td class="paramname"> <em>payload</em></td><td>&nbsp;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td><td width="100%"></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
This method can be used to send an XML message. This is a simple method to invoke a service operation whose MEP is Robust Out-Only. If a fault triggers on server side, this method would report an error back to the caller. <dl compact><dt><b>Parameters:</b></dt><dd>
  <table border="0" cellspacing="2" cellpadding="0">
    <tr><td valign="top"></td><td valign="top"><em>svc_client</em>&nbsp;</td><td>pointer to service client struct </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>env</em>&nbsp;</td><td>pointer to environment struct operation name of "__OPERATION_ROBUST_OUT_ONLY__" </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>payload</em>&nbsp;</td><td>pointer to OM node representing the XML payload to be sent. The caller has control over the payload until the service client frees it. </td></tr>
  </table>
</dl>
<dl class="return" compact><dt><b>Returns:</b></dt><dd>AXIS2_SUCCESS on success, else AXIS2_FAILURE </dd></dl>

</div>
</div><p>
<a class="anchor" name="g42a973429ce779dc574052bb6a8b1849"></a><!-- doxytag: member="axis2_svc_client.h::axis2_svc_client_send_robust_with_op_qname" ref="g42a973429ce779dc574052bb6a8b1849" args="(axis2_svc_client_t *svc_client, const axutil_env_t *env, const axutil_qname_t *op_qname, const axiom_node_t *payload)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">AXIS2_EXTERN axis2_status_t axis2_svc_client_send_robust_with_op_qname           </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="group__axis2__svc__client.html#g09ddaee99db86733d6550231293be4e7">axis2_svc_client_t</a> *&nbsp;</td>
          <td class="paramname"> <em>svc_client</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const <a class="el" href="structaxutil__env.html">axutil_env_t</a> *&nbsp;</td>
          <td class="paramname"> <em>env</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const axutil_qname_t *&nbsp;</td>
          <td class="paramname"> <em>op_qname</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const axiom_node_t *&nbsp;</td>
          <td class="paramname"> <em>payload</em></td><td>&nbsp;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td><td width="100%"></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
This method can be used to send an XML message. This is a simple method to invoke a service operation whose MEP is Robust Out-Only. If a fault triggers on server side, this method would report an error back to the caller. <dl compact><dt><b>Parameters:</b></dt><dd>
  <table border="0" cellspacing="2" cellpadding="0">
    <tr><td valign="top"></td><td valign="top"><em>svc_client</em>&nbsp;</td><td>pointer to service client struct </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>env</em>&nbsp;</td><td>pointer to environment struct </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>op_qname</em>&nbsp;</td><td>operation qname. NULL is equivalent to an operation name of "__OPERATION_ROBUST_OUT_ONLY__" </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>payload</em>&nbsp;</td><td>pointer to OM node representing the XML payload to be sent. The caller has control over the payload until the service client frees it. </td></tr>
  </table>
</dl>
<dl class="return" compact><dt><b>Returns:</b></dt><dd>AXIS2_SUCCESS on success, else AXIS2_FAILURE </dd></dl>

</div>
</div><p>
<a class="anchor" name="ge976c74f5398693aa8b6d2c083b982bf"></a><!-- doxytag: member="axis2_svc_client.h::axis2_svc_client_set_options" ref="ge976c74f5398693aa8b6d2c083b982bf" args="(axis2_svc_client_t *svc_client, const axutil_env_t *env, const axis2_options_t *options)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">AXIS2_EXTERN axis2_status_t axis2_svc_client_set_options           </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="group__axis2__svc__client.html#g09ddaee99db86733d6550231293be4e7">axis2_svc_client_t</a> *&nbsp;</td>
          <td class="paramname"> <em>svc_client</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const <a class="el" href="structaxutil__env.html">axutil_env_t</a> *&nbsp;</td>
          <td class="paramname"> <em>env</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const <a class="el" href="group__axis2__options.html#g26794bbdc46cdd3481c7e9079c0d6094">axis2_options_t</a> *&nbsp;</td>
          <td class="paramname"> <em>options</em></td><td>&nbsp;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td><td width="100%"></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
Sets the options to be used by service client. <dl compact><dt><b>Parameters:</b></dt><dd>
  <table border="0" cellspacing="2" cellpadding="0">
    <tr><td valign="top"></td><td valign="top"><em>svc_client</em>&nbsp;</td><td>pointer to service client struct </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>env</em>&nbsp;</td><td>pointer to environment struct </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>options</em>&nbsp;</td><td>pointer to options struct to be set </td></tr>
  </table>
</dl>
<dl class="return" compact><dt><b>Returns:</b></dt><dd>AXIS2_SUCCESS on success, else AXIS2_FAILURE </dd></dl>

</div>
</div><p>
<a class="anchor" name="g59e0659abbb66ae2100a66e93d692462"></a><!-- doxytag: member="axis2_svc_client.h::axis2_svc_client_set_override_options" ref="g59e0659abbb66ae2100a66e93d692462" args="(axis2_svc_client_t *svc_client, const axutil_env_t *env, const axis2_options_t *override_options)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">AXIS2_EXTERN axis2_status_t axis2_svc_client_set_override_options           </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="group__axis2__svc__client.html#g09ddaee99db86733d6550231293be4e7">axis2_svc_client_t</a> *&nbsp;</td>
          <td class="paramname"> <em>svc_client</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const <a class="el" href="structaxutil__env.html">axutil_env_t</a> *&nbsp;</td>
          <td class="paramname"> <em>env</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const <a class="el" href="group__axis2__options.html#g26794bbdc46cdd3481c7e9079c0d6094">axis2_options_t</a> *&nbsp;</td>
          <td class="paramname"> <em>override_options</em></td><td>&nbsp;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td><td width="100%"></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
Sets the overriding options. The overriding client options related to this service interaction override any options that the underlying operation client may have. <dl compact><dt><b>Parameters:</b></dt><dd>
  <table border="0" cellspacing="2" cellpadding="0">
    <tr><td valign="top"></td><td valign="top"><em>svc_client</em>&nbsp;</td><td>pointer to service client struct </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>env</em>&nbsp;</td><td>pointer to environment struct </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>options</em>&nbsp;</td><td>pointer to options struct to be set </td></tr>
  </table>
</dl>
<dl class="return" compact><dt><b>Returns:</b></dt><dd>AXIS2_SUCCESS on success, else AXIS2_FAILURE </dd></dl>

</div>
</div><p>
<a class="anchor" name="g805278c10ee19cda6d41fc224f5b9ea3"></a><!-- doxytag: member="axis2_svc_client.h::axis2_svc_client_set_policy" ref="g805278c10ee19cda6d41fc224f5b9ea3" args="(axis2_svc_client_t *svc_client, const axutil_env_t *env, neethi_policy_t *policy)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">AXIS2_EXTERN axis2_status_t axis2_svc_client_set_policy           </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="group__axis2__svc__client.html#g09ddaee99db86733d6550231293be4e7">axis2_svc_client_t</a> *&nbsp;</td>
          <td class="paramname"> <em>svc_client</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const <a class="el" href="structaxutil__env.html">axutil_env_t</a> *&nbsp;</td>
          <td class="paramname"> <em>env</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">neethi_policy_t *&nbsp;</td>
          <td class="paramname"> <em>policy</em></td><td>&nbsp;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td><td width="100%"></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
Set the given policy object to the description hierarchy <dl compact><dt><b>Parameters:</b></dt><dd>
  <table border="0" cellspacing="2" cellpadding="0">
    <tr><td valign="top"></td><td valign="top"><em>svc_client</em>&nbsp;</td><td>pointer to service_client struct </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>env</em>&nbsp;</td><td>pointer to environment struct </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>policy</em>&nbsp;</td><td>neethi_policy_t to a policy struct </td></tr>
  </table>
</dl>
<dl class="return" compact><dt><b>Returns:</b></dt><dd>AXIS2_FAILURE if there was a fault, else AXIS2_SUCCESS </dd></dl>

</div>
</div><p>
<a class="anchor" name="g43d7672cdea91171fc89fcc06799e1dc"></a><!-- doxytag: member="axis2_svc_client.h::axis2_svc_client_set_policy_from_om" ref="g43d7672cdea91171fc89fcc06799e1dc" args="(axis2_svc_client_t *svc_client, const axutil_env_t *env, axiom_node_t *root_node)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">AXIS2_EXTERN axis2_status_t axis2_svc_client_set_policy_from_om           </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="group__axis2__svc__client.html#g09ddaee99db86733d6550231293be4e7">axis2_svc_client_t</a> *&nbsp;</td>
          <td class="paramname"> <em>svc_client</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const <a class="el" href="structaxutil__env.html">axutil_env_t</a> *&nbsp;</td>
          <td class="paramname"> <em>env</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">axiom_node_t *&nbsp;</td>
          <td class="paramname"> <em>root_node</em></td><td>&nbsp;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td><td width="100%"></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
Create a policy object and set it to the description hierarchy <dl compact><dt><b>Parameters:</b></dt><dd>
  <table border="0" cellspacing="2" cellpadding="0">
    <tr><td valign="top"></td><td valign="top"><em>svc_client</em>&nbsp;</td><td>pointer to service_client struct </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>env</em>&nbsp;</td><td>pointer to environment struct </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>root_node</em>&nbsp;</td><td>pointer to a policy node </td></tr>
  </table>
</dl>
<dl class="return" compact><dt><b>Returns:</b></dt><dd>AXIS2_FAILURE if there was a fault, else AXIS2_SUCCESS </dd></dl>

</div>
</div><p>
<a class="anchor" name="ged34edf4ad2491d96c1af33fe669fd1f"></a><!-- doxytag: member="axis2_svc_client.h::axis2_svc_client_set_proxy" ref="ged34edf4ad2491d96c1af33fe669fd1f" args="(axis2_svc_client_t *svc_client, const axutil_env_t *env, axis2_char_t *proxy_host, axis2_char_t *proxy_port)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">AXIS2_EXTERN axis2_status_t axis2_svc_client_set_proxy           </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="group__axis2__svc__client.html#g09ddaee99db86733d6550231293be4e7">axis2_svc_client_t</a> *&nbsp;</td>
          <td class="paramname"> <em>svc_client</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const <a class="el" href="structaxutil__env.html">axutil_env_t</a> *&nbsp;</td>
          <td class="paramname"> <em>env</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">axis2_char_t *&nbsp;</td>
          <td class="paramname"> <em>proxy_host</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">axis2_char_t *&nbsp;</td>
          <td class="paramname"> <em>proxy_port</em></td><td>&nbsp;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td><td width="100%"></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
Sets the proxy. <dl compact><dt><b>Parameters:</b></dt><dd>
  <table border="0" cellspacing="2" cellpadding="0">
    <tr><td valign="top"></td><td valign="top"><em>svc_client</em>&nbsp;</td><td>pointer to service client struct </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>env</em>&nbsp;</td><td>pointer to environment struct </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>proxy_host</em>&nbsp;</td><td>pointer to the proxy_host settings to be set </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>proxy_port</em>&nbsp;</td><td>pointer to the proxy_port settings to be set </td></tr>
  </table>
</dl>
<dl class="return" compact><dt><b>Returns:</b></dt><dd>AXIS2_SUCCESS on success, else AXIS2_FAILURE </dd></dl>

</div>
</div><p>
<a class="anchor" name="gcfe99e1b20b72175564545aa3643a578"></a><!-- doxytag: member="axis2_svc_client.h::axis2_svc_client_set_proxy_with_auth" ref="gcfe99e1b20b72175564545aa3643a578" args="(axis2_svc_client_t *svc_client, const axutil_env_t *env, axis2_char_t *proxy_host, axis2_char_t *proxy_port, axis2_char_t *username, axis2_char_t *password)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">AXIS2_EXTERN axis2_status_t axis2_svc_client_set_proxy_with_auth           </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="group__axis2__svc__client.html#g09ddaee99db86733d6550231293be4e7">axis2_svc_client_t</a> *&nbsp;</td>
          <td class="paramname"> <em>svc_client</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const <a class="el" href="structaxutil__env.html">axutil_env_t</a> *&nbsp;</td>
          <td class="paramname"> <em>env</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">axis2_char_t *&nbsp;</td>
          <td class="paramname"> <em>proxy_host</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">axis2_char_t *&nbsp;</td>
          <td class="paramname"> <em>proxy_port</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">axis2_char_t *&nbsp;</td>
          <td class="paramname"> <em>username</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">axis2_char_t *&nbsp;</td>
          <td class="paramname"> <em>password</em></td><td>&nbsp;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td><td width="100%"></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
Sets the proxy with authentication support. <dl compact><dt><b>Parameters:</b></dt><dd>
  <table border="0" cellspacing="2" cellpadding="0">
    <tr><td valign="top"></td><td valign="top"><em>svc_client</em>&nbsp;</td><td>pointer to service client struct </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>env</em>&nbsp;</td><td>pointer to environment struct </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>proxy_host</em>&nbsp;</td><td>pointer to the proxy_host settings to be set </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>proxy_port</em>&nbsp;</td><td>pointer to the proxy_port settings to be set </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>username</em>&nbsp;</td><td>pointer to the username associated with proxy which is required for authentication </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>password</em>&nbsp;</td><td>pointer to the password associated with proxy which is required for authentication </td></tr>
  </table>
</dl>
<dl class="return" compact><dt><b>Returns:</b></dt><dd>AXIS2_SUCCESS on success, else AXIS2_FAILURE </dd></dl>

</div>
</div><p>
<a class="anchor" name="gb60879c0484ac46ae301c7c4f13ba6e6"></a><!-- doxytag: member="axis2_svc_client.h::axis2_svc_client_set_target_endpoint_ref" ref="gb60879c0484ac46ae301c7c4f13ba6e6" args="(axis2_svc_client_t *svc_client, const axutil_env_t *env, axis2_endpoint_ref_t *target_epr)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">AXIS2_EXTERN axis2_status_t axis2_svc_client_set_target_endpoint_ref           </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="group__axis2__svc__client.html#g09ddaee99db86733d6550231293be4e7">axis2_svc_client_t</a> *&nbsp;</td>
          <td class="paramname"> <em>svc_client</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const <a class="el" href="structaxutil__env.html">axutil_env_t</a> *&nbsp;</td>
          <td class="paramname"> <em>env</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype"><a class="el" href="group__axis2__endpoint__ref.html#gf6e89c83a6b553e7e3f11e787b3fecd4">axis2_endpoint_ref_t</a> *&nbsp;</td>
          <td class="paramname"> <em>target_epr</em></td><td>&nbsp;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td><td width="100%"></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
Sets the target endpoint ref. <dl compact><dt><b>Parameters:</b></dt><dd>
  <table border="0" cellspacing="2" cellpadding="0">
    <tr><td valign="top"></td><td valign="top"><em>svc_client</em>&nbsp;</td><td>pointer to service client struct </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>env</em>&nbsp;</td><td>pointer to environment struct </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>target_epr</em>&nbsp;</td><td>pointer to the endpoint_ref struct to be set as target. service client takes over the ownership of the struct. </td></tr>
  </table>
</dl>
<dl class="return" compact><dt><b>Returns:</b></dt><dd>AXIS2_SUCCESS on success, else AXIS2_FAILURE </dd></dl>

</div>
</div><p>
<hr size="1"><address style="text-align: right;"><small>Generated on Fri Apr 17 11:49:45 2009 for Axis2/C by&nbsp;
<a href="http://www.doxygen.org/index.html">
<img src="doxygen.png" alt="doxygen" align="middle" border="0"></a> 1.5.3 </small></address>
</body>
</html>


<|start_filename|>src/core/clientapi/async_result.c<|end_filename|>

/*
 * 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.
 */

#include <axis2_async_result.h>
#include <axis2_const.h>
#include <axutil_hash.h>

struct axis2_async_result
{

    /** result message context */
    axis2_msg_ctx_t *result;
};

AXIS2_EXTERN axis2_async_result_t *AXIS2_CALL
axis2_async_result_create(
    const axutil_env_t * env,
    axis2_msg_ctx_t * result)
{
    axis2_async_result_t *async_result = NULL;

    AXIS2_ENV_CHECK(env, NULL);

    async_result = AXIS2_MALLOC(env->allocator, sizeof(axis2_async_result_t));
    if (!async_result)
    {
        AXIS2_ERROR_SET(env->error, AXIS2_ERROR_NO_MEMORY, AXIS2_FAILURE);
        AXIS2_LOG_ERROR(env->log, AXIS2_LOG_SI, "No memory. Cannot create asynchronous result.");
        return NULL;
    }

    async_result->result = NULL;

    if (result)
    {
        async_result->result = result;  /* shallow copy */
    }

    return async_result;
}

AXIS2_EXTERN axiom_soap_envelope_t *AXIS2_CALL
axis2_async_result_get_envelope(
    axis2_async_result_t * async_result,
    const axutil_env_t * env)
{
    if (async_result->result)
    {
        return axis2_msg_ctx_get_soap_envelope(async_result->result, env);
    }

    return NULL;
}

AXIS2_EXTERN axis2_msg_ctx_t *AXIS2_CALL
axis2_async_result_get_result(
    axis2_async_result_t * async_result,
    const axutil_env_t * env)
{
    return async_result->result;
}

AXIS2_EXTERN void AXIS2_CALL
axis2_async_result_free(
    axis2_async_result_t * async_result,
    const axutil_env_t * env)
{
    AXIS2_FREE(env->allocator, async_result);
}


<|start_filename|>xdocs/api/html/group__axiom__soap__fault__text.html<|end_filename|>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html><head><meta http-equiv="Content-Type" content="text/html;charset=UTF-8">
<title>Axis2/C: soap fault text</title>
<link href="doxygen.css" rel="stylesheet" type="text/css">
<link href="tabs.css" rel="stylesheet" type="text/css">
</head><body>
<!-- Generated by Doxygen 1.5.3 -->
<div class="tabs">
  <ul>
    <li><a href="index.html"><span>Main&nbsp;Page</span></a></li>
    <li><a href="modules.html"><span>Modules</span></a></li>
    <li><a href="annotated.html"><span>Classes</span></a></li>
    <li><a href="files.html"><span>Files</span></a></li>
    <li><a href="dirs.html"><span>Directories</span></a></li>
    <li><a href="pages.html"><span>Related&nbsp;Pages</span></a></li>
    <li><a href="examples.html"><span>Examples</span></a></li>
    <li>
      <form action="search.php" method="get">
        <table cellspacing="0" cellpadding="0" border="0">
          <tr>
            <td><label>&nbsp;<u>S</u>earch&nbsp;for&nbsp;</label></td>
            <td><input type="text" name="query" value="" size="20" accesskey="s"/></td>
          </tr>
        </table>
      </form>
    </li>
  </ul>
</div>
<h1>soap fault text<br>
<small>
[<a class="el" href="group__axiom__soap.html">SOAP</a>]</small>
</h1><table border="0" cellpadding="0" cellspacing="0">
<tr><td></td></tr>
<tr><td colspan="2"><br><h2>Functions</h2></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top">AXIS2_EXTERN <br>
axiom_soap_fault_text_t *&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__axiom__soap__fault__text.html#g93c4f13db5c53ccb8082d346781d4b6f">axiom_soap_fault_text_create_with_parent</a> (const <a class="el" href="structaxutil__env.html">axutil_env_t</a> *env, axiom_soap_fault_reason_t *fault)</td></tr>

<tr><td class="memItemLeft" nowrap align="right" valign="top">AXIS2_EXTERN void&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__axiom__soap__fault__text.html#g67e470106dd5af9d1e93b349438d966a">axiom_soap_fault_text_free</a> (axiom_soap_fault_text_t *fault_text, const <a class="el" href="structaxutil__env.html">axutil_env_t</a> *env)</td></tr>

<tr><td class="memItemLeft" nowrap align="right" valign="top">AXIS2_EXTERN <br>
axis2_status_t&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__axiom__soap__fault__text.html#gddf6b270d8a7a242feebfcab0456884d">axiom_soap_fault_text_set_lang</a> (axiom_soap_fault_text_t *fault_text, const <a class="el" href="structaxutil__env.html">axutil_env_t</a> *env, const axis2_char_t *lang)</td></tr>

<tr><td class="memItemLeft" nowrap align="right" valign="top">AXIS2_EXTERN <br>
axis2_char_t *&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__axiom__soap__fault__text.html#gdd77e0f2bb64f0b2e43c1bf7209416fb">axiom_soap_fault_text_get_lang</a> (axiom_soap_fault_text_t *fault_text, const <a class="el" href="structaxutil__env.html">axutil_env_t</a> *env)</td></tr>

<tr><td class="memItemLeft" nowrap align="right" valign="top">AXIS2_EXTERN <br>
axiom_node_t *&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__axiom__soap__fault__text.html#gc23731689dc612a0019df49423b94fd9">axiom_soap_fault_text_get_base_node</a> (axiom_soap_fault_text_t *fault_text, const <a class="el" href="structaxutil__env.html">axutil_env_t</a> *env)</td></tr>

<tr><td class="memItemLeft" nowrap align="right" valign="top">AXIS2_EXTERN <br>
axis2_status_t&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__axiom__soap__fault__text.html#gbdde017acd991c0a8178cefcdd3f60ef">axiom_soap_fault_text_set_text</a> (axiom_soap_fault_text_t *fault_text, const <a class="el" href="structaxutil__env.html">axutil_env_t</a> *env, axis2_char_t *value, axis2_char_t *lang)</td></tr>

<tr><td class="memItemLeft" nowrap align="right" valign="top">AXIS2_EXTERN <br>
axis2_char_t *&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__axiom__soap__fault__text.html#g5b2f411950e2d7ff211d5b37ef292a60">axiom_soap_fault_text_get_text</a> (axiom_soap_fault_text_t *fault_text, const <a class="el" href="structaxutil__env.html">axutil_env_t</a> *env)</td></tr>

</table>
<hr><h2>Function Documentation</h2>
<a class="anchor" name="g93c4f13db5c53ccb8082d346781d4b6f"></a><!-- doxytag: member="axiom_soap_fault_text.h::axiom_soap_fault_text_create_with_parent" ref="g93c4f13db5c53ccb8082d346781d4b6f" args="(const axutil_env_t *env, axiom_soap_fault_reason_t *fault)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">AXIS2_EXTERN axiom_soap_fault_text_t* axiom_soap_fault_text_create_with_parent           </td>
          <td>(</td>
          <td class="paramtype">const <a class="el" href="structaxutil__env.html">axutil_env_t</a> *&nbsp;</td>
          <td class="paramname"> <em>env</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">axiom_soap_fault_reason_t *&nbsp;</td>
          <td class="paramname"> <em>fault</em></td><td>&nbsp;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td><td width="100%"></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
creates a soap fault struct <dl compact><dt><b>Parameters:</b></dt><dd>
  <table border="0" cellspacing="2" cellpadding="0">
    <tr><td valign="top"></td><td valign="top"><em>env</em>&nbsp;</td><td>Environment. MUST NOT be NULL </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>fault</em>&nbsp;</td><td>the SOAP fault reason</td></tr>
  </table>
</dl>
<dl class="return" compact><dt><b>Returns:</b></dt><dd>Created SOAP fault text </dd></dl>

</div>
</div><p>
<a class="anchor" name="g67e470106dd5af9d1e93b349438d966a"></a><!-- doxytag: member="axiom_soap_fault_text.h::axiom_soap_fault_text_free" ref="g67e470106dd5af9d1e93b349438d966a" args="(axiom_soap_fault_text_t *fault_text, const axutil_env_t *env)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">AXIS2_EXTERN void axiom_soap_fault_text_free           </td>
          <td>(</td>
          <td class="paramtype">axiom_soap_fault_text_t *&nbsp;</td>
          <td class="paramname"> <em>fault_text</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const <a class="el" href="structaxutil__env.html">axutil_env_t</a> *&nbsp;</td>
          <td class="paramname"> <em>env</em></td><td>&nbsp;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td><td width="100%"></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
Free an axiom_soap_fault_text <dl compact><dt><b>Parameters:</b></dt><dd>
  <table border="0" cellspacing="2" cellpadding="0">
    <tr><td valign="top"></td><td valign="top"><em>fault_text</em>&nbsp;</td><td>pointer to soap_fault_text struct </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>env</em>&nbsp;</td><td>Environment. MUST NOT be NULL </td></tr>
  </table>
</dl>
<dl class="return" compact><dt><b>Returns:</b></dt><dd>satus of the op. AXIS2_SUCCESS on success else AXIS2_FAILURE </dd></dl>

</div>
</div><p>
<a class="anchor" name="gc23731689dc612a0019df49423b94fd9"></a><!-- doxytag: member="axiom_soap_fault_text.h::axiom_soap_fault_text_get_base_node" ref="gc23731689dc612a0019df49423b94fd9" args="(axiom_soap_fault_text_t *fault_text, const axutil_env_t *env)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">AXIS2_EXTERN axiom_node_t* axiom_soap_fault_text_get_base_node           </td>
          <td>(</td>
          <td class="paramtype">axiom_soap_fault_text_t *&nbsp;</td>
          <td class="paramname"> <em>fault_text</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const <a class="el" href="structaxutil__env.html">axutil_env_t</a> *&nbsp;</td>
          <td class="paramname"> <em>env</em></td><td>&nbsp;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td><td width="100%"></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
Get the base node of the SOAP fault text <dl compact><dt><b>Parameters:</b></dt><dd>
  <table border="0" cellspacing="2" cellpadding="0">
    <tr><td valign="top"></td><td valign="top"><em>fault_text</em>&nbsp;</td><td>pointer to soap_fault_text struct </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>env</em>&nbsp;</td><td>Environment. MUST NOT be NULL</td></tr>
  </table>
</dl>
<dl class="return" compact><dt><b>Returns:</b></dt><dd>the base node of the SOAP fault text </dd></dl>

</div>
</div><p>
<a class="anchor" name="gdd77e0f2bb64f0b2e43c1bf7209416fb"></a><!-- doxytag: member="axiom_soap_fault_text.h::axiom_soap_fault_text_get_lang" ref="gdd77e0f2bb64f0b2e43c1bf7209416fb" args="(axiom_soap_fault_text_t *fault_text, const axutil_env_t *env)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">AXIS2_EXTERN axis2_char_t* axiom_soap_fault_text_get_lang           </td>
          <td>(</td>
          <td class="paramtype">axiom_soap_fault_text_t *&nbsp;</td>
          <td class="paramname"> <em>fault_text</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const <a class="el" href="structaxutil__env.html">axutil_env_t</a> *&nbsp;</td>
          <td class="paramname"> <em>env</em></td><td>&nbsp;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td><td width="100%"></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
Get the lang of the SOAP fault <dl compact><dt><b>Parameters:</b></dt><dd>
  <table border="0" cellspacing="2" cellpadding="0">
    <tr><td valign="top"></td><td valign="top"><em>fault_text</em>&nbsp;</td><td>pointer to soap_fault_text struct </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>env</em>&nbsp;</td><td>Environment. MUST NOT be NULL</td></tr>
  </table>
</dl>
<dl class="return" compact><dt><b>Returns:</b></dt><dd>the lang of the SOAP fault </dd></dl>

</div>
</div><p>
<a class="anchor" name="g5b2f411950e2d7ff211d5b37ef292a60"></a><!-- doxytag: member="axiom_soap_fault_text.h::axiom_soap_fault_text_get_text" ref="g5b2f411950e2d7ff211d5b37ef292a60" args="(axiom_soap_fault_text_t *fault_text, const axutil_env_t *env)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">AXIS2_EXTERN axis2_char_t* axiom_soap_fault_text_get_text           </td>
          <td>(</td>
          <td class="paramtype">axiom_soap_fault_text_t *&nbsp;</td>
          <td class="paramname"> <em>fault_text</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const <a class="el" href="structaxutil__env.html">axutil_env_t</a> *&nbsp;</td>
          <td class="paramname"> <em>env</em></td><td>&nbsp;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td><td width="100%"></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
get the SOAP fault text <dl compact><dt><b>Parameters:</b></dt><dd>
  <table border="0" cellspacing="2" cellpadding="0">
    <tr><td valign="top"></td><td valign="top"><em>fault_text</em>&nbsp;</td><td>pointer to soap_fault_text struct </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>env</em>&nbsp;</td><td>Environment. MUST NOT be NULL</td></tr>
  </table>
</dl>
<dl class="return" compact><dt><b>Returns:</b></dt><dd>the Text of the SOAP fault </dd></dl>

</div>
</div><p>
<a class="anchor" name="gddf6b270d8a7a242feebfcab0456884d"></a><!-- doxytag: member="axiom_soap_fault_text.h::axiom_soap_fault_text_set_lang" ref="gddf6b270d8a7a242feebfcab0456884d" args="(axiom_soap_fault_text_t *fault_text, const axutil_env_t *env, const axis2_char_t *lang)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">AXIS2_EXTERN axis2_status_t axiom_soap_fault_text_set_lang           </td>
          <td>(</td>
          <td class="paramtype">axiom_soap_fault_text_t *&nbsp;</td>
          <td class="paramname"> <em>fault_text</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const <a class="el" href="structaxutil__env.html">axutil_env_t</a> *&nbsp;</td>
          <td class="paramname"> <em>env</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const axis2_char_t *&nbsp;</td>
          <td class="paramname"> <em>lang</em></td><td>&nbsp;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td><td width="100%"></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
Set the lang of the SOAP fault text <dl compact><dt><b>Parameters:</b></dt><dd>
  <table border="0" cellspacing="2" cellpadding="0">
    <tr><td valign="top"></td><td valign="top"><em>fault_text</em>&nbsp;</td><td>pointer to soap_fault_text struct </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>env</em>&nbsp;</td><td>Environment. MUST NOT be NULL </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>lang</em>&nbsp;</td><td>the string to be set </td></tr>
  </table>
</dl>
<dl class="return" compact><dt><b>Returns:</b></dt><dd>satus of the op. AXIS2_SUCCESS on success else AXIS2_FAILURE </dd></dl>

</div>
</div><p>
<a class="anchor" name="gbdde017acd991c0a8178cefcdd3f60ef"></a><!-- doxytag: member="axiom_soap_fault_text.h::axiom_soap_fault_text_set_text" ref="gbdde017acd991c0a8178cefcdd3f60ef" args="(axiom_soap_fault_text_t *fault_text, const axutil_env_t *env, axis2_char_t *value, axis2_char_t *lang)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">AXIS2_EXTERN axis2_status_t axiom_soap_fault_text_set_text           </td>
          <td>(</td>
          <td class="paramtype">axiom_soap_fault_text_t *&nbsp;</td>
          <td class="paramname"> <em>fault_text</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const <a class="el" href="structaxutil__env.html">axutil_env_t</a> *&nbsp;</td>
          <td class="paramname"> <em>env</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">axis2_char_t *&nbsp;</td>
          <td class="paramname"> <em>value</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">axis2_char_t *&nbsp;</td>
          <td class="paramname"> <em>lang</em></td><td>&nbsp;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td><td width="100%"></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
Set the SOAP fault text <dl compact><dt><b>Parameters:</b></dt><dd>
  <table border="0" cellspacing="2" cellpadding="0">
    <tr><td valign="top"></td><td valign="top"><em>fault_text</em>&nbsp;</td><td>pointer to soap_fault_text struct </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>env</em>&nbsp;</td><td>Environment. MUST NOT be NULL </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>value</em>&nbsp;</td><td>the text value </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>lang</em>&nbsp;</td><td>string to be compared </td></tr>
  </table>
</dl>
<dl class="return" compact><dt><b>Returns:</b></dt><dd>satus of the op. AXIS2_SUCCESS on success else AXIS2_FAILURE </dd></dl>

</div>
</div><p>
<hr size="1"><address style="text-align: right;"><small>Generated on Fri Apr 17 11:49:44 2009 for Axis2/C by&nbsp;
<a href="http://www.doxygen.org/index.html">
<img src="doxygen.png" alt="doxygen" align="middle" border="0"></a> 1.5.3 </small></address>
</body>
</html>


<|start_filename|>xdocs/api/html/group__axutil__string.html<|end_filename|>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html><head><meta http-equiv="Content-Type" content="text/html;charset=UTF-8">
<title>Axis2/C: string</title>
<link href="doxygen.css" rel="stylesheet" type="text/css">
<link href="tabs.css" rel="stylesheet" type="text/css">
</head><body>
<!-- Generated by Doxygen 1.5.3 -->
<div class="tabs">
  <ul>
    <li><a href="index.html"><span>Main&nbsp;Page</span></a></li>
    <li><a href="modules.html"><span>Modules</span></a></li>
    <li><a href="annotated.html"><span>Classes</span></a></li>
    <li><a href="files.html"><span>Files</span></a></li>
    <li><a href="dirs.html"><span>Directories</span></a></li>
    <li><a href="pages.html"><span>Related&nbsp;Pages</span></a></li>
    <li><a href="examples.html"><span>Examples</span></a></li>
    <li>
      <form action="search.php" method="get">
        <table cellspacing="0" cellpadding="0" border="0">
          <tr>
            <td><label>&nbsp;<u>S</u>earch&nbsp;for&nbsp;</label></td>
            <td><input type="text" name="query" value="" size="20" accesskey="s"/></td>
          </tr>
        </table>
      </form>
    </li>
  </ul>
</div>
<h1>string<br>
<small>
[<a class="el" href="group__axis2__util.html">utilities</a>]</small>
</h1><table border="0" cellpadding="0" cellspacing="0">
<tr><td></td></tr>
<tr><td colspan="2"><br><h2>Typedefs</h2></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="ge626ca685d2c7ab277723626388a7c00"></a><!-- doxytag: member="axutil_string::axutil_string_t" ref="ge626ca685d2c7ab277723626388a7c00" args="" -->
typedef struct <br>
axutil_string&nbsp;</td><td class="memItemRight" valign="bottom"><b>axutil_string_t</b></td></tr>

<tr><td colspan="2"><br><h2>Functions</h2></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top">AXIS2_EXTERN <br>
axutil_string_t *&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__axutil__string.html#g7ae6b326c8670f129c62d90f41141717">axutil_string_create</a> (const <a class="el" href="structaxutil__env.html">axutil_env_t</a> *env, const axis2_char_t *str)</td></tr>

<tr><td class="memItemLeft" nowrap align="right" valign="top">AXIS2_EXTERN <br>
axutil_string_t *&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__axutil__string.html#g12d5d062c9f901653ec55934667df4ff">axutil_string_create_assume_ownership</a> (const <a class="el" href="structaxutil__env.html">axutil_env_t</a> *env, axis2_char_t **str)</td></tr>

<tr><td class="memItemLeft" nowrap align="right" valign="top">AXIS2_EXTERN <br>
axutil_string_t *&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__axutil__string.html#gf3c10a118a1ab009b22542abeef72b06">axutil_string_create_const</a> (const <a class="el" href="structaxutil__env.html">axutil_env_t</a> *env, axis2_char_t **str)</td></tr>

<tr><td class="memItemLeft" nowrap align="right" valign="top">AXIS2_EXTERN void&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__axutil__string.html#g940859e6f4889463780078c9845bf41f">axutil_string_free</a> (struct axutil_string *string, const <a class="el" href="structaxutil__env.html">axutil_env_t</a> *env)</td></tr>

<tr><td class="memItemLeft" nowrap align="right" valign="top">AXIS2_EXTERN axis2_bool_t&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__axutil__string.html#g026785c54c66b09cb278f1e20c47b6bf">axutil_string_equals</a> (const struct axutil_string *string, const <a class="el" href="structaxutil__env.html">axutil_env_t</a> *env, const struct axutil_string *string1)</td></tr>

<tr><td class="memItemLeft" nowrap align="right" valign="top">AXIS2_EXTERN struct <br>
axutil_string *&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__axutil__string.html#ga117973350a2025cfcc0463f6f21fdfa">axutil_string_clone</a> (struct axutil_string *string, const <a class="el" href="structaxutil__env.html">axutil_env_t</a> *env)</td></tr>

<tr><td class="memItemLeft" nowrap align="right" valign="top">AXIS2_EXTERN const <br>
axis2_char_t *&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__axutil__string.html#g9c0f8f5767c62ec199047bf8c1071630">axutil_string_get_buffer</a> (const struct axutil_string *string, const <a class="el" href="structaxutil__env.html">axutil_env_t</a> *env)</td></tr>

<tr><td class="memItemLeft" nowrap align="right" valign="top">AXIS2_EXTERN unsigned int&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__axutil__string.html#gca7b79811404b25130d326842b74c414">axutil_string_get_length</a> (const struct axutil_string *string, const <a class="el" href="structaxutil__env.html">axutil_env_t</a> *env)</td></tr>

</table>
<hr><a name="_details"></a><h2>Detailed Description</h2>
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<p>
<a href="http://www.apache.org/licenses/LICENSE-2.0">http://www.apache.org/licenses/LICENSE-2.0</a><p>
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. <hr><h2>Function Documentation</h2>
<a class="anchor" name="ga117973350a2025cfcc0463f6f21fdfa"></a><!-- doxytag: member="axutil_string.h::axutil_string_clone" ref="ga117973350a2025cfcc0463f6f21fdfa" args="(struct axutil_string *string, const axutil_env_t *env)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">AXIS2_EXTERN struct axutil_string* axutil_string_clone           </td>
          <td>(</td>
          <td class="paramtype">struct axutil_string *&nbsp;</td>
          <td class="paramname"> <em>string</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const <a class="el" href="structaxutil__env.html">axutil_env_t</a> *&nbsp;</td>
          <td class="paramname"> <em>env</em></td><td>&nbsp;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td><td width="100%"><code> [read]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
Clones a given string. Does not duplicate the buffer, rather increments the reference count. Each call to clone needs to have a matching free, when the clone is done with. <dl compact><dt><b>Parameters:</b></dt><dd>
  <table border="0" cellspacing="2" cellpadding="0">
    <tr><td valign="top"></td><td valign="top"><em>string</em>&nbsp;</td><td>pointer to string struct </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>env</em>&nbsp;</td><td>pointer to environment struct </td></tr>
  </table>
</dl>
<dl class="return" compact><dt><b>Returns:</b></dt><dd>pointer to cloned string struct instance </dd></dl>

</div>
</div><p>
<a class="anchor" name="g7ae6b326c8670f129c62d90f41141717"></a><!-- doxytag: member="axutil_string.h::axutil_string_create" ref="g7ae6b326c8670f129c62d90f41141717" args="(const axutil_env_t *env, const axis2_char_t *str)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">AXIS2_EXTERN axutil_string_t* axutil_string_create           </td>
          <td>(</td>
          <td class="paramtype">const <a class="el" href="structaxutil__env.html">axutil_env_t</a> *&nbsp;</td>
          <td class="paramname"> <em>env</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const axis2_char_t *&nbsp;</td>
          <td class="paramname"> <em>str</em></td><td>&nbsp;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td><td width="100%"></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
Creates a string struct. <dl compact><dt><b>Parameters:</b></dt><dd>
  <table border="0" cellspacing="2" cellpadding="0">
    <tr><td valign="top"></td><td valign="top"><em>str</em>&nbsp;</td><td>pointer to string. string struct would create a duplicate of this </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>env</em>&nbsp;</td><td>pointer to environment struct </td></tr>
  </table>
</dl>
<dl class="return" compact><dt><b>Returns:</b></dt><dd>a pointer to newly created string struct </dd></dl>

</div>
</div><p>
<a class="anchor" name="g12d5d062c9f901653ec55934667df4ff"></a><!-- doxytag: member="axutil_string.h::axutil_string_create_assume_ownership" ref="g12d5d062c9f901653ec55934667df4ff" args="(const axutil_env_t *env, axis2_char_t **str)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">AXIS2_EXTERN axutil_string_t* axutil_string_create_assume_ownership           </td>
          <td>(</td>
          <td class="paramtype">const <a class="el" href="structaxutil__env.html">axutil_env_t</a> *&nbsp;</td>
          <td class="paramname"> <em>env</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">axis2_char_t **&nbsp;</td>
          <td class="paramname"> <em>str</em></td><td>&nbsp;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td><td width="100%"></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
Creates a string struct. <dl compact><dt><b>Parameters:</b></dt><dd>
  <table border="0" cellspacing="2" cellpadding="0">
    <tr><td valign="top"></td><td valign="top"><em>str</em>&nbsp;</td><td>pointer to string. string struct would not create a duplicate of this, but would assume ownership </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>env</em>&nbsp;</td><td>pointer to environment struct </td></tr>
  </table>
</dl>
<dl class="return" compact><dt><b>Returns:</b></dt><dd>a pointer to newly created string struct </dd></dl>

</div>
</div><p>
<a class="anchor" name="gf3c10a118a1ab009b22542abeef72b06"></a><!-- doxytag: member="axutil_string.h::axutil_string_create_const" ref="gf3c10a118a1ab009b22542abeef72b06" args="(const axutil_env_t *env, axis2_char_t **str)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">AXIS2_EXTERN axutil_string_t* axutil_string_create_const           </td>
          <td>(</td>
          <td class="paramtype">const <a class="el" href="structaxutil__env.html">axutil_env_t</a> *&nbsp;</td>
          <td class="paramname"> <em>env</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">axis2_char_t **&nbsp;</td>
          <td class="paramname"> <em>str</em></td><td>&nbsp;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td><td width="100%"></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
Creates a string struct. <dl compact><dt><b>Parameters:</b></dt><dd>
  <table border="0" cellspacing="2" cellpadding="0">
    <tr><td valign="top"></td><td valign="top"><em>str</em>&nbsp;</td><td>pointer to string. string struct would not create a duplicate of this and assumes the str would have longer life than that of itself </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>env</em>&nbsp;</td><td>pointer to environment struct </td></tr>
  </table>
</dl>
<dl class="return" compact><dt><b>Returns:</b></dt><dd>a pointer to newly created string struct </dd></dl>

</div>
</div><p>
<a class="anchor" name="g026785c54c66b09cb278f1e20c47b6bf"></a><!-- doxytag: member="axutil_string.h::axutil_string_equals" ref="g026785c54c66b09cb278f1e20c47b6bf" args="(const struct axutil_string *string, const axutil_env_t *env, const struct axutil_string *string1)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">AXIS2_EXTERN axis2_bool_t axutil_string_equals           </td>
          <td>(</td>
          <td class="paramtype">const struct axutil_string *&nbsp;</td>
          <td class="paramname"> <em>string</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const <a class="el" href="structaxutil__env.html">axutil_env_t</a> *&nbsp;</td>
          <td class="paramname"> <em>env</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const struct axutil_string *&nbsp;</td>
          <td class="paramname"> <em>string1</em></td><td>&nbsp;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td><td width="100%"></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
Compares two strings. Checks if the two strings point to the same buffer. Do not cmpare the buffer contents. <dl compact><dt><b>Parameters:</b></dt><dd>
  <table border="0" cellspacing="2" cellpadding="0">
    <tr><td valign="top"></td><td valign="top"><em>string</em>&nbsp;</td><td>pointer to string struct </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>env</em>&nbsp;</td><td>pointer to environment struct </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>string1</em>&nbsp;</td><td>pointer to string struct to be compared </td></tr>
  </table>
</dl>
<dl class="return" compact><dt><b>Returns:</b></dt><dd>AXIS2_TRUE if string equals string1, AXIS2_FALSE otherwise </dd></dl>

</div>
</div><p>
<a class="anchor" name="g940859e6f4889463780078c9845bf41f"></a><!-- doxytag: member="axutil_string.h::axutil_string_free" ref="g940859e6f4889463780078c9845bf41f" args="(struct axutil_string *string, const axutil_env_t *env)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">AXIS2_EXTERN void axutil_string_free           </td>
          <td>(</td>
          <td class="paramtype">struct axutil_string *&nbsp;</td>
          <td class="paramname"> <em>string</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const <a class="el" href="structaxutil__env.html">axutil_env_t</a> *&nbsp;</td>
          <td class="paramname"> <em>env</em></td><td>&nbsp;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td><td width="100%"></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
Frees string struct. <dl compact><dt><b>Parameters:</b></dt><dd>
  <table border="0" cellspacing="2" cellpadding="0">
    <tr><td valign="top"></td><td valign="top"><em>string</em>&nbsp;</td><td>pointer to string struct </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>env</em>&nbsp;</td><td>pointer to environment struct </td></tr>
  </table>
</dl>
<dl class="return" compact><dt><b>Returns:</b></dt><dd>AXIS2_SUCCESS on success, else AXIS2_FAILURE </dd></dl>

</div>
</div><p>
<a class="anchor" name="g9c0f8f5767c62ec199047bf8c1071630"></a><!-- doxytag: member="axutil_string.h::axutil_string_get_buffer" ref="g9c0f8f5767c62ec199047bf8c1071630" args="(const struct axutil_string *string, const axutil_env_t *env)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">AXIS2_EXTERN const axis2_char_t* axutil_string_get_buffer           </td>
          <td>(</td>
          <td class="paramtype">const struct axutil_string *&nbsp;</td>
          <td class="paramname"> <em>string</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const <a class="el" href="structaxutil__env.html">axutil_env_t</a> *&nbsp;</td>
          <td class="paramname"> <em>env</em></td><td>&nbsp;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td><td width="100%"></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
Gets string buffer. <dl compact><dt><b>Parameters:</b></dt><dd>
  <table border="0" cellspacing="2" cellpadding="0">
    <tr><td valign="top"></td><td valign="top"><em>string</em>&nbsp;</td><td>pointer to string struct </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>env</em>&nbsp;</td><td>pointer to environment struct </td></tr>
  </table>
</dl>
<dl class="return" compact><dt><b>Returns:</b></dt><dd>pointer to string buffer </dd></dl>

</div>
</div><p>
<a class="anchor" name="gca7b79811404b25130d326842b74c414"></a><!-- doxytag: member="axutil_string.h::axutil_string_get_length" ref="gca7b79811404b25130d326842b74c414" args="(const struct axutil_string *string, const axutil_env_t *env)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">AXIS2_EXTERN unsigned int axutil_string_get_length           </td>
          <td>(</td>
          <td class="paramtype">const struct axutil_string *&nbsp;</td>
          <td class="paramname"> <em>string</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const <a class="el" href="structaxutil__env.html">axutil_env_t</a> *&nbsp;</td>
          <td class="paramname"> <em>env</em></td><td>&nbsp;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td><td width="100%"></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
Gets string length. * <dl compact><dt><b>Parameters:</b></dt><dd>
  <table border="0" cellspacing="2" cellpadding="0">
    <tr><td valign="top"></td><td valign="top"><em>string</em>&nbsp;</td><td>pointer to string struct * </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>env</em>&nbsp;</td><td>pointer to environment struct * </td></tr>
  </table>
</dl>
<dl class="return" compact><dt><b>Returns:</b></dt><dd>buffer length </dd></dl>

</div>
</div><p>
<hr size="1"><address style="text-align: right;"><small>Generated on Fri Apr 17 11:49:46 2009 for Axis2/C by&nbsp;
<a href="http://www.doxygen.org/index.html">
<img src="doxygen.png" alt="doxygen" align="middle" border="0"></a> 1.5.3 </small></address>
</body>
</html>


<|start_filename|>xdocs/api/html/axiom__mime__parser_8h.html<|end_filename|>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html><head><meta http-equiv="Content-Type" content="text/html;charset=UTF-8">
<title>Axis2/C: axiom_mime_parser.h File Reference</title>
<link href="doxygen.css" rel="stylesheet" type="text/css">
<link href="tabs.css" rel="stylesheet" type="text/css">
</head><body>
<!-- Generated by Doxygen 1.5.3 -->
<div class="tabs">
  <ul>
    <li><a href="index.html"><span>Main&nbsp;Page</span></a></li>
    <li><a href="modules.html"><span>Modules</span></a></li>
    <li><a href="annotated.html"><span>Classes</span></a></li>
    <li class="current"><a href="files.html"><span>Files</span></a></li>
    <li><a href="dirs.html"><span>Directories</span></a></li>
    <li><a href="pages.html"><span>Related&nbsp;Pages</span></a></li>
    <li><a href="examples.html"><span>Examples</span></a></li>
    <li>
      <form action="search.php" method="get">
        <table cellspacing="0" cellpadding="0" border="0">
          <tr>
            <td><label>&nbsp;<u>S</u>earch&nbsp;for&nbsp;</label></td>
            <td><input type="text" name="query" value="" size="20" accesskey="s"/></td>
          </tr>
        </table>
      </form>
    </li>
  </ul>
</div>
<div class="nav">
<a class="el" href="dir_f60961de8e5edc3b2658ef023e959e45.html">deploy</a>&nbsp;&raquo&nbsp;<a class="el" href="dir_6b4e91e54b7316b376882a6402adbf44.html">include</a>&nbsp;&raquo&nbsp;<a class="el" href="dir_df3a7695d5a9e696f30b948b566829e7.html">axis2-1.6.0</a></div>
<h1>axiom_mime_parser.h File Reference</h1>axis2 mime_parser interface <a href="#_details">More...</a>
<p>
<code>#include &lt;<a class="el" href="axutil__utils_8h-source.html">axutil_utils.h</a>&gt;</code><br>
<code>#include &lt;axutil_error.h&gt;</code><br>
<code>#include &lt;axutil_utils_defines.h&gt;</code><br>
<code>#include &lt;<a class="el" href="axutil__env_8h-source.html">axutil_env.h</a>&gt;</code><br>
<code>#include &lt;<a class="el" href="axutil__allocator_8h-source.html">axutil_allocator.h</a>&gt;</code><br>
<code>#include &lt;axutil_string.h&gt;</code><br>
<code>#include &lt;<a class="el" href="axutil__hash_8h-source.html">axutil_hash.h</a>&gt;</code><br>
<code>#include &lt;axiom_mime_const.h&gt;</code><br>

<p>
<a href="axiom__mime__parser_8h-source.html">Go to the source code of this file.</a><table border="0" cellpadding="0" cellspacing="0">
<tr><td></td></tr>
<tr><td colspan="2"><br><h2>Defines</h2></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="710ea9d65777b5ea758d84aef8fcd099"></a><!-- doxytag: member="axiom_mime_parser.h::AXIOM_MIME_PARSER_BUFFER_SIZE" ref="710ea9d65777b5ea758d84aef8fcd099" args="" -->
#define&nbsp;</td><td class="memItemRight" valign="bottom"><b>AXIOM_MIME_PARSER_BUFFER_SIZE</b>&nbsp;&nbsp;&nbsp;(1024 * 1024/2)</td></tr>

<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="a6bbdf6ba9bbf4c74aee869796efb648"></a><!-- doxytag: member="axiom_mime_parser.h::AXIOM_MIME_PARSER_MAX_BUFFERS" ref="a6bbdf6ba9bbf4c74aee869796efb648" args="" -->
#define&nbsp;</td><td class="memItemRight" valign="bottom"><b>AXIOM_MIME_PARSER_MAX_BUFFERS</b>&nbsp;&nbsp;&nbsp;1000</td></tr>

<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="1994f62327bfc331f511c7d9c27a4b2c"></a><!-- doxytag: member="axiom_mime_parser.h::AXIOM_MIME_PARSER_END_OF_MIME_MAX_COUNT" ref="1994f62327bfc331f511c7d9c27a4b2c" args="" -->
#define&nbsp;</td><td class="memItemRight" valign="bottom"><b>AXIOM_MIME_PARSER_END_OF_MIME_MAX_COUNT</b>&nbsp;&nbsp;&nbsp;100</td></tr>

<tr><td colspan="2"><br><h2>Typedefs</h2></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="56ee892c665cb4a6c3e9ccfee77f32a5"></a><!-- doxytag: member="axiom_mime_parser.h::axiom_mime_parser_t" ref="56ee892c665cb4a6c3e9ccfee77f32a5" args="" -->
typedef struct <br>
axiom_mime_parser&nbsp;</td><td class="memItemRight" valign="bottom"><b>axiom_mime_parser_t</b></td></tr>

<tr><td colspan="2"><br><h2>Functions</h2></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top">AXIS2_EXTERN <br>
axis2_status_t&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__axiom__mime__parser.html#gdc5c7fd17d2589e7bcb82db28a2ee2c7">axiom_mime_parser_parse_for_soap</a> (axiom_mime_parser_t *mime_parser, const <a class="el" href="structaxutil__env.html">axutil_env_t</a> *env, AXIS2_READ_INPUT_CALLBACK callback, void *callback_ctx, axis2_char_t *mime_boundary)</td></tr>

<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="gad740844c9b6e98882ecdd80d5059b73"></a><!-- doxytag: member="axiom_mime_parser.h::axiom_mime_parser_parse_for_attachments" ref="gad740844c9b6e98882ecdd80d5059b73" args="(axiom_mime_parser_t *mime_parser, const axutil_env_t *env, AXIS2_READ_INPUT_CALLBACK callback, void *callback_ctx, axis2_char_t *mime_boundary, void *user_param)" -->
AXIS2_EXTERN <br>
<a class="el" href="group__axutil__hash.html#gb2d7d14db2de92a101573f44421ac12a">axutil_hash_t</a> *&nbsp;</td><td class="memItemRight" valign="bottom"><b>axiom_mime_parser_parse_for_attachments</b> (axiom_mime_parser_t *mime_parser, const <a class="el" href="structaxutil__env.html">axutil_env_t</a> *env, AXIS2_READ_INPUT_CALLBACK callback, void *callback_ctx, axis2_char_t *mime_boundary, void *user_param)</td></tr>

<tr><td class="memItemLeft" nowrap align="right" valign="top">AXIS2_EXTERN <br>
<a class="el" href="group__axutil__hash.html#gb2d7d14db2de92a101573f44421ac12a">axutil_hash_t</a> *&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__axiom__mime__parser.html#g617b19ac339bcd891757054a089c3f84">axiom_mime_parser_get_mime_parts_map</a> (axiom_mime_parser_t *mime_parser, const <a class="el" href="structaxutil__env.html">axutil_env_t</a> *env)</td></tr>

<tr><td class="memItemLeft" nowrap align="right" valign="top">AXIS2_EXTERN void&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__axiom__mime__parser.html#g0d0558064a7fca5445a4840be45b2600">axiom_mime_parser_free</a> (axiom_mime_parser_t *mime_parser, const <a class="el" href="structaxutil__env.html">axutil_env_t</a> *env)</td></tr>

<tr><td class="memItemLeft" nowrap align="right" valign="top">AXIS2_EXTERN int&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__axiom__mime__parser.html#g40a67e95af791703fa91d7b796ea89a2">axiom_mime_parser_get_soap_body_len</a> (axiom_mime_parser_t *mime_parser, const <a class="el" href="structaxutil__env.html">axutil_env_t</a> *env)</td></tr>

<tr><td class="memItemLeft" nowrap align="right" valign="top">AXIS2_EXTERN <br>
axis2_char_t *&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__axiom__mime__parser.html#g6550688f1ddcc45d11363947f441e2be">axiom_mime_parser_get_soap_body_str</a> (axiom_mime_parser_t *mime_parser, const <a class="el" href="structaxutil__env.html">axutil_env_t</a> *env)</td></tr>

<tr><td class="memItemLeft" nowrap align="right" valign="top">AXIS2_EXTERN <br>
axiom_mime_parser_t *&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__axiom__mime__parser.html#g05b3c82c78a50ffe9d1d05fffdc4c2ee">axiom_mime_parser_create</a> (const <a class="el" href="structaxutil__env.html">axutil_env_t</a> *env)</td></tr>

<tr><td class="memItemLeft" nowrap align="right" valign="top">AXIS2_EXTERN void&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__axiom__mime__parser.html#gbe1b6ea790d1a5315b0b46df54e26a2e">axiom_mime_parser_set_buffer_size</a> (axiom_mime_parser_t *mime_parser, const <a class="el" href="structaxutil__env.html">axutil_env_t</a> *env, int size)</td></tr>

<tr><td class="memItemLeft" nowrap align="right" valign="top">AXIS2_EXTERN void&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__axiom__mime__parser.html#g5673d9d89ee85532d51e16756c712e68">axiom_mime_parser_set_max_buffers</a> (axiom_mime_parser_t *mime_parser, const <a class="el" href="structaxutil__env.html">axutil_env_t</a> *env, int num)</td></tr>

<tr><td class="memItemLeft" nowrap align="right" valign="top">AXIS2_EXTERN void&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__axiom__mime__parser.html#gd8edc291c3b20e88329ee6e077ca3a0c">axiom_mime_parser_set_attachment_dir</a> (axiom_mime_parser_t *mime_parser, const <a class="el" href="structaxutil__env.html">axutil_env_t</a> *env, axis2_char_t *attachment_dir)</td></tr>

<tr><td class="memItemLeft" nowrap align="right" valign="top">AXIS2_EXTERN void&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__axiom__mime__parser.html#g6440482e9821e7bd06be17382568f9b2">axiom_mime_parser_set_caching_callback_name</a> (axiom_mime_parser_t *mime_parser, const <a class="el" href="structaxutil__env.html">axutil_env_t</a> *env, axis2_char_t *callback_name)</td></tr>

<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="g75c483098bcbb01cacff9dbfc3e41e01"></a><!-- doxytag: member="axiom_mime_parser.h::axiom_mime_parser_set_mime_boundary" ref="g75c483098bcbb01cacff9dbfc3e41e01" args="(axiom_mime_parser_t *mime_parser, const axutil_env_t *env, axis2_char_t *mime_boundary)" -->
AXIS2_EXTERN void&nbsp;</td><td class="memItemRight" valign="bottom"><b>axiom_mime_parser_set_mime_boundary</b> (axiom_mime_parser_t *mime_parser, const <a class="el" href="structaxutil__env.html">axutil_env_t</a> *env, axis2_char_t *mime_boundary)</td></tr>

<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="g08f37696836e054ba7fef00f7bf1a401"></a><!-- doxytag: member="axiom_mime_parser.h::axiom_mime_parser_get_mime_boundary" ref="g08f37696836e054ba7fef00f7bf1a401" args="(axiom_mime_parser_t *mime_parser, const axutil_env_t *env)" -->
AXIS2_EXTERN <br>
axis2_char_t *&nbsp;</td><td class="memItemRight" valign="bottom"><b>axiom_mime_parser_get_mime_boundary</b> (axiom_mime_parser_t *mime_parser, const <a class="el" href="structaxutil__env.html">axutil_env_t</a> *env)</td></tr>

</table>
<hr><a name="_details"></a><h2>Detailed Description</h2>
axis2 mime_parser interface 
<p>
<hr size="1"><address style="text-align: right;"><small>Generated on Fri Apr 17 11:49:43 2009 for Axis2/C by&nbsp;
<a href="http://www.doxygen.org/index.html">
<img src="doxygen.png" alt="doxygen" align="middle" border="0"></a> 1.5.3 </small></address>
</body>
</html>


<|start_filename|>src/core/deployment/conf_init.c<|end_filename|>
/*
 * 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.
 */

#include <axis2_conf_init.h>
#include <axis2_transport_sender.h>
#include <axis2_transport_receiver.h>
#include <axis2_const.h>
#include <axutil_error.h>
#include <axutil_allocator.h>
#include <axutil_class_loader.h>
#include <axis2_dep_engine.h>
#include <axis2_module.h>

#define DEFAULT_REPO_PATH "."

axis2_status_t AXIS2_CALL axis2_init_modules(
    const axutil_env_t * env,
    axis2_conf_ctx_t * conf_ctx);

static axis2_status_t AXIS2_CALL axis2_load_services(
    const axutil_env_t * env,
    axis2_conf_ctx_t * conf_ctx);

axis2_status_t AXIS2_CALL axis2_init_transports(
    const axutil_env_t * env,
    axis2_conf_ctx_t * conf_ctx);

AXIS2_EXTERN axis2_conf_ctx_t *AXIS2_CALL
axis2_build_conf_ctx(
    const axutil_env_t * env,
    const axis2_char_t * repo_name)
{
    axis2_conf_ctx_t *conf_ctx = NULL;
    axis2_dep_engine_t *dep_engine = NULL;
    axis2_conf_t *conf = NULL;
    axutil_property_t *property = NULL;
    axis2_ctx_t *conf_ctx_base = NULL;
    AXIS2_LOG_TRACE(env->log, AXIS2_LOG_SI, "Entry:axis2_build_conf_ctx");
    dep_engine = axis2_dep_engine_create_with_repos_name(env, repo_name);
    if (!dep_engine)
    {
        AXIS2_LOG_ERROR(env->log, AXIS2_LOG_SI, 
            "Creating deployment engine failed for repository %s", repo_name);
        return NULL;
    }

    conf = axis2_dep_engine_load(dep_engine, env);
    if (!conf)
    {
        AXIS2_LOG_ERROR(env->log, AXIS2_LOG_SI, 
            "Loading deployment engine failed for repository %s.", repo_name);
        axis2_dep_engine_free(dep_engine, env); 
        return NULL;
    }
    axis2_conf_set_dep_engine(conf, env, dep_engine);

    conf_ctx = axis2_conf_ctx_create(env, conf);
    if (!conf_ctx)
    {
        AXIS2_LOG_ERROR(env->log, AXIS2_LOG_SI, 
            "Creating Axis2 configuration context failed.");
        return NULL;
    }

    conf_ctx_base = axis2_conf_ctx_get_base(conf_ctx, env);
    property = axutil_property_create_with_args(env, 2, 0, 0, AXIS2_VALUE_TRUE);
    axis2_ctx_set_property(conf_ctx_base, env, AXIS2_IS_SVR_SIDE, property);

    axis2_init_modules(env, conf_ctx);
    axis2_load_services(env, conf_ctx);
    axis2_init_transports(env, conf_ctx);

    AXIS2_LOG_TRACE(env->log, AXIS2_LOG_SI, "Exit:axis2_build_conf_ctx");
    return conf_ctx;
}


AXIS2_EXTERN axis2_conf_ctx_t *AXIS2_CALL
axis2_build_conf_ctx_with_file(
    const axutil_env_t * env,
    const axis2_char_t * file)
{
    axis2_conf_ctx_t *conf_ctx = NULL;
    axis2_dep_engine_t *dep_engine = NULL;
    axis2_conf_t *conf = NULL;

    AXIS2_LOG_TRACE(env->log, AXIS2_LOG_SI, "Entry:axis2_build_conf_ctx_with_file");
    dep_engine = axis2_dep_engine_create_with_axis2_xml (env, file);
    if (!dep_engine)
    {
        AXIS2_LOG_ERROR(env->log, AXIS2_LOG_SI, 
            "Creating deployment engine for given Axis2 configuration file"\
            "(axis2.xml) failed");
        return NULL;
    }

    conf = axis2_dep_engine_load(dep_engine, env);

    if (!conf)
    {
        AXIS2_LOG_ERROR(env->log, AXIS2_LOG_SI, 
            "Loading deployment engine failed for given Axis2 configuration "\
            "file(axis2.xml)");
        axis2_dep_engine_free(dep_engine, env); 
        return NULL;
    }
	
    axis2_conf_set_dep_engine(conf, env, dep_engine);
	
    conf_ctx = axis2_conf_ctx_create(env, conf);
    if (!conf_ctx)
    {
        AXIS2_LOG_ERROR(env->log, AXIS2_LOG_SI, 
            "Creating Axis2 configuration context failed");
        return NULL;
    }

    axis2_init_modules(env, conf_ctx);
    axis2_load_services(env, conf_ctx);
    axis2_init_transports(env, conf_ctx);

    AXIS2_LOG_TRACE(env->log, AXIS2_LOG_SI, "Exit:axis2_build_conf_ctx_with_file");
    return conf_ctx;
}

axis2_conf_ctx_t *AXIS2_CALL
axis2_build_client_conf_ctx(
    const axutil_env_t * env,
    const axis2_char_t * axis2_home)
{
    axis2_conf_ctx_t *conf_ctx = NULL;
    axis2_dep_engine_t *dep_engine = NULL;
    axis2_conf_t *conf = NULL;
    axutil_property_t *property = NULL;
    axis2_ctx_t *conf_ctx_base = NULL;

    axis2_status_t status;
    unsigned int len = 0;

    AXIS2_LOG_TRACE(env->log, AXIS2_LOG_SI, "Entry:axis2_build_client_conf_ctx");
    /* Building conf using axis2.xml, in that case we check whether
     * last 9 characters of the axis2_home equals to the "axis2.xml"
     * else treat it as a directory 
     */

    status = axutil_file_handler_access (axis2_home, AXIS2_R_OK);
	if (status == AXIS2_SUCCESS)
	{
		len = (int)strlen (axis2_home);
        /* We are sure that the difference lies within the int range */
		if ((len >= 9) && 
            !strcmp ((axis2_home + (len - 9)), "axis2.xml"))
		{
            dep_engine = axis2_dep_engine_create_with_axis2_xml (env, 
                                                                 axis2_home);
		}
        else
        {
            dep_engine = axis2_dep_engine_create(env);
        }
	}
	else
	{
		AXIS2_LOG_WARNING (env->log, AXIS2_LOG_SI, 
            "Provided client repository path %s does not exsist or no "\
            "permission to read, therefore set axis2c home to DEFAULT_REPO_PATH.", 
            axis2_home);
		axis2_home = DEFAULT_REPO_PATH;
        dep_engine = axis2_dep_engine_create(env);
	}
    if (!dep_engine)
    {
        AXIS2_LOG_ERROR(env->log, AXIS2_LOG_SI, 
            "Creating deployment engine for client repository %s failed." ,
            axis2_home);
        return NULL;
    }
    conf = axis2_dep_engine_load_client(dep_engine, env, axis2_home);
    if (!conf)
    {
        AXIS2_LOG_ERROR(env->log, AXIS2_LOG_SI, 
            "Loading deployment engine failed for client repository %s", 
            axis2_home);
        axis2_dep_engine_free(dep_engine, env); 
        return NULL;
    }
    axis2_conf_set_dep_engine(conf, env, dep_engine);

    conf_ctx = axis2_conf_ctx_create(env, conf);
    if (!conf_ctx)
    {
        AXIS2_LOG_ERROR(env->log, AXIS2_LOG_SI, 
            "Creating Axis2 configuration context failed");
        return NULL;
    }
    conf_ctx_base = axis2_conf_ctx_get_base(conf_ctx, env);
    property = axutil_property_create_with_args(env, 2, 0, 0, AXIS2_VALUE_FALSE);
    axis2_ctx_set_property(conf_ctx_base, env, AXIS2_IS_SVR_SIDE, property);

    axis2_init_modules(env, conf_ctx);
    axis2_init_transports(env, conf_ctx);

    AXIS2_LOG_TRACE(env->log, AXIS2_LOG_SI, "Exit:axis2_build_client_conf_ctx");
    return conf_ctx;
}

axis2_status_t AXIS2_CALL
axis2_init_modules(
    const axutil_env_t * env,
    axis2_conf_ctx_t * conf_ctx)
{
    axis2_conf_t *conf = NULL;
    axis2_status_t status = AXIS2_FAILURE;

    AXIS2_LOG_TRACE(env->log, AXIS2_LOG_SI, "Entry:axis2_init_modules");
    AXIS2_PARAM_CHECK(env->error, conf_ctx, AXIS2_FAILURE);

    conf = axis2_conf_ctx_get_conf(conf_ctx, env);
    if (conf)
    {
        axutil_hash_t *module_map = axis2_conf_get_all_modules(conf, env);
        if (module_map)
        {
            axutil_hash_index_t *hi = NULL;
            void *module = NULL;
            for (hi = axutil_hash_first(module_map, env);
                 hi; hi = axutil_hash_next(env, hi))
            {
                axutil_hash_this(hi, NULL, NULL, &module);
                if (module)
                {
                    axis2_module_desc_t *mod_desc =
                        (axis2_module_desc_t *) module;
                    if (mod_desc)
                    {
                        axis2_module_t *mod =
                            axis2_module_desc_get_module(mod_desc, env);
                        if (mod)
                        {
                            axis2_module_init(mod, env, conf_ctx, mod_desc);
                        }
                    }
                }
            }
        }
        status = AXIS2_SUCCESS;
    }
    else
    {
        AXIS2_LOG_WARNING(env->log, AXIS2_LOG_SI, 
            "Retrieving Axis2 configuration from Axis2 configuration context "\
            "failed. Initializing modules failed");
    }
    AXIS2_LOG_TRACE(env->log, AXIS2_LOG_SI, "Exit:axis2_init_modules");
    return status;
}

static axis2_status_t AXIS2_CALL
axis2_load_services(
    const axutil_env_t * env,
    axis2_conf_ctx_t * conf_ctx)
{
    axis2_conf_t *conf = NULL;
    axis2_status_t status = AXIS2_FAILURE;

    AXIS2_LOG_TRACE(env->log, AXIS2_LOG_SI, "Entry:axis2_load_services");
    AXIS2_PARAM_CHECK(env->error, conf_ctx, AXIS2_FAILURE);

    conf = axis2_conf_ctx_get_conf(conf_ctx, env);
    if (conf)
    {
        axutil_hash_t *svc_map = axis2_conf_get_all_svcs_to_load(conf, env);
        if (svc_map)
        {
            axutil_hash_index_t *hi = NULL;
            void *svc = NULL;
            for (hi = axutil_hash_first(svc_map, env);
                 hi; hi = axutil_hash_next(env, hi))
            {
                axutil_hash_this(hi, NULL, NULL, &svc);
                if (svc)
                {
                    axis2_svc_t *svc_desc = (axis2_svc_t *) svc;
                    if (svc_desc)
                    {
                        axutil_param_t *impl_info_param = NULL;
                        void *impl_class = NULL;
                        const axis2_char_t *svc_name = 
                            axis2_svc_get_name(svc_desc, env);
                        impl_info_param = axis2_svc_get_param(
                            svc_desc, env,
                            AXIS2_SERVICE_CLASS);

                        if (!impl_info_param)
                        {
                            AXIS2_ERROR_SET(env->error,
                                            AXIS2_ERROR_INVALID_STATE_SVC,
                                            AXIS2_FAILURE);
                            AXIS2_LOG_ERROR(env->log, AXIS2_LOG_SI, 
                                "Invalid state of the service %s", svc_name);
                            return AXIS2_FAILURE;
                        }
                        axutil_allocator_switch_to_global_pool(env->allocator);
                        axutil_class_loader_init(env);
                        impl_class =
                            axutil_class_loader_create_dll(env,
                                                           impl_info_param);
                        if(!impl_class)
                        {
                            AXIS2_LOG_ERROR(env->log, AXIS2_LOG_SI,
                                "Service %s could not be loaded", svc_name);
                            axutil_allocator_switch_to_local_pool(env->allocator);
                            return AXIS2_FAILURE;
                        }

                        axis2_svc_set_impl_class(svc_desc, env, impl_class);
                        status = AXIS2_SVC_SKELETON_INIT_WITH_CONF(
                            (axis2_svc_skeleton_t *) impl_class, env, conf);
                        axutil_allocator_switch_to_local_pool(env->allocator);
                        if(!status)
                        {
                            AXIS2_LOG_ERROR(env->log, AXIS2_LOG_SI,
                                "Initialization failed for the service %s. "\
                                "Check the service's init_with_conf() "\
                                "function for errors and retry", svc_name);
                        }
                    }
                }
            }
        }
        status = AXIS2_SUCCESS;
    }
    else
    {
        AXIS2_LOG_WARNING(env->log, AXIS2_LOG_SI, 
            "Retrieving Axis2 configuration from Axis2 configuration context "\
            "failed, Loading services failed");
    }
    AXIS2_LOG_TRACE(env->log, AXIS2_LOG_SI, "Exit:axis2_load_services");
    return status;
}

axis2_status_t AXIS2_CALL
axis2_init_transports(
    const axutil_env_t * env,
    axis2_conf_ctx_t * conf_ctx)
{
    axis2_conf_t *conf = NULL;
    axis2_status_t status = AXIS2_FAILURE;

    AXIS2_LOG_TRACE(env->log, AXIS2_LOG_SI, "Entry:axis2_init_transports");
    AXIS2_PARAM_CHECK(env->error, conf_ctx, AXIS2_FAILURE);

    conf = axis2_conf_ctx_get_conf(conf_ctx, env);
    if (conf)
    {
        axis2_transport_in_desc_t **transport_in_map = NULL;
        axis2_transport_out_desc_t **transport_out_map = NULL;
        int i = 0;

        transport_in_map = axis2_conf_get_all_in_transports(conf, env);
        for (i = 0; i < AXIS2_TRANSPORT_ENUM_MAX; i++)
        {
            if (transport_in_map[i])
            {
                axis2_transport_receiver_t *listener =
                    axis2_transport_in_desc_get_recv(transport_in_map[i], env);
                if (listener)
                {
                    status =
                        axis2_transport_receiver_init(listener, env, conf_ctx,
                                                      transport_in_map[i]);
                }

            }
        }

        transport_out_map = axis2_conf_get_all_out_transports(conf, env);
        for (i = 0; i < AXIS2_TRANSPORT_ENUM_MAX; i++)
        {
            if (transport_out_map[i])
            {
                axis2_transport_sender_t *sender =
                    axis2_transport_out_desc_get_sender(transport_out_map[i],
                                                        env);
                if (sender)
                {
                    status = AXIS2_TRANSPORT_SENDER_INIT(sender, env, conf_ctx,
                                                         transport_out_map[i]);
                }

            }
        }
        status = AXIS2_SUCCESS;
    }
    else
    {
        AXIS2_LOG_WARNING(env->log, AXIS2_LOG_SI, 
            "Retrieving Axis2 configuration from Axis2 configuration context "\
            "failed. Initializing transports failed");
    }
    AXIS2_LOG_TRACE(env->log, AXIS2_LOG_SI, "Exit:axis2_init_transports");
    return status;
}



<|start_filename|>xdocs/api/html/group__axis2__transport__sender.html<|end_filename|>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html><head><meta http-equiv="Content-Type" content="text/html;charset=UTF-8">
<title>Axis2/C: transport sender</title>
<link href="doxygen.css" rel="stylesheet" type="text/css">
<link href="tabs.css" rel="stylesheet" type="text/css">
</head><body>
<!-- Generated by Doxygen 1.5.3 -->
<div class="tabs">
  <ul>
    <li><a href="index.html"><span>Main&nbsp;Page</span></a></li>
    <li><a href="modules.html"><span>Modules</span></a></li>
    <li><a href="annotated.html"><span>Classes</span></a></li>
    <li><a href="files.html"><span>Files</span></a></li>
    <li><a href="dirs.html"><span>Directories</span></a></li>
    <li><a href="pages.html"><span>Related&nbsp;Pages</span></a></li>
    <li><a href="examples.html"><span>Examples</span></a></li>
    <li>
      <form action="search.php" method="get">
        <table cellspacing="0" cellpadding="0" border="0">
          <tr>
            <td><label>&nbsp;<u>S</u>earch&nbsp;for&nbsp;</label></td>
            <td><input type="text" name="query" value="" size="20" accesskey="s"/></td>
          </tr>
        </table>
      </form>
    </li>
  </ul>
</div>
<h1>transport sender<br>
<small>
[<a class="el" href="group__axis2__transport.html">transport</a>]</small>
</h1><table border="0" cellpadding="0" cellspacing="0">
<tr><td></td></tr>
<tr><td colspan="2"><br><h2>Files</h2></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top">file &nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="axis2__transport__sender_8h.html">axis2_transport_sender.h</a></td></tr>

<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Axis2 description transport sender interface. <br></td></tr>

<p>
<tr><td colspan="2"><br><h2>Classes</h2></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top">struct &nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="structaxis2__transport__sender__ops.html">axis2_transport_sender_ops</a></td></tr>

<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Description Transport Sender ops struct Encapsulator struct for ops of <a class="el" href="structaxis2__transport__sender.html">axis2_transport_sender</a>.  <a href="structaxis2__transport__sender__ops.html#_details">More...</a><br></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top">struct &nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="structaxis2__transport__sender.html">axis2_transport_sender</a></td></tr>

<tr><td colspan="2"><br><h2>Defines</h2></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top">#define&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__axis2__transport__sender.html#g29ff197d35f12f1185e0306078a901a9">AXIS2_TRANSPORT_SENDER_FREE</a>(transport_sender, env)&nbsp;&nbsp;&nbsp;((transport_sender-&gt;ops)-&gt;free (transport_sender, env))</td></tr>

<tr><td class="memItemLeft" nowrap align="right" valign="top">#define&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__axis2__transport__sender.html#g1e3ea665c5968395b11d116c869bb409">AXIS2_TRANSPORT_SENDER_INIT</a>(transport_sender, env, conf_context, transport_out)&nbsp;&nbsp;&nbsp;((transport_sender-&gt;ops)-&gt;init (transport_sender, env, conf_context, transport_out))</td></tr>

<tr><td class="memItemLeft" nowrap align="right" valign="top">#define&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__axis2__transport__sender.html#gbe928f1aa5166c508c6579e5289ee0e0">AXIS2_TRANSPORT_SENDER_INVOKE</a>(transport_sender, env, msg_ctx)&nbsp;&nbsp;&nbsp;((transport_sender-&gt;ops)-&gt;invoke (transport_sender, env, msg_ctx))</td></tr>

<tr><td class="memItemLeft" nowrap align="right" valign="top">#define&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__axis2__transport__sender.html#gaa44d10358d3bfa8bf299fd33d1674ba">AXIS2_TRANSPORT_SENDER_CLEANUP</a>(transport_sender, env, msg_ctx)&nbsp;&nbsp;&nbsp;((transport_sender-&gt;ops)-&gt;cleanup (transport_sender, env, msg_ctx))</td></tr>

<tr><td colspan="2"><br><h2>Typedefs</h2></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top">typedef struct <br>
<a class="el" href="structaxis2__transport__sender.html">axis2_transport_sender</a>&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__axis2__transport__sender.html#gaec2671b224403aa77de843348bb7711">axis2_transport_sender_t</a></td></tr>

<tr><td class="memItemLeft" nowrap align="right" valign="top">typedef struct <br>
<a class="el" href="structaxis2__transport__sender__ops.html">axis2_transport_sender_ops</a>&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__axis2__transport__sender.html#ga6fa9ad0eb8d6d93e6549a0517d8ac73">axis2_transport_sender_ops_t</a></td></tr>

<tr><td colspan="2"><br><h2>Functions</h2></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top">AXIS2_EXTERN <br>
<a class="el" href="structaxis2__transport__sender.html">axis2_transport_sender_t</a> *&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__axis2__transport__sender.html#gd6e69829fc6298d56fe3bf89c523949b">axis2_transport_sender_create</a> (const <a class="el" href="structaxutil__env.html">axutil_env_t</a> *env)</td></tr>

</table>
<hr><a name="_details"></a><h2>Detailed Description</h2>
Description <hr><h2>Define Documentation</h2>
<a class="anchor" name="gaa44d10358d3bfa8bf299fd33d1674ba"></a><!-- doxytag: member="axis2_transport_sender.h::AXIS2_TRANSPORT_SENDER_CLEANUP" ref="gaa44d10358d3bfa8bf299fd33d1674ba" args="(transport_sender, env, msg_ctx)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">#define AXIS2_TRANSPORT_SENDER_CLEANUP          </td>
          <td>(</td>
          <td class="paramtype">transport_sender,         <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">env,         <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">msg_ctx&nbsp;</td>
          <td class="paramname">          </td>
          <td>&nbsp;)&nbsp;</td>
          <td width="100%">&nbsp;&nbsp;&nbsp;((transport_sender-&gt;ops)-&gt;cleanup (transport_sender, env, msg_ctx))</td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
Cleanup. <dl class="see" compact><dt><b>See also:</b></dt><dd><a class="el" href="structaxis2__transport__sender__ops.html#b7fde0f17733c4e7ae6a001f98e56863">axis2_transport_sender_ops::cleanup</a> </dd></dl>

</div>
</div><p>
<a class="anchor" name="g29ff197d35f12f1185e0306078a901a9"></a><!-- doxytag: member="axis2_transport_sender.h::AXIS2_TRANSPORT_SENDER_FREE" ref="g29ff197d35f12f1185e0306078a901a9" args="(transport_sender, env)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">#define AXIS2_TRANSPORT_SENDER_FREE          </td>
          <td>(</td>
          <td class="paramtype">transport_sender,         <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">env&nbsp;</td>
          <td class="paramname">          </td>
          <td>&nbsp;)&nbsp;</td>
          <td width="100%">&nbsp;&nbsp;&nbsp;((transport_sender-&gt;ops)-&gt;free (transport_sender, env))</td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
Frees the axis2 transport sender. <dl class="see" compact><dt><b>See also:</b></dt><dd><a class="el" href="structaxis2__transport__sender__ops.html#70fe1ffdfc05599bb5852c70882bd63a">axis2_transport_sender_ops::free</a> </dd></dl>

</div>
</div><p>
<a class="anchor" name="g1e3ea665c5968395b11d116c869bb409"></a><!-- doxytag: member="axis2_transport_sender.h::AXIS2_TRANSPORT_SENDER_INIT" ref="g1e3ea665c5968395b11d116c869bb409" args="(transport_sender, env, conf_context, transport_out)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">#define AXIS2_TRANSPORT_SENDER_INIT          </td>
          <td>(</td>
          <td class="paramtype">transport_sender,         <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">env,         <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">conf_context,         <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">transport_out&nbsp;</td>
          <td class="paramname">          </td>
          <td>&nbsp;)&nbsp;</td>
          <td width="100%">&nbsp;&nbsp;&nbsp;((transport_sender-&gt;ops)-&gt;init (transport_sender, env, conf_context, transport_out))</td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
Initialize the axis2 transport sender. <dl class="see" compact><dt><b>See also:</b></dt><dd><a class="el" href="structaxis2__transport__sender__ops.html#21532f7b79a45af83a0daf97ccc9130c">axis2_transport_sender_ops::init</a> </dd></dl>

</div>
</div><p>
<a class="anchor" name="gbe928f1aa5166c508c6579e5289ee0e0"></a><!-- doxytag: member="axis2_transport_sender.h::AXIS2_TRANSPORT_SENDER_INVOKE" ref="gbe928f1aa5166c508c6579e5289ee0e0" args="(transport_sender, env, msg_ctx)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">#define AXIS2_TRANSPORT_SENDER_INVOKE          </td>
          <td>(</td>
          <td class="paramtype">transport_sender,         <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">env,         <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">msg_ctx&nbsp;</td>
          <td class="paramname">          </td>
          <td>&nbsp;)&nbsp;</td>
          <td width="100%">&nbsp;&nbsp;&nbsp;((transport_sender-&gt;ops)-&gt;invoke (transport_sender, env, msg_ctx))</td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
Invoke. <dl class="see" compact><dt><b>See also:</b></dt><dd><a class="el" href="structaxis2__transport__sender__ops.html#4505f960f783bc86aa9e44b7a45d0a02">axis2_transport_sender_ops::invoke</a> </dd></dl>

</div>
</div><p>
<hr><h2>Typedef Documentation</h2>
<a class="anchor" name="ga6fa9ad0eb8d6d93e6549a0517d8ac73"></a><!-- doxytag: member="axis2_transport_sender.h::axis2_transport_sender_ops_t" ref="ga6fa9ad0eb8d6d93e6549a0517d8ac73" args="" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">typedef struct <a class="el" href="structaxis2__transport__sender__ops.html">axis2_transport_sender_ops</a> <a class="el" href="structaxis2__transport__sender__ops.html">axis2_transport_sender_ops_t</a>          </td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
Type name for struct <a class="el" href="structaxis2__transport__sender__ops.html" title="Description Transport Sender ops struct Encapsulator struct for ops of axis2_transport_sender...">axis2_transport_sender_ops</a> 
</div>
</div><p>
<a class="anchor" name="gaec2671b224403aa77de843348bb7711"></a><!-- doxytag: member="axis2_transport_sender.h::axis2_transport_sender_t" ref="gaec2671b224403aa77de843348bb7711" args="" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">typedef struct <a class="el" href="structaxis2__transport__sender.html">axis2_transport_sender</a> <a class="el" href="structaxis2__transport__sender.html">axis2_transport_sender_t</a>          </td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
Type name for struct <a class="el" href="structaxis2__transport__sender.html">axis2_transport_sender</a> 
</div>
</div><p>
<hr><h2>Function Documentation</h2>
<a class="anchor" name="gd6e69829fc6298d56fe3bf89c523949b"></a><!-- doxytag: member="axis2_transport_sender.h::axis2_transport_sender_create" ref="gd6e69829fc6298d56fe3bf89c523949b" args="(const axutil_env_t *env)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">AXIS2_EXTERN <a class="el" href="structaxis2__transport__sender.html">axis2_transport_sender_t</a>* axis2_transport_sender_create           </td>
          <td>(</td>
          <td class="paramtype">const <a class="el" href="structaxutil__env.html">axutil_env_t</a> *&nbsp;</td>
          <td class="paramname"> <em>env</em>          </td>
          <td>&nbsp;)&nbsp;</td>
          <td width="100%"></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
Creates phase holder struct <dl compact><dt><b>Parameters:</b></dt><dd>
  <table border="0" cellspacing="2" cellpadding="0">
    <tr><td valign="top"></td><td valign="top"><em>env</em>&nbsp;</td><td>pointer to environment struct </td></tr>
  </table>
</dl>
<dl class="return" compact><dt><b>Returns:</b></dt><dd>pointer to newly created transport sender </dd></dl>

</div>
</div><p>
<hr size="1"><address style="text-align: right;"><small>Generated on Fri Apr 17 11:49:45 2009 for Axis2/C by&nbsp;
<a href="http://www.doxygen.org/index.html">
<img src="doxygen.png" alt="doxygen" align="middle" border="0"></a> 1.5.3 </small></address>
</body>
</html>


<|start_filename|>xdocs/api/html/annotated.html<|end_filename|>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html><head><meta http-equiv="Content-Type" content="text/html;charset=UTF-8">
<title>Axis2/C: Class List</title>
<link href="doxygen.css" rel="stylesheet" type="text/css">
<link href="tabs.css" rel="stylesheet" type="text/css">
</head><body>
<!-- Generated by Doxygen 1.5.3 -->
<div class="tabs">
  <ul>
    <li><a href="index.html"><span>Main&nbsp;Page</span></a></li>
    <li><a href="modules.html"><span>Modules</span></a></li>
    <li class="current"><a href="annotated.html"><span>Classes</span></a></li>
    <li><a href="files.html"><span>Files</span></a></li>
    <li><a href="dirs.html"><span>Directories</span></a></li>
    <li><a href="pages.html"><span>Related&nbsp;Pages</span></a></li>
    <li><a href="examples.html"><span>Examples</span></a></li>
    <li>
      <form action="search.php" method="get">
        <table cellspacing="0" cellpadding="0" border="0">
          <tr>
            <td><label>&nbsp;<u>S</u>earch&nbsp;for&nbsp;</label></td>
            <td><input type="text" name="query" value="" size="20" accesskey="s"/></td>
          </tr>
        </table>
      </form>
    </li>
  </ul>
</div>
<div class="tabs">
  <ul>
    <li class="current"><a href="annotated.html"><span>Class&nbsp;List</span></a></li>
    <li><a href="functions.html"><span>Class&nbsp;Members</span></a></li>
  </ul>
</div>
<h1>Axis2/C Class List</h1>Here are the classes, structs, unions and interfaces with brief descriptions:<table>
  <tr><td class="indexkey"><a class="el" href="structaxiom__mtom__caching__callback__ops.html">axiom_mtom_caching_callback_ops</a></td><td class="indexvalue"></td></tr>
  <tr><td class="indexkey"><a class="el" href="structaxiom__mtom__sending__callback__ops.html">axiom_mtom_sending_callback_ops</a></td><td class="indexvalue"></td></tr>
  <tr><td class="indexkey"><a class="el" href="structaxiom__xml__reader.html">axiom_xml_reader</a></td><td class="indexvalue">Axiom_xml_reader struct Axis2 OM pull_parser </td></tr>
  <tr><td class="indexkey"><a class="el" href="structaxiom__xml__reader__ops.html">axiom_xml_reader_ops</a></td><td class="indexvalue">AXIOM_XML_READER ops Encapsulator struct for ops of <a class="el" href="structaxiom__xml__reader.html" title="axiom_xml_reader struct Axis2 OM pull_parser">axiom_xml_reader</a> </td></tr>
  <tr><td class="indexkey"><a class="el" href="structaxiom__xml__writer.html">axiom_xml_writer</a></td><td class="indexvalue">Axis2_pull_parser struct Axis2 OM pull_parser </td></tr>
  <tr><td class="indexkey"><a class="el" href="structaxiom__xml__writer__ops.html">axiom_xml_writer_ops</a></td><td class="indexvalue">Axiom_xml_writer ops Encapsulator struct for ops of <a class="el" href="structaxiom__xml__writer.html" title="axis2_pull_parser struct Axis2 OM pull_parser">axiom_xml_writer</a> </td></tr>
  <tr><td class="indexkey"><a class="el" href="structaxiom__xpath__context.html">axiom_xpath_context</a></td><td class="indexvalue"></td></tr>
  <tr><td class="indexkey"><a class="el" href="structaxiom__xpath__expression.html">axiom_xpath_expression</a></td><td class="indexvalue"></td></tr>
  <tr><td class="indexkey"><a class="el" href="structaxiom__xpath__result.html">axiom_xpath_result</a></td><td class="indexvalue"></td></tr>
  <tr><td class="indexkey"><a class="el" href="structaxiom__xpath__result__node.html">axiom_xpath_result_node</a></td><td class="indexvalue"></td></tr>
  <tr><td class="indexkey"><a class="el" href="structaxis2__module.html">axis2_module</a></td><td class="indexvalue"></td></tr>
  <tr><td class="indexkey"><a class="el" href="structaxis2__module__ops.html">axis2_module_ops</a></td><td class="indexvalue"></td></tr>
  <tr><td class="indexkey"><a class="el" href="structaxis2__svc__skeleton.html">axis2_svc_skeleton</a></td><td class="indexvalue"></td></tr>
  <tr><td class="indexkey"><a class="el" href="structaxis2__svc__skeleton__ops.html">axis2_svc_skeleton_ops</a></td><td class="indexvalue"></td></tr>
  <tr><td class="indexkey"><a class="el" href="structaxis2__transport__receiver.html">axis2_transport_receiver</a></td><td class="indexvalue">Transport Reciever struct </td></tr>
  <tr><td class="indexkey"><a class="el" href="structaxis2__transport__receiver__ops.html">axis2_transport_receiver_ops</a></td><td class="indexvalue">Description Transport Receiver ops struct Encapsulator struct for ops of <a class="el" href="structaxis2__transport__receiver.html" title="Transport Reciever struct.">axis2_transport_receiver</a> </td></tr>
  <tr><td class="indexkey"><a class="el" href="structaxis2__transport__sender.html">axis2_transport_sender</a></td><td class="indexvalue"></td></tr>
  <tr><td class="indexkey"><a class="el" href="structaxis2__transport__sender__ops.html">axis2_transport_sender_ops</a></td><td class="indexvalue">Description Transport Sender ops struct Encapsulator struct for ops of <a class="el" href="structaxis2__transport__sender.html">axis2_transport_sender</a> </td></tr>
  <tr><td class="indexkey"><a class="el" href="structaxis2__version__t.html">axis2_version_t</a></td><td class="indexvalue"></td></tr>
  <tr><td class="indexkey"><a class="el" href="structaxutil__allocator.html">axutil_allocator</a></td><td class="indexvalue">Axis2 memory allocator </td></tr>
  <tr><td class="indexkey"><a class="el" href="structaxutil__env.html">axutil_env</a></td><td class="indexvalue">Axis2 Environment struct </td></tr>
  <tr><td class="indexkey"><a class="el" href="structaxutil__error.html">axutil_error</a></td><td class="indexvalue"></td></tr>
  <tr><td class="indexkey"><a class="el" href="structaxutil__log.html">axutil_log</a></td><td class="indexvalue">Axis2 Log struct </td></tr>
  <tr><td class="indexkey"><a class="el" href="structaxutil__log__ops.html">axutil_log_ops</a></td><td class="indexvalue">Axis2 log ops struct </td></tr>
  <tr><td class="indexkey"><a class="el" href="structentry__s.html">entry_s</a></td><td class="indexvalue"></td></tr>
</table>
<hr size="1"><address style="text-align: right;"><small>Generated on Fri Apr 17 11:49:47 2009 for Axis2/C by&nbsp;
<a href="http://www.doxygen.org/index.html">
<img src="doxygen.png" alt="doxygen" align="middle" border="0"></a> 1.5.3 </small></address>
</body>
</html>


<|start_filename|>samples/client/amqp/echo/echo_blocking.c<|end_filename|>

/*
 * 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.
 */

#include "echo_util.h"
#include <axis2_util.h>
#include <axiom_soap.h>
#include <axis2_client.h>

int
main (int argc, char **argv)
{
    const axutil_env_t* env = NULL;
    const axis2_char_t* address = NULL;
    axis2_endpoint_ref_t* endpoint_ref = NULL;
    axis2_options_t* options = NULL;
    const axis2_char_t* client_home = NULL;
    axis2_svc_client_t* svc_client = NULL;
    axiom_node_t* payload = NULL;
    axiom_node_t* ret_node = NULL;

    /* Set up the environment */
    env = axutil_env_create_all ("echo_blocking_amqp.log", AXIS2_LOG_LEVEL_TRACE);

    /* Set end point reference of echo service */
    address = "amqp://localhost:5672/axis2/services/echo";
    if (argc > 1)
        address = argv[1];

    if (axutil_strcmp (address, "-h") == 0)
    {
        printf ("Usage : %s [endpoint_url]\n", argv[0]);
        printf ("use -h for help\n");

        return 0;
    }

    printf ("Using endpoint : %s\n", address);

    /* Create EPR with given address */
    endpoint_ref = axis2_endpoint_ref_create (env, address);

    /* Setup options */
    options = axis2_options_create (env);
    axis2_options_set_to (options, env, endpoint_ref);

    /* Set up deploy folder */
    client_home = AXIS2_GETENV ("AXIS2C_HOME");
    if (!client_home || !strcmp (client_home, ""))
        client_home = "../..";

    /* Create service client */
    svc_client = axis2_svc_client_create (env, client_home);
    if (!svc_client)
    {
        printf ("Error creating service client, Please check AXIS2C_HOME again\n");
        AXIS2_LOG_ERROR (env->log, AXIS2_LOG_SI,
                         "Stub invoke FAILED: Error code:" " %d :: %s",
                         env->error->error_number,
                         AXIS2_ERROR_GET_MESSAGE (env->error));
        return -1;
    }

    /* Set service client options */
    axis2_svc_client_set_options (svc_client, env, options);

    /* Build the SOAP request message payload using OM API. */
    payload = build_om_payload_for_echo_svc (env);

    /* Send request and get response */
    ret_node = axis2_svc_client_send_receive (svc_client, env, payload);

    if (ret_node)
    {
        axis2_char_t *om_str = NULL;
        om_str = axiom_node_to_string (ret_node, env);
        if (om_str)
        {
            printf ("\nReceived OM : %s\n", om_str);
            AXIS2_FREE (env->allocator, om_str);
        }

        printf ("\necho client invoke SUCCESSFUL!\n");
    }
    else
    {
        AXIS2_LOG_ERROR (env->log, AXIS2_LOG_SI,
                         "Stub invoke FAILED: Error code:" " %d :: %s",
                         env->error->error_number,
                         AXIS2_ERROR_GET_MESSAGE (env->error));

        printf ("echo client invoke FAILED!\n");
    }

    if (svc_client)
    {
        axis2_svc_client_free (svc_client, env);
        svc_client = NULL;
    }

    if (env)
    {
        axutil_env_free ((axutil_env_t*)env);
        env = NULL;
    }

    return 0;
}




<|start_filename|>xdocs/api/html/group__represent.html<|end_filename|>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html><head><meta http-equiv="Content-Type" content="text/html;charset=UTF-8">
<title>Axis2/C: entry of tcpmon</title>
<link href="doxygen.css" rel="stylesheet" type="text/css">
<link href="tabs.css" rel="stylesheet" type="text/css">
</head><body>
<!-- Generated by Doxygen 1.5.3 -->
<div class="tabs">
  <ul>
    <li><a href="index.html"><span>Main&nbsp;Page</span></a></li>
    <li><a href="modules.html"><span>Modules</span></a></li>
    <li><a href="annotated.html"><span>Classes</span></a></li>
    <li><a href="files.html"><span>Files</span></a></li>
    <li><a href="dirs.html"><span>Directories</span></a></li>
    <li><a href="pages.html"><span>Related&nbsp;Pages</span></a></li>
    <li><a href="examples.html"><span>Examples</span></a></li>
    <li>
      <form action="search.php" method="get">
        <table cellspacing="0" cellpadding="0" border="0">
          <tr>
            <td><label>&nbsp;<u>S</u>earch&nbsp;for&nbsp;</label></td>
            <td><input type="text" name="query" value="" size="20" accesskey="s"/></td>
          </tr>
        </table>
      </form>
    </li>
  </ul>
</div>
<h1>entry of tcpmon</h1><table border="0" cellpadding="0" cellspacing="0">
<tr><td></td></tr>
<tr><td colspan="2"><br><h2>Classes</h2></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top">struct &nbsp;</td><td class="memItemRight" valign="bottom"><b>tcpmon_entry_ops</b></td></tr>

<tr><td class="memItemLeft" nowrap align="right" valign="top">struct &nbsp;</td><td class="memItemRight" valign="bottom"><b>tcpmon_entry</b></td></tr>

<tr><td class="memItemLeft" nowrap align="right" valign="top">struct &nbsp;</td><td class="memItemRight" valign="bottom"><b>tcpmon_session_ops</b></td></tr>

<tr><td class="memItemLeft" nowrap align="right" valign="top">struct &nbsp;</td><td class="memItemRight" valign="bottom"><b>tcpmon_session</b></td></tr>

<tr><td colspan="2"><br><h2>Defines</h2></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="g8f946f456889a0cfa8ef36cd7a0d5e79"></a><!-- doxytag: member="represent::TCPMON_ENTRY_FREE" ref="g8f946f456889a0cfa8ef36cd7a0d5e79" args="(entry, env)" -->
#define&nbsp;</td><td class="memItemRight" valign="bottom"><b>TCPMON_ENTRY_FREE</b>(entry, env)&nbsp;&nbsp;&nbsp;((entry)-&gt;ops-&gt;free (entry, env))</td></tr>

<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="g85e55c7bdd580eb19c95ad3cf36a0f3d"></a><!-- doxytag: member="represent::TCPMON_ENTRY_ARRIVED_TIME" ref="g85e55c7bdd580eb19c95ad3cf36a0f3d" args="(entry, env)" -->
#define&nbsp;</td><td class="memItemRight" valign="bottom"><b>TCPMON_ENTRY_ARRIVED_TIME</b>(entry, env)&nbsp;&nbsp;&nbsp;((entry)-&gt;ops-&gt;arrived_time(entry, env))</td></tr>

<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="g472eba05b58a8343328db724c4343771"></a><!-- doxytag: member="represent::TCPMON_ENTRY_SENT_TIME" ref="g472eba05b58a8343328db724c4343771" args="(entry, env)" -->
#define&nbsp;</td><td class="memItemRight" valign="bottom"><b>TCPMON_ENTRY_SENT_TIME</b>(entry, env)&nbsp;&nbsp;&nbsp;((entry)-&gt;ops-&gt;sent_time(entry, env))</td></tr>

<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="g96791528bb8f23774937118d5ea36bc4"></a><!-- doxytag: member="represent::TCPMON_ENTRY_TIME_DIFF" ref="g96791528bb8f23774937118d5ea36bc4" args="(entry, env)" -->
#define&nbsp;</td><td class="memItemRight" valign="bottom"><b>TCPMON_ENTRY_TIME_DIFF</b>(entry, env)&nbsp;&nbsp;&nbsp;((entry)-&gt;ops-&gt;time_diff(entry, env))</td></tr>

<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="g0d750438830bfb8e6b809adf31de26f7"></a><!-- doxytag: member="represent::TCPMON_ENTRY_SENT_DATA" ref="g0d750438830bfb8e6b809adf31de26f7" args="(entry, env)" -->
#define&nbsp;</td><td class="memItemRight" valign="bottom"><b>TCPMON_ENTRY_SENT_DATA</b>(entry, env)&nbsp;&nbsp;&nbsp;((entry)-&gt;ops-&gt;sent_data(entry, env))</td></tr>

<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="g0ae88f0cdae9253d62a8f2a904a7ec9d"></a><!-- doxytag: member="represent::TCPMON_ENTRY_ARRIVED_DATA" ref="g0ae88f0cdae9253d62a8f2a904a7ec9d" args="(entry, env)" -->
#define&nbsp;</td><td class="memItemRight" valign="bottom"><b>TCPMON_ENTRY_ARRIVED_DATA</b>(entry, env)&nbsp;&nbsp;&nbsp;((entry)-&gt;ops-&gt;arrived_data(entry, env))</td></tr>

<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="g478c4b3e0587e9789b3c5d4e3517ce21"></a><!-- doxytag: member="represent::TCPMON_ENTRY_SENT_HEADERS" ref="g478c4b3e0587e9789b3c5d4e3517ce21" args="(entry, env)" -->
#define&nbsp;</td><td class="memItemRight" valign="bottom"><b>TCPMON_ENTRY_SENT_HEADERS</b>(entry, env)&nbsp;&nbsp;&nbsp;((entry)-&gt;ops-&gt;sent_headers(entry, env))</td></tr>

<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="g38ffce98e6fe2944dd297367e5b382bb"></a><!-- doxytag: member="represent::TCPMON_ENTRY_ARRIVED_HEADERS" ref="g38ffce98e6fe2944dd297367e5b382bb" args="(entry, env)" -->
#define&nbsp;</td><td class="memItemRight" valign="bottom"><b>TCPMON_ENTRY_ARRIVED_HEADERS</b>(entry, env)&nbsp;&nbsp;&nbsp;((entry)-&gt;ops-&gt;arrived_headers(entry, env))</td></tr>

<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="gded3b1d2ddc9588945ae2ab1db754de9"></a><!-- doxytag: member="represent::TCPMON_ENTRY_IS_SUCCESS" ref="gded3b1d2ddc9588945ae2ab1db754de9" args="(entry, env)" -->
#define&nbsp;</td><td class="memItemRight" valign="bottom"><b>TCPMON_ENTRY_IS_SUCCESS</b>(entry, env)&nbsp;&nbsp;&nbsp;((entry)-&gt;ops-&gt;is_success(entry, env))</td></tr>

<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="g7347e6a40a8ba168b5b7f1eb5a154fcd"></a><!-- doxytag: member="represent::TCPMON_ENTRY_SET_FORMAT_BIT" ref="g7347e6a40a8ba168b5b7f1eb5a154fcd" args="(entry, env, format_bit)" -->
#define&nbsp;</td><td class="memItemRight" valign="bottom"><b>TCPMON_ENTRY_SET_FORMAT_BIT</b>(entry, env, format_bit)&nbsp;&nbsp;&nbsp;((entry)-&gt;ops-&gt;set_format_bit(entry, env, format_bit))</td></tr>

<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="g32516f24007756f76f6b4396edc8fe32"></a><!-- doxytag: member="represent::TCPMON_ENTRY_GET_FORMAT_BIT" ref="g32516f24007756f76f6b4396edc8fe32" args="(entry, env)" -->
#define&nbsp;</td><td class="memItemRight" valign="bottom"><b>TCPMON_ENTRY_GET_FORMAT_BIT</b>(entry, env)&nbsp;&nbsp;&nbsp;((entry)-&gt;ops-&gt;get_format_bit(entry, env))</td></tr>

<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="g74dfcc02df3951b3248da81cf84b6376"></a><!-- doxytag: member="represent::TCPMON_ENTRY_GET_SENT_DATA_LENGTH" ref="g74dfcc02df3951b3248da81cf84b6376" args="(entry, env)" -->
#define&nbsp;</td><td class="memItemRight" valign="bottom"><b>TCPMON_ENTRY_GET_SENT_DATA_LENGTH</b>(entry, env)&nbsp;&nbsp;&nbsp;((entry)-&gt;ops-&gt;get_sent_data_length(entry, env))</td></tr>

<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="g173e741a10323add6d76f0d0d09c2989"></a><!-- doxytag: member="represent::TCPMON_ENTRY_GET_ARRIVED_DATA_LENGTH" ref="g173e741a10323add6d76f0d0d09c2989" args="(entry, env)" -->
#define&nbsp;</td><td class="memItemRight" valign="bottom"><b>TCPMON_ENTRY_GET_ARRIVED_DATA_LENGTH</b>(entry, env)&nbsp;&nbsp;&nbsp;((entry)-&gt;ops-&gt;get_arrived_data_length(entry, env))</td></tr>

<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="g0c476788b287f0d9000d9150ef181156"></a><!-- doxytag: member="represent::TCPMON_SESSION_FREE" ref="g0c476788b287f0d9000d9150ef181156" args="(session, env)" -->
#define&nbsp;</td><td class="memItemRight" valign="bottom"><b>TCPMON_SESSION_FREE</b>(session, env)&nbsp;&nbsp;&nbsp;((session)-&gt;ops-&gt;free (session, env))</td></tr>

<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="gb9b4fadfd67ca53bee3c9db4dfd52cca"></a><!-- doxytag: member="represent::TCPMON_SESSION_SET_TEST_BIT" ref="gb9b4fadfd67ca53bee3c9db4dfd52cca" args="(session, env, test_bit)" -->
#define&nbsp;</td><td class="memItemRight" valign="bottom"><b>TCPMON_SESSION_SET_TEST_BIT</b>(session, env, test_bit)&nbsp;&nbsp;&nbsp;((session)-&gt;ops-&gt;set_test_bit(session, env, test_bit))</td></tr>

<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="g68fa6f26ac75e788317b898e36a67b49"></a><!-- doxytag: member="represent::TCPMON_SESSION_GET_TEST_BIT" ref="g68fa6f26ac75e788317b898e36a67b49" args="(session, env)" -->
#define&nbsp;</td><td class="memItemRight" valign="bottom"><b>TCPMON_SESSION_GET_TEST_BIT</b>(session, env)&nbsp;&nbsp;&nbsp;((session)-&gt;ops-&gt;get_test_bit(session, env))</td></tr>

<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="gdd34c1cad931becd7928bca91ca18f7a"></a><!-- doxytag: member="represent::TCPMON_SESSION_SET_FORMAT_BIT" ref="gdd34c1cad931becd7928bca91ca18f7a" args="(session, env, format_bit)" -->
#define&nbsp;</td><td class="memItemRight" valign="bottom"><b>TCPMON_SESSION_SET_FORMAT_BIT</b>(session, env, format_bit)&nbsp;&nbsp;&nbsp;((session)-&gt;ops-&gt;set_format_bit(session, env, format_bit))</td></tr>

<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="g8a9e0069f72df9b691b255e535728793"></a><!-- doxytag: member="represent::TCPMON_SESSION_GET_FORMAT_BIT" ref="g8a9e0069f72df9b691b255e535728793" args="(session, env)" -->
#define&nbsp;</td><td class="memItemRight" valign="bottom"><b>TCPMON_SESSION_GET_FORMAT_BIT</b>(session, env)&nbsp;&nbsp;&nbsp;((session)-&gt;ops-&gt;get_format_bit(session, env))</td></tr>

<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="g9303031eb7db2d3c51ec5585870028f5"></a><!-- doxytag: member="represent::TCPMON_SESSION_SET_LISTEN_PORT" ref="g9303031eb7db2d3c51ec5585870028f5" args="(session, env, listen_port)" -->
#define&nbsp;</td><td class="memItemRight" valign="bottom"><b>TCPMON_SESSION_SET_LISTEN_PORT</b>(session, env, listen_port)&nbsp;&nbsp;&nbsp;((session)-&gt;ops-&gt;set_listen_port(session, env, listen_port))</td></tr>

<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="g3c18d777c7563cc3707d653aec18bcfb"></a><!-- doxytag: member="represent::TCPMON_SESSION_GET_LISTEN_PORT" ref="g3c18d777c7563cc3707d653aec18bcfb" args="(session, env)" -->
#define&nbsp;</td><td class="memItemRight" valign="bottom"><b>TCPMON_SESSION_GET_LISTEN_PORT</b>(session, env)&nbsp;&nbsp;&nbsp;((session)-&gt;ops-&gt;get_listen_port(session, env))</td></tr>

<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="ge1995d7c5a59dca8d6d8c33b6ebd8609"></a><!-- doxytag: member="represent::TCPMON_SESSION_SET_TARGET_PORT" ref="ge1995d7c5a59dca8d6d8c33b6ebd8609" args="(session, env, target_port)" -->
#define&nbsp;</td><td class="memItemRight" valign="bottom"><b>TCPMON_SESSION_SET_TARGET_PORT</b>(session, env, target_port)&nbsp;&nbsp;&nbsp;((session)-&gt;ops-&gt;set_target_port(session, env, target_port))</td></tr>

<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="g244f533f694b1a20d6978fd87ef6dc51"></a><!-- doxytag: member="represent::TCPMON_SESSION_GET_TARGET_PORT" ref="g244f533f694b1a20d6978fd87ef6dc51" args="(session, env)" -->
#define&nbsp;</td><td class="memItemRight" valign="bottom"><b>TCPMON_SESSION_GET_TARGET_PORT</b>(session, env)&nbsp;&nbsp;&nbsp;((session)-&gt;ops-&gt;get_target_port(session, env))</td></tr>

<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="gd18884f2168c75d651aff4dd2d9703d1"></a><!-- doxytag: member="represent::TCPMON_SESSION_SET_TARGET_HOST" ref="gd18884f2168c75d651aff4dd2d9703d1" args="(session, env, target_host)" -->
#define&nbsp;</td><td class="memItemRight" valign="bottom"><b>TCPMON_SESSION_SET_TARGET_HOST</b>(session, env, target_host)&nbsp;&nbsp;&nbsp;((session)-&gt;ops-&gt;set_target_host(session, env, target_host))</td></tr>

<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="g97bea559146c982661e069c611775849"></a><!-- doxytag: member="represent::TCPMON_SESSION_GET_TARGET_HOST" ref="g97bea559146c982661e069c611775849" args="(session, env)" -->
#define&nbsp;</td><td class="memItemRight" valign="bottom"><b>TCPMON_SESSION_GET_TARGET_HOST</b>(session, env)&nbsp;&nbsp;&nbsp;((session)-&gt;ops-&gt;get_target_host(session, env))</td></tr>

<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="gb237bb88a211704cc15a50919fd20bfd"></a><!-- doxytag: member="represent::TCPMON_SESSION_START" ref="gb237bb88a211704cc15a50919fd20bfd" args="(session, env)" -->
#define&nbsp;</td><td class="memItemRight" valign="bottom"><b>TCPMON_SESSION_START</b>(session, env)&nbsp;&nbsp;&nbsp;((session)-&gt;ops-&gt;start(session, env))</td></tr>

<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="gcb07387a296964457de70f62f9d50782"></a><!-- doxytag: member="represent::TCPMON_SESSION_STOP" ref="gcb07387a296964457de70f62f9d50782" args="(session, env)" -->
#define&nbsp;</td><td class="memItemRight" valign="bottom"><b>TCPMON_SESSION_STOP</b>(session, env)&nbsp;&nbsp;&nbsp;((session)-&gt;ops-&gt;stop(session, env))</td></tr>

<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="g25cf6a467bca50db10272b730031d820"></a><!-- doxytag: member="represent::TCPMON_SESSION_ON_TRANS_FAULT" ref="g25cf6a467bca50db10272b730031d820" args="(session, env, funct)" -->
#define&nbsp;</td><td class="memItemRight" valign="bottom"><b>TCPMON_SESSION_ON_TRANS_FAULT</b>(session, env, funct)&nbsp;&nbsp;&nbsp;((session)-&gt;ops-&gt;on_trans_fault(session, env, funct))</td></tr>

<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="g13594e52fa690fdaf059758838000634"></a><!-- doxytag: member="represent::TCPMON_SESSION_ON_NEW_ENTRY" ref="g13594e52fa690fdaf059758838000634" args="(session, env, funct)" -->
#define&nbsp;</td><td class="memItemRight" valign="bottom"><b>TCPMON_SESSION_ON_NEW_ENTRY</b>(session, env, funct)&nbsp;&nbsp;&nbsp;((session)-&gt;ops-&gt;on_new_entry(session, env, funct))</td></tr>

<tr><td colspan="2"><br><h2>Typedefs</h2></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="gfb6aaae302b041ca30073b5cb7b362b0"></a><!-- doxytag: member="represent::tcpmon_entry_ops_t" ref="gfb6aaae302b041ca30073b5cb7b362b0" args="" -->
typedef struct <br>
tcpmon_entry_ops&nbsp;</td><td class="memItemRight" valign="bottom"><b>tcpmon_entry_ops_t</b></td></tr>

<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="g72cb3c10d4b76e9a25ab92fccfcc6315"></a><!-- doxytag: member="represent::tcpmon_entry_t" ref="g72cb3c10d4b76e9a25ab92fccfcc6315" args="" -->
typedef struct <br>
tcpmon_entry&nbsp;</td><td class="memItemRight" valign="bottom"><b>tcpmon_entry_t</b></td></tr>

<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="gcc3eccafdc7833ea95288495a5fc7103"></a><!-- doxytag: member="represent::tcpmon_session_ops_t" ref="gcc3eccafdc7833ea95288495a5fc7103" args="" -->
typedef struct <br>
tcpmon_session_ops&nbsp;</td><td class="memItemRight" valign="bottom"><b>tcpmon_session_ops_t</b></td></tr>

<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="gc4e90e688b94bce0d4123b6cda62cd42"></a><!-- doxytag: member="represent::tcpmon_session_t" ref="gc4e90e688b94bce0d4123b6cda62cd42" args="" -->
typedef struct <br>
tcpmon_session&nbsp;</td><td class="memItemRight" valign="bottom"><b>tcpmon_session_t</b></td></tr>

<tr><td class="memItemLeft" nowrap align="right" valign="top">typedef int(*&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__represent.html#g87bd5fe0ef0ee83fd083df2de523f7d2">TCPMON_SESSION_NEW_ENTRY_FUNCT</a> )(const <a class="el" href="structaxutil__env.html">axutil_env_t</a> *env, tcpmon_entry_t *entry, int status)</td></tr>

<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="g45939dd2a61de10194d9706eeab1c59d"></a><!-- doxytag: member="represent::TCPMON_SESSION_TRANS_ERROR_FUNCT" ref="g45939dd2a61de10194d9706eeab1c59d" args=")(const axutil_env_t *env, axis2_char_t *error_message)" -->
typedef int(*&nbsp;</td><td class="memItemRight" valign="bottom"><b>TCPMON_SESSION_TRANS_ERROR_FUNCT</b> )(const <a class="el" href="structaxutil__env.html">axutil_env_t</a> *env, axis2_char_t *error_message)</td></tr>

<tr><td colspan="2"><br><h2>Functions</h2></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top">tcpmon_entry_t *&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__represent.html#g04eb45ef20fbfd2007ee4cda3e887f7f">tcpmon_entry_create</a> (const <a class="el" href="structaxutil__env.html">axutil_env_t</a> *env)</td></tr>

<tr><td class="memItemLeft" nowrap align="right" valign="top">tcpmon_session_t *&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__represent.html#gb84102cd177590afd476474a02ba7083">tcpmon_session_create</a> (const <a class="el" href="structaxutil__env.html">axutil_env_t</a> *env)</td></tr>

</table>
<hr><h2>Typedef Documentation</h2>
<a class="anchor" name="g87bd5fe0ef0ee83fd083df2de523f7d2"></a><!-- doxytag: member="tcpmon_session.h::TCPMON_SESSION_NEW_ENTRY_FUNCT" ref="g87bd5fe0ef0ee83fd083df2de523f7d2" args=")(const axutil_env_t *env, tcpmon_entry_t *entry, int status)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">typedef int( * <a class="el" href="group__represent.html#g87bd5fe0ef0ee83fd083df2de523f7d2">TCPMON_SESSION_NEW_ENTRY_FUNCT</a>)(const <a class="el" href="structaxutil__env.html">axutil_env_t</a> *env, tcpmon_entry_t *entry, int status)          </td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
callback functions for the tcpmon session 
</div>
</div><p>
<hr><h2>Function Documentation</h2>
<a class="anchor" name="g04eb45ef20fbfd2007ee4cda3e887f7f"></a><!-- doxytag: member="tcpmon_entry.h::tcpmon_entry_create" ref="g04eb45ef20fbfd2007ee4cda3e887f7f" args="(const axutil_env_t *env)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">tcpmon_entry_t* tcpmon_entry_create           </td>
          <td>(</td>
          <td class="paramtype">const <a class="el" href="structaxutil__env.html">axutil_env_t</a> *&nbsp;</td>
          <td class="paramname"> <em>env</em>          </td>
          <td>&nbsp;)&nbsp;</td>
          <td width="100%"></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
Creates tcpmon_entry struct <dl compact><dt><b>Parameters:</b></dt><dd>
  <table border="0" cellspacing="2" cellpadding="0">
    <tr><td valign="top"></td><td valign="top"><em>env</em>&nbsp;</td><td>double pointer to environment struct. MUST NOT be NULL </td></tr>
  </table>
</dl>
<dl class="return" compact><dt><b>Returns:</b></dt><dd>pointer to newly created tcpmon_entry struct </dd></dl>

</div>
</div><p>
<a class="anchor" name="gb84102cd177590afd476474a02ba7083"></a><!-- doxytag: member="tcpmon_session.h::tcpmon_session_create" ref="gb84102cd177590afd476474a02ba7083" args="(const axutil_env_t *env)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">tcpmon_session_t* tcpmon_session_create           </td>
          <td>(</td>
          <td class="paramtype">const <a class="el" href="structaxutil__env.html">axutil_env_t</a> *&nbsp;</td>
          <td class="paramname"> <em>env</em>          </td>
          <td>&nbsp;)&nbsp;</td>
          <td width="100%"></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
Creates tcpmon_session struct <dl compact><dt><b>Parameters:</b></dt><dd>
  <table border="0" cellspacing="2" cellpadding="0">
    <tr><td valign="top"></td><td valign="top"><em>env</em>&nbsp;</td><td>double pointer to environment struct. MUST NOT be NULL </td></tr>
  </table>
</dl>
<dl class="return" compact><dt><b>Returns:</b></dt><dd>pointer to newly created tcpmon_session struct </dd></dl>

</div>
</div><p>
<hr size="1"><address style="text-align: right;"><small>Generated on Thu Apr 16 11:31:23 2009 for Axis2/C by&nbsp;
<a href="http://www.doxygen.org/index.html">
<img src="doxygen.png" alt="doxygen" align="middle" border="0"></a> 1.5.3 </small></address>
</body>
</html>


<|start_filename|>util/include/axutil_version.h<|end_filename|>

/**
 * 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_VERSION_H
#define AXUTIL_VERSION_H

/* The numeric compile-time version constants. These constants are the
 * authoritative version numbers for AXIS2.
 */

/** major version
 * Major API changes that could cause compatibility problems for older
 * programs such as structure size changes.  No binary compatibility is
 * possible across a change in the major version.
 */
#define AXIS2_MAJOR_VERSION       1

/** minor version
 * Minor API changes that do not cause binary compatibility problems.
 * Reset to 0 when upgrading AXIS2_MAJOR_VERSION
 */
#define AXIS2_MINOR_VERSION       6

/** patch level
 * The Patch Level never includes API changes, simply bug fixes.
 * Reset to 0 when upgrading AXIS2_MINOR_VERSION
 */
#define AXIS2_PATCH_VERSION       0

/**
 * The symbol AXIS2_IS_DEV_VERSION is only defined for internal,
 * "development" copies of AXIS2.  It is undefined for released versions
 * of AXIS2.
 */
#undef AXIS2_IS_DEV_VERSION

#if defined(AXIS2_IS_DEV_VERSION) || defined(DOXYGEN)

/** Internal: string form of the "is dev" flag */
#define AXIS2_IS_DEV_STRING "-dev"
#else
#define AXIS2_IS_DEV_STRING ""
#endif

/** Properly quote a value as a string in the C preprocessor */
#define AXIS2_STRINGIFY(n) AXIS2_STRINGIFY_HELPER(n)

/** Helper macro for AXIS2_STRINGIFY */
#define AXIS2_STRINGIFY_HELPER(n) #n

/** The formatted string of AXIS2's version */
#define AXIS2_VERSION_STRING \
     AXIS2_STRINGIFY(AXIS2_MAJOR_VERSION) "." \
     AXIS2_STRINGIFY(AXIS2_MINOR_VERSION) "." \
     AXIS2_STRINGIFY(AXIS2_PATCH_VERSION) \
     AXIS2_IS_DEV_STRING

/** An alternative formatted string of AXIS2's version */

/* macro for Win32 .rc files using numeric csv representation */
#define AXIS2_VERSION_STRING_CSV AXIS2_MAJOR_VERSION ##, \
                             ##AXIS2_MINOR_VERSION ##, \
                             ##AXIS2_PATCH_VERSION

#ifndef AXIS2_VERSION_ONLY

/* The C language API to access the version at run time,
 * as opposed to compile time.  AXIS2_VERSION_ONLY may be defined
 * externally when preprocessing axutil_version.h to obtain strictly
 * the C Preprocessor macro declarations.
 */

#include "axutil_env.h"

#ifdef __cplusplus
extern "C"
{
#endif

    /**
     * The numeric version information is broken out into fields within this
     * structure.
     */
    typedef struct
    {

        int major;

        /**< major number */

        int minor;

        /**< minor number */

        int patch;

        /**< patch number */

        int is_dev;

        /**< is development (1 or 0) */
    }
    axis2_version_t;

    /**
     * Return AXIS2's version information information in a numeric form.
     *
     *  @param pvsn Pointer to a version structure for returning the version
     *              information.
     */
    AXIS2_EXTERN void AXIS2_CALL
    axis2_version(
        axis2_version_t * pvsn);

    /** Return AXIS2's version information as a string. */
    AXIS2_EXTERN const char *AXIS2_CALL
    axis2_version_string(
        void);

#ifdef __cplusplus
}
#endif
#endif

#endif                          /* AXIS2_VERSION_H */


<|start_filename|>xdocs/api/html/group__axiom__children__with__specific__attribute__iterator.html<|end_filename|>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html><head><meta http-equiv="Content-Type" content="text/html;charset=UTF-8">
<title>Axis2/C: children with specific attribute iterator</title>
<link href="doxygen.css" rel="stylesheet" type="text/css">
<link href="tabs.css" rel="stylesheet" type="text/css">
</head><body>
<!-- Generated by Doxygen 1.5.3 -->
<div class="tabs">
  <ul>
    <li><a href="index.html"><span>Main&nbsp;Page</span></a></li>
    <li><a href="modules.html"><span>Modules</span></a></li>
    <li><a href="annotated.html"><span>Classes</span></a></li>
    <li><a href="files.html"><span>Files</span></a></li>
    <li><a href="dirs.html"><span>Directories</span></a></li>
    <li><a href="pages.html"><span>Related&nbsp;Pages</span></a></li>
    <li><a href="examples.html"><span>Examples</span></a></li>
    <li>
      <form action="search.php" method="get">
        <table cellspacing="0" cellpadding="0" border="0">
          <tr>
            <td><label>&nbsp;<u>S</u>earch&nbsp;for&nbsp;</label></td>
            <td><input type="text" name="query" value="" size="20" accesskey="s"/></td>
          </tr>
        </table>
      </form>
    </li>
  </ul>
</div>
<h1>children with specific attribute iterator<br>
<small>
[<a class="el" href="group__axiom__om.html">AXIOM</a>]</small>
</h1><table border="0" cellpadding="0" cellspacing="0">
<tr><td></td></tr>
<tr><td colspan="2"><br><h2>Defines</h2></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="g4584d7e942bb2d1699b25097f0d433e5"></a><!-- doxytag: member="axiom_children_with_specific_attribute_iterator::AXIOM_CHILDREN_WITH_SPECIFIC_ATTRIBUTE_ITERATOR_FREE" ref="g4584d7e942bb2d1699b25097f0d433e5" args="(iterator, env)" -->
#define&nbsp;</td><td class="memItemRight" valign="bottom"><b>AXIOM_CHILDREN_WITH_SPECIFIC_ATTRIBUTE_ITERATOR_FREE</b>(iterator, env)&nbsp;&nbsp;&nbsp;axiom_children_with_specific_attribute_iterator_free(iterator, env)</td></tr>

<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="gb97098253d2c2c12c13652878b917b56"></a><!-- doxytag: member="axiom_children_with_specific_attribute_iterator::AXIOM_CHILDREN_WITH_SPECIFIC_ATTRIBUTE_ITERATOR_REMOVE" ref="gb97098253d2c2c12c13652878b917b56" args="(iterator, env)" -->
#define&nbsp;</td><td class="memItemRight" valign="bottom"><b>AXIOM_CHILDREN_WITH_SPECIFIC_ATTRIBUTE_ITERATOR_REMOVE</b>(iterator, env)&nbsp;&nbsp;&nbsp;axiom_children_with_specific_attribute_iterator_remove(iterator, env)</td></tr>

<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="g98ebd2187466c7c8c4144cdb43f41ad0"></a><!-- doxytag: member="axiom_children_with_specific_attribute_iterator::AXIOM_CHILDREN_WITH_SPECIFIC_ATTRIBUTE_ITERATOR_HAS_NEXT" ref="g98ebd2187466c7c8c4144cdb43f41ad0" args="(iterator, env)" -->
#define&nbsp;</td><td class="memItemRight" valign="bottom"><b>AXIOM_CHILDREN_WITH_SPECIFIC_ATTRIBUTE_ITERATOR_HAS_NEXT</b>(iterator, env)&nbsp;&nbsp;&nbsp;axiom_children_with_specific_attribute_iterator_has_next(iterator, env)</td></tr>

<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="g879ae629d4d78b85e6631b3753e5e8c1"></a><!-- doxytag: member="axiom_children_with_specific_attribute_iterator::AXIOM_CHILDREN_WITH_SPECIFIC_ATTRIBUTE_ITERATOR_NEXT" ref="g879ae629d4d78b85e6631b3753e5e8c1" args="(iterator, env)" -->
#define&nbsp;</td><td class="memItemRight" valign="bottom"><b>AXIOM_CHILDREN_WITH_SPECIFIC_ATTRIBUTE_ITERATOR_NEXT</b>(iterator, env)&nbsp;&nbsp;&nbsp;axiom_children_with_specific_attribute_iterator_next(iterator, env)</td></tr>

<tr><td colspan="2"><br><h2>Functions</h2></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top">AXIS2_EXTERN void&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__axiom__children__with__specific__attribute__iterator.html#g3ca5674c5cd482e3dcce3ebc443f1804">axiom_children_with_specific_attribute_iterator_free</a> (axiom_children_with_specific_attribute_iterator_t *iterator, const <a class="el" href="structaxutil__env.html">axutil_env_t</a> *env)</td></tr>

<tr><td class="memItemLeft" nowrap align="right" valign="top">AXIS2_EXTERN <br>
axis2_status_t&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__axiom__children__with__specific__attribute__iterator.html#g5a6f6f5c3e00b9bc512ee30d8e452413">axiom_children_with_specific_attribute_iterator_remove</a> (axiom_children_with_specific_attribute_iterator_t *iterator, const <a class="el" href="structaxutil__env.html">axutil_env_t</a> *env)</td></tr>

<tr><td class="memItemLeft" nowrap align="right" valign="top">AXIS2_EXTERN axis2_bool_t&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__axiom__children__with__specific__attribute__iterator.html#g4965a74d2c7af2a6f0588c3cc15c13ec">axiom_children_with_specific_attribute_iterator_has_next</a> (axiom_children_with_specific_attribute_iterator_t *iterator, const <a class="el" href="structaxutil__env.html">axutil_env_t</a> *env)</td></tr>

<tr><td class="memItemLeft" nowrap align="right" valign="top">AXIS2_EXTERN <br>
axiom_node_t *&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__axiom__children__with__specific__attribute__iterator.html#g82d5c3904628c6fac0333ad55b904066">axiom_children_with_specific_attribute_iterator_next</a> (axiom_children_with_specific_attribute_iterator_t *iterator, const <a class="el" href="structaxutil__env.html">axutil_env_t</a> *env)</td></tr>

<tr><td class="memItemLeft" nowrap align="right" valign="top">AXIS2_EXTERN <br>
axiom_children_with_specific_attribute_iterator_t *&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__axiom__children__with__specific__attribute__iterator.html#g5fccc2bf8a745e68567b33227ef89c59">axiom_children_with_specific_attribute_iterator_create</a> (const <a class="el" href="structaxutil__env.html">axutil_env_t</a> *env, axiom_node_t *current_child, axutil_qname_t *attr_qname, axis2_char_t *attr_value, axis2_bool_t detach)</td></tr>

</table>
<hr><h2>Function Documentation</h2>
<a class="anchor" name="g5fccc2bf8a745e68567b33227ef89c59"></a><!-- doxytag: member="axiom_children_with_specific_attribute_iterator.h::axiom_children_with_specific_attribute_iterator_create" ref="g5fccc2bf8a745e68567b33227ef89c59" args="(const axutil_env_t *env, axiom_node_t *current_child, axutil_qname_t *attr_qname, axis2_char_t *attr_value, axis2_bool_t detach)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">AXIS2_EXTERN axiom_children_with_specific_attribute_iterator_t* axiom_children_with_specific_attribute_iterator_create           </td>
          <td>(</td>
          <td class="paramtype">const <a class="el" href="structaxutil__env.html">axutil_env_t</a> *&nbsp;</td>
          <td class="paramname"> <em>env</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">axiom_node_t *&nbsp;</td>
          <td class="paramname"> <em>current_child</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">axutil_qname_t *&nbsp;</td>
          <td class="paramname"> <em>attr_qname</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">axis2_char_t *&nbsp;</td>
          <td class="paramname"> <em>attr_value</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">axis2_bool_t&nbsp;</td>
          <td class="paramname"> <em>detach</em></td><td>&nbsp;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td><td width="100%"></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
<dl compact><dt><b>Parameters:</b></dt><dd>
  <table border="0" cellspacing="2" cellpadding="0">
    <tr><td valign="top"></td><td valign="top"><em>env</em>&nbsp;</td><td>environment, MUST NOT be NULL </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>current_child</em>&nbsp;</td><td>the current child for the interation </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>attr_qname</em>&nbsp;</td><td>the qname for the attribute </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>attr_value</em>&nbsp;</td><td>the value string for the attribute </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>detach</em>&nbsp;</td><td>AXIS2_TRUE to detach AXIS2_FALSE not to return axiom_children_with_specific_attribute_iterator_t </td></tr>
  </table>
</dl>

</div>
</div><p>
<a class="anchor" name="g3ca5674c5cd482e3dcce3ebc443f1804"></a><!-- doxytag: member="axiom_children_with_specific_attribute_iterator.h::axiom_children_with_specific_attribute_iterator_free" ref="g3ca5674c5cd482e3dcce3ebc443f1804" args="(axiom_children_with_specific_attribute_iterator_t *iterator, const axutil_env_t *env)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">AXIS2_EXTERN void axiom_children_with_specific_attribute_iterator_free           </td>
          <td>(</td>
          <td class="paramtype">axiom_children_with_specific_attribute_iterator_t *&nbsp;</td>
          <td class="paramname"> <em>iterator</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const <a class="el" href="structaxutil__env.html">axutil_env_t</a> *&nbsp;</td>
          <td class="paramname"> <em>env</em></td><td>&nbsp;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td><td width="100%"></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
Free function free the om_children_with_specific_attribute_iterator struct <dl compact><dt><b>Parameters:</b></dt><dd>
  <table border="0" cellspacing="2" cellpadding="0">
    <tr><td valign="top"></td><td valign="top"><em>iterator</em>&nbsp;</td><td>a pointer to axiom children with specific attribute iterator struct </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>env</em>&nbsp;</td><td>environment, MUST NOT be NULL </td></tr>
  </table>
</dl>

</div>
</div><p>
<a class="anchor" name="g4965a74d2c7af2a6f0588c3cc15c13ec"></a><!-- doxytag: member="axiom_children_with_specific_attribute_iterator.h::axiom_children_with_specific_attribute_iterator_has_next" ref="g4965a74d2c7af2a6f0588c3cc15c13ec" args="(axiom_children_with_specific_attribute_iterator_t *iterator, const axutil_env_t *env)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">AXIS2_EXTERN axis2_bool_t axiom_children_with_specific_attribute_iterator_has_next           </td>
          <td>(</td>
          <td class="paramtype">axiom_children_with_specific_attribute_iterator_t *&nbsp;</td>
          <td class="paramname"> <em>iterator</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const <a class="el" href="structaxutil__env.html">axutil_env_t</a> *&nbsp;</td>
          <td class="paramname"> <em>env</em></td><td>&nbsp;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td><td width="100%"></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
Returns true&lt; if the iteration has more elements. (In other words, returns true if next would return an axiom_node_t struct rather than NULL with error code set in environment <dl compact><dt><b>Parameters:</b></dt><dd>
  <table border="0" cellspacing="2" cellpadding="0">
    <tr><td valign="top"></td><td valign="top"><em>iterator</em>&nbsp;</td><td>a pointer to axiom children with specific attribute iterator struct </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>env</em>&nbsp;</td><td>environment, MUST NOT be NULL </td></tr>
  </table>
</dl>

</div>
</div><p>
<a class="anchor" name="g82d5c3904628c6fac0333ad55b904066"></a><!-- doxytag: member="axiom_children_with_specific_attribute_iterator.h::axiom_children_with_specific_attribute_iterator_next" ref="g82d5c3904628c6fac0333ad55b904066" args="(axiom_children_with_specific_attribute_iterator_t *iterator, const axutil_env_t *env)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">AXIS2_EXTERN axiom_node_t* axiom_children_with_specific_attribute_iterator_next           </td>
          <td>(</td>
          <td class="paramtype">axiom_children_with_specific_attribute_iterator_t *&nbsp;</td>
          <td class="paramname"> <em>iterator</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const <a class="el" href="structaxutil__env.html">axutil_env_t</a> *&nbsp;</td>
          <td class="paramname"> <em>env</em></td><td>&nbsp;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td><td width="100%"></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
Returns the next element in the iteration. returns null if there is no more elements in the iteration <dl compact><dt><b>Parameters:</b></dt><dd>
  <table border="0" cellspacing="2" cellpadding="0">
    <tr><td valign="top"></td><td valign="top"><em>iterator</em>&nbsp;</td><td>a pointer to axiom children with specific attribute iterator struct </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>env</em>&nbsp;</td><td>environment, MUST NOT be NULL </td></tr>
  </table>
</dl>

</div>
</div><p>
<a class="anchor" name="g5a6f6f5c3e00b9bc512ee30d8e452413"></a><!-- doxytag: member="axiom_children_with_specific_attribute_iterator.h::axiom_children_with_specific_attribute_iterator_remove" ref="g5a6f6f5c3e00b9bc512ee30d8e452413" args="(axiom_children_with_specific_attribute_iterator_t *iterator, const axutil_env_t *env)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">AXIS2_EXTERN axis2_status_t axiom_children_with_specific_attribute_iterator_remove           </td>
          <td>(</td>
          <td class="paramtype">axiom_children_with_specific_attribute_iterator_t *&nbsp;</td>
          <td class="paramname"> <em>iterator</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const <a class="el" href="structaxutil__env.html">axutil_env_t</a> *&nbsp;</td>
          <td class="paramname"> <em>env</em></td><td>&nbsp;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td><td width="100%"></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
Removes from the underlying collection the last element returned by the iterator (optional op). This method can be called only once per call to <code>next</code>. The behavior of an iterator is unspecified if the underlying collection is modified while the iteration is in progress in any way other than by calling this method. <dl compact><dt><b>Parameters:</b></dt><dd>
  <table border="0" cellspacing="2" cellpadding="0">
    <tr><td valign="top"></td><td valign="top"><em>iterator</em>&nbsp;</td><td>a pointer to axiom children with specific attribute iterator struct </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>env</em>&nbsp;</td><td>environment, MUST NOT be NULL </td></tr>
  </table>
</dl>

</div>
</div><p>
<hr size="1"><address style="text-align: right;"><small>Generated on Fri Apr 17 11:49:44 2009 for Axis2/C by&nbsp;
<a href="http://www.doxygen.org/index.html">
<img src="doxygen.png" alt="doxygen" align="middle" border="0"></a> 1.5.3 </small></address>
</body>
</html>


<|start_filename|>util/src/platforms/windows/thread_windows.c<|end_filename|>

/*
 * 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.
 */

#include <axutil_utils.h>
#include <platforms/windows/axutil_thread_windows.h>

DWORD tls_axutil_thread = 0;

AXIS2_EXTERN axutil_threadattr_t *AXIS2_CALL
axutil_threadattr_create(
    axutil_allocator_t * allocator)
{
    axutil_threadattr_t *new = NULL;

    new = AXIS2_MALLOC(allocator, sizeof(axutil_threadattr_t));
    if (!new)
    {
        /*AXIS2_ERROR_SET(env->error, AXIS2_ERROR_NO_MEMORY, AXIS2_FAILURE) */
        return NULL;
    }
    new->detach = 0;
    new->stacksize = 0;

    return new;
}

/* Destroy the threadattr object */
AXIS2_EXTERN axis2_status_t AXIS2_CALL
threadattr_cleanup(
    void *data)
{
    /*axutil_threadattr_t *attr = data;*/
    /*nothing to clean up */
    return AXIS2_SUCCESS;
}

AXIS2_EXTERN axis2_status_t AXIS2_CALL
axutil_threadattr_detach_set(
    axutil_threadattr_t * attr,
    axis2_bool_t detached)
{
    attr->detach = detached;
    return AXIS2_SUCCESS;
}

AXIS2_EXTERN axis2_status_t AXIS2_CALL
axutil_threadattr_detach_get(
    axutil_threadattr_t * attr,
    const axutil_env_t * env)
{
    if (1 == attr->detach)
    {
        return AXIS2_TRUE;
    }
    return AXIS2_FALSE;
}

AXIS2_EXTERN axis2_status_t AXIS2_CALL
axutil_threadattr_stacksize_set(
    axutil_threadattr_t * attr,
    size_t stacksize)
{
    attr->stacksize = stacksize;
    return AXIS2_SUCCESS;
}

static void *
dummy_worker(
    void *opaque)
{
    axutil_thread_t *thd = (axutil_thread_t *) opaque;
    TlsSetValue(tls_axutil_thread, thd->td);
    return thd->func(thd, thd->data);
}

#if defined(__MINGW32__)
# define AXUTIL_THREAD_FN_CAST (LPTHREAD_START_ROUTINE)
#else
# define AXUTIL_THREAD_FN_CAST (unsigned long (AXIS2_THREAD_FUNC *) (void *))
#endif

AXIS2_EXTERN axutil_thread_t *AXIS2_CALL
axutil_thread_create(
    axutil_allocator_t * allocator,
    axutil_threadattr_t * attr,
    axutil_thread_start_t func,
    void *data)
{
    HANDLE handle;
    unsigned long temp;
    axutil_thread_t *new = NULL;

    new = (axutil_thread_t *) AXIS2_MALLOC(allocator, sizeof(axutil_thread_t));

    if (!new)
    {
        return NULL;
    }

    new->data = data;
    new->func = func;
    new->td = NULL;
    new->try_exit = AXIS2_FALSE;

    /* Use 0 for Thread Stack Size, because that will default the stack to the
     * same size as the calling thread. 
     */
    if ((handle =
         CreateThread(NULL, attr &&
                      attr->stacksize > 0 ? attr->stacksize : 0,
                      AXUTIL_THREAD_FN_CAST dummy_worker, new, 0, &temp)) == 0)
    {
        return NULL;
    }

    if (attr && attr->detach)
    {
        CloseHandle(handle);
    }
    else
        new->td = handle;

    return new;
}

AXIS2_EXTERN axis2_status_t AXIS2_CALL
axutil_thread_exit(
    axutil_thread_t * thd,
    axutil_allocator_t * allocator)
{
    axis2_status_t status = AXIS2_SUCCESS;
    if (thd)
    {
        AXIS2_FREE(allocator, thd);
    }
    if (status)
    {
        ExitThread(0);
    }

    return status;
}

AXIS2_EXTERN axis2_os_thread_t AXIS2_CALL
axis2_os_thread_current(
    void)
{
    HANDLE hthread = (HANDLE) TlsGetValue(tls_axutil_thread);
    HANDLE hproc;

    if (hthread)
    {
        return hthread;
    }

    hproc = GetCurrentProcess();
    hthread = GetCurrentThread();
    if (!DuplicateHandle
        (hproc, hthread, hproc, &hthread, 0, FALSE, DUPLICATE_SAME_ACCESS))
    {
        return NULL;
    }
    TlsSetValue(tls_axutil_thread, hthread);
    return hthread;
}

AXIS2_EXTERN int AXIS2_CALL
axis2_os_thread_equal(
    axis2_os_thread_t tid1,
    axis2_os_thread_t tid2)
{
    return (tid1 == tid2);
}

AXIS2_EXTERN axis2_status_t AXIS2_CALL
axutil_thread_join(
    axutil_thread_t * thd)
{
    axis2_status_t rv = AXIS2_SUCCESS,
        rv1;

    if (!thd->td)
    {
        /* Can not join on detached threads */
        return AXIS2_FAILURE;
    }
    rv1 = WaitForSingleObject(thd->td, INFINITE);
    if (rv1 == WAIT_OBJECT_0 || rv1 == WAIT_ABANDONED)
    {
        /*rv = AXIS2_INCOMPLETE; */
    }
    else
        rv = AXIS2_FAILURE;
    CloseHandle(thd->td);
    thd->td = NULL;

    return rv;
}

AXIS2_EXTERN axis2_status_t AXIS2_CALL
axutil_thread_detach(
    axutil_thread_t * thd)
{
    if (thd->td && CloseHandle(thd->td))
    {
        thd->td = NULL;
        return AXIS2_SUCCESS;
    }
    else
    {
        return AXIS2_FAILURE;
    }
}

AXIS2_EXTERN axis2_os_thread_t AXIS2_CALL
axis2_os_thread_get(
    axutil_thread_t * thd,
    const axutil_env_t * env)
{
    return thd->td;
}

AXIS2_EXTERN axutil_thread_once_t *AXIS2_CALL
axutil_thread_once_init(
    axutil_allocator_t * allocator)
{
    axutil_thread_once_t *control = NULL;
    control = AXIS2_MALLOC(allocator, sizeof(*control));
    return control;
}

AXIS2_EXTERN axis2_status_t AXIS2_CALL
axutil_thread_once(
    axutil_thread_once_t * control,
    void (*func) (void))
{
    if (!InterlockedExchange(&control->value, 1))
    {
        func();
    }
    return AXIS2_SUCCESS;
}


<|start_filename|>axiom/include/axiom_document.h<|end_filename|>

/*
 * 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 AXIOM_DOCUMENT_H
#define AXIOM_DOCUMENT_H

#include <axutil_env.h>
#include <axiom_node.h>
#include <axutil_utils_defines.h>
#include <axiom_output.h>

#ifdef __cplusplus
extern "C"
{
#endif

    /**
     * @file axiom_document.h
     * @brief om_document represents an XML document
     */

#define CHAR_SET_ENCODING "UTF-8"
#define XML_VERSION   "1.0"

    struct axiom_stax_builder;

    /**
     * @defgroup axiom_document document
     * @ingroup axiom_om
     * @{
     */

    typedef struct axiom_document axiom_document_t;

    /**
      * creates an axiom_document_t struct
      * @param env Environment. MUST NOT be NULL.
      * @param root pointer to document's root node. Optional, can be NULL
      * @param builder pointer to axiom_stax_builder 
      * @return pointer to the newly created document.
      */
    AXIS2_EXTERN axiom_document_t *AXIS2_CALL
    axiom_document_create(
        const axutil_env_t * env,
        axiom_node_t * root,
        struct axiom_stax_builder *builder);

    /**
      * Free document struct
      * @param document pointer to axiom_document_t struct to be freed
      * @param env Environment. MUST NOT be NULL  
      * @return satus of the op. AXIS2_SUCCESS on success else AXIS2_FAILURE.
      */
    AXIS2_EXTERN void AXIS2_CALL
    axiom_document_free(
        struct axiom_document *document,
        const axutil_env_t * env);

    /**
     * Free document struct only, Does not free the associated axiom struture.
     * @param document pointer to axiom_document_t struct to be freed
     * @param env Environment. MUST NOT be NULL  
     * @return satus of the op. AXIS2_SUCCESS on success else AXIS2_FAILURE.
     */
    AXIS2_EXTERN void AXIS2_CALL
    axiom_document_free_self(
        struct axiom_document *document,
        const axutil_env_t * env);

    /** Builds the next node if the builder is not finished with input xml stream
      * @param document document whose next node is to be built. cannot be NULL
      * @param env Environment. MUST NOT be NULL.  
      * @return pointer to the next node. NULL on error.
      */

    AXIS2_EXTERN axiom_node_t *AXIS2_CALL
    axiom_document_build_next(
        struct axiom_document *document,
        const axutil_env_t * env);

    /**
      * Gets the root element of the document.
      * @param document document to return the root of
      * @param env Environment. MUST NOT be NULL.  
      * @return returns a pointer to the root node. If no root present,
      *            this method tries to build the root. Returns NULL on error. 
      */
    AXIS2_EXTERN axiom_node_t *AXIS2_CALL
    axiom_document_get_root_element(
        struct axiom_document *document,
        const axutil_env_t * env);

    /**
      * set the root element of the document. IF a root node is already exist,it is freed 
      * before setting to root element 
      * @param document document struct to return the root of
      * @param env Environment. MUST NOT be NULL.  
      * @return returns status code AXIS2_SUCCESS on success ,AXIS2_FAILURE on error. 
      */

    AXIS2_EXTERN axis2_status_t AXIS2_CALL
    axiom_document_set_root_element(
        struct axiom_document *document,
        const axutil_env_t * env,
        axiom_node_t * om_node);

    /**
     * This method builds the rest of the xml input stream from current position till
     * the root element is completed .
     * @param document pointer to axiom_document_t struct to be built.
     * @param env environment MUST NOT be NULL.
     */
    AXIS2_EXTERN axiom_node_t *AXIS2_CALL
    axiom_document_build_all(
        struct axiom_document *document,
        const axutil_env_t * env);

    /**
     * get builder
     * @param document pointer to axiom_document_t struct to be built.
     * @param env environment MUST NOT be NULL.
     * @return builder, returns NULL if a builder is not associated with 
     * document
     */
    AXIS2_EXTERN struct axiom_stax_builder *AXIS2_CALL
    axiom_document_get_builder(
        struct axiom_document *document,
        const axutil_env_t * env);

    /**
     * sets builder for document.
     * @param document pointer to axiom_document_t struct to be built.
     * @param env environment MUST NOT be NULL.
     * @param builder pointer to builder to associate with document
     */ 
    AXIS2_EXTERN void AXIS2_CALL
    axiom_document_set_builder(
        axiom_document_t * document,
        const axutil_env_t * env,
        struct axiom_stax_builder * builder);

    /**
     * @param om_document
     * @return status code AXIS2_SUCCESS on success , otherwise AXIS2_FAILURE
     */
    AXIS2_EXTERN axis2_status_t AXIS2_CALL
    axiom_document_serialize(
        struct axiom_document *document,
        const axutil_env_t * env,
        axiom_output_t * om_output);

    /** @} */

#ifdef __cplusplus
}
#endif

#endif                          /* AXIOM_DOCUMENT_H */


<|start_filename|>xdocs/api/html/axis2__simple__http__svr__conn_8h-source.html<|end_filename|>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html><head><meta http-equiv="Content-Type" content="text/html;charset=UTF-8">
<title>Axis2/C: axis2_simple_http_svr_conn.h Source File</title>
<link href="doxygen.css" rel="stylesheet" type="text/css">
<link href="tabs.css" rel="stylesheet" type="text/css">
</head><body>
<!-- Generated by Doxygen 1.5.3 -->
<div class="tabs">
  <ul>
    <li><a href="index.html"><span>Main&nbsp;Page</span></a></li>
    <li><a href="modules.html"><span>Modules</span></a></li>
    <li><a href="annotated.html"><span>Classes</span></a></li>
    <li class="current"><a href="files.html"><span>Files</span></a></li>
    <li><a href="dirs.html"><span>Directories</span></a></li>
    <li><a href="pages.html"><span>Related&nbsp;Pages</span></a></li>
    <li><a href="examples.html"><span>Examples</span></a></li>
    <li>
      <form action="search.php" method="get">
        <table cellspacing="0" cellpadding="0" border="0">
          <tr>
            <td><label>&nbsp;<u>S</u>earch&nbsp;for&nbsp;</label></td>
            <td><input type="text" name="query" value="" size="20" accesskey="s"/></td>
          </tr>
        </table>
      </form>
    </li>
  </ul>
</div>
<div class="nav">
<a class="el" href="dir_f60961de8e5edc3b2658ef023e959e45.html">deploy</a>&nbsp;&raquo&nbsp;<a class="el" href="dir_6b4e91e54b7316b376882a6402adbf44.html">include</a>&nbsp;&raquo&nbsp;<a class="el" href="dir_df3a7695d5a9e696f30b948b566829e7.html">axis2-1.6.0</a></div>
<h1>axis2_simple_http_svr_conn.h</h1><a href="axis2__simple__http__svr__conn_8h.html">Go to the documentation of this file.</a><div class="fragment"><pre class="fragment"><a name="l00001"></a>00001 
<a name="l00002"></a>00002 <span class="comment">/*</span>
<a name="l00003"></a>00003 <span class="comment"> * Licensed to the Apache Software Foundation (ASF) under one or more</span>
<a name="l00004"></a>00004 <span class="comment"> * contributor license agreements.  See the NOTICE file distributed with</span>
<a name="l00005"></a>00005 <span class="comment"> * this work for additional information regarding copyright ownership.</span>
<a name="l00006"></a>00006 <span class="comment"> * The ASF licenses this file to You under the Apache License, Version 2.0</span>
<a name="l00007"></a>00007 <span class="comment"> * (the "License"); you may not use this file except in compliance with</span>
<a name="l00008"></a>00008 <span class="comment"> * the License.  You may obtain a copy of the License at</span>
<a name="l00009"></a>00009 <span class="comment"> *</span>
<a name="l00010"></a>00010 <span class="comment"> *      http://www.apache.org/licenses/LICENSE-2.0</span>
<a name="l00011"></a>00011 <span class="comment"> *</span>
<a name="l00012"></a>00012 <span class="comment"> * Unless required by applicable law or agreed to in writing, software</span>
<a name="l00013"></a>00013 <span class="comment"> * distributed under the License is distributed on an "AS IS" BASIS,</span>
<a name="l00014"></a>00014 <span class="comment"> * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.</span>
<a name="l00015"></a>00015 <span class="comment"> * See the License for the specific language governing permissions and</span>
<a name="l00016"></a>00016 <span class="comment"> * limitations under the License.</span>
<a name="l00017"></a>00017 <span class="comment"> */</span>
<a name="l00018"></a>00018 
<a name="l00019"></a>00019 <span class="preprocessor">#ifndef AXIS2_SIMPLE_HTTP_SVR_CONN_H</span>
<a name="l00020"></a>00020 <span class="preprocessor"></span><span class="preprocessor">#define AXIS2_SIMPLE_HTTP_SVR_CONN_H</span>
<a name="l00021"></a>00021 <span class="preprocessor"></span>
<a name="l00032"></a>00032 <span class="preprocessor">#include &lt;axis2_const.h&gt;</span>
<a name="l00033"></a>00033 <span class="preprocessor">#include &lt;<a class="code" href="axis2__defines_8h.html" title="Useful definitions, which may have platform concerns.">axis2_defines.h</a>&gt;</span>
<a name="l00034"></a>00034 <span class="preprocessor">#include &lt;<a class="code" href="axutil__env_8h.html" title="Axis2 environment that acts as a container for error, log and memory allocator routines...">axutil_env.h</a>&gt;</span>
<a name="l00035"></a>00035 <span class="preprocessor">#include &lt;<a class="code" href="axis2__http__simple__request_8h.html" title="axis2 HTTP Simple Request">axis2_http_simple_request.h</a>&gt;</span>
<a name="l00036"></a>00036 <span class="preprocessor">#include &lt;axis2_http_simple_response.h&gt;</span>
<a name="l00037"></a>00037 <span class="preprocessor">#include &lt;<a class="code" href="axis2__http__response__writer_8h.html" title="axis2 Response Writer">axis2_http_response_writer.h</a>&gt;</span>
<a name="l00038"></a>00038 
<a name="l00039"></a>00039 <span class="preprocessor">#ifdef __cplusplus</span>
<a name="l00040"></a>00040 <span class="preprocessor"></span><span class="keyword">extern</span> <span class="stringliteral">"C"</span>
<a name="l00041"></a>00041 {
<a name="l00042"></a>00042 <span class="preprocessor">#endif</span>
<a name="l00043"></a>00043 <span class="preprocessor"></span>
<a name="l00044"></a>00044     <span class="keyword">typedef</span> <span class="keyword">struct </span>axis2_simple_http_svr_conn axis2_simple_http_svr_conn_t;
<a name="l00045"></a>00045 
<a name="l00051"></a>00051     AXIS2_EXTERN axis2_status_t AXIS2_CALL
<a name="l00052"></a>00052     <a class="code" href="axis2__simple__http__svr__conn_8h.html#8e73143cc65dc21245af0fd6135be2ad">axis2_simple_http_svr_conn_close</a>(
<a name="l00053"></a>00053         axis2_simple_http_svr_conn_t * svr_conn,
<a name="l00054"></a>00054         <span class="keyword">const</span> <a class="code" href="structaxutil__env.html" title="Axis2 Environment struct.">axutil_env_t</a> * env);
<a name="l00055"></a>00055 
<a name="l00060"></a>00060     AXIS2_EXTERN axis2_bool_t AXIS2_CALL
<a name="l00061"></a>00061     <a class="code" href="axis2__simple__http__svr__conn_8h.html#186ef9e05e9b1e7125ddf020412caa88">axis2_simple_http_svr_conn_is_open</a>(
<a name="l00062"></a>00062         axis2_simple_http_svr_conn_t * svr_conn,
<a name="l00063"></a>00063         <span class="keyword">const</span> <a class="code" href="structaxutil__env.html" title="Axis2 Environment struct.">axutil_env_t</a> * env);
<a name="l00064"></a>00064 
<a name="l00071"></a>00071     AXIS2_EXTERN axis2_status_t AXIS2_CALL
<a name="l00072"></a>00072 
<a name="l00073"></a>00073     <a class="code" href="axis2__simple__http__svr__conn_8h.html#03a2d4fcb2b4fd8cbb7a5599d8017937">axis2_simple_http_svr_conn_set_keep_alive</a>(
<a name="l00074"></a>00074         axis2_simple_http_svr_conn_t * svr_conn,
<a name="l00075"></a>00075         <span class="keyword">const</span> <a class="code" href="structaxutil__env.html" title="Axis2 Environment struct.">axutil_env_t</a> * env,
<a name="l00076"></a>00076         axis2_bool_t keep_alive);
<a name="l00077"></a>00077 
<a name="l00082"></a>00082     AXIS2_EXTERN axis2_bool_t AXIS2_CALL
<a name="l00083"></a>00083 
<a name="l00084"></a>00084     <a class="code" href="axis2__simple__http__svr__conn_8h.html#6fac44d24157d8947ec27056b3e9d66e">axis2_simple_http_svr_conn_is_keep_alive</a>(
<a name="l00085"></a>00085         axis2_simple_http_svr_conn_t * svr_conn,
<a name="l00086"></a>00086         <span class="keyword">const</span> <a class="code" href="structaxutil__env.html" title="Axis2 Environment struct.">axutil_env_t</a> * env);
<a name="l00087"></a>00087 
<a name="l00092"></a>00092     AXIS2_EXTERN axutil_stream_t *AXIS2_CALL
<a name="l00093"></a>00093 
<a name="l00094"></a>00094     <a class="code" href="axis2__simple__http__svr__conn_8h.html#ae980e99f336b1d6e33c8c33f857eabc">axis2_simple_http_svr_conn_get_stream</a>(
<a name="l00095"></a>00095         <span class="keyword">const</span> axis2_simple_http_svr_conn_t * svr_conn,
<a name="l00096"></a>00096         <span class="keyword">const</span> <a class="code" href="structaxutil__env.html" title="Axis2 Environment struct.">axutil_env_t</a> * env);
<a name="l00097"></a>00097 
<a name="l00102"></a>00102     AXIS2_EXTERN <a class="code" href="group__axis2__http__response__writer.html#g2259f3ec5abf54528a6b9797e8188771">axis2_http_response_writer_t</a> *AXIS2_CALL
<a name="l00103"></a>00103 
<a name="l00104"></a>00104     <a class="code" href="axis2__simple__http__svr__conn_8h.html#20ca807331098d9e762a931b0ada7921">axis2_simple_http_svr_conn_get_writer</a>(
<a name="l00105"></a>00105         <span class="keyword">const</span> axis2_simple_http_svr_conn_t * svr_conn,
<a name="l00106"></a>00106         <span class="keyword">const</span> <a class="code" href="structaxutil__env.html" title="Axis2 Environment struct.">axutil_env_t</a> * env);
<a name="l00107"></a>00107 
<a name="l00112"></a>00112     AXIS2_EXTERN <a class="code" href="group__axis2__http__simple__request.html#g587c6b13c2e9b94b68e3a2a142cc3416">axis2_http_simple_request_t</a> *AXIS2_CALL
<a name="l00113"></a>00113 
<a name="l00114"></a>00114     <a class="code" href="axis2__simple__http__svr__conn_8h.html#66c2425d7f064862abd57a3039214531">axis2_simple_http_svr_conn_read_request</a>(
<a name="l00115"></a>00115         axis2_simple_http_svr_conn_t * svr_conn,
<a name="l00116"></a>00116         <span class="keyword">const</span> <a class="code" href="structaxutil__env.html" title="Axis2 Environment struct.">axutil_env_t</a> * env);
<a name="l00117"></a>00117 
<a name="l00124"></a>00124     AXIS2_EXTERN axis2_status_t AXIS2_CALL
<a name="l00125"></a>00125 
<a name="l00126"></a>00126     <a class="code" href="axis2__simple__http__svr__conn_8h.html#9c5f441d8ba42ed821177698719aae49">axis2_simple_http_svr_conn_write_response</a>(
<a name="l00127"></a>00127         axis2_simple_http_svr_conn_t * svr_conn,
<a name="l00128"></a>00128         <span class="keyword">const</span> <a class="code" href="structaxutil__env.html" title="Axis2 Environment struct.">axutil_env_t</a> * env,
<a name="l00129"></a>00129         <a class="code" href="group__axis2__http__simple__response.html#g5ebc18702d80d368692d1922f9accb1f">axis2_http_simple_response_t</a> * response);
<a name="l00130"></a>00130 
<a name="l00137"></a>00137     AXIS2_EXTERN axis2_status_t AXIS2_CALL
<a name="l00138"></a>00138 
<a name="l00139"></a>00139     <a class="code" href="axis2__simple__http__svr__conn_8h.html#29cb398cc123654c068598dfec057da7">axis2_simple_http_svr_conn_set_rcv_timeout</a>(
<a name="l00140"></a>00140         axis2_simple_http_svr_conn_t * svr_conn,
<a name="l00141"></a>00141         <span class="keyword">const</span> <a class="code" href="structaxutil__env.html" title="Axis2 Environment struct.">axutil_env_t</a> * env,
<a name="l00142"></a>00142         <span class="keywordtype">int</span> timeout);
<a name="l00143"></a>00143 
<a name="l00150"></a>00150     AXIS2_EXTERN axis2_status_t AXIS2_CALL
<a name="l00151"></a>00151 
<a name="l00152"></a>00152     <a class="code" href="axis2__simple__http__svr__conn_8h.html#8c6523b52c1259a074454155d2518af5">axis2_simple_http_svr_conn_set_snd_timeout</a>(
<a name="l00153"></a>00153         axis2_simple_http_svr_conn_t * svr_conn,
<a name="l00154"></a>00154         <span class="keyword">const</span> <a class="code" href="structaxutil__env.html" title="Axis2 Environment struct.">axutil_env_t</a> * env,
<a name="l00155"></a>00155         <span class="keywordtype">int</span> timeout);
<a name="l00156"></a>00156 
<a name="l00161"></a>00161     AXIS2_EXTERN axis2_char_t *AXIS2_CALL
<a name="l00162"></a>00162 
<a name="l00163"></a>00163     <a class="code" href="axis2__simple__http__svr__conn_8h.html#a77cb5a274e07015c40d81f352349b29">axis2_simple_http_svr_conn_get_svr_ip</a>(
<a name="l00164"></a>00164         <span class="keyword">const</span> axis2_simple_http_svr_conn_t * svr_conn,
<a name="l00165"></a>00165         <span class="keyword">const</span> <a class="code" href="structaxutil__env.html" title="Axis2 Environment struct.">axutil_env_t</a> * env);
<a name="l00166"></a>00166 
<a name="l00171"></a>00171     AXIS2_EXTERN axis2_char_t *AXIS2_CALL
<a name="l00172"></a>00172 
<a name="l00173"></a>00173     <a class="code" href="axis2__simple__http__svr__conn_8h.html#40d5571375a2c2cae2274d29760e3a49">axis2_simple_http_svr_conn_get_peer_ip</a>(
<a name="l00174"></a>00174         <span class="keyword">const</span> axis2_simple_http_svr_conn_t * svr_conn,
<a name="l00175"></a>00175         <span class="keyword">const</span> <a class="code" href="structaxutil__env.html" title="Axis2 Environment struct.">axutil_env_t</a> * env);
<a name="l00176"></a>00176 
<a name="l00177"></a>00177 
<a name="l00183"></a>00183     AXIS2_EXTERN <span class="keywordtype">void</span> AXIS2_CALL
<a name="l00184"></a>00184     <a class="code" href="axis2__simple__http__svr__conn_8h.html#5718356edb01a8c6a62fc466e4ba5f35">axis2_simple_http_svr_conn_free</a>(
<a name="l00185"></a>00185         axis2_simple_http_svr_conn_t * svr_conn,
<a name="l00186"></a>00186         <span class="keyword">const</span> <a class="code" href="structaxutil__env.html" title="Axis2 Environment struct.">axutil_env_t</a> * env);
<a name="l00187"></a>00187 
<a name="l00193"></a>00193     AXIS2_EXTERN axis2_simple_http_svr_conn_t *AXIS2_CALL
<a name="l00194"></a>00194 
<a name="l00195"></a>00195     <a class="code" href="axis2__simple__http__svr__conn_8h.html#4b1f415af7c9512db5e66d4eef1ba24c">axis2_simple_http_svr_conn_create</a>(
<a name="l00196"></a>00196         <span class="keyword">const</span> <a class="code" href="structaxutil__env.html" title="Axis2 Environment struct.">axutil_env_t</a> * env,
<a name="l00197"></a>00197         <span class="keywordtype">int</span> sockfd);
<a name="l00198"></a>00198 
<a name="l00201"></a>00201 <span class="preprocessor">#ifdef __cplusplus</span>
<a name="l00202"></a>00202 <span class="preprocessor"></span>}
<a name="l00203"></a>00203 <span class="preprocessor">#endif</span>
<a name="l00204"></a>00204 <span class="preprocessor"></span>
<a name="l00205"></a>00205 <span class="preprocessor">#endif                          </span><span class="comment">/* AXIS2_SIMPLE_HTTP_SVR_CONN_H */</span>
</pre></div><hr size="1"><address style="text-align: right;"><small>Generated on Fri Apr 17 11:49:42 2009 for Axis2/C by&nbsp;
<a href="http://www.doxygen.org/index.html">
<img src="doxygen.png" alt="doxygen" align="middle" border="0"></a> 1.5.3 </small></address>
</body>
</html>


<|start_filename|>xdocs/api/html/group__axiom__soap__envelope.html<|end_filename|>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html><head><meta http-equiv="Content-Type" content="text/html;charset=UTF-8">
<title>Axis2/C: soap envelope</title>
<link href="doxygen.css" rel="stylesheet" type="text/css">
<link href="tabs.css" rel="stylesheet" type="text/css">
</head><body>
<!-- Generated by Doxygen 1.5.3 -->
<div class="tabs">
  <ul>
    <li><a href="index.html"><span>Main&nbsp;Page</span></a></li>
    <li><a href="modules.html"><span>Modules</span></a></li>
    <li><a href="annotated.html"><span>Classes</span></a></li>
    <li><a href="files.html"><span>Files</span></a></li>
    <li><a href="dirs.html"><span>Directories</span></a></li>
    <li><a href="pages.html"><span>Related&nbsp;Pages</span></a></li>
    <li><a href="examples.html"><span>Examples</span></a></li>
    <li>
      <form action="search.php" method="get">
        <table cellspacing="0" cellpadding="0" border="0">
          <tr>
            <td><label>&nbsp;<u>S</u>earch&nbsp;for&nbsp;</label></td>
            <td><input type="text" name="query" value="" size="20" accesskey="s"/></td>
          </tr>
        </table>
      </form>
    </li>
  </ul>
</div>
<h1>soap envelope<br>
<small>
[<a class="el" href="group__axiom__soap.html">SOAP</a>]</small>
</h1><table border="0" cellpadding="0" cellspacing="0">
<tr><td></td></tr>
<tr><td colspan="2"><br><h2>Functions</h2></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top">AXIS2_EXTERN <br>
axiom_soap_envelope_t *&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__axiom__soap__envelope.html#g5041f00b86da0b31997634056ab91879">axiom_soap_envelope_create</a> (const <a class="el" href="structaxutil__env.html">axutil_env_t</a> *env, axiom_namespace_t *ns)</td></tr>

<tr><td class="memItemLeft" nowrap align="right" valign="top">AXIS2_EXTERN <br>
axiom_soap_envelope_t *&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__axiom__soap__envelope.html#g13d7cc5563a577ffe36537fcab3c6220">axiom_soap_envelope_create_with_soap_version_prefix</a> (const <a class="el" href="structaxutil__env.html">axutil_env_t</a> *env, int soap_version, const axis2_char_t *prefix)</td></tr>

<tr><td class="memItemLeft" nowrap align="right" valign="top">AXIS2_EXTERN <br>
axiom_soap_envelope_t *&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__axiom__soap__envelope.html#gcc0331effc60b8a61285e3ec07e32652">axiom_soap_envelope_create_default_soap_envelope</a> (const <a class="el" href="structaxutil__env.html">axutil_env_t</a> *env, int soap_version)</td></tr>

<tr><td class="memItemLeft" nowrap align="right" valign="top">AXIS2_EXTERN <br>
axiom_soap_envelope_t *&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__axiom__soap__envelope.html#gb7fc6e54a5c354e7e5f285c78e7f7fc0">axiom_soap_envelope_create_default_soap_fault_envelope</a> (const <a class="el" href="structaxutil__env.html">axutil_env_t</a> *env, const axis2_char_t *code_value, const axis2_char_t *reason_text, const int soap_version, <a class="el" href="group__axutil__array__list.html#g1a6a89777db876cfa0cc86787b7be6a0">axutil_array_list_t</a> *sub_codes, axiom_node_t *detail_node)</td></tr>

<tr><td class="memItemLeft" nowrap align="right" valign="top">AXIS2_EXTERN struct <br>
axiom_soap_header *&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__axiom__soap__envelope.html#ge45fe5ee486a2cba9fd1fbdf50211b36">axiom_soap_envelope_get_header</a> (axiom_soap_envelope_t *envelope, const <a class="el" href="structaxutil__env.html">axutil_env_t</a> *env)</td></tr>

<tr><td class="memItemLeft" nowrap align="right" valign="top">AXIS2_EXTERN struct <br>
axiom_soap_body *&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__axiom__soap__envelope.html#g662a2d8cd4bf9a7a82f79492c9b16ad3">axiom_soap_envelope_get_body</a> (axiom_soap_envelope_t *envelope, const <a class="el" href="structaxutil__env.html">axutil_env_t</a> *env)</td></tr>

<tr><td class="memItemLeft" nowrap align="right" valign="top">AXIS2_EXTERN <br>
axis2_status_t&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__axiom__soap__envelope.html#gf409ccdda293c3e5b8b0e3da3e5417be">axiom_soap_envelope_serialize</a> (axiom_soap_envelope_t *envelope, const <a class="el" href="structaxutil__env.html">axutil_env_t</a> *env, <a class="el" href="group__axiom__output.html#gfe1ea804d7a8179e85371f065cd9df09">axiom_output_t</a> *om_output, axis2_bool_t cache)</td></tr>

<tr><td class="memItemLeft" nowrap align="right" valign="top">AXIS2_EXTERN void&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__axiom__soap__envelope.html#g133462e3b74e84e2ad650fa7b54b303b">axiom_soap_envelope_free</a> (axiom_soap_envelope_t *envelope, const <a class="el" href="structaxutil__env.html">axutil_env_t</a> *env)</td></tr>

<tr><td class="memItemLeft" nowrap align="right" valign="top">AXIS2_EXTERN <br>
axiom_node_t *&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__axiom__soap__envelope.html#ga494a9aa5bb5567f6362ed6ba45ecf32">axiom_soap_envelope_get_base_node</a> (axiom_soap_envelope_t *envelope, const <a class="el" href="structaxutil__env.html">axutil_env_t</a> *env)</td></tr>

<tr><td class="memItemLeft" nowrap align="right" valign="top">AXIS2_EXTERN int&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__axiom__soap__envelope.html#g9f64833d41691f1ae7db590fd11aa25c">axiom_soap_envelope_get_soap_version</a> (axiom_soap_envelope_t *envelope, const <a class="el" href="structaxutil__env.html">axutil_env_t</a> *env)</td></tr>

<tr><td class="memItemLeft" nowrap align="right" valign="top">AXIS2_EXTERN <br>
axiom_namespace_t *&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__axiom__soap__envelope.html#ga357f2d36fb2912f9c6bc258a6cb8c0d">axiom_soap_envelope_get_namespace</a> (axiom_soap_envelope_t *envelope, const <a class="el" href="structaxutil__env.html">axutil_env_t</a> *env)</td></tr>

<tr><td class="memItemLeft" nowrap align="right" valign="top">AXIS2_EXTERN <br>
axis2_status_t&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__axiom__soap__envelope.html#g2d58cc830b1e909c68424349746e93a8">axiom_soap_envelope_set_soap_version</a> (axiom_soap_envelope_t *envelope, const <a class="el" href="structaxutil__env.html">axutil_env_t</a> *env, int soap_version)</td></tr>

<tr><td class="memItemLeft" nowrap align="right" valign="top">AXIS2_EXTERN <br>
axis2_status_t&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__axiom__soap__envelope.html#ge4c0fcc8adc7d8d816c81f009bb81e0d">axiom_soap_envelope_increment_ref</a> (axiom_soap_envelope_t *envelope, const <a class="el" href="structaxutil__env.html">axutil_env_t</a> *env)</td></tr>

<tr><td class="memItemLeft" nowrap align="right" valign="top">AXIS2_EXTERN struct <br>
axiom_soap_builder *&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__axiom__soap__envelope.html#g17b40326cf1e991991e667f7ea559640">axiom_soap_envelope_get_soap_builder</a> (axiom_soap_envelope_t *envelope, const <a class="el" href="structaxutil__env.html">axutil_env_t</a> *env)</td></tr>

</table>
<hr><h2>Function Documentation</h2>
<a class="anchor" name="g5041f00b86da0b31997634056ab91879"></a><!-- doxytag: member="axiom_soap_envelope.h::axiom_soap_envelope_create" ref="g5041f00b86da0b31997634056ab91879" args="(const axutil_env_t *env, axiom_namespace_t *ns)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">AXIS2_EXTERN axiom_soap_envelope_t* axiom_soap_envelope_create           </td>
          <td>(</td>
          <td class="paramtype">const <a class="el" href="structaxutil__env.html">axutil_env_t</a> *&nbsp;</td>
          <td class="paramname"> <em>env</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">axiom_namespace_t *&nbsp;</td>
          <td class="paramname"> <em>ns</em></td><td>&nbsp;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td><td width="100%"></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
create a soap_envelope with the given namespace prefix and uri as the prefix and uri, The uri of ns should be valid soap uri <dl compact><dt><b>Parameters:</b></dt><dd>
  <table border="0" cellspacing="2" cellpadding="0">
    <tr><td valign="top"></td><td valign="top"><em>env</em>&nbsp;</td><td>Environment. MUST NOT be NULL </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>ns</em>&nbsp;</td><td>The OM namespace</td></tr>
  </table>
</dl>
<dl class="return" compact><dt><b>Returns:</b></dt><dd>Created SOAP envelope </dd></dl>

</div>
</div><p>
<a class="anchor" name="gcc0331effc60b8a61285e3ec07e32652"></a><!-- doxytag: member="axiom_soap_envelope.h::axiom_soap_envelope_create_default_soap_envelope" ref="gcc0331effc60b8a61285e3ec07e32652" args="(const axutil_env_t *env, int soap_version)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">AXIS2_EXTERN axiom_soap_envelope_t* axiom_soap_envelope_create_default_soap_envelope           </td>
          <td>(</td>
          <td class="paramtype">const <a class="el" href="structaxutil__env.html">axutil_env_t</a> *&nbsp;</td>
          <td class="paramname"> <em>env</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">int&nbsp;</td>
          <td class="paramname"> <em>soap_version</em></td><td>&nbsp;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td><td width="100%"></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
Create the default SOAP envelope <dl compact><dt><b>Parameters:</b></dt><dd>
  <table border="0" cellspacing="2" cellpadding="0">
    <tr><td valign="top"></td><td valign="top"><em>envelope</em>&nbsp;</td><td>OM SOAP Envelope </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>env</em>&nbsp;</td><td>Environment. MUST NOT be NULL</td></tr>
  </table>
</dl>
<dl class="return" compact><dt><b>Returns:</b></dt><dd>Created SOAP envelope </dd></dl>

</div>
</div><p>
<a class="anchor" name="gb7fc6e54a5c354e7e5f285c78e7f7fc0"></a><!-- doxytag: member="axiom_soap_envelope.h::axiom_soap_envelope_create_default_soap_fault_envelope" ref="gb7fc6e54a5c354e7e5f285c78e7f7fc0" args="(const axutil_env_t *env, const axis2_char_t *code_value, const axis2_char_t *reason_text, const int soap_version, axutil_array_list_t *sub_codes, axiom_node_t *detail_node)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">AXIS2_EXTERN axiom_soap_envelope_t* axiom_soap_envelope_create_default_soap_fault_envelope           </td>
          <td>(</td>
          <td class="paramtype">const <a class="el" href="structaxutil__env.html">axutil_env_t</a> *&nbsp;</td>
          <td class="paramname"> <em>env</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const axis2_char_t *&nbsp;</td>
          <td class="paramname"> <em>code_value</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const axis2_char_t *&nbsp;</td>
          <td class="paramname"> <em>reason_text</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const int&nbsp;</td>
          <td class="paramname"> <em>soap_version</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype"><a class="el" href="group__axutil__array__list.html#g1a6a89777db876cfa0cc86787b7be6a0">axutil_array_list_t</a> *&nbsp;</td>
          <td class="paramname"> <em>sub_codes</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">axiom_node_t *&nbsp;</td>
          <td class="paramname"> <em>detail_node</em></td><td>&nbsp;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td><td width="100%"></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
Create the default SOAP fault envelope <dl compact><dt><b>Parameters:</b></dt><dd>
  <table border="0" cellspacing="2" cellpadding="0">
    <tr><td valign="top"></td><td valign="top"><em>envelope</em>&nbsp;</td><td>OM SOAP Envelope </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>env</em>&nbsp;</td><td>Environment. MUST NOT be NULL</td></tr>
  </table>
</dl>
<dl class="return" compact><dt><b>Returns:</b></dt><dd>Created SOAP fault envelope </dd></dl>

</div>
</div><p>
<a class="anchor" name="g13d7cc5563a577ffe36537fcab3c6220"></a><!-- doxytag: member="axiom_soap_envelope.h::axiom_soap_envelope_create_with_soap_version_prefix" ref="g13d7cc5563a577ffe36537fcab3c6220" args="(const axutil_env_t *env, int soap_version, const axis2_char_t *prefix)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">AXIS2_EXTERN axiom_soap_envelope_t* axiom_soap_envelope_create_with_soap_version_prefix           </td>
          <td>(</td>
          <td class="paramtype">const <a class="el" href="structaxutil__env.html">axutil_env_t</a> *&nbsp;</td>
          <td class="paramname"> <em>env</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">int&nbsp;</td>
          <td class="paramname"> <em>soap_version</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const axis2_char_t *&nbsp;</td>
          <td class="paramname"> <em>prefix</em></td><td>&nbsp;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td><td width="100%"></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
create a soap_envelope with the given namespace prefix and uri is selected according to soap_version, soap version should be one of AXIOM_SOAP11 or AXIOM_SOAP12 <dl compact><dt><b>Parameters:</b></dt><dd>
  <table border="0" cellspacing="2" cellpadding="0">
    <tr><td valign="top"></td><td valign="top"><em>env</em>&nbsp;</td><td>Environment. MUST NOT be NULL </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>prefix</em>&nbsp;</td><td>soap envelope prefix if prefix is NULL default prefix is used</td></tr>
  </table>
</dl>
<dl class="return" compact><dt><b>Returns:</b></dt><dd>a pointer to soap envelope struct </dd></dl>

</div>
</div><p>
<a class="anchor" name="g133462e3b74e84e2ad650fa7b54b303b"></a><!-- doxytag: member="axiom_soap_envelope.h::axiom_soap_envelope_free" ref="g133462e3b74e84e2ad650fa7b54b303b" args="(axiom_soap_envelope_t *envelope, const axutil_env_t *env)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">AXIS2_EXTERN void axiom_soap_envelope_free           </td>
          <td>(</td>
          <td class="paramtype">axiom_soap_envelope_t *&nbsp;</td>
          <td class="paramname"> <em>envelope</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const <a class="el" href="structaxutil__env.html">axutil_env_t</a> *&nbsp;</td>
          <td class="paramname"> <em>env</em></td><td>&nbsp;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td><td width="100%"></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
Free function, This function deallocate all the resources associated with the soap_envelope IT frees it's soap body and soap headers as well as the underlying om node tree by calling axiom_node_free_tree function <dl compact><dt><b>Parameters:</b></dt><dd>
  <table border="0" cellspacing="2" cellpadding="0">
    <tr><td valign="top"></td><td valign="top"><em>envelope</em>&nbsp;</td><td>soap_envelope </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>env</em>&nbsp;</td><td>environment </td></tr>
  </table>
</dl>
<dl class="return" compact><dt><b>Returns:</b></dt><dd>VOID </dd></dl>

</div>
</div><p>
<a class="anchor" name="ga494a9aa5bb5567f6362ed6ba45ecf32"></a><!-- doxytag: member="axiom_soap_envelope.h::axiom_soap_envelope_get_base_node" ref="ga494a9aa5bb5567f6362ed6ba45ecf32" args="(axiom_soap_envelope_t *envelope, const axutil_env_t *env)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">AXIS2_EXTERN axiom_node_t* axiom_soap_envelope_get_base_node           </td>
          <td>(</td>
          <td class="paramtype">axiom_soap_envelope_t *&nbsp;</td>
          <td class="paramname"> <em>envelope</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const <a class="el" href="structaxutil__env.html">axutil_env_t</a> *&nbsp;</td>
          <td class="paramname"> <em>env</em></td><td>&nbsp;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td><td width="100%"></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
returns the om_node associated with this soap envelope <dl compact><dt><b>Parameters:</b></dt><dd>
  <table border="0" cellspacing="2" cellpadding="0">
    <tr><td valign="top"></td><td valign="top"><em>envelope</em>&nbsp;</td><td>soap_envelope </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>env</em>&nbsp;</td><td>environment </td></tr>
  </table>
</dl>
<dl class="return" compact><dt><b>Returns:</b></dt><dd>axiom_node_t pointer </dd></dl>

</div>
</div><p>
<a class="anchor" name="g662a2d8cd4bf9a7a82f79492c9b16ad3"></a><!-- doxytag: member="axiom_soap_envelope.h::axiom_soap_envelope_get_body" ref="g662a2d8cd4bf9a7a82f79492c9b16ad3" args="(axiom_soap_envelope_t *envelope, const axutil_env_t *env)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">AXIS2_EXTERN struct axiom_soap_body* axiom_soap_envelope_get_body           </td>
          <td>(</td>
          <td class="paramtype">axiom_soap_envelope_t *&nbsp;</td>
          <td class="paramname"> <em>envelope</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const <a class="el" href="structaxutil__env.html">axutil_env_t</a> *&nbsp;</td>
          <td class="paramname"> <em>env</em></td><td>&nbsp;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td><td width="100%"><code> [read]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
Returns the soap body associated with this soap envelope <dl compact><dt><b>Parameters:</b></dt><dd>
  <table border="0" cellspacing="2" cellpadding="0">
    <tr><td valign="top"></td><td valign="top"><em>envelope</em>&nbsp;</td><td>soap_envelope </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>env</em>&nbsp;</td><td>environment </td></tr>
  </table>
</dl>
<dl class="return" compact><dt><b>Returns:</b></dt><dd>soap_body </dd></dl>

</div>
</div><p>
<a class="anchor" name="ge45fe5ee486a2cba9fd1fbdf50211b36"></a><!-- doxytag: member="axiom_soap_envelope.h::axiom_soap_envelope_get_header" ref="ge45fe5ee486a2cba9fd1fbdf50211b36" args="(axiom_soap_envelope_t *envelope, const axutil_env_t *env)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">AXIS2_EXTERN struct axiom_soap_header* axiom_soap_envelope_get_header           </td>
          <td>(</td>
          <td class="paramtype">axiom_soap_envelope_t *&nbsp;</td>
          <td class="paramname"> <em>envelope</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const <a class="el" href="structaxutil__env.html">axutil_env_t</a> *&nbsp;</td>
          <td class="paramname"> <em>env</em></td><td>&nbsp;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td><td width="100%"><code> [read]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
gets the soap header of this soap envelope <dl compact><dt><b>Parameters:</b></dt><dd>
  <table border="0" cellspacing="2" cellpadding="0">
    <tr><td valign="top"></td><td valign="top"><em>envelope</em>&nbsp;</td><td>soap envelope </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>env</em>&nbsp;</td><td>environment must not be null </td></tr>
  </table>
</dl>
<dl class="return" compact><dt><b>Returns:</b></dt><dd>soap header null it no header is present </dd></dl>

</div>
</div><p>
<a class="anchor" name="ga357f2d36fb2912f9c6bc258a6cb8c0d"></a><!-- doxytag: member="axiom_soap_envelope.h::axiom_soap_envelope_get_namespace" ref="ga357f2d36fb2912f9c6bc258a6cb8c0d" args="(axiom_soap_envelope_t *envelope, const axutil_env_t *env)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">AXIS2_EXTERN axiom_namespace_t* axiom_soap_envelope_get_namespace           </td>
          <td>(</td>
          <td class="paramtype">axiom_soap_envelope_t *&nbsp;</td>
          <td class="paramname"> <em>envelope</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const <a class="el" href="structaxutil__env.html">axutil_env_t</a> *&nbsp;</td>
          <td class="paramname"> <em>env</em></td><td>&nbsp;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td><td width="100%"></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
Return the soap envelope namespace <dl compact><dt><b>Parameters:</b></dt><dd>
  <table border="0" cellspacing="2" cellpadding="0">
    <tr><td valign="top"></td><td valign="top"><em>envelope</em>&nbsp;</td><td></td></tr>
    <tr><td valign="top"></td><td valign="top"><em>env</em>&nbsp;</td><td></td></tr>
  </table>
</dl>
<dl class="return" compact><dt><b>Returns:</b></dt><dd>axiom_namespace_t </dd></dl>

</div>
</div><p>
<a class="anchor" name="g17b40326cf1e991991e667f7ea559640"></a><!-- doxytag: member="axiom_soap_envelope.h::axiom_soap_envelope_get_soap_builder" ref="g17b40326cf1e991991e667f7ea559640" args="(axiom_soap_envelope_t *envelope, const axutil_env_t *env)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">AXIS2_EXTERN struct axiom_soap_builder* axiom_soap_envelope_get_soap_builder           </td>
          <td>(</td>
          <td class="paramtype">axiom_soap_envelope_t *&nbsp;</td>
          <td class="paramname"> <em>envelope</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const <a class="el" href="structaxutil__env.html">axutil_env_t</a> *&nbsp;</td>
          <td class="paramname"> <em>env</em></td><td>&nbsp;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td><td width="100%"><code> [read]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
get the soap builder of the envelope <dl compact><dt><b>Parameters:</b></dt><dd>
  <table border="0" cellspacing="2" cellpadding="0">
    <tr><td valign="top"></td><td valign="top"><em>envelope</em>&nbsp;</td><td>OM SOAP Envelope </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>env</em>&nbsp;</td><td>Environment. MUST NOT be NULL</td></tr>
  </table>
</dl>
<dl class="return" compact><dt><b>Returns:</b></dt><dd>soap_builder struct related to the envelope </dd></dl>

</div>
</div><p>
<a class="anchor" name="g9f64833d41691f1ae7db590fd11aa25c"></a><!-- doxytag: member="axiom_soap_envelope.h::axiom_soap_envelope_get_soap_version" ref="g9f64833d41691f1ae7db590fd11aa25c" args="(axiom_soap_envelope_t *envelope, const axutil_env_t *env)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">AXIS2_EXTERN int axiom_soap_envelope_get_soap_version           </td>
          <td>(</td>
          <td class="paramtype">axiom_soap_envelope_t *&nbsp;</td>
          <td class="paramname"> <em>envelope</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const <a class="el" href="structaxutil__env.html">axutil_env_t</a> *&nbsp;</td>
          <td class="paramname"> <em>env</em></td><td>&nbsp;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td><td width="100%"></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
returns the soap version of this soap envelope <dl compact><dt><b>Parameters:</b></dt><dd>
  <table border="0" cellspacing="2" cellpadding="0">
    <tr><td valign="top"></td><td valign="top"><em>envelope</em>&nbsp;</td><td>soap_envelope </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>env</em>&nbsp;</td><td>environment must not be null </td></tr>
  </table>
</dl>
<dl class="return" compact><dt><b>Returns:</b></dt><dd>soap_version AXIOM_SOAP12 or AXIOM_SOAP11 </dd></dl>

</div>
</div><p>
<a class="anchor" name="ge4c0fcc8adc7d8d816c81f009bb81e0d"></a><!-- doxytag: member="axiom_soap_envelope.h::axiom_soap_envelope_increment_ref" ref="ge4c0fcc8adc7d8d816c81f009bb81e0d" args="(axiom_soap_envelope_t *envelope, const axutil_env_t *env)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">AXIS2_EXTERN axis2_status_t axiom_soap_envelope_increment_ref           </td>
          <td>(</td>
          <td class="paramtype">axiom_soap_envelope_t *&nbsp;</td>
          <td class="paramname"> <em>envelope</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const <a class="el" href="structaxutil__env.html">axutil_env_t</a> *&nbsp;</td>
          <td class="paramname"> <em>env</em></td><td>&nbsp;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td><td width="100%"></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
Increment the reference number for the created instance <dl compact><dt><b>Parameters:</b></dt><dd>
  <table border="0" cellspacing="2" cellpadding="0">
    <tr><td valign="top"></td><td valign="top"><em>envelope</em>&nbsp;</td><td>OM SOAP Envelope </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>env</em>&nbsp;</td><td>Environment. MUST NOT be NULL</td></tr>
  </table>
</dl>
<dl class="return" compact><dt><b>Returns:</b></dt><dd>AXIS2_SUCCESS on success else AXIS2_FAILURE </dd></dl>

</div>
</div><p>
<a class="anchor" name="gf409ccdda293c3e5b8b0e3da3e5417be"></a><!-- doxytag: member="axiom_soap_envelope.h::axiom_soap_envelope_serialize" ref="gf409ccdda293c3e5b8b0e3da3e5417be" args="(axiom_soap_envelope_t *envelope, const axutil_env_t *env, axiom_output_t *om_output, axis2_bool_t cache)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">AXIS2_EXTERN axis2_status_t axiom_soap_envelope_serialize           </td>
          <td>(</td>
          <td class="paramtype">axiom_soap_envelope_t *&nbsp;</td>
          <td class="paramname"> <em>envelope</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const <a class="el" href="structaxutil__env.html">axutil_env_t</a> *&nbsp;</td>
          <td class="paramname"> <em>env</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype"><a class="el" href="group__axiom__output.html#gfe1ea804d7a8179e85371f065cd9df09">axiom_output_t</a> *&nbsp;</td>
          <td class="paramname"> <em>om_output</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">axis2_bool_t&nbsp;</td>
          <td class="paramname"> <em>cache</em></td><td>&nbsp;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td><td width="100%"></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
serialize function , serialize the soap envelope IF the soap version it set to soap11 the soap fault part is converted to soap11 fault even is the underlying soap fault is of soap12 type <dl compact><dt><b>Parameters:</b></dt><dd>
  <table border="0" cellspacing="2" cellpadding="0">
    <tr><td valign="top"></td><td valign="top"><em>envelope</em>&nbsp;</td><td>soap envelope </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>env</em>&nbsp;</td><td>environment must not be null </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>om_output</em>&nbsp;</td><td></td></tr>
    <tr><td valign="top"></td><td valign="top"><em>cache</em>&nbsp;</td><td>whether caching is enabled or not </td></tr>
  </table>
</dl>
<dl class="return" compact><dt><b>Returns:</b></dt><dd>status code , AXIS2_SUCCESS if success , AXIS2_FAILURE otherwise </dd></dl>

</div>
</div><p>
<a class="anchor" name="g2d58cc830b1e909c68424349746e93a8"></a><!-- doxytag: member="axiom_soap_envelope.h::axiom_soap_envelope_set_soap_version" ref="g2d58cc830b1e909c68424349746e93a8" args="(axiom_soap_envelope_t *envelope, const axutil_env_t *env, int soap_version)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">AXIS2_EXTERN axis2_status_t axiom_soap_envelope_set_soap_version           </td>
          <td>(</td>
          <td class="paramtype">axiom_soap_envelope_t *&nbsp;</td>
          <td class="paramname"> <em>envelope</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const <a class="el" href="structaxutil__env.html">axutil_env_t</a> *&nbsp;</td>
          <td class="paramname"> <em>env</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">int&nbsp;</td>
          <td class="paramname"> <em>soap_version</em></td><td>&nbsp;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td><td width="100%"></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
Set the SOAP version <dl compact><dt><b>Parameters:</b></dt><dd>
  <table border="0" cellspacing="2" cellpadding="0">
    <tr><td valign="top"></td><td valign="top"><em>envelope</em>&nbsp;</td><td>OM SOAP Envelope </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>env</em>&nbsp;</td><td>Environment. MUST NOT be NULL </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>soap_version,the</em>&nbsp;</td><td>SOAP version number. Must be either AXIOM_SOAP11 or AXIOM_SOAP12</td></tr>
  </table>
</dl>
<dl class="return" compact><dt><b>Returns:</b></dt><dd>AXIS2_SUCCESS on success else AXIS2_FAILURE </dd></dl>

</div>
</div><p>
<hr size="1"><address style="text-align: right;"><small>Generated on Fri Apr 17 11:49:44 2009 for Axis2/C by&nbsp;
<a href="http://www.doxygen.org/index.html">
<img src="doxygen.png" alt="doxygen" align="middle" border="0"></a> 1.5.3 </small></address>
</body>
</html>


<|start_filename|>src/core/transport/amqp/receiver/qpid_receiver/axis2_qpid_receiver_listener.cpp<|end_filename|>
/*
 * 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
 *
 *      tcp://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.
 */

#include <axis2_amqp_request_processor.h>
#include <axis2_amqp_defines.h>
#include <axis2_amqp_util.h>
#include <axis2_qpid_receiver_listener.h>
#include <axis2_qpid_receiver.h>
#include <string>

Axis2QpidReceiverListener::Axis2QpidReceiverListener(
		const axutil_env_t* env,
		axis2_conf_ctx_t*   conf_ctx)
{
	this->env = env;
	this->conf_ctx = conf_ctx;
}


Axis2QpidReceiverListener::~Axis2QpidReceiverListener(void)
{}


void Axis2QpidReceiverListener::received(Message& message)
{
	AXIS2_ENV_CHECK(env, void);

	axis2_amqp_request_processor_resource_pack_t* request_data = NULL;
#ifdef AXIS2_SVR_MULTI_THREADED
	axutil_thread_t* worker_thread = NULL;
#endif

	request_data = (axis2_amqp_request_processor_resource_pack_t*)
					AXIS2_MALLOC(env->allocator, 
								  sizeof(axis2_amqp_request_processor_resource_pack_t));

	if (!request_data)
	{
		AXIS2_LOG_ERROR(env->log, AXIS2_LOG_SI, "Memory Allocation Error");
		return;
	}

	request_data->env = (axutil_env_t*)env;
	request_data->conf_ctx = conf_ctx;

	/* Create a Local Copy of Request Content */
	std::string message_data = message.getData();
	axis2_char_t* request_content = (axis2_char_t*)AXIS2_MALLOC(env->allocator,
																message_data.size());
	memcpy(request_content, message_data.c_str(), message_data.size());

	request_data->request_content = request_content;
	request_data->content_length = message_data.size();

	/* Set ReplyTo */
	request_data->reply_to = NULL;
	if (message.getMessageProperties().hasReplyTo())
	{
		/* Create a Local Copy of ReplyTo */
		std::string reply_to_tmp = message.getMessageProperties().getReplyTo().getRoutingKey();
		axis2_char_t* reply_to = (axis2_char_t*)AXIS2_MALLOC(env->allocator,
															 reply_to_tmp.size() + 1);
		strcpy(reply_to, reply_to_tmp.c_str());

		request_data->reply_to = reply_to;
	}

	/* Copy AMQP headers */
	/* Content-Type */
	request_data->content_type = NULL;
	std::string content_type_tmp = message.getHeaders().getString(AXIS2_AMQP_HEADER_CONTENT_TYPE);
	if (!content_type_tmp.empty())
	{
		axis2_char_t* content_type = (axis2_char_t*)AXIS2_MALLOC(env->allocator,
															     content_type_tmp.size() + 1);
		strcpy(content_type, content_type_tmp.c_str());

		request_data->content_type = content_type;
	}
	
	/* SOAPAction */
	request_data->soap_action = NULL;
	std::string soap_action_tmp = message.getHeaders().getString(AXIS2_AMQP_HEADER_SOAP_ACTION);
	if (!soap_action_tmp.empty())
	{
		axis2_char_t* soap_action = (axis2_char_t*)AXIS2_MALLOC(env->allocator,
															    soap_action_tmp.size() + 1);
		strcpy(soap_action, soap_action_tmp.c_str());

		request_data->soap_action = soap_action;
	}

#ifdef AXIS2_SVR_MULTI_THREADED
	worker_thread = axutil_thread_pool_get_thread(env->thread_pool,
												  axis2_amqp_request_processor_thread_function,
												  (void*)request_data);

	if (!worker_thread)
	{
		AXIS2_LOG_ERROR(env->log, AXIS2_LOG_SI, "Failed to Create Thread");
		return;
	}

	axutil_thread_pool_thread_detach(env->thread_pool, worker_thread);
#else
	axis2_amqp_request_processor_thread_function(NULL, (void*)request_data);
#endif
}


<|start_filename|>xdocs/api/html/neethi__assertion_8h.html<|end_filename|>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html><head><meta http-equiv="Content-Type" content="text/html;charset=UTF-8">
<title>Axis2/C: neethi_assertion.h File Reference</title>
<link href="doxygen.css" rel="stylesheet" type="text/css">
<link href="tabs.css" rel="stylesheet" type="text/css">
</head><body>
<!-- Generated by Doxygen 1.5.3 -->
<div class="tabs">
  <ul>
    <li><a href="index.html"><span>Main&nbsp;Page</span></a></li>
    <li><a href="modules.html"><span>Modules</span></a></li>
    <li><a href="annotated.html"><span>Classes</span></a></li>
    <li class="current"><a href="files.html"><span>Files</span></a></li>
    <li><a href="dirs.html"><span>Directories</span></a></li>
    <li><a href="pages.html"><span>Related&nbsp;Pages</span></a></li>
    <li><a href="examples.html"><span>Examples</span></a></li>
    <li>
      <form action="search.php" method="get">
        <table cellspacing="0" cellpadding="0" border="0">
          <tr>
            <td><label>&nbsp;<u>S</u>earch&nbsp;for&nbsp;</label></td>
            <td><input type="text" name="query" value="" size="20" accesskey="s"/></td>
          </tr>
        </table>
      </form>
    </li>
  </ul>
</div>
<div class="nav">
<a class="el" href="dir_f60961de8e5edc3b2658ef023e959e45.html">deploy</a>&nbsp;&raquo&nbsp;<a class="el" href="dir_6b4e91e54b7316b376882a6402adbf44.html">include</a>&nbsp;&raquo&nbsp;<a class="el" href="dir_df3a7695d5a9e696f30b948b566829e7.html">axis2-1.6.0</a></div>
<h1>neethi_assertion.h File Reference</h1><code>#include &lt;<a class="el" href="axis2__defines_8h-source.html">axis2_defines.h</a>&gt;</code><br>
<code>#include &lt;<a class="el" href="axutil__env_8h-source.html">axutil_env.h</a>&gt;</code><br>
<code>#include &lt;<a class="el" href="neethi__includes_8h-source.html">neethi_includes.h</a>&gt;</code><br>
<code>#include &lt;<a class="el" href="neethi__operator_8h-source.html">neethi_operator.h</a>&gt;</code><br>

<p>
<a href="neethi__assertion_8h-source.html">Go to the source code of this file.</a><table border="0" cellpadding="0" cellspacing="0">
<tr><td></td></tr>
<tr><td colspan="2"><br><h2>Typedefs</h2></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="22ae62af80f80f6b08a02b53b6f55769"></a><!-- doxytag: member="neethi_assertion.h::neethi_assertion_t" ref="22ae62af80f80f6b08a02b53b6f55769" args="" -->
typedef struct <br>
neethi_assertion_t&nbsp;</td><td class="memItemRight" valign="bottom"><b>neethi_assertion_t</b></td></tr>

<tr><td colspan="2"><br><h2>Enumerations</h2></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top">enum &nbsp;</td><td class="memItemRight" valign="bottom"><b>neethi_assertion_type_t</b> { <br>
&nbsp;&nbsp;<b>ASSERTION_TYPE_TRANSPORT_BINDING</b> =  0, 
<b>ASSERTION_TYPE_TRANSPORT_TOKEN</b>, 
<b>ASSERTION_TYPE_ALGORITHM_SUITE</b>, 
<b>ASSERTION_TYPE_INCLUDE_TIMESTAMP</b>, 
<br>
&nbsp;&nbsp;<b>ASSERTION_TYPE_LAYOUT</b>, 
<b>ASSERTION_TYPE_SUPPORTING_TOKENS</b>, 
<b>ASSERTION_TYPE_HTTPS_TOKEN</b>, 
<b>ASSERTION_TYPE_WSS_USERNAME_TOKEN_10</b>, 
<br>
&nbsp;&nbsp;<b>ASSERTION_TYPE_WSS_USERNAME_TOKEN_11</b>, 
<b>ASSERTION_TYPE_USERNAME_TOKEN</b>, 
<b>ASSERTION_TYPE_X509_TOKEN</b>, 
<b>ASSERTION_TYPE_SAML_TOKEN</b>, 
<br>
&nbsp;&nbsp;<b>ASSERTION_TYPE_ISSUED_TOKEN</b>, 
<b>ASSERTION_TYPE_SECURITY_CONTEXT_TOKEN</b>, 
<b>ASSERTION_TYPE_REQUIRE_EXTERNAL_URI</b>, 
<b>ASSERTION_TYPE_SC10_SECURITY_CONTEXT_TOKEN</b>, 
<br>
&nbsp;&nbsp;<b>ASSERTION_TYPE_SC13_SECURITY_CONTEXT_TOKEN</b>, 
<b>ASSERTION_TYPE_ISSUER</b>, 
<b>ASSERTION_TYPE_BOOTSTRAP_POLICY</b>, 
<b>ASSERTION_TYPE_MUST_SUPPORT_REF_KEY_IDENTIFIER</b>, 
<br>
&nbsp;&nbsp;<b>ASSERTION_TYPE_MUST_SUPPORT_REF_ISSUER_SERIAL</b>, 
<b>ASSERTION_TYPE_MUST_SUPPORT_REF_EXTERNAL_URI</b>, 
<b>ASSERTION_TYPE_MUST_SUPPORT_REF_EMBEDDED_TOKEN</b>, 
<b>ASSERTION_TYPE_WSS10</b>, 
<br>
&nbsp;&nbsp;<b>ASSERTION_TYPE_WSS11</b>, 
<b>ASSERTION_TYPE_TRUST10</b>, 
<b>ASSERTION_TYPE_RAMPART_CONFIG</b>, 
<b>ASSERTION_TYPE_ASSYMMETRIC_BINDING</b>, 
<br>
&nbsp;&nbsp;<b>ASSERTION_TYPE_SYMMETRIC_BINDING</b>, 
<b>ASSERTION_TYPE_INITIATOR_TOKEN</b>, 
<b>ASSERTION_TYPE_RECIPIENT_TOKEN</b>, 
<b>ASSERTION_TYPE_PROTECTION_TOKEN</b>, 
<br>
&nbsp;&nbsp;<b>ASSERTION_TYPE_ENCRYPTION_TOKEN</b>, 
<b>ASSERTION_TYPE_SIGNATURE_TOKEN</b>, 
<b>ASSERTION_TYPE_ENCRYPT_BEFORE_SIGNING</b>, 
<b>ASSERTION_TYPE_SIGN_BEFORE_ENCRYPTING</b>, 
<br>
&nbsp;&nbsp;<b>ASSERTION_TYPE_ENCRYPT_SIGNATURE</b>, 
<b>ASSERTION_TYPE_PROTECT_TOKENS</b>, 
<b>ASSERTION_TYPE_ONLY_SIGN_ENTIRE_HEADERS_AND_BODY</b>, 
<b>ASSERTION_TYPE_REQUIRE_KEY_IDENTIFIRE_REFERENCE</b>, 
<br>
&nbsp;&nbsp;<b>ASSERTION_TYPE_REQUIRE_ISSUER_SERIAL_REFERENCE</b>, 
<b>ASSERTION_TYPE_REQUIRE_EMBEDDED_TOKEN_REFERENCE</b>, 
<b>ASSERTION_TYPE_REQUIRE_THUMBPRINT_REFERENCE</b>, 
<b>ASSERTION_TYPE_REQUIRE_EXTERNAL_REFERENCE</b>, 
<br>
&nbsp;&nbsp;<b>ASSERTION_TYPE_REQUIRE_INTERNAL_REFERENCE</b>, 
<b>ASSERTION_TYPE_MUST_SUPPORT_REF_THUMBPRINT</b>, 
<b>ASSERTION_TYPE_MUST_SUPPORT_REF_ENCRYPTED_KEY</b>, 
<b>ASSERTION_TYPE_REQUIRE_SIGNATURE_CONFIRMATION</b>, 
<br>
&nbsp;&nbsp;<b>ASSERTION_TYPE_WSS_X509_V1_TOKEN_10</b>, 
<b>ASSERTION_TYPE_WSS_X509_V3_TOKEN_10</b>, 
<b>ASSERTION_TYPE_WSS_SAML_V10_TOKEN_V10</b>, 
<b>ASSERTION_TYPE_WSS_SAML_V10_TOKEN_V11</b>, 
<br>
&nbsp;&nbsp;<b>ASSERTION_TYPE_WSS_SAML_V11_TOKEN_V10</b>, 
<b>ASSERTION_TYPE_WSS_SAML_V11_TOKEN_V11</b>, 
<b>ASSERTION_TYPE_WSS_SAML_V20_TOKEN_V11</b>, 
<b>ASSERTION_TYPE_SIGNED_ENCRYPTED_PARTS</b>, 
<br>
&nbsp;&nbsp;<b>ASSERTION_TYPE_REQUIRE_DERIVED_KEYS_SC10</b>, 
<b>ASSERTION_TYPE_REQUIRE_DERIVED_KEYS_SC13</b>, 
<b>ASSERTION_TYPE_MUST_SUPPORT_CLIENT_CHALLENGE</b>, 
<b>ASSERTION_TYPE_MUST_SUPPORT_SERVER_CHALLENGE</b>, 
<br>
&nbsp;&nbsp;<b>ASSERTION_TYPE_REQUIRE_CLIENT_ENTROPY</b>, 
<b>ASSERTION_TYPE_REQUIRE_SERVER_ENTROPHY</b>, 
<b>ASSERTION_TYPE_MUST_SUPPORT_ISSUED_TOKENS</b>, 
<b>ASSERTION_TYPE_OPTIMIZED_MIME_SERIALIZATION</b>, 
<br>
&nbsp;&nbsp;<b>ASSERTION_TYPE_RM_ASSERTION</b>, 
<b>ASSERTION_TYPE_UNKNOWN</b>
<br>
 }</td></tr>

<tr><td colspan="2"><br><h2>Functions</h2></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="d01b0260a22ac857ba49f73d9edeca2b"></a><!-- doxytag: member="neethi_assertion.h::neethi_assertion_create" ref="d01b0260a22ac857ba49f73d9edeca2b" args="(const axutil_env_t *env)" -->
AXIS2_EXTERN <br>
neethi_assertion_t *&nbsp;</td><td class="memItemRight" valign="bottom"><b>neethi_assertion_create</b> (const <a class="el" href="structaxutil__env.html">axutil_env_t</a> *env)</td></tr>

<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="8a32e42e5f85c66db801b8792d2cb441"></a><!-- doxytag: member="neethi_assertion.h::neethi_assertion_create_with_args" ref="8a32e42e5f85c66db801b8792d2cb441" args="(const axutil_env_t *env, AXIS2_FREE_VOID_ARG free_func, void *value, neethi_assertion_type_t type)" -->
neethi_assertion_t *&nbsp;</td><td class="memItemRight" valign="bottom"><b>neethi_assertion_create_with_args</b> (const <a class="el" href="structaxutil__env.html">axutil_env_t</a> *env, AXIS2_FREE_VOID_ARG free_func, void *value, neethi_assertion_type_t type)</td></tr>

<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="fac01c84ab8b9a584352bdf6c19f355e"></a><!-- doxytag: member="neethi_assertion.h::neethi_assertion_free" ref="fac01c84ab8b9a584352bdf6c19f355e" args="(neethi_assertion_t *neethi_assertion, const axutil_env_t *env)" -->
AXIS2_EXTERN void&nbsp;</td><td class="memItemRight" valign="bottom"><b>neethi_assertion_free</b> (neethi_assertion_t *neethi_assertion, const <a class="el" href="structaxutil__env.html">axutil_env_t</a> *env)</td></tr>

<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="e4111b81f0c40567e7e3272cca776eb4"></a><!-- doxytag: member="neethi_assertion.h::neethi_assertion_get_type" ref="e4111b81f0c40567e7e3272cca776eb4" args="(neethi_assertion_t *neethi_assertion, const axutil_env_t *env)" -->
AXIS2_EXTERN <br>
neethi_assertion_type_t&nbsp;</td><td class="memItemRight" valign="bottom"><b>neethi_assertion_get_type</b> (neethi_assertion_t *neethi_assertion, const <a class="el" href="structaxutil__env.html">axutil_env_t</a> *env)</td></tr>

<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="6d54e73d55f947ebf828ac587f3857b3"></a><!-- doxytag: member="neethi_assertion.h::neethi_assertion_get_value" ref="6d54e73d55f947ebf828ac587f3857b3" args="(neethi_assertion_t *neethi_assertion, const axutil_env_t *env)" -->
AXIS2_EXTERN void *&nbsp;</td><td class="memItemRight" valign="bottom"><b>neethi_assertion_get_value</b> (neethi_assertion_t *neethi_assertion, const <a class="el" href="structaxutil__env.html">axutil_env_t</a> *env)</td></tr>

<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="2cfeb7f7942877be867a4aa025556a18"></a><!-- doxytag: member="neethi_assertion.h::neethi_assertion_set_value" ref="2cfeb7f7942877be867a4aa025556a18" args="(neethi_assertion_t *neethi_assertion, const axutil_env_t *env, void *value, neethi_assertion_type_t type)" -->
AXIS2_EXTERN <br>
axis2_status_t&nbsp;</td><td class="memItemRight" valign="bottom"><b>neethi_assertion_set_value</b> (neethi_assertion_t *neethi_assertion, const <a class="el" href="structaxutil__env.html">axutil_env_t</a> *env, void *value, neethi_assertion_type_t type)</td></tr>

<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="3943a0823f3ebc41d697247f91d3e60a"></a><!-- doxytag: member="neethi_assertion.h::neethi_assertion_get_element" ref="3943a0823f3ebc41d697247f91d3e60a" args="(neethi_assertion_t *neethi_assertion, const axutil_env_t *env)" -->
AXIS2_EXTERN <br>
axiom_element_t *&nbsp;</td><td class="memItemRight" valign="bottom"><b>neethi_assertion_get_element</b> (neethi_assertion_t *neethi_assertion, const <a class="el" href="structaxutil__env.html">axutil_env_t</a> *env)</td></tr>

<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="215c4e55fd8c174605cef98d7819d9d9"></a><!-- doxytag: member="neethi_assertion.h::neethi_assertion_set_element" ref="215c4e55fd8c174605cef98d7819d9d9" args="(neethi_assertion_t *neethi_assertion, const axutil_env_t *env, axiom_element_t *element)" -->
AXIS2_EXTERN <br>
axis2_status_t&nbsp;</td><td class="memItemRight" valign="bottom"><b>neethi_assertion_set_element</b> (neethi_assertion_t *neethi_assertion, const <a class="el" href="structaxutil__env.html">axutil_env_t</a> *env, axiom_element_t *element)</td></tr>

<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="5c48e67ff8a6331ba57e59d4dec6a77f"></a><!-- doxytag: member="neethi_assertion.h::neethi_assertion_get_is_optional" ref="5c48e67ff8a6331ba57e59d4dec6a77f" args="(neethi_assertion_t *neethi_assertion, const axutil_env_t *env)" -->
AXIS2_EXTERN axis2_bool_t&nbsp;</td><td class="memItemRight" valign="bottom"><b>neethi_assertion_get_is_optional</b> (neethi_assertion_t *neethi_assertion, const <a class="el" href="structaxutil__env.html">axutil_env_t</a> *env)</td></tr>

<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="a0174e7661c0421e6006ba9d02745ede"></a><!-- doxytag: member="neethi_assertion.h::neethi_assertion_set_is_optional" ref="a0174e7661c0421e6006ba9d02745ede" args="(neethi_assertion_t *neethi_assertion, const axutil_env_t *env, axis2_bool_t is_optional)" -->
AXIS2_EXTERN <br>
axis2_status_t&nbsp;</td><td class="memItemRight" valign="bottom"><b>neethi_assertion_set_is_optional</b> (neethi_assertion_t *neethi_assertion, const <a class="el" href="structaxutil__env.html">axutil_env_t</a> *env, axis2_bool_t is_optional)</td></tr>

<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="16acebbad0e3d9981b117477ec49a560"></a><!-- doxytag: member="neethi_assertion.h::neethi_assertion_get_policy_components" ref="16acebbad0e3d9981b117477ec49a560" args="(neethi_assertion_t *neethi_assertion, const axutil_env_t *env)" -->
AXIS2_EXTERN <br>
<a class="el" href="group__axutil__array__list.html#g1a6a89777db876cfa0cc86787b7be6a0">axutil_array_list_t</a> *&nbsp;</td><td class="memItemRight" valign="bottom"><b>neethi_assertion_get_policy_components</b> (neethi_assertion_t *neethi_assertion, const <a class="el" href="structaxutil__env.html">axutil_env_t</a> *env)</td></tr>

<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="b3f4027203645bff77f58243f9b9e911"></a><!-- doxytag: member="neethi_assertion.h::neethi_assertion_add_policy_components" ref="b3f4027203645bff77f58243f9b9e911" args="(neethi_assertion_t *neethi_assertion, axutil_array_list_t *arraylist, const axutil_env_t *env)" -->
AXIS2_EXTERN <br>
axis2_status_t&nbsp;</td><td class="memItemRight" valign="bottom"><b>neethi_assertion_add_policy_components</b> (neethi_assertion_t *neethi_assertion, <a class="el" href="group__axutil__array__list.html#g1a6a89777db876cfa0cc86787b7be6a0">axutil_array_list_t</a> *arraylist, const <a class="el" href="structaxutil__env.html">axutil_env_t</a> *env)</td></tr>

<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="3c8f3398da115e48749ffce0d7b19ac0"></a><!-- doxytag: member="neethi_assertion.h::neethi_assertion_add_operator" ref="3c8f3398da115e48749ffce0d7b19ac0" args="(neethi_assertion_t *neethi_assertion, const axutil_env_t *env, neethi_operator_t *op)" -->
AXIS2_EXTERN <br>
axis2_status_t&nbsp;</td><td class="memItemRight" valign="bottom"><b>neethi_assertion_add_operator</b> (neethi_assertion_t *neethi_assertion, const <a class="el" href="structaxutil__env.html">axutil_env_t</a> *env, neethi_operator_t *op)</td></tr>

<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="6b4e8fa860b0f1b8aba7cb27b397f06b"></a><!-- doxytag: member="neethi_assertion.h::neethi_assertion_is_empty" ref="6b4e8fa860b0f1b8aba7cb27b397f06b" args="(neethi_assertion_t *neethi_assertion, const axutil_env_t *env)" -->
AXIS2_EXTERN axis2_bool_t&nbsp;</td><td class="memItemRight" valign="bottom"><b>neethi_assertion_is_empty</b> (neethi_assertion_t *neethi_assertion, const <a class="el" href="structaxutil__env.html">axutil_env_t</a> *env)</td></tr>

<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="12c59ab41ccc799306316d392c499808"></a><!-- doxytag: member="neethi_assertion.h::neethi_assertion_get_node" ref="12c59ab41ccc799306316d392c499808" args="(neethi_assertion_t *neethi_assertion, const axutil_env_t *env)" -->
AXIS2_EXTERN <br>
axiom_node_t *&nbsp;</td><td class="memItemRight" valign="bottom"><b>neethi_assertion_get_node</b> (neethi_assertion_t *neethi_assertion, const <a class="el" href="structaxutil__env.html">axutil_env_t</a> *env)</td></tr>

<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="1527aaa1ddc78fe384d5d612215decff"></a><!-- doxytag: member="neethi_assertion.h::neethi_assertion_set_node" ref="1527aaa1ddc78fe384d5d612215decff" args="(neethi_assertion_t *neethi_assertion, const axutil_env_t *env, axiom_node_t *node)" -->
AXIS2_EXTERN <br>
axis2_status_t&nbsp;</td><td class="memItemRight" valign="bottom"><b>neethi_assertion_set_node</b> (neethi_assertion_t *neethi_assertion, const <a class="el" href="structaxutil__env.html">axutil_env_t</a> *env, axiom_node_t *node)</td></tr>

<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="ce431b7045056be7dc6451f5c84bd1ea"></a><!-- doxytag: member="neethi_assertion.h::neethi_assertion_serialize" ref="ce431b7045056be7dc6451f5c84bd1ea" args="(neethi_assertion_t *assertion, axiom_node_t *parent, const axutil_env_t *env)" -->
AXIS2_EXTERN <br>
axis2_status_t&nbsp;</td><td class="memItemRight" valign="bottom"><b>neethi_assertion_serialize</b> (neethi_assertion_t *assertion, axiom_node_t *parent, const <a class="el" href="structaxutil__env.html">axutil_env_t</a> *env)</td></tr>

</table>
<hr><a name="_details"></a><h2>Detailed Description</h2>
struct for policy assertions. <hr size="1"><address style="text-align: right;"><small>Generated on Fri Apr 17 11:49:43 2009 for Axis2/C by&nbsp;
<a href="http://www.doxygen.org/index.html">
<img src="doxygen.png" alt="doxygen" align="middle" border="0"></a> 1.5.3 </small></address>
</body>
</html>


<|start_filename|>xdocs/api/html/group__axiom__doctype.html<|end_filename|>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html><head><meta http-equiv="Content-Type" content="text/html;charset=UTF-8">
<title>Axis2/C: doctype</title>
<link href="doxygen.css" rel="stylesheet" type="text/css">
<link href="tabs.css" rel="stylesheet" type="text/css">
</head><body>
<!-- Generated by Doxygen 1.5.3 -->
<div class="tabs">
  <ul>
    <li><a href="index.html"><span>Main&nbsp;Page</span></a></li>
    <li><a href="modules.html"><span>Modules</span></a></li>
    <li><a href="annotated.html"><span>Classes</span></a></li>
    <li><a href="files.html"><span>Files</span></a></li>
    <li><a href="dirs.html"><span>Directories</span></a></li>
    <li><a href="pages.html"><span>Related&nbsp;Pages</span></a></li>
    <li><a href="examples.html"><span>Examples</span></a></li>
    <li>
      <form action="search.php" method="get">
        <table cellspacing="0" cellpadding="0" border="0">
          <tr>
            <td><label>&nbsp;<u>S</u>earch&nbsp;for&nbsp;</label></td>
            <td><input type="text" name="query" value="" size="20" accesskey="s"/></td>
          </tr>
        </table>
      </form>
    </li>
  </ul>
</div>
<h1>doctype<br>
<small>
[<a class="el" href="group__axiom__om.html">AXIOM</a>]</small>
</h1><table border="0" cellpadding="0" cellspacing="0">
<tr><td></td></tr>
<tr><td colspan="2"><br><h2>Typedefs</h2></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="g989bc6cdb5a69100c2a937b4d86d2b90"></a><!-- doxytag: member="axiom_doctype::axiom_doctype_t" ref="g989bc6cdb5a69100c2a937b4d86d2b90" args="" -->
typedef struct <br>
axiom_doctype&nbsp;</td><td class="memItemRight" valign="bottom"><b>axiom_doctype_t</b></td></tr>

<tr><td colspan="2"><br><h2>Functions</h2></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top">AXIS2_EXTERN <br>
axiom_doctype_t *&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__axiom__doctype.html#gf5a0bbfb2f36e549919f1aa3fb6982c8">axiom_doctype_create</a> (const <a class="el" href="structaxutil__env.html">axutil_env_t</a> *env, axiom_node_t *parent, const axis2_char_t *value, axiom_node_t **node)</td></tr>

<tr><td class="memItemLeft" nowrap align="right" valign="top">AXIS2_EXTERN void&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__axiom__doctype.html#g4704fda24ab25f215df0bca1a71ff26f">axiom_doctype_free</a> (struct axiom_doctype *om_doctype, const <a class="el" href="structaxutil__env.html">axutil_env_t</a> *env)</td></tr>

<tr><td class="memItemLeft" nowrap align="right" valign="top">AXIS2_EXTERN <br>
axis2_char_t *&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__axiom__doctype.html#gaafffb4fb25cdc52471c381de62e5d46">axiom_doctype_get_value</a> (struct axiom_doctype *om_doctype, const <a class="el" href="structaxutil__env.html">axutil_env_t</a> *env)</td></tr>

<tr><td class="memItemLeft" nowrap align="right" valign="top">AXIS2_EXTERN <br>
axis2_status_t&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__axiom__doctype.html#g7a9798d07369fd4a0a3cff0098e55886">axiom_doctype_set_value</a> (struct axiom_doctype *om_doctype, const <a class="el" href="structaxutil__env.html">axutil_env_t</a> *env, const axis2_char_t *value)</td></tr>

<tr><td class="memItemLeft" nowrap align="right" valign="top">AXIS2_EXTERN <br>
axis2_status_t&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__axiom__doctype.html#gb6fc65e0ba230a28101b082e7490c1f0">axiom_doctype_serialize</a> (struct axiom_doctype *om_doctype, const <a class="el" href="structaxutil__env.html">axutil_env_t</a> *env, <a class="el" href="group__axiom__output.html#gfe1ea804d7a8179e85371f065cd9df09">axiom_output_t</a> *om_output)</td></tr>

</table>
<hr><h2>Function Documentation</h2>
<a class="anchor" name="gf5a0bbfb2f36e549919f1aa3fb6982c8"></a><!-- doxytag: member="axiom_doctype.h::axiom_doctype_create" ref="gf5a0bbfb2f36e549919f1aa3fb6982c8" args="(const axutil_env_t *env, axiom_node_t *parent, const axis2_char_t *value, axiom_node_t **node)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">AXIS2_EXTERN axiom_doctype_t* axiom_doctype_create           </td>
          <td>(</td>
          <td class="paramtype">const <a class="el" href="structaxutil__env.html">axutil_env_t</a> *&nbsp;</td>
          <td class="paramname"> <em>env</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">axiom_node_t *&nbsp;</td>
          <td class="paramname"> <em>parent</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const axis2_char_t *&nbsp;</td>
          <td class="paramname"> <em>value</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">axiom_node_t **&nbsp;</td>
          <td class="paramname"> <em>node</em></td><td>&nbsp;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td><td width="100%"></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
Creates a axiom_doctype_t struct <dl compact><dt><b>Parameters:</b></dt><dd>
  <table border="0" cellspacing="2" cellpadding="0">
    <tr><td valign="top"></td><td valign="top"><em>env</em>&nbsp;</td><td>Environment. MUST NOT be NULL, </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>parent</em>&nbsp;</td><td>parent of the new node. Optinal, can be NULL. </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>value</em>&nbsp;</td><td>doctype text </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>node</em>&nbsp;</td><td>This is an out parameter.cannot be NULL. Returns the node corresponding to the doctype created. Node type will be set to AXIOM_DOCTYPE </td></tr>
  </table>
</dl>
<dl class="return" compact><dt><b>Returns:</b></dt><dd>pointer to newly created doctype struct </dd></dl>

</div>
</div><p>
<a class="anchor" name="g4704fda24ab25f215df0bca1a71ff26f"></a><!-- doxytag: member="axiom_doctype.h::axiom_doctype_free" ref="g4704fda24ab25f215df0bca1a71ff26f" args="(struct axiom_doctype *om_doctype, const axutil_env_t *env)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">AXIS2_EXTERN void axiom_doctype_free           </td>
          <td>(</td>
          <td class="paramtype">struct axiom_doctype *&nbsp;</td>
          <td class="paramname"> <em>om_doctype</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const <a class="el" href="structaxutil__env.html">axutil_env_t</a> *&nbsp;</td>
          <td class="paramname"> <em>env</em></td><td>&nbsp;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td><td width="100%"></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
free doctype struct <dl compact><dt><b>Parameters:</b></dt><dd>
  <table border="0" cellspacing="2" cellpadding="0">
    <tr><td valign="top"></td><td valign="top"><em>om_doctype</em>&nbsp;</td><td>pointer to axiom_doctype_t struct to be freed </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>env</em>&nbsp;</td><td>Environment. MUST NOT be NULL, </td></tr>
  </table>
</dl>
<dl class="return" compact><dt><b>Returns:</b></dt><dd>satus of the op. AXIS2_SUCCESS on success AXIS2_FAILURE on error. </dd></dl>

</div>
</div><p>
<a class="anchor" name="gaafffb4fb25cdc52471c381de62e5d46"></a><!-- doxytag: member="axiom_doctype.h::axiom_doctype_get_value" ref="gaafffb4fb25cdc52471c381de62e5d46" args="(struct axiom_doctype *om_doctype, const axutil_env_t *env)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">AXIS2_EXTERN axis2_char_t* axiom_doctype_get_value           </td>
          <td>(</td>
          <td class="paramtype">struct axiom_doctype *&nbsp;</td>
          <td class="paramname"> <em>om_doctype</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const <a class="el" href="structaxutil__env.html">axutil_env_t</a> *&nbsp;</td>
          <td class="paramname"> <em>env</em></td><td>&nbsp;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td><td width="100%"></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
<dl compact><dt><b>Parameters:</b></dt><dd>
  <table border="0" cellspacing="2" cellpadding="0">
    <tr><td valign="top"></td><td valign="top"><em>om_doctype</em>&nbsp;</td><td>pointer to a axiom_doctype_t struct </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>env</em>&nbsp;</td><td>environment must not be null </td></tr>
  </table>
</dl>
<dl class="return" compact><dt><b>Returns:</b></dt><dd>DTD text </dd></dl>

</div>
</div><p>
<a class="anchor" name="gb6fc65e0ba230a28101b082e7490c1f0"></a><!-- doxytag: member="axiom_doctype.h::axiom_doctype_serialize" ref="gb6fc65e0ba230a28101b082e7490c1f0" args="(struct axiom_doctype *om_doctype, const axutil_env_t *env, axiom_output_t *om_output)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">AXIS2_EXTERN axis2_status_t axiom_doctype_serialize           </td>
          <td>(</td>
          <td class="paramtype">struct axiom_doctype *&nbsp;</td>
          <td class="paramname"> <em>om_doctype</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const <a class="el" href="structaxutil__env.html">axutil_env_t</a> *&nbsp;</td>
          <td class="paramname"> <em>env</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype"><a class="el" href="group__axiom__output.html#gfe1ea804d7a8179e85371f065cd9df09">axiom_output_t</a> *&nbsp;</td>
          <td class="paramname"> <em>om_output</em></td><td>&nbsp;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td><td width="100%"></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
serialize op <dl compact><dt><b>Parameters:</b></dt><dd>
  <table border="0" cellspacing="2" cellpadding="0">
    <tr><td valign="top"></td><td valign="top"><em>om_doctype</em>&nbsp;</td><td>pointer to axiom_doctype_t struct </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>env</em>&nbsp;</td><td>environment , MUST NOT be NULL </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>om_output</em>&nbsp;</td><td>pointer to axiom_output_t struct </td></tr>
  </table>
</dl>
<dl class="return" compact><dt><b>Returns:</b></dt><dd>status of the op, AXIS2_SUCCESS on success, AXIS2_FAILURE on error. </dd></dl>

</div>
</div><p>
<a class="anchor" name="g7a9798d07369fd4a0a3cff0098e55886"></a><!-- doxytag: member="axiom_doctype.h::axiom_doctype_set_value" ref="g7a9798d07369fd4a0a3cff0098e55886" args="(struct axiom_doctype *om_doctype, const axutil_env_t *env, const axis2_char_t *value)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">AXIS2_EXTERN axis2_status_t axiom_doctype_set_value           </td>
          <td>(</td>
          <td class="paramtype">struct axiom_doctype *&nbsp;</td>
          <td class="paramname"> <em>om_doctype</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const <a class="el" href="structaxutil__env.html">axutil_env_t</a> *&nbsp;</td>
          <td class="paramname"> <em>env</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const axis2_char_t *&nbsp;</td>
          <td class="paramname"> <em>value</em></td><td>&nbsp;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td><td width="100%"></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
<dl compact><dt><b>Parameters:</b></dt><dd>
  <table border="0" cellspacing="2" cellpadding="0">
    <tr><td valign="top"></td><td valign="top"><em>om_doctype</em>&nbsp;</td><td>pointer to axiom doctype_t struct </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>env</em>&nbsp;</td><td>environment , MUST NOT be NULL. </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>value</em>&nbsp;</td><td>doctype text value </td></tr>
  </table>
</dl>
<dl class="return" compact><dt><b>Returns:</b></dt><dd>status of the op, AXIS2_SUCCESS on success, AXIS2_FAILURE on error. </dd></dl>

</div>
</div><p>
<hr size="1"><address style="text-align: right;"><small>Generated on Fri Apr 17 11:49:44 2009 for Axis2/C by&nbsp;
<a href="http://www.doxygen.org/index.html">
<img src="doxygen.png" alt="doxygen" align="middle" border="0"></a> 1.5.3 </small></address>
</body>
</html>


<|start_filename|>xdocs/api/html/group__axiom__soap__header.html<|end_filename|>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html><head><meta http-equiv="Content-Type" content="text/html;charset=UTF-8">
<title>Axis2/C: soap header</title>
<link href="doxygen.css" rel="stylesheet" type="text/css">
<link href="tabs.css" rel="stylesheet" type="text/css">
</head><body>
<!-- Generated by Doxygen 1.5.3 -->
<div class="tabs">
  <ul>
    <li><a href="index.html"><span>Main&nbsp;Page</span></a></li>
    <li><a href="modules.html"><span>Modules</span></a></li>
    <li><a href="annotated.html"><span>Classes</span></a></li>
    <li><a href="files.html"><span>Files</span></a></li>
    <li><a href="dirs.html"><span>Directories</span></a></li>
    <li><a href="pages.html"><span>Related&nbsp;Pages</span></a></li>
    <li><a href="examples.html"><span>Examples</span></a></li>
    <li>
      <form action="search.php" method="get">
        <table cellspacing="0" cellpadding="0" border="0">
          <tr>
            <td><label>&nbsp;<u>S</u>earch&nbsp;for&nbsp;</label></td>
            <td><input type="text" name="query" value="" size="20" accesskey="s"/></td>
          </tr>
        </table>
      </form>
    </li>
  </ul>
</div>
<h1>soap header<br>
<small>
[<a class="el" href="group__axiom__soap.html">SOAP</a>]</small>
</h1><table border="0" cellpadding="0" cellspacing="0">
<tr><td></td></tr>
<tr><td colspan="2"><br><h2>Functions</h2></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="gdc95d432dd64bf5c37e3bd47cd908f4f"></a><!-- doxytag: member="axiom_soap_header::axiom_soap_header_create_with_parent" ref="gdc95d432dd64bf5c37e3bd47cd908f4f" args="(const axutil_env_t *env, struct axiom_soap_envelope *envelope)" -->
AXIS2_EXTERN <br>
axiom_soap_header_t *&nbsp;</td><td class="memItemRight" valign="bottom"><b>axiom_soap_header_create_with_parent</b> (const <a class="el" href="structaxutil__env.html">axutil_env_t</a> *env, struct axiom_soap_envelope *envelope)</td></tr>

<tr><td class="memItemLeft" nowrap align="right" valign="top">AXIS2_EXTERN void&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__axiom__soap__header.html#gb4bd1325c0f03050c79ec4302fb9fb12">axiom_soap_header_free</a> (axiom_soap_header_t *header, const <a class="el" href="structaxutil__env.html">axutil_env_t</a> *env)</td></tr>

<tr><td class="memItemLeft" nowrap align="right" valign="top">AXIS2_EXTERN struct <br>
axiom_soap_header_block *&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__axiom__soap__header.html#g88dc23b19a4bd564638b4ffcaab955f9">axiom_soap_header_add_header_block</a> (axiom_soap_header_t *header, const <a class="el" href="structaxutil__env.html">axutil_env_t</a> *env, const axis2_char_t *localname, axiom_namespace_t *ns)</td></tr>

<tr><td class="memItemLeft" nowrap align="right" valign="top">AXIS2_EXTERN <br>
<a class="el" href="group__axutil__hash.html#gb2d7d14db2de92a101573f44421ac12a">axutil_hash_t</a> *&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__axiom__soap__header.html#g1715ee6353da48cd2148b8adfd227814">axiom_soap_header_examine_header_blocks</a> (axiom_soap_header_t *header, const <a class="el" href="structaxutil__env.html">axutil_env_t</a> *env, axis2_char_t *param_role)</td></tr>

<tr><td class="memItemLeft" nowrap align="right" valign="top">AXIS2_EXTERN <br>
<a class="el" href="group__axutil__array__list.html#g1a6a89777db876cfa0cc86787b7be6a0">axutil_array_list_t</a> *&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__axiom__soap__header.html#g15e88be95ee0a6652bb04f8b8e555b9d">axiom_soap_header_get_header_blocks_with_namespace_uri</a> (axiom_soap_header_t *header, const <a class="el" href="structaxutil__env.html">axutil_env_t</a> *env, const axis2_char_t *ns_uri)</td></tr>

<tr><td class="memItemLeft" nowrap align="right" valign="top">AXIS2_EXTERN <br>
axiom_children_qname_iterator_t *&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__axiom__soap__header.html#g74a56d9fd3b49055bae4091fcd5bb4ff">axiom_soap_header_examine_all_header_blocks</a> (axiom_soap_header_t *header, const <a class="el" href="structaxutil__env.html">axutil_env_t</a> *env)</td></tr>

<tr><td class="memItemLeft" nowrap align="right" valign="top">AXIS2_EXTERN <br>
axiom_children_with_specific_attribute_iterator_t *&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__axiom__soap__header.html#gba1977d593ac1686da79c207b5caa797">axiom_soap_header_extract_header_blocks</a> (axiom_soap_header_t *header, const <a class="el" href="structaxutil__env.html">axutil_env_t</a> *env, axis2_char_t *role)</td></tr>

<tr><td class="memItemLeft" nowrap align="right" valign="top">AXIS2_EXTERN <br>
axiom_node_t *&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__axiom__soap__header.html#g91bacc73f64c81dbb156c1159083fa7a">axiom_soap_header_get_base_node</a> (axiom_soap_header_t *header, const <a class="el" href="structaxutil__env.html">axutil_env_t</a> *env)</td></tr>

<tr><td class="memItemLeft" nowrap align="right" valign="top">AXIS2_EXTERN int&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__axiom__soap__header.html#g97f0b56a661fd9a5fd793a3eb22c963c">axiom_soap_header_get_soap_version</a> (axiom_soap_header_t *header, const <a class="el" href="structaxutil__env.html">axutil_env_t</a> *env)</td></tr>

<tr><td class="memItemLeft" nowrap align="right" valign="top">AXIS2_EXTERN <br>
<a class="el" href="group__axutil__hash.html#gb2d7d14db2de92a101573f44421ac12a">axutil_hash_t</a> *&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__axiom__soap__header.html#gcb53361d89fd484c1b66661b7fa75b02">axiom_soap_header_get_all_header_blocks</a> (axiom_soap_header_t *header, const <a class="el" href="structaxutil__env.html">axutil_env_t</a> *env)</td></tr>

<tr><td class="memItemLeft" nowrap align="right" valign="top">AXIS2_EXTERN <br>
axis2_status_t&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__axiom__soap__header.html#g4d36a1f5427197087a29703d8ac74ac6">axiom_soap_header_remove_header_block</a> (axiom_soap_header_t *header, const <a class="el" href="structaxutil__env.html">axutil_env_t</a> *env, axutil_qname_t *qname)</td></tr>

</table>
<hr><h2>Function Documentation</h2>
<a class="anchor" name="g88dc23b19a4bd564638b4ffcaab955f9"></a><!-- doxytag: member="axiom_soap_header.h::axiom_soap_header_add_header_block" ref="g88dc23b19a4bd564638b4ffcaab955f9" args="(axiom_soap_header_t *header, const axutil_env_t *env, const axis2_char_t *localname, axiom_namespace_t *ns)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">AXIS2_EXTERN struct axiom_soap_header_block* axiom_soap_header_add_header_block           </td>
          <td>(</td>
          <td class="paramtype">axiom_soap_header_t *&nbsp;</td>
          <td class="paramname"> <em>header</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const <a class="el" href="structaxutil__env.html">axutil_env_t</a> *&nbsp;</td>
          <td class="paramname"> <em>env</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const axis2_char_t *&nbsp;</td>
          <td class="paramname"> <em>localname</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">axiom_namespace_t *&nbsp;</td>
          <td class="paramname"> <em>ns</em></td><td>&nbsp;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td><td width="100%"><code> [read]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
create a new axiom_soap_header_block_t struct initialized with the specified name and adds it to passed axiom_soap_header_t struct. <dl compact><dt><b>Parameters:</b></dt><dd>
  <table border="0" cellspacing="2" cellpadding="0">
    <tr><td valign="top"></td><td valign="top"><em>header</em>&nbsp;</td><td>pointer to soap_header struct </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>env</em>&nbsp;</td><td>Environment. MUST NOT be NULL </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>localName</em>&nbsp;</td><td>the localname of the SOAP header block </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>ns</em>&nbsp;</td><td>the namespace of the SOAP header block </td></tr>
  </table>
</dl>
<dl class="return" compact><dt><b>Returns:</b></dt><dd>The newly created axiom_soap_header_block_t struct </dd></dl>

</div>
</div><p>
<a class="anchor" name="g74a56d9fd3b49055bae4091fcd5bb4ff"></a><!-- doxytag: member="axiom_soap_header.h::axiom_soap_header_examine_all_header_blocks" ref="g74a56d9fd3b49055bae4091fcd5bb4ff" args="(axiom_soap_header_t *header, const axutil_env_t *env)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">AXIS2_EXTERN axiom_children_qname_iterator_t* axiom_soap_header_examine_all_header_blocks           </td>
          <td>(</td>
          <td class="paramtype">axiom_soap_header_t *&nbsp;</td>
          <td class="paramname"> <em>header</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const <a class="el" href="structaxutil__env.html">axutil_env_t</a> *&nbsp;</td>
          <td class="paramname"> <em>env</em></td><td>&nbsp;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td><td width="100%"></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
returns an iterator to iterate through all soap header block's om nodes <dl compact><dt><b>Parameters:</b></dt><dd>
  <table border="0" cellspacing="2" cellpadding="0">
    <tr><td valign="top"></td><td valign="top"><em>header</em>&nbsp;</td><td>pointer to soap_header struct </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>env</em>&nbsp;</td><td>Environment. MUST NOT be NULL </td></tr>
  </table>
</dl>
<dl class="return" compact><dt><b>Returns:</b></dt><dd>axiom_children_qname_iterator_t or null if no header blocks present </dd></dl>

</div>
</div><p>
<a class="anchor" name="g1715ee6353da48cd2148b8adfd227814"></a><!-- doxytag: member="axiom_soap_header.h::axiom_soap_header_examine_header_blocks" ref="g1715ee6353da48cd2148b8adfd227814" args="(axiom_soap_header_t *header, const axutil_env_t *env, axis2_char_t *param_role)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">AXIS2_EXTERN <a class="el" href="group__axutil__hash.html#gb2d7d14db2de92a101573f44421ac12a">axutil_hash_t</a>* axiom_soap_header_examine_header_blocks           </td>
          <td>(</td>
          <td class="paramtype">axiom_soap_header_t *&nbsp;</td>
          <td class="paramname"> <em>header</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const <a class="el" href="structaxutil__env.html">axutil_env_t</a> *&nbsp;</td>
          <td class="paramname"> <em>env</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">axis2_char_t *&nbsp;</td>
          <td class="paramname"> <em>param_role</em></td><td>&nbsp;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td><td width="100%"></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
returns a hash_table of all the soap_header_block_t struct in this soap_header_t object that have the the specified actor. An actor is a global attribute that indicates the intermediate parties to whom the message should be sent. An actor receives the message and then sends it to the next actor. The default actor is the ultimate intended recipient for the message, so if no actor attribute is set in a axiom_soap_header_t struct the message is sent to its ultimate destination. <dl compact><dt><b>Parameters:</b></dt><dd>
  <table border="0" cellspacing="2" cellpadding="0">
    <tr><td valign="top"></td><td valign="top"><em>header</em>&nbsp;</td><td>pointer to soap_header struct </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>env</em>&nbsp;</td><td>Environment. MUST NOT be NULL </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>role</em>&nbsp;</td><td>the role value for the examination</td></tr>
  </table>
</dl>
<dl class="return" compact><dt><b>Returns:</b></dt><dd>hash_table of all the soap_header_block_t struct </dd></dl>

</div>
</div><p>
<a class="anchor" name="gba1977d593ac1686da79c207b5caa797"></a><!-- doxytag: member="axiom_soap_header.h::axiom_soap_header_extract_header_blocks" ref="gba1977d593ac1686da79c207b5caa797" args="(axiom_soap_header_t *header, const axutil_env_t *env, axis2_char_t *role)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">AXIS2_EXTERN axiom_children_with_specific_attribute_iterator_t* axiom_soap_header_extract_header_blocks           </td>
          <td>(</td>
          <td class="paramtype">axiom_soap_header_t *&nbsp;</td>
          <td class="paramname"> <em>header</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const <a class="el" href="structaxutil__env.html">axutil_env_t</a> *&nbsp;</td>
          <td class="paramname"> <em>env</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">axis2_char_t *&nbsp;</td>
          <td class="paramname"> <em>role</em></td><td>&nbsp;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td><td width="100%"></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
returns an iterator to iterate through all header blocks om_nodes with the matching role attribute <dl compact><dt><b>Parameters:</b></dt><dd>
  <table border="0" cellspacing="2" cellpadding="0">
    <tr><td valign="top"></td><td valign="top"><em>header</em>&nbsp;</td><td>pointer to soap_header struct </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>env</em>&nbsp;</td><td>Environment. MUST NOT be NULL </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>role</em>&nbsp;</td><td></td></tr>
  </table>
</dl>
<dl class="return" compact><dt><b>Returns:</b></dt><dd>iterator or null if no header blocks present with matching role attribute </dd></dl>

</div>
</div><p>
<a class="anchor" name="gb4bd1325c0f03050c79ec4302fb9fb12"></a><!-- doxytag: member="axiom_soap_header.h::axiom_soap_header_free" ref="gb4bd1325c0f03050c79ec4302fb9fb12" args="(axiom_soap_header_t *header, const axutil_env_t *env)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">AXIS2_EXTERN void axiom_soap_header_free           </td>
          <td>(</td>
          <td class="paramtype">axiom_soap_header_t *&nbsp;</td>
          <td class="paramname"> <em>header</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const <a class="el" href="structaxutil__env.html">axutil_env_t</a> *&nbsp;</td>
          <td class="paramname"> <em>env</em></td><td>&nbsp;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td><td width="100%"></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
Free an axiom_soap_header <dl compact><dt><b>Parameters:</b></dt><dd>
  <table border="0" cellspacing="2" cellpadding="0">
    <tr><td valign="top"></td><td valign="top"><em>header</em>&nbsp;</td><td>pointer to soap_header struct </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>env</em>&nbsp;</td><td>Environment. MUST NOT be NULL </td></tr>
  </table>
</dl>
<dl class="return" compact><dt><b>Returns:</b></dt><dd>satus of the op. AXIS2_SUCCESS on success else AXIS2_FAILURE </dd></dl>

</div>
</div><p>
<a class="anchor" name="gcb53361d89fd484c1b66661b7fa75b02"></a><!-- doxytag: member="axiom_soap_header.h::axiom_soap_header_get_all_header_blocks" ref="gcb53361d89fd484c1b66661b7fa75b02" args="(axiom_soap_header_t *header, const axutil_env_t *env)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">AXIS2_EXTERN <a class="el" href="group__axutil__hash.html#gb2d7d14db2de92a101573f44421ac12a">axutil_hash_t</a>* axiom_soap_header_get_all_header_blocks           </td>
          <td>(</td>
          <td class="paramtype">axiom_soap_header_t *&nbsp;</td>
          <td class="paramname"> <em>header</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const <a class="el" href="structaxutil__env.html">axutil_env_t</a> *&nbsp;</td>
          <td class="paramname"> <em>env</em></td><td>&nbsp;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td><td width="100%"></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
Get all the SOAP headers <dl compact><dt><b>Parameters:</b></dt><dd>
  <table border="0" cellspacing="2" cellpadding="0">
    <tr><td valign="top"></td><td valign="top"><em>header</em>&nbsp;</td><td>pointer to soap_header struct </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>env</em>&nbsp;</td><td>Environment. MUST NOT be NULL</td></tr>
  </table>
</dl>
<dl class="return" compact><dt><b>Returns:</b></dt><dd>a hash table of all header_blocks in this header the returned hash is a readonly hash should not be modified </dd></dl>

</div>
</div><p>
<a class="anchor" name="g91bacc73f64c81dbb156c1159083fa7a"></a><!-- doxytag: member="axiom_soap_header.h::axiom_soap_header_get_base_node" ref="g91bacc73f64c81dbb156c1159083fa7a" args="(axiom_soap_header_t *header, const axutil_env_t *env)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">AXIS2_EXTERN axiom_node_t* axiom_soap_header_get_base_node           </td>
          <td>(</td>
          <td class="paramtype">axiom_soap_header_t *&nbsp;</td>
          <td class="paramname"> <em>header</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const <a class="el" href="structaxutil__env.html">axutil_env_t</a> *&nbsp;</td>
          <td class="paramname"> <em>env</em></td><td>&nbsp;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td><td width="100%"></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
returns the axiom_node_t struct wrapped in soap_header <dl compact><dt><b>Parameters:</b></dt><dd>
  <table border="0" cellspacing="2" cellpadding="0">
    <tr><td valign="top"></td><td valign="top"><em>header</em>&nbsp;</td><td>pointer to soap_header struct </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>env</em>&nbsp;</td><td>Environment. MUST NOT be NULL</td></tr>
  </table>
</dl>
<dl class="return" compact><dt><b>Returns:</b></dt><dd>the base node of the SOAP header </dd></dl>

</div>
</div><p>
<a class="anchor" name="g15e88be95ee0a6652bb04f8b8e555b9d"></a><!-- doxytag: member="axiom_soap_header.h::axiom_soap_header_get_header_blocks_with_namespace_uri" ref="g15e88be95ee0a6652bb04f8b8e555b9d" args="(axiom_soap_header_t *header, const axutil_env_t *env, const axis2_char_t *ns_uri)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">AXIS2_EXTERN <a class="el" href="group__axutil__array__list.html#g1a6a89777db876cfa0cc86787b7be6a0">axutil_array_list_t</a>* axiom_soap_header_get_header_blocks_with_namespace_uri           </td>
          <td>(</td>
          <td class="paramtype">axiom_soap_header_t *&nbsp;</td>
          <td class="paramname"> <em>header</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const <a class="el" href="structaxutil__env.html">axutil_env_t</a> *&nbsp;</td>
          <td class="paramname"> <em>env</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const axis2_char_t *&nbsp;</td>
          <td class="paramname"> <em>ns_uri</em></td><td>&nbsp;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td><td width="100%"></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
returns an arraylist of header_blocks which has a given namesapce uri <dl compact><dt><b>Parameters:</b></dt><dd>
  <table border="0" cellspacing="2" cellpadding="0">
    <tr><td valign="top"></td><td valign="top"><em>header</em>&nbsp;</td><td>pointer to soap_header struct </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>env</em>&nbsp;</td><td>Environment. MUST NOT be NULL </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>ns_uri</em>&nbsp;</td><td>namespace uri </td></tr>
  </table>
</dl>
<dl class="return" compact><dt><b>Returns:</b></dt><dd>pointer to axutil_array_list_t, or null if no header_blocks with given namespace uri exists The returned array_list must be freed by the user. </dd></dl>

</div>
</div><p>
<a class="anchor" name="g97f0b56a661fd9a5fd793a3eb22c963c"></a><!-- doxytag: member="axiom_soap_header.h::axiom_soap_header_get_soap_version" ref="g97f0b56a661fd9a5fd793a3eb22c963c" args="(axiom_soap_header_t *header, const axutil_env_t *env)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">AXIS2_EXTERN int axiom_soap_header_get_soap_version           </td>
          <td>(</td>
          <td class="paramtype">axiom_soap_header_t *&nbsp;</td>
          <td class="paramname"> <em>header</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const <a class="el" href="structaxutil__env.html">axutil_env_t</a> *&nbsp;</td>
          <td class="paramname"> <em>env</em></td><td>&nbsp;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td><td width="100%"></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
return the soap_version of this soap_header <dl compact><dt><b>Parameters:</b></dt><dd>
  <table border="0" cellspacing="2" cellpadding="0">
    <tr><td valign="top"></td><td valign="top"><em>header</em>&nbsp;</td><td>pointer to soap_header struct </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>env</em>&nbsp;</td><td>Environment. MUST NOT be NULL</td></tr>
  </table>
</dl>
<dl class="return" compact><dt><b>Returns:</b></dt><dd>AXIOM_SOAP11 or AXIOM_SOAP12 </dd></dl>

</div>
</div><p>
<a class="anchor" name="g4d36a1f5427197087a29703d8ac74ac6"></a><!-- doxytag: member="axiom_soap_header.h::axiom_soap_header_remove_header_block" ref="g4d36a1f5427197087a29703d8ac74ac6" args="(axiom_soap_header_t *header, const axutil_env_t *env, axutil_qname_t *qname)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">AXIS2_EXTERN axis2_status_t axiom_soap_header_remove_header_block           </td>
          <td>(</td>
          <td class="paramtype">axiom_soap_header_t *&nbsp;</td>
          <td class="paramname"> <em>header</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const <a class="el" href="structaxutil__env.html">axutil_env_t</a> *&nbsp;</td>
          <td class="paramname"> <em>env</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">axutil_qname_t *&nbsp;</td>
          <td class="paramname"> <em>qname</em></td><td>&nbsp;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td><td width="100%"></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
remove header block that matches to the given qname qname should not be null <dl compact><dt><b>Parameters:</b></dt><dd>
  <table border="0" cellspacing="2" cellpadding="0">
    <tr><td valign="top"></td><td valign="top"><em>header</em>&nbsp;</td><td>pointer to soap_header struct </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>env</em>&nbsp;</td><td>Environment. MUST NOT be NULL</td></tr>
  </table>
</dl>
<dl class="return" compact><dt><b>Returns:</b></dt><dd>status of the op. AXIS2_SUCCESS on success else AXIS2_FAILURE </dd></dl>

</div>
</div><p>
<hr size="1"><address style="text-align: right;"><small>Generated on Fri Apr 17 11:49:44 2009 for Axis2/C by&nbsp;
<a href="http://www.doxygen.org/index.html">
<img src="doxygen.png" alt="doxygen" align="middle" border="0"></a> 1.5.3 </small></address>
</body>
</html>


<|start_filename|>xdocs/api/html/group__axutil__thread__pool.html<|end_filename|>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html><head><meta http-equiv="Content-Type" content="text/html;charset=UTF-8">
<title>Axis2/C: thread pool</title>
<link href="doxygen.css" rel="stylesheet" type="text/css">
<link href="tabs.css" rel="stylesheet" type="text/css">
</head><body>
<!-- Generated by Doxygen 1.5.3 -->
<div class="tabs">
  <ul>
    <li><a href="index.html"><span>Main&nbsp;Page</span></a></li>
    <li><a href="modules.html"><span>Modules</span></a></li>
    <li><a href="annotated.html"><span>Classes</span></a></li>
    <li><a href="files.html"><span>Files</span></a></li>
    <li><a href="dirs.html"><span>Directories</span></a></li>
    <li><a href="pages.html"><span>Related&nbsp;Pages</span></a></li>
    <li><a href="examples.html"><span>Examples</span></a></li>
    <li>
      <form action="search.php" method="get">
        <table cellspacing="0" cellpadding="0" border="0">
          <tr>
            <td><label>&nbsp;<u>S</u>earch&nbsp;for&nbsp;</label></td>
            <td><input type="text" name="query" value="" size="20" accesskey="s"/></td>
          </tr>
        </table>
      </form>
    </li>
  </ul>
</div>
<h1>thread pool<br>
<small>
[<a class="el" href="group__axis2__util.html">utilities</a>]</small>
</h1><table border="0" cellpadding="0" cellspacing="0">
<tr><td></td></tr>
<tr><td colspan="2"><br><h2>Typedefs</h2></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="gbb650c8c9202b3d73e753cf8cc8b356e"></a><!-- doxytag: member="axutil_thread_pool::axutil_thread_pool_t" ref="gbb650c8c9202b3d73e753cf8cc8b356e" args="" -->
typedef struct <br>
axutil_thread_pool&nbsp;</td><td class="memItemRight" valign="bottom"><b>axutil_thread_pool_t</b></td></tr>

<tr><td colspan="2"><br><h2>Functions</h2></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top">AXIS2_EXTERN <br>
<a class="el" href="group__axutil__thread.html#g7b2442c6150883ffac05fd2c4844b7cc">axutil_thread_t</a> *&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__axutil__thread__pool.html#ge09dd79634b658499b98114aa41661c1">axutil_thread_pool_get_thread</a> (axutil_thread_pool_t *pool, <a class="el" href="group__axutil__thread.html#g8b1ee6e8fa770ee290503c43c087f633">axutil_thread_start_t</a> func, void *data)</td></tr>

<tr><td class="memItemLeft" nowrap align="right" valign="top">AXIS2_EXTERN <br>
axis2_status_t&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__axutil__thread__pool.html#g0ddd6d44254100fbbeb71db92112e7bd">axutil_thread_pool_join_thread</a> (axutil_thread_pool_t *pool, <a class="el" href="group__axutil__thread.html#g7b2442c6150883ffac05fd2c4844b7cc">axutil_thread_t</a> *thd)</td></tr>

<tr><td class="memItemLeft" nowrap align="right" valign="top">AXIS2_EXTERN <br>
axis2_status_t&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__axutil__thread__pool.html#g4918b9dbaed331af5602f5a9e6ebb6ef">axutil_thread_pool_exit_thread</a> (axutil_thread_pool_t *pool, <a class="el" href="group__axutil__thread.html#g7b2442c6150883ffac05fd2c4844b7cc">axutil_thread_t</a> *thd)</td></tr>

<tr><td class="memItemLeft" nowrap align="right" valign="top">AXIS2_EXTERN <br>
axis2_status_t&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__axutil__thread__pool.html#ga9a805c61ea2a61f0d92f2d298ea9fa1">axutil_thread_pool_thread_detach</a> (axutil_thread_pool_t *pool, <a class="el" href="group__axutil__thread.html#g7b2442c6150883ffac05fd2c4844b7cc">axutil_thread_t</a> *thd)</td></tr>

<tr><td class="memItemLeft" nowrap align="right" valign="top">AXIS2_EXTERN void&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__axutil__thread__pool.html#gc0cc0e6ac3ceae901d69907955be7c8f">axutil_thread_pool_free</a> (axutil_thread_pool_t *pool)</td></tr>

<tr><td class="memItemLeft" nowrap align="right" valign="top">AXIS2_EXTERN <br>
axutil_thread_pool_t *&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__axutil__thread__pool.html#gfadbfea2d099917420634549da19444e">axutil_thread_pool_init</a> (<a class="el" href="structaxutil__allocator.html">axutil_allocator_t</a> *allocator)</td></tr>

<tr><td class="memItemLeft" nowrap align="right" valign="top">AXIS2_EXTERN struct <br>
<a class="el" href="structaxutil__env.html">axutil_env</a> *&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__axutil__thread__pool.html#gbc008925cad197747506eb338fd26b1f">axutil_init_thread_env</a> (const struct <a class="el" href="structaxutil__env.html">axutil_env</a> *system_env)</td></tr>

<tr><td class="memItemLeft" nowrap align="right" valign="top">AXIS2_EXTERN void&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__axutil__thread__pool.html#g86828fbfa2efa9e9f864fad6fccfee11">axutil_free_thread_env</a> (struct <a class="el" href="structaxutil__env.html">axutil_env</a> *thread_env)</td></tr>

</table>
<hr><h2>Function Documentation</h2>
<a class="anchor" name="g86828fbfa2efa9e9f864fad6fccfee11"></a><!-- doxytag: member="axutil_thread_pool.h::axutil_free_thread_env" ref="g86828fbfa2efa9e9f864fad6fccfee11" args="(struct axutil_env *thread_env)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">AXIS2_EXTERN void axutil_free_thread_env           </td>
          <td>(</td>
          <td class="paramtype">struct <a class="el" href="structaxutil__env.html">axutil_env</a> *&nbsp;</td>
          <td class="paramname"> <em>thread_env</em>          </td>
          <td>&nbsp;)&nbsp;</td>
          <td width="100%"></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
This function can be used to free the environment that was used in a thread function 
</div>
</div><p>
<a class="anchor" name="gbc008925cad197747506eb338fd26b1f"></a><!-- doxytag: member="axutil_thread_pool.h::axutil_init_thread_env" ref="gbc008925cad197747506eb338fd26b1f" args="(const struct axutil_env *system_env)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">AXIS2_EXTERN struct <a class="el" href="structaxutil__env.html">axutil_env</a>* axutil_init_thread_env           </td>
          <td>(</td>
          <td class="paramtype">const struct <a class="el" href="structaxutil__env.html">axutil_env</a> *&nbsp;</td>
          <td class="paramname"> <em>system_env</em>          </td>
          <td>&nbsp;)&nbsp;</td>
          <td width="100%"><code> [read]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
This function can be used to initialize the environment in case of spawning a new thread via a thread function 
</div>
</div><p>
<a class="anchor" name="g4918b9dbaed331af5602f5a9e6ebb6ef"></a><!-- doxytag: member="axutil_thread_pool.h::axutil_thread_pool_exit_thread" ref="g4918b9dbaed331af5602f5a9e6ebb6ef" args="(axutil_thread_pool_t *pool, axutil_thread_t *thd)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">AXIS2_EXTERN axis2_status_t axutil_thread_pool_exit_thread           </td>
          <td>(</td>
          <td class="paramtype">axutil_thread_pool_t *&nbsp;</td>
          <td class="paramname"> <em>pool</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype"><a class="el" href="group__axutil__thread.html#g7b2442c6150883ffac05fd2c4844b7cc">axutil_thread_t</a> *&nbsp;</td>
          <td class="paramname"> <em>thd</em></td><td>&nbsp;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td><td width="100%"></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
Stop the execution of current thread <dl compact><dt><b>Parameters:</b></dt><dd>
  <table border="0" cellspacing="2" cellpadding="0">
    <tr><td valign="top"></td><td valign="top"><em>thd</em>&nbsp;</td><td>thread to be stopped </td></tr>
  </table>
</dl>
<dl class="return" compact><dt><b>Returns:</b></dt><dd>status of the operation </dd></dl>

</div>
</div><p>
<a class="anchor" name="gc0cc0e6ac3ceae901d69907955be7c8f"></a><!-- doxytag: member="axutil_thread_pool.h::axutil_thread_pool_free" ref="gc0cc0e6ac3ceae901d69907955be7c8f" args="(axutil_thread_pool_t *pool)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">AXIS2_EXTERN void axutil_thread_pool_free           </td>
          <td>(</td>
          <td class="paramtype">axutil_thread_pool_t *&nbsp;</td>
          <td class="paramname"> <em>pool</em>          </td>
          <td>&nbsp;)&nbsp;</td>
          <td width="100%"></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
Frees resources used by thread_pool <dl compact><dt><b>Parameters:</b></dt><dd>
  <table border="0" cellspacing="2" cellpadding="0">
    <tr><td valign="top"></td><td valign="top"><em>pool</em>&nbsp;</td><td>thread_pool to be freed </td></tr>
  </table>
</dl>

</div>
</div><p>
<a class="anchor" name="ge09dd79634b658499b98114aa41661c1"></a><!-- doxytag: member="axutil_thread_pool.h::axutil_thread_pool_get_thread" ref="ge09dd79634b658499b98114aa41661c1" args="(axutil_thread_pool_t *pool, axutil_thread_start_t func, void *data)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">AXIS2_EXTERN <a class="el" href="group__axutil__thread.html#g7b2442c6150883ffac05fd2c4844b7cc">axutil_thread_t</a>* axutil_thread_pool_get_thread           </td>
          <td>(</td>
          <td class="paramtype">axutil_thread_pool_t *&nbsp;</td>
          <td class="paramname"> <em>pool</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype"><a class="el" href="group__axutil__thread.html#g8b1ee6e8fa770ee290503c43c087f633">axutil_thread_start_t</a>&nbsp;</td>
          <td class="paramname"> <em>func</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">void *&nbsp;</td>
          <td class="paramname"> <em>data</em></td><td>&nbsp;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td><td width="100%"></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
Retrives a thread from the thread pool <dl compact><dt><b>Parameters:</b></dt><dd>
  <table border="0" cellspacing="2" cellpadding="0">
    <tr><td valign="top"></td><td valign="top"><em>func</em>&nbsp;</td><td>function to be executed in the new thread </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>data</em>&nbsp;</td><td>arguments to be passed to the function </td></tr>
  </table>
</dl>
<dl class="return" compact><dt><b>Returns:</b></dt><dd>pointer to a thread in ready state. </dd></dl>

</div>
</div><p>
<a class="anchor" name="gfadbfea2d099917420634549da19444e"></a><!-- doxytag: member="axutil_thread_pool.h::axutil_thread_pool_init" ref="gfadbfea2d099917420634549da19444e" args="(axutil_allocator_t *allocator)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">AXIS2_EXTERN axutil_thread_pool_t* axutil_thread_pool_init           </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="structaxutil__allocator.html">axutil_allocator_t</a> *&nbsp;</td>
          <td class="paramname"> <em>allocator</em>          </td>
          <td>&nbsp;)&nbsp;</td>
          <td width="100%"></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
Initializes (creates) an thread_pool. <dl compact><dt><b>Parameters:</b></dt><dd>
  <table border="0" cellspacing="2" cellpadding="0">
    <tr><td valign="top"></td><td valign="top"><em>allocator</em>&nbsp;</td><td>user defined allocator for the memory allocation. </td></tr>
  </table>
</dl>
<dl class="return" compact><dt><b>Returns:</b></dt><dd>initialized thread_pool. NULL on error. </dd></dl>

</div>
</div><p>
<a class="anchor" name="g0ddd6d44254100fbbeb71db92112e7bd"></a><!-- doxytag: member="axutil_thread_pool.h::axutil_thread_pool_join_thread" ref="g0ddd6d44254100fbbeb71db92112e7bd" args="(axutil_thread_pool_t *pool, axutil_thread_t *thd)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">AXIS2_EXTERN axis2_status_t axutil_thread_pool_join_thread           </td>
          <td>(</td>
          <td class="paramtype">axutil_thread_pool_t *&nbsp;</td>
          <td class="paramname"> <em>pool</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype"><a class="el" href="group__axutil__thread.html#g7b2442c6150883ffac05fd2c4844b7cc">axutil_thread_t</a> *&nbsp;</td>
          <td class="paramname"> <em>thd</em></td><td>&nbsp;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td><td width="100%"></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
Blocks until the desired thread stops executing. <dl compact><dt><b>Parameters:</b></dt><dd>
  <table border="0" cellspacing="2" cellpadding="0">
    <tr><td valign="top"></td><td valign="top"><em>thd</em>&nbsp;</td><td>The thread to joined </td></tr>
  </table>
</dl>
<dl class="return" compact><dt><b>Returns:</b></dt><dd>status of the operation </dd></dl>

</div>
</div><p>
<a class="anchor" name="ga9a805c61ea2a61f0d92f2d298ea9fa1"></a><!-- doxytag: member="axutil_thread_pool.h::axutil_thread_pool_thread_detach" ref="ga9a805c61ea2a61f0d92f2d298ea9fa1" args="(axutil_thread_pool_t *pool, axutil_thread_t *thd)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">AXIS2_EXTERN axis2_status_t axutil_thread_pool_thread_detach           </td>
          <td>(</td>
          <td class="paramtype">axutil_thread_pool_t *&nbsp;</td>
          <td class="paramname"> <em>pool</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype"><a class="el" href="group__axutil__thread.html#g7b2442c6150883ffac05fd2c4844b7cc">axutil_thread_t</a> *&nbsp;</td>
          <td class="paramname"> <em>thd</em></td><td>&nbsp;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td><td width="100%"></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
Detaches a thread <dl compact><dt><b>Parameters:</b></dt><dd>
  <table border="0" cellspacing="2" cellpadding="0">
    <tr><td valign="top"></td><td valign="top"><em>thd</em>&nbsp;</td><td>thread to be detached </td></tr>
  </table>
</dl>
<dl class="return" compact><dt><b>Returns:</b></dt><dd>status of the operation </dd></dl>

</div>
</div><p>
<hr size="1"><address style="text-align: right;"><small>Generated on Fri Apr 17 11:49:46 2009 for Axis2/C by&nbsp;
<a href="http://www.doxygen.org/index.html">
<img src="doxygen.png" alt="doxygen" align="middle" border="0"></a> 1.5.3 </small></address>
</body>
</html>


<|start_filename|>samples/client/amqp/echo/echo_util.c<|end_filename|>

/*
 * 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.
 */

#include "echo_util.h"

/* build SOAP request message content using OM */
axiom_node_t*
build_om_payload_for_echo_svc (const axutil_env_t* env)
{
    axiom_node_t* echo_om_node = NULL;
    axiom_element_t* echo_om_ele = NULL;
    axiom_node_t* text_om_node = NULL;
    axiom_element_t* text_om_ele = NULL;
    axiom_namespace_t* ns1 = NULL;
    axis2_char_t* om_str = NULL;

    ns1 = axiom_namespace_create (env, "http://ws.apache.org/axis2/services/echo",
                                  "ns1");
    echo_om_ele = axiom_element_create (env, NULL, "echoString", ns1, &echo_om_node);
    text_om_ele = axiom_element_create (env, echo_om_node, "text", NULL, &text_om_node);
    axiom_element_set_text (text_om_ele, env, "Hello World!", text_om_node);

    om_str = axiom_node_to_string (echo_om_node, env);
    if (om_str)
        printf ("\nSending OM : %s\n", om_str);

    AXIS2_FREE (env->allocator, om_str);

    return echo_om_node;
}




<|start_filename|>src/core/transport/http/sender/http_sender.c<|end_filename|>
/*
 * 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.
 */

#include <axis2_http_sender.h>
#include <axutil_string.h>
#include <axis2_http_transport.h>
#include <string.h>
#include <axiom_output.h>
#include <axis2_op_ctx.h>
#include <axis2_ctx.h>
#include <axis2_conf_ctx.h>
#include <axis2_http_client.h>
#include <axiom_xml_writer.h>
#include <axutil_property.h>
#include <axutil_param.h>
#include <axutil_types.h>
#include <axutil_generic_obj.h>
#include <axutil_uuid_gen.h>
#include <axutil_digest_calc.h>
#include <axis2_const.h>
#include <axis2_util.h>
#include <axiom_soap.h>
#include <axutil_version.h>
#include <axis2_ntlm.h>

#ifdef AXIS2_LIBCURL_ENABLED
#include "libcurl/axis2_libcurl.h"
#else
#define CLIENT_NONCE_LENGTH 8
#endif

#ifdef AXIS2_SSL_ENABLED
void AXIS2_CALL axis2_ssl_stream_free(axutil_stream_t * stream,
                                      const axutil_env_t * env);
#endif

struct axis2_http_sender
{
    axis2_char_t *http_version;
    axis2_bool_t chunked;
    int so_timeout;
    axiom_output_t *om_output;
    axis2_http_client_t *client;
    axis2_bool_t is_soap;
};



#ifndef AXIS2_LIBCURL_ENABLED
static void axis2_http_sender_add_header_list (axis2_http_simple_request_t *
                                               request,
                                               const axutil_env_t * env,
                                               axutil_array_list_t *
                                               array_list);

static axis2_status_t axis2_http_sender_configure_proxy (axis2_http_sender_t *
                                                         sender,
                                                         const axutil_env_t *
                                                         env,
                                                         axis2_msg_ctx_t *
                                                         msg_ctx);

static axis2_status_t
axis2_http_sender_configure_server_cert (axis2_http_sender_t * sender,
                                         const axutil_env_t * env,
                                         axis2_msg_ctx_t * msg_ctx);

static axis2_status_t
axis2_http_sender_configure_key_file (axis2_http_sender_t * sender,
                                      const axutil_env_t * env,
                                      axis2_msg_ctx_t * msg_ctx);

static axis2_status_t
axis2_http_sender_configure_http_auth (axis2_http_sender_t * sender,
                                       const axutil_env_t * env,
                                       axis2_msg_ctx_t * msg_ctx,
                                       axis2_http_simple_request_t * request);

static axis2_status_t
axis2_http_sender_configure_proxy_auth (axis2_http_sender_t * sender,
                                        const axutil_env_t * env,
                                        axis2_msg_ctx_t * msg_ctx,
                                        axis2_http_simple_request_t * request);

static axis2_status_t
axis2_http_sender_set_http_auth_type (axis2_http_sender_t * sender,
                                      const axutil_env_t * env,
                                      axis2_msg_ctx_t * msg_ctx,
                                      axis2_http_simple_request_t * request);

static axis2_status_t
axis2_http_sender_set_proxy_auth_type (axis2_http_sender_t * sender,
                                       const axutil_env_t * env,
                                       axis2_msg_ctx_t * msg_ctx,
                                       axis2_http_simple_request_t * request);

static axis2_status_t
axis2_http_sender_configure_http_basic_auth (axis2_http_sender_t * sender,
                                             const axutil_env_t * env,
                                             axis2_msg_ctx_t * msg_ctx,
                                             axis2_http_simple_request_t *
                                             request);

static axis2_status_t
axis2_http_sender_configure_proxy_basic_auth (axis2_http_sender_t * sender,
                                              const axutil_env_t * env,
                                              axis2_msg_ctx_t * msg_ctx,
                                              axis2_http_simple_request_t *
                                              request);

static axis2_status_t
axis2_http_sender_configure_http_ntlm_auth(axis2_http_sender_t * sender,
                                              const axutil_env_t * env,
                                              axis2_msg_ctx_t * msg_ctx,
                                              axis2_http_simple_request_t * request,
                                              axis2_char_t * header_data);

static axis2_status_t
axis2_http_sender_configure_http_digest_auth (axis2_http_sender_t * sender,
                                              const axutil_env_t * env,
                                              axis2_msg_ctx_t * msg_ctx,
                                              axis2_http_simple_request_t * request,
                                              axis2_char_t * header_data);

static axis2_status_t
axis2_http_sender_configure_proxy_digest_auth (axis2_http_sender_t * sender,
                                               const axutil_env_t * env,
                                               axis2_msg_ctx_t * msg_ctx,
                                               axis2_http_simple_request_t * request,
                                               axis2_char_t * header_data);

static axis2_status_t
axis2_http_sender_configure_proxy_ntlm_auth(axis2_http_sender_t * sender,
                                              const axutil_env_t * env,
                                              axis2_msg_ctx_t * msg_ctx,
                                              axis2_http_simple_request_t * request,
                                              axis2_char_t * header_data);

#endif

AXIS2_EXTERN axis2_http_sender_t *AXIS2_CALL
axis2_http_sender_create (const axutil_env_t * env)
{
    axis2_http_sender_t *sender = NULL;

    sender = (axis2_http_sender_t *) AXIS2_MALLOC
        (env->allocator, sizeof (axis2_http_sender_t));

    if (!sender)
    {
        AXIS2_HANDLE_ERROR(env, AXIS2_ERROR_NO_MEMORY, AXIS2_FAILURE);
        return NULL;
    }

    memset (sender, 0, sizeof (axis2_http_sender_t));
    sender->http_version = (axis2_char_t *) AXIS2_HTTP_HEADER_PROTOCOL_11;
    sender->so_timeout = AXIS2_HTTP_DEFAULT_SO_TIMEOUT;
    /* unlike the java impl we don't have a default om output
     * it should be explicitly set and it's a MUST
     */
    sender->om_output = NULL;
    sender->chunked = AXIS2_FALSE;
    sender->client = NULL;

    return sender;
}

AXIS2_EXTERN void AXIS2_CALL
axis2_http_sender_free (axis2_http_sender_t * sender,
                        const axutil_env_t * env)
{
    if (sender->http_version)
    {
        AXIS2_FREE (env->allocator, sender->http_version);
    }

    /* Do not free this here since it will be required in later processing
     * of the response soap message
     */
    sender->client = NULL;
    AXIS2_FREE (env->allocator, sender);
    return;
}

#ifndef AXIS2_LIBCURL_ENABLED
AXIS2_EXTERN axis2_status_t AXIS2_CALL
axis2_http_sender_send (axis2_http_sender_t * sender,
                        const axutil_env_t * env,
                        axis2_msg_ctx_t * msg_ctx,
                        axiom_soap_envelope_t * out,
                        const axis2_char_t * str_url,
                        const axis2_char_t * soap_action)
{
    axis2_http_simple_request_t *request = NULL;
    axis2_http_request_line_t *request_line = NULL;

    /* url is to hold url given in str_url */
    axutil_url_t *url = NULL;
    axiom_xml_writer_t *xml_writer = NULL;
    axis2_char_t *buffer = NULL;
    unsigned int buffer_size = 0;
    const axis2_char_t *char_set_enc = NULL;
    axutil_string_t *char_set_enc_str = NULL;
    int status_code = -1;
    axis2_http_simple_response_t *response = NULL;
    axis2_char_t *content_type = NULL;
    axis2_bool_t content_type_deepl_copy = AXIS2_TRUE;
    axis2_byte_t *output_stream = NULL;
    int output_stream_size = 0;
    axis2_bool_t doing_mtom = AXIS2_FALSE;
    axutil_property_t *dump_property = NULL;
    axutil_param_t *ssl_pp_param = NULL;	
    /* ssl passphrase */
    axis2_char_t *ssl_pp = NULL;
    axutil_property_t *ssl_pp_property = NULL;
    axutil_property_t *test_auth_property = NULL;
    axis2_char_t *test_auth_property_value = NULL;
    axis2_bool_t test_proxy_auth = AXIS2_FALSE;
    axis2_bool_t test_http_auth = AXIS2_FALSE;

    /* http proxy authentication */
    axutil_property_t *proxy_auth_property = NULL;
    axis2_char_t *proxy_auth_property_value = NULL;
    axis2_bool_t force_proxy_auth = AXIS2_FALSE;
    axis2_bool_t force_proxy_auth_with_head = AXIS2_FALSE;
    axutil_property_t *http_auth_property = NULL;
    axis2_char_t *http_auth_property_value = NULL;
    axis2_bool_t force_http_auth = AXIS2_FALSE;
    axis2_bool_t force_http_auth_with_head = AXIS2_FALSE; 
    axutil_property_t *content_type_property = NULL;
    axutil_hash_t *content_type_hash = NULL;
    axis2_char_t *content_type_value = NULL;
    axutil_property_t *method = NULL;
    axis2_char_t *method_value = NULL;

    /* handling REST requests */
    axis2_bool_t send_via_get = AXIS2_FALSE;
    axis2_bool_t send_via_head = AXIS2_FALSE;
    axis2_bool_t send_via_delete = AXIS2_FALSE;
    axis2_bool_t send_via_put = AXIS2_FALSE;
    axiom_node_t *data_out = NULL;
    axiom_node_t *body_node = NULL;
    axiom_soap_body_t *soap_body = NULL;
    axis2_bool_t is_soap = AXIS2_TRUE;

    /* http header property to get HTTP headers from msg_ctx and give
     * it to http_sender */
    axutil_property_t *http_property = NULL;
    axutil_array_list_t *array_list;
    axis2_bool_t http_auth_header_added = AXIS2_FALSE;
    axis2_conf_ctx_t *conf_ctx = NULL;
    axis2_conf_t *conf = NULL;
    axis2_transport_out_desc_t *trans_desc = NULL;
    axutil_param_t *write_xml_declaration_param = NULL;
    axutil_hash_t *transport_attrs = NULL;
    axis2_bool_t write_xml_declaration = AXIS2_FALSE;
    axutil_property_t *property = NULL;/* Property for holding http client */

    AXIS2_LOG_TRACE(env->log, AXIS2_LOG_SI, "Entry:axis2_http_sender_send");
    soap_body = axiom_soap_envelope_get_body (out, env);

    AXIS2_PARAM_CHECK (env->error, msg_ctx, AXIS2_FAILURE);
    AXIS2_PARAM_CHECK (env->error, out, AXIS2_FAILURE);
    AXIS2_PARAM_CHECK (env->error, str_url, AXIS2_FAILURE);
    AXIS2_PARAM_CHECK (env->error, soap_action, AXIS2_FAILURE);

    if (AXIS2_TRUE == axis2_msg_ctx_get_doing_rest (msg_ctx, env))
    {
        is_soap = AXIS2_FALSE;
    }
    else
    {
        is_soap = AXIS2_TRUE;
    }

    url = axutil_url_parse_string (env, str_url);

    if (!is_soap)
    {
        if(soap_body)
        {
            body_node = axiom_soap_body_get_base_node (soap_body, env);
        }
        if(body_node)
        {
            data_out = axiom_node_get_first_element (body_node, env);
        }

        method = (axutil_property_t *) axis2_msg_ctx_get_property (msg_ctx, env,
                                                                   AXIS2_HTTP_METHOD);
        if (method)
        {
            method_value = (axis2_char_t *) axutil_property_get_value (method,
                                                                       env);
        }

        /* The default is POST */
        if (method_value && 
            0 == axutil_strcmp (method_value, AXIS2_HTTP_GET))
        {
            send_via_get = AXIS2_TRUE;
        }
        else if (method_value && 
                 0 == axutil_strcmp (method_value, AXIS2_HTTP_HEAD))
        {
            send_via_head = AXIS2_TRUE;
        }
        else if (method_value && 
                 0 == axutil_strcmp (method_value, AXIS2_HTTP_PUT))
        {
            send_via_put = AXIS2_TRUE;
        }
        else if (method_value && 
                 0 == axutil_strcmp (method_value, AXIS2_HTTP_DELETE))
        {
            send_via_delete = AXIS2_TRUE;
        }
    }

    if (!url)
    {
        AXIS2_LOG_ERROR (env->log, AXIS2_LOG_SI, 
                         "url is null for string %s", str_url);
        return AXIS2_FAILURE;
    }

    if (sender->client)
    {
        axis2_http_client_free (sender->client, env);
        sender->client = NULL;
    }

    sender->client = axis2_http_client_create (env, url);
    if (!sender->client)
    {
        AXIS2_LOG_ERROR (env->log, AXIS2_LOG_SI, 
                         "sender->client creation failed for url %s", url);
        return AXIS2_FAILURE;
    }
   
    /* We put the client into msg_ctx so that we can free it once the processing
     * is done at client side
     */
    property = axutil_property_create (env);
    axutil_property_set_scope (property, env, AXIS2_SCOPE_REQUEST);
    axutil_property_set_free_func (property, env,
                                   axis2_http_client_free_void_arg);
    axutil_property_set_value (property, env, sender->client);
    axis2_msg_ctx_set_property (msg_ctx, env, AXIS2_HTTP_CLIENT, property);

    /* configure proxy settings if we have set so
     */

    axis2_http_sender_configure_proxy (sender, env, msg_ctx);
    
    conf_ctx = axis2_msg_ctx_get_conf_ctx (msg_ctx, env);
    if (conf_ctx)
    {
        conf = axis2_conf_ctx_get_conf (conf_ctx, env);
    }

    if (conf)
    {
        trans_desc = axis2_conf_get_transport_out (conf,
                                                   env, 
                                                   AXIS2_TRANSPORT_ENUM_HTTP);
    }

    if (trans_desc)
    {
        /* get xml declaration details from axis2.xml */
        write_xml_declaration_param =
            axutil_param_container_get_param
            (axis2_transport_out_desc_param_container (trans_desc, env), env,
             AXIS2_XML_DECLARATION);
    }


    if (write_xml_declaration_param)
    {
        /* accessing attributes of the HTTP transport's , xml
         * declaration element from axis2.xml*/

        transport_attrs = axutil_param_get_attributes (write_xml_declaration_param, env);
        if (transport_attrs)
        {
            axutil_generic_obj_t *obj = NULL;
            axiom_attribute_t *write_xml_declaration_attr = NULL;
            axis2_char_t *write_xml_declaration_attr_value = NULL;

            obj = axutil_hash_get (transport_attrs, AXIS2_ADD_XML_DECLARATION,
                                   AXIS2_HASH_KEY_STRING);
            if (obj)
            {
                write_xml_declaration_attr = 
                    (axiom_attribute_t *) axutil_generic_obj_get_value (obj,
                                                                        env);
            }

            if (write_xml_declaration_attr)
            {
                write_xml_declaration_attr_value = 
                    axiom_attribute_get_value (write_xml_declaration_attr, env);
            }

            if (write_xml_declaration_attr_value && 
                0 == axutil_strcasecmp (write_xml_declaration_attr_value, 
                                        AXIS2_VALUE_TRUE))
            {
                write_xml_declaration = AXIS2_TRUE;
            }
        }
    }

    if (write_xml_declaration)
    {
        axiom_output_write_xml_version_encoding (sender->om_output, env);
    }

    if (!send_via_get && !send_via_head && !send_via_delete)
    {
        /* processing POST and PUT methods */
        AXIS2_LOG_DEBUG(env->log, AXIS2_LOG_SI, "msg_ctx_id:%s", 
            axis2_msg_ctx_get_msg_id(msg_ctx,env));

        doing_mtom = axis2_msg_ctx_get_doing_mtom (msg_ctx, env);

        if (!sender->om_output)
        {
            AXIS2_HANDLE_ERROR(env, AXIS2_ERROR_NULL_OM_OUTPUT,
                               AXIS2_FAILURE);
            AXIS2_LOG_ERROR(env->log, AXIS2_LOG_SI, "%s",
                AXIS2_ERROR_GET_MESSAGE(env->error));
            return AXIS2_FAILURE;
        }

        xml_writer = axiom_output_get_xml_writer (sender->om_output, env);

        char_set_enc_str = axis2_msg_ctx_get_charset_encoding (msg_ctx, env);

        if (!char_set_enc_str)
        {
            /* if there is no character encoding details available
             * use default one.  
             * #define AXIS2_DEFAULT_CHAR_SET_ENCODING "UTF-8"
             */
            char_set_enc = AXIS2_DEFAULT_CHAR_SET_ENCODING;
        }
        else
        {
            char_set_enc = axutil_string_get_buffer (char_set_enc_str, env);
        }

        if (!send_via_put && is_soap)
        {
            /* HTTP POST case */
            /* dump property use to dump message without sending */
            dump_property = axis2_msg_ctx_get_property (msg_ctx, env,
                                                        AXIS2_DUMP_INPUT_MSG_TRUE);
            if (dump_property)
            {
                axis2_char_t *dump_true =
                    axutil_property_get_value (dump_property, env);
                if (0 == axutil_strcmp (dump_true, AXIS2_VALUE_TRUE))
                {
                    axis2_http_client_set_dump_input_msg (sender->client,
                                                          env, AXIS2_TRUE);
                }
            }

            axiom_output_set_do_optimize (sender->om_output, env, doing_mtom);
            axiom_soap_envelope_serialize (out, env, sender->om_output,
                                           AXIS2_FALSE);
        }
        else if (is_soap)
        {
            AXIS2_LOG_ERROR (env->log, AXIS2_LOG_SI, 
                             "Attempt to send SOAP message using HTTP PUT failed");
            return AXIS2_FAILURE;
        }
        else
        {
            if (!data_out)
            {
                AXIS2_LOG_ERROR (env->log, AXIS2_LOG_SI, 
                    "body node payload is NULL");
                return AXIS2_FAILURE;
            }
            axiom_node_serialize (data_out, env, sender->om_output);
        }

        if (doing_mtom)
        {
            axutil_param_t *callback_name_param = NULL;
            axis2_status_t mtom_status = AXIS2_FAILURE;
            axutil_array_list_t *mime_parts = NULL;
            axis2_char_t *mtom_sending_callback_name = NULL;

            /* Getting the sender callback name paramter if it is 
             * specified in the configuration file */

            callback_name_param = axis2_msg_ctx_get_parameter(msg_ctx, env ,
                AXIS2_MTOM_SENDING_CALLBACK);
            if(callback_name_param)
            {
                mtom_sending_callback_name =
                    (axis2_char_t *) axutil_param_get_value (callback_name_param, env);
                if(mtom_sending_callback_name)
                {
                    axis2_http_client_set_mtom_sending_callback_name(
                        sender->client, env, mtom_sending_callback_name);
                }
            }

            /* Here we put all the attachment related stuff in a array_list
               After this method we have the message in parts */

            mtom_status = axiom_output_flush (sender->om_output, env);
            if(mtom_status == AXIS2_FAILURE)
            {
                return mtom_status;
            }
            /* HTTP client should distinguish an MTOM invocation because the way
               of sending the message in MTOM case is different */
            axis2_http_client_set_doing_mtom(sender->client, env, doing_mtom);

            /* HTTP client will keep this mime_parts, which it will send in chunks at
               th end */
            mime_parts = axiom_output_get_mime_parts(sender->om_output, env);
            if(mime_parts)
            {
                axis2_http_client_set_mime_parts(sender->client, env, mime_parts);    
            }
        }
        else
        {
            buffer = axiom_xml_writer_get_xml (xml_writer, env);
        }

        if (!(buffer || doing_mtom))
        {
            AXIS2_LOG_ERROR (env->log, AXIS2_LOG_SI, 
                             "NULL xml returned from xml writer");
            return AXIS2_FAILURE;
        }

        if (!send_via_put)
        {
            /* HTTP POST */
            axis2_char_t *path_with_query = NULL;

            path_with_query = axutil_strcat(env, axutil_url_get_path (url, env),
                                                 axutil_url_get_query(url, env), NULL);
            request_line =
                axis2_http_request_line_create (env, AXIS2_HTTP_POST,
                                                path_with_query,
                                                sender->http_version);
            AXIS2_FREE(env->allocator, path_with_query);
        }
        else
        {
            /* HTTP PUT */
            request_line =
                axis2_http_request_line_create (env, AXIS2_HTTP_PUT,
                                                axutil_url_get_path (url, env),
                                                sender->http_version);
        }
    }
    else
    {
        /* Processing HTTP GET, HEAD and DELETE */

        axis2_char_t *request_params = NULL;
        axis2_char_t *path = NULL;

        request_params = axis2_http_sender_get_param_string (sender,
                                                             env, msg_ctx);

        if(request_params)
        {
            /* substituting AXIS2_Q_MARK for "?" */
            path = axutil_strcat (env,
                              axutil_url_get_path (url, env),
                              AXIS2_Q_MARK_STR, request_params, NULL);
			AXIS2_FREE(env->allocator, request_params);
			request_params = NULL;
        }
        else
        {
            path = axutil_strdup(env,axutil_url_get_path(url, env));
        }

        if (send_via_get)
        {
            request_line = axis2_http_request_line_create (env, 
                                                           AXIS2_HTTP_GET, 
                                                           path,
                                                           sender->http_version);
        }
        else if (send_via_head)
        {
            request_line = axis2_http_request_line_create (env, 
                                                           AXIS2_HTTP_HEAD, 
                                                           path,
                                                           sender->http_version);
        }
        else if (send_via_delete)
        {
            request_line = axis2_http_request_line_create (env, 
                                                           AXIS2_HTTP_DELETE,
                                                           path,
                                                           sender->http_version);
        }

		if(path)
		{
			AXIS2_FREE(env->allocator, path);
			path = NULL;
		}
    }

    request = axis2_http_simple_request_create (env, request_line, NULL, 0,
                                                NULL);

    /* User-Agent:Axis2/C header */
    axis2_http_sender_util_add_header (env,
                                       request,
                                       AXIS2_HTTP_HEADER_USER_AGENT, 
                                       AXIS2_USER_AGENT);


    http_property =
        axis2_msg_ctx_get_property (msg_ctx,
                                    env, AXIS2_TRANSPORT_HEADER_PROPERTY);
    if (http_property)
    {
        array_list = (axutil_array_list_t *)
            axutil_property_get_value (http_property, env);
        axis2_http_sender_add_header_list (request, env, array_list);
    }

    if (!send_via_get && !send_via_head && !send_via_put && !send_via_delete &&
        AXIS2_TRUE == axis2_msg_ctx_get_is_soap_11 (msg_ctx, env))
    {
        if (AXIS2_ESC_DOUBLE_QUOTE != *soap_action)
        {
            axis2_char_t *tmp_soap_action = NULL;
            tmp_soap_action =
                AXIS2_MALLOC (env->allocator,
                              (axutil_strlen (soap_action) +
                               5) * sizeof (axis2_char_t));
            sprintf (tmp_soap_action, "\"%s\"", soap_action);
            axis2_http_sender_util_add_header (env,
                                               request,
                                               AXIS2_HTTP_HEADER_SOAP_ACTION,
                                               tmp_soap_action);
            AXIS2_FREE (env->allocator, tmp_soap_action);
        }
        else
        {
            axis2_http_sender_util_add_header (env,
                                               request,
                                               AXIS2_HTTP_HEADER_SOAP_ACTION,
                                               (const axis2_char_t *)
                                               soap_action);
        }
    }
    else if (AXIS2_TRUE == axis2_msg_ctx_get_is_soap_11 (msg_ctx, env))
    {
        AXIS2_LOG_ERROR (env->log, AXIS2_LOG_SI, 
                         "Adding of SOAP Action Failed for REST request");

        return AXIS2_FAILURE;
    }

    if (!send_via_get && !send_via_head && !send_via_delete)
    {
        /* processing PUT and POST */
        buffer_size = axiom_xml_writer_get_xml_size (xml_writer, env);

        if (AXIS2_FALSE == sender->chunked)
        {
            axis2_char_t tmp_buf[10];
            if (!buffer)
            {
                buffer_size = output_stream_size;
            }

            if (buffer_size)
            {
                sprintf (tmp_buf, "%d", buffer_size);
                axis2_http_sender_util_add_header (env,
                                                   request,
                                                   AXIS2_HTTP_HEADER_CONTENT_LENGTH,
                                                   tmp_buf);
            }
        }
        else
        {
            axis2_http_sender_util_add_header (env,
                                               request,
                                               AXIS2_HTTP_HEADER_TRANSFER_ENCODING,
                                               AXIS2_HTTP_HEADER_TRANSFER_ENCODING_CHUNKED);
        }

        if (!send_via_put && is_soap)
        {
            /* HTTP POST */
            if (doing_mtom)
            {
                content_type =
                    (axis2_char_t *) axiom_output_get_content_type (sender->
                                                                    om_output,
                                                                    env);
                if (AXIS2_TRUE != axis2_msg_ctx_get_is_soap_11 (msg_ctx, env) &&
                    axutil_strcmp (soap_action, ""))
                {
                    /* handle SOAP action for SOAP 1.2 case */
                    axis2_char_t *temp_content_type = NULL;
                    temp_content_type = axutil_stracat (env,
                                                        content_type,
                                                        AXIS2_CONTENT_TYPE_ACTION);
                    content_type = temp_content_type;
                    temp_content_type = axutil_stracat (env,
                                                        content_type,
                                                        soap_action);
                    AXIS2_FREE (env->allocator, content_type);
                    content_type = temp_content_type;
                    temp_content_type =
                        axutil_stracat (env, content_type, 
                                        AXIS2_ESC_DOUBLE_QUOTE_STR);
                    AXIS2_FREE (env->allocator, content_type);
                    content_type = temp_content_type;
                }
                else
                {
                    content_type_deepl_copy = AXIS2_FALSE;
                }
            }
            else if (AXIS2_TRUE == axis2_msg_ctx_get_is_soap_11 (msg_ctx, env))
            {
                /* SOAP 1.1 without MTOM */
                axis2_char_t *temp_content_type = NULL;
                content_type =
                    (axis2_char_t *) AXIS2_HTTP_HEADER_ACCEPT_TEXT_XML;
                content_type = axutil_stracat (env, content_type, 
                                               AXIS2_CONTENT_TYPE_CHARSET);
                temp_content_type = axutil_stracat (env,
                                                    content_type, char_set_enc);
                AXIS2_FREE (env->allocator, content_type);
                content_type = temp_content_type;
            }
            else
            {
                /* SOAP 1.2 without MTOM */
                axis2_char_t *temp_content_type = NULL;
                content_type =
                    (axis2_char_t *) AXIS2_HTTP_HEADER_ACCEPT_APPL_SOAP;
                content_type = axutil_stracat (env, content_type, 
                                               AXIS2_CONTENT_TYPE_CHARSET);
                temp_content_type = axutil_stracat (env,
                                                    content_type, char_set_enc);
                AXIS2_FREE (env->allocator, content_type);
                content_type = temp_content_type;
                if (axutil_strcmp (soap_action, ""))
                {
                    temp_content_type = axutil_stracat (env,
                                                        content_type,
                                                        AXIS2_CONTENT_TYPE_ACTION);
                    AXIS2_FREE (env->allocator, content_type);
                    content_type = temp_content_type;
                    temp_content_type = axutil_stracat (env,
                                                        content_type,
                                                        soap_action);
                    AXIS2_FREE (env->allocator, content_type);
                    content_type = temp_content_type;
                    temp_content_type =
                        axutil_stracat (env, content_type, 
                                        AXIS2_ESC_DOUBLE_QUOTE_STR);
                    AXIS2_FREE (env->allocator, content_type);
                    content_type = temp_content_type;
                }
            }
        }
        else if (is_soap)
        {
            AXIS2_LOG_ERROR (env->log, AXIS2_LOG_SI, 
                             "Attempt to send SOAP message using HTTP PUT failed");
            return AXIS2_FAILURE;
        }
        else
        {
            content_type_property = (axutil_property_t *)
                axis2_msg_ctx_get_property (msg_ctx,
                                            env,
                                            AXIS2_USER_DEFINED_HTTP_HEADER_CONTENT_TYPE);

            if (content_type_property)
            {
                content_type_hash = (axutil_hash_t *)
                    axutil_property_get_value (content_type_property, env);
                if (content_type_hash)
                {
                    content_type_value =
                        (char *) axutil_hash_get (content_type_hash,
                                                  AXIS2_HTTP_HEADER_CONTENT_TYPE,
                                                  AXIS2_HASH_KEY_STRING);
                }
            }

            if (content_type_value)
            {
                content_type = content_type_value;
            }
            else
            {
                content_type = AXIS2_HTTP_HEADER_ACCEPT_TEXT_XML;
            }

            content_type_deepl_copy = AXIS2_FALSE;
        }

        axis2_http_sender_util_add_header (env,
                                           request,
                                           AXIS2_HTTP_HEADER_CONTENT_TYPE,
                                           content_type);

        if (content_type_deepl_copy && content_type)
        {
            AXIS2_FREE (env->allocator, content_type);
            content_type = NULL;
        }
        /* Finished Processing PUT and POST */
    }

    if (0 ==
        axutil_strcasecmp (sender->http_version, AXIS2_HTTP_HEADER_PROTOCOL_11))
    {
        /* HTTP 1.1 */
        axis2_char_t *header = NULL;
        int host_len = 0;
        host_len = axutil_strlen (axutil_url_get_host (url, env));
        header = AXIS2_MALLOC (env->allocator,
                               host_len + 10 * sizeof (axis2_char_t));
        sprintf (header, "%s:%d",
                 axutil_url_get_host (url, env), axutil_url_get_port (url,
                                                                        env));
        axis2_http_sender_util_add_header (env, request, AXIS2_HTTP_HEADER_HOST,
                                           header);
        AXIS2_FREE (env->allocator, header);
        header = NULL;
    }

    /* If this is a normal invocation the buffer has the full SOAP message
       which needs to be send. In the MTOM case instead of this buffer 
       it has the mime_parts array_list */

    if(!doing_mtom)
    {
        axis2_http_simple_request_set_body_string (request,
                                                   env, buffer, buffer_size);
    }
    

    /* HTTPS request processing */
    axis2_http_sender_configure_server_cert (sender, env, msg_ctx);

    axis2_http_sender_configure_key_file (sender, env, msg_ctx);
    
    axis2_http_sender_get_timeout_values (sender, env, msg_ctx);
    axis2_http_client_set_timeout (sender->client, env, sender->so_timeout);

    ssl_pp_property = axis2_msg_ctx_get_property(msg_ctx, env,
                                                 AXIS2_SSL_PASSPHRASE);
    
    if (ssl_pp_property)
    {
            ssl_pp = (axis2_char_t *)
                     axutil_property_get_value(ssl_pp_property, env);
    }
    else
    {
        ssl_pp_param = axis2_msg_ctx_get_parameter(msg_ctx,
                                                   env, AXIS2_SSL_PASSPHRASE);

        if (ssl_pp_param)
        {
            ssl_pp = axutil_param_get_value(ssl_pp_param, env);
        }
    }

    test_auth_property = (axutil_property_t *)
        axis2_msg_ctx_get_property (msg_ctx, env,
                                    AXIS2_TEST_PROXY_AUTH);
    if (test_auth_property)
    {
        test_auth_property_value = 
            (axis2_char_t *) axutil_property_get_value (test_auth_property,
                                                        env);
    }

    if (test_auth_property_value && 
        0 == axutil_strcmp (test_auth_property_value, AXIS2_VALUE_TRUE))
    {
        test_proxy_auth = AXIS2_TRUE;
    }
    
    test_auth_property = NULL;
    test_auth_property_value = NULL;

    test_auth_property = 
        (axutil_property_t *) axis2_msg_ctx_get_property (msg_ctx, env,
                                                          AXIS2_TEST_HTTP_AUTH);
    if (test_auth_property)
    {
        test_auth_property_value = 
            (axis2_char_t *) axutil_property_get_value (test_auth_property,
                                                        env);
    }

    if (test_auth_property_value && 
        0 == axutil_strcmp (test_auth_property_value,
                            AXIS2_VALUE_TRUE))
    {
        test_http_auth = AXIS2_TRUE;
    }

    if (!test_proxy_auth)
    {
        proxy_auth_property = 
            (axutil_property_t *) axis2_msg_ctx_get_property (msg_ctx, env,
                                                              AXIS2_FORCE_PROXY_AUTH);
    }
    if (proxy_auth_property)
    {
        proxy_auth_property_value = (axis2_char_t *) 
            axutil_property_get_value (proxy_auth_property,
                                       env); 
    }

    if (proxy_auth_property_value && 
        0 == axutil_strcmp (proxy_auth_property_value, AXIS2_VALUE_TRUE))
    {
        force_proxy_auth = AXIS2_TRUE;
    }

    proxy_auth_property = NULL;
    proxy_auth_property_value = NULL;
    
    if (force_proxy_auth)
    {
        proxy_auth_property = (axutil_property_t *) 
            axis2_msg_ctx_get_property (msg_ctx, env,
                                        AXIS2_PROXY_AUTH_TYPE);
    }

    if (proxy_auth_property)
    {
        proxy_auth_property_value = (axis2_char_t *) 
            axutil_property_get_value (proxy_auth_property,
                                       env);
    }

     if(proxy_auth_property_value && (0 == axutil_strcmp(proxy_auth_property_value,
          AXIS2_PROXY_AUTH_TYPE_DIGEST) || 0 == axutil_strcmp(proxy_auth_property_value,
              AXIS2_HTTP_AUTH_TYPE_NTLM)))
    {
        force_proxy_auth = AXIS2_FALSE;
        force_proxy_auth_with_head = AXIS2_TRUE;
    }

    if (!test_http_auth)
    {
        http_auth_property = (axutil_property_t *) 
            axis2_msg_ctx_get_property (msg_ctx, env,
                                        AXIS2_FORCE_HTTP_AUTH);
    }

    if (http_auth_property)
    {
        http_auth_property_value = (axis2_char_t *) 
            axutil_property_get_value (http_auth_property,
                                       env);
    }

    if (http_auth_property_value && 
        0 == axutil_strcmp (http_auth_property_value, AXIS2_VALUE_TRUE))
    {
        force_http_auth = AXIS2_TRUE;
    }

    http_auth_property = NULL;
    http_auth_property_value = NULL;
    
    if (force_http_auth)
    {
        http_auth_property = (axutil_property_t *) 
            axis2_msg_ctx_get_property (msg_ctx, env,
                                        AXIS2_HTTP_AUTH_TYPE);
    }

    if (http_auth_property)
    {
        http_auth_property_value = (axis2_char_t *) 
            axutil_property_get_value (http_auth_property,
                                       env);
    }

    if(http_auth_property_value && (0 == axutil_strcmp(http_auth_property_value,
         AXIS2_HTTP_AUTH_TYPE_DIGEST) || 0 == axutil_strcmp(http_auth_property_value,
             AXIS2_HTTP_AUTH_TYPE_NTLM)))
    {
        force_http_auth = AXIS2_FALSE;
        force_http_auth_with_head = AXIS2_TRUE;
    }

    axis2_msg_ctx_set_auth_type(msg_ctx, env, NULL);

    if (force_proxy_auth || force_proxy_auth_with_head)
    {
        status_code = 
            AXIS2_HTTP_RESPONSE_PROXY_AUTHENTICATION_REQUIRED_CODE_VAL;
    }
    else
    {
        /* NOT forcing proxy authentication  */
        if (force_http_auth)
        {
            axis2_status_t auth_status;
            auth_status = 
                axis2_http_sender_configure_http_auth (sender,
                                                       env,
                                                       msg_ctx, request);

            if (auth_status != AXIS2_SUCCESS)
            {
                AXIS2_LOG_ERROR (env->log, AXIS2_LOG_SI, 
                                 "Error in setting HTTP Authentication header");
            }
            http_auth_header_added = AXIS2_TRUE;

            status_code = axis2_http_client_send (sender->client, 
                                                  env, request, ssl_pp);

            status_code = axis2_http_client_recieve_header (sender->client, 
                                                            env); 
        }

        else if (force_http_auth_with_head)
        {
            axis2_http_request_line_t *head_request_line = NULL;
            axis2_http_request_line_t *temp = NULL;

            temp = axis2_http_simple_request_get_request_line(request, env);
            head_request_line = axis2_http_request_line_create(env, 
                                                               AXIS2_HTTP_HEAD,
                                 axis2_http_request_line_get_uri(temp, env),
                                 axis2_http_request_line_get_http_version(temp, 
                                                                          env));
            axis2_http_simple_request_set_request_line(request, env, 
                                                       head_request_line);

            status_code = axis2_http_client_send (sender->client, env, 
                                                  request, ssl_pp);

            status_code = axis2_http_client_recieve_header (sender->client, 
                                                            env);
            axis2_http_simple_request_set_request_line(request, env, temp);
            axis2_http_request_line_free(head_request_line, env);

            if (status_code == AXIS2_HTTP_RESPONSE_HTTP_UNAUTHORIZED_CODE_VAL)
            {
                axis2_status_t auth_status;
                auth_status = axis2_http_sender_configure_http_auth (sender,
                                                                     env,
                                                                     msg_ctx, 
                                                                     request);

                if (auth_status != AXIS2_SUCCESS)
                {
                    AXIS2_LOG_ERROR (env->log, AXIS2_LOG_SI, 
                                     "Error in setting HTTP Authentication\
 header");
                }
                http_auth_header_added = AXIS2_TRUE;
            }

            if (status_code != 
                AXIS2_HTTP_RESPONSE_PROXY_AUTHENTICATION_REQUIRED_CODE_VAL)
            {

                status_code = axis2_http_client_send (sender->client, env, 
                                                      request, ssl_pp);

                status_code = axis2_http_client_recieve_header (sender->client, 
                                                                env);

                if (status_code == 
                    AXIS2_HTTP_RESPONSE_HTTP_UNAUTHORIZED_CODE_VAL)
                {
                    http_auth_header_added = AXIS2_FALSE;
                    force_http_auth_with_head = AXIS2_FALSE;
                }
            }
        }
        else 
        {
            status_code = axis2_http_client_send (sender->client, env, 
                                                  request, ssl_pp);

            status_code = axis2_http_client_recieve_header (sender->client, 
                                                            env);
        }
    }

    if (AXIS2_HTTP_RESPONSE_PROXY_AUTHENTICATION_REQUIRED_CODE_VAL == 
        status_code && !test_proxy_auth)
    {
        if (force_proxy_auth_with_head)
        {
            axis2_http_request_line_t *head_request_line = NULL;
            axis2_http_request_line_t *temp = NULL;

            temp = axis2_http_simple_request_get_request_line(request, env);
            head_request_line = axis2_http_request_line_create(env, 
                                                               AXIS2_HTTP_HEAD,
                                 axis2_http_request_line_get_uri(temp, env),
                                 axis2_http_request_line_get_http_version(temp, 
                                                                          env));
            axis2_http_simple_request_set_request_line(request, env, 
                                                       head_request_line);

            status_code = axis2_http_client_send (sender->client, env, 
                                                  request, ssl_pp);

            status_code = axis2_http_client_recieve_header (sender->client, 
                                                            env);
            axis2_http_simple_request_set_request_line(request, env, 
                                                       temp);
            axis2_http_request_line_free(head_request_line, env);

            if (status_code == 
                AXIS2_HTTP_RESPONSE_PROXY_AUTHENTICATION_REQUIRED_CODE_VAL)
            {
                axis2_status_t auth_status;
                auth_status = axis2_http_sender_configure_proxy_auth (sender,
                                                                      env,
                                                                      msg_ctx, 
                                                                      request);

                if (auth_status != AXIS2_SUCCESS)
                {
                    AXIS2_LOG_ERROR (env->log, AXIS2_LOG_SI, 
                                     "Error in setting Proxy Authentication\
 header");
                }

                if ((force_http_auth_with_head || force_http_auth) && 
                    !http_auth_header_added)
                {
                     status_code = 
                         AXIS2_HTTP_RESPONSE_HTTP_UNAUTHORIZED_CODE_VAL;
                }
                else
                {
                    status_code = axis2_http_client_send (sender->client, env, 
                                                          request, ssl_pp);

                    status_code = 
                        axis2_http_client_recieve_header (sender->client, env);
                }
            }
            else if (status_code != 
                     AXIS2_HTTP_RESPONSE_HTTP_UNAUTHORIZED_CODE_VAL)
            {

                status_code = axis2_http_client_send (sender->client, env, 
                                                      request, ssl_pp);

                status_code = axis2_http_client_recieve_header (sender->client,
                                                                env);
            }

            /* Proxies have no idea about HTTP Methods therefore, if
             * it fails no need to re-check */ 
            if (AXIS2_HTTP_RESPONSE_PROXY_AUTHENTICATION_REQUIRED_CODE_VAL == 
                status_code)
            {
                AXIS2_LOG_ERROR (env->log, AXIS2_LOG_SI, 
                                 "Proxy Authentication failed");
                axis2_msg_ctx_set_auth_failed(msg_ctx, env, AXIS2_TRUE);
                axis2_msg_ctx_set_required_auth_is_http(msg_ctx, env, 
                                                        AXIS2_FALSE);
            }
        }
        else
        {

            /* not forcing proxy auth with head */
            axis2_status_t auth_status;
            auth_status = axis2_http_sender_configure_proxy_auth (sender,
                                                                  env,
                                                                  msg_ctx, 
                                                                  request);

            if (auth_status != AXIS2_SUCCESS)
            {
                AXIS2_LOG_ERROR (env->log, AXIS2_LOG_SI, 
                                 "Error in setting Proxy Authentication \
header");
            }

            if ((force_http_auth_with_head || force_http_auth) && 
                !http_auth_header_added)
            {
                status_code = AXIS2_HTTP_RESPONSE_HTTP_UNAUTHORIZED_CODE_VAL;
            }
            else
            {
                status_code = axis2_http_client_send (sender->client, env, 
                                                      request, ssl_pp);
    
                status_code = axis2_http_client_recieve_header (sender->client, 
                                                                env);

                if (AXIS2_HTTP_RESPONSE_PROXY_AUTHENTICATION_REQUIRED_CODE_VAL ==
                    status_code)
                {
                    AXIS2_LOG_ERROR (env->log, AXIS2_LOG_SI, 
                                     "Proxy Authentication failed");
                    axis2_msg_ctx_set_auth_failed(msg_ctx, env, AXIS2_TRUE);
                    axis2_msg_ctx_set_required_auth_is_http(msg_ctx, env, 
                                                            AXIS2_FALSE);
                }
            }
        }
    }
    else if (AXIS2_HTTP_RESPONSE_PROXY_AUTHENTICATION_REQUIRED_CODE_VAL == 
             status_code)
    {
        axis2_msg_ctx_set_auth_failed(msg_ctx, env, AXIS2_TRUE);
        axis2_msg_ctx_set_required_auth_is_http(msg_ctx, env, AXIS2_FALSE);
        axis2_http_sender_set_proxy_auth_type (sender, env, msg_ctx, request);
    }
 
    if (AXIS2_HTTP_RESPONSE_HTTP_UNAUTHORIZED_CODE_VAL == status_code && 
        !test_http_auth)
    {
        if (!http_auth_header_added)
        {
            if (force_proxy_auth_with_head)
            {
                axis2_http_request_line_t *head_request_line = NULL;
                axis2_http_request_line_t *temp = NULL;

                temp = axis2_http_simple_request_get_request_line(request, env);
                head_request_line = axis2_http_request_line_create(env, 
                                                                   AXIS2_HTTP_HEAD,
                                     axis2_http_request_line_get_uri(temp, env),
                                     axis2_http_request_line_get_http_version(
                                         temp, env));
                axis2_http_simple_request_set_request_line(request, env, 
                                                           head_request_line);

                status_code = axis2_http_client_send (sender->client, env, 
                                                      request, ssl_pp);
 
                status_code = axis2_http_client_recieve_header (sender->client,
                                                                env);
                axis2_http_simple_request_set_request_line(request, env, 
                                                           temp);
                axis2_http_request_line_free(head_request_line, env);

                if (status_code == 
                    AXIS2_HTTP_RESPONSE_HTTP_UNAUTHORIZED_CODE_VAL)
                {
                    axis2_status_t auth_status;
                    auth_status = axis2_http_sender_configure_http_auth (sender,
                                                                         env,
                                                                         msg_ctx, 
                                                                         request);

                    if (auth_status != AXIS2_SUCCESS)
                    {
                        AXIS2_LOG_ERROR (env->log, AXIS2_LOG_SI, 
                                         "Error in setting HTTP Authentication \
header");
                    }

                    status_code = axis2_http_client_send (sender->client,
                                                          env, request, ssl_pp);

                    status_code = 
                        axis2_http_client_recieve_header (sender->client, 
                                                          env);
                    if (status_code == 
                        AXIS2_HTTP_RESPONSE_HTTP_UNAUTHORIZED_CODE_VAL)
                    {
                        axis2_status_t auth_status;
                        auth_status = 
                            axis2_http_sender_configure_http_auth (sender,
                                                                   env,
                                                                   msg_ctx, 
                                                                   request);

                        if (auth_status != AXIS2_SUCCESS)
                        {
                            AXIS2_LOG_ERROR (env->log, AXIS2_LOG_SI, 
                                             "Error in setting HTTP \
Authentication header");
                        }

                        status_code = axis2_http_client_send (sender->client,
                                                              env, request, 
                                                              ssl_pp);

                        status_code = 
                            axis2_http_client_recieve_header (sender->client, env);
                    }
 
                }
            }
            else
            {
                axis2_status_t auth_status;
                auth_status = axis2_http_sender_configure_http_auth (sender,
                                                                     env,
                                                                     msg_ctx,
                                                                     request);

                if (auth_status != AXIS2_SUCCESS)
                {
                    AXIS2_LOG_ERROR (env->log, AXIS2_LOG_SI, 
                                     "Error in setting HTTP Authentication \
header");
                }

                status_code = axis2_http_client_send (sender->client,
                                                      env, request, ssl_pp);

                status_code = axis2_http_client_recieve_header (sender->client, 
                                                                env);
            }

            if (AXIS2_HTTP_RESPONSE_HTTP_UNAUTHORIZED_CODE_VAL == status_code)
            {
                AXIS2_LOG_ERROR (env->log, AXIS2_LOG_SI, 
                                 "HTTP Authentication failed");
                axis2_msg_ctx_set_auth_failed(msg_ctx, env, AXIS2_TRUE);
                axis2_msg_ctx_set_required_auth_is_http(msg_ctx, env, 
                                                        AXIS2_TRUE);
            }

            if (AXIS2_HTTP_RESPONSE_PROXY_AUTHENTICATION_REQUIRED_CODE_VAL == 
                status_code)
            {
                AXIS2_LOG_ERROR (env->log, AXIS2_LOG_SI, 
                                 "Proxy Authentication failed");
                axis2_msg_ctx_set_auth_failed(msg_ctx, env, AXIS2_TRUE);
                axis2_msg_ctx_set_required_auth_is_http(msg_ctx, env, 
                                                        AXIS2_FALSE);
            }
        }
        else
        {
            AXIS2_LOG_ERROR (env->log, AXIS2_LOG_SI, 
                             "HTTP Authentication failed");
            axis2_msg_ctx_set_auth_failed(msg_ctx, env, AXIS2_TRUE);
            axis2_msg_ctx_set_required_auth_is_http(msg_ctx, env, AXIS2_TRUE);
        }
    }
    else if (AXIS2_HTTP_RESPONSE_HTTP_UNAUTHORIZED_CODE_VAL == 
             status_code)
    {
        axis2_msg_ctx_set_auth_failed(msg_ctx, env, AXIS2_TRUE);
        axis2_msg_ctx_set_required_auth_is_http(msg_ctx, env, AXIS2_TRUE);
        axis2_http_sender_set_http_auth_type (sender, env, msg_ctx, request);
    }

    axis2_http_simple_request_free (request, env);
    request = NULL;

    AXIS2_FREE (env->allocator, output_stream);
    output_stream = NULL;

    if (status_code < 0)
    {
        AXIS2_LOG_ERROR (env->log, AXIS2_LOG_SI, "status_code < 0");
        return AXIS2_FAILURE;
    }

    axis2_msg_ctx_set_status_code (msg_ctx, env, status_code);

    /* Start processing response */
    response = axis2_http_client_get_response (sender->client, env);
    if (!is_soap)
    {
        return axis2_http_sender_process_response (sender, env,
                                                   msg_ctx, response);
    }
    else if (AXIS2_HTTP_RESPONSE_OK_CODE_VAL == status_code ||
        AXIS2_HTTP_RESPONSE_ACK_CODE_VAL == status_code)
    {
        return axis2_http_sender_process_response (sender, env,
                                                   msg_ctx, response);
    }
    else if (AXIS2_HTTP_RESPONSE_INTERNAL_SERVER_ERROR_CODE_VAL == 
             status_code)
    {
        axis2_http_header_t *tmp_header = NULL;
        axis2_char_t *tmp_header_val = NULL;
        axis2_op_t *op = NULL;

        op = axis2_msg_ctx_get_op (msg_ctx, env);
        if (op)
        {
            const axis2_char_t *mep = axis2_op_get_msg_exchange_pattern (op, env);
            AXIS2_HANDLE_ERROR(env, AXIS2_ERROR_HTTP_CLIENT_TRANSPORT_ERROR, AXIS2_FAILURE);
            /* handle one way case */

            if (!axutil_strcmp (mep, AXIS2_MEP_URI_OUT_ONLY))
            {
                AXIS2_LOG_ERROR (env->log, AXIS2_LOG_SI, "mep is AXIS2_MEP_URI_OUT_ONLY");
                return AXIS2_FAILURE;
            }
        }

        /* set an error to indicate error code status */
        tmp_header =
            axis2_http_simple_response_get_first_header (response,
                                                         env,
                                                         AXIS2_HTTP_HEADER_CONTENT_TYPE);
        if (tmp_header)
        {
            tmp_header_val = axis2_http_header_get_value (tmp_header, env);
        }

        if (tmp_header_val && (axutil_strstr (tmp_header_val,
                                              AXIS2_HTTP_HEADER_ACCEPT_APPL_SOAP)
                               || axutil_strstr (tmp_header_val,
                                                 AXIS2_HTTP_HEADER_ACCEPT_TEXT_XML)))
        {
            return axis2_http_sender_process_response (sender,
                                                       env, msg_ctx, response);
        }
    }

    AXIS2_HANDLE_ERROR(env,
                       AXIS2_ERROR_HTTP_CLIENT_TRANSPORT_ERROR, AXIS2_FAILURE);
    AXIS2_LOG_TRACE(env->log, AXIS2_LOG_SI, "Exit:axis2_http_sender_send");
    return AXIS2_FAILURE;
}
#endif

AXIS2_EXTERN axis2_status_t AXIS2_CALL
axis2_http_sender_set_chunked (axis2_http_sender_t * sender,
                               const axutil_env_t * env, axis2_bool_t chunked)
{
    sender->chunked = chunked;
    return AXIS2_SUCCESS;
}

AXIS2_EXTERN axis2_status_t AXIS2_CALL
axis2_http_sender_set_om_output (axis2_http_sender_t * sender,
                                 const axutil_env_t * env,
                                 axiom_output_t * om_output)
{
    sender->om_output = om_output;
    return AXIS2_SUCCESS;
}

AXIS2_EXTERN axis2_status_t AXIS2_CALL
axis2_http_sender_get_header_info (axis2_http_sender_t * sender,
                                   const axutil_env_t * env,
                                   axis2_msg_ctx_t * msg_ctx,
                                   axis2_http_simple_response_t * response)
{
    axutil_array_list_t *headers = NULL;
    axis2_char_t *charset = NULL;
    int i = 0;
    axis2_bool_t response_chunked = AXIS2_FALSE;
    int *content_length = NULL;
    axutil_property_t *property = NULL;
    axis2_char_t *content_type = NULL;
    int status_code = 0;

    AXIS2_PARAM_CHECK (env->error, msg_ctx, AXIS2_FAILURE);
    AXIS2_PARAM_CHECK (env->error, response, AXIS2_FAILURE);
    AXIS2_PARAM_CHECK (env->error, sender, AXIS2_FAILURE);

    headers = axis2_http_simple_response_get_headers (response, env);
    if (headers == NULL)
    {
        return AXIS2_SUCCESS;
    }

    for (i = 0; i < axutil_array_list_size (headers, env); i++)
    {
        axis2_http_header_t *header = axutil_array_list_get (headers, env, i);
        axis2_char_t *name = axis2_http_header_get_name ((axis2_http_header_t *)
                                                         header, env);
        if (name)
        {
            if (0 == axutil_strcasecmp (name, AXIS2_HTTP_HEADER_TRANSFER_ENCODING)
                && 0 ==
                axutil_strcasecmp (axis2_http_header_get_value (header, env),
                               AXIS2_HTTP_HEADER_TRANSFER_ENCODING_CHUNKED))
            {
                axis2_char_t *transfer_encoding = NULL;
                transfer_encoding =
                    axutil_strdup (env,
                                   AXIS2_HTTP_HEADER_TRANSFER_ENCODING_CHUNKED);
                response_chunked = AXIS2_TRUE;
                axis2_msg_ctx_set_transfer_encoding (msg_ctx,
                                                     env, transfer_encoding);

            }
            if (0 != axutil_strcasecmp (name, AXIS2_HTTP_HEADER_CONTENT_TYPE))
            {
                axis2_char_t *tmp_charset = NULL;
                axis2_char_t *content_type =
                    axis2_http_header_get_value (header,
                                                 env);
                tmp_charset = strstr (content_type,
                                      AXIS2_HTTP_CHAR_SET_ENCODING);
                if (charset)
                {
                    charset = axutil_strdup (env, tmp_charset);
                    break;
                }
            }
        }
    }

    content_type =
        (axis2_char_t *) axis2_http_simple_response_get_content_type (response,
                                                                      env);
    if (content_type)
    {
        if (strstr (content_type, AXIS2_HTTP_HEADER_ACCEPT_MULTIPART_RELATED)
            && strstr (content_type, AXIS2_HTTP_HEADER_ACCEPT_XOP_XML))
        {
            axis2_ctx_t *axis_ctx =
                axis2_op_ctx_get_base (axis2_msg_ctx_get_op_ctx (msg_ctx, env),
                                       env);
            property = axutil_property_create (env);
            axutil_property_set_scope (property, env, AXIS2_SCOPE_REQUEST);
            axutil_property_set_value (property,
                                       env, axutil_strdup (env, content_type));
            axis2_ctx_set_property (axis_ctx,
                                    env, MTOM_RECIVED_CONTENT_TYPE, property);
        }
    }

    if (charset)
    {
        axis2_ctx_t *axis_ctx =
            axis2_op_ctx_get_base (axis2_msg_ctx_get_op_ctx (msg_ctx, env), env);
        if (axis_ctx)
        {
            property = axutil_property_create (env);
            axutil_property_set_scope (property, env, AXIS2_SCOPE_REQUEST);
            axutil_property_set_value (property, env, charset);
            axis2_ctx_set_property (axis_ctx, env, AXIS2_CHARACTER_SET_ENCODING,
                                    property);
        }
    }


    if (AXIS2_FALSE == response_chunked)
    {
        int tmp_len = 0;
        content_length = AXIS2_MALLOC (env->allocator, sizeof (int));
        if (!content_length)
        {
            return AXIS2_FAILURE;
        }
        tmp_len = axis2_http_simple_response_get_content_length (response, env);
        memcpy (content_length, &tmp_len, sizeof (int));
        property = axutil_property_create (env);
        axutil_property_set_scope (property, env, AXIS2_SCOPE_REQUEST);
        axutil_property_set_value (property, env, content_length);
        axis2_msg_ctx_set_property (msg_ctx, env,
                                    AXIS2_HTTP_HEADER_CONTENT_LENGTH, property);
    }

    status_code = axis2_http_simple_response_get_status_code (response, env);
    return AXIS2_SUCCESS;
}

AXIS2_EXTERN axis2_status_t AXIS2_CALL
axis2_http_sender_process_response (axis2_http_sender_t * sender,
                                    const axutil_env_t * env,
                                    axis2_msg_ctx_t * msg_ctx,
                                    axis2_http_simple_response_t * response)
{
    axutil_stream_t *in_stream = NULL;
    axutil_property_t *property = NULL;

    AXIS2_LOG_TRACE(env->log, AXIS2_LOG_SI, 
        "Entry:axis2_http_sender_process_response");
    AXIS2_PARAM_CHECK (env->error, msg_ctx, AXIS2_FAILURE);
    AXIS2_PARAM_CHECK (env->error, response, AXIS2_FAILURE);

    in_stream = axis2_http_simple_response_get_body (response, env);
    if (!in_stream)
    {
        AXIS2_HANDLE_ERROR(env, AXIS2_ERROR_NULL_STREAM_IN_RESPONSE_BODY,
                           AXIS2_FAILURE);
        return AXIS2_FAILURE;
    }

    axis2_http_sender_get_header_info (sender, env, msg_ctx, response);
    axis2_msg_ctx_set_http_output_headers(msg_ctx, env,
        axis2_http_simple_response_extract_headers(response, env));
    property = axutil_property_create (env);
    axutil_property_set_scope (property, env, AXIS2_SCOPE_REQUEST);
#ifdef AXIS2_SSL_ENABLED
    if(in_stream->stream_type == AXIS2_STREAM_SOCKET)
        axutil_property_set_free_func (property, env, axutil_stream_free_void_arg);
    else /** SSL Streams are AXIS2_STREAM_BASIC */
        axutil_property_set_free_func(property, env, axis2_ssl_stream_free);
#else
    axutil_property_set_free_func(property, env, axutil_stream_free_void_arg);
#endif
    axutil_property_set_own_value(property, env, AXIS2_FALSE);
    axutil_property_set_value (property, env, in_stream);
    axis2_msg_ctx_set_property (msg_ctx, env, AXIS2_TRANSPORT_IN, property);
    AXIS2_LOG_TRACE(env->log, AXIS2_LOG_SI, 
        "Exit:axis2_http_sender_process_response");
    return AXIS2_SUCCESS;
}

AXIS2_EXTERN axis2_status_t AXIS2_CALL
axis2_http_sender_get_timeout_values (axis2_http_sender_t * sender,
                                      const axutil_env_t * env,
                                      axis2_msg_ctx_t * msg_ctx)
{
    axis2_char_t *so_str = NULL;
    axis2_char_t *connection_str = NULL;
    axutil_param_t *tmp_param = NULL;
    axutil_property_t *property = NULL;

    AXIS2_PARAM_CHECK (env->error, sender, AXIS2_FAILURE);
    AXIS2_PARAM_CHECK (env->error, msg_ctx, AXIS2_FAILURE);
    /* check if timeout has been set by user using options 
     * with axis2_options_set_timeout_in_milli_seconds
     */
    property =
        axis2_msg_ctx_get_property(msg_ctx, env, AXIS2_HTTP_CONNECTION_TIMEOUT);
    if (property)
    {
        axis2_char_t *value = axutil_property_get_value(property, env);
        if (value) 
        {
            sender->so_timeout = AXIS2_ATOI(value);
            return AXIS2_SUCCESS;
        }
    }

    tmp_param = axis2_msg_ctx_get_parameter (msg_ctx,
                                             env, AXIS2_HTTP_SO_TIMEOUT);

    if (tmp_param)
    {
        so_str = (axis2_char_t *) axutil_param_get_value (tmp_param, env);
        if (so_str)
        {
            sender->so_timeout = AXIS2_ATOI (so_str);            
            return AXIS2_SUCCESS;
        }
    }

    tmp_param = axis2_msg_ctx_get_parameter (msg_ctx, env,
                                             AXIS2_HTTP_CONNECTION_TIMEOUT);
    if (tmp_param)
    {
        connection_str =
            (axis2_char_t *) axutil_param_get_value (tmp_param, env);
        if (connection_str)
        {
            sender->so_timeout = AXIS2_ATOI (connection_str);
            return AXIS2_SUCCESS;
        }
    }
    return AXIS2_FAILURE;
}

	AXIS2_EXTERN axis2_status_t AXIS2_CALL
axis2_http_sender_set_http_version (axis2_http_sender_t * sender,
                                    const axutil_env_t * env,
                                    axis2_char_t * version)
{
    sender->http_version = axutil_strdup (env, version);
    if (!sender->http_version)
    {
        return AXIS2_FAILURE;
    }
    return AXIS2_SUCCESS;
}

#ifndef AXIS2_LIBCURL_ENABLED
static void
axis2_http_sender_add_header_list (axis2_http_simple_request_t * request,
                                   const axutil_env_t * env,
                                   axutil_array_list_t * array_list)
{
    int ii = 0;
    int kk = 0;
    axis2_http_header_t *http_header = NULL;
    ii = axutil_array_list_size (array_list, env);
    for (; kk < ii; kk++)
    {
        http_header =
            (axis2_http_header_t *) axutil_array_list_get (array_list, env, kk);
        axis2_http_simple_request_add_header (request, env, http_header);
    }
}

static axis2_status_t
axis2_http_sender_configure_proxy (axis2_http_sender_t * sender,
                                   const axutil_env_t * env,
                                   axis2_msg_ctx_t * msg_ctx)
{
    axis2_conf_ctx_t *conf_ctx = NULL;
    axis2_conf_t *conf = NULL;
    axis2_transport_out_desc_t *trans_desc = NULL;
    axutil_param_t *proxy_param = NULL;
    axutil_hash_t *transport_attrs = NULL;
    axis2_char_t *proxy_host = NULL;
    axis2_char_t *proxy_port = NULL;

    AXIS2_PARAM_CHECK (env->error, msg_ctx, AXIS2_FAILURE);

    conf_ctx = axis2_msg_ctx_get_conf_ctx (msg_ctx, env);
    if (!conf_ctx)
    {
        return AXIS2_FAILURE;
    }
    conf = axis2_conf_ctx_get_conf (conf_ctx, env);
    if (!conf)
    {
        return AXIS2_FAILURE;
    }

    trans_desc = axis2_conf_get_transport_out (conf,
                                               env, AXIS2_TRANSPORT_ENUM_HTTP);
    if (!trans_desc)
    {
        return AXIS2_FAILURE;
    }

    proxy_param =
        axutil_param_container_get_param
        (axis2_transport_out_desc_param_container (trans_desc, env), env,
         AXIS2_HTTP_PROXY_API);
    if (!proxy_param)
    {
        proxy_param =
            axutil_param_container_get_param
            (axis2_transport_out_desc_param_container (trans_desc, env), env,
             AXIS2_HTTP_PROXY);
    }
    if (proxy_param)
    {
        transport_attrs = axutil_param_get_attributes (proxy_param, env);
        if (transport_attrs)
        {
            axutil_generic_obj_t *obj = NULL;
            axiom_attribute_t *host_attr = NULL;
            axiom_attribute_t *port_attr = NULL;

            obj = axutil_hash_get (transport_attrs, AXIS2_HTTP_PROXY_HOST,
                                   AXIS2_HASH_KEY_STRING);
            if (!obj)
            {
                return AXIS2_FAILURE;
            }
            host_attr = (axiom_attribute_t *) axutil_generic_obj_get_value (obj,
                                                                            env);
            if (!host_attr)
            {
                return AXIS2_FAILURE;
            }
            proxy_host = axiom_attribute_get_value (host_attr, env);
            if (!proxy_host)
            {
                return AXIS2_FAILURE;
            }
            /* Now we get the port */
            obj = NULL;

            obj = axutil_hash_get (transport_attrs, AXIS2_HTTP_PROXY_PORT,
                                   AXIS2_HASH_KEY_STRING);
            port_attr = (axiom_attribute_t *) axutil_generic_obj_get_value (obj,
                                                                            env);
            if (!port_attr)
            {
                return AXIS2_FAILURE;
            }
            proxy_port = axiom_attribute_get_value (port_attr, env);
            if (!proxy_port)
            {
                return AXIS2_FAILURE;
            }
        }
    }
    if (proxy_port && proxy_host)
    {
        axis2_http_client_set_proxy (sender->client, env, proxy_host,
                                     AXIS2_ATOI (proxy_port));
    }
    return AXIS2_SUCCESS;
}
#endif

#ifndef AXIS2_LIBCURL_ENABLED
static axis2_status_t
axis2_http_sender_configure_server_cert (axis2_http_sender_t * sender,
                                         const axutil_env_t * env,
                                         axis2_msg_ctx_t * msg_ctx)
{
    axutil_property_t *server_cert_property = NULL;
    axutil_param_t *server_cert_param = NULL;
    axis2_char_t *server_cert = NULL;
    axis2_status_t status = AXIS2_FAILURE;

    AXIS2_PARAM_CHECK (env->error, msg_ctx, AXIS2_FAILURE);

    server_cert_property = axis2_msg_ctx_get_property (msg_ctx, env,
                                                       AXIS2_SSL_SERVER_CERT);
    if (server_cert_property)
    {
        server_cert =
            (axis2_char_t *) axutil_property_get_value (server_cert_property,
                                                        env);
    }
    else
    {
        server_cert_param = axis2_msg_ctx_get_parameter (msg_ctx,
                                                         env,
                                                         AXIS2_SSL_SERVER_CERT);
        if (server_cert_param)
        {
            server_cert =
                (axis2_char_t *) axutil_param_get_value (server_cert_param, env);
        }
    }

    if (server_cert)
    {
        status = axis2_http_client_set_server_cert (sender->client,
                                                    env, server_cert);
    }

    return status;
}
#endif

#ifndef AXIS2_LIBCURL_ENABLED
static axis2_status_t
axis2_http_sender_configure_key_file (axis2_http_sender_t * sender,
                                      const axutil_env_t * env,
                                      axis2_msg_ctx_t * msg_ctx)
{
    axutil_property_t *key_file_property = NULL;
    axutil_param_t *key_file_param = NULL;
    axis2_char_t *key_file = NULL;
    axis2_status_t status = AXIS2_FAILURE;

    AXIS2_PARAM_CHECK (env->error, msg_ctx, AXIS2_FAILURE);

    key_file_property = axis2_msg_ctx_get_property (msg_ctx, env,
                                                    AXIS2_SSL_KEY_FILE);
    if (key_file_property)
    {
        key_file =
            (axis2_char_t *) axutil_property_get_value (key_file_property, env);
    }
    else
    {
        key_file_param = axis2_msg_ctx_get_parameter (msg_ctx, env,
                                                      AXIS2_SSL_KEY_FILE);
        if (key_file_param)
        {
            key_file =
                (axis2_char_t *) axutil_param_get_value (key_file_param, env);
        }
    }

    if (key_file)
    {
        status = axis2_http_client_set_key_file (sender->client, env, key_file);
    }

    return status;
}
#endif

#ifndef AXIS2_LIBCURL_ENABLED
static axis2_status_t
axis2_http_sender_configure_http_basic_auth (axis2_http_sender_t * sender,
                                             const axutil_env_t * env,
                                             axis2_msg_ctx_t * msg_ctx,
                                             axis2_http_simple_request_t *
                                             request)
{
    axutil_property_t *http_auth_un = NULL;
    axutil_property_t *http_auth_pw = NULL;
    axis2_char_t *uname = NULL;
    axis2_char_t *passwd = NULL;

    http_auth_un = axis2_msg_ctx_get_property (msg_ctx, env,
                                               AXIS2_HTTP_AUTH_UNAME);
    http_auth_pw = axis2_msg_ctx_get_property (msg_ctx, env,
                                               AXIS2_HTTP_AUTH_PASSWD);
    if (http_auth_un && http_auth_pw)
    {
        uname = (axis2_char_t *) axutil_property_get_value (http_auth_un, env);
        passwd = (axis2_char_t *) axutil_property_get_value (http_auth_pw, env);
    }
    if (!uname || !passwd)
    {
        axis2_conf_ctx_t *conf_ctx = NULL;
        axis2_conf_t *conf = NULL;
        axis2_transport_out_desc_t *trans_desc = NULL;
        axutil_param_t *http_auth_param = NULL;
        axutil_hash_t *transport_attrs = NULL;

        conf_ctx = axis2_msg_ctx_get_conf_ctx (msg_ctx, env);
        if (conf_ctx)
        {
            conf = axis2_conf_ctx_get_conf (conf_ctx, env);
            if (conf)
            {
                trans_desc = axis2_conf_get_transport_out (conf,
                                                           env, AXIS2_TRANSPORT_ENUM_HTTP);
            }
        }
        if (trans_desc)
        {
            http_auth_param =
                axutil_param_container_get_param
                (axis2_transport_out_desc_param_container (trans_desc, env), env,
                AXIS2_HTTP_AUTHENTICATION);
            if (http_auth_param)
            {
                transport_attrs = axutil_param_get_attributes (http_auth_param, env);
                if (transport_attrs)
                {
                    axutil_generic_obj_t *obj = NULL;
                    axiom_attribute_t *username_attr = NULL;
                    axiom_attribute_t *password_attr = NULL;

                    obj = axutil_hash_get (transport_attrs, 
                                           AXIS2_HTTP_AUTHENTICATION_USERNAME,
                                           AXIS2_HASH_KEY_STRING);
                    if (obj)
                    {
                        username_attr = 
                            (axiom_attribute_t *) axutil_generic_obj_get_value 
                            (obj, env);
                    }
                    if (username_attr)
                    {
                        uname = axiom_attribute_get_value (username_attr, env);
                    }
                    obj = NULL;

                    obj = axutil_hash_get (transport_attrs, 
                                           AXIS2_HTTP_AUTHENTICATION_PASSWORD,
                                           AXIS2_HASH_KEY_STRING);
                    if (obj)
                    {
                        password_attr = 
                            (axiom_attribute_t *) axutil_generic_obj_get_value 
                            (obj, env);
                    }
                    if (password_attr)
                    {
                        passwd = axiom_attribute_get_value (password_attr, env);
                    }
                }
            }
        }
    }
    if (uname && passwd)
    {
        int elen;
        int plen = axutil_strlen (uname) + axutil_strlen (passwd) + 1;
        axis2_char_t *to_encode =
            (axis2_char_t *) (AXIS2_MALLOC (env->allocator, 
                                            sizeof (axis2_char_t) * plen + 1));
        axis2_char_t *encoded = NULL;
        axis2_char_t *auth_str = NULL;
        sprintf (to_encode, "%s:%s", uname, passwd);
        elen = axutil_base64_encode_len (plen);
        encoded = (axis2_char_t *) (AXIS2_MALLOC (env->allocator,
                                                  sizeof (axis2_char_t) *
                                                  elen));
        auth_str =
            (axis2_char_t
             *) (AXIS2_MALLOC (env->allocator,
                               sizeof (axis2_char_t) * (elen + 6)));
        axutil_base64_encode (encoded, to_encode, plen);
        sprintf (auth_str, "%s %s", AXIS2_HTTP_AUTH_TYPE_BASIC, encoded);
        axis2_http_sender_util_add_header (env, request,
                                           AXIS2_HTTP_HEADER_AUTHORIZATION,
                                           auth_str);

        AXIS2_FREE (env->allocator, to_encode);
        to_encode = NULL;
        AXIS2_FREE (env->allocator, encoded);
        encoded = NULL;
        AXIS2_FREE (env->allocator, auth_str);
        auth_str = NULL;

        return AXIS2_SUCCESS;
    }

    return AXIS2_FAILURE;

}

static axis2_status_t
axis2_http_sender_configure_proxy_basic_auth (axis2_http_sender_t * sender,
                                              const axutil_env_t * env,
                                              axis2_msg_ctx_t * msg_ctx,
                                              axis2_http_simple_request_t *
                                              request)
{
    axutil_property_t *proxy_auth_un = NULL;
    axutil_property_t *proxy_auth_pw = NULL;
    axis2_char_t *uname = NULL;
    axis2_char_t *passwd = NULL;

    proxy_auth_un = axis2_msg_ctx_get_property (msg_ctx, env,
                                               AXIS2_PROXY_AUTH_UNAME);
    proxy_auth_pw = axis2_msg_ctx_get_property (msg_ctx, env,
                                               AXIS2_PROXY_AUTH_PASSWD);

    if (proxy_auth_un && proxy_auth_pw)
    {
        uname = (axis2_char_t *) axutil_property_get_value (proxy_auth_un, env);
        passwd = (axis2_char_t *) axutil_property_get_value (proxy_auth_pw, env);
    }
    if (!uname || !passwd)
    {
        axis2_conf_ctx_t *conf_ctx = NULL;
        axis2_conf_t *conf = NULL;
        axis2_transport_out_desc_t *trans_desc = NULL;
        axutil_param_t *proxy_param = NULL;
        axutil_hash_t *transport_attrs = NULL;

        conf_ctx = axis2_msg_ctx_get_conf_ctx (msg_ctx, env);
        if (conf_ctx)
        {
            conf = axis2_conf_ctx_get_conf (conf_ctx, env);
            if (conf)
            {
                trans_desc = 
                    axis2_conf_get_transport_out (conf,
                                                  env, 
                                                  AXIS2_TRANSPORT_ENUM_HTTP);
            }
        }
        if (trans_desc)
        {
            proxy_param =
                axutil_param_container_get_param
                (axis2_transport_out_desc_param_container (trans_desc, env), env,
                AXIS2_HTTP_PROXY_API);
            if (!proxy_param)
            {
                proxy_param =
                    axutil_param_container_get_param
                    (axis2_transport_out_desc_param_container (trans_desc, env), env,
                    AXIS2_HTTP_PROXY);
            } 
            if (proxy_param)
            {
                transport_attrs = axutil_param_get_attributes (proxy_param, env);
                if (transport_attrs)
                {
                    axutil_generic_obj_t *obj = NULL;
                    axiom_attribute_t *username_attr = NULL;
                    axiom_attribute_t *password_attr = NULL;

                    obj = axutil_hash_get (transport_attrs, 
                                           AXIS2_HTTP_PROXY_USERNAME,
                                           AXIS2_HASH_KEY_STRING);
                    if (obj)
                    {
                        username_attr = (axiom_attribute_t *) 
                            axutil_generic_obj_get_value (obj,
                                                          env);
                    }
                    if (username_attr)
                    {
                        uname = axiom_attribute_get_value (username_attr, env);
                    }
                    obj = NULL;

                    obj = axutil_hash_get (transport_attrs, 
                                           AXIS2_HTTP_PROXY_PASSWORD,
                                           AXIS2_HASH_KEY_STRING);
                    if (obj)
                    {
                        password_attr = (axiom_attribute_t *) 
                            axutil_generic_obj_get_value (obj,
                                                          env);
                    }
                    if (password_attr)
                    {
                        passwd = axiom_attribute_get_value (password_attr, env);
                    }
                }
            }
        }
    }
    if (uname && passwd)
    {
        int elen;
        int plen = axutil_strlen (uname) + axutil_strlen (passwd) + 1;
        axis2_char_t *to_encode =
            (axis2_char_t
             *) (AXIS2_MALLOC (env->allocator, 
                               sizeof (axis2_char_t) * plen + 1));
        axis2_char_t *encoded = NULL;
        axis2_char_t *auth_str = NULL;
        sprintf (to_encode, "%s:%s", uname, passwd);
        elen = axutil_base64_encode_len (plen);
        encoded = (axis2_char_t *) (AXIS2_MALLOC (env->allocator,
                                                  sizeof (axis2_char_t) *
                                                  elen));
        auth_str =
            (axis2_char_t
             *) (AXIS2_MALLOC (env->allocator,
                               sizeof (axis2_char_t) * (elen + 6)));
        axutil_base64_encode (encoded, to_encode, plen);
        sprintf (auth_str, "%s %s", AXIS2_PROXY_AUTH_TYPE_BASIC, encoded);
        axis2_http_sender_util_add_header (env, request,
                                           AXIS2_HTTP_HEADER_PROXY_AUTHORIZATION,
                                           auth_str);

        AXIS2_FREE (env->allocator, to_encode);
        to_encode = NULL;
        AXIS2_FREE (env->allocator, encoded);
        encoded = NULL;
        AXIS2_FREE (env->allocator, auth_str);
        auth_str = NULL;
 
        return AXIS2_SUCCESS;
    }
    return AXIS2_FAILURE;
}
#endif

#ifndef AXIS2_LIBCURL_ENABLED
static axis2_status_t
axis2_http_sender_configure_http_digest_auth (axis2_http_sender_t * sender,
                                              const axutil_env_t * env,
                                              axis2_msg_ctx_t * msg_ctx,
                                              axis2_http_simple_request_t * request,
                                              axis2_char_t * header_data)
{
    axutil_property_t *http_auth_un = NULL;
    axutil_property_t *http_auth_pw = NULL;
    axis2_char_t *uname = NULL;
    axis2_char_t *passwd = NULL;

    if (!header_data || !*header_data)
        return AXIS2_FAILURE;

    http_auth_un = axis2_msg_ctx_get_property (msg_ctx, env,
                                               AXIS2_HTTP_AUTH_UNAME);
    http_auth_pw = axis2_msg_ctx_get_property (msg_ctx, env,
                                               AXIS2_HTTP_AUTH_PASSWD);
    if (http_auth_un && http_auth_pw)
    {
        uname = (axis2_char_t *) axutil_property_get_value (http_auth_un, env);
        passwd = (axis2_char_t *) axutil_property_get_value (http_auth_pw, env);
    }
    if (!uname || !passwd)
    {
        axis2_conf_ctx_t *conf_ctx = NULL;
        axis2_conf_t *conf = NULL;
        axis2_transport_out_desc_t *trans_desc = NULL;
        axutil_param_t *http_auth_param = NULL;
        axutil_hash_t *transport_attrs = NULL;

        conf_ctx = axis2_msg_ctx_get_conf_ctx (msg_ctx, env);
        if (conf_ctx)
        {
            conf = axis2_conf_ctx_get_conf (conf_ctx, env);
            if (conf)
            {
                trans_desc = axis2_conf_get_transport_out (conf,
                                                           env, 
                                                           AXIS2_TRANSPORT_ENUM_HTTP);
            }
        }
        if (trans_desc)
        {
            http_auth_param =
                axutil_param_container_get_param
                (axis2_transport_out_desc_param_container (trans_desc, env), env,
                AXIS2_HTTP_AUTHENTICATION);
            if (http_auth_param)
            {
                transport_attrs = axutil_param_get_attributes (http_auth_param, env);
                if (transport_attrs)
                {
                    axutil_generic_obj_t *obj = NULL;
                    axiom_attribute_t *username_attr = NULL;
                    axiom_attribute_t *password_attr = NULL;

                    obj = axutil_hash_get (transport_attrs, 
                                           AXIS2_HTTP_AUTHENTICATION_USERNAME,
                                           AXIS2_HASH_KEY_STRING);
                    if (obj)
                    {
                        username_attr = (axiom_attribute_t *) 
                            axutil_generic_obj_get_value (obj,
                                                          env);
                    }
                    if (username_attr)
                    {
                        uname = axiom_attribute_get_value (username_attr, env);
                    }
                    obj = NULL;

                    obj = axutil_hash_get (transport_attrs, 
                                           AXIS2_HTTP_AUTHENTICATION_PASSWORD,
                                           AXIS2_HASH_KEY_STRING);
                    if (obj)
                    {
                        password_attr = (axiom_attribute_t *) 
                            axutil_generic_obj_get_value (obj,
                                                          env);
                    }
                    if (password_attr)
                    {
                        passwd = axiom_attribute_get_value (password_attr, env);
                    }
                }
            }
        }
    }
    if (uname && passwd)
    {
        int elen = 0; /* length of header content */
        int print_const = 5; /* constant accounts for printing the
                                quoatation marks, comma, and space */
        int response_length = 32;
        axis2_char_t *temp = NULL;
        axis2_char_t *alloc_temp = NULL;
        axis2_char_t *algo = AXIS2_HTTP_AUTHORIZATION_REQUEST_ALGORITHM_MD5;
        axis2_char_t *realm = NULL;
        axis2_char_t *qop = NULL;
        axis2_char_t *nonce = NULL;
        axis2_char_t *opaque = NULL;
        axis2_char_t *cnonce = NULL;
        axis2_char_t *nc = NULL;
        axutil_digest_hash_hex_t h_a1;
        axutil_digest_hash_hex_t h_a2;
        axutil_digest_hash_hex_t response;
        axis2_char_t *auth_str = NULL;
        axutil_property_t *method = NULL;
        axis2_char_t *method_value = NULL;
        axis2_char_t *url = NULL;

        url = axis2_http_request_line_get_uri(
                       axis2_http_simple_request_get_request_line(request, env),
                       env);

        if (!url)
        {
            return AXIS2_FAILURE;
        }

        elen += print_const + 
            axutil_strlen(AXIS2_HTTP_AUTHORIZATION_REQUEST_PARAM_URI) + 
            axutil_strlen(url);

        elen += print_const + 
            axutil_strlen(AXIS2_HTTP_AUTHORIZATION_REQUEST_PARAM_USERNAME) +
            axutil_strlen(uname);

        method = (axutil_property_t *) axis2_msg_ctx_get_property (msg_ctx, 
                                                                   env,
                                                                   AXIS2_HTTP_METHOD);
        if (method)
        {
            method_value = (axis2_char_t *) axutil_property_get_value (method,
                                                                       env);
        }
        else
        {
            method_value = AXIS2_HTTP_POST;
        }

        temp = axutil_strstr(header_data, 
                             AXIS2_HTTP_AUTHORIZATION_REQUEST_PARAM_REALM);
        if (temp)
        {
            realm = axutil_strchr(temp, AXIS2_ESC_DOUBLE_QUOTE);
            if (realm)
            {
                realm++;
                temp = axutil_strchr(realm, AXIS2_ESC_DOUBLE_QUOTE);
                alloc_temp = (axis2_char_t
                              *) (AXIS2_MALLOC (env->allocator,
                              sizeof (axis2_char_t) * (temp-realm + 1)));
                strncpy(alloc_temp, realm, (temp-realm));
                if (alloc_temp)
                    alloc_temp[temp-realm] = AXIS2_ESC_NULL;
                realm = alloc_temp;
                alloc_temp = NULL;
                elen += print_const + 
                    axutil_strlen(AXIS2_HTTP_AUTHORIZATION_REQUEST_PARAM_REALM)+
                    axutil_strlen(realm);
            }
            else
            {
                return AXIS2_FAILURE;
            }
        }

        temp = axutil_strstr(header_data, 
                             AXIS2_HTTP_AUTHORIZATION_REQUEST_PARAM_QOP);
        if (temp)
        {
            qop = axutil_strchr(temp, AXIS2_ESC_DOUBLE_QUOTE);
            if (qop)
            {
                qop++;
                temp = axutil_strchr(qop, AXIS2_ESC_DOUBLE_QUOTE);
                alloc_temp = (axis2_char_t
                              *) (AXIS2_MALLOC (env->allocator,
                              sizeof (axis2_char_t) * (temp-qop + 1)));
                strncpy(alloc_temp, qop, (temp-qop));
                if (alloc_temp)
                    alloc_temp[temp-qop] = AXIS2_ESC_NULL;
                qop = alloc_temp;
                alloc_temp = NULL;
            }
        }

        temp = axutil_strstr(header_data, 
                             AXIS2_HTTP_AUTHORIZATION_REQUEST_PARAM_NONCE);
        if (temp)
        {
            nonce = axutil_strchr(temp, AXIS2_ESC_DOUBLE_QUOTE);
            if (nonce)
            {
                nonce++;
                temp = axutil_strchr(nonce, AXIS2_ESC_DOUBLE_QUOTE);
                alloc_temp = (axis2_char_t
                              *) (AXIS2_MALLOC (env->allocator,
                              sizeof (axis2_char_t) * (temp-nonce + 1)));
                strncpy(alloc_temp, nonce, (temp-nonce));
                if (alloc_temp)
                    alloc_temp[temp-nonce] = AXIS2_ESC_NULL;
                nonce = alloc_temp;
                alloc_temp = NULL;

                elen += print_const + 
                    axutil_strlen(AXIS2_HTTP_AUTHORIZATION_REQUEST_PARAM_NONCE)+
                    axutil_strlen(nonce);
            }
            else
            {
                if (realm)
                    AXIS2_FREE (env->allocator, realm);
                return AXIS2_FAILURE;
            }
        }

        temp = axutil_strstr(header_data, 
                             AXIS2_HTTP_AUTHORIZATION_REQUEST_PARAM_OPAQUE);
        if (temp)
        {
            opaque = axutil_strchr(temp, AXIS2_ESC_DOUBLE_QUOTE);
            if (opaque)
            {
                opaque++;
                temp = axutil_strchr(opaque, AXIS2_ESC_DOUBLE_QUOTE);
                alloc_temp = (axis2_char_t
                              *) (AXIS2_MALLOC (env->allocator,
                              sizeof (axis2_char_t) * (temp-opaque + 1)));
                strncpy(alloc_temp, opaque, (temp-opaque));
                if (alloc_temp)
                    alloc_temp[temp-opaque] = AXIS2_ESC_NULL;
                opaque = alloc_temp;
                alloc_temp = NULL;
                elen += print_const + 
                    axutil_strlen(AXIS2_HTTP_AUTHORIZATION_REQUEST_PARAM_OPAQUE)
                    + axutil_strlen(opaque);
            }
            else
            {
                if (realm)
                    AXIS2_FREE (env->allocator, realm);
                if (nonce)
                    AXIS2_FREE (env->allocator, nonce);
                return AXIS2_FAILURE;
            }
        }

        if (qop)
        {
            nc = AXIS2_HTTP_AUTHORIZATION_REQUEST_DEFAULT_CLIENT_NONCE;
            temp = qop;
            if (!axutil_strstr(temp, 
                               AXIS2_HTTP_AUTHORIZATION_REQUEST_QOP_OPTION_AUTH))
            {
                return AXIS2_FAILURE;
            }
            AXIS2_FREE (env->allocator, qop);
            qop = AXIS2_HTTP_AUTHORIZATION_REQUEST_QOP_OPTION_AUTH;
            temp = axutil_uuid_gen(env);
            cnonce = temp;
            temp += CLIENT_NONCE_LENGTH;
            if (temp)
                *temp = AXIS2_ESC_NULL;
            elen += 11 
                + axutil_strlen(
                    AXIS2_HTTP_AUTHORIZATION_REQUEST_DEFAULT_CLIENT_NONCE)
                + axutil_strlen(
                    AXIS2_HTTP_AUTHORIZATION_REQUEST_PARAM_NONCE_COUNT)
                + axutil_strlen(
                    AXIS2_HTTP_AUTHORIZATION_REQUEST_PARAM_CLIENT_NONCE)
                + axutil_strlen(
                    AXIS2_HTTP_AUTHORIZATION_REQUEST_PARAM_QOP)
                + CLIENT_NONCE_LENGTH + axutil_strlen(qop);
        }
        
        axutil_digest_calc_get_h_a1(env, algo, uname,
                                    realm, passwd, cnonce,
                                    nonce, h_a1);
        axutil_digest_calc_get_response(env, h_a1, nonce, nc,
                                        cnonce, qop, method_value,
                                        url, h_a2, response);

        elen += 4 
            + axutil_strlen(
                AXIS2_HTTP_AUTHORIZATION_REQUEST_PARAM_RESPONSE)
            + axutil_strlen(AXIS2_HTTP_AUTH_TYPE_DIGEST) + response_length;

        auth_str =
            (axis2_char_t
             *) (AXIS2_MALLOC (env->allocator,
                               sizeof (axis2_char_t) * (elen + 1)));
        temp = auth_str;
        sprintf (temp, "%s %s=\"%s\", ",
                 AXIS2_HTTP_AUTH_TYPE_DIGEST,
                 AXIS2_HTTP_AUTHORIZATION_REQUEST_PARAM_USERNAME, uname);
        temp += ((int)strlen(AXIS2_HTTP_AUTH_TYPE_DIGEST) +
                 (int)strlen(AXIS2_HTTP_AUTHORIZATION_REQUEST_PARAM_USERNAME) +
                 (int)strlen(uname) + 6);
        if (realm)
        {
            sprintf (temp, "%s=\"%s\", ",
                     AXIS2_HTTP_AUTHORIZATION_REQUEST_PARAM_REALM, realm);
            temp += ((int)strlen(AXIS2_HTTP_AUTHORIZATION_REQUEST_PARAM_REALM) +
                     (int)strlen(realm) + 5);
        }
        if (nonce)
        {
            sprintf (temp, "%s=\"%s\", ",
                     AXIS2_HTTP_AUTHORIZATION_REQUEST_PARAM_NONCE, nonce);
            temp += ((int)strlen(AXIS2_HTTP_AUTHORIZATION_REQUEST_PARAM_NONCE) +
                     (int)strlen(nonce) + 5);
        }
        sprintf (temp, "%s=\"%s\", ",  
                 AXIS2_HTTP_AUTHORIZATION_REQUEST_PARAM_URI, url);
        temp += ((int)strlen(AXIS2_HTTP_AUTHORIZATION_REQUEST_PARAM_URI) +
                 (int)strlen(url) + 5);
        if (qop)
        {
            sprintf (temp, "%s=%s, %s=%s, %s=\"%s\", ",
                     AXIS2_HTTP_AUTHORIZATION_REQUEST_PARAM_QOP, qop,
                     AXIS2_HTTP_AUTHORIZATION_REQUEST_PARAM_NONCE_COUNT, nc,
                     AXIS2_HTTP_AUTHORIZATION_REQUEST_PARAM_CLIENT_NONCE,
                     cnonce);
            temp += ((int)strlen(AXIS2_HTTP_AUTHORIZATION_REQUEST_PARAM_QOP) +
                     (int)strlen(qop) +
                     (int)strlen(
                         AXIS2_HTTP_AUTHORIZATION_REQUEST_PARAM_NONCE_COUNT) +
                     (int)strlen(nc) +
                     (int)strlen(
                         AXIS2_HTTP_AUTHORIZATION_REQUEST_PARAM_CLIENT_NONCE) +
                     (int)strlen(cnonce) + 11);
        }
        if (opaque)
        {
            sprintf (temp, "%s=\"%s\", ",
                     AXIS2_HTTP_AUTHORIZATION_REQUEST_PARAM_OPAQUE, opaque);
            temp += ((int)strlen(AXIS2_HTTP_AUTHORIZATION_REQUEST_PARAM_OPAQUE)+
                     (int)strlen(opaque) + 5);
        }
        sprintf (temp, "%s=\"%s\"",
                 AXIS2_HTTP_AUTHORIZATION_REQUEST_PARAM_RESPONSE, response);

        axis2_http_sender_util_add_header (env, request,
                                           AXIS2_HTTP_HEADER_AUTHORIZATION,
                                           auth_str);
        if (realm)
            AXIS2_FREE (env->allocator, realm);
        if (nonce)
            AXIS2_FREE (env->allocator, nonce);
        if (cnonce)
            AXIS2_FREE (env->allocator, cnonce);
        if (opaque)
            AXIS2_FREE (env->allocator, opaque);
        if (auth_str)
            AXIS2_FREE (env->allocator, auth_str);
        auth_str = NULL;
 
        return AXIS2_SUCCESS;
    }
    return AXIS2_FAILURE;
}

static axis2_status_t
axis2_http_sender_configure_http_ntlm_auth(
    axis2_http_sender_t * sender,
    const axutil_env_t * env,
    axis2_msg_ctx_t * msg_ctx,
    axis2_http_simple_request_t * request,
    axis2_char_t * header_data)
{
    axutil_property_t *http_auth_un = NULL;
    axutil_property_t *http_auth_pw = NULL;
    axutil_property_t *ntlm_auth_dm = NULL;
    axutil_property_t *ntlm_auth_wo = NULL;
    axutil_property_t *ntlm_auth_fg = NULL;
    axis2_char_t *uname = NULL;
    axis2_char_t *passwd = NULL;
    int flags = 0;
    axis2_char_t *domain = NULL;
    axis2_char_t *workstation = NULL;

#ifndef AXIS2_NTLM_ENABLED
    AXIS2_LOG_ERROR(env->log, AXIS2_LOG_SI, "NTLM is not enabled. Please consider building "\
            "Axis2/C enabling a ntlm client library");
    return AXIS2_FAILURE;
#endif

    http_auth_un = axis2_msg_ctx_get_property(msg_ctx, env, AXIS2_HTTP_AUTH_UNAME);
    http_auth_pw = axis2_msg_ctx_get_property(msg_ctx, env, AXIS2_HTTP_AUTH_PASSWD);
    ntlm_auth_dm = axis2_msg_ctx_get_property(msg_ctx, env, AXIS2_NTLM_AUTH_DOMAIN);
    ntlm_auth_wo = axis2_msg_ctx_get_property(msg_ctx, env, AXIS2_NTLM_AUTH_WORKSTATION);
    ntlm_auth_fg = axis2_msg_ctx_get_property(msg_ctx, env, AXIS2_NTLM_AUTH_FLAGS);
    if(http_auth_un && http_auth_pw)
    {
        uname = (axis2_char_t *)axutil_property_get_value(http_auth_un, env);
        passwd = (axis2_char_t *)axutil_property_get_value(http_auth_pw, env);
    }
    if(!uname || !passwd)
    {
        axis2_conf_ctx_t *conf_ctx = NULL;
        axis2_conf_t *conf = NULL;
        axis2_transport_out_desc_t *trans_desc = NULL;
        axutil_param_t *http_auth_param = NULL;
        axutil_hash_t *transport_attrs = NULL;

        conf_ctx = axis2_msg_ctx_get_conf_ctx(msg_ctx, env);
        if(conf_ctx)
        {
            conf = axis2_conf_ctx_get_conf(conf_ctx, env);
            if(conf)
            {
                trans_desc = axis2_conf_get_transport_out(conf, env, AXIS2_TRANSPORT_ENUM_HTTP);
            }
        }
        if(trans_desc)
        {
            http_auth_param = axutil_param_container_get_param(
                axis2_transport_out_desc_param_container(trans_desc, env), env,
                AXIS2_HTTP_AUTHENTICATION);
            if(http_auth_param)
            {
                transport_attrs = axutil_param_get_attributes(http_auth_param, env);
                if(transport_attrs)
                {
                    axutil_generic_obj_t *obj = NULL;
                    axiom_attribute_t *username_attr = NULL;
                    axiom_attribute_t *password_attr = NULL;

                    obj = axutil_hash_get(transport_attrs, AXIS2_HTTP_AUTHENTICATION_USERNAME,
                        AXIS2_HASH_KEY_STRING);
                    if(obj)
                    {
                        username_attr = (axiom_attribute_t *)axutil_generic_obj_get_value(obj, env);
                    }
                    if(username_attr)
                    {
                        uname = axiom_attribute_get_value(username_attr, env);
                    }
                    obj = NULL;

                    obj = axutil_hash_get(transport_attrs, AXIS2_HTTP_AUTHENTICATION_PASSWORD,
                        AXIS2_HASH_KEY_STRING);
                    if(obj)
                    {
                        password_attr = (axiom_attribute_t *)axutil_generic_obj_get_value(obj, env);
                    }
                    if(password_attr)
                    {
                        passwd = axiom_attribute_get_value(password_attr, env);
                    }
                }
            }
        }
    }
    if(ntlm_auth_fg)
    {
        axis2_char_t *temp_flags = (axis2_char_t *) axutil_property_get_value(ntlm_auth_fg, env);
        if(temp_flags)
        {
            flags = atoi(temp_flags);
        }
        else
        {
            flags = 0;
        }
    }
    else
    {
        flags = 0;
    }
    if(ntlm_auth_dm)
    {
        domain = (axis2_char_t *)axutil_property_get_value(ntlm_auth_dm, env);
    }
    if(ntlm_auth_wo)
    {
        workstation = (axis2_char_t *)axutil_property_get_value(ntlm_auth_wo, env);
    }
    if(uname && passwd)
    {
        int elen = 0;
        axis2_char_t *auth_str = NULL;
        axis2_char_t *encoded_message = NULL;
        axis2_http_header_t *tmp_header = NULL;
        axis2_ntlm_t *ntlm = NULL;
        axis2_status_t status = AXIS2_FAILURE;

        ntlm = axis2_ntlm_create(env);
        if(!header_data || !*header_data) /* NTLM unauthorized received */
        {
            /* Ceate type 1(negotiation) header  message */
             status = axis2_ntlm_auth_create_type1_message(ntlm, env, &encoded_message, &elen, uname,
                passwd, flags, domain);
             /*status = axis2_ntlm_auth_create_type1_message(ntlm, env, &encoded_message, &elen, "nandika",
                "nandika", 0, "mydomain", "workstation");*/
        }
        else /* NTLM challange received */
        {
            /* Create Type3 (authentication) header message */
             status = axis2_ntlm_auth_create_type3_message(ntlm, env, header_data,
                     &encoded_message, &elen, uname, passwd, domain, workstation);
        }
        if(status != AXIS2_SUCCESS)
        {
            if(encoded_message)
            {
                AXIS2_FREE(env->allocator, encoded_message);
                encoded_message = NULL;
            }
            if(ntlm)
            {
                axis2_ntlm_free(ntlm, env);
            }
            AXIS2_LOG_ERROR(env->log, AXIS2_LOG_SI,
                    "axis2_ntlm_auth_create_type3_message call failed");
            return status;
        }
        AXIS2_LOG_DEBUG(env->log, AXIS2_LOG_SI, "encoded_message:%s", encoded_message);

        auth_str
            = (axis2_char_t *)(AXIS2_MALLOC(env->allocator, sizeof(axis2_char_t) * (elen + 6)));
        sprintf(auth_str, "%s %s", AXIS2_HTTP_AUTH_TYPE_NTLM, encoded_message);
        tmp_header = axis2_http_simple_request_get_first_header(request, env,
            AXIS2_HTTP_HEADER_AUTHORIZATION);
        if(tmp_header)
        {
            axis2_char_t *tmp_header_val = axis2_http_header_get_value(tmp_header, env);
            if(tmp_header_val)
            {
                axis2_http_header_set_value(tmp_header, env, auth_str);
            }
        }
        else
        {
            axis2_http_sender_util_add_header(env, request, AXIS2_HTTP_HEADER_AUTHORIZATION, auth_str);
        }


        AXIS2_FREE(env->allocator, encoded_message);
        encoded_message = NULL;
        axis2_ntlm_free(ntlm, env);
        AXIS2_FREE(env->allocator, auth_str);
        auth_str = NULL;

        return AXIS2_SUCCESS;
    }
    return AXIS2_FAILURE;
} /* axis2_http_sender_configure_http_ntlm_auth */

static axis2_status_t
axis2_http_sender_configure_proxy_digest_auth (axis2_http_sender_t * sender,
                                               const axutil_env_t * env,
                                               axis2_msg_ctx_t * msg_ctx,
                                               axis2_http_simple_request_t * request,
                                               axis2_char_t * header_data)
{
    axutil_property_t *proxy_auth_un = NULL;
    axutil_property_t *proxy_auth_pw = NULL;
    axis2_char_t *uname = NULL;
    axis2_char_t *passwd = NULL;

    if (!header_data || !*header_data)
        return AXIS2_FAILURE;

    proxy_auth_un = axis2_msg_ctx_get_property (msg_ctx, env,
                                               AXIS2_PROXY_AUTH_UNAME);
    proxy_auth_pw = axis2_msg_ctx_get_property (msg_ctx, env,
                                               AXIS2_PROXY_AUTH_PASSWD);

    if (proxy_auth_un && proxy_auth_pw)
    {
        uname = (axis2_char_t *) axutil_property_get_value (proxy_auth_un, env);
        passwd = (axis2_char_t *) axutil_property_get_value (proxy_auth_pw, env);
    }
    if (!uname || !passwd)
    {
        axis2_conf_ctx_t *conf_ctx = NULL;
        axis2_conf_t *conf = NULL;
        axis2_transport_out_desc_t *trans_desc = NULL;
        axutil_param_t *proxy_param = NULL;
        axutil_hash_t *transport_attrs = NULL;

        conf_ctx = axis2_msg_ctx_get_conf_ctx (msg_ctx, env);
        if (conf_ctx)
        {
            conf = axis2_conf_ctx_get_conf (conf_ctx, env);
            if (conf)
            {
                trans_desc = axis2_conf_get_transport_out (conf,
                                                           env, 
                                                           AXIS2_TRANSPORT_ENUM_HTTP);
            }
        }
        if (trans_desc)
        {
            proxy_param =
                axutil_param_container_get_param
                (axis2_transport_out_desc_param_container (trans_desc, env), 
                 env,
                 AXIS2_HTTP_PROXY_API);
            if (!proxy_param)
            {
                proxy_param =
                    axutil_param_container_get_param
                    (axis2_transport_out_desc_param_container (trans_desc, env), 
                     env,
                     AXIS2_HTTP_PROXY);
            } 
            if (proxy_param)
            {
                transport_attrs = axutil_param_get_attributes (proxy_param, env);

                if (transport_attrs)
                {
                    axutil_generic_obj_t *obj = NULL;
                    axiom_attribute_t *username_attr = NULL;
                    axiom_attribute_t *password_attr = NULL;

                    obj = axutil_hash_get (transport_attrs, 
                                           AXIS2_HTTP_PROXY_USERNAME,
                                           AXIS2_HASH_KEY_STRING);
                    if (obj)
                    {
                        username_attr = (axiom_attribute_t *) 
                            axutil_generic_obj_get_value (obj,
                                                          env);
                    }
                    if (username_attr)
                    {
                        uname = axiom_attribute_get_value (username_attr, env);
                    }

                    obj = NULL;
                    obj = axutil_hash_get (transport_attrs, 
                                           AXIS2_HTTP_PROXY_PASSWORD,
                                           AXIS2_HASH_KEY_STRING);
                    if (obj)
                    {
                        password_attr = (axiom_attribute_t *) 
                            axutil_generic_obj_get_value (obj,
                                                          env);
                    }
                    if (password_attr)
                    {
                        passwd = axiom_attribute_get_value (password_attr, env);
                    }
                }
            }
        }
    }
    if (uname && passwd)
    {
        int elen = 0; /* length of header content */
        int print_const = 5; /* constant accounts for printing the
                                quoatation marks, comma, and space */
        int response_length = 32;
        axis2_char_t *temp = NULL;
        axis2_char_t *alloc_temp = NULL;
        axis2_char_t *algo = AXIS2_HTTP_AUTHORIZATION_REQUEST_ALGORITHM_MD5;
        axis2_char_t *realm = NULL;
        axis2_char_t *qop = NULL;
        axis2_char_t *nonce = NULL;
        axis2_char_t *opaque = NULL;
        axis2_char_t *cnonce = NULL;
        axis2_char_t *nc = NULL;
        axutil_digest_hash_hex_t h_a1;
        axutil_digest_hash_hex_t h_a2;
        axutil_digest_hash_hex_t response;
        axis2_char_t *auth_str = NULL;
        axutil_property_t *method = NULL;
        axis2_char_t *method_value = NULL;
        axis2_char_t *url = NULL;

        url = axis2_http_request_line_get_uri(
                       axis2_http_simple_request_get_request_line(request, env), env);

        if (!url)
        {
            return AXIS2_FAILURE;
        }

        elen += print_const + 
            axutil_strlen(AXIS2_HTTP_AUTHORIZATION_REQUEST_PARAM_URI) 
            + axutil_strlen(url);

        elen += print_const + 
            axutil_strlen(AXIS2_HTTP_AUTHORIZATION_REQUEST_PARAM_USERNAME) 
            + axutil_strlen(uname);

        method = (axutil_property_t *) 
            axis2_msg_ctx_get_property (msg_ctx, env,
                                        AXIS2_HTTP_METHOD);
        if (method)
        {
            method_value = (axis2_char_t *) axutil_property_get_value (method,
                                                                       env);
        }
        else
        {
            method_value = AXIS2_HTTP_POST;
        }

        temp = axutil_strstr(header_data, 
                             AXIS2_HTTP_AUTHORIZATION_REQUEST_PARAM_REALM);
        if (temp)
        {
            realm = axutil_strchr(temp, AXIS2_ESC_DOUBLE_QUOTE);
            if (realm)
            {
                realm++;
                temp = axutil_strchr(realm, AXIS2_ESC_DOUBLE_QUOTE);
                alloc_temp = (axis2_char_t
                              *) (AXIS2_MALLOC (env->allocator,
                              sizeof (axis2_char_t) * (temp-realm + 1)));
                strncpy(alloc_temp, realm, (temp-realm));
                if (alloc_temp)
                    alloc_temp[temp-realm] = AXIS2_ESC_NULL;
                realm = alloc_temp;
                alloc_temp = NULL;
                elen += print_const + 
                    axutil_strlen(AXIS2_HTTP_AUTHORIZATION_REQUEST_PARAM_REALM) 
                    + axutil_strlen(realm);
            }
            else
            {
                return AXIS2_FAILURE;
            }
        }

        temp = axutil_strstr(header_data, 
                             AXIS2_HTTP_AUTHORIZATION_REQUEST_PARAM_QOP);
        if (temp)
        {
            qop = axutil_strchr(temp, AXIS2_ESC_DOUBLE_QUOTE);
            if (qop)
            {
                qop++;
                temp = axutil_strchr(qop, AXIS2_ESC_DOUBLE_QUOTE);
                alloc_temp = (axis2_char_t
                              *) (AXIS2_MALLOC (env->allocator,
                              sizeof (axis2_char_t) * (temp-qop + 1)));
                strncpy(alloc_temp, qop, (temp-qop));
                if (alloc_temp)
                    alloc_temp[temp-qop] = AXIS2_ESC_NULL;
                qop = alloc_temp;
                alloc_temp = NULL;
            }
        }

        temp = axutil_strstr(header_data, AXIS2_HTTP_AUTHORIZATION_REQUEST_PARAM_NONCE);
        if (temp)
        {
            nonce = axutil_strchr(temp, AXIS2_ESC_DOUBLE_QUOTE);
            if (nonce)
            {
                nonce++;
                temp = axutil_strchr(nonce, AXIS2_ESC_DOUBLE_QUOTE);
                alloc_temp = (axis2_char_t
                              *) (AXIS2_MALLOC (env->allocator,
                              sizeof (axis2_char_t) * (temp-nonce + 1)));
                strncpy(alloc_temp, nonce, (temp-nonce));
                if (alloc_temp)
                    alloc_temp[temp-nonce] = AXIS2_ESC_NULL;
                nonce = alloc_temp;
                alloc_temp = NULL;

                elen += print_const + 
                    axutil_strlen(AXIS2_HTTP_AUTHORIZATION_REQUEST_PARAM_NONCE)
                    + axutil_strlen(nonce);
            }
            else
            {
                if (realm)
                    AXIS2_FREE (env->allocator, realm);
                return AXIS2_FAILURE;
            }
        }

        temp = axutil_strstr(header_data, 
                             AXIS2_HTTP_AUTHORIZATION_REQUEST_PARAM_OPAQUE);
        if (temp)
        {
            opaque = axutil_strchr(temp, AXIS2_ESC_DOUBLE_QUOTE);
            if (opaque)
            {
                opaque++;
                temp = axutil_strchr(opaque, AXIS2_ESC_DOUBLE_QUOTE);
                alloc_temp = (axis2_char_t
                              *) (AXIS2_MALLOC (env->allocator,
                              sizeof (axis2_char_t) * (temp-opaque + 1)));
                strncpy(alloc_temp, opaque, (temp-opaque));
                if (alloc_temp)
                    alloc_temp[temp-opaque] = AXIS2_ESC_NULL;
                opaque = alloc_temp;
                alloc_temp = NULL;
                elen += print_const + 
                    axutil_strlen(AXIS2_HTTP_AUTHORIZATION_REQUEST_PARAM_OPAQUE)
                    + axutil_strlen(opaque);
            }
            else
            {
                if (realm)
                    AXIS2_FREE (env->allocator, realm);
                if (nonce)
                    AXIS2_FREE (env->allocator, nonce);
                return AXIS2_FAILURE;
            }
        }

        if (qop)
        {
            nc = AXIS2_HTTP_AUTHORIZATION_REQUEST_DEFAULT_CLIENT_NONCE;
            temp = qop;
            if (!axutil_strstr(temp, 
                               AXIS2_HTTP_AUTHORIZATION_REQUEST_QOP_OPTION_AUTH))
            {
                return AXIS2_FAILURE;
            }
            AXIS2_FREE (env->allocator, qop);
            qop = AXIS2_HTTP_AUTHORIZATION_REQUEST_QOP_OPTION_AUTH;
            temp = axutil_uuid_gen(env);
            cnonce = temp;
            temp += CLIENT_NONCE_LENGTH;
            if (temp)
                *temp = AXIS2_ESC_NULL;
            elen += 11 + axutil_strlen(
                AXIS2_HTTP_AUTHORIZATION_REQUEST_DEFAULT_CLIENT_NONCE)
                + axutil_strlen(
                    AXIS2_HTTP_AUTHORIZATION_REQUEST_PARAM_NONCE_COUNT)
                + axutil_strlen(
                    AXIS2_HTTP_AUTHORIZATION_REQUEST_PARAM_CLIENT_NONCE)
                + axutil_strlen(AXIS2_HTTP_AUTHORIZATION_REQUEST_PARAM_QOP)
                + CLIENT_NONCE_LENGTH + axutil_strlen(qop);
        }
        
        axutil_digest_calc_get_h_a1(env, algo, uname,
                                    realm, passwd, cnonce,
                                    nonce, h_a1);
        axutil_digest_calc_get_response(env, h_a1, nonce, nc,
                                        cnonce, qop, method_value,
                                        url, h_a2, response);

        elen += 4 + 
            axutil_strlen(AXIS2_HTTP_AUTHORIZATION_REQUEST_PARAM_RESPONSE)
            + axutil_strlen(AXIS2_PROXY_AUTH_TYPE_DIGEST) + response_length;

        auth_str =
            (axis2_char_t
             *) (AXIS2_MALLOC (env->allocator,
                               sizeof (axis2_char_t) * (elen + 1)));
        temp = auth_str;
        sprintf (temp, "%s %s=\"%s\", ",
                 AXIS2_PROXY_AUTH_TYPE_DIGEST,
                 AXIS2_HTTP_AUTHORIZATION_REQUEST_PARAM_USERNAME, uname);
        temp += ((int)strlen(AXIS2_HTTP_AUTH_TYPE_DIGEST) +
                 (int)strlen(AXIS2_HTTP_AUTHORIZATION_REQUEST_PARAM_USERNAME) +
                 (int)strlen(uname) + 6);
        if (realm)
        {
            sprintf (temp, "%s=\"%s\", ",
                     AXIS2_HTTP_AUTHORIZATION_REQUEST_PARAM_REALM, realm);
            temp += ((int)strlen(AXIS2_HTTP_AUTHORIZATION_REQUEST_PARAM_REALM) +
                     (int)strlen(realm) + 5);
        }
        if (nonce)
        {
            sprintf (temp, "%s=\"%s\", ",
                     AXIS2_HTTP_AUTHORIZATION_REQUEST_PARAM_NONCE, nonce);
            temp += ((int)strlen(AXIS2_HTTP_AUTHORIZATION_REQUEST_PARAM_NONCE) +
                     (int)strlen(nonce) + 5);
        }
        sprintf (temp, "%s=\"%s\", ",
                 AXIS2_HTTP_AUTHORIZATION_REQUEST_PARAM_URI, url);
        temp += ((int)strlen(AXIS2_HTTP_AUTHORIZATION_REQUEST_PARAM_URI) +
                 (int)strlen(url) + 5);
        if (qop)
        {
            sprintf (temp, "%s=%s, %s=%s, %s=\"%s\", ",
                     AXIS2_HTTP_AUTHORIZATION_REQUEST_PARAM_QOP, qop,
                     AXIS2_HTTP_AUTHORIZATION_REQUEST_PARAM_NONCE_COUNT, nc,
                     AXIS2_HTTP_AUTHORIZATION_REQUEST_PARAM_CLIENT_NONCE, cnonce);
            temp += ((int)strlen(AXIS2_HTTP_AUTHORIZATION_REQUEST_PARAM_QOP) +
                     (int)strlen(qop) +
                     (int)strlen(
                         AXIS2_HTTP_AUTHORIZATION_REQUEST_PARAM_NONCE_COUNT) +
                     (int)strlen(nc) +
                     (int)strlen(
                         AXIS2_HTTP_AUTHORIZATION_REQUEST_PARAM_CLIENT_NONCE) +
                     (int)strlen(cnonce) + 11);
        }
        if (opaque)
        {
            sprintf (temp, "%s=\"%s\", ",
                     AXIS2_HTTP_AUTHORIZATION_REQUEST_PARAM_OPAQUE, opaque);
            temp += ((int)strlen(AXIS2_HTTP_AUTHORIZATION_REQUEST_PARAM_OPAQUE)+
                     (int)strlen(opaque) + 5);
        }
        sprintf (temp, "%s=\"%s\"",
                 AXIS2_HTTP_AUTHORIZATION_REQUEST_PARAM_RESPONSE, response);
        axis2_http_sender_util_add_header (env, request,
                                           AXIS2_HTTP_HEADER_PROXY_AUTHORIZATION,
                                           auth_str);
        if (realm)
        {
            AXIS2_FREE (env->allocator, realm);
        }

        if (nonce)
        {
            AXIS2_FREE (env->allocator, nonce);
        }
        
        if (cnonce)
        {
            AXIS2_FREE (env->allocator, cnonce);
        }

        if (opaque)
        {
            AXIS2_FREE (env->allocator, opaque);
        }

        if (auth_str)
        {
            AXIS2_FREE (env->allocator, auth_str);
        }

        auth_str = NULL;
 
        return AXIS2_SUCCESS;
    }
    return AXIS2_FAILURE;
}
#endif

static axis2_status_t
axis2_http_sender_configure_proxy_ntlm_auth(
    axis2_http_sender_t * sender,
    const axutil_env_t * env,
    axis2_msg_ctx_t * msg_ctx,
    axis2_http_simple_request_t * request,
    axis2_char_t * header_data)
{
    axutil_property_t *proxy_auth_un = NULL;
    axutil_property_t *proxy_auth_pw = NULL;
    axutil_property_t *ntlm_auth_dm = NULL;
    axutil_property_t *ntlm_auth_wo = NULL;
    axutil_property_t *ntlm_auth_fg = NULL;
    axis2_char_t *uname = NULL;
    axis2_char_t *passwd = NULL;
    int flags = 0;
    axis2_char_t *domain = NULL;
    axis2_char_t *workstation = NULL;

#ifndef AXIS2_NTLM_ENABLED
    AXIS2_LOG_ERROR(env->log, AXIS2_LOG_SI, "NTLM is not enabled. Please consider building "\
            "Axis2/C enabling a ntlm client library");
    return AXIS2_FAILURE;
 #endif

    if(!header_data || !*header_data)
        return AXIS2_FAILURE;

    proxy_auth_un = axis2_msg_ctx_get_property(msg_ctx, env, AXIS2_PROXY_AUTH_UNAME);
    proxy_auth_pw = axis2_msg_ctx_get_property(msg_ctx, env, AXIS2_PROXY_AUTH_PASSWD);
    ntlm_auth_dm = axis2_msg_ctx_get_property(msg_ctx, env, AXIS2_NTLM_AUTH_DOMAIN);
    ntlm_auth_wo = axis2_msg_ctx_get_property(msg_ctx, env, AXIS2_NTLM_AUTH_WORKSTATION);
    ntlm_auth_fg = axis2_msg_ctx_get_property(msg_ctx, env, AXIS2_NTLM_AUTH_FLAGS);

    if(proxy_auth_un && proxy_auth_pw)
    {
        uname = (axis2_char_t *)axutil_property_get_value(proxy_auth_un, env);
        passwd = (axis2_char_t *)axutil_property_get_value(proxy_auth_pw, env);
    }
    if(!uname || !passwd)
    {
        axis2_conf_ctx_t *conf_ctx = NULL;
        axis2_conf_t *conf = NULL;
        axis2_transport_out_desc_t *trans_desc = NULL;
        axutil_param_t *proxy_param = NULL;
        axutil_hash_t *transport_attrs = NULL;

        conf_ctx = axis2_msg_ctx_get_conf_ctx(msg_ctx, env);
        if(conf_ctx)
        {
            conf = axis2_conf_ctx_get_conf(conf_ctx, env);
            if(conf)
            {
                trans_desc = axis2_conf_get_transport_out(conf, env, AXIS2_TRANSPORT_ENUM_HTTP);
            }
        }
        if(trans_desc)
        {
            proxy_param = axutil_param_container_get_param(
                axis2_transport_out_desc_param_container(trans_desc, env), env,
                AXIS2_HTTP_PROXY_API);
            if(!proxy_param)
            {
                proxy_param = axutil_param_container_get_param(
                    axis2_transport_out_desc_param_container(trans_desc, env), env,
                    AXIS2_HTTP_PROXY);
            }
            if(proxy_param)
            {
                transport_attrs = axutil_param_get_attributes(proxy_param, env);

                if(transport_attrs)
                {
                    axutil_generic_obj_t *obj = NULL;
                    axiom_attribute_t *username_attr = NULL;
                    axiom_attribute_t *password_attr = NULL;

                    obj = axutil_hash_get(transport_attrs, AXIS2_HTTP_PROXY_USERNAME,
                        AXIS2_HASH_KEY_STRING);
                    if(obj)
                    {
                        username_attr = (axiom_attribute_t *)axutil_generic_obj_get_value(obj, env);
                    }
                    if(username_attr)
                    {
                        uname = axiom_attribute_get_value(username_attr, env);
                    }

                    obj = NULL;
                    obj = axutil_hash_get(transport_attrs, AXIS2_HTTP_PROXY_PASSWORD,
                        AXIS2_HASH_KEY_STRING);
                    if(obj)
                    {
                        password_attr = (axiom_attribute_t *)axutil_generic_obj_get_value(obj, env);
                    }
                    if(password_attr)
                    {
                        passwd = axiom_attribute_get_value(password_attr, env);
                    }
                }
            }
        }
    }
    if(ntlm_auth_fg)
    {
        axis2_char_t *temp_flags = (axis2_char_t *) axutil_property_get_value(ntlm_auth_fg, env);
        if(temp_flags)
        {
            flags = atoi(temp_flags);
        }
        else
        {
            flags = 0;
        }
    }
    else
    {
        flags = 0;
    }
    if(ntlm_auth_dm)
    {
        domain = (axis2_char_t *)axutil_property_get_value(ntlm_auth_dm, env);
    }
    if(ntlm_auth_wo)
    {
        workstation = (axis2_char_t *)axutil_property_get_value(ntlm_auth_wo, env);
    }
    if(uname && passwd)
    {
        int *elen = NULL;
        axis2_char_t *auth_str = NULL;
        axis2_char_t *encoded_message = NULL;
        axis2_http_header_t *tmp_header = NULL;
        axis2_ntlm_t *ntlm = NULL;
        axis2_status_t status = AXIS2_FAILURE;

        ntlm = axis2_ntlm_create(env);
        if(!header_data || !*header_data) /* NTLM unauthorized received */
        {
            /* Ceate type 1(negotiation) header  message */
             status = axis2_ntlm_auth_create_type1_message(ntlm, env, &encoded_message, elen, uname,
                passwd, flags, domain);
            if(status != AXIS2_SUCCESS)
            {
                if(encoded_message)
                {
                    AXIS2_FREE(env->allocator, encoded_message);
                    encoded_message = NULL;
                }
                if(ntlm)
                {
                    axis2_ntlm_free(ntlm, env);
                }
                AXIS2_LOG_ERROR(env->log, AXIS2_LOG_SI,
                        "axis2_ntlm_auth_create_type1_message call failed");
                return status;
            }
        }
        else /* NTLM challange received */
        {
            /* Create Type3 (authentication) header message */
             status = axis2_ntlm_auth_create_type3_message(ntlm, env, header_data, &encoded_message,
                elen, uname, passwd, domain, workstation);
            if(status != AXIS2_SUCCESS)
            {
                if(encoded_message)
                {
                    AXIS2_FREE(env->allocator, encoded_message);
                    encoded_message = NULL;
                }
                if(ntlm)
                {
                    axis2_ntlm_free(ntlm, env);
                }
                AXIS2_LOG_ERROR(env->log, AXIS2_LOG_SI,
                        "axis2_ntlm_auth_create_type3_message call failed");
                return status;
            }
        }
        auth_str
            = (axis2_char_t *)(AXIS2_MALLOC(env->allocator, sizeof(axis2_char_t) * (*elen + 6)));
        sprintf(auth_str, "%s %s", AXIS2_HTTP_AUTH_TYPE_NTLM, encoded_message);
        tmp_header = axis2_http_simple_request_get_first_header(request, env,
            AXIS2_HTTP_HEADER_AUTHORIZATION);
        if(tmp_header)
        {
            axis2_char_t *tmp_header_val = axis2_http_header_get_value(tmp_header, env);
            if(tmp_header_val)
            {
                axis2_http_header_set_value(tmp_header, env, auth_str);
            }
        }
        else
        {
            axis2_http_sender_util_add_header(env, request, AXIS2_HTTP_HEADER_AUTHORIZATION, auth_str);
        }

        AXIS2_FREE(env->allocator, encoded_message);
        encoded_message = NULL;
        axis2_ntlm_free(ntlm, env);
        AXIS2_FREE(env->allocator, auth_str);
        auth_str = NULL;

        return AXIS2_SUCCESS;
    }
    return AXIS2_FAILURE;
} /* configure_proxy_ntlm_auth */

#ifndef AXIS2_LIBCURL_ENABLED
static axis2_status_t
axis2_http_sender_configure_http_auth (axis2_http_sender_t * sender,
                                       const axutil_env_t * env,
                                       axis2_msg_ctx_t * msg_ctx,
                                       axis2_http_simple_request_t * request)
{
    axis2_char_t *auth_type = NULL;
    axis2_status_t status = AXIS2_FALSE;
    axutil_property_t *http_auth_property = NULL;
    axis2_char_t *http_auth_property_value = NULL;
    axis2_bool_t force_http_auth = AXIS2_FALSE;
    axutil_property_t *http_auth_type_property = NULL;
    axis2_char_t *http_auth_type_property_value = NULL;
    axis2_char_t *auth_type_end = NULL;

    http_auth_property = 
        (axutil_property_t *)axis2_msg_ctx_get_property (msg_ctx, env,
                                                         AXIS2_FORCE_HTTP_AUTH);
    if (http_auth_property)
    {
        http_auth_property_value = 
            (axis2_char_t *) axutil_property_get_value (http_auth_property,
                                                        env);
    }

    if (http_auth_property_value && 
        0 == axutil_strcmp (http_auth_property_value, AXIS2_VALUE_TRUE))
    {
        force_http_auth = AXIS2_TRUE;
    }

    if (force_http_auth)
    {
        http_auth_type_property = 
            (axutil_property_t *) axis2_msg_ctx_get_property (msg_ctx, env,
                                                              AXIS2_HTTP_AUTH_TYPE);
        if (http_auth_type_property)
        {
            http_auth_type_property_value = 
                (axis2_char_t *) axutil_property_get_value (http_auth_type_property,
                                                            env);
        }

        if (http_auth_type_property_value)
        {
            auth_type = http_auth_type_property_value;
        }
    }
    if (!force_http_auth || 
        axutil_strcasecmp (auth_type, AXIS2_HTTP_AUTH_TYPE_DIGEST) == 0)
    {
        axis2_http_header_t *auth_header = NULL;
        axis2_http_simple_response_t *response = NULL;

        response = axis2_http_client_get_response (sender->client, env);

        if (response)
        {
            auth_header = 
                axis2_http_simple_response_get_first_header (
                    response, env,
                    AXIS2_HTTP_HEADER_WWW_AUTHENTICATE);
        }

        if (auth_header)
        {
            auth_type = axis2_http_header_get_value (auth_header, env);
        }
 
        if (auth_type)
        {
            auth_type_end = axutil_strchr (auth_type, ' ');
            *auth_type_end = AXIS2_ESC_NULL;
            auth_type_end++;
            /*Read the realm and the rest stuff now from auth_type_end */
        }
        if (force_http_auth && 
            axutil_strcasecmp (auth_type, AXIS2_HTTP_AUTH_TYPE_DIGEST) != 0)
        {
            auth_type = NULL;
        }
    }
    if (auth_type)
    {
        if (axutil_strcasecmp (auth_type, AXIS2_HTTP_AUTH_TYPE_BASIC) == 0)
        {
            status = axis2_http_sender_configure_http_basic_auth (sender, env,
                                                                  msg_ctx,
                                                                  request);
        }
        else if (axutil_strcasecmp (auth_type, AXIS2_HTTP_AUTH_TYPE_DIGEST) == 0)
        {
            status = axis2_http_sender_configure_http_digest_auth (sender, env,
                                                                   msg_ctx,
                                                                   request,
                                                                   auth_type_end);
        }
        else
        {
            AXIS2_LOG_ERROR (env->log, AXIS2_LOG_SI, "Authtype %s is not"
                             "supported", auth_type);
        }
    }
    else
    {
        AXIS2_HANDLE_ERROR(env, AXIS2_ERROR_HTTP_CLIENT_TRANSPORT_ERROR,
                         AXIS2_FAILURE);
    }

    return status;
}

static axis2_status_t
axis2_http_sender_configure_proxy_auth (axis2_http_sender_t * sender,
                                        const axutil_env_t * env,
                                        axis2_msg_ctx_t * msg_ctx,
                                        axis2_http_simple_request_t * request)
{
    axis2_char_t *auth_type = NULL;
    axis2_status_t status = AXIS2_FALSE;
    axutil_property_t *proxy_auth_property = NULL;
    axis2_char_t *proxy_auth_property_value = NULL;
    axis2_bool_t force_proxy_auth = AXIS2_FALSE;
    axutil_property_t *proxy_auth_type_property = NULL;
    axis2_char_t *proxy_auth_type_property_value = NULL;
    axis2_char_t *auth_type_end = NULL;

    proxy_auth_property = 
        (axutil_property_t *) axis2_msg_ctx_get_property (msg_ctx, env,
                                                          AXIS2_FORCE_PROXY_AUTH);
    if (proxy_auth_property)
    {
        proxy_auth_property_value = 
            (axis2_char_t *) axutil_property_get_value (proxy_auth_property,
                                                        env);
    }

    if (proxy_auth_property_value && 
        0 == axutil_strcmp (proxy_auth_property_value, AXIS2_VALUE_TRUE))
    {
        force_proxy_auth = AXIS2_TRUE;
    }

    if (force_proxy_auth)
    {
        proxy_auth_type_property = 
            (axutil_property_t *) axis2_msg_ctx_get_property (msg_ctx, env,
                                                              AXIS2_PROXY_AUTH_TYPE);
        if (proxy_auth_type_property)
        {
            proxy_auth_type_property_value = 
                (axis2_char_t *) axutil_property_get_value (proxy_auth_type_property,
                                                            env);
        }

        if (proxy_auth_type_property_value)
        {
            auth_type = proxy_auth_type_property_value;
        }
    }
    else
    {
        axis2_http_header_t *auth_header = NULL;
        axis2_http_simple_response_t *response = NULL;
    
        response = axis2_http_client_get_response (sender->client, env);

        if (response)
        {
            auth_header = 
                axis2_http_simple_response_get_first_header (
                    response, env,
                    AXIS2_HTTP_HEADER_PROXY_AUTHENTICATE);
        }

        if (auth_header)
        {
            auth_type = axis2_http_header_get_value (auth_header, env);
        }

        if (auth_type)
        {
            auth_type_end = axutil_strchr (auth_type, ' ');
            *auth_type_end = AXIS2_ESC_NULL;
            auth_type_end++;
            /*Read the realm and the rest stuff now from auth_type_end */
        }
    }
    if (auth_type)
    {
        if (axutil_strcasecmp (auth_type, AXIS2_PROXY_AUTH_TYPE_BASIC) == 0)
        {
            status = axis2_http_sender_configure_proxy_basic_auth (sender, env,
                                                                   msg_ctx,
                                                                   request);
        }
        else if (axutil_strcasecmp (auth_type, 
                                    AXIS2_PROXY_AUTH_TYPE_DIGEST) == 0)
        {
            status = 
                axis2_http_sender_configure_proxy_digest_auth (sender, env,
                                                               msg_ctx,
                                                               request,
                                                               auth_type_end);
        }
        else
        {
            AXIS2_LOG_ERROR (env->log, AXIS2_LOG_SI, 
                             "Authtype %s is not supported", auth_type);
        }
    }
    else
    {
        AXIS2_HANDLE_ERROR(env, AXIS2_ERROR_HTTP_CLIENT_TRANSPORT_ERROR,
                         AXIS2_FAILURE);
    }

    return status;
}
#endif

#ifndef AXIS2_LIBCURL_ENABLED
static axis2_status_t
axis2_http_sender_set_http_auth_type (axis2_http_sender_t * sender,
                                      const axutil_env_t * env,
                                      axis2_msg_ctx_t * msg_ctx,
                                      axis2_http_simple_request_t * request)
{
    axis2_char_t *auth_type = NULL;
    axis2_status_t status = AXIS2_FALSE;
    axis2_char_t *auth_type_end = NULL;
    axis2_http_header_t *auth_header = NULL;
    axis2_http_simple_response_t *response = NULL;

    response = axis2_http_client_get_response (sender->client, env);
 
    if (response)
    {
        auth_header = 
            axis2_http_simple_response_get_first_header (
                response, env,
                AXIS2_HTTP_HEADER_WWW_AUTHENTICATE);
    }

    if (auth_header)
    {
        auth_type = axis2_http_header_get_value (auth_header, env);
    }

    if (auth_type)
    {
        auth_type_end = axutil_strchr (auth_type, ' ');
        *auth_type_end = AXIS2_ESC_NULL;
        auth_type_end++;
            /*Read the realm and the rest stuff now from auth_type_end */
    }

    if (auth_type)
    {
        if (axutil_strcasecmp (auth_type, AXIS2_HTTP_AUTH_TYPE_BASIC) == 0)
        {
            status = 
                axis2_msg_ctx_set_auth_type (msg_ctx, env, 
                                             AXIS2_HTTP_AUTH_TYPE_BASIC);
        }
        else if (axutil_strcasecmp (auth_type, AXIS2_HTTP_AUTH_TYPE_DIGEST) == 0)
        {
            status = 
                axis2_msg_ctx_set_auth_type (msg_ctx, env, 
                                             AXIS2_HTTP_AUTH_TYPE_DIGEST);
        }
        else
        {
            AXIS2_LOG_ERROR (env->log, AXIS2_LOG_SI, 
                             "Authtype %s is not supported", auth_type);
        }
    }
    else
    {
        AXIS2_HANDLE_ERROR(env, AXIS2_ERROR_HTTP_CLIENT_TRANSPORT_ERROR,
                         AXIS2_FAILURE);
    }
    return status;
}

static axis2_status_t
axis2_http_sender_set_proxy_auth_type (axis2_http_sender_t * sender,
                                       const axutil_env_t * env,
                                       axis2_msg_ctx_t * msg_ctx,
                                       axis2_http_simple_request_t * request)
{
    axis2_char_t *auth_type = NULL;
    axis2_status_t status = AXIS2_FALSE;
    axis2_char_t *auth_type_end = NULL;
    axis2_http_header_t *auth_header = NULL;
    axis2_http_simple_response_t *response = NULL;

    response = axis2_http_client_get_response (sender->client, env);
 
    if (response)
    {
        auth_header = axis2_http_simple_response_get_first_header (
            response, env,
            AXIS2_HTTP_HEADER_PROXY_AUTHENTICATE);
    }

    if (auth_header)
    {
        auth_type = axis2_http_header_get_value (auth_header, env);
    }

    if (auth_type)
    {
        auth_type_end = axutil_strchr (auth_type, ' ');
        *auth_type_end = AXIS2_ESC_NULL;
        auth_type_end++;
            /*Read the realm and the rest stuff now from auth_type_end */
    }

    if (auth_type)
    {
        if (axutil_strcasecmp (auth_type, AXIS2_PROXY_AUTH_TYPE_BASIC) == 0)
        {
            status = axis2_msg_ctx_set_auth_type (msg_ctx, 
                                                  env, 
                                                  AXIS2_PROXY_AUTH_TYPE_BASIC);
        }
        else if (axutil_strcasecmp (auth_type, AXIS2_PROXY_AUTH_TYPE_DIGEST) == 0)
        {
            status = axis2_msg_ctx_set_auth_type (msg_ctx, env, 
                                                  AXIS2_PROXY_AUTH_TYPE_DIGEST);
        }
        else
        {
            AXIS2_LOG_ERROR (env->log, AXIS2_LOG_SI, 
                             "Authtype %s is not supported", auth_type);
        }
    }
    else
    {
        AXIS2_HANDLE_ERROR(env, AXIS2_ERROR_HTTP_CLIENT_TRANSPORT_ERROR,
                         AXIS2_FAILURE);
    }
    return status;
}
#endif

#ifdef AXIS2_LIBCURL_ENABLED
AXIS2_EXTERN axis2_status_t AXIS2_CALL
axis2_libcurl_http_send (axis2_libcurl_t * curl,
                         axis2_http_sender_t * sender,
                         const axutil_env_t * env,
                         axis2_msg_ctx_t * msg_ctx,
                         axiom_soap_envelope_t * out,
                         const axis2_char_t * str_url,
                         const axis2_char_t * soap_action)
{
    return axis2_libcurl_send (curl, sender->om_output,
                               env, msg_ctx, out, str_url, soap_action);
}
#endif

AXIS2_EXTERN axis2_char_t *AXIS2_CALL
axis2_http_sender_get_param_string (axis2_http_sender_t * sender,
                                    const axutil_env_t * env,
                                    axis2_msg_ctx_t * msg_ctx)
{
    axiom_soap_envelope_t *soap_env = NULL;
    axiom_soap_body_t *soap_body = NULL;
    axiom_node_t *body_node = NULL;
    axiom_node_t *data_node = NULL;
    axiom_element_t *data_element = NULL;
    axiom_child_element_iterator_t *iterator = NULL;
    axutil_array_list_t *param_list = NULL;
    axis2_char_t *param_string = NULL;
    int i = 0;

    AXIS2_PARAM_CHECK (env->error, msg_ctx, NULL);

    soap_env = axis2_msg_ctx_get_soap_envelope (msg_ctx, env);
    if (!soap_env)
    {
        return NULL;
    }
    soap_body = axiom_soap_envelope_get_body(soap_env, env);
    body_node =
        axiom_soap_body_get_base_node(soap_body, env);
    if(!body_node)
    {
        /* This could be the situation where service client does not provide
         * a xml payload and instead add url parameters to the endpoint url
         */
        return NULL;
    }
    data_node = axiom_node_get_first_child (body_node, env);
    if (!data_node)
    {
        return NULL;
    }

    param_list =
        axutil_array_list_create (env, AXIS2_ARRAY_LIST_DEFAULT_CAPACITY);

    data_element = axiom_node_get_data_element (data_node, env);

    iterator = axiom_element_get_child_elements (data_element, env, data_node);

    if (iterator)
    {
        while (AXIS2_TRUE ==
               AXIOM_CHILD_ELEMENT_ITERATOR_HAS_NEXT (iterator, env))
        {
            axiom_node_t *node = NULL;
            axiom_element_t *element = NULL;
            axis2_char_t *name = NULL;
            axis2_char_t *value = NULL;
            axis2_char_t *encoded_value = NULL;

            node = AXIOM_CHILD_ELEMENT_ITERATOR_NEXT (iterator, env);
            element = axiom_node_get_data_element (node, env);
            name = axiom_element_get_localname (element, env);
            value = axiom_element_get_text (element, env, node);
            if (value)
            {
                encoded_value =
                    (axis2_char_t *) AXIS2_MALLOC (env->allocator,
                                                   strlen (value));
                memset (encoded_value, 0, strlen (value));
                encoded_value =
                    axutil_url_encode (env, encoded_value, value, 
                                       (int)strlen (value));
                /* We are sure that the difference lies within the int range */

                axutil_array_list_add (param_list, env,
                                       axutil_strcat (env, name, "=",
                                                      encoded_value, NULL));
				AXIS2_FREE(env->allocator, encoded_value);
				encoded_value = NULL;
            }
        }
    }
    for (i = 0; i < axutil_array_list_size (param_list, env); i++)
    {
        axis2_char_t *tmp_string = NULL;
        axis2_char_t *pair = NULL;

        pair = axutil_array_list_get (param_list, env, i);
        if (i == 0)
        {
            tmp_string = axutil_stracat (env, param_string, pair);
        }
        else
        {
            tmp_string = axutil_strcat (env, param_string, AXIS2_AND_SIGN,
                                        pair, NULL);
        }

        if (param_string)
        {
            AXIS2_FREE (env->allocator, param_string);
            param_string = NULL;
        }
        AXIS2_FREE (env->allocator, pair);
        param_string = tmp_string;
    }
    axutil_array_list_free (param_list, env);
    return param_string;
}

void AXIS2_CALL
axis2_http_sender_util_add_header (const axutil_env_t * env,
                                   axis2_http_simple_request_t * request,
                                   axis2_char_t * header_name,
                                   const axis2_char_t * header_value)
{
    axis2_http_header_t *http_header;
    http_header = axis2_http_header_create (env, header_name, header_value);
    axis2_http_simple_request_add_header (request, env, http_header);
}


<|start_filename|>xdocs/api/html/group__axutil__uri.html<|end_filename|>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html><head><meta http-equiv="Content-Type" content="text/html;charset=UTF-8">
<title>Axis2/C: URI</title>
<link href="doxygen.css" rel="stylesheet" type="text/css">
<link href="tabs.css" rel="stylesheet" type="text/css">
</head><body>
<!-- Generated by Doxygen 1.5.3 -->
<div class="tabs">
  <ul>
    <li><a href="index.html"><span>Main&nbsp;Page</span></a></li>
    <li><a href="modules.html"><span>Modules</span></a></li>
    <li><a href="annotated.html"><span>Classes</span></a></li>
    <li><a href="files.html"><span>Files</span></a></li>
    <li><a href="dirs.html"><span>Directories</span></a></li>
    <li><a href="pages.html"><span>Related&nbsp;Pages</span></a></li>
    <li><a href="examples.html"><span>Examples</span></a></li>
    <li>
      <form action="search.php" method="get">
        <table cellspacing="0" cellpadding="0" border="0">
          <tr>
            <td><label>&nbsp;<u>S</u>earch&nbsp;for&nbsp;</label></td>
            <td><input type="text" name="query" value="" size="20" accesskey="s"/></td>
          </tr>
        </table>
      </form>
    </li>
  </ul>
</div>
<h1>URI<br>
<small>
[<a class="el" href="group__axis2__util.html">utilities</a>]</small>
</h1><table border="0" cellpadding="0" cellspacing="0">
<tr><td></td></tr>
<tr><td colspan="2"><br><h2>Defines</h2></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top">#define&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__axutil__uri.html#g890a29bb1a4b69ad44210eb56093ef9d">AXIS2_URI_FTP_DEFAULT_PORT</a>&nbsp;&nbsp;&nbsp;21</td></tr>

<tr><td class="memItemLeft" nowrap align="right" valign="top">#define&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__axutil__uri.html#g173cf9fac502ce166634f8cac97ad72b">AXIS2_URI_SSH_DEFAULT_PORT</a>&nbsp;&nbsp;&nbsp;22</td></tr>

<tr><td class="memItemLeft" nowrap align="right" valign="top">#define&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__axutil__uri.html#g54be7d53a86f2b0d82bf00c7aa8f7c6f">AXIS2_URI_TELNET_DEFAULT_PORT</a>&nbsp;&nbsp;&nbsp;23</td></tr>

<tr><td class="memItemLeft" nowrap align="right" valign="top">#define&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__axutil__uri.html#g1324185e1936eefc96758ac7b3bd1d1e">AXIS2_URI_GOPHER_DEFAULT_PORT</a>&nbsp;&nbsp;&nbsp;70</td></tr>

<tr><td class="memItemLeft" nowrap align="right" valign="top">#define&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__axutil__uri.html#g61a736bf61ac0e9773d506a2faf98298">AXIS2_URI_HTTP_DEFAULT_PORT</a>&nbsp;&nbsp;&nbsp;80</td></tr>

<tr><td class="memItemLeft" nowrap align="right" valign="top">#define&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__axutil__uri.html#g641f01da5297ffdc17302e3a35ec5df9">AXIS2_URI_POP_DEFAULT_PORT</a>&nbsp;&nbsp;&nbsp;110</td></tr>

<tr><td class="memItemLeft" nowrap align="right" valign="top">#define&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__axutil__uri.html#g5cf52008ffc33b4308cdc6ab465d1271">AXIS2_URI_NNTP_DEFAULT_PORT</a>&nbsp;&nbsp;&nbsp;119</td></tr>

<tr><td class="memItemLeft" nowrap align="right" valign="top">#define&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__axutil__uri.html#g05f6dc24b60711f8c7ed562ceef3cd26">AXIS2_URI_IMAP_DEFAULT_PORT</a>&nbsp;&nbsp;&nbsp;143</td></tr>

<tr><td class="memItemLeft" nowrap align="right" valign="top">#define&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__axutil__uri.html#g501f92278c7825a20f532aaeae3b59ca">AXIS2_URI_PROSPERO_DEFAULT_PORT</a>&nbsp;&nbsp;&nbsp;191</td></tr>

<tr><td class="memItemLeft" nowrap align="right" valign="top">#define&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__axutil__uri.html#gc73c5de55dd281e5db79bcd377bbf1ba">AXIS2_URI_WAIS_DEFAULT_PORT</a>&nbsp;&nbsp;&nbsp;210</td></tr>

<tr><td class="memItemLeft" nowrap align="right" valign="top">#define&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__axutil__uri.html#gf49acba5d4eb35310a62cb62385538ef">AXIS2_URI_LDAP_DEFAULT_PORT</a>&nbsp;&nbsp;&nbsp;389</td></tr>

<tr><td class="memItemLeft" nowrap align="right" valign="top">#define&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__axutil__uri.html#g3c34f69d375f38e461f09374ad90ee9c">AXIS2_URI_HTTPS_DEFAULT_PORT</a>&nbsp;&nbsp;&nbsp;443</td></tr>

<tr><td class="memItemLeft" nowrap align="right" valign="top">#define&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__axutil__uri.html#g0e844d7bf3c95b104e6a25b4680a3263">AXIS2_URI_RTSP_DEFAULT_PORT</a>&nbsp;&nbsp;&nbsp;554</td></tr>

<tr><td class="memItemLeft" nowrap align="right" valign="top">#define&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__axutil__uri.html#g453de6d294e03f6a1950b5ecd1c767a4">AXIS2_URI_SNEWS_DEFAULT_PORT</a>&nbsp;&nbsp;&nbsp;563</td></tr>

<tr><td class="memItemLeft" nowrap align="right" valign="top">#define&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__axutil__uri.html#g597c0ffd3d295c93b341d41934926b8a">AXIS2_URI_ACAP_DEFAULT_PORT</a>&nbsp;&nbsp;&nbsp;674</td></tr>

<tr><td class="memItemLeft" nowrap align="right" valign="top">#define&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__axutil__uri.html#g938eb255d804e1aff7e1d92ffb5f5b9d">AXIS2_URI_NFS_DEFAULT_PORT</a>&nbsp;&nbsp;&nbsp;2049</td></tr>

<tr><td class="memItemLeft" nowrap align="right" valign="top">#define&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__axutil__uri.html#g2a5977799c7e472bc7f0ea1ee440a2c3">AXIS2_URI_TIP_DEFAULT_PORT</a>&nbsp;&nbsp;&nbsp;3372</td></tr>

<tr><td class="memItemLeft" nowrap align="right" valign="top">#define&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__axutil__uri.html#g00c5165abdd8e1e3dc4e649dc91a7d14">AXIS2_URI_SIP_DEFAULT_PORT</a>&nbsp;&nbsp;&nbsp;5060</td></tr>

<tr><td class="memItemLeft" nowrap align="right" valign="top">#define&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__axutil__uri.html#g9fbeb5793112dac6d410949e2f9b8547">AXIS2_URI_UNP_OMITSITEPART</a>&nbsp;&nbsp;&nbsp;(1U&lt;&lt;0)</td></tr>

<tr><td class="memItemLeft" nowrap align="right" valign="top">#define&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__axutil__uri.html#g72c059826dc908e6e6960b6f9023b0ad">AXIS2_URI_UNP_OMITUSER</a>&nbsp;&nbsp;&nbsp;(1U&lt;&lt;1)</td></tr>

<tr><td class="memItemLeft" nowrap align="right" valign="top">#define&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__axutil__uri.html#ga54bd62b2dcdf304deec6087328d9b40">AXIS2_URI_UNP_OMITPASSWORD</a>&nbsp;&nbsp;&nbsp;(1U&lt;&lt;2)</td></tr>

<tr><td class="memItemLeft" nowrap align="right" valign="top">#define&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__axutil__uri.html#gdf97648c61c101a22ed8628355171496">AXIS2_URI_UNP_OMITUSERINFO</a></td></tr>

<tr><td class="memItemLeft" nowrap align="right" valign="top">#define&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__axutil__uri.html#ge4deae533f770383007885c27f9eb977">AXIS2_URI_UNP_REVEALPASSWORD</a>&nbsp;&nbsp;&nbsp;(1U&lt;&lt;3)</td></tr>

<tr><td class="memItemLeft" nowrap align="right" valign="top">#define&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__axutil__uri.html#gf9be5c22507d50e8852d6b346068bf85">AXIS2_URI_UNP_OMITPATHINFO</a>&nbsp;&nbsp;&nbsp;(1U&lt;&lt;4)</td></tr>

<tr><td class="memItemLeft" nowrap align="right" valign="top">#define&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__axutil__uri.html#gba651e91d89d096e638945c1dc729b82">AXIS2_URI_UNP_OMITQUERY_ONLY</a>&nbsp;&nbsp;&nbsp;(1U&lt;&lt;5)</td></tr>

<tr><td class="memItemLeft" nowrap align="right" valign="top">#define&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__axutil__uri.html#gfd1c52b377d713e8c562d138971e3da9">AXIS2_URI_UNP_OMITFRAGMENT_ONLY</a>&nbsp;&nbsp;&nbsp;(1U&lt;&lt;6)</td></tr>

<tr><td class="memItemLeft" nowrap align="right" valign="top">#define&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__axutil__uri.html#g83806b77d30e0c012192145ee73c4eb4">AXIS2_URI_UNP_OMITQUERY</a></td></tr>

<tr><td colspan="2"><br><h2>Typedefs</h2></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top">typedef unsigned short&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__axutil__uri.html#ge872059061cd893ffffc348e725bd021">axis2_port_t</a></td></tr>

<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="g64b8c26cacf7573df632058226941a9e"></a><!-- doxytag: member="axutil_uri::axutil_uri_t" ref="g64b8c26cacf7573df632058226941a9e" args="" -->
typedef struct axutil_uri&nbsp;</td><td class="memItemRight" valign="bottom"><b>axutil_uri_t</b></td></tr>

<tr><td colspan="2"><br><h2>Functions</h2></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top">AXIS2_EXTERN <br>
axutil_uri_t *&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__axutil__uri.html#g935c3b7a98e6a20f2020ab3369da88e5">axutil_uri_create</a> (const <a class="el" href="structaxutil__env.html">axutil_env_t</a> *env)</td></tr>

<tr><td class="memItemLeft" nowrap align="right" valign="top">AXIS2_EXTERN <a class="el" href="group__axutil__uri.html#ge872059061cd893ffffc348e725bd021">axis2_port_t</a>&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__axutil__uri.html#gdf1a3e50e6387fafd45b14e1aa0f8208">axutil_uri_port_of_scheme</a> (const axis2_char_t *scheme_str)</td></tr>

<tr><td class="memItemLeft" nowrap align="right" valign="top">AXIS2_EXTERN <br>
axutil_uri_t *&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__axutil__uri.html#g89c8721392b5307aa708bd0581cc6f87">axutil_uri_parse_string</a> (const <a class="el" href="structaxutil__env.html">axutil_env_t</a> *env, const axis2_char_t *uri)</td></tr>

<tr><td class="memItemLeft" nowrap align="right" valign="top">AXIS2_EXTERN <br>
axutil_uri_t *&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__axutil__uri.html#g7ae7fb761871229bea556e730c092eea">axutil_uri_parse_hostinfo</a> (const <a class="el" href="structaxutil__env.html">axutil_env_t</a> *env, const axis2_char_t *hostinfo)</td></tr>

<tr><td class="memItemLeft" nowrap align="right" valign="top">AXIS2_EXTERN <br>
axutil_uri_t *&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__axutil__uri.html#g57054f49c2c3615b1205fa4702aab1a4">axutil_uri_resolve_relative</a> (const <a class="el" href="structaxutil__env.html">axutil_env_t</a> *env, const axutil_uri_t *base, axutil_uri_t *uptr)</td></tr>

<tr><td class="memItemLeft" nowrap align="right" valign="top">AXIS2_EXTERN <br>
axutil_uri_t *&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__axutil__uri.html#gb1f06713caf077056cf82e14dddb3f6b">axutil_uri_parse_relative</a> (const <a class="el" href="structaxutil__env.html">axutil_env_t</a> *env, const axutil_uri_t *base, const char *uri)</td></tr>

<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="g28289798d5761887bd0c9d596f4af55d"></a><!-- doxytag: member="axutil_uri::axutil_uri_free" ref="g28289798d5761887bd0c9d596f4af55d" args="(axutil_uri_t *uri, const axutil_env_t *env)" -->
AXIS2_EXTERN void&nbsp;</td><td class="memItemRight" valign="bottom"><b>axutil_uri_free</b> (axutil_uri_t *uri, const <a class="el" href="structaxutil__env.html">axutil_env_t</a> *env)</td></tr>

<tr><td class="memItemLeft" nowrap align="right" valign="top">AXIS2_EXTERN <br>
axis2_char_t *&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__axutil__uri.html#g9b9e291fb2de237b1ea16e1446cb4ef9">axutil_uri_to_string</a> (const axutil_uri_t *uri, const <a class="el" href="structaxutil__env.html">axutil_env_t</a> *env, unsigned flags)</td></tr>

<tr><td class="memItemLeft" nowrap align="right" valign="top">AXIS2_EXTERN <br>
axis2_char_t *&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__axutil__uri.html#g7f474fba8db7111c30a4cc5878b09b09">axutil_uri_get_protocol</a> (axutil_uri_t *uri, const <a class="el" href="structaxutil__env.html">axutil_env_t</a> *env)</td></tr>

<tr><td class="memItemLeft" nowrap align="right" valign="top">AXIS2_EXTERN <br>
axis2_char_t *&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__axutil__uri.html#gce1f53b8049d45a7964ea893edcef747">axutil_uri_get_server</a> (axutil_uri_t *uri, const <a class="el" href="structaxutil__env.html">axutil_env_t</a> *env)</td></tr>

<tr><td class="memItemLeft" nowrap align="right" valign="top">AXIS2_EXTERN <br>
axis2_char_t *&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__axutil__uri.html#gaec4183fc0c510ca0e2a2038d6ed4a8d">axutil_uri_get_host</a> (axutil_uri_t *uri, const <a class="el" href="structaxutil__env.html">axutil_env_t</a> *env)</td></tr>

<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="g73046bb3c4357a211c61e8b041214d2f"></a><!-- doxytag: member="axutil_uri::axutil_uri_get_port" ref="g73046bb3c4357a211c61e8b041214d2f" args="(axutil_uri_t *uri, const axutil_env_t *env)" -->
AXIS2_EXTERN <a class="el" href="group__axutil__uri.html#ge872059061cd893ffffc348e725bd021">axis2_port_t</a>&nbsp;</td><td class="memItemRight" valign="bottom"><b>axutil_uri_get_port</b> (axutil_uri_t *uri, const <a class="el" href="structaxutil__env.html">axutil_env_t</a> *env)</td></tr>

<tr><td class="memItemLeft" nowrap align="right" valign="top">AXIS2_EXTERN <br>
axis2_char_t *&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__axutil__uri.html#g6f187b6adfd0e2b46b63214cb29ed45a">axutil_uri_get_path</a> (axutil_uri_t *uri, const <a class="el" href="structaxutil__env.html">axutil_env_t</a> *env)</td></tr>

<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="g6daaaa0010e8fa2bf4a62843633eb747"></a><!-- doxytag: member="axutil_uri::axutil_uri_clone" ref="g6daaaa0010e8fa2bf4a62843633eb747" args="(const axutil_uri_t *uri, const axutil_env_t *env)" -->
AXIS2_EXTERN <br>
axutil_uri_t *&nbsp;</td><td class="memItemRight" valign="bottom"><b>axutil_uri_clone</b> (const axutil_uri_t *uri, const <a class="el" href="structaxutil__env.html">axutil_env_t</a> *env)</td></tr>

<tr><td class="memItemLeft" nowrap align="right" valign="top">AXIS2_EXTERN <br>
axis2_char_t *&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__axutil__uri.html#gc967a6e1c1b5193f500f0af22506ecaa">axutil_uri_get_query</a> (axutil_uri_t *uri, const <a class="el" href="structaxutil__env.html">axutil_env_t</a> *env)</td></tr>

<tr><td class="memItemLeft" nowrap align="right" valign="top">AXIS2_EXTERN <br>
axis2_char_t *&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__axutil__uri.html#g854544404e22e40fc10e470c24273286">axutil_uri_get_fragment</a> (axutil_uri_t *uri, const <a class="el" href="structaxutil__env.html">axutil_env_t</a> *env)</td></tr>

</table>
<hr><h2>Define Documentation</h2>
<a class="anchor" name="g597c0ffd3d295c93b341d41934926b8a"></a><!-- doxytag: member="axutil_uri.h::AXIS2_URI_ACAP_DEFAULT_PORT" ref="g597c0ffd3d295c93b341d41934926b8a" args="" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">#define AXIS2_URI_ACAP_DEFAULT_PORT&nbsp;&nbsp;&nbsp;674          </td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
default ACAP port 
</div>
</div><p>
<a class="anchor" name="g890a29bb1a4b69ad44210eb56093ef9d"></a><!-- doxytag: member="axutil_uri.h::AXIS2_URI_FTP_DEFAULT_PORT" ref="g890a29bb1a4b69ad44210eb56093ef9d" args="" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">#define AXIS2_URI_FTP_DEFAULT_PORT&nbsp;&nbsp;&nbsp;21          </td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
default FTP port 
</div>
</div><p>
<a class="anchor" name="g1324185e1936eefc96758ac7b3bd1d1e"></a><!-- doxytag: member="axutil_uri.h::AXIS2_URI_GOPHER_DEFAULT_PORT" ref="g1324185e1936eefc96758ac7b3bd1d1e" args="" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">#define AXIS2_URI_GOPHER_DEFAULT_PORT&nbsp;&nbsp;&nbsp;70          </td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
default Gopher port 
</div>
</div><p>
<a class="anchor" name="g61a736bf61ac0e9773d506a2faf98298"></a><!-- doxytag: member="axutil_uri.h::AXIS2_URI_HTTP_DEFAULT_PORT" ref="g61a736bf61ac0e9773d506a2faf98298" args="" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">#define AXIS2_URI_HTTP_DEFAULT_PORT&nbsp;&nbsp;&nbsp;80          </td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
default HTTP port 
</div>
</div><p>
<a class="anchor" name="g3c34f69d375f38e461f09374ad90ee9c"></a><!-- doxytag: member="axutil_uri.h::AXIS2_URI_HTTPS_DEFAULT_PORT" ref="g3c34f69d375f38e461f09374ad90ee9c" args="" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">#define AXIS2_URI_HTTPS_DEFAULT_PORT&nbsp;&nbsp;&nbsp;443          </td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
default HTTPS port 
</div>
</div><p>
<a class="anchor" name="g05f6dc24b60711f8c7ed562ceef3cd26"></a><!-- doxytag: member="axutil_uri.h::AXIS2_URI_IMAP_DEFAULT_PORT" ref="g05f6dc24b60711f8c7ed562ceef3cd26" args="" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">#define AXIS2_URI_IMAP_DEFAULT_PORT&nbsp;&nbsp;&nbsp;143          </td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
default IMAP port 
</div>
</div><p>
<a class="anchor" name="gf49acba5d4eb35310a62cb62385538ef"></a><!-- doxytag: member="axutil_uri.h::AXIS2_URI_LDAP_DEFAULT_PORT" ref="gf49acba5d4eb35310a62cb62385538ef" args="" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">#define AXIS2_URI_LDAP_DEFAULT_PORT&nbsp;&nbsp;&nbsp;389          </td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
default LDAP port 
</div>
</div><p>
<a class="anchor" name="g938eb255d804e1aff7e1d92ffb5f5b9d"></a><!-- doxytag: member="axutil_uri.h::AXIS2_URI_NFS_DEFAULT_PORT" ref="g938eb255d804e1aff7e1d92ffb5f5b9d" args="" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">#define AXIS2_URI_NFS_DEFAULT_PORT&nbsp;&nbsp;&nbsp;2049          </td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
default NFS port 
</div>
</div><p>
<a class="anchor" name="g5cf52008ffc33b4308cdc6ab465d1271"></a><!-- doxytag: member="axutil_uri.h::AXIS2_URI_NNTP_DEFAULT_PORT" ref="g5cf52008ffc33b4308cdc6ab465d1271" args="" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">#define AXIS2_URI_NNTP_DEFAULT_PORT&nbsp;&nbsp;&nbsp;119          </td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
default NNTP port 
</div>
</div><p>
<a class="anchor" name="g641f01da5297ffdc17302e3a35ec5df9"></a><!-- doxytag: member="axutil_uri.h::AXIS2_URI_POP_DEFAULT_PORT" ref="g641f01da5297ffdc17302e3a35ec5df9" args="" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">#define AXIS2_URI_POP_DEFAULT_PORT&nbsp;&nbsp;&nbsp;110          </td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
default POP port 
</div>
</div><p>
<a class="anchor" name="g501f92278c7825a20f532aaeae3b59ca"></a><!-- doxytag: member="axutil_uri.h::AXIS2_URI_PROSPERO_DEFAULT_PORT" ref="g501f92278c7825a20f532aaeae3b59ca" args="" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">#define AXIS2_URI_PROSPERO_DEFAULT_PORT&nbsp;&nbsp;&nbsp;191          </td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
default Prospero port 
</div>
</div><p>
<a class="anchor" name="g0e844d7bf3c95b104e6a25b4680a3263"></a><!-- doxytag: member="axutil_uri.h::AXIS2_URI_RTSP_DEFAULT_PORT" ref="g0e844d7bf3c95b104e6a25b4680a3263" args="" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">#define AXIS2_URI_RTSP_DEFAULT_PORT&nbsp;&nbsp;&nbsp;554          </td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
default RTSP port 
</div>
</div><p>
<a class="anchor" name="g00c5165abdd8e1e3dc4e649dc91a7d14"></a><!-- doxytag: member="axutil_uri.h::AXIS2_URI_SIP_DEFAULT_PORT" ref="g00c5165abdd8e1e3dc4e649dc91a7d14" args="" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">#define AXIS2_URI_SIP_DEFAULT_PORT&nbsp;&nbsp;&nbsp;5060          </td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
default SIP port 
</div>
</div><p>
<a class="anchor" name="g453de6d294e03f6a1950b5ecd1c767a4"></a><!-- doxytag: member="axutil_uri.h::AXIS2_URI_SNEWS_DEFAULT_PORT" ref="g453de6d294e03f6a1950b5ecd1c767a4" args="" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">#define AXIS2_URI_SNEWS_DEFAULT_PORT&nbsp;&nbsp;&nbsp;563          </td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
default SNEWS port 
</div>
</div><p>
<a class="anchor" name="g173cf9fac502ce166634f8cac97ad72b"></a><!-- doxytag: member="axutil_uri.h::AXIS2_URI_SSH_DEFAULT_PORT" ref="g173cf9fac502ce166634f8cac97ad72b" args="" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">#define AXIS2_URI_SSH_DEFAULT_PORT&nbsp;&nbsp;&nbsp;22          </td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
default SSH port 
</div>
</div><p>
<a class="anchor" name="g54be7d53a86f2b0d82bf00c7aa8f7c6f"></a><!-- doxytag: member="axutil_uri.h::AXIS2_URI_TELNET_DEFAULT_PORT" ref="g54be7d53a86f2b0d82bf00c7aa8f7c6f" args="" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">#define AXIS2_URI_TELNET_DEFAULT_PORT&nbsp;&nbsp;&nbsp;23          </td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
default telnet port 
</div>
</div><p>
<a class="anchor" name="g2a5977799c7e472bc7f0ea1ee440a2c3"></a><!-- doxytag: member="axutil_uri.h::AXIS2_URI_TIP_DEFAULT_PORT" ref="g2a5977799c7e472bc7f0ea1ee440a2c3" args="" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">#define AXIS2_URI_TIP_DEFAULT_PORT&nbsp;&nbsp;&nbsp;3372          </td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
default TIP port 
</div>
</div><p>
<a class="anchor" name="gfd1c52b377d713e8c562d138971e3da9"></a><!-- doxytag: member="axutil_uri.h::AXIS2_URI_UNP_OMITFRAGMENT_ONLY" ref="gfd1c52b377d713e8c562d138971e3da9" args="" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">#define AXIS2_URI_UNP_OMITFRAGMENT_ONLY&nbsp;&nbsp;&nbsp;(1U&lt;&lt;6)          </td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
Omit the "#fragment" from the path 
</div>
</div><p>
<a class="anchor" name="ga54bd62b2dcdf304deec6087328d9b40"></a><!-- doxytag: member="axutil_uri.h::AXIS2_URI_UNP_OMITPASSWORD" ref="ga54bd62b2dcdf304deec6087328d9b40" args="" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">#define AXIS2_URI_UNP_OMITPASSWORD&nbsp;&nbsp;&nbsp;(1U&lt;&lt;2)          </td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
Just omit password 
</div>
</div><p>
<a class="anchor" name="gf9be5c22507d50e8852d6b346068bf85"></a><!-- doxytag: member="axutil_uri.h::AXIS2_URI_UNP_OMITPATHINFO" ref="gf9be5c22507d50e8852d6b346068bf85" args="" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">#define AXIS2_URI_UNP_OMITPATHINFO&nbsp;&nbsp;&nbsp;(1U&lt;&lt;4)          </td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
Show "scheme://user\@site:port" only 
</div>
</div><p>
<a class="anchor" name="g83806b77d30e0c012192145ee73c4eb4"></a><!-- doxytag: member="axutil_uri.h::AXIS2_URI_UNP_OMITQUERY" ref="g83806b77d30e0c012192145ee73c4eb4" args="" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">#define AXIS2_URI_UNP_OMITQUERY          </td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
<b>Value:</b><div class="fragment"><pre class="fragment">(<a class="code" href="group__axutil__uri.html#gba651e91d89d096e638945c1dc729b82">AXIS2_URI_UNP_OMITQUERY_ONLY</a> | \
                                       <a class="code" href="group__axutil__uri.html#gfd1c52b377d713e8c562d138971e3da9">AXIS2_URI_UNP_OMITFRAGMENT_ONLY</a>)
</pre></div>Omit the "?queryarg" and "#fragment" from the path 
</div>
</div><p>
<a class="anchor" name="gba651e91d89d096e638945c1dc729b82"></a><!-- doxytag: member="axutil_uri.h::AXIS2_URI_UNP_OMITQUERY_ONLY" ref="gba651e91d89d096e638945c1dc729b82" args="" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">#define AXIS2_URI_UNP_OMITQUERY_ONLY&nbsp;&nbsp;&nbsp;(1U&lt;&lt;5)          </td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
Omit the "?queryarg" from the path 
</div>
</div><p>
<a class="anchor" name="g9fbeb5793112dac6d410949e2f9b8547"></a><!-- doxytag: member="axutil_uri.h::AXIS2_URI_UNP_OMITSITEPART" ref="g9fbeb5793112dac6d410949e2f9b8547" args="" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">#define AXIS2_URI_UNP_OMITSITEPART&nbsp;&nbsp;&nbsp;(1U&lt;&lt;0)          </td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
Flags passed to unparse_uri_components(): suppress "scheme://user\@site:port" 
</div>
</div><p>
<a class="anchor" name="g72c059826dc908e6e6960b6f9023b0ad"></a><!-- doxytag: member="axutil_uri.h::AXIS2_URI_UNP_OMITUSER" ref="g72c059826dc908e6e6960b6f9023b0ad" args="" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">#define AXIS2_URI_UNP_OMITUSER&nbsp;&nbsp;&nbsp;(1U&lt;&lt;1)          </td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
Just omit user 
</div>
</div><p>
<a class="anchor" name="gdf97648c61c101a22ed8628355171496"></a><!-- doxytag: member="axutil_uri.h::AXIS2_URI_UNP_OMITUSERINFO" ref="gdf97648c61c101a22ed8628355171496" args="" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">#define AXIS2_URI_UNP_OMITUSERINFO          </td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
<b>Value:</b><div class="fragment"><pre class="fragment">(<a class="code" href="group__axutil__uri.html#g72c059826dc908e6e6960b6f9023b0ad">AXIS2_URI_UNP_OMITUSER</a> | \
                                       <a class="code" href="group__axutil__uri.html#ga54bd62b2dcdf304deec6087328d9b40">AXIS2_URI_UNP_OMITPASSWORD</a>)
</pre></div>omit "user:password\@" part 
</div>
</div><p>
<a class="anchor" name="ge4deae533f770383007885c27f9eb977"></a><!-- doxytag: member="axutil_uri.h::AXIS2_URI_UNP_REVEALPASSWORD" ref="ge4deae533f770383007885c27f9eb977" args="" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">#define AXIS2_URI_UNP_REVEALPASSWORD&nbsp;&nbsp;&nbsp;(1U&lt;&lt;3)          </td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
Show plain text password (default: show XXXXXXXX) 
</div>
</div><p>
<a class="anchor" name="gc73c5de55dd281e5db79bcd377bbf1ba"></a><!-- doxytag: member="axutil_uri.h::AXIS2_URI_WAIS_DEFAULT_PORT" ref="gc73c5de55dd281e5db79bcd377bbf1ba" args="" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">#define AXIS2_URI_WAIS_DEFAULT_PORT&nbsp;&nbsp;&nbsp;210          </td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
default WAIS port 
</div>
</div><p>
<hr><h2>Typedef Documentation</h2>
<a class="anchor" name="ge872059061cd893ffffc348e725bd021"></a><!-- doxytag: member="axutil_uri.h::axis2_port_t" ref="ge872059061cd893ffffc348e725bd021" args="" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">typedef unsigned short <a class="el" href="group__axutil__uri.html#ge872059061cd893ffffc348e725bd021">axis2_port_t</a>          </td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
<dl class="see" compact><dt><b>See also:</b></dt><dd>axutil_uri_t </dd></dl>

</div>
</div><p>
<hr><h2>Function Documentation</h2>
<a class="anchor" name="g935c3b7a98e6a20f2020ab3369da88e5"></a><!-- doxytag: member="axutil_uri.h::axutil_uri_create" ref="g935c3b7a98e6a20f2020ab3369da88e5" args="(const axutil_env_t *env)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">AXIS2_EXTERN axutil_uri_t* axutil_uri_create           </td>
          <td>(</td>
          <td class="paramtype">const <a class="el" href="structaxutil__env.html">axutil_env_t</a> *&nbsp;</td>
          <td class="paramname"> <em>env</em>          </td>
          <td>&nbsp;)&nbsp;</td>
          <td width="100%"></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
Creates axutil_uri struct. <dl compact><dt><b>Parameters:</b></dt><dd>
  <table border="0" cellspacing="2" cellpadding="0">
    <tr><td valign="top"></td><td valign="top"><em>env</em>&nbsp;</td><td>pointer to environment struct. MUST NOT be NULL </td></tr>
  </table>
</dl>
<dl class="return" compact><dt><b>Returns:</b></dt><dd>pointer to newly created axutil_uri struct </dd></dl>

</div>
</div><p>
<a class="anchor" name="g854544404e22e40fc10e470c24273286"></a><!-- doxytag: member="axutil_uri.h::axutil_uri_get_fragment" ref="g854544404e22e40fc10e470c24273286" args="(axutil_uri_t *uri, const axutil_env_t *env)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">AXIS2_EXTERN axis2_char_t* axutil_uri_get_fragment           </td>
          <td>(</td>
          <td class="paramtype">axutil_uri_t *&nbsp;</td>
          <td class="paramname"> <em>uri</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const <a class="el" href="structaxutil__env.html">axutil_env_t</a> *&nbsp;</td>
          <td class="paramname"> <em>env</em></td><td>&nbsp;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td><td width="100%"></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
<dl class="return" compact><dt><b>Returns:</b></dt><dd>returns actual reference, not a cloned copy. </dd></dl>

</div>
</div><p>
<a class="anchor" name="gaec4183fc0c510ca0e2a2038d6ed4a8d"></a><!-- doxytag: member="axutil_uri.h::axutil_uri_get_host" ref="gaec4183fc0c510ca0e2a2038d6ed4a8d" args="(axutil_uri_t *uri, const axutil_env_t *env)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">AXIS2_EXTERN axis2_char_t* axutil_uri_get_host           </td>
          <td>(</td>
          <td class="paramtype">axutil_uri_t *&nbsp;</td>
          <td class="paramname"> <em>uri</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const <a class="el" href="structaxutil__env.html">axutil_env_t</a> *&nbsp;</td>
          <td class="paramname"> <em>env</em></td><td>&nbsp;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td><td width="100%"></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
<dl class="return" compact><dt><b>Returns:</b></dt><dd>returns actual reference, not a cloned copy. For IPv6 addresses, the IPv6 Address will be returned rather than the IP-literal as defined in RFC3986. </dd></dl>

</div>
</div><p>
<a class="anchor" name="g6f187b6adfd0e2b46b63214cb29ed45a"></a><!-- doxytag: member="axutil_uri.h::axutil_uri_get_path" ref="g6f187b6adfd0e2b46b63214cb29ed45a" args="(axutil_uri_t *uri, const axutil_env_t *env)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">AXIS2_EXTERN axis2_char_t* axutil_uri_get_path           </td>
          <td>(</td>
          <td class="paramtype">axutil_uri_t *&nbsp;</td>
          <td class="paramname"> <em>uri</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const <a class="el" href="structaxutil__env.html">axutil_env_t</a> *&nbsp;</td>
          <td class="paramname"> <em>env</em></td><td>&nbsp;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td><td width="100%"></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
<dl class="return" compact><dt><b>Returns:</b></dt><dd>returns actual reference, not a cloned copy. </dd></dl>

</div>
</div><p>
<a class="anchor" name="g7f474fba8db7111c30a4cc5878b09b09"></a><!-- doxytag: member="axutil_uri.h::axutil_uri_get_protocol" ref="g7f474fba8db7111c30a4cc5878b09b09" args="(axutil_uri_t *uri, const axutil_env_t *env)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">AXIS2_EXTERN axis2_char_t* axutil_uri_get_protocol           </td>
          <td>(</td>
          <td class="paramtype">axutil_uri_t *&nbsp;</td>
          <td class="paramname"> <em>uri</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const <a class="el" href="structaxutil__env.html">axutil_env_t</a> *&nbsp;</td>
          <td class="paramname"> <em>env</em></td><td>&nbsp;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td><td width="100%"></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
<dl class="return" compact><dt><b>Returns:</b></dt><dd>returns actual reference, not a cloned copy. </dd></dl>

</div>
</div><p>
<a class="anchor" name="gc967a6e1c1b5193f500f0af22506ecaa"></a><!-- doxytag: member="axutil_uri.h::axutil_uri_get_query" ref="gc967a6e1c1b5193f500f0af22506ecaa" args="(axutil_uri_t *uri, const axutil_env_t *env)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">AXIS2_EXTERN axis2_char_t* axutil_uri_get_query           </td>
          <td>(</td>
          <td class="paramtype">axutil_uri_t *&nbsp;</td>
          <td class="paramname"> <em>uri</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const <a class="el" href="structaxutil__env.html">axutil_env_t</a> *&nbsp;</td>
          <td class="paramname"> <em>env</em></td><td>&nbsp;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td><td width="100%"></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
<dl class="return" compact><dt><b>Returns:</b></dt><dd>returns actual reference, not a cloned copy. </dd></dl>

</div>
</div><p>
<a class="anchor" name="gce1f53b8049d45a7964ea893edcef747"></a><!-- doxytag: member="axutil_uri.h::axutil_uri_get_server" ref="gce1f53b8049d45a7964ea893edcef747" args="(axutil_uri_t *uri, const axutil_env_t *env)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">AXIS2_EXTERN axis2_char_t* axutil_uri_get_server           </td>
          <td>(</td>
          <td class="paramtype">axutil_uri_t *&nbsp;</td>
          <td class="paramname"> <em>uri</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const <a class="el" href="structaxutil__env.html">axutil_env_t</a> *&nbsp;</td>
          <td class="paramname"> <em>env</em></td><td>&nbsp;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td><td width="100%"></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
<dl class="return" compact><dt><b>Returns:</b></dt><dd>returns actual reference, not a cloned copy. </dd></dl>

</div>
</div><p>
<a class="anchor" name="g7ae7fb761871229bea556e730c092eea"></a><!-- doxytag: member="axutil_uri.h::axutil_uri_parse_hostinfo" ref="g7ae7fb761871229bea556e730c092eea" args="(const axutil_env_t *env, const axis2_char_t *hostinfo)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">AXIS2_EXTERN axutil_uri_t* axutil_uri_parse_hostinfo           </td>
          <td>(</td>
          <td class="paramtype">const <a class="el" href="structaxutil__env.html">axutil_env_t</a> *&nbsp;</td>
          <td class="paramname"> <em>env</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const axis2_char_t *&nbsp;</td>
          <td class="paramname"> <em>hostinfo</em></td><td>&nbsp;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td><td width="100%"></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
Special case for CONNECT parsing: it comes with the hostinfo part only <dl compact><dt><b>Parameters:</b></dt><dd>
  <table border="0" cellspacing="2" cellpadding="0">
    <tr><td valign="top"></td><td valign="top"><em>hostinfo</em>&nbsp;</td><td>The hostinfo string to parse </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>uptr</em>&nbsp;</td><td>The axutil_uri_t to fill out </td></tr>
  </table>
</dl>
<dl class="return" compact><dt><b>Returns:</b></dt><dd>AXIS2_SUCCESS for success or error code </dd></dl>

</div>
</div><p>
<a class="anchor" name="gb1f06713caf077056cf82e14dddb3f6b"></a><!-- doxytag: member="axutil_uri.h::axutil_uri_parse_relative" ref="gb1f06713caf077056cf82e14dddb3f6b" args="(const axutil_env_t *env, const axutil_uri_t *base, const char *uri)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">AXIS2_EXTERN axutil_uri_t* axutil_uri_parse_relative           </td>
          <td>(</td>
          <td class="paramtype">const <a class="el" href="structaxutil__env.html">axutil_env_t</a> *&nbsp;</td>
          <td class="paramname"> <em>env</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const axutil_uri_t *&nbsp;</td>
          <td class="paramname"> <em>base</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const char *&nbsp;</td>
          <td class="paramname"> <em>uri</em></td><td>&nbsp;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td><td width="100%"></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
Return a URI created from a context URI and a relative URI. If a valid URI cannot be created the only other possibility this method will consider is that an absolute file path has been passed in as the relative URI argument, and it will try to create a 'file' URI from it.<p>
<dl compact><dt><b>Parameters:</b></dt><dd>
  <table border="0" cellspacing="2" cellpadding="0">
    <tr><td valign="top"></td><td valign="top"><em>context_uri</em>&nbsp;</td><td>the document base URI </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>uri</em>&nbsp;</td><td>a file URI relative to the context_uri or an absolute file path </td></tr>
  </table>
</dl>
<dl class="return" compact><dt><b>Returns:</b></dt><dd>the URIcreated from context_uri and uri </dd></dl>

</div>
</div><p>
<a class="anchor" name="g89c8721392b5307aa708bd0581cc6f87"></a><!-- doxytag: member="axutil_uri.h::axutil_uri_parse_string" ref="g89c8721392b5307aa708bd0581cc6f87" args="(const axutil_env_t *env, const axis2_char_t *uri)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">AXIS2_EXTERN axutil_uri_t* axutil_uri_parse_string           </td>
          <td>(</td>
          <td class="paramtype">const <a class="el" href="structaxutil__env.html">axutil_env_t</a> *&nbsp;</td>
          <td class="paramname"> <em>env</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const axis2_char_t *&nbsp;</td>
          <td class="paramname"> <em>uri</em></td><td>&nbsp;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td><td width="100%"></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
Parse a given URI, fill in all supplied fields of a axutil_uri structure. This eliminates the necessity of extracting host, port, path, query info repeatedly in the modules. <dl compact><dt><b>Parameters:</b></dt><dd>
  <table border="0" cellspacing="2" cellpadding="0">
    <tr><td valign="top"></td><td valign="top"><em>uri</em>&nbsp;</td><td>The uri to parse </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>uptr</em>&nbsp;</td><td>The axutil_uri_t to fill out </td></tr>
  </table>
</dl>
<dl class="return" compact><dt><b>Returns:</b></dt><dd>AXIS2_SUCCESS for success or error code </dd></dl>

</div>
</div><p>
<a class="anchor" name="gdf1a3e50e6387fafd45b14e1aa0f8208"></a><!-- doxytag: member="axutil_uri.h::axutil_uri_port_of_scheme" ref="gdf1a3e50e6387fafd45b14e1aa0f8208" args="(const axis2_char_t *scheme_str)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">AXIS2_EXTERN <a class="el" href="group__axutil__uri.html#ge872059061cd893ffffc348e725bd021">axis2_port_t</a> axutil_uri_port_of_scheme           </td>
          <td>(</td>
          <td class="paramtype">const axis2_char_t *&nbsp;</td>
          <td class="paramname"> <em>scheme_str</em>          </td>
          <td>&nbsp;)&nbsp;</td>
          <td width="100%"></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
Return the default port for a given scheme. The schemes recognized are http, ftp, https, gopher, wais, nntp, snews, and prospero <dl compact><dt><b>Parameters:</b></dt><dd>
  <table border="0" cellspacing="2" cellpadding="0">
    <tr><td valign="top"></td><td valign="top"><em>scheme_str</em>&nbsp;</td><td>The string that contains the current scheme </td></tr>
  </table>
</dl>
<dl class="return" compact><dt><b>Returns:</b></dt><dd>The default port for this scheme </dd></dl>

</div>
</div><p>
<a class="anchor" name="g57054f49c2c3615b1205fa4702aab1a4"></a><!-- doxytag: member="axutil_uri.h::axutil_uri_resolve_relative" ref="g57054f49c2c3615b1205fa4702aab1a4" args="(const axutil_env_t *env, const axutil_uri_t *base, axutil_uri_t *uptr)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">AXIS2_EXTERN axutil_uri_t* axutil_uri_resolve_relative           </td>
          <td>(</td>
          <td class="paramtype">const <a class="el" href="structaxutil__env.html">axutil_env_t</a> *&nbsp;</td>
          <td class="paramname"> <em>env</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const axutil_uri_t *&nbsp;</td>
          <td class="paramname"> <em>base</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">axutil_uri_t *&nbsp;</td>
          <td class="paramname"> <em>uptr</em></td><td>&nbsp;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td><td width="100%"></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
Resolve relative to a base. This means host/etc, and (crucially) path 
</div>
</div><p>
<a class="anchor" name="g9b9e291fb2de237b1ea16e1446cb4ef9"></a><!-- doxytag: member="axutil_uri.h::axutil_uri_to_string" ref="g9b9e291fb2de237b1ea16e1446cb4ef9" args="(const axutil_uri_t *uri, const axutil_env_t *env, unsigned flags)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">AXIS2_EXTERN axis2_char_t* axutil_uri_to_string           </td>
          <td>(</td>
          <td class="paramtype">const axutil_uri_t *&nbsp;</td>
          <td class="paramname"> <em>uri</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const <a class="el" href="structaxutil__env.html">axutil_env_t</a> *&nbsp;</td>
          <td class="paramname"> <em>env</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">unsigned&nbsp;</td>
          <td class="paramname"> <em>flags</em></td><td>&nbsp;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td><td width="100%"></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
Unparse a axutil_uri_t structure to an URI string. Optionally suppress the password for security reasons. <dl compact><dt><b>Parameters:</b></dt><dd>
  <table border="0" cellspacing="2" cellpadding="0">
    <tr><td valign="top"></td><td valign="top"><em>uptr</em>&nbsp;</td><td>All of the parts of the uri </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>flags</em>&nbsp;</td><td>How to unparse the uri. One of: <pre>
    AXIS2_URI_UNP_OMITSITEPART        Suppress "scheme://user\@site:port" 
    AXIS2_URI_UNP_OMITUSER            Just omit user 
    AXIS2_URI_UNP_OMITPASSWORD        Just omit password 
    AXIS2_URI_UNP_OMITUSERINFO        Omit "user:password\@" part
    AXIS2_URI_UNP_REVEALPASSWORD      Show plain text password (default: show XXXXXXXX)
    AXIS2_URI_UNP_OMITPATHINFO        Show "scheme://user\@site:port" only 
    AXIS2_URI_UNP_OMITQUERY           Omit "?queryarg" or "#fragment" 
 </pre> </td></tr>
  </table>
</dl>
<dl class="return" compact><dt><b>Returns:</b></dt><dd>The uri as a string </dd></dl>

</div>
</div><p>
<hr size="1"><address style="text-align: right;"><small>Generated on Fri Apr 17 11:49:46 2009 for Axis2/C by&nbsp;
<a href="http://www.doxygen.org/index.html">
<img src="doxygen.png" alt="doxygen" align="middle" border="0"></a> 1.5.3 </small></address>
</body>
</html>


<|start_filename|>xdocs/api/html/axutil__array__list_8h-source.html<|end_filename|>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html><head><meta http-equiv="Content-Type" content="text/html;charset=UTF-8">
<title>Axis2/C: axutil_array_list.h Source File</title>
<link href="doxygen.css" rel="stylesheet" type="text/css">
<link href="tabs.css" rel="stylesheet" type="text/css">
</head><body>
<!-- Generated by Doxygen 1.5.3 -->
<div class="tabs">
  <ul>
    <li><a href="index.html"><span>Main&nbsp;Page</span></a></li>
    <li><a href="modules.html"><span>Modules</span></a></li>
    <li><a href="annotated.html"><span>Classes</span></a></li>
    <li class="current"><a href="files.html"><span>Files</span></a></li>
    <li><a href="dirs.html"><span>Directories</span></a></li>
    <li><a href="pages.html"><span>Related&nbsp;Pages</span></a></li>
    <li><a href="examples.html"><span>Examples</span></a></li>
    <li>
      <form action="search.php" method="get">
        <table cellspacing="0" cellpadding="0" border="0">
          <tr>
            <td><label>&nbsp;<u>S</u>earch&nbsp;for&nbsp;</label></td>
            <td><input type="text" name="query" value="" size="20" accesskey="s"/></td>
          </tr>
        </table>
      </form>
    </li>
  </ul>
</div>
<div class="nav">
<a class="el" href="dir_f60961de8e5edc3b2658ef023e959e45.html">deploy</a>&nbsp;&raquo&nbsp;<a class="el" href="dir_6b4e91e54b7316b376882a6402adbf44.html">include</a>&nbsp;&raquo&nbsp;<a class="el" href="dir_df3a7695d5a9e696f30b948b566829e7.html">axis2-1.6.0</a></div>
<h1>axutil_array_list.h</h1><a href="axutil__array__list_8h.html">Go to the documentation of this file.</a><div class="fragment"><pre class="fragment"><a name="l00001"></a>00001 
<a name="l00002"></a>00002 <span class="comment">/*</span>
<a name="l00003"></a>00003 <span class="comment"> * Licensed to the Apache Software Foundation (ASF) under one or more</span>
<a name="l00004"></a>00004 <span class="comment"> * contributor license agreements.  See the NOTICE file distributed with</span>
<a name="l00005"></a>00005 <span class="comment"> * this work for additional information regarding copyright ownership.</span>
<a name="l00006"></a>00006 <span class="comment"> * The ASF licenses this file to You under the Apache License, Version 2.0</span>
<a name="l00007"></a>00007 <span class="comment"> * (the "License"); you may not use this file except in compliance with</span>
<a name="l00008"></a>00008 <span class="comment"> * the License.  You may obtain a copy of the License at</span>
<a name="l00009"></a>00009 <span class="comment"> *</span>
<a name="l00010"></a>00010 <span class="comment"> *      http://www.apache.org/licenses/LICENSE-2.0</span>
<a name="l00011"></a>00011 <span class="comment"> *</span>
<a name="l00012"></a>00012 <span class="comment"> * Unless required by applicable law or agreed to in writing, software</span>
<a name="l00013"></a>00013 <span class="comment"> * distributed under the License is distributed on an "AS IS" BASIS,</span>
<a name="l00014"></a>00014 <span class="comment"> * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.</span>
<a name="l00015"></a>00015 <span class="comment"> * See the License for the specific language governing permissions and</span>
<a name="l00016"></a>00016 <span class="comment"> * limitations under the License.</span>
<a name="l00017"></a>00017 <span class="comment"> */</span>
<a name="l00018"></a>00018 
<a name="l00019"></a>00019 <span class="preprocessor">#ifndef AXUTIL_ARRAY_LIST_H</span>
<a name="l00020"></a>00020 <span class="preprocessor"></span><span class="preprocessor">#define AXUTIL_ARRAY_LIST_H</span>
<a name="l00021"></a>00021 <span class="preprocessor"></span>
<a name="l00034"></a>00034 <span class="preprocessor">#include &lt;axutil_utils_defines.h&gt;</span>
<a name="l00035"></a>00035 <span class="preprocessor">#include &lt;<a class="code" href="axutil__env_8h.html" title="Axis2 environment that acts as a container for error, log and memory allocator routines...">axutil_env.h</a>&gt;</span>
<a name="l00036"></a>00036 
<a name="l00037"></a>00037 <span class="preprocessor">#ifdef __cplusplus</span>
<a name="l00038"></a>00038 <span class="preprocessor"></span><span class="keyword">extern</span> <span class="stringliteral">"C"</span>
<a name="l00039"></a>00039 {
<a name="l00040"></a>00040 <span class="preprocessor">#endif</span>
<a name="l00041"></a>00041 <span class="preprocessor"></span>
<a name="l00042"></a>00042     <span class="keyword">static</span> <span class="keyword">const</span> <span class="keywordtype">int</span> AXIS2_ARRAY_LIST_DEFAULT_CAPACITY = 16;
<a name="l00043"></a>00043 
<a name="l00047"></a><a class="code" href="group__axutil__array__list.html#g1a6a89777db876cfa0cc86787b7be6a0">00047</a>     <span class="keyword">typedef</span> <span class="keyword">struct </span>axutil_array_list <a class="code" href="group__axutil__array__list.html#g1a6a89777db876cfa0cc86787b7be6a0">axutil_array_list_t</a>;
<a name="l00048"></a>00048 
<a name="l00055"></a>00055     AXIS2_EXTERN <a class="code" href="group__axutil__array__list.html#g1a6a89777db876cfa0cc86787b7be6a0">axutil_array_list_t</a> *AXIS2_CALL
<a name="l00056"></a>00056     <a class="code" href="group__axutil__array__list.html#g97d190815f1d8ab2045c203ebd92919b">axutil_array_list_create</a>(
<a name="l00057"></a>00057         <span class="keyword">const</span> <a class="code" href="structaxutil__env.html" title="Axis2 Environment struct.">axutil_env_t</a> * env,
<a name="l00058"></a>00058         <span class="keywordtype">int</span> capacity);
<a name="l00059"></a>00059 
<a name="l00065"></a>00065     AXIS2_EXTERN <span class="keywordtype">void</span> AXIS2_CALL
<a name="l00066"></a>00066     <a class="code" href="group__axutil__array__list.html#gf649de5177ea73a4e2e39c38af79e62f">axutil_array_list_free_void_arg</a>(
<a name="l00067"></a>00067         <span class="keywordtype">void</span> *array_list,
<a name="l00068"></a>00068         <span class="keyword">const</span> <a class="code" href="structaxutil__env.html" title="Axis2 Environment struct.">axutil_env_t</a> * env);
<a name="l00069"></a>00069 
<a name="l00079"></a>00079     AXIS2_EXTERN axis2_status_t AXIS2_CALL
<a name="l00080"></a>00080     <a class="code" href="group__axutil__array__list.html#g07cd8d75ecc51f53224af4b6793dcde7">axutil_array_list_ensure_capacity</a>(
<a name="l00081"></a>00081         <span class="keyword">struct</span> axutil_array_list *array_list,
<a name="l00082"></a>00082         <span class="keyword">const</span> <a class="code" href="structaxutil__env.html" title="Axis2 Environment struct.">axutil_env_t</a> * env,
<a name="l00083"></a>00083         <span class="keywordtype">int</span> min_capacity);
<a name="l00084"></a>00084 
<a name="l00091"></a>00091     AXIS2_EXTERN <span class="keywordtype">int</span> AXIS2_CALL
<a name="l00092"></a>00092     <a class="code" href="group__axutil__array__list.html#g89efc3fe773e2655f1884121a97273f3">axutil_array_list_size</a>(
<a name="l00093"></a>00093         <span class="keyword">struct</span> axutil_array_list *array_list,
<a name="l00094"></a>00094         <span class="keyword">const</span> <a class="code" href="structaxutil__env.html" title="Axis2 Environment struct.">axutil_env_t</a> * env);
<a name="l00095"></a>00095 
<a name="l00102"></a>00102     AXIS2_EXTERN axis2_bool_t AXIS2_CALL
<a name="l00103"></a>00103     <a class="code" href="group__axutil__array__list.html#g3ed8b5b9d4a0a4e76e4c55d92a307a0d">axutil_array_list_is_empty</a>(
<a name="l00104"></a>00104         <span class="keyword">struct</span> axutil_array_list *array_list,
<a name="l00105"></a>00105         <span class="keyword">const</span> <a class="code" href="structaxutil__env.html" title="Axis2 Environment struct.">axutil_env_t</a> * env);
<a name="l00106"></a>00106 
<a name="l00114"></a>00114     AXIS2_EXTERN axis2_bool_t AXIS2_CALL
<a name="l00115"></a>00115     <a class="code" href="group__axutil__array__list.html#g7a0aa68c089a2905ed506213aba40578">axutil_array_list_contains</a>(
<a name="l00116"></a>00116         <span class="keyword">struct</span> axutil_array_list *array_list,
<a name="l00117"></a>00117         <span class="keyword">const</span> <a class="code" href="structaxutil__env.html" title="Axis2 Environment struct.">axutil_env_t</a> * env,
<a name="l00118"></a>00118         <span class="keywordtype">void</span> *e);
<a name="l00119"></a>00119 
<a name="l00129"></a>00129     AXIS2_EXTERN <span class="keywordtype">int</span> AXIS2_CALL
<a name="l00130"></a>00130     <a class="code" href="group__axutil__array__list.html#gb539c683dea5713f8388e131e686ad28">axutil_array_list_index_of</a>(
<a name="l00131"></a>00131         <span class="keyword">struct</span> axutil_array_list *array_list,
<a name="l00132"></a>00132         <span class="keyword">const</span> <a class="code" href="structaxutil__env.html" title="Axis2 Environment struct.">axutil_env_t</a> * env,
<a name="l00133"></a>00133         <span class="keywordtype">void</span> *e);
<a name="l00134"></a>00134 
<a name="l00142"></a>00142     AXIS2_EXTERN <span class="keywordtype">void</span> *AXIS2_CALL
<a name="l00143"></a>00143     <a class="code" href="group__axutil__array__list.html#gb6e54fa2917ddc0128e98a3bb0adcfad">axutil_array_list_get</a>(
<a name="l00144"></a>00144         <span class="keyword">struct</span> axutil_array_list *array_list,
<a name="l00145"></a>00145         <span class="keyword">const</span> <a class="code" href="structaxutil__env.html" title="Axis2 Environment struct.">axutil_env_t</a> * env,
<a name="l00146"></a>00146         <span class="keywordtype">int</span> index);
<a name="l00147"></a>00147 
<a name="l00157"></a>00157     AXIS2_EXTERN <span class="keywordtype">void</span> *AXIS2_CALL
<a name="l00158"></a>00158     <a class="code" href="group__axutil__array__list.html#g77177f8cd9a95ec0bedeec6906352395">axutil_array_list_set</a>(
<a name="l00159"></a>00159         <span class="keyword">struct</span> axutil_array_list *array_list,
<a name="l00160"></a>00160         <span class="keyword">const</span> <a class="code" href="structaxutil__env.html" title="Axis2 Environment struct.">axutil_env_t</a> * env,
<a name="l00161"></a>00161         <span class="keywordtype">int</span> index,
<a name="l00162"></a>00162         <span class="keywordtype">void</span> *e);
<a name="l00163"></a>00163 
<a name="l00172"></a>00172     AXIS2_EXTERN axis2_status_t AXIS2_CALL
<a name="l00173"></a>00173     <a class="code" href="group__axutil__array__list.html#g507c7dbb9fe09bbca571739e64ff9835">axutil_array_list_add</a>(
<a name="l00174"></a>00174         <span class="keyword">struct</span> axutil_array_list *array_list,
<a name="l00175"></a>00175         <span class="keyword">const</span> <a class="code" href="structaxutil__env.html" title="Axis2 Environment struct.">axutil_env_t</a> * env,
<a name="l00176"></a>00176         <span class="keyword">const</span> <span class="keywordtype">void</span> *e);
<a name="l00177"></a>00177 
<a name="l00188"></a>00188     AXIS2_EXTERN axis2_status_t AXIS2_CALL
<a name="l00189"></a>00189     <a class="code" href="group__axutil__array__list.html#g6c5f7a93a8d3e7e8ed2eebadd05a59f6">axutil_array_list_add_at</a>(
<a name="l00190"></a>00190         <span class="keyword">struct</span> axutil_array_list *array_list,
<a name="l00191"></a>00191         <span class="keyword">const</span> <a class="code" href="structaxutil__env.html" title="Axis2 Environment struct.">axutil_env_t</a> * env,
<a name="l00192"></a>00192         <span class="keyword">const</span> <span class="keywordtype">int</span> index,
<a name="l00193"></a>00193         <span class="keyword">const</span> <span class="keywordtype">void</span> *e);
<a name="l00194"></a>00194 
<a name="l00202"></a>00202     AXIS2_EXTERN <span class="keywordtype">void</span> *AXIS2_CALL
<a name="l00203"></a>00203     <a class="code" href="group__axutil__array__list.html#g2aefd638d987a77684c95d3d49250c9a">axutil_array_list_remove</a>(
<a name="l00204"></a>00204         <span class="keyword">struct</span> axutil_array_list *array_list,
<a name="l00205"></a>00205         <span class="keyword">const</span> <a class="code" href="structaxutil__env.html" title="Axis2 Environment struct.">axutil_env_t</a> * env,
<a name="l00206"></a>00206         <span class="keywordtype">int</span> index);
<a name="l00207"></a>00207 
<a name="l00215"></a>00215     AXIS2_EXTERN axis2_bool_t AXIS2_CALL
<a name="l00216"></a>00216 
<a name="l00217"></a>00217     <a class="code" href="group__axutil__array__list.html#g7e79d235403a8cc6cf5dcf93e8c79dc1">axutil_array_list_check_bound_inclusive</a>(
<a name="l00218"></a>00218         <span class="keyword">struct</span> axutil_array_list *array_list,
<a name="l00219"></a>00219         <span class="keyword">const</span> <a class="code" href="structaxutil__env.html" title="Axis2 Environment struct.">axutil_env_t</a> * env,
<a name="l00220"></a>00220         <span class="keywordtype">int</span> index);
<a name="l00221"></a>00221 
<a name="l00229"></a>00229     AXIS2_EXTERN axis2_bool_t AXIS2_CALL
<a name="l00230"></a>00230 
<a name="l00231"></a>00231     <a class="code" href="group__axutil__array__list.html#gdcfecde9d78409f5ff53607d756e3c45">axutil_array_list_check_bound_exclusive</a>(
<a name="l00232"></a>00232         <span class="keyword">struct</span> axutil_array_list *array_list,
<a name="l00233"></a>00233         <span class="keyword">const</span> <a class="code" href="structaxutil__env.html" title="Axis2 Environment struct.">axutil_env_t</a> * env,
<a name="l00234"></a>00234         <span class="keywordtype">int</span> index);
<a name="l00235"></a>00235 
<a name="l00241"></a>00241     AXIS2_EXTERN <span class="keywordtype">void</span> AXIS2_CALL
<a name="l00242"></a>00242     <a class="code" href="group__axutil__array__list.html#g549e9d4e6c502650ea76d0134551130e">axutil_array_list_free</a>(
<a name="l00243"></a>00243         <span class="keyword">struct</span> axutil_array_list *array_list,
<a name="l00244"></a>00244         <span class="keyword">const</span> <a class="code" href="structaxutil__env.html" title="Axis2 Environment struct.">axutil_env_t</a> * env);
<a name="l00245"></a>00245 
<a name="l00246"></a>00246 <span class="preprocessor">#ifdef __cplusplus</span>
<a name="l00247"></a>00247 <span class="preprocessor"></span>}
<a name="l00248"></a>00248 <span class="preprocessor">#endif</span>
<a name="l00249"></a>00249 <span class="preprocessor"></span>
<a name="l00250"></a>00250 <span class="preprocessor">#endif                          </span><span class="comment">/* AXIS2_ARRAY_LIST_H */</span>
</pre></div><hr size="1"><address style="text-align: right;"><small>Generated on Fri Apr 17 11:49:42 2009 for Axis2/C by&nbsp;
<a href="http://www.doxygen.org/index.html">
<img src="doxygen.png" alt="doxygen" align="middle" border="0"></a> 1.5.3 </small></address>
</body>
</html>


<|start_filename|>src/core/transport/http/receiver/http_svr_thread.c<|end_filename|>

/*
 * 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.
 */

#include <platforms/axutil_platform_auto_sense.h>
#include <axis2_http_svr_thread.h>
#include <axis2_http_server.h>
#include <axis2_http_transport.h>
#include <axutil_string.h>
#include <axutil_network_handler.h>
#include <axis2_http_simple_request.h>
#include <axis2_simple_http_svr_conn.h>
#include <axutil_url.h>
#include <axutil_error_default.h>
#include <axiom_xml_reader.h>
#include <signal.h>

AXIS2_EXPORT int axis2_http_socket_read_timeout = AXIS2_HTTP_DEFAULT_SO_TIMEOUT;

struct axis2_http_svr_thread
{
    int listen_socket;
    axis2_bool_t stopped;
    axis2_http_worker_t *worker;
    int port;
};

typedef struct axis2_http_svr_thd_args
{
    axutil_env_t *env;
    axis2_socket_t socket;
    axis2_http_worker_t *worker;
    axutil_thread_t *thread;
} axis2_http_svr_thd_args_t;

AXIS2_EXTERN const axutil_env_t *AXIS2_CALL init_thread_env(
    const axutil_env_t ** system_env);

void *AXIS2_THREAD_FUNC axis2_svr_thread_worker_func(
    axutil_thread_t * thd,
    void *data);

axis2_http_svr_thread_t *AXIS2_CALL
axis2_http_svr_thread_create(
    const axutil_env_t * env,
    int port)
{
    axis2_http_svr_thread_t *svr_thread = NULL;

    svr_thread = (axis2_http_svr_thread_t *) AXIS2_MALLOC
        (env->allocator, sizeof(axis2_http_svr_thread_t));

    if (!svr_thread)
    {
        AXIS2_HANDLE_ERROR(env, AXIS2_ERROR_NO_MEMORY, AXIS2_FAILURE);
        return NULL;
    }

    memset ((void *)svr_thread, 0, sizeof (axis2_http_svr_thread_t));
    svr_thread->worker = NULL;
    svr_thread->stopped = AXIS2_FALSE;
    svr_thread->port = port;

    svr_thread->listen_socket = (int)
        axutil_network_handler_create_server_socket (env, svr_thread->port);
    if (-1 == svr_thread->listen_socket)
    {
        axis2_http_svr_thread_free((axis2_http_svr_thread_t *) svr_thread, env);
        return NULL;
    }

    return svr_thread;
}

void AXIS2_CALL
axis2_http_svr_thread_free(
    axis2_http_svr_thread_t * svr_thread,
    const axutil_env_t * env)
{

    if (!svr_thread)
    {
        return;
    }

    if (svr_thread->worker)
    {
        axis2_http_worker_free(svr_thread->worker, env);
        svr_thread->worker = NULL;
    }
    if (-1 != svr_thread->listen_socket)
    {
        axutil_network_handler_close_socket(env, svr_thread->listen_socket);
        svr_thread->listen_socket = -1;
    }
    svr_thread->stopped = AXIS2_TRUE;

    AXIS2_FREE(env->allocator, svr_thread);
    return;
}

axis2_status_t AXIS2_CALL
axis2_http_svr_thread_run(
    axis2_http_svr_thread_t * svr_thread,
    const axutil_env_t * env)
{

    while (AXIS2_FALSE == svr_thread->stopped)
    {
        int socket = -1;
        axis2_http_svr_thd_args_t *arg_list = NULL;
        axutil_thread_t *worker_thread = NULL;

        socket = (int)axutil_network_handler_svr_socket_accept(env,
                                                          svr_thread->
                                                          listen_socket);
        if (!svr_thread->worker)
        {
            AXIS2_LOG_WARNING(env->log, AXIS2_LOG_SI, "Worker not ready yet."
                              " Cannot serve the request");
            axutil_network_handler_close_socket(env, socket);
            continue;
        }

        arg_list = AXIS2_MALLOC(env->allocator,
                                sizeof(axis2_http_svr_thd_args_t));
        if (!arg_list)
        {
            AXIS2_LOG_ERROR(env->log, AXIS2_LOG_SI,
                            "Memory allocation error in the svr thread loop");
            continue;
        }
        arg_list->env = (axutil_env_t *) env;
        arg_list->socket = socket;
        arg_list->worker = svr_thread->worker;
#ifdef AXIS2_SVR_MULTI_THREADED
        worker_thread = axutil_thread_pool_get_thread(env->thread_pool,
                                                      axis2_svr_thread_worker_func,
                                                      (void *) arg_list);
        if (!worker_thread)
        {
            AXIS2_LOG_ERROR(env->log, AXIS2_LOG_SI, "Thread creation failed"
                            "server thread loop");
            continue;
        }
        axutil_thread_pool_thread_detach(env->thread_pool, worker_thread);
#else
        axis2_svr_thread_worker_func(NULL, (void *) arg_list);
#endif
    }
    return AXIS2_SUCCESS;
}


axis2_status_t AXIS2_CALL
axis2_http_svr_thread_destroy(
    axis2_http_svr_thread_t * svr_thread,
    const axutil_env_t * env)
{

    if (AXIS2_TRUE == svr_thread->stopped)
    {
        return AXIS2_SUCCESS;
    }
 
    svr_thread->stopped = AXIS2_TRUE;
    AXIS2_LOG_DEBUG(env->log, AXIS2_LOG_SI, "Terminating HTTP server "
                    "thread.");
    if (svr_thread->listen_socket)
    {
        axutil_network_handler_close_socket(env, svr_thread->listen_socket);
        svr_thread->listen_socket = -1;
    }
    return AXIS2_SUCCESS;
}

int AXIS2_CALL
axis2_http_svr_thread_get_local_port(
    const axis2_http_svr_thread_t * svr_thread,
    const axutil_env_t * env)
{
    return svr_thread->port;
}

axis2_bool_t AXIS2_CALL
axis2_http_svr_thread_is_running(
    axis2_http_svr_thread_t * svr_thread,
    const axutil_env_t * env)
{
    return !(svr_thread->stopped);
}

axis2_status_t AXIS2_CALL
axis2_http_svr_thread_set_worker(
    axis2_http_svr_thread_t * svr_thread,
    const axutil_env_t * env,
    axis2_http_worker_t * worker)
{
    AXIS2_PARAM_CHECK(env->error, worker, AXIS2_FAILURE);
    svr_thread->worker = worker;
    return AXIS2_SUCCESS;
}

/**
 * Thread worker function.
 */
void *AXIS2_THREAD_FUNC
axis2_svr_thread_worker_func(
    axutil_thread_t * thd,
    void *data)
{
    struct AXIS2_PLATFORM_TIMEB t1,
     t2;
    axis2_simple_http_svr_conn_t *svr_conn = NULL;
    axis2_http_simple_request_t *request = NULL;
    int millisecs = 0;
    double secs = 0;
    axis2_http_worker_t *tmp = NULL;
    axis2_status_t status = AXIS2_FAILURE;
    axutil_env_t *env = NULL;
    axis2_socket_t socket;
    axutil_env_t *thread_env = NULL;
    axis2_http_svr_thd_args_t *arg_list = NULL;

#ifndef WIN32
#ifdef AXIS2_SVR_MULTI_THREADED
    signal(SIGPIPE, SIG_IGN);
#endif
#endif

    arg_list = (axis2_http_svr_thd_args_t *) data;
    if (!arg_list)
    {
        return NULL;
    }
    AXIS2_PLATFORM_GET_TIME_IN_MILLIS(&t1);
    env = arg_list->env;
    thread_env = axutil_init_thread_env(env);
    socket = arg_list->socket;
    svr_conn = axis2_simple_http_svr_conn_create(thread_env, (int)socket);
    axis2_simple_http_svr_conn_set_rcv_timeout(svr_conn, thread_env,
                                               axis2_http_socket_read_timeout);
    request = axis2_simple_http_svr_conn_read_request(svr_conn, thread_env);
    tmp = arg_list->worker;
    status = axis2_http_worker_process_request(tmp, thread_env, svr_conn,
                                               request);
    axis2_simple_http_svr_conn_free(svr_conn, thread_env);
    if (request)
        axis2_http_simple_request_free(request, thread_env);
    AXIS2_PLATFORM_GET_TIME_IN_MILLIS(&t2);
    millisecs = t2.millitm - t1.millitm;
    secs = difftime(t2.time, t1.time);
    if (millisecs < 0)
    {
        millisecs += 1000;
        secs--;
    }
    secs += millisecs / 1000.0;

    if (status == AXIS2_SUCCESS)
    {
#if defined(WIN32)
        AXIS2_LOG_INFO(thread_env->log, "Request served successfully");
#else
        AXIS2_LOG_INFO(thread_env->log, "Request served in %.3f seconds", secs);
#endif
    }
    else
    {
#if defined(WIN32)
        AXIS2_LOG_WARNING(thread_env->log, AXIS2_LOG_SI,
                          "Error occured in processing request ");
#else
        AXIS2_LOG_WARNING(thread_env->log, AXIS2_LOG_SI,
                          "Error occured in processing request (%.3f seconds)",
                          secs);
#endif
    }

    AXIS2_FREE(thread_env->allocator, arg_list);

    if (thread_env)
    {
        axutil_free_thread_env(thread_env);
        thread_env = NULL;
    }

#ifdef AXIS2_SVR_MULTI_THREADED
    axutil_thread_pool_exit_thread(env->thread_pool, thd);
#endif

    return NULL;
}




<|start_filename|>xdocs/api/html/structaxis2__module__ops.html<|end_filename|>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html><head><meta http-equiv="Content-Type" content="text/html;charset=UTF-8">
<title>Axis2/C: axis2_module_ops Struct Reference</title>
<link href="doxygen.css" rel="stylesheet" type="text/css">
<link href="tabs.css" rel="stylesheet" type="text/css">
</head><body>
<!-- Generated by Doxygen 1.5.3 -->
<div class="tabs">
  <ul>
    <li><a href="index.html"><span>Main&nbsp;Page</span></a></li>
    <li><a href="modules.html"><span>Modules</span></a></li>
    <li class="current"><a href="annotated.html"><span>Classes</span></a></li>
    <li><a href="files.html"><span>Files</span></a></li>
    <li><a href="dirs.html"><span>Directories</span></a></li>
    <li><a href="pages.html"><span>Related&nbsp;Pages</span></a></li>
    <li><a href="examples.html"><span>Examples</span></a></li>
    <li>
      <form action="search.php" method="get">
        <table cellspacing="0" cellpadding="0" border="0">
          <tr>
            <td><label>&nbsp;<u>S</u>earch&nbsp;for&nbsp;</label></td>
            <td><input type="text" name="query" value="" size="20" accesskey="s"/></td>
          </tr>
        </table>
      </form>
    </li>
  </ul>
</div>
<div class="tabs">
  <ul>
    <li><a href="annotated.html"><span>Class&nbsp;List</span></a></li>
    <li><a href="functions.html"><span>Class&nbsp;Members</span></a></li>
  </ul>
</div>
<h1>axis2_module_ops Struct Reference<br>
<small>
[<a class="el" href="group__axis2__module.html">module</a>]</small>
</h1><!-- doxytag: class="axis2_module_ops" --><code>#include &lt;<a class="el" href="axis2__module_8h-source.html">axis2_module.h</a>&gt;</code>
<p>

<p>
<a href="structaxis2__module__ops-members.html">List of all members.</a><table border="0" cellpadding="0" cellspacing="0">
<tr><td></td></tr>
<tr><td colspan="2"><br><h2>Public Attributes</h2></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top">axis2_status_t(*&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="structaxis2__module__ops.html#38448a11b9ccf9d0f9c53102fa12423e">init</a> )(<a class="el" href="structaxis2__module.html">axis2_module_t</a> *module, const <a class="el" href="structaxutil__env.html">axutil_env_t</a> *env, struct axis2_conf_ctx *conf_ctx, <a class="el" href="group__axis2__module__desc.html#g2d21719bf20fcf0dbd25ea4093e28acf">axis2_module_desc_t</a> *module_desc)</td></tr>

<tr><td class="memItemLeft" nowrap align="right" valign="top">axis2_status_t(*&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="structaxis2__module__ops.html#30119dd5c051394e42cb2f7b5fbd8bbd">shutdown</a> )(<a class="el" href="structaxis2__module.html">axis2_module_t</a> *module, const <a class="el" href="structaxutil__env.html">axutil_env_t</a> *env)</td></tr>

<tr><td class="memItemLeft" nowrap align="right" valign="top">axis2_status_t(*&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="structaxis2__module__ops.html#f2b6df61735d015d43b1f4956ae48817">fill_handler_create_func_map</a> )(<a class="el" href="structaxis2__module.html">axis2_module_t</a> *module, const <a class="el" href="structaxutil__env.html">axutil_env_t</a> *env)</td></tr>

</table>
<hr><a name="_details"></a><h2>Detailed Description</h2>
Struct containing operations available on a module. <br>
 1. init <br>
 2. shutdown <br>
 3. fill_handler_create_func_map <br>
 are the three operations presently available. <hr><h2>Member Data Documentation</h2>
<a class="anchor" name="38448a11b9ccf9d0f9c53102fa12423e"></a><!-- doxytag: member="axis2_module_ops::init" ref="38448a11b9ccf9d0f9c53102fa12423e" args=")(axis2_module_t *module, const axutil_env_t *env, struct axis2_conf_ctx *conf_ctx, axis2_module_desc_t *module_desc)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">axis2_status_t( *  <a class="el" href="structaxis2__module__ops.html#38448a11b9ccf9d0f9c53102fa12423e">axis2_module_ops::init</a>)(<a class="el" href="structaxis2__module.html">axis2_module_t</a> *module, const <a class="el" href="structaxutil__env.html">axutil_env_t</a> *env, struct axis2_conf_ctx *conf_ctx, <a class="el" href="group__axis2__module__desc.html#g2d21719bf20fcf0dbd25ea4093e28acf">axis2_module_desc_t</a> *module_desc)          </td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
Initializes module. <dl compact><dt><b>Parameters:</b></dt><dd>
  <table border="0" cellspacing="2" cellpadding="0">
    <tr><td valign="top"></td><td valign="top"><em>module</em>&nbsp;</td><td>pointer to module struct </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>env</em>&nbsp;</td><td>pointer to environment struct </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>conf_ctx</em>&nbsp;</td><td>pointer to configuration context </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>module_desc</em>&nbsp;</td><td>module description </td></tr>
  </table>
</dl>
<dl class="return" compact><dt><b>Returns:</b></dt><dd>AXIS2_SUCCESS on success, else AXIS2_FAILURE </dd></dl>

</div>
</div><p>
<a class="anchor" name="30119dd5c051394e42cb2f7b5fbd8bbd"></a><!-- doxytag: member="axis2_module_ops::shutdown" ref="30119dd5c051394e42cb2f7b5fbd8bbd" args=")(axis2_module_t *module, const axutil_env_t *env)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">axis2_status_t( *  <a class="el" href="structaxis2__module__ops.html#30119dd5c051394e42cb2f7b5fbd8bbd">axis2_module_ops::shutdown</a>)(<a class="el" href="structaxis2__module.html">axis2_module_t</a> *module, const <a class="el" href="structaxutil__env.html">axutil_env_t</a> *env)          </td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
Shutdowns module. <dl compact><dt><b>Parameters:</b></dt><dd>
  <table border="0" cellspacing="2" cellpadding="0">
    <tr><td valign="top"></td><td valign="top"><em>module</em>&nbsp;</td><td>pointer to module struct </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>env</em>&nbsp;</td><td>pointer to environment struct </td></tr>
  </table>
</dl>
<dl class="return" compact><dt><b>Returns:</b></dt><dd>AXIS2_SUCCESS on success, else AXIS2_FAILURE </dd></dl>

</div>
</div><p>
<a class="anchor" name="f2b6df61735d015d43b1f4956ae48817"></a><!-- doxytag: member="axis2_module_ops::fill_handler_create_func_map" ref="f2b6df61735d015d43b1f4956ae48817" args=")(axis2_module_t *module, const axutil_env_t *env)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">axis2_status_t( *  <a class="el" href="structaxis2__module__ops.html#f2b6df61735d015d43b1f4956ae48817">axis2_module_ops::fill_handler_create_func_map</a>)(<a class="el" href="structaxis2__module.html">axis2_module_t</a> *module, const <a class="el" href="structaxutil__env.html">axutil_env_t</a> *env)          </td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
Fills the hash map of handler create functions for the module. <dl compact><dt><b>Parameters:</b></dt><dd>
  <table border="0" cellspacing="2" cellpadding="0">
    <tr><td valign="top"></td><td valign="top"><em>module</em>&nbsp;</td><td>pointer to module struct </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>env</em>&nbsp;</td><td>pointer to environment struct </td></tr>
  </table>
</dl>
<dl class="return" compact><dt><b>Returns:</b></dt><dd>AXIS2_SUCCESS on success, else AXIS2_FAILURE </dd></dl>

</div>
</div><p>
<hr>The documentation for this struct was generated from the following file:<ul>
<li><a class="el" href="axis2__module_8h-source.html">axis2_module.h</a></ul>
<hr size="1"><address style="text-align: right;"><small>Generated on Fri Apr 17 11:49:48 2009 for Axis2/C by&nbsp;
<a href="http://www.doxygen.org/index.html">
<img src="doxygen.png" alt="doxygen" align="middle" border="0"></a> 1.5.3 </small></address>
</body>
</html>


<|start_filename|>xdocs/api/html/group__caching__callback.html<|end_filename|>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html><head><meta http-equiv="Content-Type" content="text/html;charset=UTF-8">
<title>Axis2/C: Caching_callback</title>
<link href="doxygen.css" rel="stylesheet" type="text/css">
<link href="tabs.css" rel="stylesheet" type="text/css">
</head><body>
<!-- Generated by Doxygen 1.5.3 -->
<div class="tabs">
  <ul>
    <li><a href="index.html"><span>Main&nbsp;Page</span></a></li>
    <li><a href="modules.html"><span>Modules</span></a></li>
    <li><a href="annotated.html"><span>Classes</span></a></li>
    <li><a href="files.html"><span>Files</span></a></li>
    <li><a href="dirs.html"><span>Directories</span></a></li>
    <li><a href="pages.html"><span>Related&nbsp;Pages</span></a></li>
    <li><a href="examples.html"><span>Examples</span></a></li>
    <li>
      <form action="search.php" method="get">
        <table cellspacing="0" cellpadding="0" border="0">
          <tr>
            <td><label>&nbsp;<u>S</u>earch&nbsp;for&nbsp;</label></td>
            <td><input type="text" name="query" value="" size="20" accesskey="s"/></td>
          </tr>
        </table>
      </form>
    </li>
  </ul>
</div>
<h1>Caching_callback<br>
<small>
[<a class="el" href="group__axiom.html">AXIOM project</a>]</small>
</h1><table border="0" cellpadding="0" cellspacing="0">
<tr><td></td></tr>
<tr><td colspan="2"><br><h2>Classes</h2></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top">struct &nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="structaxiom__mtom__caching__callback__ops.html">axiom_mtom_caching_callback_ops</a></td></tr>

<tr><td class="memItemLeft" nowrap align="right" valign="top">struct &nbsp;</td><td class="memItemRight" valign="bottom"><b>axiom_mtom_caching_callback</b></td></tr>

<tr><td colspan="2"><br><h2>Defines</h2></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="g6eeff81d72ec0c2208fdc32540dd19b9"></a><!-- doxytag: member="caching_callback::AXIOM_MTOM_CACHING_CALLBACK_INIT_HANDLER" ref="g6eeff81d72ec0c2208fdc32540dd19b9" args="(mtom_caching_callback, env, key)" -->
#define&nbsp;</td><td class="memItemRight" valign="bottom"><b>AXIOM_MTOM_CACHING_CALLBACK_INIT_HANDLER</b>(mtom_caching_callback, env, key)&nbsp;&nbsp;&nbsp;((mtom_caching_callback)-&gt;ops-&gt;init_handler(mtom_caching_callback, env, key))</td></tr>

<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="g89eb1e761dd12f88a343f828ab8baaee"></a><!-- doxytag: member="caching_callback::AXIOM_MTOM_CACHING_CALLBACK_CACHE" ref="g89eb1e761dd12f88a343f828ab8baaee" args="(mtom_caching_callback, env, data, length, handler)" -->
#define&nbsp;</td><td class="memItemRight" valign="bottom"><b>AXIOM_MTOM_CACHING_CALLBACK_CACHE</b>(mtom_caching_callback, env, data, length, handler)&nbsp;&nbsp;&nbsp;((mtom_caching_callback)-&gt;ops-&gt;cache(mtom_caching_callback, env, data, length, handler))</td></tr>

<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="gc0c1bb0642a7057a3c464541d1402df7"></a><!-- doxytag: member="caching_callback::AXIOM_MTOM_CACHING_CALLBACK_CLOSE_HANDLER" ref="gc0c1bb0642a7057a3c464541d1402df7" args="(mtom_caching_callback, env, handler)" -->
#define&nbsp;</td><td class="memItemRight" valign="bottom"><b>AXIOM_MTOM_CACHING_CALLBACK_CLOSE_HANDLER</b>(mtom_caching_callback, env, handler)&nbsp;&nbsp;&nbsp;((mtom_caching_callback)-&gt;ops-&gt;close_handler(mtom_caching_callback, env, handler))</td></tr>

<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="g6ead0dc1c7cc3a6be1efb122d74e003d"></a><!-- doxytag: member="caching_callback::AXIOM_MTOM_CACHING_CALLBACK_FREE" ref="g6ead0dc1c7cc3a6be1efb122d74e003d" args="(mtom_caching_callback, env)" -->
#define&nbsp;</td><td class="memItemRight" valign="bottom"><b>AXIOM_MTOM_CACHING_CALLBACK_FREE</b>(mtom_caching_callback, env)&nbsp;&nbsp;&nbsp;((mtom_caching_callback)-&gt;ops-&gt;free(mtom_caching_callback, env))</td></tr>

<tr><td colspan="2"><br><h2>Typedefs</h2></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top">typedef struct <br>
<a class="el" href="structaxiom__mtom__caching__callback__ops.html">axiom_mtom_caching_callback_ops</a>&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__caching__callback.html#gdba5b402b3a5bf007882d7f5e569435a">axiom_mtom_caching_callback_ops_t</a></td></tr>

<tr><td class="memItemLeft" nowrap align="right" valign="top">typedef struct <br>
axiom_mtom_caching_callback&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__caching__callback.html#g118942e9e22791ec1c8217d68de51f11">axiom_mtom_caching_callback_t</a></td></tr>

</table>
<hr><h2>Typedef Documentation</h2>
<a class="anchor" name="gdba5b402b3a5bf007882d7f5e569435a"></a><!-- doxytag: member="axiom_mtom_caching_callback.h::axiom_mtom_caching_callback_ops_t" ref="gdba5b402b3a5bf007882d7f5e569435a" args="" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">typedef struct <a class="el" href="structaxiom__mtom__caching__callback__ops.html">axiom_mtom_caching_callback_ops</a> <a class="el" href="structaxiom__mtom__caching__callback__ops.html">axiom_mtom_caching_callback_ops_t</a>          </td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
Type name for struct <a class="el" href="structaxiom__mtom__caching__callback__ops.html">axiom_mtom_caching_callback_ops</a> 
</div>
</div><p>
<a class="anchor" name="g118942e9e22791ec1c8217d68de51f11"></a><!-- doxytag: member="axiom_mtom_caching_callback.h::axiom_mtom_caching_callback_t" ref="g118942e9e22791ec1c8217d68de51f11" args="" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">typedef struct axiom_mtom_caching_callback <a class="el" href="group__caching__callback.html#g118942e9e22791ec1c8217d68de51f11">axiom_mtom_caching_callback_t</a>          </td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
Type name for struct axiom_mtom_caching_callback 
</div>
</div><p>
<hr size="1"><address style="text-align: right;"><small>Generated on Fri Apr 17 11:49:44 2009 for Axis2/C by&nbsp;
<a href="http://www.doxygen.org/index.html">
<img src="doxygen.png" alt="doxygen" align="middle" border="0"></a> 1.5.3 </small></address>
</body>
</html>


<|start_filename|>guththila/src/guththila_utf8.c<|end_filename|>

/*
 * 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.
 */  
#include <stddef.h>
#include <stdlib.h>
#include <string.h>
#include <guththila_utf8.h>

/**
 * There are 4 separate valid ranges of code points, based on the number of
 * bytes each takes to be encoded.
 *
 *       Code Point
 *      Decimal    Hex          Binary
 *                 UTF-8 Encoding
 *
 * 1 Byte Encoding:
 * From         0  0x00000000   0000 0000  0000 0000  0000 0000
 *                 0
 *                 0x00
 *                 0000 0000
 *
 * To         127  0x0000007f   0000 0000  0000 0000  0111 1111
 *                 127
 *                 0x7f
 *                 0111 1111
 *
 *
 * 2 Byte Encoding:
 * From       128  0x00000080   0000 0000  0000 0000  1000 0000
 *                 194        128
 *                 0xc2       0x80
 *                 1100 0010  1000 0000
 *
 * To       2,047  0x000007ff   0000 0000  0000 0111  1111 1111
 *                 223        191
 *                 0xdf       0xbf
 *                 1101 1111  1011 1111
 *
 *
 * 3 Byte Encoding:
 * From     2,048  0x00000800   0000 0000  0000 1000  0000 0000
 *                 224        160        128
 *                 0xe0       0xa0       0x80
 *                 1110 0000  1010 0000  1000 0000
 *
 * To      65,535  0x0000ffff   0000 0000  1111 1111  1111 1111
 *                 239        191        191
 *                 0xef       0xbf       0xbf
 *                 1110 1111  1011 1111  1011 1111
 *
 *
 * 4 Byte Encoding:
 * From    65,536  0x00010000   0000 0001  0000 0000  0000 0000
 *                 240        144        128        128
 *                 0xf0       0x90       0x80       0x80
 *                 1111 0000  1001 0000  1000 0000  1000 0000
 *
 * To   1,114,111  0x0010ffff   0001 0000  1111 1111  1111 1111
 *                 244        143        191        191
 *                 0xf4       0x8f       0xbf       0xbf
 *                 1111 0100  1000 1111  1011 1111  1011 1111
 */

GUTHTHILA_EXPORT guththila_utf8_decoder_t * GUTHTHILA_CALL
guththila_utf8_decoder_create(const axutil_env_t * env)
{
    guththila_utf8_decoder_t * decoder =
        (guththila_utf8_decoder_t *) AXIS2_MALLOC(env->allocator,
                                            sizeof(guththila_utf8_decoder_t));
    if (decoder)
    {
        decoder->remaining_bytes = 0;
        decoder->used_bytes = 0;
        decoder->error_bytes = 0;
        decoder->used_buffer[0] = '\0';
        decoder->error_buffer[0] = '\0';
        decoder->code_point = 0;
        decoder->replacement_code_point = '?';
    }
    return decoder;
}

GUTHTHILA_EXPORT void GUTHTHILA_CALL 
guththila_utf8_decoder_free(
    guththila_utf8_decoder_t * decoder,
    const axutil_env_t * env) 
{
    AXIS2_FREE(env->allocator, decoder);
}

GUTHTHILA_EXPORT void GUTHTHILA_CALL 
guththila_utf8_decoder_clear(
    guththila_utf8_decoder_t * decoder,
    const axutil_env_t * env) 
{
    decoder->remaining_bytes = 0;
    decoder->used_bytes = 0;
    decoder->error_bytes = 0;
    decoder->used_buffer[0] = '\0';
    decoder->error_buffer[0] = '\0';
    decoder->code_point = 0;
}

GUTHTHILA_EXPORT int GUTHTHILA_CALL guththila_utf8_decoder_decode(
    guththila_utf8_decoder_t * decoder,
    guththila_char_t inchar,
    int *code_point,
    const axutil_env_t * env)
{
    unsigned int inbyte;
    decoder->error_bytes = 0;
    decoder->used_buffer[decoder->used_bytes] = inchar;
    inbyte = (unsigned char) inchar;
    if (inbyte < 0x0080) /* 0x0080=128: 0xxx xxxx */
    {
        if (decoder->remaining_bytes > 0)
        {
            /* error: missing required follow-on byte */
            /* The bytes before this are bad, but this 1 may be good. */
            decoder->error_bytes = decoder->used_bytes;
            memcpy(decoder->error_buffer, decoder->used_buffer,
                decoder->error_bytes);
        }
        decoder->code_point = inbyte;
        decoder->used_bytes = 1;
        decoder->remaining_bytes = 0;
    }
    else if (inbyte < 0x00c0) /* 0x00c0=192: 10xx xxxx */
    {
        /* Follow-on byte */
        if (decoder->remaining_bytes > 0)
        {
            decoder->code_point <<= 6;
            decoder->code_point |= inbyte & 0x3f;
            decoder->used_bytes++;
            decoder->remaining_bytes--;
            if (decoder->remaining_bytes == 0)
            {
                /* We're done, but make sure not overlong encoding. */
                if (decoder->code_point <= 0x0000007f)
                {
                    if (decoder->used_bytes != 1)
                    {
                        /* error: overlong bytes */
                        decoder->error_bytes = decoder->used_bytes;
                        memcpy(decoder->error_buffer, decoder->used_buffer,
                               decoder->error_bytes);
                        decoder->code_point = decoder->replacement_code_point;
                        decoder->used_bytes = 0;
                        decoder->remaining_bytes = 0;
                    }
                }
                else if (decoder->code_point <= 0x000007ff)
                {
                    if (decoder->used_bytes != 2)
                    {
                        /* error: overlong bytes */
                        decoder->error_bytes = decoder->used_bytes;
                        memcpy(decoder->error_buffer, decoder->used_buffer,
                               decoder->error_bytes);
                        decoder->code_point = decoder->replacement_code_point;
                        decoder->used_bytes = 0;
                        decoder->remaining_bytes = 0;
                    }
                }
                else if (decoder->code_point <= 0x0000ffff)
                {
                    if (decoder->used_bytes != 3)
                    {
                        /* error: overlong bytes */
                        decoder->error_bytes = decoder->used_bytes;
                        memcpy(decoder->error_buffer, decoder->used_buffer,
                               decoder->error_bytes);
                        decoder->code_point = decoder->replacement_code_point;
                        decoder->used_bytes = 0;
                        decoder->remaining_bytes = 0;
                    }
                }
                else if (decoder->code_point <= 0x0010ffff)
                {
                    if (decoder->used_bytes != 4)
                    {
                        /* error: overlong bytes */
                        decoder->error_bytes = decoder->used_bytes;
                        memcpy(decoder->error_buffer, decoder->used_buffer,
                               decoder->error_bytes);
                        decoder->code_point = decoder->replacement_code_point;
                        decoder->used_bytes = 0;
                        decoder->remaining_bytes = 0;
                    }
                }
                else
                {
                    /* error: invalid not defined by Unicode */
                    decoder->error_bytes = decoder->used_bytes;
                    decoder->code_point = decoder->replacement_code_point;
                    decoder->used_bytes = 0;
                    decoder->remaining_bytes = 0;
                }
            }
        }
        else
        {
            /* error: unexpected follow-on byte. */
            /* The byte is always bad when it is not expected. */
            decoder->error_bytes = 1;
            memcpy(decoder->error_buffer, decoder->used_buffer,
                   decoder->error_bytes);
            decoder->code_point = decoder->replacement_code_point;
            decoder->used_bytes = 0;
            decoder->remaining_bytes = 0;
        }
    }
    else if (inbyte < 0x00c2) /* 0x00c2=194 */
    {
        /* error: overlong encoding for 0xxx xxxx */
        /* The byte is always bad. */
        decoder->error_bytes = decoder->used_bytes + 1;
        memcpy(decoder->error_buffer, decoder->used_buffer,
               decoder->error_bytes);
        decoder->code_point = decoder->replacement_code_point;
        decoder->used_bytes = 0;
        decoder->remaining_bytes = 0;
    }
    else if (inbyte < 0x00e0) /* 0x00e0=224: 110x xxxx */
    {
        /* Start of a 2-byte character: */
        /* 110y yyxx 10xx xxxx => */
        /* 0000 0yyy xxxx xxxx */
        if (decoder->remaining_bytes > 0)
        {
            /* error: missing required follow-on byte: 10xx xxxx */
            /* The bytes before this are bad, but this 1 may be good. */
            decoder->error_bytes = decoder->used_bytes;
            memcpy(decoder->error_buffer, decoder->used_buffer,
                   decoder->error_bytes);
        }
        decoder->code_point = inbyte & 0x1f;
        decoder->used_bytes = 1;
        decoder->remaining_bytes = 1;
    }
    else if (inbyte < 0x00f0) /* 0x00f0=240: 1110 xxxx */
    {
        /* Start of a 3-byte character: */
        /* 1110 yyyy 10yy yyxx 10xx xxxx => */
        /* yyyy yyyy xxxx xxxx */
        if (decoder->remaining_bytes > 0)
        {
            /* error: expected follow-on byte instead of new 3-byte character. */
            /* The bytes before this are bad, but this 1 may be good. */
            decoder->error_bytes = decoder->used_bytes;
            memcpy(decoder->error_buffer, decoder->used_buffer,
                   decoder->error_bytes);
        }
        decoder->code_point = inbyte & 0x0f;
        decoder->used_bytes = 1;
        decoder->remaining_bytes = 2;
    }
    else if (inbyte < 0x00f5) /* 0x00f5=245: 1111 0xxx */
    {
        /* Start of a 4-byte character: */
        /* 1111 0zzz  10zz yyyy  10yy yyxx  10xx xxxx => */
        /* 000z zzzz  yyyy yyyy  xxxx xxxx */
        if (decoder->remaining_bytes > 0)
        {
            /* error: expected follow-on byte instead of new 4-byte character. */
            /* The bytes before this are bad, but this 1 may be good. */
            decoder->error_bytes = decoder->used_bytes;
            memcpy(decoder->error_buffer, decoder->used_buffer,
                   decoder->error_bytes);
        }
        decoder->code_point = inbyte & 0x07;
        decoder->used_bytes = 1;
        decoder->remaining_bytes = 3;
    }
    else
    {
        /* error: not defined by UTF-8/Unicode */
        /* The byte is always bad. */
        decoder->error_bytes = decoder->used_bytes + 1;
        memcpy(decoder->error_buffer, decoder->used_buffer,
               decoder->error_bytes);
        decoder->code_point = decoder->replacement_code_point;
        decoder->used_bytes = 0;
        decoder->remaining_bytes = 0;
    }
    if (decoder->remaining_bytes == 0 && decoder->used_bytes > 0)
    {
        *code_point = decoder->code_point;
    }
    return decoder->remaining_bytes == 0;
}

GUTHTHILA_EXPORT guththila_utf8_encoder_t * GUTHTHILA_CALL
guththila_utf8_encoder_create(const axutil_env_t * env)
{
    guththila_utf8_encoder_t * encoder =
        (guththila_utf8_encoder_t *) AXIS2_MALLOC(env->allocator,
                                            sizeof(guththila_utf8_encoder_t));
    if (encoder)
    {
        encoder->remaining_bytes = 0;
        encoder->is_error = 0;
    }
    return encoder;
}

GUTHTHILA_EXPORT void GUTHTHILA_CALL guththila_utf8_encoder_free(
    guththila_utf8_encoder_t * encoder,
    const axutil_env_t * env)
{
    AXIS2_FREE(env->allocator, encoder);
}

GUTHTHILA_EXPORT int GUTHTHILA_CALL  guththila_utf8_encoder_encode(
    guththila_utf8_encoder_t * encoder,
    int code_point,
    guththila_char_t * buffer,
    int *buffer_length,
    const axutil_env_t * env)
{
    encoder->is_error = 0;
    if (code_point <= 0x0000007f)
    {
        if (encoder->remaining_bytes == 0)
        {
            encoder->remaining_bytes = 1;
        }
        if (*buffer_length >= 1)
        {
            *buffer = (unsigned char) code_point;
            buffer++;
            (*buffer_length)--;
            encoder->remaining_bytes--;
        }
    }
    else if (code_point <= 0x000007ff)
    {
        if (encoder->remaining_bytes == 0)
        {
            encoder->remaining_bytes = 2;
        }
        if (*buffer_length >= 1)
        {
            if (encoder->remaining_bytes >= 2)
            {
               *buffer = 0xc0 | (code_point >> 6);
               buffer++;
               (*buffer_length)--;
               encoder->remaining_bytes--;
            }
            if (*buffer_length >= 1)
            {
                *buffer = 0x80 | (code_point & 0x003f);
                buffer++;
                (*buffer_length)--;
                encoder->remaining_bytes--;
            }
        }
    }
    else if (code_point <= 0x0000ffff)
    {
        if (encoder->remaining_bytes == 0)
        {
            encoder->remaining_bytes = 3;
        }
        if (*buffer_length >= 1)
        {
            if (encoder->remaining_bytes >= 3)
            {
                *buffer = 0xe0 | (code_point >> 12);
                buffer++;
                (*buffer_length)--;
                encoder->remaining_bytes--;
            }
            if (*buffer_length >= 1)
            {
                if (encoder->remaining_bytes >= 2)
                {
                    *buffer = 0x80 | ((code_point >> 6) & 0x003f);
                    buffer++;
                    (*buffer_length)--;
                    encoder->remaining_bytes--;
                }
                if (*buffer_length >= 1)
                {
                    *buffer = 0x80 | (code_point & 0x003f);
                    buffer++;
                    (*buffer_length)--;
                    encoder->remaining_bytes--;
                }
            }
        }
    }
    else if (code_point <= 0x0010ffff)
    {
        if (encoder->remaining_bytes == 0)
        {
            encoder->remaining_bytes = 4;
        }
        if (*buffer_length >= 1)
        {
            if (encoder->remaining_bytes >= 4)
            {
                *buffer = 0xf0 | (code_point >> 18);
                buffer++;
                (*buffer_length)--;
                encoder->remaining_bytes--;
            }
            if (*buffer_length >= 1)
            {
                if (encoder->remaining_bytes >= 3)
                {
                    *buffer = 0x80 | ((code_point >> 12) & 0x003f);
                    buffer++;
                    (*buffer_length)--;
                    encoder->remaining_bytes--;
                }
                if (*buffer_length >= 1)
                {
                    if (encoder->remaining_bytes >= 2)
                    {
                        *buffer = 0x80 | ((code_point >> 6) & 0x003f);
                        buffer++;
                        (*buffer_length)--;
                        encoder->remaining_bytes--;
                    }
                    if (*buffer_length >= 1)
                    {
                        *buffer = 0x80 | (code_point & 0x003f);
                        buffer++;
                        (*buffer_length)--;
                        encoder->remaining_bytes--;
                    }
                }
            }
        }
    }
    else
    {
        /* error: code point not defined by Unicode */
        encoder->is_error = 1;
        encoder->remaining_bytes = 0;
    }
    return encoder->remaining_bytes == 0;
}


<|start_filename|>xdocs/api/html/group__axis2__http__out__transport__info.html<|end_filename|>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html><head><meta http-equiv="Content-Type" content="text/html;charset=UTF-8">
<title>Axis2/C: http out transport info</title>
<link href="doxygen.css" rel="stylesheet" type="text/css">
<link href="tabs.css" rel="stylesheet" type="text/css">
</head><body>
<!-- Generated by Doxygen 1.5.3 -->
<div class="tabs">
  <ul>
    <li><a href="index.html"><span>Main&nbsp;Page</span></a></li>
    <li><a href="modules.html"><span>Modules</span></a></li>
    <li><a href="annotated.html"><span>Classes</span></a></li>
    <li><a href="files.html"><span>Files</span></a></li>
    <li><a href="dirs.html"><span>Directories</span></a></li>
    <li><a href="pages.html"><span>Related&nbsp;Pages</span></a></li>
    <li><a href="examples.html"><span>Examples</span></a></li>
    <li>
      <form action="search.php" method="get">
        <table cellspacing="0" cellpadding="0" border="0">
          <tr>
            <td><label>&nbsp;<u>S</u>earch&nbsp;for&nbsp;</label></td>
            <td><input type="text" name="query" value="" size="20" accesskey="s"/></td>
          </tr>
        </table>
      </form>
    </li>
  </ul>
</div>
<h1>http out transport info<br>
<small>
[<a class="el" href="group__axis2__core__trans__http.html">http transport</a>]</small>
</h1><table border="0" cellpadding="0" cellspacing="0">
<tr><td></td></tr>
<tr><td colspan="2"><br><h2>Files</h2></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top">file &nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="axis2__http__out__transport__info_8h.html">axis2_http_out_transport_info.h</a></td></tr>

<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">axis2 HTTP Out Transport Info <br></td></tr>

<p>
<tr><td colspan="2"><br><h2>Classes</h2></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top">struct &nbsp;</td><td class="memItemRight" valign="bottom"><b>axis2_http_out_transport_info</b></td></tr>

<tr><td colspan="2"><br><h2>Defines</h2></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top">#define&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__axis2__http__out__transport__info.html#gc65a46f52b077ea5b9355094f93db1d2">AXIS2_HTTP_OUT_TRANSPORT_INFO_SET_CONTENT_TYPE</a>(out_transport_info, env, content_type)&nbsp;&nbsp;&nbsp;axis2_http_out_transport_info_set_content_type (out_transport_info, env, content_type)</td></tr>

<tr><td class="memItemLeft" nowrap align="right" valign="top">#define&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__axis2__http__out__transport__info.html#gc17624b984364754cbd36a32f62e1ba6">AXIS2_HTTP_OUT_TRANSPORT_INFO_SET_CHAR_ENCODING</a>(out_transport_info, env, encoding)&nbsp;&nbsp;&nbsp;axis2_http_out_transport_info_set_char_encoding(out_transport_info, env, encoding)</td></tr>

<tr><td class="memItemLeft" nowrap align="right" valign="top">#define&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__axis2__http__out__transport__info.html#g3174b25bfefbe35ad05b2ecf2a24efb0">AXIS2_HTTP_OUT_TRANSPORT_INFO_FREE</a>(out_transport_info, env)&nbsp;&nbsp;&nbsp;axis2_http_out_transport_info_free(out_transport_info, env)</td></tr>

<tr><td colspan="2"><br><h2>Typedefs</h2></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top">typedef struct <br>
axis2_http_out_transport_info&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__axis2__http__out__transport__info.html#g488b445412c39ae4b2a3edd1df4f319c">axis2_http_out_transport_info_t</a></td></tr>

<tr><td colspan="2"><br><h2>Functions</h2></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top">AXIS2_EXTERN int&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__axis2__http__out__transport__info.html#g6c6fc7b1cf689442c23c5d2db2353acf">axis2_http_out_transport_info_set_content_type</a> (<a class="el" href="group__axis2__http__out__transport__info.html#g488b445412c39ae4b2a3edd1df4f319c">axis2_http_out_transport_info_t</a> *info, const <a class="el" href="structaxutil__env.html">axutil_env_t</a> *env, const axis2_char_t *content_type)</td></tr>

<tr><td class="memItemLeft" nowrap align="right" valign="top">AXIS2_EXTERN <br>
axis2_status_t&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__axis2__http__out__transport__info.html#g9368ed3e85952d69b382d57e6d8b9610">axis2_http_out_transport_info_set_char_encoding</a> (<a class="el" href="group__axis2__http__out__transport__info.html#g488b445412c39ae4b2a3edd1df4f319c">axis2_http_out_transport_info_t</a> *info, const <a class="el" href="structaxutil__env.html">axutil_env_t</a> *env, const axis2_char_t *encoding)</td></tr>

<tr><td class="memItemLeft" nowrap align="right" valign="top">AXIS2_EXTERN void&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__axis2__http__out__transport__info.html#gd6d974df0df738b3e994146bf2445c17">axis2_http_out_transport_info_free</a> (<a class="el" href="group__axis2__http__out__transport__info.html#g488b445412c39ae4b2a3edd1df4f319c">axis2_http_out_transport_info_t</a> *out_transport_info, const <a class="el" href="structaxutil__env.html">axutil_env_t</a> *env)</td></tr>

<tr><td class="memItemLeft" nowrap align="right" valign="top">AXIS2_EXTERN <br>
<a class="el" href="group__axis2__http__out__transport__info.html#g488b445412c39ae4b2a3edd1df4f319c">axis2_http_out_transport_info_t</a> *&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__axis2__http__out__transport__info.html#gdabad3886ddb36d456a502e6e257ad88">axis2_http_out_transport_info_create</a> (const <a class="el" href="structaxutil__env.html">axutil_env_t</a> *env, <a class="el" href="group__axis2__http__simple__response.html#g5ebc18702d80d368692d1922f9accb1f">axis2_http_simple_response_t</a> *response)</td></tr>

<tr><td class="memItemLeft" nowrap align="right" valign="top">AXIS2_EXTERN void&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__axis2__http__out__transport__info.html#g8ff11c179d868a06362b9dea7edb3d5c">axis2_http_out_transport_info_free_void_arg</a> (void *transport_info, const <a class="el" href="structaxutil__env.html">axutil_env_t</a> *env)</td></tr>

<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="gc4276f577d844fa23ed6e0e680a2d7ba"></a><!-- doxytag: member="axis2_http_out_transport_info::axis2_http_out_transport_info_set_char_encoding_func" ref="gc4276f577d844fa23ed6e0e680a2d7ba" args="(axis2_http_out_transport_info_t *out_transport_info, const axutil_env_t *env, axis2_status_t(*set_encoding)(axis2_http_out_transport_info_t *, const axutil_env_t *, const axis2_char_t *))" -->
AXIS2_EXTERN void&nbsp;</td><td class="memItemRight" valign="bottom"><b>axis2_http_out_transport_info_set_char_encoding_func</b> (<a class="el" href="group__axis2__http__out__transport__info.html#g488b445412c39ae4b2a3edd1df4f319c">axis2_http_out_transport_info_t</a> *out_transport_info, const <a class="el" href="structaxutil__env.html">axutil_env_t</a> *env, axis2_status_t(*set_encoding)(<a class="el" href="group__axis2__http__out__transport__info.html#g488b445412c39ae4b2a3edd1df4f319c">axis2_http_out_transport_info_t</a> *, const <a class="el" href="structaxutil__env.html">axutil_env_t</a> *, const axis2_char_t *))</td></tr>

<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="g58b3c716940a7492bb16a70284fd6fe0"></a><!-- doxytag: member="axis2_http_out_transport_info::axis2_http_out_transport_info_set_content_type_func" ref="g58b3c716940a7492bb16a70284fd6fe0" args="(axis2_http_out_transport_info_t *out_transport_info, const axutil_env_t *env, axis2_status_t(*set_content_type)(axis2_http_out_transport_info_t *, const axutil_env_t *, const axis2_char_t *))" -->
AXIS2_EXTERN void&nbsp;</td><td class="memItemRight" valign="bottom"><b>axis2_http_out_transport_info_set_content_type_func</b> (<a class="el" href="group__axis2__http__out__transport__info.html#g488b445412c39ae4b2a3edd1df4f319c">axis2_http_out_transport_info_t</a> *out_transport_info, const <a class="el" href="structaxutil__env.html">axutil_env_t</a> *env, axis2_status_t(*set_content_type)(<a class="el" href="group__axis2__http__out__transport__info.html#g488b445412c39ae4b2a3edd1df4f319c">axis2_http_out_transport_info_t</a> *, const <a class="el" href="structaxutil__env.html">axutil_env_t</a> *, const axis2_char_t *))</td></tr>

<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="g807bd1058da0dbbe0422c65f7b833f7d"></a><!-- doxytag: member="axis2_http_out_transport_info::axis2_http_out_transport_info_set_free_func" ref="g807bd1058da0dbbe0422c65f7b833f7d" args="(axis2_http_out_transport_info_t *out_transport_info, const axutil_env_t *env, void(*free_function)(axis2_http_out_transport_info_t *, const axutil_env_t *))" -->
AXIS2_EXTERN void&nbsp;</td><td class="memItemRight" valign="bottom"><b>axis2_http_out_transport_info_set_free_func</b> (<a class="el" href="group__axis2__http__out__transport__info.html#g488b445412c39ae4b2a3edd1df4f319c">axis2_http_out_transport_info_t</a> *out_transport_info, const <a class="el" href="structaxutil__env.html">axutil_env_t</a> *env, void(*free_function)(<a class="el" href="group__axis2__http__out__transport__info.html#g488b445412c39ae4b2a3edd1df4f319c">axis2_http_out_transport_info_t</a> *, const <a class="el" href="structaxutil__env.html">axutil_env_t</a> *))</td></tr>

</table>
<hr><a name="_details"></a><h2>Detailed Description</h2>
Description <hr><h2>Define Documentation</h2>
<a class="anchor" name="g3174b25bfefbe35ad05b2ecf2a24efb0"></a><!-- doxytag: member="axis2_http_out_transport_info.h::AXIS2_HTTP_OUT_TRANSPORT_INFO_FREE" ref="g3174b25bfefbe35ad05b2ecf2a24efb0" args="(out_transport_info, env)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">#define AXIS2_HTTP_OUT_TRANSPORT_INFO_FREE          </td>
          <td>(</td>
          <td class="paramtype">out_transport_info,         <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">env&nbsp;</td>
          <td class="paramname">          </td>
          <td>&nbsp;)&nbsp;</td>
          <td width="100%">&nbsp;&nbsp;&nbsp;axis2_http_out_transport_info_free(out_transport_info, env)</td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
Free. 
</div>
</div><p>
<a class="anchor" name="gc17624b984364754cbd36a32f62e1ba6"></a><!-- doxytag: member="axis2_http_out_transport_info.h::AXIS2_HTTP_OUT_TRANSPORT_INFO_SET_CHAR_ENCODING" ref="gc17624b984364754cbd36a32f62e1ba6" args="(out_transport_info, env, encoding)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">#define AXIS2_HTTP_OUT_TRANSPORT_INFO_SET_CHAR_ENCODING          </td>
          <td>(</td>
          <td class="paramtype">out_transport_info,         <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">env,         <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">encoding&nbsp;</td>
          <td class="paramname">          </td>
          <td>&nbsp;)&nbsp;</td>
          <td width="100%">&nbsp;&nbsp;&nbsp;axis2_http_out_transport_info_set_char_encoding(out_transport_info, env, encoding)</td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
Set char encoding. 
</div>
</div><p>
<a class="anchor" name="gc65a46f52b077ea5b9355094f93db1d2"></a><!-- doxytag: member="axis2_http_out_transport_info.h::AXIS2_HTTP_OUT_TRANSPORT_INFO_SET_CONTENT_TYPE" ref="gc65a46f52b077ea5b9355094f93db1d2" args="(out_transport_info, env, content_type)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">#define AXIS2_HTTP_OUT_TRANSPORT_INFO_SET_CONTENT_TYPE          </td>
          <td>(</td>
          <td class="paramtype">out_transport_info,         <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">env,         <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">content_type&nbsp;</td>
          <td class="paramname">          </td>
          <td>&nbsp;)&nbsp;</td>
          <td width="100%">&nbsp;&nbsp;&nbsp;axis2_http_out_transport_info_set_content_type (out_transport_info, env, content_type)</td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
Set content type. 
</div>
</div><p>
<hr><h2>Typedef Documentation</h2>
<a class="anchor" name="g488b445412c39ae4b2a3edd1df4f319c"></a><!-- doxytag: member="axis2_http_out_transport_info.h::axis2_http_out_transport_info_t" ref="g488b445412c39ae4b2a3edd1df4f319c" args="" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">typedef struct axis2_http_out_transport_info <a class="el" href="group__axis2__http__out__transport__info.html#g488b445412c39ae4b2a3edd1df4f319c">axis2_http_out_transport_info_t</a>          </td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
Type name for struct axis2_http_out_transport_info 
</div>
</div><p>
<hr><h2>Function Documentation</h2>
<a class="anchor" name="gdabad3886ddb36d456a502e6e257ad88"></a><!-- doxytag: member="axis2_http_out_transport_info.h::axis2_http_out_transport_info_create" ref="gdabad3886ddb36d456a502e6e257ad88" args="(const axutil_env_t *env, axis2_http_simple_response_t *response)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">AXIS2_EXTERN <a class="el" href="group__axis2__http__out__transport__info.html#g488b445412c39ae4b2a3edd1df4f319c">axis2_http_out_transport_info_t</a>* axis2_http_out_transport_info_create           </td>
          <td>(</td>
          <td class="paramtype">const <a class="el" href="structaxutil__env.html">axutil_env_t</a> *&nbsp;</td>
          <td class="paramname"> <em>env</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype"><a class="el" href="group__axis2__http__simple__response.html#g5ebc18702d80d368692d1922f9accb1f">axis2_http_simple_response_t</a> *&nbsp;</td>
          <td class="paramname"> <em>response</em></td><td>&nbsp;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td><td width="100%"></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
<dl compact><dt><b>Parameters:</b></dt><dd>
  <table border="0" cellspacing="2" cellpadding="0">
    <tr><td valign="top"></td><td valign="top"><em>env</em>&nbsp;</td><td>pointer to environment struct </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>response</em>&nbsp;</td><td>pointer to response </td></tr>
  </table>
</dl>

</div>
</div><p>
<a class="anchor" name="gd6d974df0df738b3e994146bf2445c17"></a><!-- doxytag: member="axis2_http_out_transport_info.h::axis2_http_out_transport_info_free" ref="gd6d974df0df738b3e994146bf2445c17" args="(axis2_http_out_transport_info_t *out_transport_info, const axutil_env_t *env)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">AXIS2_EXTERN void axis2_http_out_transport_info_free           </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="group__axis2__http__out__transport__info.html#g488b445412c39ae4b2a3edd1df4f319c">axis2_http_out_transport_info_t</a> *&nbsp;</td>
          <td class="paramname"> <em>out_transport_info</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const <a class="el" href="structaxutil__env.html">axutil_env_t</a> *&nbsp;</td>
          <td class="paramname"> <em>env</em></td><td>&nbsp;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td><td width="100%"></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
<dl compact><dt><b>Parameters:</b></dt><dd>
  <table border="0" cellspacing="2" cellpadding="0">
    <tr><td valign="top"></td><td valign="top"><em>out_transport_info</em>&nbsp;</td><td>pointer to out transport info </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>env</em>&nbsp;</td><td>pointer to environment struct </td></tr>
  </table>
</dl>
<dl class="return" compact><dt><b>Returns:</b></dt><dd>AXIS2_SUCCESS on success, else AXIS2_FAILURE </dd></dl>

</div>
</div><p>
<a class="anchor" name="g8ff11c179d868a06362b9dea7edb3d5c"></a><!-- doxytag: member="axis2_http_out_transport_info.h::axis2_http_out_transport_info_free_void_arg" ref="g8ff11c179d868a06362b9dea7edb3d5c" args="(void *transport_info, const axutil_env_t *env)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">AXIS2_EXTERN void axis2_http_out_transport_info_free_void_arg           </td>
          <td>(</td>
          <td class="paramtype">void *&nbsp;</td>
          <td class="paramname"> <em>transport_info</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const <a class="el" href="structaxutil__env.html">axutil_env_t</a> *&nbsp;</td>
          <td class="paramname"> <em>env</em></td><td>&nbsp;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td><td width="100%"></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
Free http_out_transport_info passed as void pointer. This will be cast into appropriate type and then pass the cast object into the http_out_transport_info structure's free method <dl compact><dt><b>Parameters:</b></dt><dd>
  <table border="0" cellspacing="2" cellpadding="0">
    <tr><td valign="top"></td><td valign="top"><em>transport_info</em>&nbsp;</td><td>pointer to transport info </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>env</em>&nbsp;</td><td>pointer to environment struct </td></tr>
  </table>
</dl>

</div>
</div><p>
<a class="anchor" name="g9368ed3e85952d69b382d57e6d8b9610"></a><!-- doxytag: member="axis2_http_out_transport_info.h::axis2_http_out_transport_info_set_char_encoding" ref="g9368ed3e85952d69b382d57e6d8b9610" args="(axis2_http_out_transport_info_t *info, const axutil_env_t *env, const axis2_char_t *encoding)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">AXIS2_EXTERN axis2_status_t axis2_http_out_transport_info_set_char_encoding           </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="group__axis2__http__out__transport__info.html#g488b445412c39ae4b2a3edd1df4f319c">axis2_http_out_transport_info_t</a> *&nbsp;</td>
          <td class="paramname"> <em>info</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const <a class="el" href="structaxutil__env.html">axutil_env_t</a> *&nbsp;</td>
          <td class="paramname"> <em>env</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const axis2_char_t *&nbsp;</td>
          <td class="paramname"> <em>encoding</em></td><td>&nbsp;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td><td width="100%"></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
<dl compact><dt><b>Parameters:</b></dt><dd>
  <table border="0" cellspacing="2" cellpadding="0">
    <tr><td valign="top"></td><td valign="top"><em>info</em>&nbsp;</td><td>pointer to info </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>env</em>&nbsp;</td><td>pointer to environment struct </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>encoding</em>&nbsp;</td><td>pointer to encoding </td></tr>
  </table>
</dl>
<dl class="return" compact><dt><b>Returns:</b></dt><dd>AXIS2_SUCCESS on success, else AXIS2_FAILURE </dd></dl>

</div>
</div><p>
<a class="anchor" name="g6c6fc7b1cf689442c23c5d2db2353acf"></a><!-- doxytag: member="axis2_http_out_transport_info.h::axis2_http_out_transport_info_set_content_type" ref="g6c6fc7b1cf689442c23c5d2db2353acf" args="(axis2_http_out_transport_info_t *info, const axutil_env_t *env, const axis2_char_t *content_type)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">AXIS2_EXTERN int axis2_http_out_transport_info_set_content_type           </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="group__axis2__http__out__transport__info.html#g488b445412c39ae4b2a3edd1df4f319c">axis2_http_out_transport_info_t</a> *&nbsp;</td>
          <td class="paramname"> <em>info</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const <a class="el" href="structaxutil__env.html">axutil_env_t</a> *&nbsp;</td>
          <td class="paramname"> <em>env</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const axis2_char_t *&nbsp;</td>
          <td class="paramname"> <em>content_type</em></td><td>&nbsp;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td><td width="100%"></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
<dl compact><dt><b>Parameters:</b></dt><dd>
  <table border="0" cellspacing="2" cellpadding="0">
    <tr><td valign="top"></td><td valign="top"><em>info</em>&nbsp;</td><td>pointer to info </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>env</em>&nbsp;</td><td>pointer to environment struct </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>content_type</em>&nbsp;</td><td>pointer to content type </td></tr>
  </table>
</dl>

</div>
</div><p>
<hr size="1"><address style="text-align: right;"><small>Generated on Fri Apr 17 11:49:45 2009 for Axis2/C by&nbsp;
<a href="http://www.doxygen.org/index.html">
<img src="doxygen.png" alt="doxygen" align="middle" border="0"></a> 1.5.3 </small></address>
</body>
</html>


<|start_filename|>xdocs/api/html/group__axis2__http__response__writer.html<|end_filename|>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html><head><meta http-equiv="Content-Type" content="text/html;charset=UTF-8">
<title>Axis2/C: http response writer</title>
<link href="doxygen.css" rel="stylesheet" type="text/css">
<link href="tabs.css" rel="stylesheet" type="text/css">
</head><body>
<!-- Generated by Doxygen 1.5.3 -->
<div class="tabs">
  <ul>
    <li><a href="index.html"><span>Main&nbsp;Page</span></a></li>
    <li><a href="modules.html"><span>Modules</span></a></li>
    <li><a href="annotated.html"><span>Classes</span></a></li>
    <li><a href="files.html"><span>Files</span></a></li>
    <li><a href="dirs.html"><span>Directories</span></a></li>
    <li><a href="pages.html"><span>Related&nbsp;Pages</span></a></li>
    <li><a href="examples.html"><span>Examples</span></a></li>
    <li>
      <form action="search.php" method="get">
        <table cellspacing="0" cellpadding="0" border="0">
          <tr>
            <td><label>&nbsp;<u>S</u>earch&nbsp;for&nbsp;</label></td>
            <td><input type="text" name="query" value="" size="20" accesskey="s"/></td>
          </tr>
        </table>
      </form>
    </li>
  </ul>
</div>
<h1>http response writer<br>
<small>
[<a class="el" href="group__axis2__core__trans__http.html">http transport</a>]</small>
</h1><table border="0" cellpadding="0" cellspacing="0">
<tr><td></td></tr>
<tr><td colspan="2"><br><h2>Files</h2></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top">file &nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="axis2__http__response__writer_8h.html">axis2_http_response_writer.h</a></td></tr>

<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">axis2 Response Writer <br></td></tr>

<p>
<tr><td colspan="2"><br><h2>Typedefs</h2></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top">typedef struct <br>
axis2_http_response_writer&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__axis2__http__response__writer.html#g2259f3ec5abf54528a6b9797e8188771">axis2_http_response_writer_t</a></td></tr>

<tr><td colspan="2"><br><h2>Functions</h2></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top">AXIS2_EXTERN <br>
axis2_char_t *&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__axis2__http__response__writer.html#g4d45835e7866ec6076b41f000c5b3bee">axis2_http_response_writer_get_encoding</a> (const <a class="el" href="group__axis2__http__response__writer.html#g2259f3ec5abf54528a6b9797e8188771">axis2_http_response_writer_t</a> *response_writer, const <a class="el" href="structaxutil__env.html">axutil_env_t</a> *env)</td></tr>

<tr><td class="memItemLeft" nowrap align="right" valign="top">AXIS2_EXTERN <br>
axis2_status_t&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__axis2__http__response__writer.html#ge3d2d72f0450b556f3a4fe0cfd744881">axis2_http_response_writer_close</a> (<a class="el" href="group__axis2__http__response__writer.html#g2259f3ec5abf54528a6b9797e8188771">axis2_http_response_writer_t</a> *response_writer, const <a class="el" href="structaxutil__env.html">axutil_env_t</a> *env)</td></tr>

<tr><td class="memItemLeft" nowrap align="right" valign="top">AXIS2_EXTERN <br>
axis2_status_t&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__axis2__http__response__writer.html#gb1a6a1b2186ba65ec6bf6d94ee0d6385">axis2_http_response_writer_flush</a> (<a class="el" href="group__axis2__http__response__writer.html#g2259f3ec5abf54528a6b9797e8188771">axis2_http_response_writer_t</a> *response_writer, const <a class="el" href="structaxutil__env.html">axutil_env_t</a> *env)</td></tr>

<tr><td class="memItemLeft" nowrap align="right" valign="top">AXIS2_EXTERN <br>
axis2_status_t&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__axis2__http__response__writer.html#g9368c11f97efadb018f9319d374fcf18">axis2_http_response_writer_write_char</a> (<a class="el" href="group__axis2__http__response__writer.html#g2259f3ec5abf54528a6b9797e8188771">axis2_http_response_writer_t</a> *response_writer, const <a class="el" href="structaxutil__env.html">axutil_env_t</a> *env, char c)</td></tr>

<tr><td class="memItemLeft" nowrap align="right" valign="top">AXIS2_EXTERN <br>
axis2_status_t&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__axis2__http__response__writer.html#g6d27ae339974794ede82a7c9e1270c22">axis2_http_response_writer_write_buf</a> (<a class="el" href="group__axis2__http__response__writer.html#g2259f3ec5abf54528a6b9797e8188771">axis2_http_response_writer_t</a> *response_writer, const <a class="el" href="structaxutil__env.html">axutil_env_t</a> *env, char *buf, int offset, axis2_ssize_t len)</td></tr>

<tr><td class="memItemLeft" nowrap align="right" valign="top">AXIS2_EXTERN <br>
axis2_status_t&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__axis2__http__response__writer.html#g2fcb29f5c9d3c09b08267641f6b78178">axis2_http_response_writer_print_str</a> (<a class="el" href="group__axis2__http__response__writer.html#g2259f3ec5abf54528a6b9797e8188771">axis2_http_response_writer_t</a> *response_writer, const <a class="el" href="structaxutil__env.html">axutil_env_t</a> *env, const char *str)</td></tr>

<tr><td class="memItemLeft" nowrap align="right" valign="top">AXIS2_EXTERN <br>
axis2_status_t&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__axis2__http__response__writer.html#gbeed0ef80c00b522dd1372901ecca873">axis2_http_response_writer_print_int</a> (<a class="el" href="group__axis2__http__response__writer.html#g2259f3ec5abf54528a6b9797e8188771">axis2_http_response_writer_t</a> *response_writer, const <a class="el" href="structaxutil__env.html">axutil_env_t</a> *env, int i)</td></tr>

<tr><td class="memItemLeft" nowrap align="right" valign="top">AXIS2_EXTERN <br>
axis2_status_t&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__axis2__http__response__writer.html#g12c2594faab7f36ac670b500b5ca9a48">axis2_http_response_writer_println_str</a> (<a class="el" href="group__axis2__http__response__writer.html#g2259f3ec5abf54528a6b9797e8188771">axis2_http_response_writer_t</a> *response_writer, const <a class="el" href="structaxutil__env.html">axutil_env_t</a> *env, const char *str)</td></tr>

<tr><td class="memItemLeft" nowrap align="right" valign="top">AXIS2_EXTERN <br>
axis2_status_t&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__axis2__http__response__writer.html#g16200523d3e8833f40e37d80767722bb">axis2_http_response_writer_println</a> (<a class="el" href="group__axis2__http__response__writer.html#g2259f3ec5abf54528a6b9797e8188771">axis2_http_response_writer_t</a> *response_writer, const <a class="el" href="structaxutil__env.html">axutil_env_t</a> *env)</td></tr>

<tr><td class="memItemLeft" nowrap align="right" valign="top">AXIS2_EXTERN void&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__axis2__http__response__writer.html#g4aa971c45559a87946fd94f348b7d4d7">axis2_http_response_writer_free</a> (<a class="el" href="group__axis2__http__response__writer.html#g2259f3ec5abf54528a6b9797e8188771">axis2_http_response_writer_t</a> *response_writer, const <a class="el" href="structaxutil__env.html">axutil_env_t</a> *env)</td></tr>

<tr><td class="memItemLeft" nowrap align="right" valign="top">AXIS2_EXTERN <br>
<a class="el" href="group__axis2__http__response__writer.html#g2259f3ec5abf54528a6b9797e8188771">axis2_http_response_writer_t</a> *&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__axis2__http__response__writer.html#g115bd88c5873671ae1d9254c3d76fd62">axis2_http_response_writer_create</a> (const <a class="el" href="structaxutil__env.html">axutil_env_t</a> *env, axutil_stream_t *stream)</td></tr>

<tr><td class="memItemLeft" nowrap align="right" valign="top">AXIS2_EXTERN <br>
<a class="el" href="group__axis2__http__response__writer.html#g2259f3ec5abf54528a6b9797e8188771">axis2_http_response_writer_t</a> *&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__axis2__http__response__writer.html#gfa1431f2e3ffb7a707769039b0d2407b">axis2_http_response_writer_create_with_encoding</a> (const <a class="el" href="structaxutil__env.html">axutil_env_t</a> *env, axutil_stream_t *stream, const axis2_char_t *encoding)</td></tr>

</table>
<hr><h2>Typedef Documentation</h2>
<a class="anchor" name="g2259f3ec5abf54528a6b9797e8188771"></a><!-- doxytag: member="axis2_http_response_writer.h::axis2_http_response_writer_t" ref="g2259f3ec5abf54528a6b9797e8188771" args="" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">typedef struct axis2_http_response_writer <a class="el" href="group__axis2__http__response__writer.html#g2259f3ec5abf54528a6b9797e8188771">axis2_http_response_writer_t</a>          </td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
Type name for struct axis2_http_response_writer 
</div>
</div><p>
<hr><h2>Function Documentation</h2>
<a class="anchor" name="ge3d2d72f0450b556f3a4fe0cfd744881"></a><!-- doxytag: member="axis2_http_response_writer.h::axis2_http_response_writer_close" ref="ge3d2d72f0450b556f3a4fe0cfd744881" args="(axis2_http_response_writer_t *response_writer, const axutil_env_t *env)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">AXIS2_EXTERN axis2_status_t axis2_http_response_writer_close           </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="group__axis2__http__response__writer.html#g2259f3ec5abf54528a6b9797e8188771">axis2_http_response_writer_t</a> *&nbsp;</td>
          <td class="paramname"> <em>response_writer</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const <a class="el" href="structaxutil__env.html">axutil_env_t</a> *&nbsp;</td>
          <td class="paramname"> <em>env</em></td><td>&nbsp;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td><td width="100%"></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
<dl compact><dt><b>Parameters:</b></dt><dd>
  <table border="0" cellspacing="2" cellpadding="0">
    <tr><td valign="top"></td><td valign="top"><em>response_writer</em>&nbsp;</td><td>pointer to response writer </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>env</em>&nbsp;</td><td>pointer to environment struct </td></tr>
  </table>
</dl>
<dl class="return" compact><dt><b>Returns:</b></dt><dd>AXIS2_SUCCESS on success, else AXIS2_FAILURE </dd></dl>

</div>
</div><p>
<a class="anchor" name="g115bd88c5873671ae1d9254c3d76fd62"></a><!-- doxytag: member="axis2_http_response_writer.h::axis2_http_response_writer_create" ref="g115bd88c5873671ae1d9254c3d76fd62" args="(const axutil_env_t *env, axutil_stream_t *stream)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">AXIS2_EXTERN <a class="el" href="group__axis2__http__response__writer.html#g2259f3ec5abf54528a6b9797e8188771">axis2_http_response_writer_t</a>* axis2_http_response_writer_create           </td>
          <td>(</td>
          <td class="paramtype">const <a class="el" href="structaxutil__env.html">axutil_env_t</a> *&nbsp;</td>
          <td class="paramname"> <em>env</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">axutil_stream_t *&nbsp;</td>
          <td class="paramname"> <em>stream</em></td><td>&nbsp;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td><td width="100%"></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
<dl compact><dt><b>Parameters:</b></dt><dd>
  <table border="0" cellspacing="2" cellpadding="0">
    <tr><td valign="top"></td><td valign="top"><em>env</em>&nbsp;</td><td>pointer to environment struct </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>stream</em>&nbsp;</td><td>pointer to stream </td></tr>
  </table>
</dl>

</div>
</div><p>
<a class="anchor" name="gfa1431f2e3ffb7a707769039b0d2407b"></a><!-- doxytag: member="axis2_http_response_writer.h::axis2_http_response_writer_create_with_encoding" ref="gfa1431f2e3ffb7a707769039b0d2407b" args="(const axutil_env_t *env, axutil_stream_t *stream, const axis2_char_t *encoding)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">AXIS2_EXTERN <a class="el" href="group__axis2__http__response__writer.html#g2259f3ec5abf54528a6b9797e8188771">axis2_http_response_writer_t</a>* axis2_http_response_writer_create_with_encoding           </td>
          <td>(</td>
          <td class="paramtype">const <a class="el" href="structaxutil__env.html">axutil_env_t</a> *&nbsp;</td>
          <td class="paramname"> <em>env</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">axutil_stream_t *&nbsp;</td>
          <td class="paramname"> <em>stream</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const axis2_char_t *&nbsp;</td>
          <td class="paramname"> <em>encoding</em></td><td>&nbsp;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td><td width="100%"></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
<dl compact><dt><b>Parameters:</b></dt><dd>
  <table border="0" cellspacing="2" cellpadding="0">
    <tr><td valign="top"></td><td valign="top"><em>env</em>&nbsp;</td><td>pointer to environment struct </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>stream</em>&nbsp;</td><td>pointer to stream </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>encoding</em>&nbsp;</td><td>pointer to encoding </td></tr>
  </table>
</dl>

</div>
</div><p>
<a class="anchor" name="gb1a6a1b2186ba65ec6bf6d94ee0d6385"></a><!-- doxytag: member="axis2_http_response_writer.h::axis2_http_response_writer_flush" ref="gb1a6a1b2186ba65ec6bf6d94ee0d6385" args="(axis2_http_response_writer_t *response_writer, const axutil_env_t *env)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">AXIS2_EXTERN axis2_status_t axis2_http_response_writer_flush           </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="group__axis2__http__response__writer.html#g2259f3ec5abf54528a6b9797e8188771">axis2_http_response_writer_t</a> *&nbsp;</td>
          <td class="paramname"> <em>response_writer</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const <a class="el" href="structaxutil__env.html">axutil_env_t</a> *&nbsp;</td>
          <td class="paramname"> <em>env</em></td><td>&nbsp;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td><td width="100%"></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
<dl compact><dt><b>Parameters:</b></dt><dd>
  <table border="0" cellspacing="2" cellpadding="0">
    <tr><td valign="top"></td><td valign="top"><em>response_writer</em>&nbsp;</td><td>pointer to response writer </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>env</em>&nbsp;</td><td>pointer to environment struct </td></tr>
  </table>
</dl>
<dl class="return" compact><dt><b>Returns:</b></dt><dd>AXIS2_SUCCESS on success, else AXIS2_FAILURE </dd></dl>

</div>
</div><p>
<a class="anchor" name="g4aa971c45559a87946fd94f348b7d4d7"></a><!-- doxytag: member="axis2_http_response_writer.h::axis2_http_response_writer_free" ref="g4aa971c45559a87946fd94f348b7d4d7" args="(axis2_http_response_writer_t *response_writer, const axutil_env_t *env)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">AXIS2_EXTERN void axis2_http_response_writer_free           </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="group__axis2__http__response__writer.html#g2259f3ec5abf54528a6b9797e8188771">axis2_http_response_writer_t</a> *&nbsp;</td>
          <td class="paramname"> <em>response_writer</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const <a class="el" href="structaxutil__env.html">axutil_env_t</a> *&nbsp;</td>
          <td class="paramname"> <em>env</em></td><td>&nbsp;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td><td width="100%"></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
<dl compact><dt><b>Parameters:</b></dt><dd>
  <table border="0" cellspacing="2" cellpadding="0">
    <tr><td valign="top"></td><td valign="top"><em>response_writer</em>&nbsp;</td><td>pointer to response writer </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>env</em>&nbsp;</td><td>pointer to environment struct </td></tr>
  </table>
</dl>
<dl class="return" compact><dt><b>Returns:</b></dt><dd>AXIS2_SUCCESS on success, else AXIS2_FAILURE </dd></dl>

</div>
</div><p>
<a class="anchor" name="g4d45835e7866ec6076b41f000c5b3bee"></a><!-- doxytag: member="axis2_http_response_writer.h::axis2_http_response_writer_get_encoding" ref="g4d45835e7866ec6076b41f000c5b3bee" args="(const axis2_http_response_writer_t *response_writer, const axutil_env_t *env)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">AXIS2_EXTERN axis2_char_t* axis2_http_response_writer_get_encoding           </td>
          <td>(</td>
          <td class="paramtype">const <a class="el" href="group__axis2__http__response__writer.html#g2259f3ec5abf54528a6b9797e8188771">axis2_http_response_writer_t</a> *&nbsp;</td>
          <td class="paramname"> <em>response_writer</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const <a class="el" href="structaxutil__env.html">axutil_env_t</a> *&nbsp;</td>
          <td class="paramname"> <em>env</em></td><td>&nbsp;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td><td width="100%"></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
<dl compact><dt><b>Parameters:</b></dt><dd>
  <table border="0" cellspacing="2" cellpadding="0">
    <tr><td valign="top"></td><td valign="top"><em>response_writer</em>&nbsp;</td><td>pointer to response writer </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>env</em>&nbsp;</td><td>pointer to environment struct </td></tr>
  </table>
</dl>

</div>
</div><p>
<a class="anchor" name="gbeed0ef80c00b522dd1372901ecca873"></a><!-- doxytag: member="axis2_http_response_writer.h::axis2_http_response_writer_print_int" ref="gbeed0ef80c00b522dd1372901ecca873" args="(axis2_http_response_writer_t *response_writer, const axutil_env_t *env, int i)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">AXIS2_EXTERN axis2_status_t axis2_http_response_writer_print_int           </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="group__axis2__http__response__writer.html#g2259f3ec5abf54528a6b9797e8188771">axis2_http_response_writer_t</a> *&nbsp;</td>
          <td class="paramname"> <em>response_writer</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const <a class="el" href="structaxutil__env.html">axutil_env_t</a> *&nbsp;</td>
          <td class="paramname"> <em>env</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">int&nbsp;</td>
          <td class="paramname"> <em>i</em></td><td>&nbsp;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td><td width="100%"></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
<dl compact><dt><b>Parameters:</b></dt><dd>
  <table border="0" cellspacing="2" cellpadding="0">
    <tr><td valign="top"></td><td valign="top"><em>response_writer</em>&nbsp;</td><td>pointer to response writer </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>env</em>&nbsp;</td><td>pointer to environment struct </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>i</em>&nbsp;</td><td></td></tr>
  </table>
</dl>
<dl class="return" compact><dt><b>Returns:</b></dt><dd>AXIS2_SUCCESS on success, else AXIS2_FAILURE </dd></dl>

</div>
</div><p>
<a class="anchor" name="g2fcb29f5c9d3c09b08267641f6b78178"></a><!-- doxytag: member="axis2_http_response_writer.h::axis2_http_response_writer_print_str" ref="g2fcb29f5c9d3c09b08267641f6b78178" args="(axis2_http_response_writer_t *response_writer, const axutil_env_t *env, const char *str)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">AXIS2_EXTERN axis2_status_t axis2_http_response_writer_print_str           </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="group__axis2__http__response__writer.html#g2259f3ec5abf54528a6b9797e8188771">axis2_http_response_writer_t</a> *&nbsp;</td>
          <td class="paramname"> <em>response_writer</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const <a class="el" href="structaxutil__env.html">axutil_env_t</a> *&nbsp;</td>
          <td class="paramname"> <em>env</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const char *&nbsp;</td>
          <td class="paramname"> <em>str</em></td><td>&nbsp;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td><td width="100%"></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
<dl compact><dt><b>Parameters:</b></dt><dd>
  <table border="0" cellspacing="2" cellpadding="0">
    <tr><td valign="top"></td><td valign="top"><em>response_writer</em>&nbsp;</td><td>pointer to response writer </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>env</em>&nbsp;</td><td>pointer to environment struct </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>str</em>&nbsp;</td><td>pointer to str </td></tr>
  </table>
</dl>
<dl class="return" compact><dt><b>Returns:</b></dt><dd>AXIS2_SUCCESS on success, else AXIS2_FAILURE </dd></dl>

</div>
</div><p>
<a class="anchor" name="g16200523d3e8833f40e37d80767722bb"></a><!-- doxytag: member="axis2_http_response_writer.h::axis2_http_response_writer_println" ref="g16200523d3e8833f40e37d80767722bb" args="(axis2_http_response_writer_t *response_writer, const axutil_env_t *env)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">AXIS2_EXTERN axis2_status_t axis2_http_response_writer_println           </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="group__axis2__http__response__writer.html#g2259f3ec5abf54528a6b9797e8188771">axis2_http_response_writer_t</a> *&nbsp;</td>
          <td class="paramname"> <em>response_writer</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const <a class="el" href="structaxutil__env.html">axutil_env_t</a> *&nbsp;</td>
          <td class="paramname"> <em>env</em></td><td>&nbsp;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td><td width="100%"></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
<dl compact><dt><b>Parameters:</b></dt><dd>
  <table border="0" cellspacing="2" cellpadding="0">
    <tr><td valign="top"></td><td valign="top"><em>response_writer</em>&nbsp;</td><td>pointer to response writer </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>env</em>&nbsp;</td><td>pointer to environment struct </td></tr>
  </table>
</dl>
<dl class="return" compact><dt><b>Returns:</b></dt><dd>AXIS2_SUCCESS on success, else AXIS2_FAILURE </dd></dl>

</div>
</div><p>
<a class="anchor" name="g12c2594faab7f36ac670b500b5ca9a48"></a><!-- doxytag: member="axis2_http_response_writer.h::axis2_http_response_writer_println_str" ref="g12c2594faab7f36ac670b500b5ca9a48" args="(axis2_http_response_writer_t *response_writer, const axutil_env_t *env, const char *str)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">AXIS2_EXTERN axis2_status_t axis2_http_response_writer_println_str           </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="group__axis2__http__response__writer.html#g2259f3ec5abf54528a6b9797e8188771">axis2_http_response_writer_t</a> *&nbsp;</td>
          <td class="paramname"> <em>response_writer</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const <a class="el" href="structaxutil__env.html">axutil_env_t</a> *&nbsp;</td>
          <td class="paramname"> <em>env</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const char *&nbsp;</td>
          <td class="paramname"> <em>str</em></td><td>&nbsp;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td><td width="100%"></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
<dl compact><dt><b>Parameters:</b></dt><dd>
  <table border="0" cellspacing="2" cellpadding="0">
    <tr><td valign="top"></td><td valign="top"><em>response_writer</em>&nbsp;</td><td>pointer to response writer </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>env</em>&nbsp;</td><td>pointer to environment struct </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>str</em>&nbsp;</td><td>pointer to str </td></tr>
  </table>
</dl>
<dl class="return" compact><dt><b>Returns:</b></dt><dd>AXIS2_SUCCESS on success, else AXIS2_FAILURE </dd></dl>

</div>
</div><p>
<a class="anchor" name="g6d27ae339974794ede82a7c9e1270c22"></a><!-- doxytag: member="axis2_http_response_writer.h::axis2_http_response_writer_write_buf" ref="g6d27ae339974794ede82a7c9e1270c22" args="(axis2_http_response_writer_t *response_writer, const axutil_env_t *env, char *buf, int offset, axis2_ssize_t len)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">AXIS2_EXTERN axis2_status_t axis2_http_response_writer_write_buf           </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="group__axis2__http__response__writer.html#g2259f3ec5abf54528a6b9797e8188771">axis2_http_response_writer_t</a> *&nbsp;</td>
          <td class="paramname"> <em>response_writer</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const <a class="el" href="structaxutil__env.html">axutil_env_t</a> *&nbsp;</td>
          <td class="paramname"> <em>env</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">char *&nbsp;</td>
          <td class="paramname"> <em>buf</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">int&nbsp;</td>
          <td class="paramname"> <em>offset</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">axis2_ssize_t&nbsp;</td>
          <td class="paramname"> <em>len</em></td><td>&nbsp;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td><td width="100%"></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
<dl compact><dt><b>Parameters:</b></dt><dd>
  <table border="0" cellspacing="2" cellpadding="0">
    <tr><td valign="top"></td><td valign="top"><em>response_writer</em>&nbsp;</td><td>pointer to response writer </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>env</em>&nbsp;</td><td>pointer to environment struct </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>buf</em>&nbsp;</td><td>pointer to buf </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>offset</em>&nbsp;</td><td></td></tr>
    <tr><td valign="top"></td><td valign="top"><em>len</em>&nbsp;</td><td></td></tr>
  </table>
</dl>
<dl class="return" compact><dt><b>Returns:</b></dt><dd>AXIS2_SUCCESS on success, else AXIS2_FAILURE </dd></dl>

</div>
</div><p>
<a class="anchor" name="g9368c11f97efadb018f9319d374fcf18"></a><!-- doxytag: member="axis2_http_response_writer.h::axis2_http_response_writer_write_char" ref="g9368c11f97efadb018f9319d374fcf18" args="(axis2_http_response_writer_t *response_writer, const axutil_env_t *env, char c)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">AXIS2_EXTERN axis2_status_t axis2_http_response_writer_write_char           </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="group__axis2__http__response__writer.html#g2259f3ec5abf54528a6b9797e8188771">axis2_http_response_writer_t</a> *&nbsp;</td>
          <td class="paramname"> <em>response_writer</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const <a class="el" href="structaxutil__env.html">axutil_env_t</a> *&nbsp;</td>
          <td class="paramname"> <em>env</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">char&nbsp;</td>
          <td class="paramname"> <em>c</em></td><td>&nbsp;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td><td width="100%"></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
<dl compact><dt><b>Parameters:</b></dt><dd>
  <table border="0" cellspacing="2" cellpadding="0">
    <tr><td valign="top"></td><td valign="top"><em>response_writer</em>&nbsp;</td><td>pointer to response writer </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>env</em>&nbsp;</td><td>pointer to environment struct </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>c</em>&nbsp;</td><td></td></tr>
  </table>
</dl>
<dl class="return" compact><dt><b>Returns:</b></dt><dd>AXIS2_SUCCESS on success, else AXIS2_FAILURE </dd></dl>

</div>
</div><p>
<hr size="1"><address style="text-align: right;"><small>Generated on Fri Apr 17 11:49:45 2009 for Axis2/C by&nbsp;
<a href="http://www.doxygen.org/index.html">
<img src="doxygen.png" alt="doxygen" align="middle" border="0"></a> 1.5.3 </small></address>
</body>
</html>


<|start_filename|>xdocs/api/html/group__axis2__phases__info.html<|end_filename|>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html><head><meta http-equiv="Content-Type" content="text/html;charset=UTF-8">
<title>Axis2/C: phases information</title>
<link href="doxygen.css" rel="stylesheet" type="text/css">
<link href="tabs.css" rel="stylesheet" type="text/css">
</head><body>
<!-- Generated by Doxygen 1.5.3 -->
<div class="tabs">
  <ul>
    <li><a href="index.html"><span>Main&nbsp;Page</span></a></li>
    <li><a href="modules.html"><span>Modules</span></a></li>
    <li><a href="annotated.html"><span>Classes</span></a></li>
    <li><a href="files.html"><span>Files</span></a></li>
    <li><a href="dirs.html"><span>Directories</span></a></li>
    <li><a href="pages.html"><span>Related&nbsp;Pages</span></a></li>
    <li><a href="examples.html"><span>Examples</span></a></li>
    <li>
      <form action="search.php" method="get">
        <table cellspacing="0" cellpadding="0" border="0">
          <tr>
            <td><label>&nbsp;<u>S</u>earch&nbsp;for&nbsp;</label></td>
            <td><input type="text" name="query" value="" size="20" accesskey="s"/></td>
          </tr>
        </table>
      </form>
    </li>
  </ul>
</div>
<h1>phases information</h1><table border="0" cellpadding="0" cellspacing="0">
<tr><td></td></tr>
<tr><td colspan="2"><br><h2>Typedefs</h2></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top">typedef struct <br>
axis2_phases_info&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__axis2__phases__info.html#g046cd908ab0e26ffabd953b41415a712">axis2_phases_info_t</a></td></tr>

<tr><td colspan="2"><br><h2>Functions</h2></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top">AXIS2_EXTERN void&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__axis2__phases__info.html#g944b8a5502c31e04875710e4cff6147f">axis2_phases_info_free</a> (<a class="el" href="group__axis2__phases__info.html#g046cd908ab0e26ffabd953b41415a712">axis2_phases_info_t</a> *phases_info, const <a class="el" href="structaxutil__env.html">axutil_env_t</a> *env)</td></tr>

<tr><td class="memItemLeft" nowrap align="right" valign="top">AXIS2_EXTERN <br>
axis2_status_t&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__axis2__phases__info.html#gc58249a95191f44734acbb8d1ea60fab">axis2_phases_info_set_in_phases</a> (<a class="el" href="group__axis2__phases__info.html#g046cd908ab0e26ffabd953b41415a712">axis2_phases_info_t</a> *phases_info, const <a class="el" href="structaxutil__env.html">axutil_env_t</a> *env, <a class="el" href="group__axutil__array__list.html#g1a6a89777db876cfa0cc86787b7be6a0">axutil_array_list_t</a> *in_phases)</td></tr>

<tr><td class="memItemLeft" nowrap align="right" valign="top">AXIS2_EXTERN <br>
axis2_status_t&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__axis2__phases__info.html#g63052550bd87d86126ced76204f0ff0b">axis2_phases_info_set_out_phases</a> (<a class="el" href="group__axis2__phases__info.html#g046cd908ab0e26ffabd953b41415a712">axis2_phases_info_t</a> *phases_info, const <a class="el" href="structaxutil__env.html">axutil_env_t</a> *env, <a class="el" href="group__axutil__array__list.html#g1a6a89777db876cfa0cc86787b7be6a0">axutil_array_list_t</a> *out_phases)</td></tr>

<tr><td class="memItemLeft" nowrap align="right" valign="top">AXIS2_EXTERN <br>
axis2_status_t&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__axis2__phases__info.html#gfed35a8618887bfc9568c24c701dad92">axis2_phases_info_set_in_faultphases</a> (<a class="el" href="group__axis2__phases__info.html#g046cd908ab0e26ffabd953b41415a712">axis2_phases_info_t</a> *phases_info, const <a class="el" href="structaxutil__env.html">axutil_env_t</a> *env, <a class="el" href="group__axutil__array__list.html#g1a6a89777db876cfa0cc86787b7be6a0">axutil_array_list_t</a> *in_faultphases)</td></tr>

<tr><td class="memItemLeft" nowrap align="right" valign="top">AXIS2_EXTERN <br>
axis2_status_t&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__axis2__phases__info.html#g117fd37b24eac5a121346998b04dfdd0">axis2_phases_info_set_out_faultphases</a> (<a class="el" href="group__axis2__phases__info.html#g046cd908ab0e26ffabd953b41415a712">axis2_phases_info_t</a> *phases_info, const <a class="el" href="structaxutil__env.html">axutil_env_t</a> *env, <a class="el" href="group__axutil__array__list.html#g1a6a89777db876cfa0cc86787b7be6a0">axutil_array_list_t</a> *out_faultphases)</td></tr>

<tr><td class="memItemLeft" nowrap align="right" valign="top">AXIS2_EXTERN <br>
<a class="el" href="group__axutil__array__list.html#g1a6a89777db876cfa0cc86787b7be6a0">axutil_array_list_t</a> *&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__axis2__phases__info.html#g2048bb68c1df4bfef9129518f8edaf39">axis2_phases_info_get_in_phases</a> (const <a class="el" href="group__axis2__phases__info.html#g046cd908ab0e26ffabd953b41415a712">axis2_phases_info_t</a> *phases_info, const <a class="el" href="structaxutil__env.html">axutil_env_t</a> *env)</td></tr>

<tr><td class="memItemLeft" nowrap align="right" valign="top">AXIS2_EXTERN <br>
<a class="el" href="group__axutil__array__list.html#g1a6a89777db876cfa0cc86787b7be6a0">axutil_array_list_t</a> *&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__axis2__phases__info.html#gf807906bcf7e5b6d7bd870b144c8f859">axis2_phases_info_get_out_phases</a> (const <a class="el" href="group__axis2__phases__info.html#g046cd908ab0e26ffabd953b41415a712">axis2_phases_info_t</a> *phases_info, const <a class="el" href="structaxutil__env.html">axutil_env_t</a> *env)</td></tr>

<tr><td class="memItemLeft" nowrap align="right" valign="top">AXIS2_EXTERN <br>
<a class="el" href="group__axutil__array__list.html#g1a6a89777db876cfa0cc86787b7be6a0">axutil_array_list_t</a> *&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__axis2__phases__info.html#g076618d23020936a6c629c96a33d1bfe">axis2_phases_info_get_in_faultphases</a> (const <a class="el" href="group__axis2__phases__info.html#g046cd908ab0e26ffabd953b41415a712">axis2_phases_info_t</a> *phases_info, const <a class="el" href="structaxutil__env.html">axutil_env_t</a> *env)</td></tr>

<tr><td class="memItemLeft" nowrap align="right" valign="top">AXIS2_EXTERN <br>
<a class="el" href="group__axutil__array__list.html#g1a6a89777db876cfa0cc86787b7be6a0">axutil_array_list_t</a> *&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__axis2__phases__info.html#g4b9a7e11304a10d497ed8f22cd2f590f">axis2_phases_info_get_out_faultphases</a> (const <a class="el" href="group__axis2__phases__info.html#g046cd908ab0e26ffabd953b41415a712">axis2_phases_info_t</a> *phases_info, const <a class="el" href="structaxutil__env.html">axutil_env_t</a> *env)</td></tr>

<tr><td class="memItemLeft" nowrap align="right" valign="top">AXIS2_EXTERN <br>
<a class="el" href="group__axutil__array__list.html#g1a6a89777db876cfa0cc86787b7be6a0">axutil_array_list_t</a> *&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__axis2__phases__info.html#g6672b6b521ec38cff0ac0af4e874bb36">axis2_phases_info_get_op_in_phases</a> (const <a class="el" href="group__axis2__phases__info.html#g046cd908ab0e26ffabd953b41415a712">axis2_phases_info_t</a> *phases_info, const <a class="el" href="structaxutil__env.html">axutil_env_t</a> *env)</td></tr>

<tr><td class="memItemLeft" nowrap align="right" valign="top">AXIS2_EXTERN <br>
<a class="el" href="group__axutil__array__list.html#g1a6a89777db876cfa0cc86787b7be6a0">axutil_array_list_t</a> *&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__axis2__phases__info.html#g04efe888d0f162730818d214fd52a6d2">axis2_phases_info_get_op_out_phases</a> (const <a class="el" href="group__axis2__phases__info.html#g046cd908ab0e26ffabd953b41415a712">axis2_phases_info_t</a> *phases_info, const <a class="el" href="structaxutil__env.html">axutil_env_t</a> *env)</td></tr>

<tr><td class="memItemLeft" nowrap align="right" valign="top">AXIS2_EXTERN <br>
<a class="el" href="group__axutil__array__list.html#g1a6a89777db876cfa0cc86787b7be6a0">axutil_array_list_t</a> *&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__axis2__phases__info.html#g3e9ac196d87b66cc25396f7b9b4cd012">axis2_phases_info_get_op_in_faultphases</a> (const <a class="el" href="group__axis2__phases__info.html#g046cd908ab0e26ffabd953b41415a712">axis2_phases_info_t</a> *phases_info, const <a class="el" href="structaxutil__env.html">axutil_env_t</a> *env)</td></tr>

<tr><td class="memItemLeft" nowrap align="right" valign="top">AXIS2_EXTERN <br>
<a class="el" href="group__axutil__array__list.html#g1a6a89777db876cfa0cc86787b7be6a0">axutil_array_list_t</a> *&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__axis2__phases__info.html#ge6a731fdeab3aed6615283a43e2909d0">axis2_phases_info_get_op_out_faultphases</a> (const <a class="el" href="group__axis2__phases__info.html#g046cd908ab0e26ffabd953b41415a712">axis2_phases_info_t</a> *phases_info, const <a class="el" href="structaxutil__env.html">axutil_env_t</a> *env)</td></tr>

<tr><td class="memItemLeft" nowrap align="right" valign="top">AXIS2_EXTERN <br>
axis2_status_t&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__axis2__phases__info.html#g5998f17f8771a465338f283ce585f82b">axis2_phases_info_set_op_phases</a> (<a class="el" href="group__axis2__phases__info.html#g046cd908ab0e26ffabd953b41415a712">axis2_phases_info_t</a> *phases_info, const <a class="el" href="structaxutil__env.html">axutil_env_t</a> *env, struct axis2_op *axis2_opt)</td></tr>

<tr><td class="memItemLeft" nowrap align="right" valign="top">AXIS2_EXTERN <br>
<a class="el" href="group__axis2__phases__info.html#g046cd908ab0e26ffabd953b41415a712">axis2_phases_info_t</a> *&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__axis2__phases__info.html#g6c64569d496cd6d9845761b1f1831f8f">axis2_phases_info_create</a> (const <a class="el" href="structaxutil__env.html">axutil_env_t</a> *env)</td></tr>

<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="g56f0a343c04bbd2bdcf5af2fef9cbe46"></a><!-- doxytag: member="axis2_phases_info::axis2_phases_info_copy_flow" ref="g56f0a343c04bbd2bdcf5af2fef9cbe46" args="(const axutil_env_t *env, const axutil_array_list_t *flow_to_copy)" -->
AXIS2_EXTERN <br>
<a class="el" href="group__axutil__array__list.html#g1a6a89777db876cfa0cc86787b7be6a0">axutil_array_list_t</a> *&nbsp;</td><td class="memItemRight" valign="bottom"><b>axis2_phases_info_copy_flow</b> (const <a class="el" href="structaxutil__env.html">axutil_env_t</a> *env, const <a class="el" href="group__axutil__array__list.html#g1a6a89777db876cfa0cc86787b7be6a0">axutil_array_list_t</a> *flow_to_copy)</td></tr>

</table>
<hr><a name="_details"></a><h2>Detailed Description</h2>
In deployment engine when configuration builder parse phase order elements in axis2.xml, for phases defined in a phase order it will create a phase name list and add it to the phases info. There are four phase orders. inflow, outflow, in faultflow and out faultflow. So configuration builder add array lists for each of this phase orders into the phases info.<p>
At the time of module engagement phase resolver call the functions here to retrieve phase lists for each flow for the purpose of adding handlers. When such a request come what each function do is, create phase instances list for corresponding phase names stored in the phase name list for that flow and return. <hr><h2>Typedef Documentation</h2>
<a class="anchor" name="g046cd908ab0e26ffabd953b41415a712"></a><!-- doxytag: member="axis2_phases_info.h::axis2_phases_info_t" ref="g046cd908ab0e26ffabd953b41415a712" args="" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">typedef struct axis2_phases_info <a class="el" href="group__axis2__phases__info.html#g046cd908ab0e26ffabd953b41415a712">axis2_phases_info_t</a>          </td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
Type name for struct axis2_phases_info 
</div>
</div><p>
<hr><h2>Function Documentation</h2>
<a class="anchor" name="g6c64569d496cd6d9845761b1f1831f8f"></a><!-- doxytag: member="axis2_phases_info.h::axis2_phases_info_create" ref="g6c64569d496cd6d9845761b1f1831f8f" args="(const axutil_env_t *env)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">AXIS2_EXTERN <a class="el" href="group__axis2__phases__info.html#g046cd908ab0e26ffabd953b41415a712">axis2_phases_info_t</a>* axis2_phases_info_create           </td>
          <td>(</td>
          <td class="paramtype">const <a class="el" href="structaxutil__env.html">axutil_env_t</a> *&nbsp;</td>
          <td class="paramname"> <em>env</em>          </td>
          <td>&nbsp;)&nbsp;</td>
          <td width="100%"></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
create Phases Info struct <dl compact><dt><b>Parameters:</b></dt><dd>
  <table border="0" cellspacing="2" cellpadding="0">
    <tr><td valign="top"></td><td valign="top"><em>env</em>&nbsp;</td><td>pointer to environment struct </td></tr>
  </table>
</dl>
<dl class="return" compact><dt><b>Returns:</b></dt><dd>pointer to newly created phases info </dd></dl>

</div>
</div><p>
<a class="anchor" name="g944b8a5502c31e04875710e4cff6147f"></a><!-- doxytag: member="axis2_phases_info.h::axis2_phases_info_free" ref="g944b8a5502c31e04875710e4cff6147f" args="(axis2_phases_info_t *phases_info, const axutil_env_t *env)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">AXIS2_EXTERN void axis2_phases_info_free           </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="group__axis2__phases__info.html#g046cd908ab0e26ffabd953b41415a712">axis2_phases_info_t</a> *&nbsp;</td>
          <td class="paramname"> <em>phases_info</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const <a class="el" href="structaxutil__env.html">axutil_env_t</a> *&nbsp;</td>
          <td class="paramname"> <em>env</em></td><td>&nbsp;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td><td width="100%"></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
Deallocate memory <dl compact><dt><b>Parameters:</b></dt><dd>
  <table border="0" cellspacing="2" cellpadding="0">
    <tr><td valign="top"></td><td valign="top"><em>pahses_info</em>&nbsp;</td><td>pointer to phases info </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>env</em>&nbsp;</td><td>pointer to environment struct </td></tr>
  </table>
</dl>
<dl class="return" compact><dt><b>Returns:</b></dt><dd>void </dd></dl>

</div>
</div><p>
<a class="anchor" name="g076618d23020936a6c629c96a33d1bfe"></a><!-- doxytag: member="axis2_phases_info.h::axis2_phases_info_get_in_faultphases" ref="g076618d23020936a6c629c96a33d1bfe" args="(const axis2_phases_info_t *phases_info, const axutil_env_t *env)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">AXIS2_EXTERN <a class="el" href="group__axutil__array__list.html#g1a6a89777db876cfa0cc86787b7be6a0">axutil_array_list_t</a>* axis2_phases_info_get_in_faultphases           </td>
          <td>(</td>
          <td class="paramtype">const <a class="el" href="group__axis2__phases__info.html#g046cd908ab0e26ffabd953b41415a712">axis2_phases_info_t</a> *&nbsp;</td>
          <td class="paramname"> <em>phases_info</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const <a class="el" href="structaxutil__env.html">axutil_env_t</a> *&nbsp;</td>
          <td class="paramname"> <em>env</em></td><td>&nbsp;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td><td width="100%"></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
<dl compact><dt><b>Parameters:</b></dt><dd>
  <table border="0" cellspacing="2" cellpadding="0">
    <tr><td valign="top"></td><td valign="top"><em>phases_info</em>&nbsp;</td><td>pointer to phases info  env pointer to environment struct </td></tr>
  </table>
</dl>

</div>
</div><p>
<a class="anchor" name="g2048bb68c1df4bfef9129518f8edaf39"></a><!-- doxytag: member="axis2_phases_info.h::axis2_phases_info_get_in_phases" ref="g2048bb68c1df4bfef9129518f8edaf39" args="(const axis2_phases_info_t *phases_info, const axutil_env_t *env)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">AXIS2_EXTERN <a class="el" href="group__axutil__array__list.html#g1a6a89777db876cfa0cc86787b7be6a0">axutil_array_list_t</a>* axis2_phases_info_get_in_phases           </td>
          <td>(</td>
          <td class="paramtype">const <a class="el" href="group__axis2__phases__info.html#g046cd908ab0e26ffabd953b41415a712">axis2_phases_info_t</a> *&nbsp;</td>
          <td class="paramname"> <em>phases_info</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const <a class="el" href="structaxutil__env.html">axutil_env_t</a> *&nbsp;</td>
          <td class="paramname"> <em>env</em></td><td>&nbsp;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td><td width="100%"></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
<dl compact><dt><b>Parameters:</b></dt><dd>
  <table border="0" cellspacing="2" cellpadding="0">
    <tr><td valign="top"></td><td valign="top"><em>phases_info</em>&nbsp;</td><td>pointer to phases info </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>env</em>&nbsp;</td><td>pointer to environment struct </td></tr>
  </table>
</dl>

</div>
</div><p>
<a class="anchor" name="g3e9ac196d87b66cc25396f7b9b4cd012"></a><!-- doxytag: member="axis2_phases_info.h::axis2_phases_info_get_op_in_faultphases" ref="g3e9ac196d87b66cc25396f7b9b4cd012" args="(const axis2_phases_info_t *phases_info, const axutil_env_t *env)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">AXIS2_EXTERN <a class="el" href="group__axutil__array__list.html#g1a6a89777db876cfa0cc86787b7be6a0">axutil_array_list_t</a>* axis2_phases_info_get_op_in_faultphases           </td>
          <td>(</td>
          <td class="paramtype">const <a class="el" href="group__axis2__phases__info.html#g046cd908ab0e26ffabd953b41415a712">axis2_phases_info_t</a> *&nbsp;</td>
          <td class="paramname"> <em>phases_info</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const <a class="el" href="structaxutil__env.html">axutil_env_t</a> *&nbsp;</td>
          <td class="paramname"> <em>env</em></td><td>&nbsp;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td><td width="100%"></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
<dl compact><dt><b>Parameters:</b></dt><dd>
  <table border="0" cellspacing="2" cellpadding="0">
    <tr><td valign="top"></td><td valign="top"><em>phases_info</em>&nbsp;</td><td>pointer to phases info </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>env</em>&nbsp;</td><td>pointer to environment struct </td></tr>
  </table>
</dl>

</div>
</div><p>
<a class="anchor" name="g6672b6b521ec38cff0ac0af4e874bb36"></a><!-- doxytag: member="axis2_phases_info.h::axis2_phases_info_get_op_in_phases" ref="g6672b6b521ec38cff0ac0af4e874bb36" args="(const axis2_phases_info_t *phases_info, const axutil_env_t *env)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">AXIS2_EXTERN <a class="el" href="group__axutil__array__list.html#g1a6a89777db876cfa0cc86787b7be6a0">axutil_array_list_t</a>* axis2_phases_info_get_op_in_phases           </td>
          <td>(</td>
          <td class="paramtype">const <a class="el" href="group__axis2__phases__info.html#g046cd908ab0e26ffabd953b41415a712">axis2_phases_info_t</a> *&nbsp;</td>
          <td class="paramname"> <em>phases_info</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const <a class="el" href="structaxutil__env.html">axutil_env_t</a> *&nbsp;</td>
          <td class="paramname"> <em>env</em></td><td>&nbsp;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td><td width="100%"></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
<dl compact><dt><b>Parameters:</b></dt><dd>
  <table border="0" cellspacing="2" cellpadding="0">
    <tr><td valign="top"></td><td valign="top"><em>phases_info</em>&nbsp;</td><td>pointer to phases info </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>env</em>&nbsp;</td><td>pointer to environment struct </td></tr>
  </table>
</dl>

</div>
</div><p>
<a class="anchor" name="ge6a731fdeab3aed6615283a43e2909d0"></a><!-- doxytag: member="axis2_phases_info.h::axis2_phases_info_get_op_out_faultphases" ref="ge6a731fdeab3aed6615283a43e2909d0" args="(const axis2_phases_info_t *phases_info, const axutil_env_t *env)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">AXIS2_EXTERN <a class="el" href="group__axutil__array__list.html#g1a6a89777db876cfa0cc86787b7be6a0">axutil_array_list_t</a>* axis2_phases_info_get_op_out_faultphases           </td>
          <td>(</td>
          <td class="paramtype">const <a class="el" href="group__axis2__phases__info.html#g046cd908ab0e26ffabd953b41415a712">axis2_phases_info_t</a> *&nbsp;</td>
          <td class="paramname"> <em>phases_info</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const <a class="el" href="structaxutil__env.html">axutil_env_t</a> *&nbsp;</td>
          <td class="paramname"> <em>env</em></td><td>&nbsp;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td><td width="100%"></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
<dl compact><dt><b>Parameters:</b></dt><dd>
  <table border="0" cellspacing="2" cellpadding="0">
    <tr><td valign="top"></td><td valign="top"><em>phases_info</em>&nbsp;</td><td>pointer to phases info </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>env</em>&nbsp;</td><td>pointer to environment struct </td></tr>
  </table>
</dl>

</div>
</div><p>
<a class="anchor" name="g04efe888d0f162730818d214fd52a6d2"></a><!-- doxytag: member="axis2_phases_info.h::axis2_phases_info_get_op_out_phases" ref="g04efe888d0f162730818d214fd52a6d2" args="(const axis2_phases_info_t *phases_info, const axutil_env_t *env)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">AXIS2_EXTERN <a class="el" href="group__axutil__array__list.html#g1a6a89777db876cfa0cc86787b7be6a0">axutil_array_list_t</a>* axis2_phases_info_get_op_out_phases           </td>
          <td>(</td>
          <td class="paramtype">const <a class="el" href="group__axis2__phases__info.html#g046cd908ab0e26ffabd953b41415a712">axis2_phases_info_t</a> *&nbsp;</td>
          <td class="paramname"> <em>phases_info</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const <a class="el" href="structaxutil__env.html">axutil_env_t</a> *&nbsp;</td>
          <td class="paramname"> <em>env</em></td><td>&nbsp;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td><td width="100%"></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
<dl compact><dt><b>Parameters:</b></dt><dd>
  <table border="0" cellspacing="2" cellpadding="0">
    <tr><td valign="top"></td><td valign="top"><em>phases_info</em>&nbsp;</td><td>pointer to phases info </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>env</em>&nbsp;</td><td>pointer to environment struct </td></tr>
  </table>
</dl>

</div>
</div><p>
<a class="anchor" name="g4b9a7e11304a10d497ed8f22cd2f590f"></a><!-- doxytag: member="axis2_phases_info.h::axis2_phases_info_get_out_faultphases" ref="g4b9a7e11304a10d497ed8f22cd2f590f" args="(const axis2_phases_info_t *phases_info, const axutil_env_t *env)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">AXIS2_EXTERN <a class="el" href="group__axutil__array__list.html#g1a6a89777db876cfa0cc86787b7be6a0">axutil_array_list_t</a>* axis2_phases_info_get_out_faultphases           </td>
          <td>(</td>
          <td class="paramtype">const <a class="el" href="group__axis2__phases__info.html#g046cd908ab0e26ffabd953b41415a712">axis2_phases_info_t</a> *&nbsp;</td>
          <td class="paramname"> <em>phases_info</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const <a class="el" href="structaxutil__env.html">axutil_env_t</a> *&nbsp;</td>
          <td class="paramname"> <em>env</em></td><td>&nbsp;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td><td width="100%"></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
<dl compact><dt><b>Parameters:</b></dt><dd>
  <table border="0" cellspacing="2" cellpadding="0">
    <tr><td valign="top"></td><td valign="top"><em>phases_info</em>&nbsp;</td><td>pointer to phases info </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>env</em>&nbsp;</td><td>pointer to environment struct </td></tr>
  </table>
</dl>

</div>
</div><p>
<a class="anchor" name="gf807906bcf7e5b6d7bd870b144c8f859"></a><!-- doxytag: member="axis2_phases_info.h::axis2_phases_info_get_out_phases" ref="gf807906bcf7e5b6d7bd870b144c8f859" args="(const axis2_phases_info_t *phases_info, const axutil_env_t *env)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">AXIS2_EXTERN <a class="el" href="group__axutil__array__list.html#g1a6a89777db876cfa0cc86787b7be6a0">axutil_array_list_t</a>* axis2_phases_info_get_out_phases           </td>
          <td>(</td>
          <td class="paramtype">const <a class="el" href="group__axis2__phases__info.html#g046cd908ab0e26ffabd953b41415a712">axis2_phases_info_t</a> *&nbsp;</td>
          <td class="paramname"> <em>phases_info</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const <a class="el" href="structaxutil__env.html">axutil_env_t</a> *&nbsp;</td>
          <td class="paramname"> <em>env</em></td><td>&nbsp;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td><td width="100%"></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
<dl compact><dt><b>Parameters:</b></dt><dd>
  <table border="0" cellspacing="2" cellpadding="0">
    <tr><td valign="top"></td><td valign="top"><em>phases_info</em>&nbsp;</td><td>pointer to phases info </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>env</em>&nbsp;</td><td>pointer to environment struct </td></tr>
  </table>
</dl>

</div>
</div><p>
<a class="anchor" name="gfed35a8618887bfc9568c24c701dad92"></a><!-- doxytag: member="axis2_phases_info.h::axis2_phases_info_set_in_faultphases" ref="gfed35a8618887bfc9568c24c701dad92" args="(axis2_phases_info_t *phases_info, const axutil_env_t *env, axutil_array_list_t *in_faultphases)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">AXIS2_EXTERN axis2_status_t axis2_phases_info_set_in_faultphases           </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="group__axis2__phases__info.html#g046cd908ab0e26ffabd953b41415a712">axis2_phases_info_t</a> *&nbsp;</td>
          <td class="paramname"> <em>phases_info</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const <a class="el" href="structaxutil__env.html">axutil_env_t</a> *&nbsp;</td>
          <td class="paramname"> <em>env</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype"><a class="el" href="group__axutil__array__list.html#g1a6a89777db876cfa0cc86787b7be6a0">axutil_array_list_t</a> *&nbsp;</td>
          <td class="paramname"> <em>in_faultphases</em></td><td>&nbsp;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td><td width="100%"></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
Set the INfaultflow phase names as an array list. These phases are defined in the INfaultflow phase order element defined in axis2.xml.<p>
<dl compact><dt><b>Parameters:</b></dt><dd>
  <table border="0" cellspacing="2" cellpadding="0">
    <tr><td valign="top"></td><td valign="top"><em>phases_info</em>&nbsp;</td><td>pointer to phases info </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>env</em>&nbsp;</td><td>pointer to environment struct </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>in_faultphases</em>&nbsp;</td><td>pionter to in fault phases </td></tr>
  </table>
</dl>
<dl class="return" compact><dt><b>Returns:</b></dt><dd>AXIS2_SUCCESS on success, else AXIS2_FAILURE </dd></dl>

</div>
</div><p>
<a class="anchor" name="gc58249a95191f44734acbb8d1ea60fab"></a><!-- doxytag: member="axis2_phases_info.h::axis2_phases_info_set_in_phases" ref="gc58249a95191f44734acbb8d1ea60fab" args="(axis2_phases_info_t *phases_info, const axutil_env_t *env, axutil_array_list_t *in_phases)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">AXIS2_EXTERN axis2_status_t axis2_phases_info_set_in_phases           </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="group__axis2__phases__info.html#g046cd908ab0e26ffabd953b41415a712">axis2_phases_info_t</a> *&nbsp;</td>
          <td class="paramname"> <em>phases_info</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const <a class="el" href="structaxutil__env.html">axutil_env_t</a> *&nbsp;</td>
          <td class="paramname"> <em>env</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype"><a class="el" href="group__axutil__array__list.html#g1a6a89777db876cfa0cc86787b7be6a0">axutil_array_list_t</a> *&nbsp;</td>
          <td class="paramname"> <em>in_phases</em></td><td>&nbsp;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td><td width="100%"></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
Set the inflow phase names as an array list. These phases are defined in the inflow phase order element defined in axis2.xml.<p>
<dl compact><dt><b>Parameters:</b></dt><dd>
  <table border="0" cellspacing="2" cellpadding="0">
    <tr><td valign="top"></td><td valign="top"><em>phases_info</em>&nbsp;</td><td>pointer to phases info </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>env</em>&nbsp;</td><td>pointer to environment struct </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>in_phases</em>&nbsp;</td><td>inter to in phases </td></tr>
  </table>
</dl>
<dl class="return" compact><dt><b>Returns:</b></dt><dd>AXIS2_SUCCESS on success, else AXIS2_FAILURE </dd></dl>

</div>
</div><p>
<a class="anchor" name="g5998f17f8771a465338f283ce585f82b"></a><!-- doxytag: member="axis2_phases_info.h::axis2_phases_info_set_op_phases" ref="g5998f17f8771a465338f283ce585f82b" args="(axis2_phases_info_t *phases_info, const axutil_env_t *env, struct axis2_op *axis2_opt)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">AXIS2_EXTERN axis2_status_t axis2_phases_info_set_op_phases           </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="group__axis2__phases__info.html#g046cd908ab0e26ffabd953b41415a712">axis2_phases_info_t</a> *&nbsp;</td>
          <td class="paramname"> <em>phases_info</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const <a class="el" href="structaxutil__env.html">axutil_env_t</a> *&nbsp;</td>
          <td class="paramname"> <em>env</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">struct axis2_op *&nbsp;</td>
          <td class="paramname"> <em>axis2_opt</em></td><td>&nbsp;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td><td width="100%"></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
<dl compact><dt><b>Parameters:</b></dt><dd>
  <table border="0" cellspacing="2" cellpadding="0">
    <tr><td valign="top"></td><td valign="top"><em>phases_info</em>&nbsp;</td><td>pointer to phases info </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>env</em>&nbsp;</td><td>pointer to environment struct </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>axis2_opt</em>&nbsp;</td><td>pointer to axis2 opt </td></tr>
  </table>
</dl>
<dl class="return" compact><dt><b>Returns:</b></dt><dd>AXIS2_SUCCESS on success, else AXIS2_FAILURE </dd></dl>

</div>
</div><p>
<a class="anchor" name="g117fd37b24eac5a121346998b04dfdd0"></a><!-- doxytag: member="axis2_phases_info.h::axis2_phases_info_set_out_faultphases" ref="g117fd37b24eac5a121346998b04dfdd0" args="(axis2_phases_info_t *phases_info, const axutil_env_t *env, axutil_array_list_t *out_faultphases)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">AXIS2_EXTERN axis2_status_t axis2_phases_info_set_out_faultphases           </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="group__axis2__phases__info.html#g046cd908ab0e26ffabd953b41415a712">axis2_phases_info_t</a> *&nbsp;</td>
          <td class="paramname"> <em>phases_info</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const <a class="el" href="structaxutil__env.html">axutil_env_t</a> *&nbsp;</td>
          <td class="paramname"> <em>env</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype"><a class="el" href="group__axutil__array__list.html#g1a6a89777db876cfa0cc86787b7be6a0">axutil_array_list_t</a> *&nbsp;</td>
          <td class="paramname"> <em>out_faultphases</em></td><td>&nbsp;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td><td width="100%"></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
Set the Outfaultflow phase names as an array list. These phases are defined in the Outfaultflow phase order element defined in axis2.xml.<p>
<dl compact><dt><b>Parameters:</b></dt><dd>
  <table border="0" cellspacing="2" cellpadding="0">
    <tr><td valign="top"></td><td valign="top"><em>phases_info</em>&nbsp;</td><td>pointer to phases info </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>env</em>&nbsp;</td><td>pointer to env </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>out_faultphases</em>&nbsp;</td><td>pointer to out fault phases </td></tr>
  </table>
</dl>
<dl class="return" compact><dt><b>Returns:</b></dt><dd>AXIS2_SUCCESS on success, else AXIS2_FAILURE </dd></dl>

</div>
</div><p>
<a class="anchor" name="g63052550bd87d86126ced76204f0ff0b"></a><!-- doxytag: member="axis2_phases_info.h::axis2_phases_info_set_out_phases" ref="g63052550bd87d86126ced76204f0ff0b" args="(axis2_phases_info_t *phases_info, const axutil_env_t *env, axutil_array_list_t *out_phases)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">AXIS2_EXTERN axis2_status_t axis2_phases_info_set_out_phases           </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="group__axis2__phases__info.html#g046cd908ab0e26ffabd953b41415a712">axis2_phases_info_t</a> *&nbsp;</td>
          <td class="paramname"> <em>phases_info</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const <a class="el" href="structaxutil__env.html">axutil_env_t</a> *&nbsp;</td>
          <td class="paramname"> <em>env</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype"><a class="el" href="group__axutil__array__list.html#g1a6a89777db876cfa0cc86787b7be6a0">axutil_array_list_t</a> *&nbsp;</td>
          <td class="paramname"> <em>out_phases</em></td><td>&nbsp;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td><td width="100%"></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
Set the outflow phase names as an array list. These phases are defined in the outflow phase order element defined in axis2.xml.<p>
<dl compact><dt><b>Parameters:</b></dt><dd>
  <table border="0" cellspacing="2" cellpadding="0">
    <tr><td valign="top"></td><td valign="top"><em>phases_info</em>&nbsp;</td><td>pointer to phases info </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>env</em>&nbsp;</td><td>pointer to environment struct </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>out_phases</em>&nbsp;</td><td>pointer to out phases </td></tr>
  </table>
</dl>
<dl class="return" compact><dt><b>Returns:</b></dt><dd>AXIS2_SUCCESS on success, else AXIS2_FAILURE </dd></dl>

</div>
</div><p>
<hr size="1"><address style="text-align: right;"><small>Generated on Fri Apr 17 11:49:45 2009 for Axis2/C by&nbsp;
<a href="http://www.doxygen.org/index.html">
<img src="doxygen.png" alt="doxygen" align="middle" border="0"></a> 1.5.3 </small></address>
</body>
</html>


<|start_filename|>util/src/param_container.c<|end_filename|>
/*
 * 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.
 */

#include <axutil_param_container.h>

struct axutil_param_container
{
    axutil_hash_t *params;
    axutil_array_list_t *params_list;
};

AXIS2_EXTERN axutil_param_container_t *AXIS2_CALL
axutil_param_container_create(
    const axutil_env_t *env)
{
    axutil_param_container_t *param_container = NULL;

    AXIS2_ENV_CHECK(env, NULL);

    param_container =
        (axutil_param_container_t *) AXIS2_MALLOC(env->allocator,
                                                  sizeof
                                                  (axutil_param_container_t));

    if (!param_container)
    {
        AXIS2_ERROR_SET(env->error, AXIS2_ERROR_NO_MEMORY, AXIS2_FAILURE);
        AXIS2_LOG_ERROR(env->log, AXIS2_LOG_SI, "Not enough memory");
        return NULL;
    }

    param_container->params = NULL;
    param_container->params_list = NULL;
    param_container->params_list = axutil_array_list_create(env, 0);

    param_container->params = axutil_hash_make(env);
    if (!param_container->params)
    {
        axutil_param_container_free(param_container, env);
        AXIS2_ERROR_SET(env->error, AXIS2_ERROR_NO_MEMORY, AXIS2_FAILURE);
        AXIS2_LOG_ERROR(env->log, AXIS2_LOG_SI, "Not enough memory");
        return NULL;
    }

    return param_container;
}

AXIS2_EXTERN void AXIS2_CALL
axutil_param_container_free(
    axutil_param_container_t *param_container,
    const axutil_env_t *env)
{
    AXIS2_ENV_CHECK(env, AXIS2_FAILURE);

    if (param_container->params)
    {
        axutil_hash_index_t *hi = NULL;
        void *val = NULL;
        for (hi = axutil_hash_first(param_container->params, env); hi;
             hi = axutil_hash_next(env, hi))
        {
            axutil_param_t *param = NULL;
            axutil_hash_this(hi, NULL, NULL, &val);
            param = (axutil_param_t *) val;
            if (param)
            {
                axutil_param_free(param, env);
                param = NULL;
            }
            val = NULL;
        }
        axutil_hash_free(param_container->params, env);
    }
    if (param_container->params_list)
    {
        /* This is the array list which is returned when all params are
         * requested from param_container. Params referenced here are
         * actually contained in params hash table
         */
        axutil_array_list_free(param_container->params_list, env);
        param_container->params_list = NULL;
    }

    AXIS2_FREE(env->allocator, param_container);
    return;
}

AXIS2_EXTERN void AXIS2_CALL
axutil_param_container_free_void_arg(
    void *param_container,
    const axutil_env_t *env)
{
    axutil_param_container_t *param_container_l = NULL;

    AXIS2_ENV_CHECK(env, AXIS2_FAILURE);
    param_container_l = (axutil_param_container_t *) param_container;
    axutil_param_container_free(param_container_l, env);
    return;
}

AXIS2_EXTERN axis2_status_t AXIS2_CALL
axutil_param_container_add_param(
    axutil_param_container_t *param_container,
    const axutil_env_t *env,
    axutil_param_t *param)
{
    axis2_char_t *param_name = NULL;

    AXIS2_ENV_CHECK(env, AXIS2_FAILURE);
    AXIS2_PARAM_CHECK(env->error, param, AXIS2_FAILURE);

    if (!(param_container->params))
    {
        param_container->params = axutil_hash_make(env);
        if (!param_container->params)
        {
            return AXIS2_FAILURE;
        }
    }
    param_name = axutil_param_get_name(param, env);
    if (!param_name)
    {
        AXIS2_ERROR_SET(env->error, AXIS2_ERROR_INVALID_STATE_PARAM,
                        AXIS2_FAILURE);
        AXIS2_LOG_ERROR(env->log, AXIS2_LOG_SI, "Invalid param state");
        return AXIS2_FAILURE;
    }
    axutil_hash_set(param_container->params, param_name, AXIS2_HASH_KEY_STRING,
                    param);

    return AXIS2_SUCCESS;
}

AXIS2_EXTERN axutil_param_t *AXIS2_CALL
axutil_param_container_get_param(
    axutil_param_container_t *param_container,
    const axutil_env_t *env,
    const axis2_char_t *name)
{
    return (axutil_param_t
            *) (axutil_hash_get(param_container->params, name,
                                AXIS2_HASH_KEY_STRING));
}

AXIS2_EXTERN axutil_array_list_t *AXIS2_CALL
axutil_param_container_get_params(
    axutil_param_container_t *param_container,
    const axutil_env_t *env)
{
    axutil_hash_index_t *index_i = 0;
    axis2_status_t status = AXIS2_FAILURE;
    void *value = NULL;

    if (!param_container->params_list)
    {
        param_container->params_list = axutil_array_list_create(env, 0);
        if (!param_container->params_list)
        {
            AXIS2_ERROR_SET(env->error, AXIS2_ERROR_NO_MEMORY, AXIS2_FAILURE);
            AXIS2_LOG_ERROR(env->log, AXIS2_LOG_SI, "Not enough memory");
            return NULL;
        }
    }

    for (index_i = axutil_hash_first(param_container->params, env); index_i;
         index_i = axutil_hash_next(env, index_i))
    {
        axutil_hash_this(index_i, NULL, NULL, &value);
        status =
            axutil_array_list_add(param_container->params_list, env, value);
        if (AXIS2_SUCCESS != status)
        {
            axutil_array_list_free(param_container->params_list, env);
            return NULL;
        }
    }

    return param_container->params_list;
}

AXIS2_EXTERN axis2_bool_t AXIS2_CALL
axutil_param_container_is_param_locked(
    axutil_param_container_t *param_container,
    const axutil_env_t *env,
    const axis2_char_t *param_name)
{
    axutil_param_t *param = NULL;

    param =
        (axutil_param_t
         *) (axutil_hash_get(param_container->params, param_name,
                             AXIS2_HASH_KEY_STRING));
    if (!param)
    {
        /* In this case we consider param is not locked */
        return AXIS2_FALSE;
    }
    return axutil_param_is_locked(param, env);
}


<|start_filename|>guththila/src/guththila_reader.c<|end_filename|>

/*
 * 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.
 */  
#include <stdlib.h>
#include <string.h>
#include <guththila_reader.h>
GUTHTHILA_EXPORT guththila_reader_t * GUTHTHILA_CALL 
guththila_reader_create_for_file(guththila_char_t *file_name, const axutil_env_t * env) 
{
    guththila_reader_t * reader = NULL;

    FILE * f = NULL;
    if (!file_name)
        return NULL;
    reader =(guththila_reader_t *) AXIS2_MALLOC(env->allocator, sizeof(guththila_reader_t));
    if (!reader)
        return NULL;
    f = fopen(file_name, "r");
    if (!f)
    {
        AXIS2_FREE(env->allocator, reader);
        return NULL;
    }
    reader->fp = f;
    reader->type = GUTHTHILA_FILE_READER;
    return reader;
}

GUTHTHILA_EXPORT guththila_reader_t * GUTHTHILA_CALL 
guththila_reader_create_for_memory(void *buffer, int size,
                                   const axutil_env_t * env) 
{
    guththila_reader_t * reader =
        (guththila_reader_t *) AXIS2_MALLOC(env->allocator,
                                            sizeof(guththila_reader_t));
    if (reader)
    {
        reader->type = GUTHTHILA_MEMORY_READER;
        reader->buff = buffer;
        reader->buff_size = size;
        reader->fp = NULL;
        return reader;
    }
    return NULL;
}

GUTHTHILA_EXPORT guththila_reader_t * GUTHTHILA_CALL 
guththila_reader_create_for_io(GUTHTHILA_READ_INPUT_CALLBACK
                               input_read_callback, void *ctx,
                               const axutil_env_t * env) 
{
    guththila_reader_t * reader =
        (guththila_reader_t *) AXIS2_MALLOC(env->allocator,
                                            sizeof(guththila_reader_t));
    if (reader)
    {
        reader->input_read_callback = input_read_callback;
        reader->context = ctx;
        reader->type = GUTHTHILA_IO_READER;
        return reader;
    }
    return NULL;
}
GUTHTHILA_EXPORT void GUTHTHILA_CALL 
guththila_reader_free(
    guththila_reader_t * r,
    const axutil_env_t * env) 
{
    if (r->type == GUTHTHILA_FILE_READER && r->fp)
    {
        fclose(r->fp);
    }
    if (r->type == GUTHTHILA_IO_READER && r->context)
    {
      AXIS2_FREE(env->allocator, r->context);
    }  
    AXIS2_FREE(env->allocator, r);
    
}
GUTHTHILA_EXPORT int GUTHTHILA_CALL 
guththila_reader_read(
    guththila_reader_t * r,
    guththila_char_t * buffer,
    int offset,
    int length,
    const axutil_env_t * env) 
{
    int rt = r->type;
    switch (rt)
    {
		case GUTHTHILA_FILE_READER:
			return (int) fread(buffer + offset, 1, length, r->fp);
		case GUTHTHILA_IO_READER:
			return r->input_read_callback((buffer + offset), length, r->context);
		default:
			return 0;
    }
}




<|start_filename|>xdocs/api/html/axutil__qname_8h.html<|end_filename|>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html><head><meta http-equiv="Content-Type" content="text/html;charset=UTF-8">
<title>Axis2/C: axutil_qname.h File Reference</title>
<link href="doxygen.css" rel="stylesheet" type="text/css">
<link href="tabs.css" rel="stylesheet" type="text/css">
</head><body>
<!-- Generated by Doxygen 1.5.3 -->
<div class="tabs">
  <ul>
    <li><a href="index.html"><span>Main&nbsp;Page</span></a></li>
    <li><a href="modules.html"><span>Modules</span></a></li>
    <li><a href="annotated.html"><span>Classes</span></a></li>
    <li class="current"><a href="files.html"><span>Files</span></a></li>
    <li><a href="dirs.html"><span>Directories</span></a></li>
    <li><a href="pages.html"><span>Related&nbsp;Pages</span></a></li>
    <li><a href="examples.html"><span>Examples</span></a></li>
    <li>
      <form action="search.php" method="get">
        <table cellspacing="0" cellpadding="0" border="0">
          <tr>
            <td><label>&nbsp;<u>S</u>earch&nbsp;for&nbsp;</label></td>
            <td><input type="text" name="query" value="" size="20" accesskey="s"/></td>
          </tr>
        </table>
      </form>
    </li>
  </ul>
</div>
<div class="nav">
<a class="el" href="dir_f60961de8e5edc3b2658ef023e959e45.html">deploy</a>&nbsp;&raquo&nbsp;<a class="el" href="dir_6b4e91e54b7316b376882a6402adbf44.html">include</a>&nbsp;&raquo&nbsp;<a class="el" href="dir_df3a7695d5a9e696f30b948b566829e7.html">axis2-1.6.0</a></div>
<h1>axutil_qname.h File Reference</h1>represents a qualified name <a href="#_details">More...</a>
<p>
<code>#include &lt;axutil_utils_defines.h&gt;</code><br>
<code>#include &lt;<a class="el" href="axutil__env_8h-source.html">axutil_env.h</a>&gt;</code><br>
<code>#include &lt;axutil_string.h&gt;</code><br>

<p>
<a href="axutil__qname_8h-source.html">Go to the source code of this file.</a><table border="0" cellpadding="0" cellspacing="0">
<tr><td></td></tr>
<tr><td colspan="2"><br><h2>Typedefs</h2></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="g70855cdbece0ebf4cb99013541254d44"></a><!-- doxytag: member="axutil_qname.h::axutil_qname_t" ref="g70855cdbece0ebf4cb99013541254d44" args="" -->
typedef struct <br>
axutil_qname&nbsp;</td><td class="memItemRight" valign="bottom"><b>axutil_qname_t</b></td></tr>

<tr><td colspan="2"><br><h2>Functions</h2></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top">AXIS2_EXTERN <br>
axutil_qname_t *&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__axutil__qname.html#gf2494bb225ee6ca4fd80641e5c8f30b5">axutil_qname_create</a> (const <a class="el" href="structaxutil__env.html">axutil_env_t</a> *env, const axis2_char_t *localpart, const axis2_char_t *namespace_uri, const axis2_char_t *prefix)</td></tr>

<tr><td class="memItemLeft" nowrap align="right" valign="top">AXIS2_EXTERN <br>
axutil_qname_t *&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__axutil__qname.html#gf1f907c61c777c414eccd333e4947b44">axutil_qname_create_from_string</a> (const <a class="el" href="structaxutil__env.html">axutil_env_t</a> *env, const axis2_char_t *string)</td></tr>

<tr><td class="memItemLeft" nowrap align="right" valign="top">AXIS2_EXTERN void&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__axutil__qname.html#gb04bf5c012c622e6c4fcd244a26f934c">axutil_qname_free</a> (struct axutil_qname *qname, const <a class="el" href="structaxutil__env.html">axutil_env_t</a> *env)</td></tr>

<tr><td class="memItemLeft" nowrap align="right" valign="top">AXIS2_EXTERN axis2_bool_t&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__axutil__qname.html#g1c9a3b98ac4a0f1dd0b323f4c118c2f4">axutil_qname_equals</a> (const struct axutil_qname *qname, const <a class="el" href="structaxutil__env.html">axutil_env_t</a> *env, const struct axutil_qname *qname1)</td></tr>

<tr><td class="memItemLeft" nowrap align="right" valign="top">AXIS2_EXTERN struct <br>
axutil_qname *&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__axutil__qname.html#g2f085b6bb1bb492f5dab48f14d5c544d">axutil_qname_clone</a> (struct axutil_qname *qname, const <a class="el" href="structaxutil__env.html">axutil_env_t</a> *env)</td></tr>

<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="gaaa9fce6ef2a94083546be7d70eb8a0a"></a><!-- doxytag: member="axutil_qname.h::axutil_qname_get_uri" ref="gaaa9fce6ef2a94083546be7d70eb8a0a" args="(const struct axutil_qname *qname, const axutil_env_t *env)" -->
AXIS2_EXTERN <br>
axis2_char_t *&nbsp;</td><td class="memItemRight" valign="bottom"><b>axutil_qname_get_uri</b> (const struct axutil_qname *qname, const <a class="el" href="structaxutil__env.html">axutil_env_t</a> *env)</td></tr>

<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="g7d34b1bd9765dec3c93fbbb44a5a8170"></a><!-- doxytag: member="axutil_qname.h::axutil_qname_get_prefix" ref="g7d34b1bd9765dec3c93fbbb44a5a8170" args="(const struct axutil_qname *qname, const axutil_env_t *env)" -->
AXIS2_EXTERN <br>
axis2_char_t *&nbsp;</td><td class="memItemRight" valign="bottom"><b>axutil_qname_get_prefix</b> (const struct axutil_qname *qname, const <a class="el" href="structaxutil__env.html">axutil_env_t</a> *env)</td></tr>

<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="gd204cce2ce51abb0decb1199d66f0b69"></a><!-- doxytag: member="axutil_qname.h::axutil_qname_get_localpart" ref="gd204cce2ce51abb0decb1199d66f0b69" args="(const struct axutil_qname *qname, const axutil_env_t *env)" -->
AXIS2_EXTERN <br>
axis2_char_t *&nbsp;</td><td class="memItemRight" valign="bottom"><b>axutil_qname_get_localpart</b> (const struct axutil_qname *qname, const <a class="el" href="structaxutil__env.html">axutil_env_t</a> *env)</td></tr>

<tr><td class="memItemLeft" nowrap align="right" valign="top">AXIS2_EXTERN <br>
axis2_char_t *&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__axutil__qname.html#gce05f5dabf88994e7ae8b3bf46fa968e">axutil_qname_to_string</a> (struct axutil_qname *qname, const <a class="el" href="structaxutil__env.html">axutil_env_t</a> *env)</td></tr>

</table>
<hr><a name="_details"></a><h2>Detailed Description</h2>
represents a qualified name 
<p>
<hr size="1"><address style="text-align: right;"><small>Generated on Fri Apr 17 11:49:43 2009 for Axis2/C by&nbsp;
<a href="http://www.doxygen.org/index.html">
<img src="doxygen.png" alt="doxygen" align="middle" border="0"></a> 1.5.3 </small></address>
</body>
</html>


<|start_filename|>neethi/src/secpolicy/model/supporting_tokens.c<|end_filename|>

/*
 * 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.
 */

#include <rp_supporting_tokens.h>

struct rp_supporting_tokens_t
{
    rp_algorithmsuite_t *algorithmsuite;
    axutil_array_list_t *tokens;
    rp_signed_encrypted_elements_t *signed_elements;
    rp_signed_encrypted_parts_t *signed_parts;
    rp_signed_encrypted_elements_t *encrypted_elements;
    rp_signed_encrypted_parts_t *encrypted_parts;
    int type;
    int ref;
};

AXIS2_EXTERN rp_supporting_tokens_t *AXIS2_CALL
rp_supporting_tokens_create(
    const axutil_env_t * env)
{
    rp_supporting_tokens_t *supporting_tokens = NULL;

    AXIS2_ENV_CHECK(env, NULL);

    supporting_tokens = (rp_supporting_tokens_t *) AXIS2_MALLOC(env->allocator,
                                                                sizeof
                                                                (rp_supporting_tokens_t));

    if (supporting_tokens == NULL)
    {
        AXIS2_ERROR_SET(env->error, AXIS2_ERROR_NO_MEMORY, AXIS2_FAILURE);
        return NULL;
    }
    supporting_tokens->tokens = NULL;
    supporting_tokens->tokens = axutil_array_list_create(env, 0);
    if (!(supporting_tokens->tokens))
    {
        rp_supporting_tokens_free(supporting_tokens, env);
        AXIS2_ERROR_SET(env->error, AXIS2_ERROR_NO_MEMORY, AXIS2_FAILURE);
        return NULL;
    }

    supporting_tokens->algorithmsuite = NULL;
    supporting_tokens->signed_parts = NULL;
    supporting_tokens->signed_elements = NULL;
    supporting_tokens->encrypted_parts = NULL;
    supporting_tokens->encrypted_elements = NULL;
    supporting_tokens->type = 0;
    supporting_tokens->ref = 0;
    return supporting_tokens;
}

AXIS2_EXTERN void AXIS2_CALL
rp_supporting_tokens_free(
    rp_supporting_tokens_t * supporting_tokens,
    const axutil_env_t * env)
{
    AXIS2_ENV_CHECK(env, AXIS2_FAILURE);

    if (supporting_tokens)
    {

        if (--(supporting_tokens->ref) > 0)
        {
            return;
        }

        if (supporting_tokens->tokens)
        {
            int i = 0;
            for (i = 0; i < axutil_array_list_size(supporting_tokens->tokens,
                                                   env); i++)
            {
                rp_property_t *token = NULL;
                token = (rp_property_t *)
                    axutil_array_list_get(supporting_tokens->tokens, env, i);
                if (token)
                    rp_property_free(token, env);

                token = NULL;
            }
            axutil_array_list_free(supporting_tokens->tokens, env);
            supporting_tokens->tokens = NULL;

        }
        if (supporting_tokens->algorithmsuite)
        {
            rp_algorithmsuite_free(supporting_tokens->algorithmsuite, env);
            supporting_tokens->algorithmsuite = NULL;
        }
        if (supporting_tokens->signed_parts)
        {
            rp_signed_encrypted_parts_free(supporting_tokens->signed_parts,
                                           env);
            supporting_tokens->signed_parts = NULL;
        }
        if (supporting_tokens->signed_elements)
        {
            rp_signed_encrypted_elements_free(supporting_tokens->
                                              signed_elements, env);
            supporting_tokens->signed_elements = NULL;
        }
        if (supporting_tokens->encrypted_parts)
        {
            rp_signed_encrypted_parts_free(supporting_tokens->encrypted_parts,
                                           env);
            supporting_tokens->encrypted_parts = NULL;
        }
        if (supporting_tokens->encrypted_elements)
        {
            rp_signed_encrypted_elements_free(supporting_tokens->
                                              encrypted_elements, env);
            supporting_tokens->encrypted_elements = NULL;
        }
        AXIS2_FREE(env->allocator, supporting_tokens);
        supporting_tokens = NULL;
    }
    return;
}

/* Implementations */

AXIS2_EXTERN axutil_array_list_t *AXIS2_CALL
rp_supporting_tokens_get_tokens(
    rp_supporting_tokens_t * supporting_tokens,
    const axutil_env_t * env)
{
    AXIS2_ENV_CHECK(env, AXIS2_FAILURE);

    return supporting_tokens->tokens;
}

AXIS2_EXTERN axis2_status_t AXIS2_CALL
rp_supporting_tokens_add_token(
    rp_supporting_tokens_t * supporting_tokens,
    const axutil_env_t * env,
    rp_property_t * token)
{
    AXIS2_ENV_CHECK(env, AXIS2_FAILURE);
    AXIS2_PARAM_CHECK(env->error, token, AXIS2_FAILURE);

    rp_property_increment_ref(token, env);
    axutil_array_list_add(supporting_tokens->tokens, env, token);
    return AXIS2_SUCCESS;
}

AXIS2_EXTERN rp_algorithmsuite_t *AXIS2_CALL
rp_supporting_tokens_get_algorithmsuite(
    rp_supporting_tokens_t * supporting_tokens,
    const axutil_env_t * env)
{
    AXIS2_ENV_CHECK(env, NULL);

    return supporting_tokens->algorithmsuite;
}

AXIS2_EXTERN axis2_status_t AXIS2_CALL
rp_supporting_tokens_set_algorithmsuite(
    rp_supporting_tokens_t * supporting_tokens,
    const axutil_env_t * env,
    rp_algorithmsuite_t * algorithmsuite)
{
    AXIS2_ENV_CHECK(env, AXIS2_FAILURE);
    AXIS2_PARAM_CHECK(env->error, algorithmsuite, AXIS2_FAILURE);

    rp_algorithmsuite_increment_ref(algorithmsuite, env);
    supporting_tokens->algorithmsuite = algorithmsuite;
    return AXIS2_SUCCESS;
}

AXIS2_EXTERN rp_signed_encrypted_parts_t *AXIS2_CALL
rp_supporting_tokens_get_signed_parts(
    rp_supporting_tokens_t * supporting_tokens,
    const axutil_env_t * env)
{
    AXIS2_ENV_CHECK(env, NULL);

    return supporting_tokens->signed_parts;
}

AXIS2_EXTERN axis2_status_t AXIS2_CALL
rp_supporting_tokens_set_signed_parts(
    rp_supporting_tokens_t * supporting_tokens,
    const axutil_env_t * env,
    rp_signed_encrypted_parts_t * signed_parts)
{
    AXIS2_ENV_CHECK(env, AXIS2_FAILURE);
    AXIS2_PARAM_CHECK(env->error, signed_parts, AXIS2_FAILURE);

    supporting_tokens->signed_parts = signed_parts;
    return AXIS2_SUCCESS;
}

AXIS2_EXTERN rp_signed_encrypted_elements_t *AXIS2_CALL
rp_supporting_tokens_get_signed_elements(
    rp_supporting_tokens_t * supporting_tokens,
    const axutil_env_t * env)
{
    AXIS2_ENV_CHECK(env, NULL);

    return supporting_tokens->signed_elements;
}

AXIS2_EXTERN axis2_status_t AXIS2_CALL
rp_supporting_tokens_set_signed_elements(
    rp_supporting_tokens_t * supporting_tokens,
    const axutil_env_t * env,
    rp_signed_encrypted_elements_t * signed_elements)
{
    AXIS2_ENV_CHECK(env, AXIS2_FAILURE);
    AXIS2_PARAM_CHECK(env->error, signed_elements, AXIS2_FAILURE);

    supporting_tokens->signed_elements = signed_elements;
    return AXIS2_SUCCESS;
}

AXIS2_EXTERN rp_signed_encrypted_parts_t *AXIS2_CALL
rp_supporting_tokens_get_encrypted_parts(
    rp_supporting_tokens_t * supporting_tokens,
    const axutil_env_t * env)
{
    AXIS2_ENV_CHECK(env, NULL);

    return supporting_tokens->encrypted_parts;
}

AXIS2_EXTERN axis2_status_t AXIS2_CALL
rp_supporting_tokens_set_encrypted_parts(
    rp_supporting_tokens_t * supporting_tokens,
    const axutil_env_t * env,
    rp_signed_encrypted_parts_t * encrypted_parts)
{
    AXIS2_ENV_CHECK(env, AXIS2_FAILURE);
    AXIS2_PARAM_CHECK(env->error, encrypted_parts, AXIS2_FAILURE);

    supporting_tokens->encrypted_parts = encrypted_parts;
    return AXIS2_SUCCESS;
}

AXIS2_EXTERN rp_signed_encrypted_elements_t *AXIS2_CALL
rp_supporting_tokens_get_encrypted_elements(
    rp_supporting_tokens_t * supporting_tokens,
    const axutil_env_t * env)
{
    AXIS2_ENV_CHECK(env, AXIS2_FAILURE);

    return supporting_tokens->encrypted_elements;
}

AXIS2_EXTERN axis2_status_t AXIS2_CALL
rp_supporting_tokens_set_encrypted_elements(
    rp_supporting_tokens_t * supporting_tokens,
    const axutil_env_t * env,
    rp_signed_encrypted_elements_t * encrypted_elements)
{
    AXIS2_ENV_CHECK(env, AXIS2_FAILURE);
    AXIS2_PARAM_CHECK(env->error, encrypted_elements, AXIS2_FAILURE);

    supporting_tokens->encrypted_elements = encrypted_elements;
    return AXIS2_SUCCESS;
}

AXIS2_EXTERN int AXIS2_CALL
rp_supporting_tokens_get_type(
    rp_supporting_tokens_t * supporting_tokens,
    const axutil_env_t * env)
{
    AXIS2_ENV_CHECK(env, AXIS2_FAILURE);

    return supporting_tokens->type;
}

AXIS2_EXTERN axis2_status_t AXIS2_CALL
rp_supporting_tokens_set_type(
    rp_supporting_tokens_t * supporting_tokens,
    const axutil_env_t * env,
    int type)
{
    AXIS2_ENV_CHECK(env, AXIS2_FAILURE);
    supporting_tokens->type = type;
    return AXIS2_SUCCESS;
}

AXIS2_EXTERN axis2_status_t AXIS2_CALL
rp_supporting_tokens_increment_ref(
    rp_supporting_tokens_t * supporting_tokens,
    const axutil_env_t * env)
{
    AXIS2_ENV_CHECK(env, AXIS2_FAILURE);
    supporting_tokens->ref++;
    return AXIS2_SUCCESS;
}


<|start_filename|>xdocs/api/html/axutil__thread_8h-source.html<|end_filename|>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html><head><meta http-equiv="Content-Type" content="text/html;charset=UTF-8">
<title>Axis2/C: axutil_thread.h Source File</title>
<link href="doxygen.css" rel="stylesheet" type="text/css">
<link href="tabs.css" rel="stylesheet" type="text/css">
</head><body>
<!-- Generated by Doxygen 1.5.3 -->
<div class="tabs">
  <ul>
    <li><a href="index.html"><span>Main&nbsp;Page</span></a></li>
    <li><a href="modules.html"><span>Modules</span></a></li>
    <li><a href="annotated.html"><span>Classes</span></a></li>
    <li class="current"><a href="files.html"><span>Files</span></a></li>
    <li><a href="dirs.html"><span>Directories</span></a></li>
    <li><a href="pages.html"><span>Related&nbsp;Pages</span></a></li>
    <li><a href="examples.html"><span>Examples</span></a></li>
    <li>
      <form action="search.php" method="get">
        <table cellspacing="0" cellpadding="0" border="0">
          <tr>
            <td><label>&nbsp;<u>S</u>earch&nbsp;for&nbsp;</label></td>
            <td><input type="text" name="query" value="" size="20" accesskey="s"/></td>
          </tr>
        </table>
      </form>
    </li>
  </ul>
</div>
<div class="nav">
<a class="el" href="dir_f60961de8e5edc3b2658ef023e959e45.html">deploy</a>&nbsp;&raquo&nbsp;<a class="el" href="dir_6b4e91e54b7316b376882a6402adbf44.html">include</a>&nbsp;&raquo&nbsp;<a class="el" href="dir_df3a7695d5a9e696f30b948b566829e7.html">axis2-1.6.0</a></div>
<h1>axutil_thread.h</h1><a href="axutil__thread_8h.html">Go to the documentation of this file.</a><div class="fragment"><pre class="fragment"><a name="l00001"></a>00001 
<a name="l00002"></a>00002 <span class="comment">/*</span>
<a name="l00003"></a>00003 <span class="comment"> * Licensed to the Apache Software Foundation (ASF) under one or more</span>
<a name="l00004"></a>00004 <span class="comment"> * contributor license agreements.  See the NOTICE file distributed with</span>
<a name="l00005"></a>00005 <span class="comment"> * this work for additional information regarding copyright ownership.</span>
<a name="l00006"></a>00006 <span class="comment"> * The ASF licenses this file to You under the Apache License, Version 2.0</span>
<a name="l00007"></a>00007 <span class="comment"> * (the "License"); you may not use this file except in compliance with</span>
<a name="l00008"></a>00008 <span class="comment"> * the License.  You may obtain a copy of the License at</span>
<a name="l00009"></a>00009 <span class="comment"> *</span>
<a name="l00010"></a>00010 <span class="comment"> *      http://www.apache.org/licenses/LICENSE-2.0</span>
<a name="l00011"></a>00011 <span class="comment"> *</span>
<a name="l00012"></a>00012 <span class="comment"> * Unless required by applicable law or agreed to in writing, software</span>
<a name="l00013"></a>00013 <span class="comment"> * distributed under the License is distributed on an "AS IS" BASIS,</span>
<a name="l00014"></a>00014 <span class="comment"> * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.</span>
<a name="l00015"></a>00015 <span class="comment"> * See the License for the specific language governing permissions and</span>
<a name="l00016"></a>00016 <span class="comment"> * limitations under the License.</span>
<a name="l00017"></a>00017 <span class="comment"> */</span>
<a name="l00018"></a>00018 
<a name="l00019"></a>00019 <span class="preprocessor">#ifndef AXUTIL_THREAD_H</span>
<a name="l00020"></a>00020 <span class="preprocessor"></span><span class="preprocessor">#define AXUTIL_THREAD_H</span>
<a name="l00021"></a>00021 <span class="preprocessor"></span>
<a name="l00027"></a>00027 <span class="preprocessor">#include &lt;<a class="code" href="axutil__allocator_8h.html" title="Axis2 memory allocator interface.">axutil_allocator.h</a>&gt;</span>
<a name="l00028"></a>00028 <span class="preprocessor">#include &lt;axutil_utils_defines.h&gt;</span>
<a name="l00029"></a>00029 <span class="preprocessor">#include &lt;axutil_error.h&gt;</span>
<a name="l00030"></a>00030 
<a name="l00031"></a>00031 <span class="preprocessor">#ifdef __cplusplus</span>
<a name="l00032"></a>00032 <span class="preprocessor"></span><span class="keyword">extern</span> <span class="stringliteral">"C"</span>
<a name="l00033"></a>00033 {
<a name="l00034"></a>00034 <span class="preprocessor">#endif</span>
<a name="l00035"></a>00035 <span class="preprocessor"></span>
<a name="l00046"></a>00046     <span class="comment">/*#define AXIS2_THREAD_FUNC */</span>
<a name="l00047"></a>00047 
<a name="l00049"></a><a class="code" href="group__axutil__thread.html#g7b2442c6150883ffac05fd2c4844b7cc">00049</a>     <span class="keyword">typedef</span> <span class="keyword">struct </span><a class="code" href="group__axutil__thread.html#g7b2442c6150883ffac05fd2c4844b7cc">axutil_thread_t</a> <a class="code" href="group__axutil__thread.html#g7b2442c6150883ffac05fd2c4844b7cc">axutil_thread_t</a>;
<a name="l00050"></a>00050 
<a name="l00052"></a><a class="code" href="group__axutil__thread.html#g00ba127eb9ea681435b79dfd52132bc9">00052</a>     <span class="keyword">typedef</span> <span class="keyword">struct </span><a class="code" href="group__axutil__thread.html#g00ba127eb9ea681435b79dfd52132bc9">axutil_threadattr_t</a> <a class="code" href="group__axutil__thread.html#g00ba127eb9ea681435b79dfd52132bc9">axutil_threadattr_t</a>;
<a name="l00053"></a>00053 
<a name="l00055"></a><a class="code" href="group__axutil__thread.html#g62e2f1428e742cdfad365b22fc2c271b">00055</a>     <span class="keyword">typedef</span> <span class="keyword">struct </span><a class="code" href="group__axutil__thread.html#g62e2f1428e742cdfad365b22fc2c271b">axutil_thread_once_t</a> <a class="code" href="group__axutil__thread.html#g62e2f1428e742cdfad365b22fc2c271b">axutil_thread_once_t</a>;
<a name="l00056"></a>00056 
<a name="l00060"></a>00060     <span class="keyword">typedef</span> <span class="keywordtype">void</span> *(
<a name="l00061"></a><a class="code" href="group__axutil__thread.html#g8b1ee6e8fa770ee290503c43c087f633">00061</a>         AXIS2_THREAD_FUNC * <a class="code" href="group__axutil__thread.html#g8b1ee6e8fa770ee290503c43c087f633">axutil_thread_start_t</a>)(
<a name="l00062"></a>00062             <a class="code" href="group__axutil__thread.html#g7b2442c6150883ffac05fd2c4844b7cc">axutil_thread_t</a> *,
<a name="l00063"></a>00063             <span class="keywordtype">void</span> *);
<a name="l00064"></a>00064 
<a name="l00066"></a><a class="code" href="group__axutil__thread.html#g48b4d7958a921bd9780ef76e1b76c3a4">00066</a>     <span class="keyword">typedef</span> <span class="keyword">struct </span><a class="code" href="group__axutil__thread.html#g48b4d7958a921bd9780ef76e1b76c3a4">axutil_threadkey_t</a> <a class="code" href="group__axutil__thread.html#g48b4d7958a921bd9780ef76e1b76c3a4">axutil_threadkey_t</a>;
<a name="l00067"></a>00067 
<a name="l00068"></a>00068     <span class="comment">/* Thread Function definitions */</span>
<a name="l00069"></a>00069 
<a name="l00075"></a>00075     AXIS2_EXTERN <a class="code" href="group__axutil__thread.html#g00ba127eb9ea681435b79dfd52132bc9">axutil_threadattr_t</a> *AXIS2_CALL
<a name="l00076"></a>00076     <a class="code" href="group__axutil__thread.html#g6b8cf75c5b88d3389e3b9ea6f5371101">axutil_threadattr_create</a>(
<a name="l00077"></a>00077         <a class="code" href="structaxutil__allocator.html" title="Axis2 memory allocator.">axutil_allocator_t</a> * allocator);
<a name="l00078"></a>00078 
<a name="l00085"></a>00085     AXIS2_EXTERN axis2_status_t AXIS2_CALL
<a name="l00086"></a>00086     <a class="code" href="group__axutil__thread.html#g64df222946d03707ee4c00164d7f567a">axutil_threadattr_detach_set</a>(
<a name="l00087"></a>00087         <a class="code" href="group__axutil__thread.html#g00ba127eb9ea681435b79dfd52132bc9">axutil_threadattr_t</a> * attr,
<a name="l00088"></a>00088         axis2_bool_t detached);
<a name="l00089"></a>00089 
<a name="l00096"></a>00096     AXIS2_EXTERN axis2_bool_t AXIS2_CALL
<a name="l00097"></a>00097     <a class="code" href="group__axutil__thread.html#ga27f549c32aa22df6c911fc565624d52">axutil_threadattr_is_detach</a>(
<a name="l00098"></a>00098         <a class="code" href="group__axutil__thread.html#g00ba127eb9ea681435b79dfd52132bc9">axutil_threadattr_t</a> * attr,
<a name="l00099"></a>00099         <a class="code" href="structaxutil__allocator.html" title="Axis2 memory allocator.">axutil_allocator_t</a> * allocator);
<a name="l00100"></a>00100 
<a name="l00109"></a>00109     AXIS2_EXTERN <a class="code" href="group__axutil__thread.html#g7b2442c6150883ffac05fd2c4844b7cc">axutil_thread_t</a> *AXIS2_CALL
<a name="l00110"></a>00110     <a class="code" href="group__axutil__thread.html#g1f4f964a275cb3274a110985c0521599">axutil_thread_create</a>(
<a name="l00111"></a>00111         <a class="code" href="structaxutil__allocator.html" title="Axis2 memory allocator.">axutil_allocator_t</a> * allocator,
<a name="l00112"></a>00112         <a class="code" href="group__axutil__thread.html#g00ba127eb9ea681435b79dfd52132bc9">axutil_threadattr_t</a> * attr,
<a name="l00113"></a>00113         <a class="code" href="group__axutil__thread.html#g8b1ee6e8fa770ee290503c43c087f633">axutil_thread_start_t</a> func,
<a name="l00114"></a>00114         <span class="keywordtype">void</span> *data);
<a name="l00115"></a>00115 
<a name="l00121"></a>00121     AXIS2_EXTERN axis2_status_t AXIS2_CALL
<a name="l00122"></a>00122     <a class="code" href="group__axutil__thread.html#gce2c40eabd0a117145610897e3b0b350">axutil_thread_exit</a>(
<a name="l00123"></a>00123         <a class="code" href="group__axutil__thread.html#g7b2442c6150883ffac05fd2c4844b7cc">axutil_thread_t</a> * thd,
<a name="l00124"></a>00124         <a class="code" href="structaxutil__allocator.html" title="Axis2 memory allocator.">axutil_allocator_t</a> * allocator);
<a name="l00125"></a>00125 
<a name="l00131"></a>00131     AXIS2_EXTERN axis2_status_t AXIS2_CALL
<a name="l00132"></a>00132     <a class="code" href="group__axutil__thread.html#g4503fd95978af26c67875430c4cf11d9">axutil_thread_join</a>(
<a name="l00133"></a>00133         <a class="code" href="group__axutil__thread.html#g7b2442c6150883ffac05fd2c4844b7cc">axutil_thread_t</a> * thd);
<a name="l00134"></a>00134 
<a name="l00138"></a>00138     AXIS2_EXTERN <span class="keywordtype">void</span> AXIS2_CALL
<a name="l00139"></a>00139     <a class="code" href="group__axutil__thread.html#gb260d86a99c9c7af7ae632fb99c59106">axutil_thread_yield</a>(<span class="keywordtype">void</span>
<a name="l00140"></a>00140     );
<a name="l00141"></a>00141 
<a name="l00147"></a>00147     AXIS2_EXTERN <a class="code" href="group__axutil__thread.html#g62e2f1428e742cdfad365b22fc2c271b">axutil_thread_once_t</a> *AXIS2_CALL
<a name="l00148"></a>00148     <a class="code" href="group__axutil__thread.html#gac95e6a2e2106ff72daa1ca244286890">axutil_thread_once_init</a>(
<a name="l00149"></a>00149         <a class="code" href="structaxutil__allocator.html" title="Axis2 memory allocator.">axutil_allocator_t</a> * allocator);
<a name="l00150"></a>00150 
<a name="l00161"></a>00161     AXIS2_EXTERN axis2_status_t AXIS2_CALL
<a name="l00162"></a>00162     <a class="code" href="group__axutil__thread.html#ga79f8c61310cfb8b6d6f3a9183114995">axutil_thread_once</a>(
<a name="l00163"></a>00163         <a class="code" href="group__axutil__thread.html#g62e2f1428e742cdfad365b22fc2c271b">axutil_thread_once_t</a> * control,
<a name="l00164"></a>00164         <span class="keywordtype">void</span>(*func)(<span class="keywordtype">void</span>));
<a name="l00165"></a>00165 
<a name="l00171"></a>00171     AXIS2_EXTERN axis2_status_t AXIS2_CALL
<a name="l00172"></a>00172     <a class="code" href="group__axutil__thread.html#gf80d1cd64a4f888588f502bb836ace47">axutil_thread_detach</a>(
<a name="l00173"></a>00173         <a class="code" href="group__axutil__thread.html#g7b2442c6150883ffac05fd2c4844b7cc">axutil_thread_t</a> * thd);
<a name="l00174"></a>00174 
<a name="l00175"></a>00175 
<a name="l00176"></a>00176     <span class="comment">/*************************Thread locking functions*****************************/</span>
<a name="l00177"></a>00177 
<a name="l00179"></a><a class="code" href="group__axutil__thread.html#g3d6a99be71c7c750b4ac37efae2bdf87">00179</a>     <span class="keyword">typedef</span> <span class="keyword">struct </span><a class="code" href="group__axis2__mutex.html#g3d6a99be71c7c750b4ac37efae2bdf87">axutil_thread_mutex_t</a> <a class="code" href="group__axis2__mutex.html#g3d6a99be71c7c750b4ac37efae2bdf87">axutil_thread_mutex_t</a>;
<a name="l00180"></a>00180 
<a name="l00181"></a><a class="code" href="group__axutil__thread.html#gd096680721aedfeb237647a9d59deedf">00181</a> <span class="preprocessor">#define AXIS2_THREAD_MUTEX_DEFAULT  0x0   </span>
<a name="l00183"></a><a class="code" href="group__axutil__thread.html#g4c1de3e53fdd5e35bff45518bf01adb9">00183</a> <span class="preprocessor">#define AXIS2_THREAD_MUTEX_NESTED   0x1   </span>
<a name="l00185"></a><a class="code" href="group__axutil__thread.html#g23f73f33dbd2bc3b73e45765daee0dfd">00185</a> <span class="preprocessor">#define AXIS2_THREAD_MUTEX_UNNESTED 0x2   </span>
<a name="l00194"></a>00194 <span class="preprocessor">    AXIS2_EXTERN axutil_thread_mutex_t *AXIS2_CALL</span>
<a name="l00195"></a>00195 <span class="preprocessor"></span>
<a name="l00196"></a>00196     <a class="code" href="group__axis2__mutex.html#gcab265f8a3be8ef7c20442a3c5bccd67">axutil_thread_mutex_create</a>(
<a name="l00197"></a>00197         <a class="code" href="structaxutil__allocator.html" title="Axis2 memory allocator.">axutil_allocator_t</a> * allocator,
<a name="l00198"></a>00198         <span class="keywordtype">unsigned</span> <span class="keywordtype">int</span> flags);
<a name="l00199"></a>00199 
<a name="l00205"></a>00205     AXIS2_EXTERN axis2_status_t AXIS2_CALL
<a name="l00206"></a>00206     <a class="code" href="group__axis2__mutex.html#g7f987573535cf90ba67b2b2ae047ee46">axutil_thread_mutex_lock</a>(
<a name="l00207"></a>00207         <a class="code" href="group__axis2__mutex.html#g3d6a99be71c7c750b4ac37efae2bdf87">axutil_thread_mutex_t</a> * mutex);
<a name="l00208"></a>00208 
<a name="l00214"></a>00214     AXIS2_EXTERN axis2_status_t AXIS2_CALL
<a name="l00215"></a>00215     <a class="code" href="group__axis2__mutex.html#ga050c6ecf8209ba57ea8ec79330632bb">axutil_thread_mutex_trylock</a>(
<a name="l00216"></a>00216         <a class="code" href="group__axis2__mutex.html#g3d6a99be71c7c750b4ac37efae2bdf87">axutil_thread_mutex_t</a> * mutex);
<a name="l00217"></a>00217 
<a name="l00222"></a>00222     AXIS2_EXTERN axis2_status_t AXIS2_CALL
<a name="l00223"></a>00223     <a class="code" href="group__axis2__mutex.html#gd275462277abb24342d1b69967ba79b4">axutil_thread_mutex_unlock</a>(
<a name="l00224"></a>00224         <a class="code" href="group__axis2__mutex.html#g3d6a99be71c7c750b4ac37efae2bdf87">axutil_thread_mutex_t</a> * mutex);
<a name="l00225"></a>00225 
<a name="l00230"></a>00230     AXIS2_EXTERN axis2_status_t AXIS2_CALL
<a name="l00231"></a>00231     <a class="code" href="group__axis2__mutex.html#g7e441c4b47fe4466ff385e396258ead3">axutil_thread_mutex_destroy</a>(
<a name="l00232"></a>00232         <a class="code" href="group__axis2__mutex.html#g3d6a99be71c7c750b4ac37efae2bdf87">axutil_thread_mutex_t</a> * mutex);
<a name="l00233"></a>00233 
<a name="l00235"></a>00235 <span class="preprocessor">#ifdef __cplusplus</span>
<a name="l00236"></a>00236 <span class="preprocessor"></span>}
<a name="l00237"></a>00237 <span class="preprocessor">#endif</span>
<a name="l00238"></a>00238 <span class="preprocessor"></span>
<a name="l00239"></a>00239 <span class="preprocessor">#endif                          </span><span class="comment">/* AXIS2_THREAD_H */</span>
</pre></div><hr size="1"><address style="text-align: right;"><small>Generated on Fri Apr 17 11:49:43 2009 for Axis2/C by&nbsp;
<a href="http://www.doxygen.org/index.html">
<img src="doxygen.png" alt="doxygen" align="middle" border="0"></a> 1.5.3 </small></address>
</body>
</html>


<|start_filename|>xdocs/api/html/group__axis2__addr__consts.html<|end_filename|>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html><head><meta http-equiv="Content-Type" content="text/html;charset=UTF-8">
<title>Axis2/C: WS-Addressing related constants</title>
<link href="doxygen.css" rel="stylesheet" type="text/css">
<link href="tabs.css" rel="stylesheet" type="text/css">
</head><body>
<!-- Generated by Doxygen 1.5.3 -->
<div class="tabs">
  <ul>
    <li><a href="index.html"><span>Main&nbsp;Page</span></a></li>
    <li><a href="modules.html"><span>Modules</span></a></li>
    <li><a href="annotated.html"><span>Classes</span></a></li>
    <li><a href="files.html"><span>Files</span></a></li>
    <li><a href="dirs.html"><span>Directories</span></a></li>
    <li><a href="pages.html"><span>Related&nbsp;Pages</span></a></li>
    <li><a href="examples.html"><span>Examples</span></a></li>
    <li>
      <form action="search.php" method="get">
        <table cellspacing="0" cellpadding="0" border="0">
          <tr>
            <td><label>&nbsp;<u>S</u>earch&nbsp;for&nbsp;</label></td>
            <td><input type="text" name="query" value="" size="20" accesskey="s"/></td>
          </tr>
        </table>
      </form>
    </li>
  </ul>
</div>
<h1>WS-Addressing related constants<br>
<small>
[<a class="el" href="group__axis2__addr.html">WS-Addressing</a>]</small>
</h1><table border="0" cellpadding="0" cellspacing="0">
<tr><td></td></tr>
<tr><td colspan="2"><br><h2>Files</h2></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top">file &nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="axis2__addr_8h.html">axis2_addr.h</a></td></tr>

<tr><td colspan="2"><br><h2>Defines</h2></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top">#define&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__axis2__addr__consts.html#g36bf0a69968793ca68ca864fb1537df6">AXIS2_WSA_MESSAGE_ID</a>&nbsp;&nbsp;&nbsp;&quot;MessageID&quot;</td></tr>

<tr><td class="memItemLeft" nowrap align="right" valign="top">#define&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__axis2__addr__consts.html#gd5e65fcd5241c76c23a50f846441266a">AXIS2_WSA_RELATES_TO</a>&nbsp;&nbsp;&nbsp;&quot;RelatesTo&quot;</td></tr>

<tr><td class="memItemLeft" nowrap align="right" valign="top">#define&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__axis2__addr__consts.html#ga475c2e10b1d601b02a2f8be25ed5ab9">AXIS2_WSA_RELATES_TO_RELATIONSHIP_TYPE</a>&nbsp;&nbsp;&nbsp;&quot;RelationshipType&quot;</td></tr>

<tr><td class="memItemLeft" nowrap align="right" valign="top">#define&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__axis2__addr__consts.html#ga03c11932fc77dffe74a333717adfab7">AXIS2_WSA_TO</a>&nbsp;&nbsp;&nbsp;&quot;To&quot;</td></tr>

<tr><td class="memItemLeft" nowrap align="right" valign="top">#define&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__axis2__addr__consts.html#g2e581c359ddbed08e8fc9aaf3adbc639">AXIS2_WSA_FROM</a>&nbsp;&nbsp;&nbsp;&quot;From&quot;</td></tr>

<tr><td class="memItemLeft" nowrap align="right" valign="top">#define&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__axis2__addr__consts.html#g4c2fe672174cb7f77f5fc68e7c78249a">AXIS2_WSA_REPLY_TO</a>&nbsp;&nbsp;&nbsp;&quot;ReplyTo&quot;</td></tr>

<tr><td class="memItemLeft" nowrap align="right" valign="top">#define&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__axis2__addr__consts.html#g9bf69cecc6d28fe398d610195617f1bd">AXIS2_WSA_FAULT_TO</a>&nbsp;&nbsp;&nbsp;&quot;FaultTo&quot;</td></tr>

<tr><td class="memItemLeft" nowrap align="right" valign="top">#define&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__axis2__addr__consts.html#g903617fc19d61deaaf5ab3dc024378d3">AXIS2_WSA_ACTION</a>&nbsp;&nbsp;&nbsp;&quot;Action&quot;</td></tr>

<tr><td class="memItemLeft" nowrap align="right" valign="top">#define&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__axis2__addr__consts.html#g5b94c2283807555fadb4baf18d3b134b">AXIS2_WSA_MAPPING</a>&nbsp;&nbsp;&nbsp;&quot;wsamapping&quot;</td></tr>

<tr><td class="memItemLeft" nowrap align="right" valign="top">#define&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__axis2__addr__consts.html#g50b15986d08ce1bb6cb8a3d3b9551449">EPR_ADDRESS</a>&nbsp;&nbsp;&nbsp;&quot;Address&quot;</td></tr>

<tr><td class="memItemLeft" nowrap align="right" valign="top">#define&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__axis2__addr__consts.html#g72037ab1241ed326161516f373649416">EPR_REFERENCE_PARAMETERS</a>&nbsp;&nbsp;&nbsp;&quot;ReferenceParameters&quot;</td></tr>

<tr><td class="memItemLeft" nowrap align="right" valign="top">#define&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__axis2__addr__consts.html#ga8706ee876df13fee596dd3d3b90fb55">EPR_SERVICE_NAME</a>&nbsp;&nbsp;&nbsp;&quot;ServiceName&quot;</td></tr>

<tr><td class="memItemLeft" nowrap align="right" valign="top">#define&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__axis2__addr__consts.html#g4e4e093ba53c71df53a2a3a641192577">EPR_REFERENCE_PROPERTIES</a>&nbsp;&nbsp;&nbsp;&quot;ReferenceProperties&quot;</td></tr>

<tr><td class="memItemLeft" nowrap align="right" valign="top">#define&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__axis2__addr__consts.html#g08e974b9cc0517032404490c7e4a4c24">EPR_PORT_TYPE</a>&nbsp;&nbsp;&nbsp;&quot;PortType&quot;</td></tr>

<tr><td class="memItemLeft" nowrap align="right" valign="top">#define&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__axis2__addr__consts.html#g58f5d3de5e39fc0722adca9514731fd7">EPR_SERVICE_NAME_PORT_NAME</a>&nbsp;&nbsp;&nbsp;&quot;PortName&quot;</td></tr>

<tr><td class="memItemLeft" nowrap align="right" valign="top">#define&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__axis2__addr__consts.html#g4f4910d41b2474a1212c4af6c9c3d769">AXIS2_WSA_NAMESPACE_SUBMISSION</a>&nbsp;&nbsp;&nbsp;&quot;http://schemas.xmlsoap.org/ws/2004/08/addressing&quot;</td></tr>

<tr><td class="memItemLeft" nowrap align="right" valign="top">#define&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__axis2__addr__consts.html#g96acda046fde6398ecd5c494b5feb1ab">AXIS2_WSA_RELATES_TO_RELATIONSHIP_TYPE_DEFAULT_VALUE_SUBMISSION</a>&nbsp;&nbsp;&nbsp;&quot;wsa:Reply&quot;</td></tr>

<tr><td class="memItemLeft" nowrap align="right" valign="top">#define&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__axis2__addr__consts.html#g2fd3980a63df468bac1580dd249639db">AXIS2_WSA_ANONYMOUS_URL_SUBMISSION</a>&nbsp;&nbsp;&nbsp;&quot;http://schemas.xmlsoap.org/ws/2004/08/addressing/role/anonymous&quot;</td></tr>

<tr><td class="memItemLeft" nowrap align="right" valign="top">#define&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__axis2__addr__consts.html#g4436004b04180b21593a423576b60ef9">AXIS2_WSA_NONE_URL_SUBMISSION</a>&nbsp;&nbsp;&nbsp;&quot;http://schemas.xmlsoap.org/ws/2004/08/addressing/role/none&quot;</td></tr>

<tr><td class="memItemLeft" nowrap align="right" valign="top">#define&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__axis2__addr__consts.html#g9f2d22dc75524b21af3834175e0931e5">AXIS2_WSA_NAMESPACE</a>&nbsp;&nbsp;&nbsp;&quot;http://www.w3.org/2005/08/addressing&quot;</td></tr>

<tr><td class="memItemLeft" nowrap align="right" valign="top">#define&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__axis2__addr__consts.html#g540bf85e886e5f00dc4ba2c84673be19">AXIS2_WSA_RELATES_TO_RELATIONSHIP_TYPE_DEFAULT_VALUE</a>&nbsp;&nbsp;&nbsp;&quot;http://www.w3.org/2005/08/addressing/reply&quot;</td></tr>

<tr><td class="memItemLeft" nowrap align="right" valign="top">#define&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__axis2__addr__consts.html#g20752682a087c66467fbf5f09c434c7e">AXIS2_WSA_ANONYMOUS_URL</a>&nbsp;&nbsp;&nbsp;&quot;http://www.w3.org/2005/08/addressing/anonymous&quot;</td></tr>

<tr><td class="memItemLeft" nowrap align="right" valign="top">#define&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__axis2__addr__consts.html#g92e906914bd8ae5a8d3f6014f4bcb189">AXIS2_WSA_NONE_URL</a>&nbsp;&nbsp;&nbsp;&quot;http://www.w3.org/2005/08/addressing/none&quot;</td></tr>

<tr><td class="memItemLeft" nowrap align="right" valign="top">#define&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__axis2__addr__consts.html#g4739c8ded874a3d7901bc6229a46dc24">AXIS2_WSA_IS_REFERENCE_PARAMETER_ATTRIBUTE</a>&nbsp;&nbsp;&nbsp;&quot;IsReferenceParameter&quot;</td></tr>

<tr><td class="memItemLeft" nowrap align="right" valign="top">#define&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__axis2__addr__consts.html#g170975fbb730fc9f4ef77012b6dd9db7">AXIS2_WSA_TYPE_ATTRIBUTE_VALUE</a>&nbsp;&nbsp;&nbsp;&quot;true&quot;</td></tr>

<tr><td class="memItemLeft" nowrap align="right" valign="top">#define&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__axis2__addr__consts.html#gc35528fdb8d4a0da501462f1205e4ecc">AXIS2_WSA_INTERFACE_NAME</a>&nbsp;&nbsp;&nbsp;&quot;InterfaceName&quot;</td></tr>

<tr><td class="memItemLeft" nowrap align="right" valign="top">#define&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__axis2__addr__consts.html#gc92b4d9b87dc12c105b8578dcf586c79">AXIS2_WSA_SERVICE_NAME_ENDPOINT_NAME</a>&nbsp;&nbsp;&nbsp;&quot;EndpointName&quot;</td></tr>

<tr><td class="memItemLeft" nowrap align="right" valign="top">#define&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__axis2__addr__consts.html#ge70b4a9e6cbf4bed35ea66db740dcd14">AXIS2_WSA_POLICIES</a>&nbsp;&nbsp;&nbsp;&quot;Policies&quot;</td></tr>

<tr><td class="memItemLeft" nowrap align="right" valign="top">#define&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__axis2__addr__consts.html#g24ec2266e6ace775fa784c8a79a1da7c">AXIS2_WSA_METADATA</a>&nbsp;&nbsp;&nbsp;&quot;Metadata&quot;</td></tr>

<tr><td class="memItemLeft" nowrap align="right" valign="top">#define&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__axis2__addr__consts.html#g297643cc83960855fedf77da10dfee07">AXIS2_WSA_VERSION</a>&nbsp;&nbsp;&nbsp;&quot;WSAddressingVersion&quot;</td></tr>

<tr><td class="memItemLeft" nowrap align="right" valign="top">#define&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__axis2__addr__consts.html#g0a39a1ed9bcd873cef011bef81d20d85">AXIS2_WSA_DEFAULT_PREFIX</a>&nbsp;&nbsp;&nbsp;&quot;wsa&quot;</td></tr>

<tr><td class="memItemLeft" nowrap align="right" valign="top">#define&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__axis2__addr__consts.html#g491048fb85ab2213d9df72cb1c1a6ca0">AXIS2_WSA_PREFIX_FAULT_TO</a>&nbsp;&nbsp;&nbsp;AXIS2_WSA_DEFAULT_PREFIX&quot;:&quot;AXIS2_WSA_FAULT_TO</td></tr>

<tr><td class="memItemLeft" nowrap align="right" valign="top">#define&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__axis2__addr__consts.html#g4ea0451331116aef7a25dfd57091ddeb">AXIS2_WSA_PREFIX_REPLY_TO</a>&nbsp;&nbsp;&nbsp;AXIS2_WSA_DEFAULT_PREFIX&quot;:&quot;AXIS2_WSA_REPLY_TO</td></tr>

<tr><td class="memItemLeft" nowrap align="right" valign="top">#define&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__axis2__addr__consts.html#gfc85ee803652f7b516adce75a32d195e">AXIS2_WSA_PREFIX_TO</a>&nbsp;&nbsp;&nbsp;AXIS2_WSA_DEFAULT_PREFIX&quot;:&quot;AXIS2_WSA_TO</td></tr>

<tr><td class="memItemLeft" nowrap align="right" valign="top">#define&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__axis2__addr__consts.html#g02319f4c933bec23d60e64376ef6c926">AXIS2_WSA_PREFIX_MESSAGE_ID</a>&nbsp;&nbsp;&nbsp;AXIS2_WSA_DEFAULT_PREFIX&quot;:&quot;AXIS2_WSA_MESSAGE_ID</td></tr>

<tr><td class="memItemLeft" nowrap align="right" valign="top">#define&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__axis2__addr__consts.html#g1feded3e9bbc7913c3a2abc895bf9844">AXIS2_WSA_PREFIX_ACTION</a>&nbsp;&nbsp;&nbsp;AXIS2_WSA_DEFAULT_PREFIX&quot;:&quot;AXIS2_WSA_ACTION</td></tr>

<tr><td class="memItemLeft" nowrap align="right" valign="top">#define&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__axis2__addr__consts.html#g1580e5c766744e70e754e9515b0b781f">PARAM_SERVICE_GROUP_CONTEXT_ID</a>&nbsp;&nbsp;&nbsp;&quot;ServiceGroupContextIdFromAddressing&quot;</td></tr>

</table>
<hr><h2>Define Documentation</h2>
<a class="anchor" name="g903617fc19d61deaaf5ab3dc024378d3"></a><!-- doxytag: member="axis2_addr.h::AXIS2_WSA_ACTION" ref="g903617fc19d61deaaf5ab3dc024378d3" args="" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">#define AXIS2_WSA_ACTION&nbsp;&nbsp;&nbsp;&quot;Action&quot;          </td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
WS-Addressing Action 
</div>
</div><p>
<a class="anchor" name="g20752682a087c66467fbf5f09c434c7e"></a><!-- doxytag: member="axis2_addr.h::AXIS2_WSA_ANONYMOUS_URL" ref="g20752682a087c66467fbf5f09c434c7e" args="" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">#define AXIS2_WSA_ANONYMOUS_URL&nbsp;&nbsp;&nbsp;&quot;http://www.w3.org/2005/08/addressing/anonymous&quot;          </td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
WS-Addressing Anonymous URL for 1.0 Final Version 
</div>
</div><p>
<a class="anchor" name="g2fd3980a63df468bac1580dd249639db"></a><!-- doxytag: member="axis2_addr.h::AXIS2_WSA_ANONYMOUS_URL_SUBMISSION" ref="g2fd3980a63df468bac1580dd249639db" args="" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">#define AXIS2_WSA_ANONYMOUS_URL_SUBMISSION&nbsp;&nbsp;&nbsp;&quot;http://schemas.xmlsoap.org/ws/2004/08/addressing/role/anonymous&quot;          </td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
WS-Addressing Anonymous URL for Submission Version 
</div>
</div><p>
<a class="anchor" name="g0a39a1ed9bcd873cef011bef81d20d85"></a><!-- doxytag: member="axis2_addr.h::AXIS2_WSA_DEFAULT_PREFIX" ref="g0a39a1ed9bcd873cef011bef81d20d85" args="" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">#define AXIS2_WSA_DEFAULT_PREFIX&nbsp;&nbsp;&nbsp;&quot;wsa&quot;          </td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
WS-Addressing Default Prefix 
</div>
</div><p>
<a class="anchor" name="g9bf69cecc6d28fe398d610195617f1bd"></a><!-- doxytag: member="axis2_addr.h::AXIS2_WSA_FAULT_TO" ref="g9bf69cecc6d28fe398d610195617f1bd" args="" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">#define AXIS2_WSA_FAULT_TO&nbsp;&nbsp;&nbsp;&quot;FaultTo&quot;          </td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
WS-Addressing Fault To 
</div>
</div><p>
<a class="anchor" name="g2e581c359ddbed08e8fc9aaf3adbc639"></a><!-- doxytag: member="axis2_addr.h::AXIS2_WSA_FROM" ref="g2e581c359ddbed08e8fc9aaf3adbc639" args="" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">#define AXIS2_WSA_FROM&nbsp;&nbsp;&nbsp;&quot;From&quot;          </td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
WS-Addressing From 
</div>
</div><p>
<a class="anchor" name="gc35528fdb8d4a0da501462f1205e4ecc"></a><!-- doxytag: member="axis2_addr.h::AXIS2_WSA_INTERFACE_NAME" ref="gc35528fdb8d4a0da501462f1205e4ecc" args="" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">#define AXIS2_WSA_INTERFACE_NAME&nbsp;&nbsp;&nbsp;&quot;InterfaceName&quot;          </td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
WS-Addressing Interface Name 
</div>
</div><p>
<a class="anchor" name="g4739c8ded874a3d7901bc6229a46dc24"></a><!-- doxytag: member="axis2_addr.h::AXIS2_WSA_IS_REFERENCE_PARAMETER_ATTRIBUTE" ref="g4739c8ded874a3d7901bc6229a46dc24" args="" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">#define AXIS2_WSA_IS_REFERENCE_PARAMETER_ATTRIBUTE&nbsp;&nbsp;&nbsp;&quot;IsReferenceParameter&quot;          </td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
WS-Addressing Is Reference Parameter Attribute 
</div>
</div><p>
<a class="anchor" name="g5b94c2283807555fadb4baf18d3b134b"></a><!-- doxytag: member="axis2_addr.h::AXIS2_WSA_MAPPING" ref="g5b94c2283807555fadb4baf18d3b134b" args="" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">#define AXIS2_WSA_MAPPING&nbsp;&nbsp;&nbsp;&quot;wsamapping&quot;          </td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
WS-Addressing Mapping 
</div>
</div><p>
<a class="anchor" name="g36bf0a69968793ca68ca864fb1537df6"></a><!-- doxytag: member="axis2_addr.h::AXIS2_WSA_MESSAGE_ID" ref="g36bf0a69968793ca68ca864fb1537df6" args="" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">#define AXIS2_WSA_MESSAGE_ID&nbsp;&nbsp;&nbsp;&quot;MessageID&quot;          </td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
WS-Addressing Message ID 
</div>
</div><p>
<a class="anchor" name="g24ec2266e6ace775fa784c8a79a1da7c"></a><!-- doxytag: member="axis2_addr.h::AXIS2_WSA_METADATA" ref="g24ec2266e6ace775fa784c8a79a1da7c" args="" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">#define AXIS2_WSA_METADATA&nbsp;&nbsp;&nbsp;&quot;Metadata&quot;          </td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
WS-Addressing Metadata 
</div>
</div><p>
<a class="anchor" name="g9f2d22dc75524b21af3834175e0931e5"></a><!-- doxytag: member="axis2_addr.h::AXIS2_WSA_NAMESPACE" ref="g9f2d22dc75524b21af3834175e0931e5" args="" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">#define AXIS2_WSA_NAMESPACE&nbsp;&nbsp;&nbsp;&quot;http://www.w3.org/2005/08/addressing&quot;          </td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
WS-Addressing Namespace for 1.0 Final Version 
</div>
</div><p>
<a class="anchor" name="g4f4910d41b2474a1212c4af6c9c3d769"></a><!-- doxytag: member="axis2_addr.h::AXIS2_WSA_NAMESPACE_SUBMISSION" ref="g4f4910d41b2474a1212c4af6c9c3d769" args="" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">#define AXIS2_WSA_NAMESPACE_SUBMISSION&nbsp;&nbsp;&nbsp;&quot;http://schemas.xmlsoap.org/ws/2004/08/addressing&quot;          </td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
WS-Addressing Namespace for Submission Version 
</div>
</div><p>
<a class="anchor" name="g92e906914bd8ae5a8d3f6014f4bcb189"></a><!-- doxytag: member="axis2_addr.h::AXIS2_WSA_NONE_URL" ref="g92e906914bd8ae5a8d3f6014f4bcb189" args="" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">#define AXIS2_WSA_NONE_URL&nbsp;&nbsp;&nbsp;&quot;http://www.w3.org/2005/08/addressing/none&quot;          </td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
WS-Addressing None URL for 1.0 Final Version 
</div>
</div><p>
<a class="anchor" name="g4436004b04180b21593a423576b60ef9"></a><!-- doxytag: member="axis2_addr.h::AXIS2_WSA_NONE_URL_SUBMISSION" ref="g4436004b04180b21593a423576b60ef9" args="" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">#define AXIS2_WSA_NONE_URL_SUBMISSION&nbsp;&nbsp;&nbsp;&quot;http://schemas.xmlsoap.org/ws/2004/08/addressing/role/none&quot;          </td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
WS-Addressing None URL for Submission Version 
</div>
</div><p>
<a class="anchor" name="ge70b4a9e6cbf4bed35ea66db740dcd14"></a><!-- doxytag: member="axis2_addr.h::AXIS2_WSA_POLICIES" ref="ge70b4a9e6cbf4bed35ea66db740dcd14" args="" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">#define AXIS2_WSA_POLICIES&nbsp;&nbsp;&nbsp;&quot;Policies&quot;          </td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
WS-Addressing Policies 
</div>
</div><p>
<a class="anchor" name="g1feded3e9bbc7913c3a2abc895bf9844"></a><!-- doxytag: member="axis2_addr.h::AXIS2_WSA_PREFIX_ACTION" ref="g1feded3e9bbc7913c3a2abc895bf9844" args="" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">#define AXIS2_WSA_PREFIX_ACTION&nbsp;&nbsp;&nbsp;AXIS2_WSA_DEFAULT_PREFIX&quot;:&quot;AXIS2_WSA_ACTION          </td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
WS-Addressing Prefixes for faults 
</div>
</div><p>
<a class="anchor" name="g491048fb85ab2213d9df72cb1c1a6ca0"></a><!-- doxytag: member="axis2_addr.h::AXIS2_WSA_PREFIX_FAULT_TO" ref="g491048fb85ab2213d9df72cb1c1a6ca0" args="" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">#define AXIS2_WSA_PREFIX_FAULT_TO&nbsp;&nbsp;&nbsp;AXIS2_WSA_DEFAULT_PREFIX&quot;:&quot;AXIS2_WSA_FAULT_TO          </td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
WS-Addressing Prefixes for faults 
</div>
</div><p>
<a class="anchor" name="g02319f4c933bec23d60e64376ef6c926"></a><!-- doxytag: member="axis2_addr.h::AXIS2_WSA_PREFIX_MESSAGE_ID" ref="g02319f4c933bec23d60e64376ef6c926" args="" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">#define AXIS2_WSA_PREFIX_MESSAGE_ID&nbsp;&nbsp;&nbsp;AXIS2_WSA_DEFAULT_PREFIX&quot;:&quot;AXIS2_WSA_MESSAGE_ID          </td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
WS-Addressing Prefixes for faults 
</div>
</div><p>
<a class="anchor" name="g4ea0451331116aef7a25dfd57091ddeb"></a><!-- doxytag: member="axis2_addr.h::AXIS2_WSA_PREFIX_REPLY_TO" ref="g4ea0451331116aef7a25dfd57091ddeb" args="" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">#define AXIS2_WSA_PREFIX_REPLY_TO&nbsp;&nbsp;&nbsp;AXIS2_WSA_DEFAULT_PREFIX&quot;:&quot;AXIS2_WSA_REPLY_TO          </td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
WS-Addressing Prefixes for faults 
</div>
</div><p>
<a class="anchor" name="gfc85ee803652f7b516adce75a32d195e"></a><!-- doxytag: member="axis2_addr.h::AXIS2_WSA_PREFIX_TO" ref="gfc85ee803652f7b516adce75a32d195e" args="" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">#define AXIS2_WSA_PREFIX_TO&nbsp;&nbsp;&nbsp;AXIS2_WSA_DEFAULT_PREFIX&quot;:&quot;AXIS2_WSA_TO          </td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
WS-Addressing Prefixes for faults 
</div>
</div><p>
<a class="anchor" name="gd5e65fcd5241c76c23a50f846441266a"></a><!-- doxytag: member="axis2_addr.h::AXIS2_WSA_RELATES_TO" ref="gd5e65fcd5241c76c23a50f846441266a" args="" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">#define AXIS2_WSA_RELATES_TO&nbsp;&nbsp;&nbsp;&quot;RelatesTo&quot;          </td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
WS-Addressing Relates To 
</div>
</div><p>
<a class="anchor" name="ga475c2e10b1d601b02a2f8be25ed5ab9"></a><!-- doxytag: member="axis2_addr.h::AXIS2_WSA_RELATES_TO_RELATIONSHIP_TYPE" ref="ga475c2e10b1d601b02a2f8be25ed5ab9" args="" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">#define AXIS2_WSA_RELATES_TO_RELATIONSHIP_TYPE&nbsp;&nbsp;&nbsp;&quot;RelationshipType&quot;          </td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
WS-Addressing Relates To Relationship Type 
</div>
</div><p>
<a class="anchor" name="g540bf85e886e5f00dc4ba2c84673be19"></a><!-- doxytag: member="axis2_addr.h::AXIS2_WSA_RELATES_TO_RELATIONSHIP_TYPE_DEFAULT_VALUE" ref="g540bf85e886e5f00dc4ba2c84673be19" args="" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">#define AXIS2_WSA_RELATES_TO_RELATIONSHIP_TYPE_DEFAULT_VALUE&nbsp;&nbsp;&nbsp;&quot;http://www.w3.org/2005/08/addressing/reply&quot;          </td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
WS-Addressing Relates To Relationship Type Default Value for 1.0 Final Version 
</div>
</div><p>
<a class="anchor" name="g96acda046fde6398ecd5c494b5feb1ab"></a><!-- doxytag: member="axis2_addr.h::AXIS2_WSA_RELATES_TO_RELATIONSHIP_TYPE_DEFAULT_VALUE_SUBMISSION" ref="g96acda046fde6398ecd5c494b5feb1ab" args="" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">#define AXIS2_WSA_RELATES_TO_RELATIONSHIP_TYPE_DEFAULT_VALUE_SUBMISSION&nbsp;&nbsp;&nbsp;&quot;wsa:Reply&quot;          </td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
WS-Addressing Relates To Relationship Type Default Value for Submission Version 
</div>
</div><p>
<a class="anchor" name="g4c2fe672174cb7f77f5fc68e7c78249a"></a><!-- doxytag: member="axis2_addr.h::AXIS2_WSA_REPLY_TO" ref="g4c2fe672174cb7f77f5fc68e7c78249a" args="" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">#define AXIS2_WSA_REPLY_TO&nbsp;&nbsp;&nbsp;&quot;ReplyTo&quot;          </td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
WS-Addressing Reply To 
</div>
</div><p>
<a class="anchor" name="gc92b4d9b87dc12c105b8578dcf586c79"></a><!-- doxytag: member="axis2_addr.h::AXIS2_WSA_SERVICE_NAME_ENDPOINT_NAME" ref="gc92b4d9b87dc12c105b8578dcf586c79" args="" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">#define AXIS2_WSA_SERVICE_NAME_ENDPOINT_NAME&nbsp;&nbsp;&nbsp;&quot;EndpointName&quot;          </td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
WS-Addressing Service/Endpoint Name 
</div>
</div><p>
<a class="anchor" name="ga03c11932fc77dffe74a333717adfab7"></a><!-- doxytag: member="axis2_addr.h::AXIS2_WSA_TO" ref="ga03c11932fc77dffe74a333717adfab7" args="" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">#define AXIS2_WSA_TO&nbsp;&nbsp;&nbsp;&quot;To&quot;          </td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
WS-Addressing To 
</div>
</div><p>
<a class="anchor" name="g170975fbb730fc9f4ef77012b6dd9db7"></a><!-- doxytag: member="axis2_addr.h::AXIS2_WSA_TYPE_ATTRIBUTE_VALUE" ref="g170975fbb730fc9f4ef77012b6dd9db7" args="" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">#define AXIS2_WSA_TYPE_ATTRIBUTE_VALUE&nbsp;&nbsp;&nbsp;&quot;true&quot;          </td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
WS-Addressing Type Attribute Value 
</div>
</div><p>
<a class="anchor" name="g297643cc83960855fedf77da10dfee07"></a><!-- doxytag: member="axis2_addr.h::AXIS2_WSA_VERSION" ref="g297643cc83960855fedf77da10dfee07" args="" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">#define AXIS2_WSA_VERSION&nbsp;&nbsp;&nbsp;&quot;WSAddressingVersion&quot;          </td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
WS-Addressing Version 
</div>
</div><p>
<a class="anchor" name="g50b15986d08ce1bb6cb8a3d3b9551449"></a><!-- doxytag: member="axis2_addr.h::EPR_ADDRESS" ref="g50b15986d08ce1bb6cb8a3d3b9551449" args="" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">#define EPR_ADDRESS&nbsp;&nbsp;&nbsp;&quot;Address&quot;          </td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
End Pointer Reference Address 
</div>
</div><p>
<a class="anchor" name="g08e974b9cc0517032404490c7e4a4c24"></a><!-- doxytag: member="axis2_addr.h::EPR_PORT_TYPE" ref="g08e974b9cc0517032404490c7e4a4c24" args="" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">#define EPR_PORT_TYPE&nbsp;&nbsp;&nbsp;&quot;PortType&quot;          </td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
End Pointer Reference Port Type 
</div>
</div><p>
<a class="anchor" name="g72037ab1241ed326161516f373649416"></a><!-- doxytag: member="axis2_addr.h::EPR_REFERENCE_PARAMETERS" ref="g72037ab1241ed326161516f373649416" args="" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">#define EPR_REFERENCE_PARAMETERS&nbsp;&nbsp;&nbsp;&quot;ReferenceParameters&quot;          </td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
End Pointer Reference Reference Parameters 
</div>
</div><p>
<a class="anchor" name="g4e4e093ba53c71df53a2a3a641192577"></a><!-- doxytag: member="axis2_addr.h::EPR_REFERENCE_PROPERTIES" ref="g4e4e093ba53c71df53a2a3a641192577" args="" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">#define EPR_REFERENCE_PROPERTIES&nbsp;&nbsp;&nbsp;&quot;ReferenceProperties&quot;          </td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
End Pointer Reference Reference Properties 
</div>
</div><p>
<a class="anchor" name="ga8706ee876df13fee596dd3d3b90fb55"></a><!-- doxytag: member="axis2_addr.h::EPR_SERVICE_NAME" ref="ga8706ee876df13fee596dd3d3b90fb55" args="" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">#define EPR_SERVICE_NAME&nbsp;&nbsp;&nbsp;&quot;ServiceName&quot;          </td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
End Pointer Reference Service Name 
</div>
</div><p>
<a class="anchor" name="g58f5d3de5e39fc0722adca9514731fd7"></a><!-- doxytag: member="axis2_addr.h::EPR_SERVICE_NAME_PORT_NAME" ref="g58f5d3de5e39fc0722adca9514731fd7" args="" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">#define EPR_SERVICE_NAME_PORT_NAME&nbsp;&nbsp;&nbsp;&quot;PortName&quot;          </td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
End Pointer Reference Port Name 
</div>
</div><p>
<a class="anchor" name="g1580e5c766744e70e754e9515b0b781f"></a><!-- doxytag: member="axis2_addr.h::PARAM_SERVICE_GROUP_CONTEXT_ID" ref="g1580e5c766744e70e754e9515b0b781f" args="" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">#define PARAM_SERVICE_GROUP_CONTEXT_ID&nbsp;&nbsp;&nbsp;&quot;ServiceGroupContextIdFromAddressing&quot;          </td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
WS-Addressing Param Service Group Context ID 
</div>
</div><p>
<hr size="1"><address style="text-align: right;"><small>Generated on Fri Apr 17 11:49:44 2009 for Axis2/C by&nbsp;
<a href="http://www.doxygen.org/index.html">
<img src="doxygen.png" alt="doxygen" align="middle" border="0"></a> 1.5.3 </small></address>
</body>
</html>


<|start_filename|>xdocs/api/html/group__axis2__msg__ctx.html<|end_filename|>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html><head><meta http-equiv="Content-Type" content="text/html;charset=UTF-8">
<title>Axis2/C: message context</title>
<link href="doxygen.css" rel="stylesheet" type="text/css">
<link href="tabs.css" rel="stylesheet" type="text/css">
</head><body>
<!-- Generated by Doxygen 1.5.3 -->
<div class="tabs">
  <ul>
    <li><a href="index.html"><span>Main&nbsp;Page</span></a></li>
    <li><a href="modules.html"><span>Modules</span></a></li>
    <li><a href="annotated.html"><span>Classes</span></a></li>
    <li><a href="files.html"><span>Files</span></a></li>
    <li><a href="dirs.html"><span>Directories</span></a></li>
    <li><a href="pages.html"><span>Related&nbsp;Pages</span></a></li>
    <li><a href="examples.html"><span>Examples</span></a></li>
    <li>
      <form action="search.php" method="get">
        <table cellspacing="0" cellpadding="0" border="0">
          <tr>
            <td><label>&nbsp;<u>S</u>earch&nbsp;for&nbsp;</label></td>
            <td><input type="text" name="query" value="" size="20" accesskey="s"/></td>
          </tr>
        </table>
      </form>
    </li>
  </ul>
</div>
<h1>message context<br>
<small>
[<a class="el" href="group__axis2__context.html">Context Hierarchy</a>]</small>
</h1><table border="0" cellpadding="0" cellspacing="0">
<tr><td></td></tr>
<tr><td colspan="2"><br><h2>Files</h2></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top">file &nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="axis2__msg__ctx_8h.html">axis2_msg_ctx.h</a></td></tr>

<tr><td colspan="2"><br><h2>Defines</h2></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top">#define&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__axis2__msg__ctx.html#g44eafb1b488dbb8b1a5c96b1a20e0672">AXIS2_TRANSPORT_HEADERS</a>&nbsp;&nbsp;&nbsp;&quot;AXIS2_TRANSPORT_HEADERS&quot;</td></tr>

<tr><td class="memItemLeft" nowrap align="right" valign="top">#define&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__axis2__msg__ctx.html#g54db92215436083e7d8202149773c193">AXIS2_TRANSPORT_OUT</a>&nbsp;&nbsp;&nbsp;&quot;AXIS2_TRANSPORT_OUT&quot;</td></tr>

<tr><td class="memItemLeft" nowrap align="right" valign="top">#define&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__axis2__msg__ctx.html#g565c1b1f3f6b81f999fd20765b652c18">AXIS2_TRANSPORT_IN</a>&nbsp;&nbsp;&nbsp;&quot;AXIS2_TRANSPORT_IN&quot;</td></tr>

<tr><td class="memItemLeft" nowrap align="right" valign="top">#define&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__axis2__msg__ctx.html#g7c5ab0e072df1c661f2e547ac7185d1f">AXIS2_CHARACTER_SET_ENCODING</a>&nbsp;&nbsp;&nbsp;&quot;AXIS2_CHARACTER_SET_ENCODING&quot;</td></tr>

<tr><td class="memItemLeft" nowrap align="right" valign="top">#define&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__axis2__msg__ctx.html#g7b3f76abded0b271e02ee3d8e3ace866">AXIS2_UTF_8</a>&nbsp;&nbsp;&nbsp;&quot;UTF-8&quot;</td></tr>

<tr><td class="memItemLeft" nowrap align="right" valign="top">#define&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__axis2__msg__ctx.html#g18012bb0c44b6992bbceef98b7b81608">AXIS2_UTF_16</a>&nbsp;&nbsp;&nbsp;&quot;utf-16&quot;</td></tr>

<tr><td class="memItemLeft" nowrap align="right" valign="top">#define&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__axis2__msg__ctx.html#g6322d4be41907e2a6d3d63a4c5e57dcb">AXIS2_DEFAULT_CHAR_SET_ENCODING</a>&nbsp;&nbsp;&nbsp;&quot;UTF-8&quot;</td></tr>

<tr><td class="memItemLeft" nowrap align="right" valign="top">#define&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__axis2__msg__ctx.html#g45fb20080ffa2a4f7d18a844193ada04">AXIS2_TRANSPORT_SUCCEED</a>&nbsp;&nbsp;&nbsp;&quot;AXIS2_TRANSPORT_SUCCEED&quot;</td></tr>

<tr><td class="memItemLeft" nowrap align="right" valign="top">#define&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__axis2__msg__ctx.html#g54e451fddf8b69dd8a9cd357d81a2525">AXIS2_HTTP_CLIENT</a>&nbsp;&nbsp;&nbsp;&quot;AXIS2_HTTP_CLIENT&quot;</td></tr>

<tr><td class="memItemLeft" nowrap align="right" valign="top">#define&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__axis2__msg__ctx.html#g698a681ef62502de45559859fe9e2cbd">AXIS2_TRANSPORT_URL</a>&nbsp;&nbsp;&nbsp;&quot;TransportURL&quot;</td></tr>

<tr><td class="memItemLeft" nowrap align="right" valign="top">#define&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__axis2__msg__ctx.html#g7474c039348fcaae57ebc785661329ce">AXIS2_SVR_PEER_IP_ADDR</a>&nbsp;&nbsp;&nbsp;&quot;peer_ip_addr&quot;</td></tr>

<tr><td colspan="2"><br><h2>Typedefs</h2></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top">typedef struct <br>
axis2_msg_ctx&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__axis2__msg__ctx.html#g160acae289ac39cb49fa625ffd88e410">axis2_msg_ctx_t</a></td></tr>

<tr><td class="memItemLeft" nowrap align="right" valign="top">typedef struct <br>
axis2_svc *(*&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__axis2__msg__ctx.html#g9949f405b8bfac0ee5015d67d3ee949c">AXIS2_MSG_CTX_FIND_SVC</a> )(<a class="el" href="group__axis2__msg__ctx.html#g160acae289ac39cb49fa625ffd88e410">axis2_msg_ctx_t</a> *msg_ctx, const <a class="el" href="structaxutil__env.html">axutil_env_t</a> *env)</td></tr>

<tr><td class="memItemLeft" nowrap align="right" valign="top">typedef struct <br>
axis2_op *(*&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__axis2__msg__ctx.html#g0b84b027d9bcb64409d21de24751e904">AXIS2_MSG_CTX_FIND_OP</a> )(<a class="el" href="group__axis2__msg__ctx.html#g160acae289ac39cb49fa625ffd88e410">axis2_msg_ctx_t</a> *msg_ctx, const <a class="el" href="structaxutil__env.html">axutil_env_t</a> *env, struct axis2_svc *svc)</td></tr>

<tr><td colspan="2"><br><h2>Functions</h2></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top">AXIS2_EXTERN <br>
<a class="el" href="group__axis2__msg__ctx.html#g160acae289ac39cb49fa625ffd88e410">axis2_msg_ctx_t</a> *&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__axis2__msg__ctx.html#gcaafe43e332e370bc1e3f3c5d0f361a0">axis2_msg_ctx_create</a> (const <a class="el" href="structaxutil__env.html">axutil_env_t</a> *env, struct axis2_conf_ctx *conf_ctx, struct axis2_transport_in_desc *transport_in_desc, struct axis2_transport_out_desc *transport_out_desc)</td></tr>

<tr><td class="memItemLeft" nowrap align="right" valign="top">AXIS2_EXTERN <br>
<a class="el" href="group__axis2__ctx.html#ga705ff779281577f08fef5330c23402c">axis2_ctx_t</a> *&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__axis2__msg__ctx.html#g21705c3ecce5d8869ecf66fc68a9cc21">axis2_msg_ctx_get_base</a> (const <a class="el" href="group__axis2__msg__ctx.html#g160acae289ac39cb49fa625ffd88e410">axis2_msg_ctx_t</a> *msg_ctx, const <a class="el" href="structaxutil__env.html">axutil_env_t</a> *env)</td></tr>

<tr><td class="memItemLeft" nowrap align="right" valign="top">AXIS2_EXTERN struct <br>
axis2_op_ctx *&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__axis2__msg__ctx.html#gd4ce3d1d6debe530cbb3dffb2a43c866">axis2_msg_ctx_get_parent</a> (const <a class="el" href="group__axis2__msg__ctx.html#g160acae289ac39cb49fa625ffd88e410">axis2_msg_ctx_t</a> *msg_ctx, const <a class="el" href="structaxutil__env.html">axutil_env_t</a> *env)</td></tr>

<tr><td class="memItemLeft" nowrap align="right" valign="top">AXIS2_EXTERN <br>
axis2_status_t&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__axis2__msg__ctx.html#gc744a1bb471165ffafb70dfc3ac983de">axis2_msg_ctx_set_parent</a> (<a class="el" href="group__axis2__msg__ctx.html#g160acae289ac39cb49fa625ffd88e410">axis2_msg_ctx_t</a> *msg_ctx, const <a class="el" href="structaxutil__env.html">axutil_env_t</a> *env, struct axis2_op_ctx *parent)</td></tr>

<tr><td class="memItemLeft" nowrap align="right" valign="top">AXIS2_EXTERN void&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__axis2__msg__ctx.html#gb324606b76e49c07e3ea0454f964284a">axis2_msg_ctx_free</a> (<a class="el" href="group__axis2__msg__ctx.html#g160acae289ac39cb49fa625ffd88e410">axis2_msg_ctx_t</a> *msg_ctx, const <a class="el" href="structaxutil__env.html">axutil_env_t</a> *env)</td></tr>

<tr><td class="memItemLeft" nowrap align="right" valign="top">AXIS2_EXTERN <br>
axis2_status_t&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__axis2__msg__ctx.html#g0287fe8763ddf42e505d6454d9912a2d">axis2_msg_ctx_init</a> (<a class="el" href="group__axis2__msg__ctx.html#g160acae289ac39cb49fa625ffd88e410">axis2_msg_ctx_t</a> *msg_ctx, const <a class="el" href="structaxutil__env.html">axutil_env_t</a> *env, struct axis2_conf *conf)</td></tr>

<tr><td class="memItemLeft" nowrap align="right" valign="top">AXIS2_EXTERN <br>
<a class="el" href="group__axis2__endpoint__ref.html#gf6e89c83a6b553e7e3f11e787b3fecd4">axis2_endpoint_ref_t</a> *&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__axis2__msg__ctx.html#g67ec8b0b713a7e2f0f0ba6d04ea8c483">axis2_msg_ctx_get_fault_to</a> (const <a class="el" href="group__axis2__msg__ctx.html#g160acae289ac39cb49fa625ffd88e410">axis2_msg_ctx_t</a> *msg_ctx, const <a class="el" href="structaxutil__env.html">axutil_env_t</a> *env)</td></tr>

<tr><td class="memItemLeft" nowrap align="right" valign="top">AXIS2_EXTERN <br>
<a class="el" href="group__axis2__endpoint__ref.html#gf6e89c83a6b553e7e3f11e787b3fecd4">axis2_endpoint_ref_t</a> *&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__axis2__msg__ctx.html#g8494bb2e6d1b4663da5dbf99ef2ee16e">axis2_msg_ctx_get_from</a> (const <a class="el" href="group__axis2__msg__ctx.html#g160acae289ac39cb49fa625ffd88e410">axis2_msg_ctx_t</a> *msg_ctx, const <a class="el" href="structaxutil__env.html">axutil_env_t</a> *env)</td></tr>

<tr><td class="memItemLeft" nowrap align="right" valign="top">AXIS2_EXTERN axis2_bool_t&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__axis2__msg__ctx.html#g01232a7693673fae962371c41cc154bd">axis2_msg_ctx_get_in_fault_flow</a> (const <a class="el" href="group__axis2__msg__ctx.html#g160acae289ac39cb49fa625ffd88e410">axis2_msg_ctx_t</a> *msg_ctx, const <a class="el" href="structaxutil__env.html">axutil_env_t</a> *env)</td></tr>

<tr><td class="memItemLeft" nowrap align="right" valign="top">AXIS2_EXTERN struct <br>
axiom_soap_envelope *&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__axis2__msg__ctx.html#g6cc0c3db53e071721b027ec89d0bbc23">axis2_msg_ctx_get_soap_envelope</a> (const <a class="el" href="group__axis2__msg__ctx.html#g160acae289ac39cb49fa625ffd88e410">axis2_msg_ctx_t</a> *msg_ctx, const <a class="el" href="structaxutil__env.html">axutil_env_t</a> *env)</td></tr>

<tr><td class="memItemLeft" nowrap align="right" valign="top">AXIS2_EXTERN struct <br>
axiom_soap_envelope *&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__axis2__msg__ctx.html#g6430b72e8f0d297545d5c77dbde13f88">axis2_msg_ctx_get_response_soap_envelope</a> (const <a class="el" href="group__axis2__msg__ctx.html#g160acae289ac39cb49fa625ffd88e410">axis2_msg_ctx_t</a> *msg_ctx, const <a class="el" href="structaxutil__env.html">axutil_env_t</a> *env)</td></tr>

<tr><td class="memItemLeft" nowrap align="right" valign="top">AXIS2_EXTERN struct <br>
axiom_soap_envelope *&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__axis2__msg__ctx.html#gcad76203a38152006e85476751ae7826">axis2_msg_ctx_get_fault_soap_envelope</a> (const <a class="el" href="group__axis2__msg__ctx.html#g160acae289ac39cb49fa625ffd88e410">axis2_msg_ctx_t</a> *msg_ctx, const <a class="el" href="structaxutil__env.html">axutil_env_t</a> *env)</td></tr>

<tr><td class="memItemLeft" nowrap align="right" valign="top">AXIS2_EXTERN <br>
axis2_status_t&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__axis2__msg__ctx.html#g1371f00e4242de82b6475dd9443ab5db">axis2_msg_ctx_set_msg_id</a> (const <a class="el" href="group__axis2__msg__ctx.html#g160acae289ac39cb49fa625ffd88e410">axis2_msg_ctx_t</a> *msg_ctx, const <a class="el" href="structaxutil__env.html">axutil_env_t</a> *env, axis2_char_t *msg_id)</td></tr>

<tr><td class="memItemLeft" nowrap align="right" valign="top">AXIS2_EXTERN const <br>
axis2_char_t *&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__axis2__msg__ctx.html#g1f05e034e633a5649c4aead35b9b2b3f">axis2_msg_ctx_get_msg_id</a> (const <a class="el" href="group__axis2__msg__ctx.html#g160acae289ac39cb49fa625ffd88e410">axis2_msg_ctx_t</a> *msg_ctx, const <a class="el" href="structaxutil__env.html">axutil_env_t</a> *env)</td></tr>

<tr><td class="memItemLeft" nowrap align="right" valign="top">AXIS2_EXTERN axis2_bool_t&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__axis2__msg__ctx.html#g16845c84b066ba612fd26340de37a842">axis2_msg_ctx_get_process_fault</a> (const <a class="el" href="group__axis2__msg__ctx.html#g160acae289ac39cb49fa625ffd88e410">axis2_msg_ctx_t</a> *msg_ctx, const <a class="el" href="structaxutil__env.html">axutil_env_t</a> *env)</td></tr>

<tr><td class="memItemLeft" nowrap align="right" valign="top">AXIS2_EXTERN <br>
<a class="el" href="group__axis2__relates__to.html#gd92fd7b0e63b44c6343db15b61aeba45">axis2_relates_to_t</a> *&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__axis2__msg__ctx.html#gc3000334e5eaaaef9bb6f6cc610e463b">axis2_msg_ctx_get_relates_to</a> (const <a class="el" href="group__axis2__msg__ctx.html#g160acae289ac39cb49fa625ffd88e410">axis2_msg_ctx_t</a> *msg_ctx, const <a class="el" href="structaxutil__env.html">axutil_env_t</a> *env)</td></tr>

<tr><td class="memItemLeft" nowrap align="right" valign="top">AXIS2_EXTERN <br>
<a class="el" href="group__axis2__endpoint__ref.html#gf6e89c83a6b553e7e3f11e787b3fecd4">axis2_endpoint_ref_t</a> *&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__axis2__msg__ctx.html#g8a54ba62dbb7097616ac384a9d731163">axis2_msg_ctx_get_reply_to</a> (const <a class="el" href="group__axis2__msg__ctx.html#g160acae289ac39cb49fa625ffd88e410">axis2_msg_ctx_t</a> *msg_ctx, const <a class="el" href="structaxutil__env.html">axutil_env_t</a> *env)</td></tr>

<tr><td class="memItemLeft" nowrap align="right" valign="top">AXIS2_EXTERN axis2_bool_t&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__axis2__msg__ctx.html#g644ee3f4d6e47f63cb1f3388db52f723">axis2_msg_ctx_get_server_side</a> (const <a class="el" href="group__axis2__msg__ctx.html#g160acae289ac39cb49fa625ffd88e410">axis2_msg_ctx_t</a> *msg_ctx, const <a class="el" href="structaxutil__env.html">axutil_env_t</a> *env)</td></tr>

<tr><td class="memItemLeft" nowrap align="right" valign="top">AXIS2_EXTERN <br>
<a class="el" href="group__axis2__endpoint__ref.html#gf6e89c83a6b553e7e3f11e787b3fecd4">axis2_endpoint_ref_t</a> *&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__axis2__msg__ctx.html#g4596067ca561b23abd8c277fff1ba686">axis2_msg_ctx_get_to</a> (const <a class="el" href="group__axis2__msg__ctx.html#g160acae289ac39cb49fa625ffd88e410">axis2_msg_ctx_t</a> *msg_ctx, const <a class="el" href="structaxutil__env.html">axutil_env_t</a> *env)</td></tr>

<tr><td class="memItemLeft" nowrap align="right" valign="top">AXIS2_EXTERN <br>
axis2_status_t&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__axis2__msg__ctx.html#gf1bce1caf16c721b26fae05bbb7987da">axis2_msg_ctx_set_fault_to</a> (<a class="el" href="group__axis2__msg__ctx.html#g160acae289ac39cb49fa625ffd88e410">axis2_msg_ctx_t</a> *msg_ctx, const <a class="el" href="structaxutil__env.html">axutil_env_t</a> *env, <a class="el" href="group__axis2__endpoint__ref.html#gf6e89c83a6b553e7e3f11e787b3fecd4">axis2_endpoint_ref_t</a> *reference)</td></tr>

<tr><td class="memItemLeft" nowrap align="right" valign="top">AXIS2_EXTERN <br>
axis2_status_t&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__axis2__msg__ctx.html#gf448b8b9b290531148d0e1dfa9a46c15">axis2_msg_ctx_set_from</a> (<a class="el" href="group__axis2__msg__ctx.html#g160acae289ac39cb49fa625ffd88e410">axis2_msg_ctx_t</a> *msg_ctx, const <a class="el" href="structaxutil__env.html">axutil_env_t</a> *env, <a class="el" href="group__axis2__endpoint__ref.html#gf6e89c83a6b553e7e3f11e787b3fecd4">axis2_endpoint_ref_t</a> *reference)</td></tr>

<tr><td class="memItemLeft" nowrap align="right" valign="top">AXIS2_EXTERN <br>
axis2_status_t&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__axis2__msg__ctx.html#g5a5a0204f62d42f7e79cf8d0c9fa9278">axis2_msg_ctx_set_in_fault_flow</a> (<a class="el" href="group__axis2__msg__ctx.html#g160acae289ac39cb49fa625ffd88e410">axis2_msg_ctx_t</a> *msg_ctx, const <a class="el" href="structaxutil__env.html">axutil_env_t</a> *env, const axis2_bool_t in_fault_flow)</td></tr>

<tr><td class="memItemLeft" nowrap align="right" valign="top">AXIS2_EXTERN <br>
axis2_status_t&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__axis2__msg__ctx.html#g805be33a022232ca42fb58fad77e6ddf">axis2_msg_ctx_set_soap_envelope</a> (<a class="el" href="group__axis2__msg__ctx.html#g160acae289ac39cb49fa625ffd88e410">axis2_msg_ctx_t</a> *msg_ctx, const <a class="el" href="structaxutil__env.html">axutil_env_t</a> *env, struct axiom_soap_envelope *soap_envelope)</td></tr>

<tr><td class="memItemLeft" nowrap align="right" valign="top">AXIS2_EXTERN <br>
axis2_status_t&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__axis2__msg__ctx.html#gff90d0a3f90a95b7dcbce89c6a4d9a35">axis2_msg_ctx_set_response_soap_envelope</a> (<a class="el" href="group__axis2__msg__ctx.html#g160acae289ac39cb49fa625ffd88e410">axis2_msg_ctx_t</a> *msg_ctx, const <a class="el" href="structaxutil__env.html">axutil_env_t</a> *env, struct axiom_soap_envelope *soap_envelope)</td></tr>

<tr><td class="memItemLeft" nowrap align="right" valign="top">AXIS2_EXTERN <br>
axis2_status_t&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__axis2__msg__ctx.html#g5a75d1d93e2cee20aab553cdaa02b414">axis2_msg_ctx_set_fault_soap_envelope</a> (<a class="el" href="group__axis2__msg__ctx.html#g160acae289ac39cb49fa625ffd88e410">axis2_msg_ctx_t</a> *msg_ctx, const <a class="el" href="structaxutil__env.html">axutil_env_t</a> *env, struct axiom_soap_envelope *soap_envelope)</td></tr>

<tr><td class="memItemLeft" nowrap align="right" valign="top">AXIS2_EXTERN <br>
axis2_status_t&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__axis2__msg__ctx.html#g9523fae1595a4b3e9dead658deccce7f">axis2_msg_ctx_set_message_id</a> (<a class="el" href="group__axis2__msg__ctx.html#g160acae289ac39cb49fa625ffd88e410">axis2_msg_ctx_t</a> *msg_ctx, const <a class="el" href="structaxutil__env.html">axutil_env_t</a> *env, const axis2_char_t *message_id)</td></tr>

<tr><td class="memItemLeft" nowrap align="right" valign="top">AXIS2_EXTERN <br>
axis2_status_t&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__axis2__msg__ctx.html#g7ed492aa405ef700226a3a19cf6c1433">axis2_msg_ctx_set_process_fault</a> (<a class="el" href="group__axis2__msg__ctx.html#g160acae289ac39cb49fa625ffd88e410">axis2_msg_ctx_t</a> *msg_ctx, const <a class="el" href="structaxutil__env.html">axutil_env_t</a> *env, const axis2_bool_t process_fault)</td></tr>

<tr><td class="memItemLeft" nowrap align="right" valign="top">AXIS2_EXTERN <br>
axis2_status_t&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__axis2__msg__ctx.html#g619646919121558645495bc791b14688">axis2_msg_ctx_set_relates_to</a> (<a class="el" href="group__axis2__msg__ctx.html#g160acae289ac39cb49fa625ffd88e410">axis2_msg_ctx_t</a> *msg_ctx, const <a class="el" href="structaxutil__env.html">axutil_env_t</a> *env, <a class="el" href="group__axis2__relates__to.html#gd92fd7b0e63b44c6343db15b61aeba45">axis2_relates_to_t</a> *reference)</td></tr>

<tr><td class="memItemLeft" nowrap align="right" valign="top">AXIS2_EXTERN <br>
axis2_status_t&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__axis2__msg__ctx.html#g35bc63b6c82bdcc9fce81815e3ca5c4c">axis2_msg_ctx_set_reply_to</a> (<a class="el" href="group__axis2__msg__ctx.html#g160acae289ac39cb49fa625ffd88e410">axis2_msg_ctx_t</a> *msg_ctx, const <a class="el" href="structaxutil__env.html">axutil_env_t</a> *env, <a class="el" href="group__axis2__endpoint__ref.html#gf6e89c83a6b553e7e3f11e787b3fecd4">axis2_endpoint_ref_t</a> *reference)</td></tr>

<tr><td class="memItemLeft" nowrap align="right" valign="top">AXIS2_EXTERN <br>
axis2_status_t&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__axis2__msg__ctx.html#g3d12635f667d18ad9e5ce6ed6af42560">axis2_msg_ctx_set_server_side</a> (<a class="el" href="group__axis2__msg__ctx.html#g160acae289ac39cb49fa625ffd88e410">axis2_msg_ctx_t</a> *msg_ctx, const <a class="el" href="structaxutil__env.html">axutil_env_t</a> *env, const axis2_bool_t server_side)</td></tr>

<tr><td class="memItemLeft" nowrap align="right" valign="top">AXIS2_EXTERN <br>
axis2_status_t&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__axis2__msg__ctx.html#ge1f6c9f77e01f1e59ce285de19d958a6">axis2_msg_ctx_set_to</a> (<a class="el" href="group__axis2__msg__ctx.html#g160acae289ac39cb49fa625ffd88e410">axis2_msg_ctx_t</a> *msg_ctx, const <a class="el" href="structaxutil__env.html">axutil_env_t</a> *env, <a class="el" href="group__axis2__endpoint__ref.html#gf6e89c83a6b553e7e3f11e787b3fecd4">axis2_endpoint_ref_t</a> *reference)</td></tr>

<tr><td class="memItemLeft" nowrap align="right" valign="top">AXIS2_EXTERN axis2_bool_t&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__axis2__msg__ctx.html#gba6ab8a714e0f06ea2c629bccce07e53">axis2_msg_ctx_get_new_thread_required</a> (const <a class="el" href="group__axis2__msg__ctx.html#g160acae289ac39cb49fa625ffd88e410">axis2_msg_ctx_t</a> *msg_ctx, const <a class="el" href="structaxutil__env.html">axutil_env_t</a> *env)</td></tr>

<tr><td class="memItemLeft" nowrap align="right" valign="top">AXIS2_EXTERN <br>
axis2_status_t&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__axis2__msg__ctx.html#ga93cc6c40d67fed5df3f6891bce068a1">axis2_msg_ctx_set_new_thread_required</a> (<a class="el" href="group__axis2__msg__ctx.html#g160acae289ac39cb49fa625ffd88e410">axis2_msg_ctx_t</a> *msg_ctx, const <a class="el" href="structaxutil__env.html">axutil_env_t</a> *env, const axis2_bool_t new_thread_required)</td></tr>

<tr><td class="memItemLeft" nowrap align="right" valign="top">AXIS2_EXTERN <br>
axis2_status_t&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__axis2__msg__ctx.html#g1d1b6917c9c9b885e1f658b0787afea3">axis2_msg_ctx_set_wsa_action</a> (<a class="el" href="group__axis2__msg__ctx.html#g160acae289ac39cb49fa625ffd88e410">axis2_msg_ctx_t</a> *msg_ctx, const <a class="el" href="structaxutil__env.html">axutil_env_t</a> *env, const axis2_char_t *action_uri)</td></tr>

<tr><td class="memItemLeft" nowrap align="right" valign="top">AXIS2_EXTERN const <br>
axis2_char_t *&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__axis2__msg__ctx.html#g0d5ac74951bdd09c0d78f30899390c2b">axis2_msg_ctx_get_wsa_action</a> (const <a class="el" href="group__axis2__msg__ctx.html#g160acae289ac39cb49fa625ffd88e410">axis2_msg_ctx_t</a> *msg_ctx, const <a class="el" href="structaxutil__env.html">axutil_env_t</a> *env)</td></tr>

<tr><td class="memItemLeft" nowrap align="right" valign="top">AXIS2_EXTERN <br>
axis2_status_t&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__axis2__msg__ctx.html#g03166053a7a0bb7db94ace6e56436f81">axis2_msg_ctx_set_wsa_message_id</a> (<a class="el" href="group__axis2__msg__ctx.html#g160acae289ac39cb49fa625ffd88e410">axis2_msg_ctx_t</a> *msg_ctx, const <a class="el" href="structaxutil__env.html">axutil_env_t</a> *env, const axis2_char_t *message_id)</td></tr>

<tr><td class="memItemLeft" nowrap align="right" valign="top">AXIS2_EXTERN const <br>
axis2_char_t *&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__axis2__msg__ctx.html#g40829d63ca4fca04a39e3313ba840c6a">axis2_msg_ctx_get_wsa_message_id</a> (const <a class="el" href="group__axis2__msg__ctx.html#g160acae289ac39cb49fa625ffd88e410">axis2_msg_ctx_t</a> *msg_ctx, const <a class="el" href="structaxutil__env.html">axutil_env_t</a> *env)</td></tr>

<tr><td class="memItemLeft" nowrap align="right" valign="top">AXIS2_EXTERN <br>
<a class="el" href="group__axis2__msg__info__headers.html#g556873fdfa94e29e43d96728871f3192">axis2_msg_info_headers_t</a> *&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__axis2__msg__ctx.html#g65e6d0ad0877aeff2a9199c31fecec01">axis2_msg_ctx_get_msg_info_headers</a> (const <a class="el" href="group__axis2__msg__ctx.html#g160acae289ac39cb49fa625ffd88e410">axis2_msg_ctx_t</a> *msg_ctx, const <a class="el" href="structaxutil__env.html">axutil_env_t</a> *env)</td></tr>

<tr><td class="memItemLeft" nowrap align="right" valign="top">AXIS2_EXTERN axis2_bool_t&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__axis2__msg__ctx.html#g3fb1000ba8d6fb99b8f443ec4b9804f8">axis2_msg_ctx_get_paused</a> (const <a class="el" href="group__axis2__msg__ctx.html#g160acae289ac39cb49fa625ffd88e410">axis2_msg_ctx_t</a> *msg_ctx, const <a class="el" href="structaxutil__env.html">axutil_env_t</a> *env)</td></tr>

<tr><td class="memItemLeft" nowrap align="right" valign="top">AXIS2_EXTERN <br>
axis2_status_t&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__axis2__msg__ctx.html#g946233e40d8bf6d9d1dd82b25afc117f">axis2_msg_ctx_set_paused</a> (<a class="el" href="group__axis2__msg__ctx.html#g160acae289ac39cb49fa625ffd88e410">axis2_msg_ctx_t</a> *msg_ctx, const <a class="el" href="structaxutil__env.html">axutil_env_t</a> *env, const axis2_bool_t paused)</td></tr>

<tr><td class="memItemLeft" nowrap align="right" valign="top">AXIS2_EXTERN axis2_bool_t&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__axis2__msg__ctx.html#gd087e49c05924aa5e1132d6ebce8f5c9">axis2_msg_ctx_is_keep_alive</a> (const <a class="el" href="group__axis2__msg__ctx.html#g160acae289ac39cb49fa625ffd88e410">axis2_msg_ctx_t</a> *msg_ctx, const <a class="el" href="structaxutil__env.html">axutil_env_t</a> *env)</td></tr>

<tr><td class="memItemLeft" nowrap align="right" valign="top">AXIS2_EXTERN <br>
axis2_status_t&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__axis2__msg__ctx.html#g29a042eb384e9af2798aea7a91cd7d71">axis2_msg_ctx_set_keep_alive</a> (<a class="el" href="group__axis2__msg__ctx.html#g160acae289ac39cb49fa625ffd88e410">axis2_msg_ctx_t</a> *msg_ctx, const <a class="el" href="structaxutil__env.html">axutil_env_t</a> *env, const axis2_bool_t keep_alive)</td></tr>

<tr><td class="memItemLeft" nowrap align="right" valign="top">AXIS2_EXTERN struct <br>
axis2_transport_in_desc *&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__axis2__msg__ctx.html#gd45ce053de9a2aeb9fc0d5d103f7c73a">axis2_msg_ctx_get_transport_in_desc</a> (const <a class="el" href="group__axis2__msg__ctx.html#g160acae289ac39cb49fa625ffd88e410">axis2_msg_ctx_t</a> *msg_ctx, const <a class="el" href="structaxutil__env.html">axutil_env_t</a> *env)</td></tr>

<tr><td class="memItemLeft" nowrap align="right" valign="top">AXIS2_EXTERN struct <br>
axis2_transport_out_desc *&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__axis2__msg__ctx.html#gb4f72089846618d10501bdb9e28f2e01">axis2_msg_ctx_get_transport_out_desc</a> (const <a class="el" href="group__axis2__msg__ctx.html#g160acae289ac39cb49fa625ffd88e410">axis2_msg_ctx_t</a> *msg_ctx, const <a class="el" href="structaxutil__env.html">axutil_env_t</a> *env)</td></tr>

<tr><td class="memItemLeft" nowrap align="right" valign="top">AXIS2_EXTERN <br>
axis2_status_t&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__axis2__msg__ctx.html#g341daeb3f8280985160048c1c868c64b">axis2_msg_ctx_set_transport_in_desc</a> (<a class="el" href="group__axis2__msg__ctx.html#g160acae289ac39cb49fa625ffd88e410">axis2_msg_ctx_t</a> *msg_ctx, const <a class="el" href="structaxutil__env.html">axutil_env_t</a> *env, struct axis2_transport_in_desc *transport_in_desc)</td></tr>

<tr><td class="memItemLeft" nowrap align="right" valign="top">AXIS2_EXTERN <br>
axis2_status_t&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__axis2__msg__ctx.html#g7a70711fb12e2503062ae6f3f91430c6">axis2_msg_ctx_set_transport_out_desc</a> (<a class="el" href="group__axis2__msg__ctx.html#g160acae289ac39cb49fa625ffd88e410">axis2_msg_ctx_t</a> *msg_ctx, const <a class="el" href="structaxutil__env.html">axutil_env_t</a> *env, struct axis2_transport_out_desc *transport_out_desc)</td></tr>

<tr><td class="memItemLeft" nowrap align="right" valign="top">AXIS2_EXTERN struct <br>
axis2_op_ctx *&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__axis2__msg__ctx.html#g4778817a289307212f46e1b60d5eab51">axis2_msg_ctx_get_op_ctx</a> (const <a class="el" href="group__axis2__msg__ctx.html#g160acae289ac39cb49fa625ffd88e410">axis2_msg_ctx_t</a> *msg_ctx, const <a class="el" href="structaxutil__env.html">axutil_env_t</a> *env)</td></tr>

<tr><td class="memItemLeft" nowrap align="right" valign="top">AXIS2_EXTERN <br>
axis2_status_t&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__axis2__msg__ctx.html#geefba02d7fc287e3bdf530dc3743d049">axis2_msg_ctx_set_op_ctx</a> (<a class="el" href="group__axis2__msg__ctx.html#g160acae289ac39cb49fa625ffd88e410">axis2_msg_ctx_t</a> *msg_ctx, const <a class="el" href="structaxutil__env.html">axutil_env_t</a> *env, struct axis2_op_ctx *op_ctx)</td></tr>

<tr><td class="memItemLeft" nowrap align="right" valign="top">AXIS2_EXTERN axis2_bool_t&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__axis2__msg__ctx.html#g634e1277b8a4e29dd9bbbfe8e27350d7">axis2_msg_ctx_get_output_written</a> (const <a class="el" href="group__axis2__msg__ctx.html#g160acae289ac39cb49fa625ffd88e410">axis2_msg_ctx_t</a> *msg_ctx, const <a class="el" href="structaxutil__env.html">axutil_env_t</a> *env)</td></tr>

<tr><td class="memItemLeft" nowrap align="right" valign="top">AXIS2_EXTERN <br>
axis2_status_t&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__axis2__msg__ctx.html#gfd23fcda1919b4f2d1cf361c53ab70cd">axis2_msg_ctx_set_output_written</a> (<a class="el" href="group__axis2__msg__ctx.html#g160acae289ac39cb49fa625ffd88e410">axis2_msg_ctx_t</a> *msg_ctx, const <a class="el" href="structaxutil__env.html">axutil_env_t</a> *env, const axis2_bool_t output_written)</td></tr>

<tr><td class="memItemLeft" nowrap align="right" valign="top">AXIS2_EXTERN const <br>
axis2_char_t *&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__axis2__msg__ctx.html#g04e668915c0d36e60757110e446b6c94">axis2_msg_ctx_get_rest_http_method</a> (const <a class="el" href="group__axis2__msg__ctx.html#g160acae289ac39cb49fa625ffd88e410">axis2_msg_ctx_t</a> *msg_ctx, const <a class="el" href="structaxutil__env.html">axutil_env_t</a> *env)</td></tr>

<tr><td class="memItemLeft" nowrap align="right" valign="top">AXIS2_EXTERN <br>
axis2_status_t&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__axis2__msg__ctx.html#ge935eeecdb3a557edc1057ba572ff5c9">axis2_msg_ctx_set_rest_http_method</a> (struct axis2_msg_ctx *msg_ctx, const <a class="el" href="structaxutil__env.html">axutil_env_t</a> *env, const axis2_char_t *rest_http_method)</td></tr>

<tr><td class="memItemLeft" nowrap align="right" valign="top">AXIS2_EXTERN const <br>
axis2_char_t *&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__axis2__msg__ctx.html#ga015e6d25bffee86c4f258077da21a57">axis2_msg_ctx_get_svc_ctx_id</a> (const <a class="el" href="group__axis2__msg__ctx.html#g160acae289ac39cb49fa625ffd88e410">axis2_msg_ctx_t</a> *msg_ctx, const <a class="el" href="structaxutil__env.html">axutil_env_t</a> *env)</td></tr>

<tr><td class="memItemLeft" nowrap align="right" valign="top">AXIS2_EXTERN <br>
axis2_status_t&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__axis2__msg__ctx.html#g2f35786b04d65569ae12d577e5e58778">axis2_msg_ctx_set_svc_ctx_id</a> (<a class="el" href="group__axis2__msg__ctx.html#g160acae289ac39cb49fa625ffd88e410">axis2_msg_ctx_t</a> *msg_ctx, const <a class="el" href="structaxutil__env.html">axutil_env_t</a> *env, const axis2_char_t *svc_ctx_id)</td></tr>

<tr><td class="memItemLeft" nowrap align="right" valign="top">AXIS2_EXTERN struct <br>
axis2_conf_ctx *&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__axis2__msg__ctx.html#g08b24ce7f8f48a571a0a3461d7e17af9">axis2_msg_ctx_get_conf_ctx</a> (const <a class="el" href="group__axis2__msg__ctx.html#g160acae289ac39cb49fa625ffd88e410">axis2_msg_ctx_t</a> *msg_ctx, const <a class="el" href="structaxutil__env.html">axutil_env_t</a> *env)</td></tr>

<tr><td class="memItemLeft" nowrap align="right" valign="top">AXIS2_EXTERN struct <br>
axis2_svc_ctx *&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__axis2__msg__ctx.html#g983409d62673569724c9bb4532c8465e">axis2_msg_ctx_get_svc_ctx</a> (const <a class="el" href="group__axis2__msg__ctx.html#g160acae289ac39cb49fa625ffd88e410">axis2_msg_ctx_t</a> *msg_ctx, const <a class="el" href="structaxutil__env.html">axutil_env_t</a> *env)</td></tr>

<tr><td class="memItemLeft" nowrap align="right" valign="top">AXIS2_EXTERN <br>
axis2_status_t&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__axis2__msg__ctx.html#gcc3d9fecb8c5af62948f1c1cabbef599">axis2_msg_ctx_set_conf_ctx</a> (<a class="el" href="group__axis2__msg__ctx.html#g160acae289ac39cb49fa625ffd88e410">axis2_msg_ctx_t</a> *msg_ctx, const <a class="el" href="structaxutil__env.html">axutil_env_t</a> *env, struct axis2_conf_ctx *conf_ctx)</td></tr>

<tr><td class="memItemLeft" nowrap align="right" valign="top">AXIS2_EXTERN <br>
axis2_status_t&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__axis2__msg__ctx.html#gdf577adcf8ca0e59934d9d2e6c85ac6d">axis2_msg_ctx_set_svc_ctx</a> (<a class="el" href="group__axis2__msg__ctx.html#g160acae289ac39cb49fa625ffd88e410">axis2_msg_ctx_t</a> *msg_ctx, const <a class="el" href="structaxutil__env.html">axutil_env_t</a> *env, struct axis2_svc_ctx *svc_ctx)</td></tr>

<tr><td class="memItemLeft" nowrap align="right" valign="top">AXIS2_EXTERN <br>
axis2_status_t&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__axis2__msg__ctx.html#g894cd26e3ef286e8cc115d87cc0d31a5">axis2_msg_ctx_set_msg_info_headers</a> (<a class="el" href="group__axis2__msg__ctx.html#g160acae289ac39cb49fa625ffd88e410">axis2_msg_ctx_t</a> *msg_ctx, const <a class="el" href="structaxutil__env.html">axutil_env_t</a> *env, <a class="el" href="group__axis2__msg__info__headers.html#g556873fdfa94e29e43d96728871f3192">axis2_msg_info_headers_t</a> *msg_info_headers)</td></tr>

<tr><td class="memItemLeft" nowrap align="right" valign="top">AXIS2_EXTERN <br>
axutil_param_t *&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__axis2__msg__ctx.html#gf6f4791211bb2e7bb2a3da886da0c06a">axis2_msg_ctx_get_parameter</a> (const <a class="el" href="group__axis2__msg__ctx.html#g160acae289ac39cb49fa625ffd88e410">axis2_msg_ctx_t</a> *msg_ctx, const <a class="el" href="structaxutil__env.html">axutil_env_t</a> *env, const axis2_char_t *key)</td></tr>

<tr><td class="memItemLeft" nowrap align="right" valign="top">AXIS2_EXTERN <br>
axutil_param_t *&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__axis2__msg__ctx.html#g99a3b44ee061e8f7ad4a4e11aa705ab1">axis2_msg_ctx_get_module_parameter</a> (const <a class="el" href="group__axis2__msg__ctx.html#g160acae289ac39cb49fa625ffd88e410">axis2_msg_ctx_t</a> *msg_ctx, const <a class="el" href="structaxutil__env.html">axutil_env_t</a> *env, const axis2_char_t *key, const axis2_char_t *module_name, <a class="el" href="group__axis2__handler__desc.html#gafcabd9d344f36395e60f1b4677835d9">axis2_handler_desc_t</a> *handler_desc)</td></tr>

<tr><td class="memItemLeft" nowrap align="right" valign="top">AXIS2_EXTERN <br>
axutil_property_t *&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__axis2__msg__ctx.html#gb16fd5cd1ee2c9ad86c08529d2194fd4">axis2_msg_ctx_get_property</a> (const <a class="el" href="group__axis2__msg__ctx.html#g160acae289ac39cb49fa625ffd88e410">axis2_msg_ctx_t</a> *msg_ctx, const <a class="el" href="structaxutil__env.html">axutil_env_t</a> *env, const axis2_char_t *key)</td></tr>

<tr><td class="memItemLeft" nowrap align="right" valign="top">AXIS2_EXTERN void *&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__axis2__msg__ctx.html#g1cf9c2fd4213e497c0b51ddaa4742d34">axis2_msg_ctx_get_property_value</a> (<a class="el" href="group__axis2__msg__ctx.html#g160acae289ac39cb49fa625ffd88e410">axis2_msg_ctx_t</a> *msg_ctx, const <a class="el" href="structaxutil__env.html">axutil_env_t</a> *env, const axis2_char_t *property_str)</td></tr>

<tr><td class="memItemLeft" nowrap align="right" valign="top">AXIS2_EXTERN <br>
axis2_status_t&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__axis2__msg__ctx.html#gdd7cf73dd9e04efe08b461854807b698">axis2_msg_ctx_set_property</a> (<a class="el" href="group__axis2__msg__ctx.html#g160acae289ac39cb49fa625ffd88e410">axis2_msg_ctx_t</a> *msg_ctx, const <a class="el" href="structaxutil__env.html">axutil_env_t</a> *env, const axis2_char_t *key, axutil_property_t *value)</td></tr>

<tr><td class="memItemLeft" nowrap align="right" valign="top">AXIS2_EXTERN const <br>
axutil_string_t *&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__axis2__msg__ctx.html#g366fd625ade004c3f9d144cd5544d5be">axis2_msg_ctx_get_paused_handler_name</a> (const <a class="el" href="group__axis2__msg__ctx.html#g160acae289ac39cb49fa625ffd88e410">axis2_msg_ctx_t</a> *msg_ctx, const <a class="el" href="structaxutil__env.html">axutil_env_t</a> *env)</td></tr>

<tr><td class="memItemLeft" nowrap align="right" valign="top">AXIS2_EXTERN const <br>
axis2_char_t *&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__axis2__msg__ctx.html#gbbca92a3ca5b7eb586b3bcb55eb3589b">axis2_msg_ctx_get_paused_phase_name</a> (const <a class="el" href="group__axis2__msg__ctx.html#g160acae289ac39cb49fa625ffd88e410">axis2_msg_ctx_t</a> *msg_ctx, const <a class="el" href="structaxutil__env.html">axutil_env_t</a> *env)</td></tr>

<tr><td class="memItemLeft" nowrap align="right" valign="top">AXIS2_EXTERN <br>
axis2_status_t&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__axis2__msg__ctx.html#g2a5e8c445ee014883e7663b2c0754435">axis2_msg_ctx_set_paused_phase_name</a> (<a class="el" href="group__axis2__msg__ctx.html#g160acae289ac39cb49fa625ffd88e410">axis2_msg_ctx_t</a> *msg_ctx, const <a class="el" href="structaxutil__env.html">axutil_env_t</a> *env, const axis2_char_t *paused_phase_name)</td></tr>

<tr><td class="memItemLeft" nowrap align="right" valign="top">AXIS2_EXTERN <br>
axutil_string_t *&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__axis2__msg__ctx.html#g08e437e115186c445459c16088afd023">axis2_msg_ctx_get_soap_action</a> (const <a class="el" href="group__axis2__msg__ctx.html#g160acae289ac39cb49fa625ffd88e410">axis2_msg_ctx_t</a> *msg_ctx, const <a class="el" href="structaxutil__env.html">axutil_env_t</a> *env)</td></tr>

<tr><td class="memItemLeft" nowrap align="right" valign="top">AXIS2_EXTERN <br>
axis2_status_t&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__axis2__msg__ctx.html#g7c76ec8bcc8ec1fa8728d60625de44c8">axis2_msg_ctx_set_soap_action</a> (<a class="el" href="group__axis2__msg__ctx.html#g160acae289ac39cb49fa625ffd88e410">axis2_msg_ctx_t</a> *msg_ctx, const <a class="el" href="structaxutil__env.html">axutil_env_t</a> *env, axutil_string_t *soap_action)</td></tr>

<tr><td class="memItemLeft" nowrap align="right" valign="top">AXIS2_EXTERN axis2_bool_t&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__axis2__msg__ctx.html#g06b44f369602fb1f397faf8c3b686fbd">axis2_msg_ctx_get_doing_mtom</a> (<a class="el" href="group__axis2__msg__ctx.html#g160acae289ac39cb49fa625ffd88e410">axis2_msg_ctx_t</a> *msg_ctx, const <a class="el" href="structaxutil__env.html">axutil_env_t</a> *env)</td></tr>

<tr><td class="memItemLeft" nowrap align="right" valign="top">AXIS2_EXTERN <br>
axis2_status_t&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__axis2__msg__ctx.html#g96f2cfe70142d34f2c3a36d7e256e74f">axis2_msg_ctx_set_doing_mtom</a> (<a class="el" href="group__axis2__msg__ctx.html#g160acae289ac39cb49fa625ffd88e410">axis2_msg_ctx_t</a> *msg_ctx, const <a class="el" href="structaxutil__env.html">axutil_env_t</a> *env, const axis2_bool_t doing_mtom)</td></tr>

<tr><td class="memItemLeft" nowrap align="right" valign="top">AXIS2_EXTERN axis2_bool_t&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__axis2__msg__ctx.html#g3df7388fa1f7bfe10b559a0a5a2ff1dc">axis2_msg_ctx_get_doing_rest</a> (const <a class="el" href="group__axis2__msg__ctx.html#g160acae289ac39cb49fa625ffd88e410">axis2_msg_ctx_t</a> *msg_ctx, const <a class="el" href="structaxutil__env.html">axutil_env_t</a> *env)</td></tr>

<tr><td class="memItemLeft" nowrap align="right" valign="top">AXIS2_EXTERN <br>
axis2_status_t&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__axis2__msg__ctx.html#g22fa631d4d7d1c62cc6186411dd47996">axis2_msg_ctx_set_doing_rest</a> (<a class="el" href="group__axis2__msg__ctx.html#g160acae289ac39cb49fa625ffd88e410">axis2_msg_ctx_t</a> *msg_ctx, const <a class="el" href="structaxutil__env.html">axutil_env_t</a> *env, const axis2_bool_t doing_rest)</td></tr>

<tr><td class="memItemLeft" nowrap align="right" valign="top">AXIS2_EXTERN <br>
axis2_status_t&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__axis2__msg__ctx.html#ge24672999a7262595e06e6453c5bce32">axis2_msg_ctx_set_do_rest_through_post</a> (<a class="el" href="group__axis2__msg__ctx.html#g160acae289ac39cb49fa625ffd88e410">axis2_msg_ctx_t</a> *msg_ctx, const <a class="el" href="structaxutil__env.html">axutil_env_t</a> *env, const axis2_bool_t do_rest_through_post)</td></tr>

<tr><td class="memItemLeft" nowrap align="right" valign="top">AXIS2_EXTERN axis2_bool_t&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__axis2__msg__ctx.html#g92affc014f41b9458d497f9f413c96b0">axis2_msg_ctx_get_do_rest_through_post</a> (const <a class="el" href="group__axis2__msg__ctx.html#g160acae289ac39cb49fa625ffd88e410">axis2_msg_ctx_t</a> *msg_ctx, const <a class="el" href="structaxutil__env.html">axutil_env_t</a> *env)</td></tr>

<tr><td class="memItemLeft" nowrap align="right" valign="top">AXIS2_EXTERN axis2_bool_t&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__axis2__msg__ctx.html#g498e34d21eed5b6fe789f85425c1565a">axis2_msg_ctx_get_manage_session</a> (const <a class="el" href="group__axis2__msg__ctx.html#g160acae289ac39cb49fa625ffd88e410">axis2_msg_ctx_t</a> *msg_ctx, const <a class="el" href="structaxutil__env.html">axutil_env_t</a> *env)</td></tr>

<tr><td class="memItemLeft" nowrap align="right" valign="top">AXIS2_EXTERN <br>
axis2_status_t&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__axis2__msg__ctx.html#g28c3e7dd62554357c3fd42c9b6e9dc48">axis2_msg_ctx_set_manage_session</a> (<a class="el" href="group__axis2__msg__ctx.html#g160acae289ac39cb49fa625ffd88e410">axis2_msg_ctx_t</a> *msg_ctx, const <a class="el" href="structaxutil__env.html">axutil_env_t</a> *env, const axis2_bool_t manage_session)</td></tr>

<tr><td class="memItemLeft" nowrap align="right" valign="top">AXIS2_EXTERN axis2_bool_t&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__axis2__msg__ctx.html#g6dbf37da7d9d04410d2a78aa621c9fb5">axis2_msg_ctx_get_is_soap_11</a> (const <a class="el" href="group__axis2__msg__ctx.html#g160acae289ac39cb49fa625ffd88e410">axis2_msg_ctx_t</a> *msg_ctx, const <a class="el" href="structaxutil__env.html">axutil_env_t</a> *env)</td></tr>

<tr><td class="memItemLeft" nowrap align="right" valign="top">AXIS2_EXTERN <br>
axis2_status_t&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__axis2__msg__ctx.html#gf29b11075b84a7f2ede4f47da724f6a9">axis2_msg_ctx_set_is_soap_11</a> (<a class="el" href="group__axis2__msg__ctx.html#g160acae289ac39cb49fa625ffd88e410">axis2_msg_ctx_t</a> *msg_ctx, const <a class="el" href="structaxutil__env.html">axutil_env_t</a> *env, const axis2_bool_t is_soap11)</td></tr>

<tr><td class="memItemLeft" nowrap align="right" valign="top">AXIS2_EXTERN struct <br>
axis2_svc_grp_ctx *&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__axis2__msg__ctx.html#gb226c5f347f50990837307de37b2c874">axis2_msg_ctx_get_svc_grp_ctx</a> (const <a class="el" href="group__axis2__msg__ctx.html#g160acae289ac39cb49fa625ffd88e410">axis2_msg_ctx_t</a> *msg_ctx, const <a class="el" href="structaxutil__env.html">axutil_env_t</a> *env)</td></tr>

<tr><td class="memItemLeft" nowrap align="right" valign="top">AXIS2_EXTERN <br>
axis2_status_t&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__axis2__msg__ctx.html#g608927368afc580dfa9f30a88438cab7">axis2_msg_ctx_set_svc_grp_ctx</a> (<a class="el" href="group__axis2__msg__ctx.html#g160acae289ac39cb49fa625ffd88e410">axis2_msg_ctx_t</a> *msg_ctx, const <a class="el" href="structaxutil__env.html">axutil_env_t</a> *env, struct axis2_svc_grp_ctx *svc_grp_ctx)</td></tr>

<tr><td class="memItemLeft" nowrap align="right" valign="top">AXIS2_EXTERN struct <br>
axis2_op *&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__axis2__msg__ctx.html#gef54001c6a3b344e85f672113f636e09">axis2_msg_ctx_get_op</a> (const <a class="el" href="group__axis2__msg__ctx.html#g160acae289ac39cb49fa625ffd88e410">axis2_msg_ctx_t</a> *msg_ctx, const <a class="el" href="structaxutil__env.html">axutil_env_t</a> *env)</td></tr>

<tr><td class="memItemLeft" nowrap align="right" valign="top">AXIS2_EXTERN <br>
axis2_status_t&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__axis2__msg__ctx.html#ge1629a4a314446a0f87b1a4c7f87c4e0">axis2_msg_ctx_set_op</a> (<a class="el" href="group__axis2__msg__ctx.html#g160acae289ac39cb49fa625ffd88e410">axis2_msg_ctx_t</a> *msg_ctx, const <a class="el" href="structaxutil__env.html">axutil_env_t</a> *env, struct axis2_op *op)</td></tr>

<tr><td class="memItemLeft" nowrap align="right" valign="top">AXIS2_EXTERN struct <br>
axis2_svc *&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__axis2__msg__ctx.html#gc8c3e9a503359dd12bf940580e659de3">axis2_msg_ctx_get_svc</a> (const <a class="el" href="group__axis2__msg__ctx.html#g160acae289ac39cb49fa625ffd88e410">axis2_msg_ctx_t</a> *msg_ctx, const <a class="el" href="structaxutil__env.html">axutil_env_t</a> *env)</td></tr>

<tr><td class="memItemLeft" nowrap align="right" valign="top">AXIS2_EXTERN <br>
axis2_status_t&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__axis2__msg__ctx.html#g643f1a3cc4d31f7b665f43a2dfc97967">axis2_msg_ctx_set_svc</a> (<a class="el" href="group__axis2__msg__ctx.html#g160acae289ac39cb49fa625ffd88e410">axis2_msg_ctx_t</a> *msg_ctx, const <a class="el" href="structaxutil__env.html">axutil_env_t</a> *env, struct axis2_svc *svc)</td></tr>

<tr><td class="memItemLeft" nowrap align="right" valign="top">AXIS2_EXTERN struct <br>
axis2_svc_grp *&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__axis2__msg__ctx.html#gb891cdde11906cc42a250459516acc8c">axis2_msg_ctx_get_svc_grp</a> (const <a class="el" href="group__axis2__msg__ctx.html#g160acae289ac39cb49fa625ffd88e410">axis2_msg_ctx_t</a> *msg_ctx, const <a class="el" href="structaxutil__env.html">axutil_env_t</a> *env)</td></tr>

<tr><td class="memItemLeft" nowrap align="right" valign="top">AXIS2_EXTERN <br>
axis2_status_t&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__axis2__msg__ctx.html#ge687f88abc16f152d2cfecd2e32f6871">axis2_msg_ctx_set_svc_grp</a> (<a class="el" href="group__axis2__msg__ctx.html#g160acae289ac39cb49fa625ffd88e410">axis2_msg_ctx_t</a> *msg_ctx, const <a class="el" href="structaxutil__env.html">axutil_env_t</a> *env, struct axis2_svc_grp *svc_grp)</td></tr>

<tr><td class="memItemLeft" nowrap align="right" valign="top">AXIS2_EXTERN const <br>
axutil_string_t *&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__axis2__msg__ctx.html#g63cef8dc5b5bdba03c1d738594fed173">axis2_msg_ctx_get_svc_grp_ctx_id</a> (const <a class="el" href="group__axis2__msg__ctx.html#g160acae289ac39cb49fa625ffd88e410">axis2_msg_ctx_t</a> *msg_ctx, const <a class="el" href="structaxutil__env.html">axutil_env_t</a> *env)</td></tr>

<tr><td class="memItemLeft" nowrap align="right" valign="top">AXIS2_EXTERN <br>
axis2_status_t&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__axis2__msg__ctx.html#g420039e5d3ebb705ae0dd172a7e1d760">axis2_msg_ctx_set_svc_grp_ctx_id</a> (<a class="el" href="group__axis2__msg__ctx.html#g160acae289ac39cb49fa625ffd88e410">axis2_msg_ctx_t</a> *msg_ctx, const <a class="el" href="structaxutil__env.html">axutil_env_t</a> *env, axutil_string_t *svc_grp_ctx_id)</td></tr>

<tr><td class="memItemLeft" nowrap align="right" valign="top">AXIS2_EXTERN <br>
axis2_status_t&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__axis2__msg__ctx.html#gabceeec2b7643a21f1794f4f729af19b">axis2_msg_ctx_set_find_svc</a> (<a class="el" href="group__axis2__msg__ctx.html#g160acae289ac39cb49fa625ffd88e410">axis2_msg_ctx_t</a> *msg_ctx, const <a class="el" href="structaxutil__env.html">axutil_env_t</a> *env, <a class="el" href="group__axis2__msg__ctx.html#g9949f405b8bfac0ee5015d67d3ee949c">AXIS2_MSG_CTX_FIND_SVC</a> func)</td></tr>

<tr><td class="memItemLeft" nowrap align="right" valign="top">AXIS2_EXTERN <br>
axis2_status_t&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__axis2__msg__ctx.html#g503c723831560c6e3a45393ac9642c2d">axis2_msg_ctx_set_find_op</a> (<a class="el" href="group__axis2__msg__ctx.html#g160acae289ac39cb49fa625ffd88e410">axis2_msg_ctx_t</a> *msg_ctx, const <a class="el" href="structaxutil__env.html">axutil_env_t</a> *env, <a class="el" href="group__axis2__msg__ctx.html#g0b84b027d9bcb64409d21de24751e904">AXIS2_MSG_CTX_FIND_OP</a> func)</td></tr>

<tr><td class="memItemLeft" nowrap align="right" valign="top">AXIS2_EXTERN struct <br>
axis2_svc *&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__axis2__msg__ctx.html#g0466cae16b55c308d5adb92c11bd6665">axis2_msg_ctx_find_svc</a> (<a class="el" href="group__axis2__msg__ctx.html#g160acae289ac39cb49fa625ffd88e410">axis2_msg_ctx_t</a> *msg_ctx, const <a class="el" href="structaxutil__env.html">axutil_env_t</a> *env)</td></tr>

<tr><td class="memItemLeft" nowrap align="right" valign="top">AXIS2_EXTERN struct <br>
axis2_op *&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__axis2__msg__ctx.html#g06450d683a212d8246cc5c240bbce9c9">axis2_msg_ctx_find_op</a> (<a class="el" href="group__axis2__msg__ctx.html#g160acae289ac39cb49fa625ffd88e410">axis2_msg_ctx_t</a> *msg_ctx, const <a class="el" href="structaxutil__env.html">axutil_env_t</a> *env, struct axis2_svc *svc)</td></tr>

<tr><td class="memItemLeft" nowrap align="right" valign="top">AXIS2_EXTERN struct <br>
axis2_options *&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__axis2__msg__ctx.html#g8af21689d7304ae4712308a4951a071e">axis2_msg_ctx_get_options</a> (<a class="el" href="group__axis2__msg__ctx.html#g160acae289ac39cb49fa625ffd88e410">axis2_msg_ctx_t</a> *msg_ctx, const <a class="el" href="structaxutil__env.html">axutil_env_t</a> *env)</td></tr>

<tr><td class="memItemLeft" nowrap align="right" valign="top">AXIS2_EXTERN axis2_bool_t&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__axis2__msg__ctx.html#g991577142c2a5c69df03c1c68c21834b">axis2_msg_ctx_is_paused</a> (<a class="el" href="group__axis2__msg__ctx.html#g160acae289ac39cb49fa625ffd88e410">axis2_msg_ctx_t</a> *msg_ctx, const <a class="el" href="structaxutil__env.html">axutil_env_t</a> *env)</td></tr>

<tr><td class="memItemLeft" nowrap align="right" valign="top">AXIS2_EXTERN <br>
axis2_status_t&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__axis2__msg__ctx.html#gccc481e49357f41dc151e130622385fa">axis2_msg_ctx_set_options</a> (<a class="el" href="group__axis2__msg__ctx.html#g160acae289ac39cb49fa625ffd88e410">axis2_msg_ctx_t</a> *msg_ctx, const <a class="el" href="structaxutil__env.html">axutil_env_t</a> *env, struct axis2_options *options)</td></tr>

<tr><td class="memItemLeft" nowrap align="right" valign="top">AXIS2_EXTERN <br>
axis2_status_t&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__axis2__msg__ctx.html#gda9507539e7d87a7f835ab89ab1b9b28">axis2_msg_ctx_set_flow</a> (<a class="el" href="group__axis2__msg__ctx.html#g160acae289ac39cb49fa625ffd88e410">axis2_msg_ctx_t</a> *msg_ctx, const <a class="el" href="structaxutil__env.html">axutil_env_t</a> *env, int flow)</td></tr>

<tr><td class="memItemLeft" nowrap align="right" valign="top">AXIS2_EXTERN int&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__axis2__msg__ctx.html#gd70614caf6e01d3f061b994f0e87d0e8">axis2_msg_ctx_get_flow</a> (const <a class="el" href="group__axis2__msg__ctx.html#g160acae289ac39cb49fa625ffd88e410">axis2_msg_ctx_t</a> *msg_ctx, const <a class="el" href="structaxutil__env.html">axutil_env_t</a> *env)</td></tr>

<tr><td class="memItemLeft" nowrap align="right" valign="top">AXIS2_EXTERN <br>
axis2_status_t&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__axis2__msg__ctx.html#g0fb6ae57c92a4554697bd3e3877cd512">axis2_msg_ctx_set_supported_rest_http_methods</a> (<a class="el" href="group__axis2__msg__ctx.html#g160acae289ac39cb49fa625ffd88e410">axis2_msg_ctx_t</a> *msg_ctx, const <a class="el" href="structaxutil__env.html">axutil_env_t</a> *env, <a class="el" href="group__axutil__array__list.html#g1a6a89777db876cfa0cc86787b7be6a0">axutil_array_list_t</a> *supported_rest_http_methods)</td></tr>

<tr><td class="memItemLeft" nowrap align="right" valign="top">AXIS2_EXTERN <br>
<a class="el" href="group__axutil__array__list.html#g1a6a89777db876cfa0cc86787b7be6a0">axutil_array_list_t</a> *&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__axis2__msg__ctx.html#ged338ca86cf608cac71350fb54a6e4f2">axis2_msg_ctx_get_supported_rest_http_methods</a> (const <a class="el" href="group__axis2__msg__ctx.html#g160acae289ac39cb49fa625ffd88e410">axis2_msg_ctx_t</a> *msg_ctx, const <a class="el" href="structaxutil__env.html">axutil_env_t</a> *env)</td></tr>

<tr><td class="memItemLeft" nowrap align="right" valign="top">AXIS2_EXTERN <br>
axis2_status_t&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__axis2__msg__ctx.html#g5e62146dab073f13160aa411a6db4a70">axis2_msg_ctx_set_execution_chain</a> (<a class="el" href="group__axis2__msg__ctx.html#g160acae289ac39cb49fa625ffd88e410">axis2_msg_ctx_t</a> *msg_ctx, const <a class="el" href="structaxutil__env.html">axutil_env_t</a> *env, <a class="el" href="group__axutil__array__list.html#g1a6a89777db876cfa0cc86787b7be6a0">axutil_array_list_t</a> *execution_chain)</td></tr>

<tr><td class="memItemLeft" nowrap align="right" valign="top">AXIS2_EXTERN <br>
<a class="el" href="group__axutil__array__list.html#g1a6a89777db876cfa0cc86787b7be6a0">axutil_array_list_t</a> *&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__axis2__msg__ctx.html#gc944c499d0c5680080b4a87f5e312746">axis2_msg_ctx_get_execution_chain</a> (const <a class="el" href="group__axis2__msg__ctx.html#g160acae289ac39cb49fa625ffd88e410">axis2_msg_ctx_t</a> *msg_ctx, const <a class="el" href="structaxutil__env.html">axutil_env_t</a> *env)</td></tr>

<tr><td class="memItemLeft" nowrap align="right" valign="top">AXIS2_EXTERN <br>
axis2_status_t&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__axis2__msg__ctx.html#g74993b805993c85cb0c9d104da6a6f7f">axis2_msg_ctx_set_current_handler_index</a> (<a class="el" href="group__axis2__msg__ctx.html#g160acae289ac39cb49fa625ffd88e410">axis2_msg_ctx_t</a> *msg_ctx, const <a class="el" href="structaxutil__env.html">axutil_env_t</a> *env, const int index)</td></tr>

<tr><td class="memItemLeft" nowrap align="right" valign="top">AXIS2_EXTERN int&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__axis2__msg__ctx.html#g450a580a5f51545746aeb794a0a010d5">axis2_msg_ctx_get_current_handler_index</a> (const <a class="el" href="group__axis2__msg__ctx.html#g160acae289ac39cb49fa625ffd88e410">axis2_msg_ctx_t</a> *msg_ctx, const <a class="el" href="structaxutil__env.html">axutil_env_t</a> *env)</td></tr>

<tr><td class="memItemLeft" nowrap align="right" valign="top">AXIS2_EXTERN int&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__axis2__msg__ctx.html#gfa296d96971800a761b97537f07aad1e">axis2_msg_ctx_get_paused_handler_index</a> (const <a class="el" href="group__axis2__msg__ctx.html#g160acae289ac39cb49fa625ffd88e410">axis2_msg_ctx_t</a> *msg_ctx, const <a class="el" href="structaxutil__env.html">axutil_env_t</a> *env)</td></tr>

<tr><td class="memItemLeft" nowrap align="right" valign="top">AXIS2_EXTERN <br>
axis2_status_t&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__axis2__msg__ctx.html#g977af6908d6522c8a9f440841d68a2b5">axis2_msg_ctx_set_current_phase_index</a> (<a class="el" href="group__axis2__msg__ctx.html#g160acae289ac39cb49fa625ffd88e410">axis2_msg_ctx_t</a> *msg_ctx, const <a class="el" href="structaxutil__env.html">axutil_env_t</a> *env, const int index)</td></tr>

<tr><td class="memItemLeft" nowrap align="right" valign="top">AXIS2_EXTERN int&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__axis2__msg__ctx.html#g8a5c8277c0574011517121e95d28d693">axis2_msg_ctx_get_current_phase_index</a> (const <a class="el" href="group__axis2__msg__ctx.html#g160acae289ac39cb49fa625ffd88e410">axis2_msg_ctx_t</a> *msg_ctx, const <a class="el" href="structaxutil__env.html">axutil_env_t</a> *env)</td></tr>

<tr><td class="memItemLeft" nowrap align="right" valign="top">AXIS2_EXTERN int&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__axis2__msg__ctx.html#ge9096fd622018cf004f072ae25d81d8c">axis2_msg_ctx_get_paused_phase_index</a> (const <a class="el" href="group__axis2__msg__ctx.html#g160acae289ac39cb49fa625ffd88e410">axis2_msg_ctx_t</a> *msg_ctx, const <a class="el" href="structaxutil__env.html">axutil_env_t</a> *env)</td></tr>

<tr><td class="memItemLeft" nowrap align="right" valign="top">AXIS2_EXTERN <br>
axutil_string_t *&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__axis2__msg__ctx.html#g872a75f28661a8c83694e47825d3c7d0">axis2_msg_ctx_get_charset_encoding</a> (<a class="el" href="group__axis2__msg__ctx.html#g160acae289ac39cb49fa625ffd88e410">axis2_msg_ctx_t</a> *msg_ctx, const <a class="el" href="structaxutil__env.html">axutil_env_t</a> *env)</td></tr>

<tr><td class="memItemLeft" nowrap align="right" valign="top">AXIS2_EXTERN <br>
axis2_status_t&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__axis2__msg__ctx.html#gf0b8b26d1b8a7ad80a2930afb0c2363a">axis2_msg_ctx_set_charset_encoding</a> (<a class="el" href="group__axis2__msg__ctx.html#g160acae289ac39cb49fa625ffd88e410">axis2_msg_ctx_t</a> *msg_ctx, const <a class="el" href="structaxutil__env.html">axutil_env_t</a> *env, axutil_string_t *str)</td></tr>

<tr><td class="memItemLeft" nowrap align="right" valign="top">AXIS2_EXTERN int&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__axis2__msg__ctx.html#g6f928344dc07a6808c1d7a5365e26e86">axis2_msg_ctx_get_status_code</a> (<a class="el" href="group__axis2__msg__ctx.html#g160acae289ac39cb49fa625ffd88e410">axis2_msg_ctx_t</a> *msg_ctx, const <a class="el" href="structaxutil__env.html">axutil_env_t</a> *env)</td></tr>

<tr><td class="memItemLeft" nowrap align="right" valign="top">AXIS2_EXTERN <br>
axis2_status_t&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__axis2__msg__ctx.html#g5550d319956309bc34205cba288e14b8">axis2_msg_ctx_set_status_code</a> (<a class="el" href="group__axis2__msg__ctx.html#g160acae289ac39cb49fa625ffd88e410">axis2_msg_ctx_t</a> *msg_ctx, const <a class="el" href="structaxutil__env.html">axutil_env_t</a> *env, const int status_code)</td></tr>

<tr><td class="memItemLeft" nowrap align="right" valign="top">AXIS2_EXTERN <br>
axutil_stream_t *&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__axis2__msg__ctx.html#g1537c848176093a8cdcc4f02721a052d">axis2_msg_ctx_get_transport_out_stream</a> (<a class="el" href="group__axis2__msg__ctx.html#g160acae289ac39cb49fa625ffd88e410">axis2_msg_ctx_t</a> *msg_ctx, const <a class="el" href="structaxutil__env.html">axutil_env_t</a> *env)</td></tr>

<tr><td class="memItemLeft" nowrap align="right" valign="top">AXIS2_EXTERN <br>
axis2_status_t&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__axis2__msg__ctx.html#g4c96b5bf44bd6bb0364b877554605e63">axis2_msg_ctx_set_transport_out_stream</a> (<a class="el" href="group__axis2__msg__ctx.html#g160acae289ac39cb49fa625ffd88e410">axis2_msg_ctx_t</a> *msg_ctx, const <a class="el" href="structaxutil__env.html">axutil_env_t</a> *env, axutil_stream_t *stream)</td></tr>

<tr><td class="memItemLeft" nowrap align="right" valign="top">AXIS2_EXTERN <br>
axis2_status_t&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__axis2__msg__ctx.html#gb0006ce05885ace9a09c0841fe297fb7">axis2_msg_ctx_reset_transport_out_stream</a> (<a class="el" href="group__axis2__msg__ctx.html#g160acae289ac39cb49fa625ffd88e410">axis2_msg_ctx_t</a> *msg_ctx, const <a class="el" href="structaxutil__env.html">axutil_env_t</a> *env)</td></tr>

<tr><td class="memItemLeft" nowrap align="right" valign="top">AXIS2_EXTERN struct <br>
axis2_out_transport_info *&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__axis2__msg__ctx.html#gb37389b924f4503169165ae6d0371e17">axis2_msg_ctx_get_out_transport_info</a> (<a class="el" href="group__axis2__msg__ctx.html#g160acae289ac39cb49fa625ffd88e410">axis2_msg_ctx_t</a> *msg_ctx, const <a class="el" href="structaxutil__env.html">axutil_env_t</a> *env)</td></tr>

<tr><td class="memItemLeft" nowrap align="right" valign="top">AXIS2_EXTERN <br>
axis2_status_t&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__axis2__msg__ctx.html#g2e8b202d57caca29121bd55ede2ad3d6">axis2_msg_ctx_set_out_transport_info</a> (<a class="el" href="group__axis2__msg__ctx.html#g160acae289ac39cb49fa625ffd88e410">axis2_msg_ctx_t</a> *msg_ctx, const <a class="el" href="structaxutil__env.html">axutil_env_t</a> *env, struct axis2_out_transport_info *out_transport_info)</td></tr>

<tr><td class="memItemLeft" nowrap align="right" valign="top">AXIS2_EXTERN <br>
axis2_status_t&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__axis2__msg__ctx.html#ga340eaf8ff86f9bc8324f9e082f8dfbe">axis2_msg_ctx_reset_out_transport_info</a> (<a class="el" href="group__axis2__msg__ctx.html#g160acae289ac39cb49fa625ffd88e410">axis2_msg_ctx_t</a> *msg_ctx, const <a class="el" href="structaxutil__env.html">axutil_env_t</a> *env)</td></tr>

<tr><td class="memItemLeft" nowrap align="right" valign="top">AXIS2_EXTERN <br>
<a class="el" href="group__axutil__hash.html#gb2d7d14db2de92a101573f44421ac12a">axutil_hash_t</a> *&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__axis2__msg__ctx.html#gd5c47f45b9d568dc1961ddf283f44b85">axis2_msg_ctx_get_transport_headers</a> (<a class="el" href="group__axis2__msg__ctx.html#g160acae289ac39cb49fa625ffd88e410">axis2_msg_ctx_t</a> *msg_ctx, const <a class="el" href="structaxutil__env.html">axutil_env_t</a> *env)</td></tr>

<tr><td class="memItemLeft" nowrap align="right" valign="top">AXIS2_EXTERN <br>
<a class="el" href="group__axutil__hash.html#gb2d7d14db2de92a101573f44421ac12a">axutil_hash_t</a> *&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__axis2__msg__ctx.html#g8c0f85aa52f15616c9864ff804f84149">axis2_msg_ctx_extract_transport_headers</a> (<a class="el" href="group__axis2__msg__ctx.html#g160acae289ac39cb49fa625ffd88e410">axis2_msg_ctx_t</a> *msg_ctx, const <a class="el" href="structaxutil__env.html">axutil_env_t</a> *env)</td></tr>

<tr><td class="memItemLeft" nowrap align="right" valign="top">AXIS2_EXTERN <br>
axis2_status_t&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__axis2__msg__ctx.html#g71be3edb48396a26b8adbd307df23376">axis2_msg_ctx_set_transport_headers</a> (<a class="el" href="group__axis2__msg__ctx.html#g160acae289ac39cb49fa625ffd88e410">axis2_msg_ctx_t</a> *msg_ctx, const <a class="el" href="structaxutil__env.html">axutil_env_t</a> *env, <a class="el" href="group__axutil__hash.html#gb2d7d14db2de92a101573f44421ac12a">axutil_hash_t</a> *transport_headers)</td></tr>

<tr><td class="memItemLeft" nowrap align="right" valign="top">AXIS2_EXTERN <br>
<a class="el" href="group__axutil__array__list.html#g1a6a89777db876cfa0cc86787b7be6a0">axutil_array_list_t</a> *&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__axis2__msg__ctx.html#gb0be9834b54fbc08fa1acc6f3d9ab0d6">axis2_msg_ctx_get_http_accept_charset_record_list</a> (<a class="el" href="group__axis2__msg__ctx.html#g160acae289ac39cb49fa625ffd88e410">axis2_msg_ctx_t</a> *msg_ctx, const <a class="el" href="structaxutil__env.html">axutil_env_t</a> *env)</td></tr>

<tr><td class="memItemLeft" nowrap align="right" valign="top">AXIS2_EXTERN <br>
<a class="el" href="group__axutil__array__list.html#g1a6a89777db876cfa0cc86787b7be6a0">axutil_array_list_t</a> *&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__axis2__msg__ctx.html#gb0f787898e23723828108b29bbd66487">axis2_msg_ctx_extract_http_accept_charset_record_list</a> (<a class="el" href="group__axis2__msg__ctx.html#g160acae289ac39cb49fa625ffd88e410">axis2_msg_ctx_t</a> *msg_ctx, const <a class="el" href="structaxutil__env.html">axutil_env_t</a> *env)</td></tr>

<tr><td class="memItemLeft" nowrap align="right" valign="top">AXIS2_EXTERN <br>
axis2_status_t&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__axis2__msg__ctx.html#g52ba5fc8306a6c85435d46ba925312f5">axis2_msg_ctx_set_http_accept_charset_record_list</a> (<a class="el" href="group__axis2__msg__ctx.html#g160acae289ac39cb49fa625ffd88e410">axis2_msg_ctx_t</a> *msg_ctx, const <a class="el" href="structaxutil__env.html">axutil_env_t</a> *env, <a class="el" href="group__axutil__array__list.html#g1a6a89777db876cfa0cc86787b7be6a0">axutil_array_list_t</a> *accept_charset_record_list)</td></tr>

<tr><td class="memItemLeft" nowrap align="right" valign="top">AXIS2_EXTERN <br>
<a class="el" href="group__axutil__array__list.html#g1a6a89777db876cfa0cc86787b7be6a0">axutil_array_list_t</a> *&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__axis2__msg__ctx.html#gffc30ac34ed6fffb2980a1e95532b51d">axis2_msg_ctx_get_http_accept_language_record_list</a> (<a class="el" href="group__axis2__msg__ctx.html#g160acae289ac39cb49fa625ffd88e410">axis2_msg_ctx_t</a> *msg_ctx, const <a class="el" href="structaxutil__env.html">axutil_env_t</a> *env)</td></tr>

<tr><td class="memItemLeft" nowrap align="right" valign="top">AXIS2_EXTERN <br>
<a class="el" href="group__axutil__array__list.html#g1a6a89777db876cfa0cc86787b7be6a0">axutil_array_list_t</a> *&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__axis2__msg__ctx.html#gff16a50cb3f3aeff0e17d9facb8b11a9">axis2_msg_ctx_extract_http_accept_language_record_list</a> (<a class="el" href="group__axis2__msg__ctx.html#g160acae289ac39cb49fa625ffd88e410">axis2_msg_ctx_t</a> *msg_ctx, const <a class="el" href="structaxutil__env.html">axutil_env_t</a> *env)</td></tr>

<tr><td class="memItemLeft" nowrap align="right" valign="top">AXIS2_EXTERN <br>
axis2_status_t&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__axis2__msg__ctx.html#g09473f96d43873ca693eb02cd809354e">axis2_msg_ctx_set_http_accept_language_record_list</a> (<a class="el" href="group__axis2__msg__ctx.html#g160acae289ac39cb49fa625ffd88e410">axis2_msg_ctx_t</a> *msg_ctx, const <a class="el" href="structaxutil__env.html">axutil_env_t</a> *env, <a class="el" href="group__axutil__array__list.html#g1a6a89777db876cfa0cc86787b7be6a0">axutil_array_list_t</a> *accept_language_record_list)</td></tr>

<tr><td class="memItemLeft" nowrap align="right" valign="top">AXIS2_EXTERN <br>
axis2_char_t *&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__axis2__msg__ctx.html#g8343c9fe27d659cfe939ff865033bc3d">axis2_msg_ctx_get_content_language</a> (<a class="el" href="group__axis2__msg__ctx.html#g160acae289ac39cb49fa625ffd88e410">axis2_msg_ctx_t</a> *msg_ctx, const <a class="el" href="structaxutil__env.html">axutil_env_t</a> *env)</td></tr>

<tr><td class="memItemLeft" nowrap align="right" valign="top">AXIS2_EXTERN <br>
axis2_status_t&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__axis2__msg__ctx.html#g785e9bfaf312d05d4f8decbf27546262">axis2_msg_ctx_set_content_language</a> (<a class="el" href="group__axis2__msg__ctx.html#g160acae289ac39cb49fa625ffd88e410">axis2_msg_ctx_t</a> *msg_ctx, const <a class="el" href="structaxutil__env.html">axutil_env_t</a> *env, axis2_char_t *str)</td></tr>

<tr><td class="memItemLeft" nowrap align="right" valign="top">AXIS2_EXTERN <br>
<a class="el" href="group__axutil__array__list.html#g1a6a89777db876cfa0cc86787b7be6a0">axutil_array_list_t</a> *&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__axis2__msg__ctx.html#gf9fa321552ac0debc4cd7e094e7e12ed">axis2_msg_ctx_get_http_accept_record_list</a> (<a class="el" href="group__axis2__msg__ctx.html#g160acae289ac39cb49fa625ffd88e410">axis2_msg_ctx_t</a> *msg_ctx, const <a class="el" href="structaxutil__env.html">axutil_env_t</a> *env)</td></tr>

<tr><td class="memItemLeft" nowrap align="right" valign="top">AXIS2_EXTERN <br>
<a class="el" href="group__axutil__array__list.html#g1a6a89777db876cfa0cc86787b7be6a0">axutil_array_list_t</a> *&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__axis2__msg__ctx.html#gadaa4476daadd7ae65a0c58e06989eed">axis2_msg_ctx_extract_http_accept_record_list</a> (<a class="el" href="group__axis2__msg__ctx.html#g160acae289ac39cb49fa625ffd88e410">axis2_msg_ctx_t</a> *msg_ctx, const <a class="el" href="structaxutil__env.html">axutil_env_t</a> *env)</td></tr>

<tr><td class="memItemLeft" nowrap align="right" valign="top">AXIS2_EXTERN <br>
axis2_status_t&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__axis2__msg__ctx.html#gce2ea5a21e0da1e0502722471013cf58">axis2_msg_ctx_set_http_accept_record_list</a> (<a class="el" href="group__axis2__msg__ctx.html#g160acae289ac39cb49fa625ffd88e410">axis2_msg_ctx_t</a> *msg_ctx, const <a class="el" href="structaxutil__env.html">axutil_env_t</a> *env, <a class="el" href="group__axutil__array__list.html#g1a6a89777db876cfa0cc86787b7be6a0">axutil_array_list_t</a> *accept_record_list)</td></tr>

<tr><td class="memItemLeft" nowrap align="right" valign="top">AXIS2_EXTERN <br>
axis2_char_t *&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__axis2__msg__ctx.html#g8b44e1813cdfd69b216cf6bfccba9c25">axis2_msg_ctx_get_transfer_encoding</a> (<a class="el" href="group__axis2__msg__ctx.html#g160acae289ac39cb49fa625ffd88e410">axis2_msg_ctx_t</a> *msg_ctx, const <a class="el" href="structaxutil__env.html">axutil_env_t</a> *env)</td></tr>

<tr><td class="memItemLeft" nowrap align="right" valign="top">AXIS2_EXTERN <br>
axis2_status_t&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__axis2__msg__ctx.html#g3e7ceeadac1d2a0b295947bbaa0adca7">axis2_msg_ctx_set_transfer_encoding</a> (<a class="el" href="group__axis2__msg__ctx.html#g160acae289ac39cb49fa625ffd88e410">axis2_msg_ctx_t</a> *msg_ctx, const <a class="el" href="structaxutil__env.html">axutil_env_t</a> *env, axis2_char_t *str)</td></tr>

<tr><td class="memItemLeft" nowrap align="right" valign="top">AXIS2_EXTERN <br>
axis2_char_t *&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__axis2__msg__ctx.html#g62bab01718be9813dc0f5abc847df09c">axis2_msg_ctx_get_transport_url</a> (<a class="el" href="group__axis2__msg__ctx.html#g160acae289ac39cb49fa625ffd88e410">axis2_msg_ctx_t</a> *msg_ctx, const <a class="el" href="structaxutil__env.html">axutil_env_t</a> *env)</td></tr>

<tr><td class="memItemLeft" nowrap align="right" valign="top">AXIS2_EXTERN <br>
axis2_status_t&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__axis2__msg__ctx.html#gcd9816724abf529406fa977b6838f481">axis2_msg_ctx_set_transport_url</a> (<a class="el" href="group__axis2__msg__ctx.html#g160acae289ac39cb49fa625ffd88e410">axis2_msg_ctx_t</a> *msg_ctx, const <a class="el" href="structaxutil__env.html">axutil_env_t</a> *env, axis2_char_t *str)</td></tr>

<tr><td class="memItemLeft" nowrap align="right" valign="top">AXIS2_EXTERN axis2_bool_t&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__axis2__msg__ctx.html#g599cd11719450e641d1ef1a9b2bfd437">axis2_msg_ctx_get_no_content</a> (<a class="el" href="group__axis2__msg__ctx.html#g160acae289ac39cb49fa625ffd88e410">axis2_msg_ctx_t</a> *msg_ctx, const <a class="el" href="structaxutil__env.html">axutil_env_t</a> *env)</td></tr>

<tr><td class="memItemLeft" nowrap align="right" valign="top">AXIS2_EXTERN <br>
axis2_status_t&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__axis2__msg__ctx.html#gcdd6a7139357035806b86b62965fcdcc">axis2_msg_ctx_set_no_content</a> (<a class="el" href="group__axis2__msg__ctx.html#g160acae289ac39cb49fa625ffd88e410">axis2_msg_ctx_t</a> *msg_ctx, const <a class="el" href="structaxutil__env.html">axutil_env_t</a> *env, const axis2_bool_t no_content)</td></tr>

<tr><td class="memItemLeft" nowrap align="right" valign="top">AXIS2_EXTERN axis2_bool_t&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__axis2__msg__ctx.html#g9275a1b7095f53dc1fc3b81946296acc">axis2_msg_ctx_get_auth_failed</a> (<a class="el" href="group__axis2__msg__ctx.html#g160acae289ac39cb49fa625ffd88e410">axis2_msg_ctx_t</a> *msg_ctx, const <a class="el" href="structaxutil__env.html">axutil_env_t</a> *env)</td></tr>

<tr><td class="memItemLeft" nowrap align="right" valign="top">AXIS2_EXTERN <br>
axis2_status_t&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__axis2__msg__ctx.html#ge3e9e1cfad899c5f40249fa9d9d65d08">axis2_msg_ctx_set_auth_failed</a> (<a class="el" href="group__axis2__msg__ctx.html#g160acae289ac39cb49fa625ffd88e410">axis2_msg_ctx_t</a> *msg_ctx, const <a class="el" href="structaxutil__env.html">axutil_env_t</a> *env, const axis2_bool_t status)</td></tr>

<tr><td class="memItemLeft" nowrap align="right" valign="top">AXIS2_EXTERN axis2_bool_t&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__axis2__msg__ctx.html#g6b79cdeb28ab6632c0d4d3300b4ca478">axis2_msg_ctx_get_required_auth_is_http</a> (<a class="el" href="group__axis2__msg__ctx.html#g160acae289ac39cb49fa625ffd88e410">axis2_msg_ctx_t</a> *msg_ctx, const <a class="el" href="structaxutil__env.html">axutil_env_t</a> *env)</td></tr>

<tr><td class="memItemLeft" nowrap align="right" valign="top">AXIS2_EXTERN <br>
axis2_status_t&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__axis2__msg__ctx.html#g5232bb8c1a80fc1ddc686308feaa852c">axis2_msg_ctx_set_required_auth_is_http</a> (<a class="el" href="group__axis2__msg__ctx.html#g160acae289ac39cb49fa625ffd88e410">axis2_msg_ctx_t</a> *msg_ctx, const <a class="el" href="structaxutil__env.html">axutil_env_t</a> *env, const axis2_bool_t is_http)</td></tr>

<tr><td class="memItemLeft" nowrap align="right" valign="top">AXIS2_EXTERN <br>
axis2_status_t&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__axis2__msg__ctx.html#gca7170d81a37be6c49260e9b754d1912">axis2_msg_ctx_set_auth_type</a> (<a class="el" href="group__axis2__msg__ctx.html#g160acae289ac39cb49fa625ffd88e410">axis2_msg_ctx_t</a> *msg_ctx, const <a class="el" href="structaxutil__env.html">axutil_env_t</a> *env, const axis2_char_t *auth_type)</td></tr>

<tr><td class="memItemLeft" nowrap align="right" valign="top">AXIS2_EXTERN <br>
axis2_char_t *&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__axis2__msg__ctx.html#g6cef678fb88ba92bfc2201b0e077cf69">axis2_msg_ctx_get_auth_type</a> (<a class="el" href="group__axis2__msg__ctx.html#g160acae289ac39cb49fa625ffd88e410">axis2_msg_ctx_t</a> *msg_ctx, const <a class="el" href="structaxutil__env.html">axutil_env_t</a> *env)</td></tr>

<tr><td class="memItemLeft" nowrap align="right" valign="top">AXIS2_EXTERN <br>
<a class="el" href="group__axutil__array__list.html#g1a6a89777db876cfa0cc86787b7be6a0">axutil_array_list_t</a> *&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__axis2__msg__ctx.html#gbba5b7ca4deab1b41fda5701ec5b1be7">axis2_msg_ctx_get_http_output_headers</a> (<a class="el" href="group__axis2__msg__ctx.html#g160acae289ac39cb49fa625ffd88e410">axis2_msg_ctx_t</a> *msg_ctx, const <a class="el" href="structaxutil__env.html">axutil_env_t</a> *env)</td></tr>

<tr><td class="memItemLeft" nowrap align="right" valign="top">AXIS2_EXTERN <br>
<a class="el" href="group__axutil__array__list.html#g1a6a89777db876cfa0cc86787b7be6a0">axutil_array_list_t</a> *&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__axis2__msg__ctx.html#gdaa7cdb0148e178e1709bef54be82ad6">axis2_msg_ctx_extract_http_output_headers</a> (<a class="el" href="group__axis2__msg__ctx.html#g160acae289ac39cb49fa625ffd88e410">axis2_msg_ctx_t</a> *msg_ctx, const <a class="el" href="structaxutil__env.html">axutil_env_t</a> *env)</td></tr>

<tr><td class="memItemLeft" nowrap align="right" valign="top">AXIS2_EXTERN <br>
axis2_status_t&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__axis2__msg__ctx.html#gc4e3c9a6394f3533e0e79a09626d37a4">axis2_msg_ctx_set_http_output_headers</a> (<a class="el" href="group__axis2__msg__ctx.html#g160acae289ac39cb49fa625ffd88e410">axis2_msg_ctx_t</a> *msg_ctx, const <a class="el" href="structaxutil__env.html">axutil_env_t</a> *env, <a class="el" href="group__axutil__array__list.html#g1a6a89777db876cfa0cc86787b7be6a0">axutil_array_list_t</a> *output_headers)</td></tr>

<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="gba89508cadc90f7895adb2150b7f42f1"></a><!-- doxytag: member="axis2_msg_ctx::axis2_msg_ctx_get_mime_parts" ref="gba89508cadc90f7895adb2150b7f42f1" args="(axis2_msg_ctx_t *msg_ctx, const axutil_env_t *env)" -->
AXIS2_EXTERN <br>
<a class="el" href="group__axutil__array__list.html#g1a6a89777db876cfa0cc86787b7be6a0">axutil_array_list_t</a> *&nbsp;</td><td class="memItemRight" valign="bottom"><b>axis2_msg_ctx_get_mime_parts</b> (<a class="el" href="group__axis2__msg__ctx.html#g160acae289ac39cb49fa625ffd88e410">axis2_msg_ctx_t</a> *msg_ctx, const <a class="el" href="structaxutil__env.html">axutil_env_t</a> *env)</td></tr>

<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="gb9ed9b1c95c2f6e441193a5c0b67f4b2"></a><!-- doxytag: member="axis2_msg_ctx::axis2_msg_ctx_set_mime_parts" ref="gb9ed9b1c95c2f6e441193a5c0b67f4b2" args="(axis2_msg_ctx_t *msg_ctx, const axutil_env_t *env, axutil_array_list_t *mime_parts)" -->
AXIS2_EXTERN void&nbsp;</td><td class="memItemRight" valign="bottom"><b>axis2_msg_ctx_set_mime_parts</b> (<a class="el" href="group__axis2__msg__ctx.html#g160acae289ac39cb49fa625ffd88e410">axis2_msg_ctx_t</a> *msg_ctx, const <a class="el" href="structaxutil__env.html">axutil_env_t</a> *env, <a class="el" href="group__axutil__array__list.html#g1a6a89777db876cfa0cc86787b7be6a0">axutil_array_list_t</a> *mime_parts)</td></tr>

<tr><td class="memItemLeft" nowrap align="right" valign="top">AXIS2_EXTERN <br>
axis2_status_t&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__axis2__msg__ctx.html#g88942393726b78bdb836462dd04aa6ba">axis2_msg_ctx_increment_ref</a> (<a class="el" href="group__axis2__msg__ctx.html#g160acae289ac39cb49fa625ffd88e410">axis2_msg_ctx_t</a> *msg_ctx, const <a class="el" href="structaxutil__env.html">axutil_env_t</a> *env)</td></tr>

</table>
<hr><a name="_details"></a><h2>Detailed Description</h2>
message context captures all state information related to a message invocation. It holds information on the service and operation to be invoked as well as context hierarchy information related to the service and operation. It also has information on transports, that are to be used in invocation. The phase information is kept, along with the phase at which message invocation was paused as well as the handler in the phase from which the invocation is to be resumed. message context would hold the request SOAP message along the out path and would capture response along the in path. message context also has information on various engine specific information, such as if it should be doing MTOM, REST. As message context is inherited form context, it has the capability of storing user defined properties. <hr><h2>Define Documentation</h2>
<a class="anchor" name="g7c5ab0e072df1c661f2e547ac7185d1f"></a><!-- doxytag: member="axis2_msg_ctx.h::AXIS2_CHARACTER_SET_ENCODING" ref="g7c5ab0e072df1c661f2e547ac7185d1f" args="" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">#define AXIS2_CHARACTER_SET_ENCODING&nbsp;&nbsp;&nbsp;&quot;AXIS2_CHARACTER_SET_ENCODING&quot;          </td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
character set encoding 
</div>
</div><p>
<a class="anchor" name="g6322d4be41907e2a6d3d63a4c5e57dcb"></a><!-- doxytag: member="axis2_msg_ctx.h::AXIS2_DEFAULT_CHAR_SET_ENCODING" ref="g6322d4be41907e2a6d3d63a4c5e57dcb" args="" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">#define AXIS2_DEFAULT_CHAR_SET_ENCODING&nbsp;&nbsp;&nbsp;&quot;UTF-8&quot;          </td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
default char set encoding; This is the default value for AXIS2_CHARACTER_SET_ENCODING property 
</div>
</div><p>
<a class="anchor" name="g54e451fddf8b69dd8a9cd357d81a2525"></a><!-- doxytag: member="axis2_msg_ctx.h::AXIS2_HTTP_CLIENT" ref="g54e451fddf8b69dd8a9cd357d81a2525" args="" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">#define AXIS2_HTTP_CLIENT&nbsp;&nbsp;&nbsp;&quot;AXIS2_HTTP_CLIENT&quot;          </td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
HTTP Client 
</div>
</div><p>
<a class="anchor" name="g7474c039348fcaae57ebc785661329ce"></a><!-- doxytag: member="axis2_msg_ctx.h::AXIS2_SVR_PEER_IP_ADDR" ref="g7474c039348fcaae57ebc785661329ce" args="" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">#define AXIS2_SVR_PEER_IP_ADDR&nbsp;&nbsp;&nbsp;&quot;peer_ip_addr&quot;          </td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
PEER IP Address of Server 
</div>
</div><p>
<a class="anchor" name="g44eafb1b488dbb8b1a5c96b1a20e0672"></a><!-- doxytag: member="axis2_msg_ctx.h::AXIS2_TRANSPORT_HEADERS" ref="g44eafb1b488dbb8b1a5c96b1a20e0672" args="" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">#define AXIS2_TRANSPORT_HEADERS&nbsp;&nbsp;&nbsp;&quot;AXIS2_TRANSPORT_HEADERS&quot;          </td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
transport headers 
</div>
</div><p>
<a class="anchor" name="g565c1b1f3f6b81f999fd20765b652c18"></a><!-- doxytag: member="axis2_msg_ctx.h::AXIS2_TRANSPORT_IN" ref="g565c1b1f3f6b81f999fd20765b652c18" args="" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">#define AXIS2_TRANSPORT_IN&nbsp;&nbsp;&nbsp;&quot;AXIS2_TRANSPORT_IN&quot;          </td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
transport out 
</div>
</div><p>
<a class="anchor" name="g54db92215436083e7d8202149773c193"></a><!-- doxytag: member="axis2_msg_ctx.h::AXIS2_TRANSPORT_OUT" ref="g54db92215436083e7d8202149773c193" args="" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">#define AXIS2_TRANSPORT_OUT&nbsp;&nbsp;&nbsp;&quot;AXIS2_TRANSPORT_OUT&quot;          </td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
transport in 
</div>
</div><p>
<a class="anchor" name="g45fb20080ffa2a4f7d18a844193ada04"></a><!-- doxytag: member="axis2_msg_ctx.h::AXIS2_TRANSPORT_SUCCEED" ref="g45fb20080ffa2a4f7d18a844193ada04" args="" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">#define AXIS2_TRANSPORT_SUCCEED&nbsp;&nbsp;&nbsp;&quot;AXIS2_TRANSPORT_SUCCEED&quot;          </td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
transport succeeded 
</div>
</div><p>
<a class="anchor" name="g698a681ef62502de45559859fe9e2cbd"></a><!-- doxytag: member="axis2_msg_ctx.h::AXIS2_TRANSPORT_URL" ref="g698a681ef62502de45559859fe9e2cbd" args="" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">#define AXIS2_TRANSPORT_URL&nbsp;&nbsp;&nbsp;&quot;TransportURL&quot;          </td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
Transport URL 
</div>
</div><p>
<a class="anchor" name="g18012bb0c44b6992bbceef98b7b81608"></a><!-- doxytag: member="axis2_msg_ctx.h::AXIS2_UTF_16" ref="g18012bb0c44b6992bbceef98b7b81608" args="" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">#define AXIS2_UTF_16&nbsp;&nbsp;&nbsp;&quot;utf-16&quot;          </td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
UTF_16; This is the 'utf-16' value for AXIS2_CHARACTER_SET_ENCODING property 
</div>
</div><p>
<a class="anchor" name="g7b3f76abded0b271e02ee3d8e3ace866"></a><!-- doxytag: member="axis2_msg_ctx.h::AXIS2_UTF_8" ref="g7b3f76abded0b271e02ee3d8e3ace866" args="" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">#define AXIS2_UTF_8&nbsp;&nbsp;&nbsp;&quot;UTF-8&quot;          </td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
UTF_8; This is the 'utf-8' value for AXIS2_CHARACTER_SET_ENCODING property 
</div>
</div><p>
<hr><h2>Typedef Documentation</h2>
<a class="anchor" name="g0b84b027d9bcb64409d21de24751e904"></a><!-- doxytag: member="axis2_msg_ctx.h::AXIS2_MSG_CTX_FIND_OP" ref="g0b84b027d9bcb64409d21de24751e904" args=")(axis2_msg_ctx_t *msg_ctx, const axutil_env_t *env, struct axis2_svc *svc)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">typedef struct axis2_op*( *  <a class="el" href="group__axis2__msg__ctx.html#g0b84b027d9bcb64409d21de24751e904">AXIS2_MSG_CTX_FIND_OP</a>)(<a class="el" href="group__axis2__msg__ctx.html#g160acae289ac39cb49fa625ffd88e410">axis2_msg_ctx_t</a> *msg_ctx, const <a class="el" href="structaxutil__env.html">axutil_env_t</a> *env, struct axis2_svc *svc)          </td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
Type name for pointer to a function to find an operation in a service 
</div>
</div><p>
<a class="anchor" name="g9949f405b8bfac0ee5015d67d3ee949c"></a><!-- doxytag: member="axis2_msg_ctx.h::AXIS2_MSG_CTX_FIND_SVC" ref="g9949f405b8bfac0ee5015d67d3ee949c" args=")(axis2_msg_ctx_t *msg_ctx, const axutil_env_t *env)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">typedef struct axis2_svc*( *  <a class="el" href="group__axis2__msg__ctx.html#g9949f405b8bfac0ee5015d67d3ee949c">AXIS2_MSG_CTX_FIND_SVC</a>)(<a class="el" href="group__axis2__msg__ctx.html#g160acae289ac39cb49fa625ffd88e410">axis2_msg_ctx_t</a> *msg_ctx, const <a class="el" href="structaxutil__env.html">axutil_env_t</a> *env)          </td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
Type name for pointer to a function to find a service 
</div>
</div><p>
<a class="anchor" name="g160acae289ac39cb49fa625ffd88e410"></a><!-- doxytag: member="axis2_msg_ctx.h::axis2_msg_ctx_t" ref="g160acae289ac39cb49fa625ffd88e410" args="" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">typedef struct axis2_msg_ctx <a class="el" href="group__axis2__msg__ctx.html#g160acae289ac39cb49fa625ffd88e410">axis2_msg_ctx_t</a>          </td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
Type name for struct axis2_msg_ctx 
</div>
</div><p>
<hr><h2>Function Documentation</h2>
<a class="anchor" name="gcaafe43e332e370bc1e3f3c5d0f361a0"></a><!-- doxytag: member="axis2_msg_ctx.h::axis2_msg_ctx_create" ref="gcaafe43e332e370bc1e3f3c5d0f361a0" args="(const axutil_env_t *env, struct axis2_conf_ctx *conf_ctx, struct axis2_transport_in_desc *transport_in_desc, struct axis2_transport_out_desc *transport_out_desc)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">AXIS2_EXTERN <a class="el" href="group__axis2__msg__ctx.html#g160acae289ac39cb49fa625ffd88e410">axis2_msg_ctx_t</a>* axis2_msg_ctx_create           </td>
          <td>(</td>
          <td class="paramtype">const <a class="el" href="structaxutil__env.html">axutil_env_t</a> *&nbsp;</td>
          <td class="paramname"> <em>env</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">struct axis2_conf_ctx *&nbsp;</td>
          <td class="paramname"> <em>conf_ctx</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">struct axis2_transport_in_desc *&nbsp;</td>
          <td class="paramname"> <em>transport_in_desc</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">struct axis2_transport_out_desc *&nbsp;</td>
          <td class="paramname"> <em>transport_out_desc</em></td><td>&nbsp;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td><td width="100%"></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
Creates a message context struct instance. <dl compact><dt><b>Parameters:</b></dt><dd>
  <table border="0" cellspacing="2" cellpadding="0">
    <tr><td valign="top"></td><td valign="top"><em>env</em>&nbsp;</td><td>pointer to environment struct </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>conf_ctx</em>&nbsp;</td><td>pointer to configuration context struct, message context does not assume the ownership of the struct </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>transport_in_desc</em>&nbsp;</td><td>pointer to transport in description struct, message context does not assume the ownership of the struct </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>transport_out_desc</em>&nbsp;</td><td>pointer to transport out description struct, message context does not assume the ownership of the struct </td></tr>
  </table>
</dl>
<dl class="return" compact><dt><b>Returns:</b></dt><dd>pointer to newly created message context instance </dd></dl>

</div>
</div><p>
<a class="anchor" name="gb0f787898e23723828108b29bbd66487"></a><!-- doxytag: member="axis2_msg_ctx.h::axis2_msg_ctx_extract_http_accept_charset_record_list" ref="gb0f787898e23723828108b29bbd66487" args="(axis2_msg_ctx_t *msg_ctx, const axutil_env_t *env)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">AXIS2_EXTERN <a class="el" href="group__axutil__array__list.html#g1a6a89777db876cfa0cc86787b7be6a0">axutil_array_list_t</a>* axis2_msg_ctx_extract_http_accept_charset_record_list           </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="group__axis2__msg__ctx.html#g160acae289ac39cb49fa625ffd88e410">axis2_msg_ctx_t</a> *&nbsp;</td>
          <td class="paramname"> <em>msg_ctx</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const <a class="el" href="structaxutil__env.html">axutil_env_t</a> *&nbsp;</td>
          <td class="paramname"> <em>env</em></td><td>&nbsp;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td><td width="100%"></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
Retrieves HTTP Accept-Charset records, and removes them from the message context <dl compact><dt><b>Parameters:</b></dt><dd>
  <table border="0" cellspacing="2" cellpadding="0">
    <tr><td valign="top"></td><td valign="top"><em>msg_ctx</em>&nbsp;</td><td>message context </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>env</em>&nbsp;</td><td>pointer to environment struct </td></tr>
  </table>
</dl>
<dl class="return" compact><dt><b>Returns:</b></dt><dd>HTTP Accept-Charset records associated. </dd></dl>

</div>
</div><p>
<a class="anchor" name="gff16a50cb3f3aeff0e17d9facb8b11a9"></a><!-- doxytag: member="axis2_msg_ctx.h::axis2_msg_ctx_extract_http_accept_language_record_list" ref="gff16a50cb3f3aeff0e17d9facb8b11a9" args="(axis2_msg_ctx_t *msg_ctx, const axutil_env_t *env)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">AXIS2_EXTERN <a class="el" href="group__axutil__array__list.html#g1a6a89777db876cfa0cc86787b7be6a0">axutil_array_list_t</a>* axis2_msg_ctx_extract_http_accept_language_record_list           </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="group__axis2__msg__ctx.html#g160acae289ac39cb49fa625ffd88e410">axis2_msg_ctx_t</a> *&nbsp;</td>
          <td class="paramname"> <em>msg_ctx</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const <a class="el" href="structaxutil__env.html">axutil_env_t</a> *&nbsp;</td>
          <td class="paramname"> <em>env</em></td><td>&nbsp;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td><td width="100%"></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
Retrieves HTTP Accept-Language records, and removes them from the message context <dl compact><dt><b>Parameters:</b></dt><dd>
  <table border="0" cellspacing="2" cellpadding="0">
    <tr><td valign="top"></td><td valign="top"><em>msg_ctx</em>&nbsp;</td><td>message context </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>env</em>&nbsp;</td><td>pointer to environment struct </td></tr>
  </table>
</dl>
<dl class="return" compact><dt><b>Returns:</b></dt><dd>HTTP Accept-Language records associated. </dd></dl>

</div>
</div><p>
<a class="anchor" name="gadaa4476daadd7ae65a0c58e06989eed"></a><!-- doxytag: member="axis2_msg_ctx.h::axis2_msg_ctx_extract_http_accept_record_list" ref="gadaa4476daadd7ae65a0c58e06989eed" args="(axis2_msg_ctx_t *msg_ctx, const axutil_env_t *env)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">AXIS2_EXTERN <a class="el" href="group__axutil__array__list.html#g1a6a89777db876cfa0cc86787b7be6a0">axutil_array_list_t</a>* axis2_msg_ctx_extract_http_accept_record_list           </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="group__axis2__msg__ctx.html#g160acae289ac39cb49fa625ffd88e410">axis2_msg_ctx_t</a> *&nbsp;</td>
          <td class="paramname"> <em>msg_ctx</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const <a class="el" href="structaxutil__env.html">axutil_env_t</a> *&nbsp;</td>
          <td class="paramname"> <em>env</em></td><td>&nbsp;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td><td width="100%"></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
Retrieves HTTP Accept records, and removes them from the message context <dl compact><dt><b>Parameters:</b></dt><dd>
  <table border="0" cellspacing="2" cellpadding="0">
    <tr><td valign="top"></td><td valign="top"><em>msg_ctx</em>&nbsp;</td><td>message context </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>env</em>&nbsp;</td><td>pointer to environment struct </td></tr>
  </table>
</dl>
<dl class="return" compact><dt><b>Returns:</b></dt><dd>HTTP Accept records associated. </dd></dl>

</div>
</div><p>
<a class="anchor" name="gdaa7cdb0148e178e1709bef54be82ad6"></a><!-- doxytag: member="axis2_msg_ctx.h::axis2_msg_ctx_extract_http_output_headers" ref="gdaa7cdb0148e178e1709bef54be82ad6" args="(axis2_msg_ctx_t *msg_ctx, const axutil_env_t *env)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">AXIS2_EXTERN <a class="el" href="group__axutil__array__list.html#g1a6a89777db876cfa0cc86787b7be6a0">axutil_array_list_t</a>* axis2_msg_ctx_extract_http_output_headers           </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="group__axis2__msg__ctx.html#g160acae289ac39cb49fa625ffd88e410">axis2_msg_ctx_t</a> *&nbsp;</td>
          <td class="paramname"> <em>msg_ctx</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const <a class="el" href="structaxutil__env.html">axutil_env_t</a> *&nbsp;</td>
          <td class="paramname"> <em>env</em></td><td>&nbsp;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td><td width="100%"></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
Retrieves the Output Headers, and removes them from the message context <dl compact><dt><b>Parameters:</b></dt><dd>
  <table border="0" cellspacing="2" cellpadding="0">
    <tr><td valign="top"></td><td valign="top"><em>msg_ctx</em>&nbsp;</td><td>message context </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>env</em>&nbsp;</td><td>pointer to environment struct </td></tr>
  </table>
</dl>
<dl class="return" compact><dt><b>Returns:</b></dt><dd>Output Header list </dd></dl>

</div>
</div><p>
<a class="anchor" name="g8c0f85aa52f15616c9864ff804f84149"></a><!-- doxytag: member="axis2_msg_ctx.h::axis2_msg_ctx_extract_transport_headers" ref="g8c0f85aa52f15616c9864ff804f84149" args="(axis2_msg_ctx_t *msg_ctx, const axutil_env_t *env)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">AXIS2_EXTERN <a class="el" href="group__axutil__hash.html#gb2d7d14db2de92a101573f44421ac12a">axutil_hash_t</a>* axis2_msg_ctx_extract_transport_headers           </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="group__axis2__msg__ctx.html#g160acae289ac39cb49fa625ffd88e410">axis2_msg_ctx_t</a> *&nbsp;</td>
          <td class="paramname"> <em>msg_ctx</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const <a class="el" href="structaxutil__env.html">axutil_env_t</a> *&nbsp;</td>
          <td class="paramname"> <em>env</em></td><td>&nbsp;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td><td width="100%"></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
Retrieves Transport Headers, and removes them from the message context <dl compact><dt><b>Parameters:</b></dt><dd>
  <table border="0" cellspacing="2" cellpadding="0">
    <tr><td valign="top"></td><td valign="top"><em>msg_ctx</em>&nbsp;</td><td>message context </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>env</em>&nbsp;</td><td>pointer to environment struct </td></tr>
  </table>
</dl>
<dl class="return" compact><dt><b>Returns:</b></dt><dd>Transport Headers associated. </dd></dl>

</div>
</div><p>
<a class="anchor" name="g06450d683a212d8246cc5c240bbce9c9"></a><!-- doxytag: member="axis2_msg_ctx.h::axis2_msg_ctx_find_op" ref="g06450d683a212d8246cc5c240bbce9c9" args="(axis2_msg_ctx_t *msg_ctx, const axutil_env_t *env, struct axis2_svc *svc)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">AXIS2_EXTERN struct axis2_op* axis2_msg_ctx_find_op           </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="group__axis2__msg__ctx.html#g160acae289ac39cb49fa625ffd88e410">axis2_msg_ctx_t</a> *&nbsp;</td>
          <td class="paramname"> <em>msg_ctx</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const <a class="el" href="structaxutil__env.html">axutil_env_t</a> *&nbsp;</td>
          <td class="paramname"> <em>env</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">struct axis2_svc *&nbsp;</td>
          <td class="paramname"> <em>svc</em></td><td>&nbsp;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td><td width="100%"><code> [read]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
Finds the operation to be invoked in the given service. This function is used by dispatchers to locate the operation to be invoked. <dl compact><dt><b>Parameters:</b></dt><dd>
  <table border="0" cellspacing="2" cellpadding="0">
    <tr><td valign="top"></td><td valign="top"><em>msg_ctx</em>&nbsp;</td><td>message context </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>env</em>&nbsp;</td><td>pointer to environment struct </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>svc</em>&nbsp;</td><td>pointer to service to whom the operation belongs </td></tr>
  </table>
</dl>
<dl class="return" compact><dt><b>Returns:</b></dt><dd>pointer to the operation to be invoked </dd></dl>

</div>
</div><p>
<a class="anchor" name="g0466cae16b55c308d5adb92c11bd6665"></a><!-- doxytag: member="axis2_msg_ctx.h::axis2_msg_ctx_find_svc" ref="g0466cae16b55c308d5adb92c11bd6665" args="(axis2_msg_ctx_t *msg_ctx, const axutil_env_t *env)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">AXIS2_EXTERN struct axis2_svc* axis2_msg_ctx_find_svc           </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="group__axis2__msg__ctx.html#g160acae289ac39cb49fa625ffd88e410">axis2_msg_ctx_t</a> *&nbsp;</td>
          <td class="paramname"> <em>msg_ctx</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const <a class="el" href="structaxutil__env.html">axutil_env_t</a> *&nbsp;</td>
          <td class="paramname"> <em>env</em></td><td>&nbsp;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td><td width="100%"><code> [read]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
Finds the service to be invoked. This function is used by dispatchers to locate the service to be invoked. <dl compact><dt><b>Parameters:</b></dt><dd>
  <table border="0" cellspacing="2" cellpadding="0">
    <tr><td valign="top"></td><td valign="top"><em>msg_ctx</em>&nbsp;</td><td>message context </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>env</em>&nbsp;</td><td>pointer to environment struct </td></tr>
  </table>
</dl>
<dl class="return" compact><dt><b>Returns:</b></dt><dd>pointer to service to be invoked </dd></dl>

</div>
</div><p>
<a class="anchor" name="gb324606b76e49c07e3ea0454f964284a"></a><!-- doxytag: member="axis2_msg_ctx.h::axis2_msg_ctx_free" ref="gb324606b76e49c07e3ea0454f964284a" args="(axis2_msg_ctx_t *msg_ctx, const axutil_env_t *env)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">AXIS2_EXTERN void axis2_msg_ctx_free           </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="group__axis2__msg__ctx.html#g160acae289ac39cb49fa625ffd88e410">axis2_msg_ctx_t</a> *&nbsp;</td>
          <td class="paramname"> <em>msg_ctx</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const <a class="el" href="structaxutil__env.html">axutil_env_t</a> *&nbsp;</td>
          <td class="paramname"> <em>env</em></td><td>&nbsp;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td><td width="100%"></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
Frees message context. <dl compact><dt><b>Parameters:</b></dt><dd>
  <table border="0" cellspacing="2" cellpadding="0">
    <tr><td valign="top"></td><td valign="top"><em>msg_ctx</em>&nbsp;</td><td>message context </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>env</em>&nbsp;</td><td>pointer to environment struct </td></tr>
  </table>
</dl>
<dl class="return" compact><dt><b>Returns:</b></dt><dd>void </dd></dl>

</div>
</div><p>
<a class="anchor" name="g9275a1b7095f53dc1fc3b81946296acc"></a><!-- doxytag: member="axis2_msg_ctx.h::axis2_msg_ctx_get_auth_failed" ref="g9275a1b7095f53dc1fc3b81946296acc" args="(axis2_msg_ctx_t *msg_ctx, const axutil_env_t *env)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">AXIS2_EXTERN axis2_bool_t axis2_msg_ctx_get_auth_failed           </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="group__axis2__msg__ctx.html#g160acae289ac39cb49fa625ffd88e410">axis2_msg_ctx_t</a> *&nbsp;</td>
          <td class="paramname"> <em>msg_ctx</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const <a class="el" href="structaxutil__env.html">axutil_env_t</a> *&nbsp;</td>
          <td class="paramname"> <em>env</em></td><td>&nbsp;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td><td width="100%"></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
Gets whether an authentication failure occured <dl compact><dt><b>Parameters:</b></dt><dd>
  <table border="0" cellspacing="2" cellpadding="0">
    <tr><td valign="top"></td><td valign="top"><em>msg_ctx</em>&nbsp;</td><td>message context </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>env</em>&nbsp;</td><td>pointer to environment struct </td></tr>
  </table>
</dl>
<dl class="return" compact><dt><b>Returns:</b></dt><dd>returns AXIS2_TRUE if an authentication failure occured or AXIS2_FALSE if not </dd></dl>

</div>
</div><p>
<a class="anchor" name="g6cef678fb88ba92bfc2201b0e077cf69"></a><!-- doxytag: member="axis2_msg_ctx.h::axis2_msg_ctx_get_auth_type" ref="g6cef678fb88ba92bfc2201b0e077cf69" args="(axis2_msg_ctx_t *msg_ctx, const axutil_env_t *env)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">AXIS2_EXTERN axis2_char_t* axis2_msg_ctx_get_auth_type           </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="group__axis2__msg__ctx.html#g160acae289ac39cb49fa625ffd88e410">axis2_msg_ctx_t</a> *&nbsp;</td>
          <td class="paramname"> <em>msg_ctx</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const <a class="el" href="structaxutil__env.html">axutil_env_t</a> *&nbsp;</td>
          <td class="paramname"> <em>env</em></td><td>&nbsp;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td><td width="100%"></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
Gets the authentication type <dl compact><dt><b>Parameters:</b></dt><dd>
  <table border="0" cellspacing="2" cellpadding="0">
    <tr><td valign="top"></td><td valign="top"><em>msg_ctx</em>&nbsp;</td><td>message context </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>env</em>&nbsp;</td><td>pointer to environment struct </td></tr>
  </table>
</dl>
<dl class="return" compact><dt><b>Returns:</b></dt><dd>Authentication type string </dd></dl>

</div>
</div><p>
<a class="anchor" name="g21705c3ecce5d8869ecf66fc68a9cc21"></a><!-- doxytag: member="axis2_msg_ctx.h::axis2_msg_ctx_get_base" ref="g21705c3ecce5d8869ecf66fc68a9cc21" args="(const axis2_msg_ctx_t *msg_ctx, const axutil_env_t *env)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">AXIS2_EXTERN <a class="el" href="group__axis2__ctx.html#ga705ff779281577f08fef5330c23402c">axis2_ctx_t</a>* axis2_msg_ctx_get_base           </td>
          <td>(</td>
          <td class="paramtype">const <a class="el" href="group__axis2__msg__ctx.html#g160acae289ac39cb49fa625ffd88e410">axis2_msg_ctx_t</a> *&nbsp;</td>
          <td class="paramname"> <em>msg_ctx</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const <a class="el" href="structaxutil__env.html">axutil_env_t</a> *&nbsp;</td>
          <td class="paramname"> <em>env</em></td><td>&nbsp;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td><td width="100%"></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
Gets the base, which is of type context. <dl compact><dt><b>Parameters:</b></dt><dd>
  <table border="0" cellspacing="2" cellpadding="0">
    <tr><td valign="top"></td><td valign="top"><em>msg_ctx</em>&nbsp;</td><td>message context </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>env</em>&nbsp;</td><td>pointer to environment struct </td></tr>
  </table>
</dl>
<dl class="return" compact><dt><b>Returns:</b></dt><dd>pointer to base context struct </dd></dl>

</div>
</div><p>
<a class="anchor" name="g872a75f28661a8c83694e47825d3c7d0"></a><!-- doxytag: member="axis2_msg_ctx.h::axis2_msg_ctx_get_charset_encoding" ref="g872a75f28661a8c83694e47825d3c7d0" args="(axis2_msg_ctx_t *msg_ctx, const axutil_env_t *env)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">AXIS2_EXTERN axutil_string_t* axis2_msg_ctx_get_charset_encoding           </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="group__axis2__msg__ctx.html#g160acae289ac39cb49fa625ffd88e410">axis2_msg_ctx_t</a> *&nbsp;</td>
          <td class="paramname"> <em>msg_ctx</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const <a class="el" href="structaxutil__env.html">axutil_env_t</a> *&nbsp;</td>
          <td class="paramname"> <em>env</em></td><td>&nbsp;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td><td width="100%"></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
Gets character set encoding to be used. <dl compact><dt><b>Parameters:</b></dt><dd>
  <table border="0" cellspacing="2" cellpadding="0">
    <tr><td valign="top"></td><td valign="top"><em>msg_ctx</em>&nbsp;</td><td>message context </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>env</em>&nbsp;</td><td>pointer to environment struct </td></tr>
  </table>
</dl>
<dl class="return" compact><dt><b>Returns:</b></dt><dd>AXIS2_SUCCESS on success, else AXIS2_FAILURE </dd></dl>

</div>
</div><p>
<a class="anchor" name="g08b24ce7f8f48a571a0a3461d7e17af9"></a><!-- doxytag: member="axis2_msg_ctx.h::axis2_msg_ctx_get_conf_ctx" ref="g08b24ce7f8f48a571a0a3461d7e17af9" args="(const axis2_msg_ctx_t *msg_ctx, const axutil_env_t *env)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">AXIS2_EXTERN struct axis2_conf_ctx* axis2_msg_ctx_get_conf_ctx           </td>
          <td>(</td>
          <td class="paramtype">const <a class="el" href="group__axis2__msg__ctx.html#g160acae289ac39cb49fa625ffd88e410">axis2_msg_ctx_t</a> *&nbsp;</td>
          <td class="paramname"> <em>msg_ctx</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const <a class="el" href="structaxutil__env.html">axutil_env_t</a> *&nbsp;</td>
          <td class="paramname"> <em>env</em></td><td>&nbsp;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td><td width="100%"><code> [read]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
Gets configuration context. <dl compact><dt><b>Parameters:</b></dt><dd>
  <table border="0" cellspacing="2" cellpadding="0">
    <tr><td valign="top"></td><td valign="top"><em>msg_ctx</em>&nbsp;</td><td>message context </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>env</em>&nbsp;</td><td>pointer to environment struct </td></tr>
  </table>
</dl>
<dl class="return" compact><dt><b>Returns:</b></dt><dd>pointer to configuration context </dd></dl>

</div>
</div><p>
<a class="anchor" name="g8343c9fe27d659cfe939ff865033bc3d"></a><!-- doxytag: member="axis2_msg_ctx.h::axis2_msg_ctx_get_content_language" ref="g8343c9fe27d659cfe939ff865033bc3d" args="(axis2_msg_ctx_t *msg_ctx, const axutil_env_t *env)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">AXIS2_EXTERN axis2_char_t* axis2_msg_ctx_get_content_language           </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="group__axis2__msg__ctx.html#g160acae289ac39cb49fa625ffd88e410">axis2_msg_ctx_t</a> *&nbsp;</td>
          <td class="paramname"> <em>msg_ctx</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const <a class="el" href="structaxutil__env.html">axutil_env_t</a> *&nbsp;</td>
          <td class="paramname"> <em>env</em></td><td>&nbsp;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td><td width="100%"></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
Gets the Content Language used <dl compact><dt><b>Parameters:</b></dt><dd>
  <table border="0" cellspacing="2" cellpadding="0">
    <tr><td valign="top"></td><td valign="top"><em>msg_ctx</em>&nbsp;</td><td>message context </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>env</em>&nbsp;</td><td>pointer to environment struct </td></tr>
  </table>
</dl>
<dl class="return" compact><dt><b>Returns:</b></dt><dd>Content Language string </dd></dl>

</div>
</div><p>
<a class="anchor" name="g450a580a5f51545746aeb794a0a010d5"></a><!-- doxytag: member="axis2_msg_ctx.h::axis2_msg_ctx_get_current_handler_index" ref="g450a580a5f51545746aeb794a0a010d5" args="(const axis2_msg_ctx_t *msg_ctx, const axutil_env_t *env)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">AXIS2_EXTERN int axis2_msg_ctx_get_current_handler_index           </td>
          <td>(</td>
          <td class="paramtype">const <a class="el" href="group__axis2__msg__ctx.html#g160acae289ac39cb49fa625ffd88e410">axis2_msg_ctx_t</a> *&nbsp;</td>
          <td class="paramname"> <em>msg_ctx</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const <a class="el" href="structaxutil__env.html">axutil_env_t</a> *&nbsp;</td>
          <td class="paramname"> <em>env</em></td><td>&nbsp;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td><td width="100%"></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
Gets current handler index, indicating which handler is currently being invoked in the execution chain <dl compact><dt><b>Parameters:</b></dt><dd>
  <table border="0" cellspacing="2" cellpadding="0">
    <tr><td valign="top"></td><td valign="top"><em>msg_ctx</em>&nbsp;</td><td>message context </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>env</em>&nbsp;</td><td>pointer to environment struct </td></tr>
  </table>
</dl>
<dl class="return" compact><dt><b>Returns:</b></dt><dd>index of currently executed handler </dd></dl>

</div>
</div><p>
<a class="anchor" name="g8a5c8277c0574011517121e95d28d693"></a><!-- doxytag: member="axis2_msg_ctx.h::axis2_msg_ctx_get_current_phase_index" ref="g8a5c8277c0574011517121e95d28d693" args="(const axis2_msg_ctx_t *msg_ctx, const axutil_env_t *env)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">AXIS2_EXTERN int axis2_msg_ctx_get_current_phase_index           </td>
          <td>(</td>
          <td class="paramtype">const <a class="el" href="group__axis2__msg__ctx.html#g160acae289ac39cb49fa625ffd88e410">axis2_msg_ctx_t</a> *&nbsp;</td>
          <td class="paramname"> <em>msg_ctx</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const <a class="el" href="structaxutil__env.html">axutil_env_t</a> *&nbsp;</td>
          <td class="paramname"> <em>env</em></td><td>&nbsp;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td><td width="100%"></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
Gets index of the current phase being invoked. <dl compact><dt><b>Parameters:</b></dt><dd>
  <table border="0" cellspacing="2" cellpadding="0">
    <tr><td valign="top"></td><td valign="top"><em>msg_ctx</em>&nbsp;</td><td>message context </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>env</em>&nbsp;</td><td>pointer to environment struct </td></tr>
  </table>
</dl>
<dl class="return" compact><dt><b>Returns:</b></dt><dd>index of current phase </dd></dl>

</div>
</div><p>
<a class="anchor" name="g92affc014f41b9458d497f9f413c96b0"></a><!-- doxytag: member="axis2_msg_ctx.h::axis2_msg_ctx_get_do_rest_through_post" ref="g92affc014f41b9458d497f9f413c96b0" args="(const axis2_msg_ctx_t *msg_ctx, const axutil_env_t *env)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">AXIS2_EXTERN axis2_bool_t axis2_msg_ctx_get_do_rest_through_post           </td>
          <td>(</td>
          <td class="paramtype">const <a class="el" href="group__axis2__msg__ctx.html#g160acae289ac39cb49fa625ffd88e410">axis2_msg_ctx_t</a> *&nbsp;</td>
          <td class="paramname"> <em>msg_ctx</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const <a class="el" href="structaxutil__env.html">axutil_env_t</a> *&nbsp;</td>
          <td class="paramname"> <em>env</em></td><td>&nbsp;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td><td width="100%"></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
Sets the boolean value indicating if REST should be done through HTTP POST or not. <dl compact><dt><b>Parameters:</b></dt><dd>
  <table border="0" cellspacing="2" cellpadding="0">
    <tr><td valign="top"></td><td valign="top"><em>msg_ctx</em>&nbsp;</td><td>message context </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>env</em>&nbsp;</td><td>pointer to environment struct </td></tr>
  </table>
</dl>
<dl class="return" compact><dt><b>Returns:</b></dt><dd>AXIS2_TRUE if REST is to be done with HTTP POST, else AXIS2_FALSE if REST is not to be done with HTTP POST </dd></dl>

</div>
</div><p>
<a class="anchor" name="g06b44f369602fb1f397faf8c3b686fbd"></a><!-- doxytag: member="axis2_msg_ctx.h::axis2_msg_ctx_get_doing_mtom" ref="g06b44f369602fb1f397faf8c3b686fbd" args="(axis2_msg_ctx_t *msg_ctx, const axutil_env_t *env)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">AXIS2_EXTERN axis2_bool_t axis2_msg_ctx_get_doing_mtom           </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="group__axis2__msg__ctx.html#g160acae289ac39cb49fa625ffd88e410">axis2_msg_ctx_t</a> *&nbsp;</td>
          <td class="paramname"> <em>msg_ctx</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const <a class="el" href="structaxutil__env.html">axutil_env_t</a> *&nbsp;</td>
          <td class="paramname"> <em>env</em></td><td>&nbsp;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td><td width="100%"></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
Gets the boolean value indicating if MTOM is enabled or not. <dl compact><dt><b>Parameters:</b></dt><dd>
  <table border="0" cellspacing="2" cellpadding="0">
    <tr><td valign="top"></td><td valign="top"><em>msg_ctx</em>&nbsp;</td><td>message context </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>env</em>&nbsp;</td><td>pointer to environment struct </td></tr>
  </table>
</dl>
<dl class="return" compact><dt><b>Returns:</b></dt><dd>AXIS2_TRUE if MTOM is enabled, else AXIS2_FALSE </dd></dl>

</div>
</div><p>
<a class="anchor" name="g3df7388fa1f7bfe10b559a0a5a2ff1dc"></a><!-- doxytag: member="axis2_msg_ctx.h::axis2_msg_ctx_get_doing_rest" ref="g3df7388fa1f7bfe10b559a0a5a2ff1dc" args="(const axis2_msg_ctx_t *msg_ctx, const axutil_env_t *env)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">AXIS2_EXTERN axis2_bool_t axis2_msg_ctx_get_doing_rest           </td>
          <td>(</td>
          <td class="paramtype">const <a class="el" href="group__axis2__msg__ctx.html#g160acae289ac39cb49fa625ffd88e410">axis2_msg_ctx_t</a> *&nbsp;</td>
          <td class="paramname"> <em>msg_ctx</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const <a class="el" href="structaxutil__env.html">axutil_env_t</a> *&nbsp;</td>
          <td class="paramname"> <em>env</em></td><td>&nbsp;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td><td width="100%"></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
Gets the boolean value indicating if REST is enabled or not. <dl compact><dt><b>Parameters:</b></dt><dd>
  <table border="0" cellspacing="2" cellpadding="0">
    <tr><td valign="top"></td><td valign="top"><em>msg_ctx</em>&nbsp;</td><td>message context </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>env</em>&nbsp;</td><td>pointer to environment struct </td></tr>
  </table>
</dl>
<dl class="return" compact><dt><b>Returns:</b></dt><dd>AXIS2_TRUE if REST is enabled, else AXIS2_FALSE </dd></dl>

</div>
</div><p>
<a class="anchor" name="gc944c499d0c5680080b4a87f5e312746"></a><!-- doxytag: member="axis2_msg_ctx.h::axis2_msg_ctx_get_execution_chain" ref="gc944c499d0c5680080b4a87f5e312746" args="(const axis2_msg_ctx_t *msg_ctx, const axutil_env_t *env)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">AXIS2_EXTERN <a class="el" href="group__axutil__array__list.html#g1a6a89777db876cfa0cc86787b7be6a0">axutil_array_list_t</a>* axis2_msg_ctx_get_execution_chain           </td>
          <td>(</td>
          <td class="paramtype">const <a class="el" href="group__axis2__msg__ctx.html#g160acae289ac39cb49fa625ffd88e410">axis2_msg_ctx_t</a> *&nbsp;</td>
          <td class="paramname"> <em>msg_ctx</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const <a class="el" href="structaxutil__env.html">axutil_env_t</a> *&nbsp;</td>
          <td class="paramname"> <em>env</em></td><td>&nbsp;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td><td width="100%"></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
Gets the execution chain to be invoked. The execution chain is a list of phases containing the handlers to be invoked. <dl compact><dt><b>Parameters:</b></dt><dd>
  <table border="0" cellspacing="2" cellpadding="0">
    <tr><td valign="top"></td><td valign="top"><em>msg_ctx</em>&nbsp;</td><td>message context </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>env</em>&nbsp;</td><td>pointer to environment struct </td></tr>
  </table>
</dl>
<dl class="return" compact><dt><b>Returns:</b></dt><dd>pointer array list containing the list of handlers that constitute the execution chain. Message context does not assume the ownership of the array list </dd></dl>

</div>
</div><p>
<a class="anchor" name="gcad76203a38152006e85476751ae7826"></a><!-- doxytag: member="axis2_msg_ctx.h::axis2_msg_ctx_get_fault_soap_envelope" ref="gcad76203a38152006e85476751ae7826" args="(const axis2_msg_ctx_t *msg_ctx, const axutil_env_t *env)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">AXIS2_EXTERN struct axiom_soap_envelope* axis2_msg_ctx_get_fault_soap_envelope           </td>
          <td>(</td>
          <td class="paramtype">const <a class="el" href="group__axis2__msg__ctx.html#g160acae289ac39cb49fa625ffd88e410">axis2_msg_ctx_t</a> *&nbsp;</td>
          <td class="paramname"> <em>msg_ctx</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const <a class="el" href="structaxutil__env.html">axutil_env_t</a> *&nbsp;</td>
          <td class="paramname"> <em>env</em></td><td>&nbsp;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td><td width="100%"><code> [read]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
Gets fault SOAP envelope. <dl compact><dt><b>Parameters:</b></dt><dd>
  <table border="0" cellspacing="2" cellpadding="0">
    <tr><td valign="top"></td><td valign="top"><em>msg_ctx</em>&nbsp;</td><td>message context </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>env</em>&nbsp;</td><td>pointer to environment struct </td></tr>
  </table>
</dl>
<dl class="return" compact><dt><b>Returns:</b></dt><dd>pointer to fault SOAP envelope stored within message context </dd></dl>

</div>
</div><p>
<a class="anchor" name="g67ec8b0b713a7e2f0f0ba6d04ea8c483"></a><!-- doxytag: member="axis2_msg_ctx.h::axis2_msg_ctx_get_fault_to" ref="g67ec8b0b713a7e2f0f0ba6d04ea8c483" args="(const axis2_msg_ctx_t *msg_ctx, const axutil_env_t *env)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">AXIS2_EXTERN <a class="el" href="group__axis2__endpoint__ref.html#gf6e89c83a6b553e7e3f11e787b3fecd4">axis2_endpoint_ref_t</a>* axis2_msg_ctx_get_fault_to           </td>
          <td>(</td>
          <td class="paramtype">const <a class="el" href="group__axis2__msg__ctx.html#g160acae289ac39cb49fa625ffd88e410">axis2_msg_ctx_t</a> *&nbsp;</td>
          <td class="paramname"> <em>msg_ctx</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const <a class="el" href="structaxutil__env.html">axutil_env_t</a> *&nbsp;</td>
          <td class="paramname"> <em>env</em></td><td>&nbsp;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td><td width="100%"></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
Gets WS-Addressing fault to address. Fault to address tells where to send the fault in case there is an error. <dl compact><dt><b>Parameters:</b></dt><dd>
  <table border="0" cellspacing="2" cellpadding="0">
    <tr><td valign="top"></td><td valign="top"><em>msg_ctx</em>&nbsp;</td><td>message context </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>env</em>&nbsp;</td><td>pointer to environment struct </td></tr>
  </table>
</dl>
<dl class="return" compact><dt><b>Returns:</b></dt><dd>pointer to endpoint reference struct representing the fault to address, returns a reference not a cloned copy </dd></dl>

</div>
</div><p>
<a class="anchor" name="gd70614caf6e01d3f061b994f0e87d0e8"></a><!-- doxytag: member="axis2_msg_ctx.h::axis2_msg_ctx_get_flow" ref="gd70614caf6e01d3f061b994f0e87d0e8" args="(const axis2_msg_ctx_t *msg_ctx, const axutil_env_t *env)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">AXIS2_EXTERN int axis2_msg_ctx_get_flow           </td>
          <td>(</td>
          <td class="paramtype">const <a class="el" href="group__axis2__msg__ctx.html#g160acae289ac39cb49fa625ffd88e410">axis2_msg_ctx_t</a> *&nbsp;</td>
          <td class="paramname"> <em>msg_ctx</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const <a class="el" href="structaxutil__env.html">axutil_env_t</a> *&nbsp;</td>
          <td class="paramname"> <em>env</em></td><td>&nbsp;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td><td width="100%"></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
Gets the flow to be invoked. <dl compact><dt><b>Parameters:</b></dt><dd>
  <table border="0" cellspacing="2" cellpadding="0">
    <tr><td valign="top"></td><td valign="top"><em>msg_ctx</em>&nbsp;</td><td>message context </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>env</em>&nbsp;</td><td>pointer to environment struct </td></tr>
  </table>
</dl>
<dl class="return" compact><dt><b>Returns:</b></dt><dd>int value indicating the flow </dd></dl>

</div>
</div><p>
<a class="anchor" name="g8494bb2e6d1b4663da5dbf99ef2ee16e"></a><!-- doxytag: member="axis2_msg_ctx.h::axis2_msg_ctx_get_from" ref="g8494bb2e6d1b4663da5dbf99ef2ee16e" args="(const axis2_msg_ctx_t *msg_ctx, const axutil_env_t *env)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">AXIS2_EXTERN <a class="el" href="group__axis2__endpoint__ref.html#gf6e89c83a6b553e7e3f11e787b3fecd4">axis2_endpoint_ref_t</a>* axis2_msg_ctx_get_from           </td>
          <td>(</td>
          <td class="paramtype">const <a class="el" href="group__axis2__msg__ctx.html#g160acae289ac39cb49fa625ffd88e410">axis2_msg_ctx_t</a> *&nbsp;</td>
          <td class="paramname"> <em>msg_ctx</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const <a class="el" href="structaxutil__env.html">axutil_env_t</a> *&nbsp;</td>
          <td class="paramname"> <em>env</em></td><td>&nbsp;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td><td width="100%"></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
Gets WS-Addressing from endpoint. From address tells where the request came from. <dl compact><dt><b>Parameters:</b></dt><dd>
  <table border="0" cellspacing="2" cellpadding="0">
    <tr><td valign="top"></td><td valign="top"><em>msg_ctx</em>&nbsp;</td><td>message context </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>env</em>&nbsp;</td><td>pointer to environment struct </td></tr>
  </table>
</dl>
<dl class="return" compact><dt><b>Returns:</b></dt><dd>pointer to endpoint reference struct representing the from address, returns a reference not a cloned copy </dd></dl>

</div>
</div><p>
<a class="anchor" name="gb0be9834b54fbc08fa1acc6f3d9ab0d6"></a><!-- doxytag: member="axis2_msg_ctx.h::axis2_msg_ctx_get_http_accept_charset_record_list" ref="gb0be9834b54fbc08fa1acc6f3d9ab0d6" args="(axis2_msg_ctx_t *msg_ctx, const axutil_env_t *env)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">AXIS2_EXTERN <a class="el" href="group__axutil__array__list.html#g1a6a89777db876cfa0cc86787b7be6a0">axutil_array_list_t</a>* axis2_msg_ctx_get_http_accept_charset_record_list           </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="group__axis2__msg__ctx.html#g160acae289ac39cb49fa625ffd88e410">axis2_msg_ctx_t</a> *&nbsp;</td>
          <td class="paramname"> <em>msg_ctx</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const <a class="el" href="structaxutil__env.html">axutil_env_t</a> *&nbsp;</td>
          <td class="paramname"> <em>env</em></td><td>&nbsp;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td><td width="100%"></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
Retrieves HTTP Accept-Charset records. <dl compact><dt><b>Parameters:</b></dt><dd>
  <table border="0" cellspacing="2" cellpadding="0">
    <tr><td valign="top"></td><td valign="top"><em>msg_ctx</em>&nbsp;</td><td>message context </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>env</em>&nbsp;</td><td>pointer to environment struct </td></tr>
  </table>
</dl>
<dl class="return" compact><dt><b>Returns:</b></dt><dd>HTTP Accept-Charset records associated. </dd></dl>

</div>
</div><p>
<a class="anchor" name="gffc30ac34ed6fffb2980a1e95532b51d"></a><!-- doxytag: member="axis2_msg_ctx.h::axis2_msg_ctx_get_http_accept_language_record_list" ref="gffc30ac34ed6fffb2980a1e95532b51d" args="(axis2_msg_ctx_t *msg_ctx, const axutil_env_t *env)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">AXIS2_EXTERN <a class="el" href="group__axutil__array__list.html#g1a6a89777db876cfa0cc86787b7be6a0">axutil_array_list_t</a>* axis2_msg_ctx_get_http_accept_language_record_list           </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="group__axis2__msg__ctx.html#g160acae289ac39cb49fa625ffd88e410">axis2_msg_ctx_t</a> *&nbsp;</td>
          <td class="paramname"> <em>msg_ctx</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const <a class="el" href="structaxutil__env.html">axutil_env_t</a> *&nbsp;</td>
          <td class="paramname"> <em>env</em></td><td>&nbsp;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td><td width="100%"></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
Retrieves HTTP Accept-Language records. <dl compact><dt><b>Parameters:</b></dt><dd>
  <table border="0" cellspacing="2" cellpadding="0">
    <tr><td valign="top"></td><td valign="top"><em>msg_ctx</em>&nbsp;</td><td>message context </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>env</em>&nbsp;</td><td>pointer to environment struct </td></tr>
  </table>
</dl>
<dl class="return" compact><dt><b>Returns:</b></dt><dd>HTTP Accept-Language records associated. </dd></dl>

</div>
</div><p>
<a class="anchor" name="gf9fa321552ac0debc4cd7e094e7e12ed"></a><!-- doxytag: member="axis2_msg_ctx.h::axis2_msg_ctx_get_http_accept_record_list" ref="gf9fa321552ac0debc4cd7e094e7e12ed" args="(axis2_msg_ctx_t *msg_ctx, const axutil_env_t *env)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">AXIS2_EXTERN <a class="el" href="group__axutil__array__list.html#g1a6a89777db876cfa0cc86787b7be6a0">axutil_array_list_t</a>* axis2_msg_ctx_get_http_accept_record_list           </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="group__axis2__msg__ctx.html#g160acae289ac39cb49fa625ffd88e410">axis2_msg_ctx_t</a> *&nbsp;</td>
          <td class="paramname"> <em>msg_ctx</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const <a class="el" href="structaxutil__env.html">axutil_env_t</a> *&nbsp;</td>
          <td class="paramname"> <em>env</em></td><td>&nbsp;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td><td width="100%"></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
Retrieves HTTP Accept records. <dl compact><dt><b>Parameters:</b></dt><dd>
  <table border="0" cellspacing="2" cellpadding="0">
    <tr><td valign="top"></td><td valign="top"><em>msg_ctx</em>&nbsp;</td><td>message context </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>env</em>&nbsp;</td><td>pointer to environment struct </td></tr>
  </table>
</dl>
<dl class="return" compact><dt><b>Returns:</b></dt><dd>HTTP Accept records associated. </dd></dl>

</div>
</div><p>
<a class="anchor" name="gbba5b7ca4deab1b41fda5701ec5b1be7"></a><!-- doxytag: member="axis2_msg_ctx.h::axis2_msg_ctx_get_http_output_headers" ref="gbba5b7ca4deab1b41fda5701ec5b1be7" args="(axis2_msg_ctx_t *msg_ctx, const axutil_env_t *env)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">AXIS2_EXTERN <a class="el" href="group__axutil__array__list.html#g1a6a89777db876cfa0cc86787b7be6a0">axutil_array_list_t</a>* axis2_msg_ctx_get_http_output_headers           </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="group__axis2__msg__ctx.html#g160acae289ac39cb49fa625ffd88e410">axis2_msg_ctx_t</a> *&nbsp;</td>
          <td class="paramname"> <em>msg_ctx</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const <a class="el" href="structaxutil__env.html">axutil_env_t</a> *&nbsp;</td>
          <td class="paramname"> <em>env</em></td><td>&nbsp;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td><td width="100%"></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
Gets the Output Header list <dl compact><dt><b>Parameters:</b></dt><dd>
  <table border="0" cellspacing="2" cellpadding="0">
    <tr><td valign="top"></td><td valign="top"><em>msg_ctx</em>&nbsp;</td><td>message context </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>env</em>&nbsp;</td><td>pointer to environment struct </td></tr>
  </table>
</dl>
<dl class="return" compact><dt><b>Returns:</b></dt><dd>Output Header list </dd></dl>

</div>
</div><p>
<a class="anchor" name="g01232a7693673fae962371c41cc154bd"></a><!-- doxytag: member="axis2_msg_ctx.h::axis2_msg_ctx_get_in_fault_flow" ref="g01232a7693673fae962371c41cc154bd" args="(const axis2_msg_ctx_t *msg_ctx, const axutil_env_t *env)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">AXIS2_EXTERN axis2_bool_t axis2_msg_ctx_get_in_fault_flow           </td>
          <td>(</td>
          <td class="paramtype">const <a class="el" href="group__axis2__msg__ctx.html#g160acae289ac39cb49fa625ffd88e410">axis2_msg_ctx_t</a> *&nbsp;</td>
          <td class="paramname"> <em>msg_ctx</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const <a class="el" href="structaxutil__env.html">axutil_env_t</a> *&nbsp;</td>
          <td class="paramname"> <em>env</em></td><td>&nbsp;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td><td width="100%"></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
Checks if there is a SOAP fault on in flow. <dl compact><dt><b>Parameters:</b></dt><dd>
  <table border="0" cellspacing="2" cellpadding="0">
    <tr><td valign="top"></td><td valign="top"><em>msg_ctx</em>&nbsp;</td><td>message context </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>env</em>&nbsp;</td><td>pointer to environment struct </td></tr>
  </table>
</dl>
<dl class="return" compact><dt><b>Returns:</b></dt><dd>AXIS2_TRUE if there is an in flow fault, else AXIS2_FALSE </dd></dl>

</div>
</div><p>
<a class="anchor" name="g6dbf37da7d9d04410d2a78aa621c9fb5"></a><!-- doxytag: member="axis2_msg_ctx.h::axis2_msg_ctx_get_is_soap_11" ref="g6dbf37da7d9d04410d2a78aa621c9fb5" args="(const axis2_msg_ctx_t *msg_ctx, const axutil_env_t *env)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">AXIS2_EXTERN axis2_bool_t axis2_msg_ctx_get_is_soap_11           </td>
          <td>(</td>
          <td class="paramtype">const <a class="el" href="group__axis2__msg__ctx.html#g160acae289ac39cb49fa625ffd88e410">axis2_msg_ctx_t</a> *&nbsp;</td>
          <td class="paramname"> <em>msg_ctx</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const <a class="el" href="structaxutil__env.html">axutil_env_t</a> *&nbsp;</td>
          <td class="paramname"> <em>env</em></td><td>&nbsp;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td><td width="100%"></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
Gets the bool value indicating the SOAP version being used either SOAP 1.1 or SOAP 1.2 <dl compact><dt><b>Parameters:</b></dt><dd>
  <table border="0" cellspacing="2" cellpadding="0">
    <tr><td valign="top"></td><td valign="top"><em>msg_ctx</em>&nbsp;</td><td>message context </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>env</em>&nbsp;</td><td>pointer to environment struct </td></tr>
  </table>
</dl>
<dl class="return" compact><dt><b>Returns:</b></dt><dd>AXIS2_TRUE if SOAP 1.1 is being used, else AXIS2_FALSE if SOAP 1.2 is being used </dd></dl>

</div>
</div><p>
<a class="anchor" name="g498e34d21eed5b6fe789f85425c1565a"></a><!-- doxytag: member="axis2_msg_ctx.h::axis2_msg_ctx_get_manage_session" ref="g498e34d21eed5b6fe789f85425c1565a" args="(const axis2_msg_ctx_t *msg_ctx, const axutil_env_t *env)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">AXIS2_EXTERN axis2_bool_t axis2_msg_ctx_get_manage_session           </td>
          <td>(</td>
          <td class="paramtype">const <a class="el" href="group__axis2__msg__ctx.html#g160acae289ac39cb49fa625ffd88e410">axis2_msg_ctx_t</a> *&nbsp;</td>
          <td class="paramname"> <em>msg_ctx</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const <a class="el" href="structaxutil__env.html">axutil_env_t</a> *&nbsp;</td>
          <td class="paramname"> <em>env</em></td><td>&nbsp;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td><td width="100%"></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
Gets manage session bool value. <dl compact><dt><b>Parameters:</b></dt><dd>
  <table border="0" cellspacing="2" cellpadding="0">
    <tr><td valign="top"></td><td valign="top"><em>msg_ctx</em>&nbsp;</td><td>message context </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>env</em>&nbsp;</td><td>pointer to environment struct </td></tr>
  </table>
</dl>
<dl class="return" compact><dt><b>Returns:</b></dt><dd>AXIS2_TRUE if session is managed, else AXIS2_FALSE </dd></dl>

</div>
</div><p>
<a class="anchor" name="g99a3b44ee061e8f7ad4a4e11aa705ab1"></a><!-- doxytag: member="axis2_msg_ctx.h::axis2_msg_ctx_get_module_parameter" ref="g99a3b44ee061e8f7ad4a4e11aa705ab1" args="(const axis2_msg_ctx_t *msg_ctx, const axutil_env_t *env, const axis2_char_t *key, const axis2_char_t *module_name, axis2_handler_desc_t *handler_desc)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">AXIS2_EXTERN axutil_param_t* axis2_msg_ctx_get_module_parameter           </td>
          <td>(</td>
          <td class="paramtype">const <a class="el" href="group__axis2__msg__ctx.html#g160acae289ac39cb49fa625ffd88e410">axis2_msg_ctx_t</a> *&nbsp;</td>
          <td class="paramname"> <em>msg_ctx</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const <a class="el" href="structaxutil__env.html">axutil_env_t</a> *&nbsp;</td>
          <td class="paramname"> <em>env</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const axis2_char_t *&nbsp;</td>
          <td class="paramname"> <em>key</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const axis2_char_t *&nbsp;</td>
          <td class="paramname"> <em>module_name</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype"><a class="el" href="group__axis2__handler__desc.html#gafcabd9d344f36395e60f1b4677835d9">axis2_handler_desc_t</a> *&nbsp;</td>
          <td class="paramname"> <em>handler_desc</em></td><td>&nbsp;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td><td width="100%"></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
Gets parameters related to a named module and a given handler description. The order of searching for parameter is as follows: <br>
 1. search in module configuration stored inside corresponding operation description if its there <br>
 2. search in corresponding operation if its there <br>
 3. search in module configurations stored inside corresponding service description if its there <br>
 4. search in corresponding service description if its there <br>
 5. search in module configurations stored inside configuration <br>
 6. search in configuration for parameters <br>
 7. get the corresponding module and search for the parameters <br>
 8. search in handler description for the parameter <dl compact><dt><b>Parameters:</b></dt><dd>
  <table border="0" cellspacing="2" cellpadding="0">
    <tr><td valign="top"></td><td valign="top"><em>msg_ctx</em>&nbsp;</td><td>pointer to message context </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>env</em>&nbsp;</td><td>pointer to environment struct </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>key</em>&nbsp;</td><td>parameter key </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>module_name</em>&nbsp;</td><td>name of the module </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>handler_desc</em>&nbsp;</td><td>pointer to handler description </td></tr>
  </table>
</dl>
<dl class="return" compact><dt><b>Returns:</b></dt><dd>pointer to parameter </dd></dl>

</div>
</div><p>
<a class="anchor" name="g1f05e034e633a5649c4aead35b9b2b3f"></a><!-- doxytag: member="axis2_msg_ctx.h::axis2_msg_ctx_get_msg_id" ref="g1f05e034e633a5649c4aead35b9b2b3f" args="(const axis2_msg_ctx_t *msg_ctx, const axutil_env_t *env)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">AXIS2_EXTERN const axis2_char_t* axis2_msg_ctx_get_msg_id           </td>
          <td>(</td>
          <td class="paramtype">const <a class="el" href="group__axis2__msg__ctx.html#g160acae289ac39cb49fa625ffd88e410">axis2_msg_ctx_t</a> *&nbsp;</td>
          <td class="paramname"> <em>msg_ctx</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const <a class="el" href="structaxutil__env.html">axutil_env_t</a> *&nbsp;</td>
          <td class="paramname"> <em>env</em></td><td>&nbsp;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td><td width="100%"></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
Gets message ID. <dl compact><dt><b>Parameters:</b></dt><dd>
  <table border="0" cellspacing="2" cellpadding="0">
    <tr><td valign="top"></td><td valign="top"><em>msg_ctx</em>&nbsp;</td><td>message context </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>env</em>&nbsp;</td><td>pointer to environment struct </td></tr>
  </table>
</dl>
<dl class="return" compact><dt><b>Returns:</b></dt><dd>message ID string corresponding to the message the message context is related to </dd></dl>

</div>
</div><p>
<a class="anchor" name="g65e6d0ad0877aeff2a9199c31fecec01"></a><!-- doxytag: member="axis2_msg_ctx.h::axis2_msg_ctx_get_msg_info_headers" ref="g65e6d0ad0877aeff2a9199c31fecec01" args="(const axis2_msg_ctx_t *msg_ctx, const axutil_env_t *env)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">AXIS2_EXTERN <a class="el" href="group__axis2__msg__info__headers.html#g556873fdfa94e29e43d96728871f3192">axis2_msg_info_headers_t</a>* axis2_msg_ctx_get_msg_info_headers           </td>
          <td>(</td>
          <td class="paramtype">const <a class="el" href="group__axis2__msg__ctx.html#g160acae289ac39cb49fa625ffd88e410">axis2_msg_ctx_t</a> *&nbsp;</td>
          <td class="paramname"> <em>msg_ctx</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const <a class="el" href="structaxutil__env.html">axutil_env_t</a> *&nbsp;</td>
          <td class="paramname"> <em>env</em></td><td>&nbsp;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td><td width="100%"></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
Gets WS-Addressing message information headers. <dl compact><dt><b>Parameters:</b></dt><dd>
  <table border="0" cellspacing="2" cellpadding="0">
    <tr><td valign="top"></td><td valign="top"><em>msg_ctx</em>&nbsp;</td><td>message context </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>env</em>&nbsp;</td><td>pointer to environment struct </td></tr>
  </table>
</dl>
<dl class="return" compact><dt><b>Returns:</b></dt><dd>pointer to message information headers struct with WS-Addressing information. Returns a reference, not a cloned copy </dd></dl>

</div>
</div><p>
<a class="anchor" name="gba6ab8a714e0f06ea2c629bccce07e53"></a><!-- doxytag: member="axis2_msg_ctx.h::axis2_msg_ctx_get_new_thread_required" ref="gba6ab8a714e0f06ea2c629bccce07e53" args="(const axis2_msg_ctx_t *msg_ctx, const axutil_env_t *env)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">AXIS2_EXTERN axis2_bool_t axis2_msg_ctx_get_new_thread_required           </td>
          <td>(</td>
          <td class="paramtype">const <a class="el" href="group__axis2__msg__ctx.html#g160acae289ac39cb49fa625ffd88e410">axis2_msg_ctx_t</a> *&nbsp;</td>
          <td class="paramname"> <em>msg_ctx</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const <a class="el" href="structaxutil__env.html">axutil_env_t</a> *&nbsp;</td>
          <td class="paramname"> <em>env</em></td><td>&nbsp;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td><td width="100%"></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
Gets the bool value indicating if it is required to have a new thread for the invocation, or if the same thread of execution could be used. <dl compact><dt><b>Parameters:</b></dt><dd>
  <table border="0" cellspacing="2" cellpadding="0">
    <tr><td valign="top"></td><td valign="top"><em>msg_ctx</em>&nbsp;</td><td>message context </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>env</em>&nbsp;</td><td>pointer to environment struct </td></tr>
  </table>
</dl>
<dl class="return" compact><dt><b>Returns:</b></dt><dd>AXIS2_TRUE if new thread is required, else AXIS2_FALSE </dd></dl>

</div>
</div><p>
<a class="anchor" name="g599cd11719450e641d1ef1a9b2bfd437"></a><!-- doxytag: member="axis2_msg_ctx.h::axis2_msg_ctx_get_no_content" ref="g599cd11719450e641d1ef1a9b2bfd437" args="(axis2_msg_ctx_t *msg_ctx, const axutil_env_t *env)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">AXIS2_EXTERN axis2_bool_t axis2_msg_ctx_get_no_content           </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="group__axis2__msg__ctx.html#g160acae289ac39cb49fa625ffd88e410">axis2_msg_ctx_t</a> *&nbsp;</td>
          <td class="paramname"> <em>msg_ctx</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const <a class="el" href="structaxutil__env.html">axutil_env_t</a> *&nbsp;</td>
          <td class="paramname"> <em>env</em></td><td>&nbsp;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td><td width="100%"></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
Gets whether there was no content in the response. This will cater for a situation where the invoke method in a service returns NULL when no fault has occured. <dl compact><dt><b>Parameters:</b></dt><dd>
  <table border="0" cellspacing="2" cellpadding="0">
    <tr><td valign="top"></td><td valign="top"><em>msg_ctx</em>&nbsp;</td><td>message context </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>env</em>&nbsp;</td><td>pointer to environment struct </td></tr>
  </table>
</dl>
<dl class="return" compact><dt><b>Returns:</b></dt><dd>returns AXIS2_TRUE if there was no content occured or AXIS2_FALSE otherwise </dd></dl>

</div>
</div><p>
<a class="anchor" name="gef54001c6a3b344e85f672113f636e09"></a><!-- doxytag: member="axis2_msg_ctx.h::axis2_msg_ctx_get_op" ref="gef54001c6a3b344e85f672113f636e09" args="(const axis2_msg_ctx_t *msg_ctx, const axutil_env_t *env)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">AXIS2_EXTERN struct axis2_op* axis2_msg_ctx_get_op           </td>
          <td>(</td>
          <td class="paramtype">const <a class="el" href="group__axis2__msg__ctx.html#g160acae289ac39cb49fa625ffd88e410">axis2_msg_ctx_t</a> *&nbsp;</td>
          <td class="paramname"> <em>msg_ctx</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const <a class="el" href="structaxutil__env.html">axutil_env_t</a> *&nbsp;</td>
          <td class="paramname"> <em>env</em></td><td>&nbsp;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td><td width="100%"><code> [read]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
Gets the operation that is to be invoked. <dl compact><dt><b>Parameters:</b></dt><dd>
  <table border="0" cellspacing="2" cellpadding="0">
    <tr><td valign="top"></td><td valign="top"><em>msg_ctx</em>&nbsp;</td><td>message context </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>env</em>&nbsp;</td><td>pointer to environment struct </td></tr>
  </table>
</dl>
<dl class="return" compact><dt><b>Returns:</b></dt><dd>pointer to operation, returns a reference not a cloned copy </dd></dl>

</div>
</div><p>
<a class="anchor" name="g4778817a289307212f46e1b60d5eab51"></a><!-- doxytag: member="axis2_msg_ctx.h::axis2_msg_ctx_get_op_ctx" ref="g4778817a289307212f46e1b60d5eab51" args="(const axis2_msg_ctx_t *msg_ctx, const axutil_env_t *env)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">AXIS2_EXTERN struct axis2_op_ctx* axis2_msg_ctx_get_op_ctx           </td>
          <td>(</td>
          <td class="paramtype">const <a class="el" href="group__axis2__msg__ctx.html#g160acae289ac39cb49fa625ffd88e410">axis2_msg_ctx_t</a> *&nbsp;</td>
          <td class="paramname"> <em>msg_ctx</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const <a class="el" href="structaxutil__env.html">axutil_env_t</a> *&nbsp;</td>
          <td class="paramname"> <em>env</em></td><td>&nbsp;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td><td width="100%"><code> [read]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
Gets operation context related to the operation that this message context is related to. <dl compact><dt><b>Parameters:</b></dt><dd>
  <table border="0" cellspacing="2" cellpadding="0">
    <tr><td valign="top"></td><td valign="top"><em>msg_ctx</em>&nbsp;</td><td>message context </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>env</em>&nbsp;</td><td>pointer to environment struct </td></tr>
  </table>
</dl>
<dl class="return" compact><dt><b>Returns:</b></dt><dd>pointer to operation context struct </dd></dl>

</div>
</div><p>
<a class="anchor" name="g8af21689d7304ae4712308a4951a071e"></a><!-- doxytag: member="axis2_msg_ctx.h::axis2_msg_ctx_get_options" ref="g8af21689d7304ae4712308a4951a071e" args="(axis2_msg_ctx_t *msg_ctx, const axutil_env_t *env)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">AXIS2_EXTERN struct axis2_options* axis2_msg_ctx_get_options           </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="group__axis2__msg__ctx.html#g160acae289ac39cb49fa625ffd88e410">axis2_msg_ctx_t</a> *&nbsp;</td>
          <td class="paramname"> <em>msg_ctx</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const <a class="el" href="structaxutil__env.html">axutil_env_t</a> *&nbsp;</td>
          <td class="paramname"> <em>env</em></td><td>&nbsp;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td><td width="100%"><code> [read]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
Gets the options to be used in invocation. <dl compact><dt><b>Parameters:</b></dt><dd>
  <table border="0" cellspacing="2" cellpadding="0">
    <tr><td valign="top"></td><td valign="top"><em>msg_ctx</em>&nbsp;</td><td>message context </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>env</em>&nbsp;</td><td>pointer to environment struct </td></tr>
  </table>
</dl>
<dl class="return" compact><dt><b>Returns:</b></dt><dd>options pointer to options struct, message context does not assume the ownership of the struct </dd></dl>

</div>
</div><p>
<a class="anchor" name="gb37389b924f4503169165ae6d0371e17"></a><!-- doxytag: member="axis2_msg_ctx.h::axis2_msg_ctx_get_out_transport_info" ref="gb37389b924f4503169165ae6d0371e17" args="(axis2_msg_ctx_t *msg_ctx, const axutil_env_t *env)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">AXIS2_EXTERN struct axis2_out_transport_info* axis2_msg_ctx_get_out_transport_info           </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="group__axis2__msg__ctx.html#g160acae289ac39cb49fa625ffd88e410">axis2_msg_ctx_t</a> *&nbsp;</td>
          <td class="paramname"> <em>msg_ctx</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const <a class="el" href="structaxutil__env.html">axutil_env_t</a> *&nbsp;</td>
          <td class="paramname"> <em>env</em></td><td>&nbsp;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td><td width="100%"><code> [read]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
Gets the HTTP Out Transport Info associated <dl compact><dt><b>Parameters:</b></dt><dd>
  <table border="0" cellspacing="2" cellpadding="0">
    <tr><td valign="top"></td><td valign="top"><em>msg_ctx</em>&nbsp;</td><td>message context </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>env</em>&nbsp;</td><td>pointer to environment struct </td></tr>
  </table>
</dl>
<dl class="return" compact><dt><b>Returns:</b></dt><dd>reference to HTTP Out Transport Info associated </dd></dl>

</div>
</div><p>
<a class="anchor" name="g634e1277b8a4e29dd9bbbfe8e27350d7"></a><!-- doxytag: member="axis2_msg_ctx.h::axis2_msg_ctx_get_output_written" ref="g634e1277b8a4e29dd9bbbfe8e27350d7" args="(const axis2_msg_ctx_t *msg_ctx, const axutil_env_t *env)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">AXIS2_EXTERN axis2_bool_t axis2_msg_ctx_get_output_written           </td>
          <td>(</td>
          <td class="paramtype">const <a class="el" href="group__axis2__msg__ctx.html#g160acae289ac39cb49fa625ffd88e410">axis2_msg_ctx_t</a> *&nbsp;</td>
          <td class="paramname"> <em>msg_ctx</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const <a class="el" href="structaxutil__env.html">axutil_env_t</a> *&nbsp;</td>
          <td class="paramname"> <em>env</em></td><td>&nbsp;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td><td width="100%"></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
Gets the bool value indicating the output written status. <dl compact><dt><b>Parameters:</b></dt><dd>
  <table border="0" cellspacing="2" cellpadding="0">
    <tr><td valign="top"></td><td valign="top"><em>msg_ctx</em>&nbsp;</td><td>message context </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>env</em>&nbsp;</td><td>pointer to environment struct </td></tr>
  </table>
</dl>
<dl class="return" compact><dt><b>Returns:</b></dt><dd>AXIS2_TRUE if output is written, else AXIS2_FALSE </dd></dl>

</div>
</div><p>
<a class="anchor" name="gf6f4791211bb2e7bb2a3da886da0c06a"></a><!-- doxytag: member="axis2_msg_ctx.h::axis2_msg_ctx_get_parameter" ref="gf6f4791211bb2e7bb2a3da886da0c06a" args="(const axis2_msg_ctx_t *msg_ctx, const axutil_env_t *env, const axis2_char_t *key)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">AXIS2_EXTERN axutil_param_t* axis2_msg_ctx_get_parameter           </td>
          <td>(</td>
          <td class="paramtype">const <a class="el" href="group__axis2__msg__ctx.html#g160acae289ac39cb49fa625ffd88e410">axis2_msg_ctx_t</a> *&nbsp;</td>
          <td class="paramname"> <em>msg_ctx</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const <a class="el" href="structaxutil__env.html">axutil_env_t</a> *&nbsp;</td>
          <td class="paramname"> <em>env</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const axis2_char_t *&nbsp;</td>
          <td class="paramname"> <em>key</em></td><td>&nbsp;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td><td width="100%"></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
Gets configuration descriptor parameter with given key. This method recursively search the related description hierarchy for the parameter with given key until it is found or the parent of the description hierarchy is reached. The order of search is as follows: <br>
 1. search in operation description, if its there return <br>
 2. if the parameter is not found in operation or operation is NULL, search in service <br>
 3. if the parameter is not found in service or service is NULL search in configuration <dl compact><dt><b>Parameters:</b></dt><dd>
  <table border="0" cellspacing="2" cellpadding="0">
    <tr><td valign="top"></td><td valign="top"><em>msg_ctx</em>&nbsp;</td><td>message context </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>env</em>&nbsp;</td><td>pointer to environment struct </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>key</em>&nbsp;</td><td>parameter key </td></tr>
  </table>
</dl>
<dl class="return" compact><dt><b>Returns:</b></dt><dd>pointer to parameter struct corresponding to the given key </dd></dl>

</div>
</div><p>
<a class="anchor" name="gd4ce3d1d6debe530cbb3dffb2a43c866"></a><!-- doxytag: member="axis2_msg_ctx.h::axis2_msg_ctx_get_parent" ref="gd4ce3d1d6debe530cbb3dffb2a43c866" args="(const axis2_msg_ctx_t *msg_ctx, const axutil_env_t *env)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">AXIS2_EXTERN struct axis2_op_ctx* axis2_msg_ctx_get_parent           </td>
          <td>(</td>
          <td class="paramtype">const <a class="el" href="group__axis2__msg__ctx.html#g160acae289ac39cb49fa625ffd88e410">axis2_msg_ctx_t</a> *&nbsp;</td>
          <td class="paramname"> <em>msg_ctx</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const <a class="el" href="structaxutil__env.html">axutil_env_t</a> *&nbsp;</td>
          <td class="paramname"> <em>env</em></td><td>&nbsp;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td><td width="100%"><code> [read]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
Gets parent. Parent of a message context is of type operation context. <dl compact><dt><b>Parameters:</b></dt><dd>
  <table border="0" cellspacing="2" cellpadding="0">
    <tr><td valign="top"></td><td valign="top"><em>msg_ctx</em>&nbsp;</td><td>message context </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>env</em>&nbsp;</td><td>pointer to environment struct </td></tr>
  </table>
</dl>
<dl class="return" compact><dt><b>Returns:</b></dt><dd>pointer to operation context which is the parent </dd></dl>

</div>
</div><p>
<a class="anchor" name="g3fb1000ba8d6fb99b8f443ec4b9804f8"></a><!-- doxytag: member="axis2_msg_ctx.h::axis2_msg_ctx_get_paused" ref="g3fb1000ba8d6fb99b8f443ec4b9804f8" args="(const axis2_msg_ctx_t *msg_ctx, const axutil_env_t *env)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">AXIS2_EXTERN axis2_bool_t axis2_msg_ctx_get_paused           </td>
          <td>(</td>
          <td class="paramtype">const <a class="el" href="group__axis2__msg__ctx.html#g160acae289ac39cb49fa625ffd88e410">axis2_msg_ctx_t</a> *&nbsp;</td>
          <td class="paramname"> <em>msg_ctx</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const <a class="el" href="structaxutil__env.html">axutil_env_t</a> *&nbsp;</td>
          <td class="paramname"> <em>env</em></td><td>&nbsp;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td><td width="100%"></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
Gets the bool value indicating the paused status. It is possible to pause the engine invocation by any handler. By calling this method one can find out if some handler has paused the invocation. <dl compact><dt><b>Parameters:</b></dt><dd>
  <table border="0" cellspacing="2" cellpadding="0">
    <tr><td valign="top"></td><td valign="top"><em>msg_ctx</em>&nbsp;</td><td>message context </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>env</em>&nbsp;</td><td>pointer to environment struct </td></tr>
  </table>
</dl>
<dl class="return" compact><dt><b>Returns:</b></dt><dd>AXIS2_TRUE if message context is paused, else AXIS2_FALSE </dd></dl>

</div>
</div><p>
<a class="anchor" name="gfa296d96971800a761b97537f07aad1e"></a><!-- doxytag: member="axis2_msg_ctx.h::axis2_msg_ctx_get_paused_handler_index" ref="gfa296d96971800a761b97537f07aad1e" args="(const axis2_msg_ctx_t *msg_ctx, const axutil_env_t *env)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">AXIS2_EXTERN int axis2_msg_ctx_get_paused_handler_index           </td>
          <td>(</td>
          <td class="paramtype">const <a class="el" href="group__axis2__msg__ctx.html#g160acae289ac39cb49fa625ffd88e410">axis2_msg_ctx_t</a> *&nbsp;</td>
          <td class="paramname"> <em>msg_ctx</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const <a class="el" href="structaxutil__env.html">axutil_env_t</a> *&nbsp;</td>
          <td class="paramname"> <em>env</em></td><td>&nbsp;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td><td width="100%"></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
Gets paused handler index, indicating at which handler the execution chain was paused. <dl compact><dt><b>Parameters:</b></dt><dd>
  <table border="0" cellspacing="2" cellpadding="0">
    <tr><td valign="top"></td><td valign="top"><em>msg_ctx</em>&nbsp;</td><td>message context </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>env</em>&nbsp;</td><td>pointer to environment struct </td></tr>
  </table>
</dl>
<dl class="return" compact><dt><b>Returns:</b></dt><dd>index of handler at which invocation was paused </dd></dl>

</div>
</div><p>
<a class="anchor" name="g366fd625ade004c3f9d144cd5544d5be"></a><!-- doxytag: member="axis2_msg_ctx.h::axis2_msg_ctx_get_paused_handler_name" ref="g366fd625ade004c3f9d144cd5544d5be" args="(const axis2_msg_ctx_t *msg_ctx, const axutil_env_t *env)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">AXIS2_EXTERN const axutil_string_t* axis2_msg_ctx_get_paused_handler_name           </td>
          <td>(</td>
          <td class="paramtype">const <a class="el" href="group__axis2__msg__ctx.html#g160acae289ac39cb49fa625ffd88e410">axis2_msg_ctx_t</a> *&nbsp;</td>
          <td class="paramname"> <em>msg_ctx</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const <a class="el" href="structaxutil__env.html">axutil_env_t</a> *&nbsp;</td>
          <td class="paramname"> <em>env</em></td><td>&nbsp;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td><td width="100%"></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
Gets the QName of the handler at which invocation was paused. <dl compact><dt><b>Parameters:</b></dt><dd>
  <table border="0" cellspacing="2" cellpadding="0">
    <tr><td valign="top"></td><td valign="top"><em>msg_ctx</em>&nbsp;</td><td>message context </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>env</em>&nbsp;</td><td>pointer to environment struct </td></tr>
  </table>
</dl>
<dl class="return" compact><dt><b>Returns:</b></dt><dd>pointer to QName of the paused handler </dd></dl>

</div>
</div><p>
<a class="anchor" name="ge9096fd622018cf004f072ae25d81d8c"></a><!-- doxytag: member="axis2_msg_ctx.h::axis2_msg_ctx_get_paused_phase_index" ref="ge9096fd622018cf004f072ae25d81d8c" args="(const axis2_msg_ctx_t *msg_ctx, const axutil_env_t *env)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">AXIS2_EXTERN int axis2_msg_ctx_get_paused_phase_index           </td>
          <td>(</td>
          <td class="paramtype">const <a class="el" href="group__axis2__msg__ctx.html#g160acae289ac39cb49fa625ffd88e410">axis2_msg_ctx_t</a> *&nbsp;</td>
          <td class="paramname"> <em>msg_ctx</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const <a class="el" href="structaxutil__env.html">axutil_env_t</a> *&nbsp;</td>
          <td class="paramname"> <em>env</em></td><td>&nbsp;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td><td width="100%"></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
Gets the phase at which the invocation was paused. <dl compact><dt><b>Parameters:</b></dt><dd>
  <table border="0" cellspacing="2" cellpadding="0">
    <tr><td valign="top"></td><td valign="top"><em>msg_ctx</em>&nbsp;</td><td>message context </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>env</em>&nbsp;</td><td>pointer to environment struct </td></tr>
  </table>
</dl>
<dl class="return" compact><dt><b>Returns:</b></dt><dd>index of paused phase </dd></dl>

</div>
</div><p>
<a class="anchor" name="gbbca92a3ca5b7eb586b3bcb55eb3589b"></a><!-- doxytag: member="axis2_msg_ctx.h::axis2_msg_ctx_get_paused_phase_name" ref="gbbca92a3ca5b7eb586b3bcb55eb3589b" args="(const axis2_msg_ctx_t *msg_ctx, const axutil_env_t *env)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">AXIS2_EXTERN const axis2_char_t* axis2_msg_ctx_get_paused_phase_name           </td>
          <td>(</td>
          <td class="paramtype">const <a class="el" href="group__axis2__msg__ctx.html#g160acae289ac39cb49fa625ffd88e410">axis2_msg_ctx_t</a> *&nbsp;</td>
          <td class="paramname"> <em>msg_ctx</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const <a class="el" href="structaxutil__env.html">axutil_env_t</a> *&nbsp;</td>
          <td class="paramname"> <em>env</em></td><td>&nbsp;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td><td width="100%"></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
Gets the name of the phase at which the invocation was paused. <dl compact><dt><b>Parameters:</b></dt><dd>
  <table border="0" cellspacing="2" cellpadding="0">
    <tr><td valign="top"></td><td valign="top"><em>msg_ctx</em>&nbsp;</td><td>message context </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>env</em>&nbsp;</td><td>pointer to environment struct </td></tr>
  </table>
</dl>
<dl class="return" compact><dt><b>Returns:</b></dt><dd>name string of the paused phase. </dd></dl>

</div>
</div><p>
<a class="anchor" name="g16845c84b066ba612fd26340de37a842"></a><!-- doxytag: member="axis2_msg_ctx.h::axis2_msg_ctx_get_process_fault" ref="g16845c84b066ba612fd26340de37a842" args="(const axis2_msg_ctx_t *msg_ctx, const axutil_env_t *env)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">AXIS2_EXTERN axis2_bool_t axis2_msg_ctx_get_process_fault           </td>
          <td>(</td>
          <td class="paramtype">const <a class="el" href="group__axis2__msg__ctx.html#g160acae289ac39cb49fa625ffd88e410">axis2_msg_ctx_t</a> *&nbsp;</td>
          <td class="paramname"> <em>msg_ctx</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const <a class="el" href="structaxutil__env.html">axutil_env_t</a> *&nbsp;</td>
          <td class="paramname"> <em>env</em></td><td>&nbsp;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td><td width="100%"></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
Gets process fault status. <dl compact><dt><b>Parameters:</b></dt><dd>
  <table border="0" cellspacing="2" cellpadding="0">
    <tr><td valign="top"></td><td valign="top"><em>msg_ctx</em>&nbsp;</td><td>message context </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>env</em>&nbsp;</td><td>pointer to environment struct </td></tr>
  </table>
</dl>
<dl class="return" compact><dt><b>Returns:</b></dt><dd>AXIS2_TRUE if process fault is on, else AXIS2_FALSE </dd></dl>

</div>
</div><p>
<a class="anchor" name="gb16fd5cd1ee2c9ad86c08529d2194fd4"></a><!-- doxytag: member="axis2_msg_ctx.h::axis2_msg_ctx_get_property" ref="gb16fd5cd1ee2c9ad86c08529d2194fd4" args="(const axis2_msg_ctx_t *msg_ctx, const axutil_env_t *env, const axis2_char_t *key)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">AXIS2_EXTERN axutil_property_t* axis2_msg_ctx_get_property           </td>
          <td>(</td>
          <td class="paramtype">const <a class="el" href="group__axis2__msg__ctx.html#g160acae289ac39cb49fa625ffd88e410">axis2_msg_ctx_t</a> *&nbsp;</td>
          <td class="paramname"> <em>msg_ctx</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const <a class="el" href="structaxutil__env.html">axutil_env_t</a> *&nbsp;</td>
          <td class="paramname"> <em>env</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const axis2_char_t *&nbsp;</td>
          <td class="paramname"> <em>key</em></td><td>&nbsp;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td><td width="100%"></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
Gets property corresponding to the given key. <dl compact><dt><b>Parameters:</b></dt><dd>
  <table border="0" cellspacing="2" cellpadding="0">
    <tr><td valign="top"></td><td valign="top"><em>msg_ctx</em>&nbsp;</td><td>pointer to message context </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>env</em>&nbsp;</td><td>pointer to environment struct </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>key</em>&nbsp;</td><td>key string with which the property is stored </td></tr>
  </table>
</dl>
<dl class="return" compact><dt><b>Returns:</b></dt><dd>pointer to property struct </dd></dl>

</div>
</div><p>
<a class="anchor" name="g1cf9c2fd4213e497c0b51ddaa4742d34"></a><!-- doxytag: member="axis2_msg_ctx.h::axis2_msg_ctx_get_property_value" ref="g1cf9c2fd4213e497c0b51ddaa4742d34" args="(axis2_msg_ctx_t *msg_ctx, const axutil_env_t *env, const axis2_char_t *property_str)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">AXIS2_EXTERN void* axis2_msg_ctx_get_property_value           </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="group__axis2__msg__ctx.html#g160acae289ac39cb49fa625ffd88e410">axis2_msg_ctx_t</a> *&nbsp;</td>
          <td class="paramname"> <em>msg_ctx</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const <a class="el" href="structaxutil__env.html">axutil_env_t</a> *&nbsp;</td>
          <td class="paramname"> <em>env</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const axis2_char_t *&nbsp;</td>
          <td class="paramname"> <em>property_str</em></td><td>&nbsp;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td><td width="100%"></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
Gets property value corresponding to the property given key. <dl compact><dt><b>Parameters:</b></dt><dd>
  <table border="0" cellspacing="2" cellpadding="0">
    <tr><td valign="top"></td><td valign="top"><em>msg_ctx</em>&nbsp;</td><td>pointer to message context </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>env</em>&nbsp;</td><td>pointer to environment struct </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>property_str</em>&nbsp;</td><td>key string with which the property is stored </td></tr>
  </table>
</dl>
<dl class="return" compact><dt><b>Returns:</b></dt><dd>pointer to property struct </dd></dl>

</div>
</div><p>
<a class="anchor" name="gc3000334e5eaaaef9bb6f6cc610e463b"></a><!-- doxytag: member="axis2_msg_ctx.h::axis2_msg_ctx_get_relates_to" ref="gc3000334e5eaaaef9bb6f6cc610e463b" args="(const axis2_msg_ctx_t *msg_ctx, const axutil_env_t *env)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">AXIS2_EXTERN <a class="el" href="group__axis2__relates__to.html#gd92fd7b0e63b44c6343db15b61aeba45">axis2_relates_to_t</a>* axis2_msg_ctx_get_relates_to           </td>
          <td>(</td>
          <td class="paramtype">const <a class="el" href="group__axis2__msg__ctx.html#g160acae289ac39cb49fa625ffd88e410">axis2_msg_ctx_t</a> *&nbsp;</td>
          <td class="paramname"> <em>msg_ctx</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const <a class="el" href="structaxutil__env.html">axutil_env_t</a> *&nbsp;</td>
          <td class="paramname"> <em>env</em></td><td>&nbsp;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td><td width="100%"></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
Gets relates to information for the message context. <dl compact><dt><b>Parameters:</b></dt><dd>
  <table border="0" cellspacing="2" cellpadding="0">
    <tr><td valign="top"></td><td valign="top"><em>msg_ctx</em>&nbsp;</td><td>message context </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>env</em>&nbsp;</td><td>pointer to environment struct </td></tr>
  </table>
</dl>
<dl class="return" compact><dt><b>Returns:</b></dt><dd>pointer to relates to struct </dd></dl>

</div>
</div><p>
<a class="anchor" name="g8a54ba62dbb7097616ac384a9d731163"></a><!-- doxytag: member="axis2_msg_ctx.h::axis2_msg_ctx_get_reply_to" ref="g8a54ba62dbb7097616ac384a9d731163" args="(const axis2_msg_ctx_t *msg_ctx, const axutil_env_t *env)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">AXIS2_EXTERN <a class="el" href="group__axis2__endpoint__ref.html#gf6e89c83a6b553e7e3f11e787b3fecd4">axis2_endpoint_ref_t</a>* axis2_msg_ctx_get_reply_to           </td>
          <td>(</td>
          <td class="paramtype">const <a class="el" href="group__axis2__msg__ctx.html#g160acae289ac39cb49fa625ffd88e410">axis2_msg_ctx_t</a> *&nbsp;</td>
          <td class="paramname"> <em>msg_ctx</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const <a class="el" href="structaxutil__env.html">axutil_env_t</a> *&nbsp;</td>
          <td class="paramname"> <em>env</em></td><td>&nbsp;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td><td width="100%"></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
Gets WS-Addressing reply to endpoint. Reply to address tells where the the response should be sent to. <dl compact><dt><b>Parameters:</b></dt><dd>
  <table border="0" cellspacing="2" cellpadding="0">
    <tr><td valign="top"></td><td valign="top"><em>msg_ctx</em>&nbsp;</td><td>message context </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>env</em>&nbsp;</td><td>pointer to environment struct </td></tr>
  </table>
</dl>
<dl class="return" compact><dt><b>Returns:</b></dt><dd>pointer to endpoint reference struct representing the reply to address, returns a reference not a cloned copy </dd></dl>

</div>
</div><p>
<a class="anchor" name="g6b79cdeb28ab6632c0d4d3300b4ca478"></a><!-- doxytag: member="axis2_msg_ctx.h::axis2_msg_ctx_get_required_auth_is_http" ref="g6b79cdeb28ab6632c0d4d3300b4ca478" args="(axis2_msg_ctx_t *msg_ctx, const axutil_env_t *env)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">AXIS2_EXTERN axis2_bool_t axis2_msg_ctx_get_required_auth_is_http           </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="group__axis2__msg__ctx.html#g160acae289ac39cb49fa625ffd88e410">axis2_msg_ctx_t</a> *&nbsp;</td>
          <td class="paramname"> <em>msg_ctx</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const <a class="el" href="structaxutil__env.html">axutil_env_t</a> *&nbsp;</td>
          <td class="paramname"> <em>env</em></td><td>&nbsp;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td><td width="100%"></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
Gets whether HTTP Authentication is required or whether Proxy Authentication is required <dl compact><dt><b>Parameters:</b></dt><dd>
  <table border="0" cellspacing="2" cellpadding="0">
    <tr><td valign="top"></td><td valign="top"><em>msg_ctx</em>&nbsp;</td><td>message context </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>env</em>&nbsp;</td><td>pointer to environment struct </td></tr>
  </table>
</dl>
<dl class="return" compact><dt><b>Returns:</b></dt><dd>returns AXIS2_TRUE for HTTP Authentication and AXIS2_FALSE for Proxy Authentication </dd></dl>

</div>
</div><p>
<a class="anchor" name="g6430b72e8f0d297545d5c77dbde13f88"></a><!-- doxytag: member="axis2_msg_ctx.h::axis2_msg_ctx_get_response_soap_envelope" ref="g6430b72e8f0d297545d5c77dbde13f88" args="(const axis2_msg_ctx_t *msg_ctx, const axutil_env_t *env)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">AXIS2_EXTERN struct axiom_soap_envelope* axis2_msg_ctx_get_response_soap_envelope           </td>
          <td>(</td>
          <td class="paramtype">const <a class="el" href="group__axis2__msg__ctx.html#g160acae289ac39cb49fa625ffd88e410">axis2_msg_ctx_t</a> *&nbsp;</td>
          <td class="paramname"> <em>msg_ctx</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const <a class="el" href="structaxutil__env.html">axutil_env_t</a> *&nbsp;</td>
          <td class="paramname"> <em>env</em></td><td>&nbsp;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td><td width="100%"><code> [read]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
Gets the SOAP envelope of the response. <dl compact><dt><b>Parameters:</b></dt><dd>
  <table border="0" cellspacing="2" cellpadding="0">
    <tr><td valign="top"></td><td valign="top"><em>msg_ctx</em>&nbsp;</td><td>message context </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>env</em>&nbsp;</td><td>pointer to environment struct </td></tr>
  </table>
</dl>
<dl class="return" compact><dt><b>Returns:</b></dt><dd>pointer to response SOAP envelope stored within message context </dd></dl>

</div>
</div><p>
<a class="anchor" name="g04e668915c0d36e60757110e446b6c94"></a><!-- doxytag: member="axis2_msg_ctx.h::axis2_msg_ctx_get_rest_http_method" ref="g04e668915c0d36e60757110e446b6c94" args="(const axis2_msg_ctx_t *msg_ctx, const axutil_env_t *env)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">AXIS2_EXTERN const axis2_char_t* axis2_msg_ctx_get_rest_http_method           </td>
          <td>(</td>
          <td class="paramtype">const <a class="el" href="group__axis2__msg__ctx.html#g160acae289ac39cb49fa625ffd88e410">axis2_msg_ctx_t</a> *&nbsp;</td>
          <td class="paramname"> <em>msg_ctx</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const <a class="el" href="structaxutil__env.html">axutil_env_t</a> *&nbsp;</td>
          <td class="paramname"> <em>env</em></td><td>&nbsp;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td><td width="100%"></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
Gets the HTTP Method that relates to the service that is related to the message context. <dl compact><dt><b>Parameters:</b></dt><dd>
  <table border="0" cellspacing="2" cellpadding="0">
    <tr><td valign="top"></td><td valign="top"><em>msg_ctx</em>&nbsp;</td><td>message context </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>env</em>&nbsp;</td><td>pointer to environment struct </td></tr>
  </table>
</dl>
<dl class="return" compact><dt><b>Returns:</b></dt><dd>HTTP Method string, returns a reference, not a cloned copy </dd></dl>

</div>
</div><p>
<a class="anchor" name="g644ee3f4d6e47f63cb1f3388db52f723"></a><!-- doxytag: member="axis2_msg_ctx.h::axis2_msg_ctx_get_server_side" ref="g644ee3f4d6e47f63cb1f3388db52f723" args="(const axis2_msg_ctx_t *msg_ctx, const axutil_env_t *env)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">AXIS2_EXTERN axis2_bool_t axis2_msg_ctx_get_server_side           </td>
          <td>(</td>
          <td class="paramtype">const <a class="el" href="group__axis2__msg__ctx.html#g160acae289ac39cb49fa625ffd88e410">axis2_msg_ctx_t</a> *&nbsp;</td>
          <td class="paramname"> <em>msg_ctx</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const <a class="el" href="structaxutil__env.html">axutil_env_t</a> *&nbsp;</td>
          <td class="paramname"> <em>env</em></td><td>&nbsp;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td><td width="100%"></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
Checks if it is on the server side that the message is being dealt with, or on the client side. <dl compact><dt><b>Parameters:</b></dt><dd>
  <table border="0" cellspacing="2" cellpadding="0">
    <tr><td valign="top"></td><td valign="top"><em>msg_ctx</em>&nbsp;</td><td>message context </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>env</em>&nbsp;</td><td>pointer to environment struct </td></tr>
  </table>
</dl>
<dl class="return" compact><dt><b>Returns:</b></dt><dd>AXIS2_TRUE if it is server side, AXIS2_FALSE if it is client side </dd></dl>

</div>
</div><p>
<a class="anchor" name="g08e437e115186c445459c16088afd023"></a><!-- doxytag: member="axis2_msg_ctx.h::axis2_msg_ctx_get_soap_action" ref="g08e437e115186c445459c16088afd023" args="(const axis2_msg_ctx_t *msg_ctx, const axutil_env_t *env)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">AXIS2_EXTERN axutil_string_t* axis2_msg_ctx_get_soap_action           </td>
          <td>(</td>
          <td class="paramtype">const <a class="el" href="group__axis2__msg__ctx.html#g160acae289ac39cb49fa625ffd88e410">axis2_msg_ctx_t</a> *&nbsp;</td>
          <td class="paramname"> <em>msg_ctx</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const <a class="el" href="structaxutil__env.html">axutil_env_t</a> *&nbsp;</td>
          <td class="paramname"> <em>env</em></td><td>&nbsp;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td><td width="100%"></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
Gets SOAP action. <dl compact><dt><b>Parameters:</b></dt><dd>
  <table border="0" cellspacing="2" cellpadding="0">
    <tr><td valign="top"></td><td valign="top"><em>msg_ctx</em>&nbsp;</td><td>message context </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>env</em>&nbsp;</td><td>pointer to environment struct </td></tr>
  </table>
</dl>
<dl class="return" compact><dt><b>Returns:</b></dt><dd>SOAP action string </dd></dl>

</div>
</div><p>
<a class="anchor" name="g6cc0c3db53e071721b027ec89d0bbc23"></a><!-- doxytag: member="axis2_msg_ctx.h::axis2_msg_ctx_get_soap_envelope" ref="g6cc0c3db53e071721b027ec89d0bbc23" args="(const axis2_msg_ctx_t *msg_ctx, const axutil_env_t *env)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">AXIS2_EXTERN struct axiom_soap_envelope* axis2_msg_ctx_get_soap_envelope           </td>
          <td>(</td>
          <td class="paramtype">const <a class="el" href="group__axis2__msg__ctx.html#g160acae289ac39cb49fa625ffd88e410">axis2_msg_ctx_t</a> *&nbsp;</td>
          <td class="paramname"> <em>msg_ctx</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const <a class="el" href="structaxutil__env.html">axutil_env_t</a> *&nbsp;</td>
          <td class="paramname"> <em>env</em></td><td>&nbsp;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td><td width="100%"><code> [read]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
Gets the SOAP envelope. This SOAP envelope could be either request SOAP envelope or the response SOAP envelope, based on the state the message context is in. <dl compact><dt><b>Parameters:</b></dt><dd>
  <table border="0" cellspacing="2" cellpadding="0">
    <tr><td valign="top"></td><td valign="top"><em>msg_ctx</em>&nbsp;</td><td>message context </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>env</em>&nbsp;</td><td>pointer to environment struct </td></tr>
  </table>
</dl>
<dl class="return" compact><dt><b>Returns:</b></dt><dd>pointer to SOAP envelope stored within message context </dd></dl>

</div>
</div><p>
<a class="anchor" name="g6f928344dc07a6808c1d7a5365e26e86"></a><!-- doxytag: member="axis2_msg_ctx.h::axis2_msg_ctx_get_status_code" ref="g6f928344dc07a6808c1d7a5365e26e86" args="(axis2_msg_ctx_t *msg_ctx, const axutil_env_t *env)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">AXIS2_EXTERN int axis2_msg_ctx_get_status_code           </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="group__axis2__msg__ctx.html#g160acae289ac39cb49fa625ffd88e410">axis2_msg_ctx_t</a> *&nbsp;</td>
          <td class="paramname"> <em>msg_ctx</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const <a class="el" href="structaxutil__env.html">axutil_env_t</a> *&nbsp;</td>
          <td class="paramname"> <em>env</em></td><td>&nbsp;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td><td width="100%"></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
Gets the integer value indicating http status_code. <dl compact><dt><b>Parameters:</b></dt><dd>
  <table border="0" cellspacing="2" cellpadding="0">
    <tr><td valign="top"></td><td valign="top"><em>msg_ctx</em>&nbsp;</td><td>message context </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>env</em>&nbsp;</td><td>pointer to environment struct </td></tr>
  </table>
</dl>
<dl class="return" compact><dt><b>Returns:</b></dt><dd>status value </dd></dl>

</div>
</div><p>
<a class="anchor" name="ged338ca86cf608cac71350fb54a6e4f2"></a><!-- doxytag: member="axis2_msg_ctx.h::axis2_msg_ctx_get_supported_rest_http_methods" ref="ged338ca86cf608cac71350fb54a6e4f2" args="(const axis2_msg_ctx_t *msg_ctx, const axutil_env_t *env)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">AXIS2_EXTERN <a class="el" href="group__axutil__array__list.html#g1a6a89777db876cfa0cc86787b7be6a0">axutil_array_list_t</a>* axis2_msg_ctx_get_supported_rest_http_methods           </td>
          <td>(</td>
          <td class="paramtype">const <a class="el" href="group__axis2__msg__ctx.html#g160acae289ac39cb49fa625ffd88e410">axis2_msg_ctx_t</a> *&nbsp;</td>
          <td class="paramname"> <em>msg_ctx</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const <a class="el" href="structaxutil__env.html">axutil_env_t</a> *&nbsp;</td>
          <td class="paramname"> <em>env</em></td><td>&nbsp;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td><td width="100%"></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
Gets the list of supported REST HTTP Methods <dl compact><dt><b>Parameters:</b></dt><dd>
  <table border="0" cellspacing="2" cellpadding="0">
    <tr><td valign="top"></td><td valign="top"><em>msg_ctx</em>&nbsp;</td><td>message context </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>env</em>&nbsp;</td><td>pointer to environment struct </td></tr>
  </table>
</dl>
<dl class="return" compact><dt><b>Returns:</b></dt><dd>pointer array list containing the list of HTTP Methods supported. Message context does assumes the ownership of the array list </dd></dl>

</div>
</div><p>
<a class="anchor" name="gc8c3e9a503359dd12bf940580e659de3"></a><!-- doxytag: member="axis2_msg_ctx.h::axis2_msg_ctx_get_svc" ref="gc8c3e9a503359dd12bf940580e659de3" args="(const axis2_msg_ctx_t *msg_ctx, const axutil_env_t *env)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">AXIS2_EXTERN struct axis2_svc* axis2_msg_ctx_get_svc           </td>
          <td>(</td>
          <td class="paramtype">const <a class="el" href="group__axis2__msg__ctx.html#g160acae289ac39cb49fa625ffd88e410">axis2_msg_ctx_t</a> *&nbsp;</td>
          <td class="paramname"> <em>msg_ctx</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const <a class="el" href="structaxutil__env.html">axutil_env_t</a> *&nbsp;</td>
          <td class="paramname"> <em>env</em></td><td>&nbsp;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td><td width="100%"><code> [read]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
Gets the service to which the operation to be invoked belongs. <dl compact><dt><b>Parameters:</b></dt><dd>
  <table border="0" cellspacing="2" cellpadding="0">
    <tr><td valign="top"></td><td valign="top"><em>msg_ctx</em>&nbsp;</td><td>message context </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>env</em>&nbsp;</td><td>pointer to environment struct </td></tr>
  </table>
</dl>
<dl class="return" compact><dt><b>Returns:</b></dt><dd>pointer to service struct, returns a reference not a cloned copy </dd></dl>

</div>
</div><p>
<a class="anchor" name="g983409d62673569724c9bb4532c8465e"></a><!-- doxytag: member="axis2_msg_ctx.h::axis2_msg_ctx_get_svc_ctx" ref="g983409d62673569724c9bb4532c8465e" args="(const axis2_msg_ctx_t *msg_ctx, const axutil_env_t *env)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">AXIS2_EXTERN struct axis2_svc_ctx* axis2_msg_ctx_get_svc_ctx           </td>
          <td>(</td>
          <td class="paramtype">const <a class="el" href="group__axis2__msg__ctx.html#g160acae289ac39cb49fa625ffd88e410">axis2_msg_ctx_t</a> *&nbsp;</td>
          <td class="paramname"> <em>msg_ctx</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const <a class="el" href="structaxutil__env.html">axutil_env_t</a> *&nbsp;</td>
          <td class="paramname"> <em>env</em></td><td>&nbsp;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td><td width="100%"><code> [read]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
Gets service context that relates to the service that the message context is related to. <dl compact><dt><b>Parameters:</b></dt><dd>
  <table border="0" cellspacing="2" cellpadding="0">
    <tr><td valign="top"></td><td valign="top"><em>msg_ctx</em>&nbsp;</td><td>message context </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>env</em>&nbsp;</td><td>pointer to environment struct </td></tr>
  </table>
</dl>
<dl class="return" compact><dt><b>Returns:</b></dt><dd>pointer to message context struct </dd></dl>

</div>
</div><p>
<a class="anchor" name="ga015e6d25bffee86c4f258077da21a57"></a><!-- doxytag: member="axis2_msg_ctx.h::axis2_msg_ctx_get_svc_ctx_id" ref="ga015e6d25bffee86c4f258077da21a57" args="(const axis2_msg_ctx_t *msg_ctx, const axutil_env_t *env)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">AXIS2_EXTERN const axis2_char_t* axis2_msg_ctx_get_svc_ctx_id           </td>
          <td>(</td>
          <td class="paramtype">const <a class="el" href="group__axis2__msg__ctx.html#g160acae289ac39cb49fa625ffd88e410">axis2_msg_ctx_t</a> *&nbsp;</td>
          <td class="paramname"> <em>msg_ctx</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const <a class="el" href="structaxutil__env.html">axutil_env_t</a> *&nbsp;</td>
          <td class="paramname"> <em>env</em></td><td>&nbsp;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td><td width="100%"></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
Gets the ID of service context that relates to the service that is related to the message context. <dl compact><dt><b>Parameters:</b></dt><dd>
  <table border="0" cellspacing="2" cellpadding="0">
    <tr><td valign="top"></td><td valign="top"><em>msg_ctx</em>&nbsp;</td><td>message context </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>env</em>&nbsp;</td><td>pointer to environment struct </td></tr>
  </table>
</dl>
<dl class="return" compact><dt><b>Returns:</b></dt><dd>service context ID string </dd></dl>

</div>
</div><p>
<a class="anchor" name="gb891cdde11906cc42a250459516acc8c"></a><!-- doxytag: member="axis2_msg_ctx.h::axis2_msg_ctx_get_svc_grp" ref="gb891cdde11906cc42a250459516acc8c" args="(const axis2_msg_ctx_t *msg_ctx, const axutil_env_t *env)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">AXIS2_EXTERN struct axis2_svc_grp* axis2_msg_ctx_get_svc_grp           </td>
          <td>(</td>
          <td class="paramtype">const <a class="el" href="group__axis2__msg__ctx.html#g160acae289ac39cb49fa625ffd88e410">axis2_msg_ctx_t</a> *&nbsp;</td>
          <td class="paramname"> <em>msg_ctx</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const <a class="el" href="structaxutil__env.html">axutil_env_t</a> *&nbsp;</td>
          <td class="paramname"> <em>env</em></td><td>&nbsp;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td><td width="100%"><code> [read]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
Gets the service group to which the service to be invoked belongs. <dl compact><dt><b>Parameters:</b></dt><dd>
  <table border="0" cellspacing="2" cellpadding="0">
    <tr><td valign="top"></td><td valign="top"><em>msg_ctx</em>&nbsp;</td><td>message context </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>env</em>&nbsp;</td><td>pointer to environment struct </td></tr>
  </table>
</dl>
<dl class="return" compact><dt><b>Returns:</b></dt><dd>pointer to service group struct, returns a reference not a cloned copy </dd></dl>

</div>
</div><p>
<a class="anchor" name="gb226c5f347f50990837307de37b2c874"></a><!-- doxytag: member="axis2_msg_ctx.h::axis2_msg_ctx_get_svc_grp_ctx" ref="gb226c5f347f50990837307de37b2c874" args="(const axis2_msg_ctx_t *msg_ctx, const axutil_env_t *env)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">AXIS2_EXTERN struct axis2_svc_grp_ctx* axis2_msg_ctx_get_svc_grp_ctx           </td>
          <td>(</td>
          <td class="paramtype">const <a class="el" href="group__axis2__msg__ctx.html#g160acae289ac39cb49fa625ffd88e410">axis2_msg_ctx_t</a> *&nbsp;</td>
          <td class="paramname"> <em>msg_ctx</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const <a class="el" href="structaxutil__env.html">axutil_env_t</a> *&nbsp;</td>
          <td class="paramname"> <em>env</em></td><td>&nbsp;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td><td width="100%"><code> [read]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
Gets service group context. The returned service group context relates to the service group to which the service, related to the message context, belongs. <dl compact><dt><b>Parameters:</b></dt><dd>
  <table border="0" cellspacing="2" cellpadding="0">
    <tr><td valign="top"></td><td valign="top"><em>msg_ctx</em>&nbsp;</td><td>message context </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>env</em>&nbsp;</td><td>pointer to environment struct </td></tr>
  </table>
</dl>
<dl class="return" compact><dt><b>Returns:</b></dt><dd>pointer to service group struct </dd></dl>

</div>
</div><p>
<a class="anchor" name="g63cef8dc5b5bdba03c1d738594fed173"></a><!-- doxytag: member="axis2_msg_ctx.h::axis2_msg_ctx_get_svc_grp_ctx_id" ref="g63cef8dc5b5bdba03c1d738594fed173" args="(const axis2_msg_ctx_t *msg_ctx, const axutil_env_t *env)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">AXIS2_EXTERN const axutil_string_t* axis2_msg_ctx_get_svc_grp_ctx_id           </td>
          <td>(</td>
          <td class="paramtype">const <a class="el" href="group__axis2__msg__ctx.html#g160acae289ac39cb49fa625ffd88e410">axis2_msg_ctx_t</a> *&nbsp;</td>
          <td class="paramname"> <em>msg_ctx</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const <a class="el" href="structaxutil__env.html">axutil_env_t</a> *&nbsp;</td>
          <td class="paramname"> <em>env</em></td><td>&nbsp;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td><td width="100%"></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
Gets the service group context ID. <dl compact><dt><b>Parameters:</b></dt><dd>
  <table border="0" cellspacing="2" cellpadding="0">
    <tr><td valign="top"></td><td valign="top"><em>msg_ctx</em>&nbsp;</td><td>message context </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>env</em>&nbsp;</td><td>pointer to environment struct </td></tr>
  </table>
</dl>
<dl class="return" compact><dt><b>Returns:</b></dt><dd>service group context ID string </dd></dl>

</div>
</div><p>
<a class="anchor" name="g4596067ca561b23abd8c277fff1ba686"></a><!-- doxytag: member="axis2_msg_ctx.h::axis2_msg_ctx_get_to" ref="g4596067ca561b23abd8c277fff1ba686" args="(const axis2_msg_ctx_t *msg_ctx, const axutil_env_t *env)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">AXIS2_EXTERN <a class="el" href="group__axis2__endpoint__ref.html#gf6e89c83a6b553e7e3f11e787b3fecd4">axis2_endpoint_ref_t</a>* axis2_msg_ctx_get_to           </td>
          <td>(</td>
          <td class="paramtype">const <a class="el" href="group__axis2__msg__ctx.html#g160acae289ac39cb49fa625ffd88e410">axis2_msg_ctx_t</a> *&nbsp;</td>
          <td class="paramname"> <em>msg_ctx</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const <a class="el" href="structaxutil__env.html">axutil_env_t</a> *&nbsp;</td>
          <td class="paramname"> <em>env</em></td><td>&nbsp;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td><td width="100%"></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
Gets WS-Addressing to endpoint. To address tells where message should be sent to. <dl compact><dt><b>Parameters:</b></dt><dd>
  <table border="0" cellspacing="2" cellpadding="0">
    <tr><td valign="top"></td><td valign="top"><em>msg_ctx</em>&nbsp;</td><td>message context </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>env</em>&nbsp;</td><td>pointer to environment struct </td></tr>
  </table>
</dl>
<dl class="return" compact><dt><b>Returns:</b></dt><dd>pointer to endpoint reference struct representing the to address, returns a reference not a cloned copy </dd></dl>

</div>
</div><p>
<a class="anchor" name="g8b44e1813cdfd69b216cf6bfccba9c25"></a><!-- doxytag: member="axis2_msg_ctx.h::axis2_msg_ctx_get_transfer_encoding" ref="g8b44e1813cdfd69b216cf6bfccba9c25" args="(axis2_msg_ctx_t *msg_ctx, const axutil_env_t *env)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">AXIS2_EXTERN axis2_char_t* axis2_msg_ctx_get_transfer_encoding           </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="group__axis2__msg__ctx.html#g160acae289ac39cb49fa625ffd88e410">axis2_msg_ctx_t</a> *&nbsp;</td>
          <td class="paramname"> <em>msg_ctx</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const <a class="el" href="structaxutil__env.html">axutil_env_t</a> *&nbsp;</td>
          <td class="paramname"> <em>env</em></td><td>&nbsp;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td><td width="100%"></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
Gets the transfer encoding used <dl compact><dt><b>Parameters:</b></dt><dd>
  <table border="0" cellspacing="2" cellpadding="0">
    <tr><td valign="top"></td><td valign="top"><em>msg_ctx</em>&nbsp;</td><td>message context </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>env</em>&nbsp;</td><td>pointer to environment struct </td></tr>
  </table>
</dl>
<dl class="return" compact><dt><b>Returns:</b></dt><dd>Transfer encoding string </dd></dl>

</div>
</div><p>
<a class="anchor" name="gd5c47f45b9d568dc1961ddf283f44b85"></a><!-- doxytag: member="axis2_msg_ctx.h::axis2_msg_ctx_get_transport_headers" ref="gd5c47f45b9d568dc1961ddf283f44b85" args="(axis2_msg_ctx_t *msg_ctx, const axutil_env_t *env)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">AXIS2_EXTERN <a class="el" href="group__axutil__hash.html#gb2d7d14db2de92a101573f44421ac12a">axutil_hash_t</a>* axis2_msg_ctx_get_transport_headers           </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="group__axis2__msg__ctx.html#g160acae289ac39cb49fa625ffd88e410">axis2_msg_ctx_t</a> *&nbsp;</td>
          <td class="paramname"> <em>msg_ctx</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const <a class="el" href="structaxutil__env.html">axutil_env_t</a> *&nbsp;</td>
          <td class="paramname"> <em>env</em></td><td>&nbsp;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td><td width="100%"></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
Retrieves Transport Headers. <dl compact><dt><b>Parameters:</b></dt><dd>
  <table border="0" cellspacing="2" cellpadding="0">
    <tr><td valign="top"></td><td valign="top"><em>msg_ctx</em>&nbsp;</td><td>message context </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>env</em>&nbsp;</td><td>pointer to environment struct </td></tr>
  </table>
</dl>
<dl class="return" compact><dt><b>Returns:</b></dt><dd>Transport Headers associated. </dd></dl>

</div>
</div><p>
<a class="anchor" name="gd45ce053de9a2aeb9fc0d5d103f7c73a"></a><!-- doxytag: member="axis2_msg_ctx.h::axis2_msg_ctx_get_transport_in_desc" ref="gd45ce053de9a2aeb9fc0d5d103f7c73a" args="(const axis2_msg_ctx_t *msg_ctx, const axutil_env_t *env)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">AXIS2_EXTERN struct axis2_transport_in_desc* axis2_msg_ctx_get_transport_in_desc           </td>
          <td>(</td>
          <td class="paramtype">const <a class="el" href="group__axis2__msg__ctx.html#g160acae289ac39cb49fa625ffd88e410">axis2_msg_ctx_t</a> *&nbsp;</td>
          <td class="paramname"> <em>msg_ctx</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const <a class="el" href="structaxutil__env.html">axutil_env_t</a> *&nbsp;</td>
          <td class="paramname"> <em>env</em></td><td>&nbsp;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td><td width="100%"><code> [read]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
Gets transport in description. <dl compact><dt><b>Parameters:</b></dt><dd>
  <table border="0" cellspacing="2" cellpadding="0">
    <tr><td valign="top"></td><td valign="top"><em>msg_ctx</em>&nbsp;</td><td>message context </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>env</em>&nbsp;</td><td>pointer to environment struct </td></tr>
  </table>
</dl>
<dl class="return" compact><dt><b>Returns:</b></dt><dd>pointer to transport in description struct, returns a reference not a cloned copy </dd></dl>

</div>
</div><p>
<a class="anchor" name="gb4f72089846618d10501bdb9e28f2e01"></a><!-- doxytag: member="axis2_msg_ctx.h::axis2_msg_ctx_get_transport_out_desc" ref="gb4f72089846618d10501bdb9e28f2e01" args="(const axis2_msg_ctx_t *msg_ctx, const axutil_env_t *env)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">AXIS2_EXTERN struct axis2_transport_out_desc* axis2_msg_ctx_get_transport_out_desc           </td>
          <td>(</td>
          <td class="paramtype">const <a class="el" href="group__axis2__msg__ctx.html#g160acae289ac39cb49fa625ffd88e410">axis2_msg_ctx_t</a> *&nbsp;</td>
          <td class="paramname"> <em>msg_ctx</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const <a class="el" href="structaxutil__env.html">axutil_env_t</a> *&nbsp;</td>
          <td class="paramname"> <em>env</em></td><td>&nbsp;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td><td width="100%"><code> [read]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
Gets transport out description. <dl compact><dt><b>Parameters:</b></dt><dd>
  <table border="0" cellspacing="2" cellpadding="0">
    <tr><td valign="top"></td><td valign="top"><em>msg_ctx</em>&nbsp;</td><td>message context </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>env</em>&nbsp;</td><td>pointer to environment struct </td></tr>
  </table>
</dl>
<dl class="return" compact><dt><b>Returns:</b></dt><dd>pointer to transport out description struct, returns a reference not a cloned copy </dd></dl>

</div>
</div><p>
<a class="anchor" name="g1537c848176093a8cdcc4f02721a052d"></a><!-- doxytag: member="axis2_msg_ctx.h::axis2_msg_ctx_get_transport_out_stream" ref="g1537c848176093a8cdcc4f02721a052d" args="(axis2_msg_ctx_t *msg_ctx, const axutil_env_t *env)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">AXIS2_EXTERN axutil_stream_t* axis2_msg_ctx_get_transport_out_stream           </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="group__axis2__msg__ctx.html#g160acae289ac39cb49fa625ffd88e410">axis2_msg_ctx_t</a> *&nbsp;</td>
          <td class="paramname"> <em>msg_ctx</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const <a class="el" href="structaxutil__env.html">axutil_env_t</a> *&nbsp;</td>
          <td class="paramname"> <em>env</em></td><td>&nbsp;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td><td width="100%"></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
Gets the Transport Out Stream <dl compact><dt><b>Parameters:</b></dt><dd>
  <table border="0" cellspacing="2" cellpadding="0">
    <tr><td valign="top"></td><td valign="top"><em>msg_ctx</em>&nbsp;</td><td>message context </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>env</em>&nbsp;</td><td>pointer to environment struct </td></tr>
  </table>
</dl>
<dl class="return" compact><dt><b>Returns:</b></dt><dd>reference to Transport Out Stream </dd></dl>

</div>
</div><p>
<a class="anchor" name="g62bab01718be9813dc0f5abc847df09c"></a><!-- doxytag: member="axis2_msg_ctx.h::axis2_msg_ctx_get_transport_url" ref="g62bab01718be9813dc0f5abc847df09c" args="(axis2_msg_ctx_t *msg_ctx, const axutil_env_t *env)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">AXIS2_EXTERN axis2_char_t* axis2_msg_ctx_get_transport_url           </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="group__axis2__msg__ctx.html#g160acae289ac39cb49fa625ffd88e410">axis2_msg_ctx_t</a> *&nbsp;</td>
          <td class="paramname"> <em>msg_ctx</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const <a class="el" href="structaxutil__env.html">axutil_env_t</a> *&nbsp;</td>
          <td class="paramname"> <em>env</em></td><td>&nbsp;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td><td width="100%"></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
Gets the Transport URL <dl compact><dt><b>Parameters:</b></dt><dd>
  <table border="0" cellspacing="2" cellpadding="0">
    <tr><td valign="top"></td><td valign="top"><em>msg_ctx</em>&nbsp;</td><td>message context </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>env</em>&nbsp;</td><td>pointer to environment struct </td></tr>
  </table>
</dl>
<dl class="return" compact><dt><b>Returns:</b></dt><dd>Transport URL string </dd></dl>

</div>
</div><p>
<a class="anchor" name="g0d5ac74951bdd09c0d78f30899390c2b"></a><!-- doxytag: member="axis2_msg_ctx.h::axis2_msg_ctx_get_wsa_action" ref="g0d5ac74951bdd09c0d78f30899390c2b" args="(const axis2_msg_ctx_t *msg_ctx, const axutil_env_t *env)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">AXIS2_EXTERN const axis2_char_t* axis2_msg_ctx_get_wsa_action           </td>
          <td>(</td>
          <td class="paramtype">const <a class="el" href="group__axis2__msg__ctx.html#g160acae289ac39cb49fa625ffd88e410">axis2_msg_ctx_t</a> *&nbsp;</td>
          <td class="paramname"> <em>msg_ctx</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const <a class="el" href="structaxutil__env.html">axutil_env_t</a> *&nbsp;</td>
          <td class="paramname"> <em>env</em></td><td>&nbsp;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td><td width="100%"></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
Gets WS-Addressing action. <dl compact><dt><b>Parameters:</b></dt><dd>
  <table border="0" cellspacing="2" cellpadding="0">
    <tr><td valign="top"></td><td valign="top"><em>msg_ctx</em>&nbsp;</td><td>message context </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>env</em>&nbsp;</td><td>pointer to environment struct </td></tr>
  </table>
</dl>
<dl class="return" compact><dt><b>Returns:</b></dt><dd>pointer to WSA action URI string </dd></dl>

</div>
</div><p>
<a class="anchor" name="g40829d63ca4fca04a39e3313ba840c6a"></a><!-- doxytag: member="axis2_msg_ctx.h::axis2_msg_ctx_get_wsa_message_id" ref="g40829d63ca4fca04a39e3313ba840c6a" args="(const axis2_msg_ctx_t *msg_ctx, const axutil_env_t *env)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">AXIS2_EXTERN const axis2_char_t* axis2_msg_ctx_get_wsa_message_id           </td>
          <td>(</td>
          <td class="paramtype">const <a class="el" href="group__axis2__msg__ctx.html#g160acae289ac39cb49fa625ffd88e410">axis2_msg_ctx_t</a> *&nbsp;</td>
          <td class="paramname"> <em>msg_ctx</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const <a class="el" href="structaxutil__env.html">axutil_env_t</a> *&nbsp;</td>
          <td class="paramname"> <em>env</em></td><td>&nbsp;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td><td width="100%"></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
Gets WS-Addressing message ID. <dl compact><dt><b>Parameters:</b></dt><dd>
  <table border="0" cellspacing="2" cellpadding="0">
    <tr><td valign="top"></td><td valign="top"><em>msg_ctx</em>&nbsp;</td><td>message context </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>env</em>&nbsp;</td><td>pointer to environment struct </td></tr>
  </table>
</dl>
<dl class="return" compact><dt><b>Returns:</b></dt><dd>WSA message ID string </dd></dl>

</div>
</div><p>
<a class="anchor" name="g88942393726b78bdb836462dd04aa6ba"></a><!-- doxytag: member="axis2_msg_ctx.h::axis2_msg_ctx_increment_ref" ref="g88942393726b78bdb836462dd04aa6ba" args="(axis2_msg_ctx_t *msg_ctx, const axutil_env_t *env)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">AXIS2_EXTERN axis2_status_t axis2_msg_ctx_increment_ref           </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="group__axis2__msg__ctx.html#g160acae289ac39cb49fa625ffd88e410">axis2_msg_ctx_t</a> *&nbsp;</td>
          <td class="paramname"> <em>msg_ctx</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const <a class="el" href="structaxutil__env.html">axutil_env_t</a> *&nbsp;</td>
          <td class="paramname"> <em>env</em></td><td>&nbsp;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td><td width="100%"></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
Incrementing the msg_ctx ref count. This is necessary when prevent freeing msg_ctx through op_client when it is in use as in sandesha2. <dl compact><dt><b>Parameters:</b></dt><dd>
  <table border="0" cellspacing="2" cellpadding="0">
    <tr><td valign="top"></td><td valign="top"><em>msg_ctx</em>&nbsp;</td><td>pointer to message context </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>env</em>&nbsp;</td><td>pointer to environment struct </td></tr>
  </table>
</dl>
<dl class="return" compact><dt><b>Returns:</b></dt><dd>AXIS2_TRUE if still in use, else AXIS2_FALSE </dd></dl>

</div>
</div><p>
<a class="anchor" name="g0287fe8763ddf42e505d6454d9912a2d"></a><!-- doxytag: member="axis2_msg_ctx.h::axis2_msg_ctx_init" ref="g0287fe8763ddf42e505d6454d9912a2d" args="(axis2_msg_ctx_t *msg_ctx, const axutil_env_t *env, struct axis2_conf *conf)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">AXIS2_EXTERN axis2_status_t axis2_msg_ctx_init           </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="group__axis2__msg__ctx.html#g160acae289ac39cb49fa625ffd88e410">axis2_msg_ctx_t</a> *&nbsp;</td>
          <td class="paramname"> <em>msg_ctx</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const <a class="el" href="structaxutil__env.html">axutil_env_t</a> *&nbsp;</td>
          <td class="paramname"> <em>env</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">struct axis2_conf *&nbsp;</td>
          <td class="paramname"> <em>conf</em></td><td>&nbsp;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td><td width="100%"></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
Initializes the message context. Based on the transport, service and operation qnames set on top of message context, correct instances of those struct instances would be extracted from configuration and set within message context. <dl compact><dt><b>Parameters:</b></dt><dd>
  <table border="0" cellspacing="2" cellpadding="0">
    <tr><td valign="top"></td><td valign="top"><em>msg_ctx</em>&nbsp;</td><td>message context </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>env</em>&nbsp;</td><td>pointer to environment struct </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>conf</em>&nbsp;</td><td>pointer to configuration </td></tr>
  </table>
</dl>
<dl class="return" compact><dt><b>Returns:</b></dt><dd>AXIS2_SUCCESS on success, else AXIS2_FAILURE </dd></dl>

</div>
</div><p>
<a class="anchor" name="gd087e49c05924aa5e1132d6ebce8f5c9"></a><!-- doxytag: member="axis2_msg_ctx.h::axis2_msg_ctx_is_keep_alive" ref="gd087e49c05924aa5e1132d6ebce8f5c9" args="(const axis2_msg_ctx_t *msg_ctx, const axutil_env_t *env)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">AXIS2_EXTERN axis2_bool_t axis2_msg_ctx_is_keep_alive           </td>
          <td>(</td>
          <td class="paramtype">const <a class="el" href="group__axis2__msg__ctx.html#g160acae289ac39cb49fa625ffd88e410">axis2_msg_ctx_t</a> *&nbsp;</td>
          <td class="paramname"> <em>msg_ctx</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const <a class="el" href="structaxutil__env.html">axutil_env_t</a> *&nbsp;</td>
          <td class="paramname"> <em>env</em></td><td>&nbsp;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td><td width="100%"></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
Gets the bool value indicating the keep alive status. It is possible to keep alive the message context by any handler. By calling this method one can see whether it is possible to clean the message context. <dl compact><dt><b>Parameters:</b></dt><dd>
  <table border="0" cellspacing="2" cellpadding="0">
    <tr><td valign="top"></td><td valign="top"><em>msg_ctx</em>&nbsp;</td><td>message context </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>env</em>&nbsp;</td><td>pointer to environment struct </td></tr>
  </table>
</dl>
<dl class="return" compact><dt><b>Returns:</b></dt><dd>AXIS2_TRUE if message context is keep alive, else AXIS2_FALSE </dd></dl>

</div>
</div><p>
<a class="anchor" name="g991577142c2a5c69df03c1c68c21834b"></a><!-- doxytag: member="axis2_msg_ctx.h::axis2_msg_ctx_is_paused" ref="g991577142c2a5c69df03c1c68c21834b" args="(axis2_msg_ctx_t *msg_ctx, const axutil_env_t *env)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">AXIS2_EXTERN axis2_bool_t axis2_msg_ctx_is_paused           </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="group__axis2__msg__ctx.html#g160acae289ac39cb49fa625ffd88e410">axis2_msg_ctx_t</a> *&nbsp;</td>
          <td class="paramname"> <em>msg_ctx</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const <a class="el" href="structaxutil__env.html">axutil_env_t</a> *&nbsp;</td>
          <td class="paramname"> <em>env</em></td><td>&nbsp;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td><td width="100%"></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
Gets the bool value indicating the paused status. <dl compact><dt><b>Parameters:</b></dt><dd>
  <table border="0" cellspacing="2" cellpadding="0">
    <tr><td valign="top"></td><td valign="top"><em>msg_ctx</em>&nbsp;</td><td>message context </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>env</em>&nbsp;</td><td>pointer to environment struct </td></tr>
  </table>
</dl>
<dl class="return" compact><dt><b>Returns:</b></dt><dd>AXIS2_TRUE if invocation is paused, else AXIS2_FALSE </dd></dl>

</div>
</div><p>
<a class="anchor" name="ga340eaf8ff86f9bc8324f9e082f8dfbe"></a><!-- doxytag: member="axis2_msg_ctx.h::axis2_msg_ctx_reset_out_transport_info" ref="ga340eaf8ff86f9bc8324f9e082f8dfbe" args="(axis2_msg_ctx_t *msg_ctx, const axutil_env_t *env)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">AXIS2_EXTERN axis2_status_t axis2_msg_ctx_reset_out_transport_info           </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="group__axis2__msg__ctx.html#g160acae289ac39cb49fa625ffd88e410">axis2_msg_ctx_t</a> *&nbsp;</td>
          <td class="paramname"> <em>msg_ctx</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const <a class="el" href="structaxutil__env.html">axutil_env_t</a> *&nbsp;</td>
          <td class="paramname"> <em>env</em></td><td>&nbsp;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td><td width="100%"></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
Resets the HTTP Out Transport Info associated <dl compact><dt><b>Parameters:</b></dt><dd>
  <table border="0" cellspacing="2" cellpadding="0">
    <tr><td valign="top"></td><td valign="top"><em>msg_ctx</em>&nbsp;</td><td>message context </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>env</em>&nbsp;</td><td>pointer to environment struct </td></tr>
  </table>
</dl>
<dl class="return" compact><dt><b>Returns:</b></dt><dd>AXIS2_SUCCESS on success, else AXIS2_FAILURE </dd></dl>

</div>
</div><p>
<a class="anchor" name="gb0006ce05885ace9a09c0841fe297fb7"></a><!-- doxytag: member="axis2_msg_ctx.h::axis2_msg_ctx_reset_transport_out_stream" ref="gb0006ce05885ace9a09c0841fe297fb7" args="(axis2_msg_ctx_t *msg_ctx, const axutil_env_t *env)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">AXIS2_EXTERN axis2_status_t axis2_msg_ctx_reset_transport_out_stream           </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="group__axis2__msg__ctx.html#g160acae289ac39cb49fa625ffd88e410">axis2_msg_ctx_t</a> *&nbsp;</td>
          <td class="paramname"> <em>msg_ctx</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const <a class="el" href="structaxutil__env.html">axutil_env_t</a> *&nbsp;</td>
          <td class="paramname"> <em>env</em></td><td>&nbsp;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td><td width="100%"></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
Resets Transport Out Stream <dl compact><dt><b>Parameters:</b></dt><dd>
  <table border="0" cellspacing="2" cellpadding="0">
    <tr><td valign="top"></td><td valign="top"><em>msg_ctx</em>&nbsp;</td><td>message context </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>env</em>&nbsp;</td><td>pointer to environment struct </td></tr>
  </table>
</dl>
<dl class="return" compact><dt><b>Returns:</b></dt><dd>AXIS2_SUCCESS on success, else AXIS2_FAILURE </dd></dl>

</div>
</div><p>
<a class="anchor" name="ge3e9e1cfad899c5f40249fa9d9d65d08"></a><!-- doxytag: member="axis2_msg_ctx.h::axis2_msg_ctx_set_auth_failed" ref="ge3e9e1cfad899c5f40249fa9d9d65d08" args="(axis2_msg_ctx_t *msg_ctx, const axutil_env_t *env, const axis2_bool_t status)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">AXIS2_EXTERN axis2_status_t axis2_msg_ctx_set_auth_failed           </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="group__axis2__msg__ctx.html#g160acae289ac39cb49fa625ffd88e410">axis2_msg_ctx_t</a> *&nbsp;</td>
          <td class="paramname"> <em>msg_ctx</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const <a class="el" href="structaxutil__env.html">axutil_env_t</a> *&nbsp;</td>
          <td class="paramname"> <em>env</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const axis2_bool_t&nbsp;</td>
          <td class="paramname"> <em>status</em></td><td>&nbsp;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td><td width="100%"></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
Sets whether an authentication failure occured <dl compact><dt><b>Parameters:</b></dt><dd>
  <table border="0" cellspacing="2" cellpadding="0">
    <tr><td valign="top"></td><td valign="top"><em>msg_ctx</em>&nbsp;</td><td>message context </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>env</em>&nbsp;</td><td>pointer to environment struct </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>status</em>&nbsp;</td><td>expects AXIS2_TRUE if an authentication failure occured or AXIS2_FALSE if not </td></tr>
  </table>
</dl>
<dl class="return" compact><dt><b>Returns:</b></dt><dd>AXIS2_SUCCESS on success, else AXIS2_FAILURE </dd></dl>

</div>
</div><p>
<a class="anchor" name="gca7170d81a37be6c49260e9b754d1912"></a><!-- doxytag: member="axis2_msg_ctx.h::axis2_msg_ctx_set_auth_type" ref="gca7170d81a37be6c49260e9b754d1912" args="(axis2_msg_ctx_t *msg_ctx, const axutil_env_t *env, const axis2_char_t *auth_type)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">AXIS2_EXTERN axis2_status_t axis2_msg_ctx_set_auth_type           </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="group__axis2__msg__ctx.html#g160acae289ac39cb49fa625ffd88e410">axis2_msg_ctx_t</a> *&nbsp;</td>
          <td class="paramname"> <em>msg_ctx</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const <a class="el" href="structaxutil__env.html">axutil_env_t</a> *&nbsp;</td>
          <td class="paramname"> <em>env</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const axis2_char_t *&nbsp;</td>
          <td class="paramname"> <em>auth_type</em></td><td>&nbsp;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td><td width="100%"></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
Sets the authentication type <dl compact><dt><b>Parameters:</b></dt><dd>
  <table border="0" cellspacing="2" cellpadding="0">
    <tr><td valign="top"></td><td valign="top"><em>msg_ctx</em>&nbsp;</td><td>message context </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>env</em>&nbsp;</td><td>pointer to environment struct </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>auth_type</em>&nbsp;</td><td>Authentication type string </td></tr>
  </table>
</dl>
<dl class="return" compact><dt><b>Returns:</b></dt><dd>AXIS2_SUCCESS on success, else AXIS2_FAILURE </dd></dl>

</div>
</div><p>
<a class="anchor" name="gf0b8b26d1b8a7ad80a2930afb0c2363a"></a><!-- doxytag: member="axis2_msg_ctx.h::axis2_msg_ctx_set_charset_encoding" ref="gf0b8b26d1b8a7ad80a2930afb0c2363a" args="(axis2_msg_ctx_t *msg_ctx, const axutil_env_t *env, axutil_string_t *str)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">AXIS2_EXTERN axis2_status_t axis2_msg_ctx_set_charset_encoding           </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="group__axis2__msg__ctx.html#g160acae289ac39cb49fa625ffd88e410">axis2_msg_ctx_t</a> *&nbsp;</td>
          <td class="paramname"> <em>msg_ctx</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const <a class="el" href="structaxutil__env.html">axutil_env_t</a> *&nbsp;</td>
          <td class="paramname"> <em>env</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">axutil_string_t *&nbsp;</td>
          <td class="paramname"> <em>str</em></td><td>&nbsp;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td><td width="100%"></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
Sets character set encoding to be used. <dl compact><dt><b>Parameters:</b></dt><dd>
  <table border="0" cellspacing="2" cellpadding="0">
    <tr><td valign="top"></td><td valign="top"><em>msg_ctx</em>&nbsp;</td><td>message context </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>env</em>&nbsp;</td><td>pointer to environment struct </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>str</em>&nbsp;</td><td>pointer to string struct representing encoding </td></tr>
  </table>
</dl>
<dl class="return" compact><dt><b>Returns:</b></dt><dd>AXIS2_SUCCESS on success, else AXIS2_FAILURE </dd></dl>

</div>
</div><p>
<a class="anchor" name="gcc3d9fecb8c5af62948f1c1cabbef599"></a><!-- doxytag: member="axis2_msg_ctx.h::axis2_msg_ctx_set_conf_ctx" ref="gcc3d9fecb8c5af62948f1c1cabbef599" args="(axis2_msg_ctx_t *msg_ctx, const axutil_env_t *env, struct axis2_conf_ctx *conf_ctx)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">AXIS2_EXTERN axis2_status_t axis2_msg_ctx_set_conf_ctx           </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="group__axis2__msg__ctx.html#g160acae289ac39cb49fa625ffd88e410">axis2_msg_ctx_t</a> *&nbsp;</td>
          <td class="paramname"> <em>msg_ctx</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const <a class="el" href="structaxutil__env.html">axutil_env_t</a> *&nbsp;</td>
          <td class="paramname"> <em>env</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">struct axis2_conf_ctx *&nbsp;</td>
          <td class="paramname"> <em>conf_ctx</em></td><td>&nbsp;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td><td width="100%"></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
Sets configuration context. <dl compact><dt><b>Parameters:</b></dt><dd>
  <table border="0" cellspacing="2" cellpadding="0">
    <tr><td valign="top"></td><td valign="top"><em>msg_ctx</em>&nbsp;</td><td>message context </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>env</em>&nbsp;</td><td>pointer to environment struct </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>conf_ctx</em>&nbsp;</td><td>pointer to configuration context struct, message context does not assume the ownership of struct </td></tr>
  </table>
</dl>
<dl class="return" compact><dt><b>Returns:</b></dt><dd>AXIS2_SUCCESS on success, else AXIS2_FAILURE </dd></dl>

</div>
</div><p>
<a class="anchor" name="g785e9bfaf312d05d4f8decbf27546262"></a><!-- doxytag: member="axis2_msg_ctx.h::axis2_msg_ctx_set_content_language" ref="g785e9bfaf312d05d4f8decbf27546262" args="(axis2_msg_ctx_t *msg_ctx, const axutil_env_t *env, axis2_char_t *str)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">AXIS2_EXTERN axis2_status_t axis2_msg_ctx_set_content_language           </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="group__axis2__msg__ctx.html#g160acae289ac39cb49fa625ffd88e410">axis2_msg_ctx_t</a> *&nbsp;</td>
          <td class="paramname"> <em>msg_ctx</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const <a class="el" href="structaxutil__env.html">axutil_env_t</a> *&nbsp;</td>
          <td class="paramname"> <em>env</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">axis2_char_t *&nbsp;</td>
          <td class="paramname"> <em>str</em></td><td>&nbsp;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td><td width="100%"></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
Sets the Content Language used <dl compact><dt><b>Parameters:</b></dt><dd>
  <table border="0" cellspacing="2" cellpadding="0">
    <tr><td valign="top"></td><td valign="top"><em>msg_ctx</em>&nbsp;</td><td>message context </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>env</em>&nbsp;</td><td>pointer to environment struct </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>str</em>&nbsp;</td><td>Content Language string </td></tr>
  </table>
</dl>
<dl class="return" compact><dt><b>Returns:</b></dt><dd>AXIS2_SUCCESS on success, else AXIS2_FAILURE </dd></dl>

</div>
</div><p>
<a class="anchor" name="g74993b805993c85cb0c9d104da6a6f7f"></a><!-- doxytag: member="axis2_msg_ctx.h::axis2_msg_ctx_set_current_handler_index" ref="g74993b805993c85cb0c9d104da6a6f7f" args="(axis2_msg_ctx_t *msg_ctx, const axutil_env_t *env, const int index)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">AXIS2_EXTERN axis2_status_t axis2_msg_ctx_set_current_handler_index           </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="group__axis2__msg__ctx.html#g160acae289ac39cb49fa625ffd88e410">axis2_msg_ctx_t</a> *&nbsp;</td>
          <td class="paramname"> <em>msg_ctx</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const <a class="el" href="structaxutil__env.html">axutil_env_t</a> *&nbsp;</td>
          <td class="paramname"> <em>env</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const int&nbsp;</td>
          <td class="paramname"> <em>index</em></td><td>&nbsp;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td><td width="100%"></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
Sets current handler index, indicating which handler is currently being invoked in the execution chain <dl compact><dt><b>Parameters:</b></dt><dd>
  <table border="0" cellspacing="2" cellpadding="0">
    <tr><td valign="top"></td><td valign="top"><em>msg_ctx</em>&nbsp;</td><td>message context </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>env</em>&nbsp;</td><td>pointer to environment struct </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>index</em>&nbsp;</td><td>index of currently executed handler </td></tr>
  </table>
</dl>
<dl class="return" compact><dt><b>Returns:</b></dt><dd>AXIS2_SUCCESS on success, else AXIS2_FAILURE </dd></dl>

</div>
</div><p>
<a class="anchor" name="g977af6908d6522c8a9f440841d68a2b5"></a><!-- doxytag: member="axis2_msg_ctx.h::axis2_msg_ctx_set_current_phase_index" ref="g977af6908d6522c8a9f440841d68a2b5" args="(axis2_msg_ctx_t *msg_ctx, const axutil_env_t *env, const int index)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">AXIS2_EXTERN axis2_status_t axis2_msg_ctx_set_current_phase_index           </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="group__axis2__msg__ctx.html#g160acae289ac39cb49fa625ffd88e410">axis2_msg_ctx_t</a> *&nbsp;</td>
          <td class="paramname"> <em>msg_ctx</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const <a class="el" href="structaxutil__env.html">axutil_env_t</a> *&nbsp;</td>
          <td class="paramname"> <em>env</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const int&nbsp;</td>
          <td class="paramname"> <em>index</em></td><td>&nbsp;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td><td width="100%"></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
Sets index of the current phase being invoked. <dl compact><dt><b>Parameters:</b></dt><dd>
  <table border="0" cellspacing="2" cellpadding="0">
    <tr><td valign="top"></td><td valign="top"><em>msg_ctx</em>&nbsp;</td><td>message context </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>env</em>&nbsp;</td><td>pointer to environment struct </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>index</em>&nbsp;</td><td>index of current phase </td></tr>
  </table>
</dl>
<dl class="return" compact><dt><b>Returns:</b></dt><dd>AXIS2_SUCCESS on success, else AXIS2_FAILURE </dd></dl>

</div>
</div><p>
<a class="anchor" name="ge24672999a7262595e06e6453c5bce32"></a><!-- doxytag: member="axis2_msg_ctx.h::axis2_msg_ctx_set_do_rest_through_post" ref="ge24672999a7262595e06e6453c5bce32" args="(axis2_msg_ctx_t *msg_ctx, const axutil_env_t *env, const axis2_bool_t do_rest_through_post)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">AXIS2_EXTERN axis2_status_t axis2_msg_ctx_set_do_rest_through_post           </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="group__axis2__msg__ctx.html#g160acae289ac39cb49fa625ffd88e410">axis2_msg_ctx_t</a> *&nbsp;</td>
          <td class="paramname"> <em>msg_ctx</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const <a class="el" href="structaxutil__env.html">axutil_env_t</a> *&nbsp;</td>
          <td class="paramname"> <em>env</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const axis2_bool_t&nbsp;</td>
          <td class="paramname"> <em>do_rest_through_post</em></td><td>&nbsp;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td><td width="100%"></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
Sets the boolean value indicating if REST should be done through HTTP POST or not. <dl compact><dt><b>Parameters:</b></dt><dd>
  <table border="0" cellspacing="2" cellpadding="0">
    <tr><td valign="top"></td><td valign="top"><em>msg_ctx</em>&nbsp;</td><td>message context </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>env</em>&nbsp;</td><td>pointer to environment struct </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>do_rest_through_post</em>&nbsp;</td><td>AXIS2_TRUE if REST is to be done with HTTP POST, else AXIS2_FALSE if REST is not to be done with HTTP POST </td></tr>
  </table>
</dl>
<dl class="return" compact><dt><b>Returns:</b></dt><dd>AXIS2_SUCCESS on success, else AXIS2_FAILURE </dd></dl>

</div>
</div><p>
<a class="anchor" name="g96f2cfe70142d34f2c3a36d7e256e74f"></a><!-- doxytag: member="axis2_msg_ctx.h::axis2_msg_ctx_set_doing_mtom" ref="g96f2cfe70142d34f2c3a36d7e256e74f" args="(axis2_msg_ctx_t *msg_ctx, const axutil_env_t *env, const axis2_bool_t doing_mtom)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">AXIS2_EXTERN axis2_status_t axis2_msg_ctx_set_doing_mtom           </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="group__axis2__msg__ctx.html#g160acae289ac39cb49fa625ffd88e410">axis2_msg_ctx_t</a> *&nbsp;</td>
          <td class="paramname"> <em>msg_ctx</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const <a class="el" href="structaxutil__env.html">axutil_env_t</a> *&nbsp;</td>
          <td class="paramname"> <em>env</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const axis2_bool_t&nbsp;</td>
          <td class="paramname"> <em>doing_mtom</em></td><td>&nbsp;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td><td width="100%"></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
Sets the boolean value indicating if MTOM is enabled or not. <dl compact><dt><b>Parameters:</b></dt><dd>
  <table border="0" cellspacing="2" cellpadding="0">
    <tr><td valign="top"></td><td valign="top"><em>msg_ctx</em>&nbsp;</td><td>message context </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>env</em>&nbsp;</td><td>pointer to environment struct </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>doing_mtom</em>&nbsp;</td><td>AXIS2_TRUE if MTOM is enabled, else AXIS2_FALSE </td></tr>
  </table>
</dl>
<dl class="return" compact><dt><b>Returns:</b></dt><dd>AXIS2_SUCCESS on success, else AXIS2_FAILURE </dd></dl>

</div>
</div><p>
<a class="anchor" name="g22fa631d4d7d1c62cc6186411dd47996"></a><!-- doxytag: member="axis2_msg_ctx.h::axis2_msg_ctx_set_doing_rest" ref="g22fa631d4d7d1c62cc6186411dd47996" args="(axis2_msg_ctx_t *msg_ctx, const axutil_env_t *env, const axis2_bool_t doing_rest)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">AXIS2_EXTERN axis2_status_t axis2_msg_ctx_set_doing_rest           </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="group__axis2__msg__ctx.html#g160acae289ac39cb49fa625ffd88e410">axis2_msg_ctx_t</a> *&nbsp;</td>
          <td class="paramname"> <em>msg_ctx</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const <a class="el" href="structaxutil__env.html">axutil_env_t</a> *&nbsp;</td>
          <td class="paramname"> <em>env</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const axis2_bool_t&nbsp;</td>
          <td class="paramname"> <em>doing_rest</em></td><td>&nbsp;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td><td width="100%"></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
Sets the boolean value indicating if REST is enabled or not. <dl compact><dt><b>Parameters:</b></dt><dd>
  <table border="0" cellspacing="2" cellpadding="0">
    <tr><td valign="top"></td><td valign="top"><em>msg_ctx</em>&nbsp;</td><td>message context </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>env</em>&nbsp;</td><td>pointer to environment struct </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>doing_rest</em>&nbsp;</td><td>AXIS2_TRUE if REST is enabled, else AXIS2_FALSE </td></tr>
  </table>
</dl>
<dl class="return" compact><dt><b>Returns:</b></dt><dd>AXIS2_SUCCESS on success, else AXIS2_FAILURE </dd></dl>

</div>
</div><p>
<a class="anchor" name="g5e62146dab073f13160aa411a6db4a70"></a><!-- doxytag: member="axis2_msg_ctx.h::axis2_msg_ctx_set_execution_chain" ref="g5e62146dab073f13160aa411a6db4a70" args="(axis2_msg_ctx_t *msg_ctx, const axutil_env_t *env, axutil_array_list_t *execution_chain)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">AXIS2_EXTERN axis2_status_t axis2_msg_ctx_set_execution_chain           </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="group__axis2__msg__ctx.html#g160acae289ac39cb49fa625ffd88e410">axis2_msg_ctx_t</a> *&nbsp;</td>
          <td class="paramname"> <em>msg_ctx</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const <a class="el" href="structaxutil__env.html">axutil_env_t</a> *&nbsp;</td>
          <td class="paramname"> <em>env</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype"><a class="el" href="group__axutil__array__list.html#g1a6a89777db876cfa0cc86787b7be6a0">axutil_array_list_t</a> *&nbsp;</td>
          <td class="paramname"> <em>execution_chain</em></td><td>&nbsp;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td><td width="100%"></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
Sets the execution chain to be invoked. The execution chain is a list of phases containing the handlers to be invoked. <dl compact><dt><b>Parameters:</b></dt><dd>
  <table border="0" cellspacing="2" cellpadding="0">
    <tr><td valign="top"></td><td valign="top"><em>msg_ctx</em>&nbsp;</td><td>message context </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>env</em>&nbsp;</td><td>pointer to environment struct </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>execution_chain</em>&nbsp;</td><td>pointer array list containing the list of handlers that constitute the execution chain. Message context does not assume the ownership of the array list </td></tr>
  </table>
</dl>
<dl class="return" compact><dt><b>Returns:</b></dt><dd>AXIS2_SUCCESS on success, else AXIS2_FAILURE </dd></dl>

</div>
</div><p>
<a class="anchor" name="g5a75d1d93e2cee20aab553cdaa02b414"></a><!-- doxytag: member="axis2_msg_ctx.h::axis2_msg_ctx_set_fault_soap_envelope" ref="g5a75d1d93e2cee20aab553cdaa02b414" args="(axis2_msg_ctx_t *msg_ctx, const axutil_env_t *env, struct axiom_soap_envelope *soap_envelope)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">AXIS2_EXTERN axis2_status_t axis2_msg_ctx_set_fault_soap_envelope           </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="group__axis2__msg__ctx.html#g160acae289ac39cb49fa625ffd88e410">axis2_msg_ctx_t</a> *&nbsp;</td>
          <td class="paramname"> <em>msg_ctx</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const <a class="el" href="structaxutil__env.html">axutil_env_t</a> *&nbsp;</td>
          <td class="paramname"> <em>env</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">struct axiom_soap_envelope *&nbsp;</td>
          <td class="paramname"> <em>soap_envelope</em></td><td>&nbsp;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td><td width="100%"></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
Sets fault SOAP envelope. <dl compact><dt><b>Parameters:</b></dt><dd>
  <table border="0" cellspacing="2" cellpadding="0">
    <tr><td valign="top"></td><td valign="top"><em>msg_ctx</em>&nbsp;</td><td>message context </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>env</em>&nbsp;</td><td>pointer to environment struct </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>soap_envelope</em>&nbsp;</td><td>pointer to SOAP envelope, message context assumes ownership of SOAP envelope </td></tr>
  </table>
</dl>
<dl class="return" compact><dt><b>Returns:</b></dt><dd>AXIS2_SUCCESS on success, else AXIS2_FAILURE </dd></dl>

</div>
</div><p>
<a class="anchor" name="gf1bce1caf16c721b26fae05bbb7987da"></a><!-- doxytag: member="axis2_msg_ctx.h::axis2_msg_ctx_set_fault_to" ref="gf1bce1caf16c721b26fae05bbb7987da" args="(axis2_msg_ctx_t *msg_ctx, const axutil_env_t *env, axis2_endpoint_ref_t *reference)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">AXIS2_EXTERN axis2_status_t axis2_msg_ctx_set_fault_to           </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="group__axis2__msg__ctx.html#g160acae289ac39cb49fa625ffd88e410">axis2_msg_ctx_t</a> *&nbsp;</td>
          <td class="paramname"> <em>msg_ctx</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const <a class="el" href="structaxutil__env.html">axutil_env_t</a> *&nbsp;</td>
          <td class="paramname"> <em>env</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype"><a class="el" href="group__axis2__endpoint__ref.html#gf6e89c83a6b553e7e3f11e787b3fecd4">axis2_endpoint_ref_t</a> *&nbsp;</td>
          <td class="paramname"> <em>reference</em></td><td>&nbsp;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td><td width="100%"></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
Sets WS-Addressing fault to endpoint. Fault to address tells where the fault message should be sent when there is an error. <dl compact><dt><b>Parameters:</b></dt><dd>
  <table border="0" cellspacing="2" cellpadding="0">
    <tr><td valign="top"></td><td valign="top"><em>msg_ctx</em>&nbsp;</td><td>message context </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>env</em>&nbsp;</td><td>pointer to environment struct </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>reference</em>&nbsp;</td><td>pointer to endpoint reference representing fault to address. message context assumes the ownership of endpoint struct </td></tr>
  </table>
</dl>
<dl class="return" compact><dt><b>Returns:</b></dt><dd>AXIS2_SUCCESS on success, else AXIS2_FAILURE </dd></dl>

</div>
</div><p>
<a class="anchor" name="g503c723831560c6e3a45393ac9642c2d"></a><!-- doxytag: member="axis2_msg_ctx.h::axis2_msg_ctx_set_find_op" ref="g503c723831560c6e3a45393ac9642c2d" args="(axis2_msg_ctx_t *msg_ctx, const axutil_env_t *env, AXIS2_MSG_CTX_FIND_OP func)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">AXIS2_EXTERN axis2_status_t axis2_msg_ctx_set_find_op           </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="group__axis2__msg__ctx.html#g160acae289ac39cb49fa625ffd88e410">axis2_msg_ctx_t</a> *&nbsp;</td>
          <td class="paramname"> <em>msg_ctx</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const <a class="el" href="structaxutil__env.html">axutil_env_t</a> *&nbsp;</td>
          <td class="paramname"> <em>env</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype"><a class="el" href="group__axis2__msg__ctx.html#g0b84b027d9bcb64409d21de24751e904">AXIS2_MSG_CTX_FIND_OP</a>&nbsp;</td>
          <td class="paramname"> <em>func</em></td><td>&nbsp;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td><td width="100%"></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
Sets function to be used to find an operation in the given service. This function is used by dispatchers to locate the operation to be invoked. <dl compact><dt><b>Parameters:</b></dt><dd>
  <table border="0" cellspacing="2" cellpadding="0">
    <tr><td valign="top"></td><td valign="top"><em>msg_ctx</em>&nbsp;</td><td>message context </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>env</em>&nbsp;</td><td>pointer to environment struct </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>func</em>&nbsp;</td><td>function to be used to find an operation </td></tr>
  </table>
</dl>
<dl class="return" compact><dt><b>Returns:</b></dt><dd>pointer to the operation to be invoked </dd></dl>

</div>
</div><p>
<a class="anchor" name="gabceeec2b7643a21f1794f4f729af19b"></a><!-- doxytag: member="axis2_msg_ctx.h::axis2_msg_ctx_set_find_svc" ref="gabceeec2b7643a21f1794f4f729af19b" args="(axis2_msg_ctx_t *msg_ctx, const axutil_env_t *env, AXIS2_MSG_CTX_FIND_SVC func)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">AXIS2_EXTERN axis2_status_t axis2_msg_ctx_set_find_svc           </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="group__axis2__msg__ctx.html#g160acae289ac39cb49fa625ffd88e410">axis2_msg_ctx_t</a> *&nbsp;</td>
          <td class="paramname"> <em>msg_ctx</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const <a class="el" href="structaxutil__env.html">axutil_env_t</a> *&nbsp;</td>
          <td class="paramname"> <em>env</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype"><a class="el" href="group__axis2__msg__ctx.html#g9949f405b8bfac0ee5015d67d3ee949c">AXIS2_MSG_CTX_FIND_SVC</a>&nbsp;</td>
          <td class="paramname"> <em>func</em></td><td>&nbsp;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td><td width="100%"></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
Sets function to be used to find a service. This function is used by dispatchers to locate the service to be invoked. <dl compact><dt><b>Parameters:</b></dt><dd>
  <table border="0" cellspacing="2" cellpadding="0">
    <tr><td valign="top"></td><td valign="top"><em>msg_ctx</em>&nbsp;</td><td>message context </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>env</em>&nbsp;</td><td>pointer to environment struct </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>func</em>&nbsp;</td><td>function to be used to find an operation </td></tr>
  </table>
</dl>
<dl class="return" compact><dt><b>Returns:</b></dt><dd>pointer to service to be invoked </dd></dl>

</div>
</div><p>
<a class="anchor" name="gda9507539e7d87a7f835ab89ab1b9b28"></a><!-- doxytag: member="axis2_msg_ctx.h::axis2_msg_ctx_set_flow" ref="gda9507539e7d87a7f835ab89ab1b9b28" args="(axis2_msg_ctx_t *msg_ctx, const axutil_env_t *env, int flow)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">AXIS2_EXTERN axis2_status_t axis2_msg_ctx_set_flow           </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="group__axis2__msg__ctx.html#g160acae289ac39cb49fa625ffd88e410">axis2_msg_ctx_t</a> *&nbsp;</td>
          <td class="paramname"> <em>msg_ctx</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const <a class="el" href="structaxutil__env.html">axutil_env_t</a> *&nbsp;</td>
          <td class="paramname"> <em>env</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">int&nbsp;</td>
          <td class="paramname"> <em>flow</em></td><td>&nbsp;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td><td width="100%"></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
Sets the flow to be invoked. <dl compact><dt><b>Parameters:</b></dt><dd>
  <table border="0" cellspacing="2" cellpadding="0">
    <tr><td valign="top"></td><td valign="top"><em>msg_ctx</em>&nbsp;</td><td>message context </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>env</em>&nbsp;</td><td>pointer to environment struct </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>flow</em>&nbsp;</td><td>int value indicating the flow </td></tr>
  </table>
</dl>
<dl class="return" compact><dt><b>Returns:</b></dt><dd>AXIS2_SUCCESS on success, else AXIS2_FAILURE </dd></dl>

</div>
</div><p>
<a class="anchor" name="gf448b8b9b290531148d0e1dfa9a46c15"></a><!-- doxytag: member="axis2_msg_ctx.h::axis2_msg_ctx_set_from" ref="gf448b8b9b290531148d0e1dfa9a46c15" args="(axis2_msg_ctx_t *msg_ctx, const axutil_env_t *env, axis2_endpoint_ref_t *reference)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">AXIS2_EXTERN axis2_status_t axis2_msg_ctx_set_from           </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="group__axis2__msg__ctx.html#g160acae289ac39cb49fa625ffd88e410">axis2_msg_ctx_t</a> *&nbsp;</td>
          <td class="paramname"> <em>msg_ctx</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const <a class="el" href="structaxutil__env.html">axutil_env_t</a> *&nbsp;</td>
          <td class="paramname"> <em>env</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype"><a class="el" href="group__axis2__endpoint__ref.html#gf6e89c83a6b553e7e3f11e787b3fecd4">axis2_endpoint_ref_t</a> *&nbsp;</td>
          <td class="paramname"> <em>reference</em></td><td>&nbsp;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td><td width="100%"></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
Sets WS-Addressing from endpoint. From address tells where the message came from. <dl compact><dt><b>Parameters:</b></dt><dd>
  <table border="0" cellspacing="2" cellpadding="0">
    <tr><td valign="top"></td><td valign="top"><em>msg_ctx</em>&nbsp;</td><td>message context </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>env</em>&nbsp;</td><td>pointer to environment struct </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>reference</em>&nbsp;</td><td>pointer to endpoint reference representing from address. message context assumes the ownership of endpoint struct </td></tr>
  </table>
</dl>
<dl class="return" compact><dt><b>Returns:</b></dt><dd>AXIS2_SUCCESS on success, else AXIS2_FAILURE </dd></dl>

</div>
</div><p>
<a class="anchor" name="g52ba5fc8306a6c85435d46ba925312f5"></a><!-- doxytag: member="axis2_msg_ctx.h::axis2_msg_ctx_set_http_accept_charset_record_list" ref="g52ba5fc8306a6c85435d46ba925312f5" args="(axis2_msg_ctx_t *msg_ctx, const axutil_env_t *env, axutil_array_list_t *accept_charset_record_list)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">AXIS2_EXTERN axis2_status_t axis2_msg_ctx_set_http_accept_charset_record_list           </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="group__axis2__msg__ctx.html#g160acae289ac39cb49fa625ffd88e410">axis2_msg_ctx_t</a> *&nbsp;</td>
          <td class="paramname"> <em>msg_ctx</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const <a class="el" href="structaxutil__env.html">axutil_env_t</a> *&nbsp;</td>
          <td class="paramname"> <em>env</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype"><a class="el" href="group__axutil__array__list.html#g1a6a89777db876cfa0cc86787b7be6a0">axutil_array_list_t</a> *&nbsp;</td>
          <td class="paramname"> <em>accept_charset_record_list</em></td><td>&nbsp;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td><td width="100%"></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
Sets the HTTP Accept-Charset records <dl compact><dt><b>Parameters:</b></dt><dd>
  <table border="0" cellspacing="2" cellpadding="0">
    <tr><td valign="top"></td><td valign="top"><em>msg_ctx</em>&nbsp;</td><td>message context </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>env</em>&nbsp;</td><td>pointer to environment struct </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>accept_charset_record_list</em>&nbsp;</td><td>an Array List containing the HTTP Accept-Charset records </td></tr>
  </table>
</dl>
<dl class="return" compact><dt><b>Returns:</b></dt><dd>AXIS2_SUCCESS on success, else AXIS2_FAILURE </dd></dl>

</div>
</div><p>
<a class="anchor" name="g09473f96d43873ca693eb02cd809354e"></a><!-- doxytag: member="axis2_msg_ctx.h::axis2_msg_ctx_set_http_accept_language_record_list" ref="g09473f96d43873ca693eb02cd809354e" args="(axis2_msg_ctx_t *msg_ctx, const axutil_env_t *env, axutil_array_list_t *accept_language_record_list)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">AXIS2_EXTERN axis2_status_t axis2_msg_ctx_set_http_accept_language_record_list           </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="group__axis2__msg__ctx.html#g160acae289ac39cb49fa625ffd88e410">axis2_msg_ctx_t</a> *&nbsp;</td>
          <td class="paramname"> <em>msg_ctx</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const <a class="el" href="structaxutil__env.html">axutil_env_t</a> *&nbsp;</td>
          <td class="paramname"> <em>env</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype"><a class="el" href="group__axutil__array__list.html#g1a6a89777db876cfa0cc86787b7be6a0">axutil_array_list_t</a> *&nbsp;</td>
          <td class="paramname"> <em>accept_language_record_list</em></td><td>&nbsp;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td><td width="100%"></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
Sets the HTTP Accept-Language records <dl compact><dt><b>Parameters:</b></dt><dd>
  <table border="0" cellspacing="2" cellpadding="0">
    <tr><td valign="top"></td><td valign="top"><em>msg_ctx</em>&nbsp;</td><td>message context </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>env</em>&nbsp;</td><td>pointer to environment struct </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>accept_language_record_list</em>&nbsp;</td><td>an Array List containing the HTTP Accept-Language records </td></tr>
  </table>
</dl>
<dl class="return" compact><dt><b>Returns:</b></dt><dd>AXIS2_SUCCESS on success, else AXIS2_FAILURE </dd></dl>

</div>
</div><p>
<a class="anchor" name="gce2ea5a21e0da1e0502722471013cf58"></a><!-- doxytag: member="axis2_msg_ctx.h::axis2_msg_ctx_set_http_accept_record_list" ref="gce2ea5a21e0da1e0502722471013cf58" args="(axis2_msg_ctx_t *msg_ctx, const axutil_env_t *env, axutil_array_list_t *accept_record_list)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">AXIS2_EXTERN axis2_status_t axis2_msg_ctx_set_http_accept_record_list           </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="group__axis2__msg__ctx.html#g160acae289ac39cb49fa625ffd88e410">axis2_msg_ctx_t</a> *&nbsp;</td>
          <td class="paramname"> <em>msg_ctx</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const <a class="el" href="structaxutil__env.html">axutil_env_t</a> *&nbsp;</td>
          <td class="paramname"> <em>env</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype"><a class="el" href="group__axutil__array__list.html#g1a6a89777db876cfa0cc86787b7be6a0">axutil_array_list_t</a> *&nbsp;</td>
          <td class="paramname"> <em>accept_record_list</em></td><td>&nbsp;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td><td width="100%"></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
Sets the HTTP Accept records <dl compact><dt><b>Parameters:</b></dt><dd>
  <table border="0" cellspacing="2" cellpadding="0">
    <tr><td valign="top"></td><td valign="top"><em>msg_ctx</em>&nbsp;</td><td>message context </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>env</em>&nbsp;</td><td>pointer to environment struct </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>accept_record_list</em>&nbsp;</td><td>an Array List containing the HTTP Accept records </td></tr>
  </table>
</dl>
<dl class="return" compact><dt><b>Returns:</b></dt><dd>AXIS2_SUCCESS on success, else AXIS2_FAILURE </dd></dl>

</div>
</div><p>
<a class="anchor" name="gc4e3c9a6394f3533e0e79a09626d37a4"></a><!-- doxytag: member="axis2_msg_ctx.h::axis2_msg_ctx_set_http_output_headers" ref="gc4e3c9a6394f3533e0e79a09626d37a4" args="(axis2_msg_ctx_t *msg_ctx, const axutil_env_t *env, axutil_array_list_t *output_headers)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">AXIS2_EXTERN axis2_status_t axis2_msg_ctx_set_http_output_headers           </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="group__axis2__msg__ctx.html#g160acae289ac39cb49fa625ffd88e410">axis2_msg_ctx_t</a> *&nbsp;</td>
          <td class="paramname"> <em>msg_ctx</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const <a class="el" href="structaxutil__env.html">axutil_env_t</a> *&nbsp;</td>
          <td class="paramname"> <em>env</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype"><a class="el" href="group__axutil__array__list.html#g1a6a89777db876cfa0cc86787b7be6a0">axutil_array_list_t</a> *&nbsp;</td>
          <td class="paramname"> <em>output_headers</em></td><td>&nbsp;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td><td width="100%"></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
Sets the Output Header list <dl compact><dt><b>Parameters:</b></dt><dd>
  <table border="0" cellspacing="2" cellpadding="0">
    <tr><td valign="top"></td><td valign="top"><em>msg_ctx</em>&nbsp;</td><td>message context </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>env</em>&nbsp;</td><td>pointer to environment struct </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>output_headers</em>&nbsp;</td><td>Output Header list </td></tr>
  </table>
</dl>
<dl class="return" compact><dt><b>Returns:</b></dt><dd>AXIS2_SUCCESS on success, else AXIS2_FAILURE </dd></dl>

</div>
</div><p>
<a class="anchor" name="g5a5a0204f62d42f7e79cf8d0c9fa9278"></a><!-- doxytag: member="axis2_msg_ctx.h::axis2_msg_ctx_set_in_fault_flow" ref="g5a5a0204f62d42f7e79cf8d0c9fa9278" args="(axis2_msg_ctx_t *msg_ctx, const axutil_env_t *env, const axis2_bool_t in_fault_flow)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">AXIS2_EXTERN axis2_status_t axis2_msg_ctx_set_in_fault_flow           </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="group__axis2__msg__ctx.html#g160acae289ac39cb49fa625ffd88e410">axis2_msg_ctx_t</a> *&nbsp;</td>
          <td class="paramname"> <em>msg_ctx</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const <a class="el" href="structaxutil__env.html">axutil_env_t</a> *&nbsp;</td>
          <td class="paramname"> <em>env</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const axis2_bool_t&nbsp;</td>
          <td class="paramname"> <em>in_fault_flow</em></td><td>&nbsp;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td><td width="100%"></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
Sets in fault flow status. <dl compact><dt><b>Parameters:</b></dt><dd>
  <table border="0" cellspacing="2" cellpadding="0">
    <tr><td valign="top"></td><td valign="top"><em>msg_ctx</em>&nbsp;</td><td>message context </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>env</em>&nbsp;</td><td>pointer to environment struct </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>in_fault_flow</em>&nbsp;</td><td>AXIS2_TRUE if there is a fault on in path, else AXIS2_FALSE </td></tr>
  </table>
</dl>
<dl class="return" compact><dt><b>Returns:</b></dt><dd>AXIS2_SUCCESS on success, else AXIS2_FAILURE </dd></dl>

</div>
</div><p>
<a class="anchor" name="gf29b11075b84a7f2ede4f47da724f6a9"></a><!-- doxytag: member="axis2_msg_ctx.h::axis2_msg_ctx_set_is_soap_11" ref="gf29b11075b84a7f2ede4f47da724f6a9" args="(axis2_msg_ctx_t *msg_ctx, const axutil_env_t *env, const axis2_bool_t is_soap11)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">AXIS2_EXTERN axis2_status_t axis2_msg_ctx_set_is_soap_11           </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="group__axis2__msg__ctx.html#g160acae289ac39cb49fa625ffd88e410">axis2_msg_ctx_t</a> *&nbsp;</td>
          <td class="paramname"> <em>msg_ctx</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const <a class="el" href="structaxutil__env.html">axutil_env_t</a> *&nbsp;</td>
          <td class="paramname"> <em>env</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const axis2_bool_t&nbsp;</td>
          <td class="paramname"> <em>is_soap11</em></td><td>&nbsp;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td><td width="100%"></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
Sets the bool value indicating the SOAP version being used either SOAP 1.1 or SOAP 1.2 <dl compact><dt><b>Parameters:</b></dt><dd>
  <table border="0" cellspacing="2" cellpadding="0">
    <tr><td valign="top"></td><td valign="top"><em>msg_ctx</em>&nbsp;</td><td>message context </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>env</em>&nbsp;</td><td>pointer to environment struct </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>is_soap11</em>&nbsp;</td><td>AXIS2_TRUE if SOAP 1.1 is being used, else AXIS2_FALSE if SOAP 1.2 is being used </td></tr>
  </table>
</dl>
<dl class="return" compact><dt><b>Returns:</b></dt><dd>AXIS2_SUCCESS on success, else AXIS2_FAILURE </dd></dl>

</div>
</div><p>
<a class="anchor" name="g29a042eb384e9af2798aea7a91cd7d71"></a><!-- doxytag: member="axis2_msg_ctx.h::axis2_msg_ctx_set_keep_alive" ref="g29a042eb384e9af2798aea7a91cd7d71" args="(axis2_msg_ctx_t *msg_ctx, const axutil_env_t *env, const axis2_bool_t keep_alive)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">AXIS2_EXTERN axis2_status_t axis2_msg_ctx_set_keep_alive           </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="group__axis2__msg__ctx.html#g160acae289ac39cb49fa625ffd88e410">axis2_msg_ctx_t</a> *&nbsp;</td>
          <td class="paramname"> <em>msg_ctx</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const <a class="el" href="structaxutil__env.html">axutil_env_t</a> *&nbsp;</td>
          <td class="paramname"> <em>env</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const axis2_bool_t&nbsp;</td>
          <td class="paramname"> <em>keep_alive</em></td><td>&nbsp;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td><td width="100%"></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
Sets the bool value indicating the keep alive status of invocation. By setting this one can indicate the engine not to clean the message context. <dl compact><dt><b>Parameters:</b></dt><dd>
  <table border="0" cellspacing="2" cellpadding="0">
    <tr><td valign="top"></td><td valign="top"><em>msg_ctx</em>&nbsp;</td><td>message context </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>env</em>&nbsp;</td><td>pointer to environment struct </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>keep_alive</em>&nbsp;</td><td>keep alive </td></tr>
  </table>
</dl>
<dl class="return" compact><dt><b>Returns:</b></dt><dd>AXIS2_SUCCESS on success, else AXIS2_FAILURE </dd></dl>

</div>
</div><p>
<a class="anchor" name="g28c3e7dd62554357c3fd42c9b6e9dc48"></a><!-- doxytag: member="axis2_msg_ctx.h::axis2_msg_ctx_set_manage_session" ref="g28c3e7dd62554357c3fd42c9b6e9dc48" args="(axis2_msg_ctx_t *msg_ctx, const axutil_env_t *env, const axis2_bool_t manage_session)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">AXIS2_EXTERN axis2_status_t axis2_msg_ctx_set_manage_session           </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="group__axis2__msg__ctx.html#g160acae289ac39cb49fa625ffd88e410">axis2_msg_ctx_t</a> *&nbsp;</td>
          <td class="paramname"> <em>msg_ctx</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const <a class="el" href="structaxutil__env.html">axutil_env_t</a> *&nbsp;</td>
          <td class="paramname"> <em>env</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const axis2_bool_t&nbsp;</td>
          <td class="paramname"> <em>manage_session</em></td><td>&nbsp;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td><td width="100%"></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
Sets manage session bool value. <dl compact><dt><b>Parameters:</b></dt><dd>
  <table border="0" cellspacing="2" cellpadding="0">
    <tr><td valign="top"></td><td valign="top"><em>msg_ctx</em>&nbsp;</td><td>message context </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>env</em>&nbsp;</td><td>pointer to environment struct </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>manage_session</em>&nbsp;</td><td>manage session bool value </td></tr>
  </table>
</dl>
<dl class="return" compact><dt><b>Returns:</b></dt><dd>AXIS2_SUCCESS on success, else AXIS2_FAILURE </dd></dl>

</div>
</div><p>
<a class="anchor" name="g9523fae1595a4b3e9dead658deccce7f"></a><!-- doxytag: member="axis2_msg_ctx.h::axis2_msg_ctx_set_message_id" ref="g9523fae1595a4b3e9dead658deccce7f" args="(axis2_msg_ctx_t *msg_ctx, const axutil_env_t *env, const axis2_char_t *message_id)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">AXIS2_EXTERN axis2_status_t axis2_msg_ctx_set_message_id           </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="group__axis2__msg__ctx.html#g160acae289ac39cb49fa625ffd88e410">axis2_msg_ctx_t</a> *&nbsp;</td>
          <td class="paramname"> <em>msg_ctx</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const <a class="el" href="structaxutil__env.html">axutil_env_t</a> *&nbsp;</td>
          <td class="paramname"> <em>env</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const axis2_char_t *&nbsp;</td>
          <td class="paramname"> <em>message_id</em></td><td>&nbsp;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td><td width="100%"></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
Sets message ID. <dl compact><dt><b>Parameters:</b></dt><dd>
  <table border="0" cellspacing="2" cellpadding="0">
    <tr><td valign="top"></td><td valign="top"><em>msg_ctx</em>&nbsp;</td><td>message context </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>env</em>&nbsp;</td><td>pointer to environment struct </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>message_id</em>&nbsp;</td><td>message ID string </td></tr>
  </table>
</dl>
<dl class="return" compact><dt><b>Returns:</b></dt><dd>AXIS2_SUCCESS on success, else AXIS2_FAILURE </dd></dl>

</div>
</div><p>
<a class="anchor" name="g1371f00e4242de82b6475dd9443ab5db"></a><!-- doxytag: member="axis2_msg_ctx.h::axis2_msg_ctx_set_msg_id" ref="g1371f00e4242de82b6475dd9443ab5db" args="(const axis2_msg_ctx_t *msg_ctx, const axutil_env_t *env, axis2_char_t *msg_id)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">AXIS2_EXTERN axis2_status_t axis2_msg_ctx_set_msg_id           </td>
          <td>(</td>
          <td class="paramtype">const <a class="el" href="group__axis2__msg__ctx.html#g160acae289ac39cb49fa625ffd88e410">axis2_msg_ctx_t</a> *&nbsp;</td>
          <td class="paramname"> <em>msg_ctx</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const <a class="el" href="structaxutil__env.html">axutil_env_t</a> *&nbsp;</td>
          <td class="paramname"> <em>env</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">axis2_char_t *&nbsp;</td>
          <td class="paramname"> <em>msg_id</em></td><td>&nbsp;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td><td width="100%"></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
Sets message ID. <dl compact><dt><b>Parameters:</b></dt><dd>
  <table border="0" cellspacing="2" cellpadding="0">
    <tr><td valign="top"></td><td valign="top"><em>msg_ctx</em>&nbsp;</td><td>message context </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>env</em>&nbsp;</td><td>pointer to environment struct </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>msg_id</em>&nbsp;</td><td></td></tr>
  </table>
</dl>
<dl class="return" compact><dt><b>Returns:</b></dt><dd>AXIS2_SUCCESS on success, else AXIS2_FAILURE </dd></dl>

</div>
</div><p>
<a class="anchor" name="g894cd26e3ef286e8cc115d87cc0d31a5"></a><!-- doxytag: member="axis2_msg_ctx.h::axis2_msg_ctx_set_msg_info_headers" ref="g894cd26e3ef286e8cc115d87cc0d31a5" args="(axis2_msg_ctx_t *msg_ctx, const axutil_env_t *env, axis2_msg_info_headers_t *msg_info_headers)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">AXIS2_EXTERN axis2_status_t axis2_msg_ctx_set_msg_info_headers           </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="group__axis2__msg__ctx.html#g160acae289ac39cb49fa625ffd88e410">axis2_msg_ctx_t</a> *&nbsp;</td>
          <td class="paramname"> <em>msg_ctx</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const <a class="el" href="structaxutil__env.html">axutil_env_t</a> *&nbsp;</td>
          <td class="paramname"> <em>env</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype"><a class="el" href="group__axis2__msg__info__headers.html#g556873fdfa94e29e43d96728871f3192">axis2_msg_info_headers_t</a> *&nbsp;</td>
          <td class="paramname"> <em>msg_info_headers</em></td><td>&nbsp;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td><td width="100%"></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
Sets message information headers. <dl compact><dt><b>Parameters:</b></dt><dd>
  <table border="0" cellspacing="2" cellpadding="0">
    <tr><td valign="top"></td><td valign="top"><em>msg_ctx</em>&nbsp;</td><td>message context </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>env</em>&nbsp;</td><td>pointer to environment struct </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>msg_info_headers</em>&nbsp;</td><td>pointer to message information headers, message context assumes the ownership of the struct </td></tr>
  </table>
</dl>
<dl class="return" compact><dt><b>Returns:</b></dt><dd>AXIS2_SUCCESS on success, else AXIS2_FAILURE </dd></dl>

</div>
</div><p>
<a class="anchor" name="ga93cc6c40d67fed5df3f6891bce068a1"></a><!-- doxytag: member="axis2_msg_ctx.h::axis2_msg_ctx_set_new_thread_required" ref="ga93cc6c40d67fed5df3f6891bce068a1" args="(axis2_msg_ctx_t *msg_ctx, const axutil_env_t *env, const axis2_bool_t new_thread_required)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">AXIS2_EXTERN axis2_status_t axis2_msg_ctx_set_new_thread_required           </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="group__axis2__msg__ctx.html#g160acae289ac39cb49fa625ffd88e410">axis2_msg_ctx_t</a> *&nbsp;</td>
          <td class="paramname"> <em>msg_ctx</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const <a class="el" href="structaxutil__env.html">axutil_env_t</a> *&nbsp;</td>
          <td class="paramname"> <em>env</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const axis2_bool_t&nbsp;</td>
          <td class="paramname"> <em>new_thread_required</em></td><td>&nbsp;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td><td width="100%"></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
Sets the bool value indicating if it is required to have a new thread for the invocation, or if the same thread of execution could be used. <dl compact><dt><b>Parameters:</b></dt><dd>
  <table border="0" cellspacing="2" cellpadding="0">
    <tr><td valign="top"></td><td valign="top"><em>msg_ctx</em>&nbsp;</td><td>message context </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>env</em>&nbsp;</td><td>pointer to environment struct </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>new_thread_required</em>&nbsp;</td><td>AXIS2_TRUE if a new thread is required, else AXIS2_FALSE </td></tr>
  </table>
</dl>
<dl class="return" compact><dt><b>Returns:</b></dt><dd>AXIS2_SUCCESS on success, else AXIS2_FAILURE </dd></dl>

</div>
</div><p>
<a class="anchor" name="gcdd6a7139357035806b86b62965fcdcc"></a><!-- doxytag: member="axis2_msg_ctx.h::axis2_msg_ctx_set_no_content" ref="gcdd6a7139357035806b86b62965fcdcc" args="(axis2_msg_ctx_t *msg_ctx, const axutil_env_t *env, const axis2_bool_t no_content)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">AXIS2_EXTERN axis2_status_t axis2_msg_ctx_set_no_content           </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="group__axis2__msg__ctx.html#g160acae289ac39cb49fa625ffd88e410">axis2_msg_ctx_t</a> *&nbsp;</td>
          <td class="paramname"> <em>msg_ctx</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const <a class="el" href="structaxutil__env.html">axutil_env_t</a> *&nbsp;</td>
          <td class="paramname"> <em>env</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const axis2_bool_t&nbsp;</td>
          <td class="paramname"> <em>no_content</em></td><td>&nbsp;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td><td width="100%"></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
Sets that there was no content in the response. <dl compact><dt><b>Parameters:</b></dt><dd>
  <table border="0" cellspacing="2" cellpadding="0">
    <tr><td valign="top"></td><td valign="top"><em>msg_ctx</em>&nbsp;</td><td>message context </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>env</em>&nbsp;</td><td>pointer to environment struct </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>no_content</em>&nbsp;</td><td>expects AXIS2_TRUE if there was no content in the response or AXIS2_FALSE otherwise </td></tr>
  </table>
</dl>
<dl class="return" compact><dt><b>Returns:</b></dt><dd>AXIS2_SUCCESS on success, else AXIS2_FAILURE </dd></dl>

</div>
</div><p>
<a class="anchor" name="ge1629a4a314446a0f87b1a4c7f87c4e0"></a><!-- doxytag: member="axis2_msg_ctx.h::axis2_msg_ctx_set_op" ref="ge1629a4a314446a0f87b1a4c7f87c4e0" args="(axis2_msg_ctx_t *msg_ctx, const axutil_env_t *env, struct axis2_op *op)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">AXIS2_EXTERN axis2_status_t axis2_msg_ctx_set_op           </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="group__axis2__msg__ctx.html#g160acae289ac39cb49fa625ffd88e410">axis2_msg_ctx_t</a> *&nbsp;</td>
          <td class="paramname"> <em>msg_ctx</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const <a class="el" href="structaxutil__env.html">axutil_env_t</a> *&nbsp;</td>
          <td class="paramname"> <em>env</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">struct axis2_op *&nbsp;</td>
          <td class="paramname"> <em>op</em></td><td>&nbsp;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td><td width="100%"></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
Sets the operation that is to be invoked. <dl compact><dt><b>Parameters:</b></dt><dd>
  <table border="0" cellspacing="2" cellpadding="0">
    <tr><td valign="top"></td><td valign="top"><em>msg_ctx</em>&nbsp;</td><td>message context </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>env</em>&nbsp;</td><td>pointer to environment struct </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>op</em>&nbsp;</td><td>pointer to operation, message context does not assume the ownership of operation </td></tr>
  </table>
</dl>
<dl class="return" compact><dt><b>Returns:</b></dt><dd>AXIS2_SUCCESS on success, else AXIS2_FAILURE </dd></dl>

</div>
</div><p>
<a class="anchor" name="geefba02d7fc287e3bdf530dc3743d049"></a><!-- doxytag: member="axis2_msg_ctx.h::axis2_msg_ctx_set_op_ctx" ref="geefba02d7fc287e3bdf530dc3743d049" args="(axis2_msg_ctx_t *msg_ctx, const axutil_env_t *env, struct axis2_op_ctx *op_ctx)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">AXIS2_EXTERN axis2_status_t axis2_msg_ctx_set_op_ctx           </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="group__axis2__msg__ctx.html#g160acae289ac39cb49fa625ffd88e410">axis2_msg_ctx_t</a> *&nbsp;</td>
          <td class="paramname"> <em>msg_ctx</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const <a class="el" href="structaxutil__env.html">axutil_env_t</a> *&nbsp;</td>
          <td class="paramname"> <em>env</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">struct axis2_op_ctx *&nbsp;</td>
          <td class="paramname"> <em>op_ctx</em></td><td>&nbsp;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td><td width="100%"></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
Sets operation context related to the operation that this message context is related to. <dl compact><dt><b>Parameters:</b></dt><dd>
  <table border="0" cellspacing="2" cellpadding="0">
    <tr><td valign="top"></td><td valign="top"><em>msg_ctx</em>&nbsp;</td><td>message context </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>env</em>&nbsp;</td><td>pointer to environment struct </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>op_ctx</em>&nbsp;</td><td>pointer to operation context, message context does not assume the ownership of operation context </td></tr>
  </table>
</dl>
<dl class="return" compact><dt><b>Returns:</b></dt><dd>AXIS2_SUCCESS on success, else AXIS2_FAILURE </dd></dl>

</div>
</div><p>
<a class="anchor" name="gccc481e49357f41dc151e130622385fa"></a><!-- doxytag: member="axis2_msg_ctx.h::axis2_msg_ctx_set_options" ref="gccc481e49357f41dc151e130622385fa" args="(axis2_msg_ctx_t *msg_ctx, const axutil_env_t *env, struct axis2_options *options)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">AXIS2_EXTERN axis2_status_t axis2_msg_ctx_set_options           </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="group__axis2__msg__ctx.html#g160acae289ac39cb49fa625ffd88e410">axis2_msg_ctx_t</a> *&nbsp;</td>
          <td class="paramname"> <em>msg_ctx</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const <a class="el" href="structaxutil__env.html">axutil_env_t</a> *&nbsp;</td>
          <td class="paramname"> <em>env</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">struct axis2_options *&nbsp;</td>
          <td class="paramname"> <em>options</em></td><td>&nbsp;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td><td width="100%"></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
Sets the options to be used in invocation. <dl compact><dt><b>Parameters:</b></dt><dd>
  <table border="0" cellspacing="2" cellpadding="0">
    <tr><td valign="top"></td><td valign="top"><em>msg_ctx</em>&nbsp;</td><td>message context </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>env</em>&nbsp;</td><td>pointer to environment struct </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>options</em>&nbsp;</td><td>pointer to options struct, message context does not assume the ownership of the struct </td></tr>
  </table>
</dl>
<dl class="return" compact><dt><b>Returns:</b></dt><dd>AXIS2_SUCCESS on success, else AXIS2_FAILURE </dd></dl>

</div>
</div><p>
<a class="anchor" name="g2e8b202d57caca29121bd55ede2ad3d6"></a><!-- doxytag: member="axis2_msg_ctx.h::axis2_msg_ctx_set_out_transport_info" ref="g2e8b202d57caca29121bd55ede2ad3d6" args="(axis2_msg_ctx_t *msg_ctx, const axutil_env_t *env, struct axis2_out_transport_info *out_transport_info)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">AXIS2_EXTERN axis2_status_t axis2_msg_ctx_set_out_transport_info           </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="group__axis2__msg__ctx.html#g160acae289ac39cb49fa625ffd88e410">axis2_msg_ctx_t</a> *&nbsp;</td>
          <td class="paramname"> <em>msg_ctx</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const <a class="el" href="structaxutil__env.html">axutil_env_t</a> *&nbsp;</td>
          <td class="paramname"> <em>env</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">struct axis2_out_transport_info *&nbsp;</td>
          <td class="paramname"> <em>out_transport_info</em></td><td>&nbsp;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td><td width="100%"></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
Sets the HTTP Out Transport Info associated <dl compact><dt><b>Parameters:</b></dt><dd>
  <table border="0" cellspacing="2" cellpadding="0">
    <tr><td valign="top"></td><td valign="top"><em>msg_ctx</em>&nbsp;</td><td>message context </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>env</em>&nbsp;</td><td>pointer to environment struct </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>out_transport_info</em>&nbsp;</td><td>reference to HTTP Out Transport Info associated </td></tr>
  </table>
</dl>
<dl class="return" compact><dt><b>Returns:</b></dt><dd>AXIS2_SUCCESS on success, else AXIS2_FAILURE </dd></dl>

</div>
</div><p>
<a class="anchor" name="gfd23fcda1919b4f2d1cf361c53ab70cd"></a><!-- doxytag: member="axis2_msg_ctx.h::axis2_msg_ctx_set_output_written" ref="gfd23fcda1919b4f2d1cf361c53ab70cd" args="(axis2_msg_ctx_t *msg_ctx, const axutil_env_t *env, const axis2_bool_t output_written)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">AXIS2_EXTERN axis2_status_t axis2_msg_ctx_set_output_written           </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="group__axis2__msg__ctx.html#g160acae289ac39cb49fa625ffd88e410">axis2_msg_ctx_t</a> *&nbsp;</td>
          <td class="paramname"> <em>msg_ctx</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const <a class="el" href="structaxutil__env.html">axutil_env_t</a> *&nbsp;</td>
          <td class="paramname"> <em>env</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const axis2_bool_t&nbsp;</td>
          <td class="paramname"> <em>output_written</em></td><td>&nbsp;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td><td width="100%"></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
Sets the bool value indicating the output written status. <dl compact><dt><b>Parameters:</b></dt><dd>
  <table border="0" cellspacing="2" cellpadding="0">
    <tr><td valign="top"></td><td valign="top"><em>msg_ctx</em>&nbsp;</td><td>message context </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>env</em>&nbsp;</td><td>pointer to environment struct </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>output_written</em>&nbsp;</td><td>AXIS2_TRUE if output is written, else AXIS2_FALSE </td></tr>
  </table>
</dl>
<dl class="return" compact><dt><b>Returns:</b></dt><dd>AXIS2_SUCCESS on success, else AXIS2_FAILURE </dd></dl>

</div>
</div><p>
<a class="anchor" name="gc744a1bb471165ffafb70dfc3ac983de"></a><!-- doxytag: member="axis2_msg_ctx.h::axis2_msg_ctx_set_parent" ref="gc744a1bb471165ffafb70dfc3ac983de" args="(axis2_msg_ctx_t *msg_ctx, const axutil_env_t *env, struct axis2_op_ctx *parent)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">AXIS2_EXTERN axis2_status_t axis2_msg_ctx_set_parent           </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="group__axis2__msg__ctx.html#g160acae289ac39cb49fa625ffd88e410">axis2_msg_ctx_t</a> *&nbsp;</td>
          <td class="paramname"> <em>msg_ctx</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const <a class="el" href="structaxutil__env.html">axutil_env_t</a> *&nbsp;</td>
          <td class="paramname"> <em>env</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">struct axis2_op_ctx *&nbsp;</td>
          <td class="paramname"> <em>parent</em></td><td>&nbsp;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td><td width="100%"></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
Sets parent. Parent of a message context is of type operation context. <dl compact><dt><b>Parameters:</b></dt><dd>
  <table border="0" cellspacing="2" cellpadding="0">
    <tr><td valign="top"></td><td valign="top"><em>msg_ctx</em>&nbsp;</td><td>message context </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>env</em>&nbsp;</td><td>pointer to environment struct </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>parent</em>&nbsp;</td><td>pointer to parent operation context </td></tr>
  </table>
</dl>
<dl class="return" compact><dt><b>Returns:</b></dt><dd>AXIS2_SUCCESS on success, else AXIS2_FAILURE </dd></dl>

</div>
</div><p>
<a class="anchor" name="g946233e40d8bf6d9d1dd82b25afc117f"></a><!-- doxytag: member="axis2_msg_ctx.h::axis2_msg_ctx_set_paused" ref="g946233e40d8bf6d9d1dd82b25afc117f" args="(axis2_msg_ctx_t *msg_ctx, const axutil_env_t *env, const axis2_bool_t paused)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">AXIS2_EXTERN axis2_status_t axis2_msg_ctx_set_paused           </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="group__axis2__msg__ctx.html#g160acae289ac39cb49fa625ffd88e410">axis2_msg_ctx_t</a> *&nbsp;</td>
          <td class="paramname"> <em>msg_ctx</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const <a class="el" href="structaxutil__env.html">axutil_env_t</a> *&nbsp;</td>
          <td class="paramname"> <em>env</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const axis2_bool_t&nbsp;</td>
          <td class="paramname"> <em>paused</em></td><td>&nbsp;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td><td width="100%"></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
Sets the bool value indicating the paused status of invocation. <dl compact><dt><b>Parameters:</b></dt><dd>
  <table border="0" cellspacing="2" cellpadding="0">
    <tr><td valign="top"></td><td valign="top"><em>msg_ctx</em>&nbsp;</td><td>message context </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>env</em>&nbsp;</td><td>pointer to environment struct </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>paused</em>&nbsp;</td><td>paused </td></tr>
  </table>
</dl>
<dl class="return" compact><dt><b>Returns:</b></dt><dd>AXIS2_SUCCESS on success, else AXIS2_FAILURE </dd></dl>

</div>
</div><p>
<a class="anchor" name="g2a5e8c445ee014883e7663b2c0754435"></a><!-- doxytag: member="axis2_msg_ctx.h::axis2_msg_ctx_set_paused_phase_name" ref="g2a5e8c445ee014883e7663b2c0754435" args="(axis2_msg_ctx_t *msg_ctx, const axutil_env_t *env, const axis2_char_t *paused_phase_name)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">AXIS2_EXTERN axis2_status_t axis2_msg_ctx_set_paused_phase_name           </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="group__axis2__msg__ctx.html#g160acae289ac39cb49fa625ffd88e410">axis2_msg_ctx_t</a> *&nbsp;</td>
          <td class="paramname"> <em>msg_ctx</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const <a class="el" href="structaxutil__env.html">axutil_env_t</a> *&nbsp;</td>
          <td class="paramname"> <em>env</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const axis2_char_t *&nbsp;</td>
          <td class="paramname"> <em>paused_phase_name</em></td><td>&nbsp;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td><td width="100%"></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
Sets the name of the phase at which the invocation was paused. <dl compact><dt><b>Parameters:</b></dt><dd>
  <table border="0" cellspacing="2" cellpadding="0">
    <tr><td valign="top"></td><td valign="top"><em>msg_ctx</em>&nbsp;</td><td>message context </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>env</em>&nbsp;</td><td>pointer to environment struct </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>paused_phase_name</em>&nbsp;</td><td>paused phase name string </td></tr>
  </table>
</dl>
<dl class="return" compact><dt><b>Returns:</b></dt><dd>AXIS2_SUCCESS on success, else AXIS2_FAILURE </dd></dl>

</div>
</div><p>
<a class="anchor" name="g7ed492aa405ef700226a3a19cf6c1433"></a><!-- doxytag: member="axis2_msg_ctx.h::axis2_msg_ctx_set_process_fault" ref="g7ed492aa405ef700226a3a19cf6c1433" args="(axis2_msg_ctx_t *msg_ctx, const axutil_env_t *env, const axis2_bool_t process_fault)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">AXIS2_EXTERN axis2_status_t axis2_msg_ctx_set_process_fault           </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="group__axis2__msg__ctx.html#g160acae289ac39cb49fa625ffd88e410">axis2_msg_ctx_t</a> *&nbsp;</td>
          <td class="paramname"> <em>msg_ctx</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const <a class="el" href="structaxutil__env.html">axutil_env_t</a> *&nbsp;</td>
          <td class="paramname"> <em>env</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const axis2_bool_t&nbsp;</td>
          <td class="paramname"> <em>process_fault</em></td><td>&nbsp;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td><td width="100%"></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
Sets process fault bool value. <dl compact><dt><b>Parameters:</b></dt><dd>
  <table border="0" cellspacing="2" cellpadding="0">
    <tr><td valign="top"></td><td valign="top"><em>msg_ctx</em>&nbsp;</td><td>message context </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>env</em>&nbsp;</td><td>pointer to environment struct </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>process_fault</em>&nbsp;</td><td>AXIS2_TRUE if SOAP faults are to be processed, else AXIS2_FALSE </td></tr>
  </table>
</dl>
<dl class="return" compact><dt><b>Returns:</b></dt><dd>AXIS2_SUCCESS on success, else AXIS2_FAILURE </dd></dl>

</div>
</div><p>
<a class="anchor" name="gdd7cf73dd9e04efe08b461854807b698"></a><!-- doxytag: member="axis2_msg_ctx.h::axis2_msg_ctx_set_property" ref="gdd7cf73dd9e04efe08b461854807b698" args="(axis2_msg_ctx_t *msg_ctx, const axutil_env_t *env, const axis2_char_t *key, axutil_property_t *value)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">AXIS2_EXTERN axis2_status_t axis2_msg_ctx_set_property           </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="group__axis2__msg__ctx.html#g160acae289ac39cb49fa625ffd88e410">axis2_msg_ctx_t</a> *&nbsp;</td>
          <td class="paramname"> <em>msg_ctx</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const <a class="el" href="structaxutil__env.html">axutil_env_t</a> *&nbsp;</td>
          <td class="paramname"> <em>env</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const axis2_char_t *&nbsp;</td>
          <td class="paramname"> <em>key</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">axutil_property_t *&nbsp;</td>
          <td class="paramname"> <em>value</em></td><td>&nbsp;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td><td width="100%"></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
Sets property with given key. <dl compact><dt><b>Parameters:</b></dt><dd>
  <table border="0" cellspacing="2" cellpadding="0">
    <tr><td valign="top"></td><td valign="top"><em>msg_ctx</em>&nbsp;</td><td>message context </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>env</em>&nbsp;</td><td>pointer to environment struct </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>key</em>&nbsp;</td><td>key string </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>value</em>&nbsp;</td><td>property to be stored </td></tr>
  </table>
</dl>
<dl class="return" compact><dt><b>Returns:</b></dt><dd>AXIS2_SUCCESS on success, else AXIS2_FAILURE </dd></dl>

</div>
</div><p>
<a class="anchor" name="g619646919121558645495bc791b14688"></a><!-- doxytag: member="axis2_msg_ctx.h::axis2_msg_ctx_set_relates_to" ref="g619646919121558645495bc791b14688" args="(axis2_msg_ctx_t *msg_ctx, const axutil_env_t *env, axis2_relates_to_t *reference)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">AXIS2_EXTERN axis2_status_t axis2_msg_ctx_set_relates_to           </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="group__axis2__msg__ctx.html#g160acae289ac39cb49fa625ffd88e410">axis2_msg_ctx_t</a> *&nbsp;</td>
          <td class="paramname"> <em>msg_ctx</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const <a class="el" href="structaxutil__env.html">axutil_env_t</a> *&nbsp;</td>
          <td class="paramname"> <em>env</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype"><a class="el" href="group__axis2__relates__to.html#gd92fd7b0e63b44c6343db15b61aeba45">axis2_relates_to_t</a> *&nbsp;</td>
          <td class="paramname"> <em>reference</em></td><td>&nbsp;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td><td width="100%"></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
Sets relates to struct. <dl compact><dt><b>Parameters:</b></dt><dd>
  <table border="0" cellspacing="2" cellpadding="0">
    <tr><td valign="top"></td><td valign="top"><em>msg_ctx</em>&nbsp;</td><td>message context </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>env</em>&nbsp;</td><td>pointer to environment struct </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>reference</em>&nbsp;</td><td>pointer to relates to struct, message context assumes ownership of the struct </td></tr>
  </table>
</dl>
<dl class="return" compact><dt><b>Returns:</b></dt><dd>AXIS2_SUCCESS on success, else AXIS2_FAILURE </dd></dl>

</div>
</div><p>
<a class="anchor" name="g35bc63b6c82bdcc9fce81815e3ca5c4c"></a><!-- doxytag: member="axis2_msg_ctx.h::axis2_msg_ctx_set_reply_to" ref="g35bc63b6c82bdcc9fce81815e3ca5c4c" args="(axis2_msg_ctx_t *msg_ctx, const axutil_env_t *env, axis2_endpoint_ref_t *reference)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">AXIS2_EXTERN axis2_status_t axis2_msg_ctx_set_reply_to           </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="group__axis2__msg__ctx.html#g160acae289ac39cb49fa625ffd88e410">axis2_msg_ctx_t</a> *&nbsp;</td>
          <td class="paramname"> <em>msg_ctx</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const <a class="el" href="structaxutil__env.html">axutil_env_t</a> *&nbsp;</td>
          <td class="paramname"> <em>env</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype"><a class="el" href="group__axis2__endpoint__ref.html#gf6e89c83a6b553e7e3f11e787b3fecd4">axis2_endpoint_ref_t</a> *&nbsp;</td>
          <td class="paramname"> <em>reference</em></td><td>&nbsp;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td><td width="100%"></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
Sets WS-Addressing reply to address indicating the location to which the reply would be sent. <dl compact><dt><b>Parameters:</b></dt><dd>
  <table border="0" cellspacing="2" cellpadding="0">
    <tr><td valign="top"></td><td valign="top"><em>msg_ctx</em>&nbsp;</td><td>message context </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>env</em>&nbsp;</td><td>pointer to environment struct </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>reference</em>&nbsp;</td><td>pointer to endpoint reference representing reply to address </td></tr>
  </table>
</dl>
<dl class="return" compact><dt><b>Returns:</b></dt><dd>AXIS2_SUCCESS on success, else AXIS2_FAILURE </dd></dl>

</div>
</div><p>
<a class="anchor" name="g5232bb8c1a80fc1ddc686308feaa852c"></a><!-- doxytag: member="axis2_msg_ctx.h::axis2_msg_ctx_set_required_auth_is_http" ref="g5232bb8c1a80fc1ddc686308feaa852c" args="(axis2_msg_ctx_t *msg_ctx, const axutil_env_t *env, const axis2_bool_t is_http)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">AXIS2_EXTERN axis2_status_t axis2_msg_ctx_set_required_auth_is_http           </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="group__axis2__msg__ctx.html#g160acae289ac39cb49fa625ffd88e410">axis2_msg_ctx_t</a> *&nbsp;</td>
          <td class="paramname"> <em>msg_ctx</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const <a class="el" href="structaxutil__env.html">axutil_env_t</a> *&nbsp;</td>
          <td class="paramname"> <em>env</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const axis2_bool_t&nbsp;</td>
          <td class="paramname"> <em>is_http</em></td><td>&nbsp;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td><td width="100%"></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
Sets whether HTTP Authentication is required or whether Proxy Authentication is required <dl compact><dt><b>Parameters:</b></dt><dd>
  <table border="0" cellspacing="2" cellpadding="0">
    <tr><td valign="top"></td><td valign="top"><em>msg_ctx</em>&nbsp;</td><td>message context </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>env</em>&nbsp;</td><td>pointer to environment struct </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>is_http</em>&nbsp;</td><td>use AXIS2_TRUE for HTTP Authentication and AXIS2_FALSE for Proxy Authentication </td></tr>
  </table>
</dl>
<dl class="return" compact><dt><b>Returns:</b></dt><dd>AXIS2_SUCCESS on success, else AXIS2_FAILURE </dd></dl>

</div>
</div><p>
<a class="anchor" name="gff90d0a3f90a95b7dcbce89c6a4d9a35"></a><!-- doxytag: member="axis2_msg_ctx.h::axis2_msg_ctx_set_response_soap_envelope" ref="gff90d0a3f90a95b7dcbce89c6a4d9a35" args="(axis2_msg_ctx_t *msg_ctx, const axutil_env_t *env, struct axiom_soap_envelope *soap_envelope)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">AXIS2_EXTERN axis2_status_t axis2_msg_ctx_set_response_soap_envelope           </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="group__axis2__msg__ctx.html#g160acae289ac39cb49fa625ffd88e410">axis2_msg_ctx_t</a> *&nbsp;</td>
          <td class="paramname"> <em>msg_ctx</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const <a class="el" href="structaxutil__env.html">axutil_env_t</a> *&nbsp;</td>
          <td class="paramname"> <em>env</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">struct axiom_soap_envelope *&nbsp;</td>
          <td class="paramname"> <em>soap_envelope</em></td><td>&nbsp;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td><td width="100%"></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
Sets response SOAP envelope. <dl compact><dt><b>Parameters:</b></dt><dd>
  <table border="0" cellspacing="2" cellpadding="0">
    <tr><td valign="top"></td><td valign="top"><em>msg_ctx</em>&nbsp;</td><td>message context </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>env</em>&nbsp;</td><td>pointer to environment struct </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>soap_envelope</em>&nbsp;</td><td>pointer to SOAP envelope, message context assumes ownership of SOAP envelope </td></tr>
  </table>
</dl>
<dl class="return" compact><dt><b>Returns:</b></dt><dd>AXIS2_SUCCESS on success, else AXIS2_FAILURE </dd></dl>

</div>
</div><p>
<a class="anchor" name="ge935eeecdb3a557edc1057ba572ff5c9"></a><!-- doxytag: member="axis2_msg_ctx.h::axis2_msg_ctx_set_rest_http_method" ref="ge935eeecdb3a557edc1057ba572ff5c9" args="(struct axis2_msg_ctx *msg_ctx, const axutil_env_t *env, const axis2_char_t *rest_http_method)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">AXIS2_EXTERN axis2_status_t axis2_msg_ctx_set_rest_http_method           </td>
          <td>(</td>
          <td class="paramtype">struct axis2_msg_ctx *&nbsp;</td>
          <td class="paramname"> <em>msg_ctx</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const <a class="el" href="structaxutil__env.html">axutil_env_t</a> *&nbsp;</td>
          <td class="paramname"> <em>env</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const axis2_char_t *&nbsp;</td>
          <td class="paramname"> <em>rest_http_method</em></td><td>&nbsp;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td><td width="100%"></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
Sets the HTTP Method that relates to the service that is related to the message context. <dl compact><dt><b>Parameters:</b></dt><dd>
  <table border="0" cellspacing="2" cellpadding="0">
    <tr><td valign="top"></td><td valign="top"><em>msg_ctx</em>&nbsp;</td><td>message context </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>env</em>&nbsp;</td><td>pointer to environment struct </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>rest_http_method</em>&nbsp;</td><td>HTTP Method string, msg_ctx does not assume ownership of rest_http_method. </td></tr>
  </table>
</dl>
<dl class="return" compact><dt><b>Returns:</b></dt><dd>AXIS2_SUCCESS on success, else AXIS2_FAILURE </dd></dl>

</div>
</div><p>
<a class="anchor" name="g3d12635f667d18ad9e5ce6ed6af42560"></a><!-- doxytag: member="axis2_msg_ctx.h::axis2_msg_ctx_set_server_side" ref="g3d12635f667d18ad9e5ce6ed6af42560" args="(axis2_msg_ctx_t *msg_ctx, const axutil_env_t *env, const axis2_bool_t server_side)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">AXIS2_EXTERN axis2_status_t axis2_msg_ctx_set_server_side           </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="group__axis2__msg__ctx.html#g160acae289ac39cb49fa625ffd88e410">axis2_msg_ctx_t</a> *&nbsp;</td>
          <td class="paramname"> <em>msg_ctx</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const <a class="el" href="structaxutil__env.html">axutil_env_t</a> *&nbsp;</td>
          <td class="paramname"> <em>env</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const axis2_bool_t&nbsp;</td>
          <td class="paramname"> <em>server_side</em></td><td>&nbsp;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td><td width="100%"></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
Sets the bool value indicating if it is the server side or the client side. <dl compact><dt><b>Parameters:</b></dt><dd>
  <table border="0" cellspacing="2" cellpadding="0">
    <tr><td valign="top"></td><td valign="top"><em>msg_ctx</em>&nbsp;</td><td>message context </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>env</em>&nbsp;</td><td>pointer to environment struct </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>server_side</em>&nbsp;</td><td>AXIS2_TRUE if it is server side, AXIS2_FALSE if it is client side </td></tr>
  </table>
</dl>
<dl class="return" compact><dt><b>Returns:</b></dt><dd>AXIS2_SUCCESS on success, else AXIS2_FAILURE </dd></dl>

</div>
</div><p>
<a class="anchor" name="g7c76ec8bcc8ec1fa8728d60625de44c8"></a><!-- doxytag: member="axis2_msg_ctx.h::axis2_msg_ctx_set_soap_action" ref="g7c76ec8bcc8ec1fa8728d60625de44c8" args="(axis2_msg_ctx_t *msg_ctx, const axutil_env_t *env, axutil_string_t *soap_action)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">AXIS2_EXTERN axis2_status_t axis2_msg_ctx_set_soap_action           </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="group__axis2__msg__ctx.html#g160acae289ac39cb49fa625ffd88e410">axis2_msg_ctx_t</a> *&nbsp;</td>
          <td class="paramname"> <em>msg_ctx</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const <a class="el" href="structaxutil__env.html">axutil_env_t</a> *&nbsp;</td>
          <td class="paramname"> <em>env</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">axutil_string_t *&nbsp;</td>
          <td class="paramname"> <em>soap_action</em></td><td>&nbsp;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td><td width="100%"></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
Sets SOAP action. <dl compact><dt><b>Parameters:</b></dt><dd>
  <table border="0" cellspacing="2" cellpadding="0">
    <tr><td valign="top"></td><td valign="top"><em>msg_ctx</em>&nbsp;</td><td>message context </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>env</em>&nbsp;</td><td>pointer to environment struct </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>soap_action</em>&nbsp;</td><td>SOAP action string </td></tr>
  </table>
</dl>
<dl class="return" compact><dt><b>Returns:</b></dt><dd>AXIS2_SUCCESS on success, else AXIS2_FAILURE </dd></dl>

</div>
</div><p>
<a class="anchor" name="g805be33a022232ca42fb58fad77e6ddf"></a><!-- doxytag: member="axis2_msg_ctx.h::axis2_msg_ctx_set_soap_envelope" ref="g805be33a022232ca42fb58fad77e6ddf" args="(axis2_msg_ctx_t *msg_ctx, const axutil_env_t *env, struct axiom_soap_envelope *soap_envelope)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">AXIS2_EXTERN axis2_status_t axis2_msg_ctx_set_soap_envelope           </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="group__axis2__msg__ctx.html#g160acae289ac39cb49fa625ffd88e410">axis2_msg_ctx_t</a> *&nbsp;</td>
          <td class="paramname"> <em>msg_ctx</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const <a class="el" href="structaxutil__env.html">axutil_env_t</a> *&nbsp;</td>
          <td class="paramname"> <em>env</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">struct axiom_soap_envelope *&nbsp;</td>
          <td class="paramname"> <em>soap_envelope</em></td><td>&nbsp;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td><td width="100%"></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
Sets SOAP envelope. The fact that if it is the request SOAP envelope or that of response depends on the current status represented by message context. <dl compact><dt><b>Parameters:</b></dt><dd>
  <table border="0" cellspacing="2" cellpadding="0">
    <tr><td valign="top"></td><td valign="top"><em>msg_ctx</em>&nbsp;</td><td>message context </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>env</em>&nbsp;</td><td>pointer to environment struct </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>soap_envelope</em>&nbsp;</td><td>pointer to SOAP envelope, message context assumes ownership of SOAP envelope </td></tr>
  </table>
</dl>
<dl class="return" compact><dt><b>Returns:</b></dt><dd>AXIS2_SUCCESS on success, else AXIS2_FAILURE </dd></dl>

</div>
</div><p>
<a class="anchor" name="g5550d319956309bc34205cba288e14b8"></a><!-- doxytag: member="axis2_msg_ctx.h::axis2_msg_ctx_set_status_code" ref="g5550d319956309bc34205cba288e14b8" args="(axis2_msg_ctx_t *msg_ctx, const axutil_env_t *env, const int status_code)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">AXIS2_EXTERN axis2_status_t axis2_msg_ctx_set_status_code           </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="group__axis2__msg__ctx.html#g160acae289ac39cb49fa625ffd88e410">axis2_msg_ctx_t</a> *&nbsp;</td>
          <td class="paramname"> <em>msg_ctx</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const <a class="el" href="structaxutil__env.html">axutil_env_t</a> *&nbsp;</td>
          <td class="paramname"> <em>env</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const int&nbsp;</td>
          <td class="paramname"> <em>status_code</em></td><td>&nbsp;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td><td width="100%"></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
Sets the int value indicating http status code <dl compact><dt><b>Parameters:</b></dt><dd>
  <table border="0" cellspacing="2" cellpadding="0">
    <tr><td valign="top"></td><td valign="top"><em>msg_ctx</em>&nbsp;</td><td>message context </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>env</em>&nbsp;</td><td>pointer to environment struct </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>status_code</em>&nbsp;</td><td>of the http response </td></tr>
  </table>
</dl>
<dl class="return" compact><dt><b>Returns:</b></dt><dd>AXIS2_SUCCESS on success, else AXIS2_FAILURE </dd></dl>

</div>
</div><p>
<a class="anchor" name="g0fb6ae57c92a4554697bd3e3877cd512"></a><!-- doxytag: member="axis2_msg_ctx.h::axis2_msg_ctx_set_supported_rest_http_methods" ref="g0fb6ae57c92a4554697bd3e3877cd512" args="(axis2_msg_ctx_t *msg_ctx, const axutil_env_t *env, axutil_array_list_t *supported_rest_http_methods)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">AXIS2_EXTERN axis2_status_t axis2_msg_ctx_set_supported_rest_http_methods           </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="group__axis2__msg__ctx.html#g160acae289ac39cb49fa625ffd88e410">axis2_msg_ctx_t</a> *&nbsp;</td>
          <td class="paramname"> <em>msg_ctx</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const <a class="el" href="structaxutil__env.html">axutil_env_t</a> *&nbsp;</td>
          <td class="paramname"> <em>env</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype"><a class="el" href="group__axutil__array__list.html#g1a6a89777db876cfa0cc86787b7be6a0">axutil_array_list_t</a> *&nbsp;</td>
          <td class="paramname"> <em>supported_rest_http_methods</em></td><td>&nbsp;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td><td width="100%"></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
Sets the list of supported REST HTTP Methods <dl compact><dt><b>Parameters:</b></dt><dd>
  <table border="0" cellspacing="2" cellpadding="0">
    <tr><td valign="top"></td><td valign="top"><em>msg_ctx</em>&nbsp;</td><td>message context </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>env</em>&nbsp;</td><td>pointer to environment struct </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>supported_rest_http_methods</em>&nbsp;</td><td>pointer array list containing the list of HTTP Methods supported. Message context does assumes the ownership of the array list. Anything added to this array list will be freed by the msg_ctx </td></tr>
  </table>
</dl>
<dl class="return" compact><dt><b>Returns:</b></dt><dd>AXIS2_SUCCESS on success, else AXIS2_FAILURE </dd></dl>

</div>
</div><p>
<a class="anchor" name="g643f1a3cc4d31f7b665f43a2dfc97967"></a><!-- doxytag: member="axis2_msg_ctx.h::axis2_msg_ctx_set_svc" ref="g643f1a3cc4d31f7b665f43a2dfc97967" args="(axis2_msg_ctx_t *msg_ctx, const axutil_env_t *env, struct axis2_svc *svc)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">AXIS2_EXTERN axis2_status_t axis2_msg_ctx_set_svc           </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="group__axis2__msg__ctx.html#g160acae289ac39cb49fa625ffd88e410">axis2_msg_ctx_t</a> *&nbsp;</td>
          <td class="paramname"> <em>msg_ctx</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const <a class="el" href="structaxutil__env.html">axutil_env_t</a> *&nbsp;</td>
          <td class="paramname"> <em>env</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">struct axis2_svc *&nbsp;</td>
          <td class="paramname"> <em>svc</em></td><td>&nbsp;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td><td width="100%"></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
Sets the service to which the operation to be invoked belongs. <dl compact><dt><b>Parameters:</b></dt><dd>
  <table border="0" cellspacing="2" cellpadding="0">
    <tr><td valign="top"></td><td valign="top"><em>msg_ctx</em>&nbsp;</td><td>message context </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>env</em>&nbsp;</td><td>pointer to environment struct </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>svc</em>&nbsp;</td><td>pointer to service struct, message context does not assume the ownership of struct </td></tr>
  </table>
</dl>
<dl class="return" compact><dt><b>Returns:</b></dt><dd>AXIS2_SUCCESS on success, else AXIS2_FAILURE </dd></dl>

</div>
</div><p>
<a class="anchor" name="gdf577adcf8ca0e59934d9d2e6c85ac6d"></a><!-- doxytag: member="axis2_msg_ctx.h::axis2_msg_ctx_set_svc_ctx" ref="gdf577adcf8ca0e59934d9d2e6c85ac6d" args="(axis2_msg_ctx_t *msg_ctx, const axutil_env_t *env, struct axis2_svc_ctx *svc_ctx)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">AXIS2_EXTERN axis2_status_t axis2_msg_ctx_set_svc_ctx           </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="group__axis2__msg__ctx.html#g160acae289ac39cb49fa625ffd88e410">axis2_msg_ctx_t</a> *&nbsp;</td>
          <td class="paramname"> <em>msg_ctx</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const <a class="el" href="structaxutil__env.html">axutil_env_t</a> *&nbsp;</td>
          <td class="paramname"> <em>env</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">struct axis2_svc_ctx *&nbsp;</td>
          <td class="paramname"> <em>svc_ctx</em></td><td>&nbsp;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td><td width="100%"></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
Sets service context. <dl compact><dt><b>Parameters:</b></dt><dd>
  <table border="0" cellspacing="2" cellpadding="0">
    <tr><td valign="top"></td><td valign="top"><em>msg_ctx</em>&nbsp;</td><td>message context </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>env</em>&nbsp;</td><td>pointer to environment struct </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>svc_ctx</em>&nbsp;</td><td>pointer to service context struct, message context does not assume the ownership of struct </td></tr>
  </table>
</dl>
<dl class="return" compact><dt><b>Returns:</b></dt><dd>AXIS2_SUCCESS on success, else AXIS2_FAILURE </dd></dl>

</div>
</div><p>
<a class="anchor" name="g2f35786b04d65569ae12d577e5e58778"></a><!-- doxytag: member="axis2_msg_ctx.h::axis2_msg_ctx_set_svc_ctx_id" ref="g2f35786b04d65569ae12d577e5e58778" args="(axis2_msg_ctx_t *msg_ctx, const axutil_env_t *env, const axis2_char_t *svc_ctx_id)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">AXIS2_EXTERN axis2_status_t axis2_msg_ctx_set_svc_ctx_id           </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="group__axis2__msg__ctx.html#g160acae289ac39cb49fa625ffd88e410">axis2_msg_ctx_t</a> *&nbsp;</td>
          <td class="paramname"> <em>msg_ctx</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const <a class="el" href="structaxutil__env.html">axutil_env_t</a> *&nbsp;</td>
          <td class="paramname"> <em>env</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const axis2_char_t *&nbsp;</td>
          <td class="paramname"> <em>svc_ctx_id</em></td><td>&nbsp;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td><td width="100%"></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
Sets the ID of service context that relates to the service that is related to the message context. <dl compact><dt><b>Parameters:</b></dt><dd>
  <table border="0" cellspacing="2" cellpadding="0">
    <tr><td valign="top"></td><td valign="top"><em>msg_ctx</em>&nbsp;</td><td>message context </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>env</em>&nbsp;</td><td>pointer to environment struct </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>svc_ctx_id</em>&nbsp;</td><td>The service context ID string </td></tr>
  </table>
</dl>
<dl class="return" compact><dt><b>Returns:</b></dt><dd>AXIS2_SUCCESS on success, else AXIS2_FAILURE </dd></dl>

</div>
</div><p>
<a class="anchor" name="ge687f88abc16f152d2cfecd2e32f6871"></a><!-- doxytag: member="axis2_msg_ctx.h::axis2_msg_ctx_set_svc_grp" ref="ge687f88abc16f152d2cfecd2e32f6871" args="(axis2_msg_ctx_t *msg_ctx, const axutil_env_t *env, struct axis2_svc_grp *svc_grp)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">AXIS2_EXTERN axis2_status_t axis2_msg_ctx_set_svc_grp           </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="group__axis2__msg__ctx.html#g160acae289ac39cb49fa625ffd88e410">axis2_msg_ctx_t</a> *&nbsp;</td>
          <td class="paramname"> <em>msg_ctx</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const <a class="el" href="structaxutil__env.html">axutil_env_t</a> *&nbsp;</td>
          <td class="paramname"> <em>env</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">struct axis2_svc_grp *&nbsp;</td>
          <td class="paramname"> <em>svc_grp</em></td><td>&nbsp;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td><td width="100%"></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
Sets the service group to which the service to be invoked belongs. <dl compact><dt><b>Parameters:</b></dt><dd>
  <table border="0" cellspacing="2" cellpadding="0">
    <tr><td valign="top"></td><td valign="top"><em>msg_ctx</em>&nbsp;</td><td>message context </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>env</em>&nbsp;</td><td>pointer to environment struct </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>svc_grp</em>&nbsp;</td><td>pointer to service group struct, message context does not assume the ownership of the struct </td></tr>
  </table>
</dl>
<dl class="return" compact><dt><b>Returns:</b></dt><dd>AXIS2_SUCCESS on success, else AXIS2_FAILURE </dd></dl>

</div>
</div><p>
<a class="anchor" name="g608927368afc580dfa9f30a88438cab7"></a><!-- doxytag: member="axis2_msg_ctx.h::axis2_msg_ctx_set_svc_grp_ctx" ref="g608927368afc580dfa9f30a88438cab7" args="(axis2_msg_ctx_t *msg_ctx, const axutil_env_t *env, struct axis2_svc_grp_ctx *svc_grp_ctx)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">AXIS2_EXTERN axis2_status_t axis2_msg_ctx_set_svc_grp_ctx           </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="group__axis2__msg__ctx.html#g160acae289ac39cb49fa625ffd88e410">axis2_msg_ctx_t</a> *&nbsp;</td>
          <td class="paramname"> <em>msg_ctx</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const <a class="el" href="structaxutil__env.html">axutil_env_t</a> *&nbsp;</td>
          <td class="paramname"> <em>env</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">struct axis2_svc_grp_ctx *&nbsp;</td>
          <td class="paramname"> <em>svc_grp_ctx</em></td><td>&nbsp;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td><td width="100%"></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
Gets service group context. The returned service group context relates to the service group to which the service, related to the message context, belongs. <dl compact><dt><b>Parameters:</b></dt><dd>
  <table border="0" cellspacing="2" cellpadding="0">
    <tr><td valign="top"></td><td valign="top"><em>msg_ctx</em>&nbsp;</td><td>message context </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>env</em>&nbsp;</td><td>pointer to environment struct </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>svc_grp_ctx</em>&nbsp;</td><td>pointer to service group context </td></tr>
  </table>
</dl>
<dl class="return" compact><dt><b>Returns:</b></dt><dd>AXIS2_SUCCESS on success, else AXIS2_FAILURE </dd></dl>

</div>
</div><p>
<a class="anchor" name="g420039e5d3ebb705ae0dd172a7e1d760"></a><!-- doxytag: member="axis2_msg_ctx.h::axis2_msg_ctx_set_svc_grp_ctx_id" ref="g420039e5d3ebb705ae0dd172a7e1d760" args="(axis2_msg_ctx_t *msg_ctx, const axutil_env_t *env, axutil_string_t *svc_grp_ctx_id)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">AXIS2_EXTERN axis2_status_t axis2_msg_ctx_set_svc_grp_ctx_id           </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="group__axis2__msg__ctx.html#g160acae289ac39cb49fa625ffd88e410">axis2_msg_ctx_t</a> *&nbsp;</td>
          <td class="paramname"> <em>msg_ctx</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const <a class="el" href="structaxutil__env.html">axutil_env_t</a> *&nbsp;</td>
          <td class="paramname"> <em>env</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">axutil_string_t *&nbsp;</td>
          <td class="paramname"> <em>svc_grp_ctx_id</em></td><td>&nbsp;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td><td width="100%"></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
Sets the service group context ID. <dl compact><dt><b>Parameters:</b></dt><dd>
  <table border="0" cellspacing="2" cellpadding="0">
    <tr><td valign="top"></td><td valign="top"><em>msg_ctx</em>&nbsp;</td><td>message context </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>env</em>&nbsp;</td><td>pointer to environment struct </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>svc_grp_ctx_id</em>&nbsp;</td><td>service group context ID string </td></tr>
  </table>
</dl>
<dl class="return" compact><dt><b>Returns:</b></dt><dd>AXIS2_SUCCESS on success, else AXIS2_FAILURE </dd></dl>

</div>
</div><p>
<a class="anchor" name="ge1f6c9f77e01f1e59ce285de19d958a6"></a><!-- doxytag: member="axis2_msg_ctx.h::axis2_msg_ctx_set_to" ref="ge1f6c9f77e01f1e59ce285de19d958a6" args="(axis2_msg_ctx_t *msg_ctx, const axutil_env_t *env, axis2_endpoint_ref_t *reference)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">AXIS2_EXTERN axis2_status_t axis2_msg_ctx_set_to           </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="group__axis2__msg__ctx.html#g160acae289ac39cb49fa625ffd88e410">axis2_msg_ctx_t</a> *&nbsp;</td>
          <td class="paramname"> <em>msg_ctx</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const <a class="el" href="structaxutil__env.html">axutil_env_t</a> *&nbsp;</td>
          <td class="paramname"> <em>env</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype"><a class="el" href="group__axis2__endpoint__ref.html#gf6e89c83a6b553e7e3f11e787b3fecd4">axis2_endpoint_ref_t</a> *&nbsp;</td>
          <td class="paramname"> <em>reference</em></td><td>&nbsp;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td><td width="100%"></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
Sets WS-Addressing to address. <dl compact><dt><b>Parameters:</b></dt><dd>
  <table border="0" cellspacing="2" cellpadding="0">
    <tr><td valign="top"></td><td valign="top"><em>msg_ctx</em>&nbsp;</td><td>message context </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>env</em>&nbsp;</td><td>pointer to environment struct </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>reference</em>&nbsp;</td><td>pointer to endpoint reference struct representing the address where the request should be sent to. message context assumes ownership of endpoint struct </td></tr>
  </table>
</dl>
<dl class="return" compact><dt><b>Returns:</b></dt><dd>AXIS2_SUCCESS on success, else AXIS2_FAILURE </dd></dl>

</div>
</div><p>
<a class="anchor" name="g3e7ceeadac1d2a0b295947bbaa0adca7"></a><!-- doxytag: member="axis2_msg_ctx.h::axis2_msg_ctx_set_transfer_encoding" ref="g3e7ceeadac1d2a0b295947bbaa0adca7" args="(axis2_msg_ctx_t *msg_ctx, const axutil_env_t *env, axis2_char_t *str)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">AXIS2_EXTERN axis2_status_t axis2_msg_ctx_set_transfer_encoding           </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="group__axis2__msg__ctx.html#g160acae289ac39cb49fa625ffd88e410">axis2_msg_ctx_t</a> *&nbsp;</td>
          <td class="paramname"> <em>msg_ctx</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const <a class="el" href="structaxutil__env.html">axutil_env_t</a> *&nbsp;</td>
          <td class="paramname"> <em>env</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">axis2_char_t *&nbsp;</td>
          <td class="paramname"> <em>str</em></td><td>&nbsp;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td><td width="100%"></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
Sets the transfer encoding used <dl compact><dt><b>Parameters:</b></dt><dd>
  <table border="0" cellspacing="2" cellpadding="0">
    <tr><td valign="top"></td><td valign="top"><em>msg_ctx</em>&nbsp;</td><td>message context </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>env</em>&nbsp;</td><td>pointer to environment struct </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>str</em>&nbsp;</td><td>Transfer encoding string </td></tr>
  </table>
</dl>
<dl class="return" compact><dt><b>Returns:</b></dt><dd>AXIS2_SUCCESS on success, else AXIS2_FAILURE </dd></dl>

</div>
</div><p>
<a class="anchor" name="g71be3edb48396a26b8adbd307df23376"></a><!-- doxytag: member="axis2_msg_ctx.h::axis2_msg_ctx_set_transport_headers" ref="g71be3edb48396a26b8adbd307df23376" args="(axis2_msg_ctx_t *msg_ctx, const axutil_env_t *env, axutil_hash_t *transport_headers)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">AXIS2_EXTERN axis2_status_t axis2_msg_ctx_set_transport_headers           </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="group__axis2__msg__ctx.html#g160acae289ac39cb49fa625ffd88e410">axis2_msg_ctx_t</a> *&nbsp;</td>
          <td class="paramname"> <em>msg_ctx</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const <a class="el" href="structaxutil__env.html">axutil_env_t</a> *&nbsp;</td>
          <td class="paramname"> <em>env</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype"><a class="el" href="group__axutil__hash.html#gb2d7d14db2de92a101573f44421ac12a">axutil_hash_t</a> *&nbsp;</td>
          <td class="paramname"> <em>transport_headers</em></td><td>&nbsp;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td><td width="100%"></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
Sets the Transport Headers <dl compact><dt><b>Parameters:</b></dt><dd>
  <table border="0" cellspacing="2" cellpadding="0">
    <tr><td valign="top"></td><td valign="top"><em>msg_ctx</em>&nbsp;</td><td>message context </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>env</em>&nbsp;</td><td>pointer to environment struct </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>transport_headers</em>&nbsp;</td><td>a Hash containing the Transport Headers </td></tr>
  </table>
</dl>
<dl class="return" compact><dt><b>Returns:</b></dt><dd>AXIS2_SUCCESS on success, else AXIS2_FAILURE </dd></dl>

</div>
</div><p>
<a class="anchor" name="g341daeb3f8280985160048c1c868c64b"></a><!-- doxytag: member="axis2_msg_ctx.h::axis2_msg_ctx_set_transport_in_desc" ref="g341daeb3f8280985160048c1c868c64b" args="(axis2_msg_ctx_t *msg_ctx, const axutil_env_t *env, struct axis2_transport_in_desc *transport_in_desc)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">AXIS2_EXTERN axis2_status_t axis2_msg_ctx_set_transport_in_desc           </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="group__axis2__msg__ctx.html#g160acae289ac39cb49fa625ffd88e410">axis2_msg_ctx_t</a> *&nbsp;</td>
          <td class="paramname"> <em>msg_ctx</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const <a class="el" href="structaxutil__env.html">axutil_env_t</a> *&nbsp;</td>
          <td class="paramname"> <em>env</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">struct axis2_transport_in_desc *&nbsp;</td>
          <td class="paramname"> <em>transport_in_desc</em></td><td>&nbsp;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td><td width="100%"></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
Sets transport in description. <dl compact><dt><b>Parameters:</b></dt><dd>
  <table border="0" cellspacing="2" cellpadding="0">
    <tr><td valign="top"></td><td valign="top"><em>msg_ctx</em>&nbsp;</td><td>message context </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>env</em>&nbsp;</td><td>pointer to environment struct </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>transport_in_desc</em>&nbsp;</td><td>pointer to transport in description struct, message context does not assume the ownership of the struct </td></tr>
  </table>
</dl>
<dl class="return" compact><dt><b>Returns:</b></dt><dd>AXIS2_SUCCESS on success, else AXIS2_FAILURE </dd></dl>

</div>
</div><p>
<a class="anchor" name="g7a70711fb12e2503062ae6f3f91430c6"></a><!-- doxytag: member="axis2_msg_ctx.h::axis2_msg_ctx_set_transport_out_desc" ref="g7a70711fb12e2503062ae6f3f91430c6" args="(axis2_msg_ctx_t *msg_ctx, const axutil_env_t *env, struct axis2_transport_out_desc *transport_out_desc)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">AXIS2_EXTERN axis2_status_t axis2_msg_ctx_set_transport_out_desc           </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="group__axis2__msg__ctx.html#g160acae289ac39cb49fa625ffd88e410">axis2_msg_ctx_t</a> *&nbsp;</td>
          <td class="paramname"> <em>msg_ctx</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const <a class="el" href="structaxutil__env.html">axutil_env_t</a> *&nbsp;</td>
          <td class="paramname"> <em>env</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">struct axis2_transport_out_desc *&nbsp;</td>
          <td class="paramname"> <em>transport_out_desc</em></td><td>&nbsp;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td><td width="100%"></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
Sets transport out description. <dl compact><dt><b>Parameters:</b></dt><dd>
  <table border="0" cellspacing="2" cellpadding="0">
    <tr><td valign="top"></td><td valign="top"><em>msg_ctx</em>&nbsp;</td><td>message context </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>env</em>&nbsp;</td><td>pointer to environment struct </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>transport_out_desc</em>&nbsp;</td><td>pointer to transport out description, message context does not assume the ownership of the struct </td></tr>
  </table>
</dl>
<dl class="return" compact><dt><b>Returns:</b></dt><dd>AXIS2_SUCCESS on success, else AXIS2_FAILURE </dd></dl>

</div>
</div><p>
<a class="anchor" name="g4c96b5bf44bd6bb0364b877554605e63"></a><!-- doxytag: member="axis2_msg_ctx.h::axis2_msg_ctx_set_transport_out_stream" ref="g4c96b5bf44bd6bb0364b877554605e63" args="(axis2_msg_ctx_t *msg_ctx, const axutil_env_t *env, axutil_stream_t *stream)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">AXIS2_EXTERN axis2_status_t axis2_msg_ctx_set_transport_out_stream           </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="group__axis2__msg__ctx.html#g160acae289ac39cb49fa625ffd88e410">axis2_msg_ctx_t</a> *&nbsp;</td>
          <td class="paramname"> <em>msg_ctx</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const <a class="el" href="structaxutil__env.html">axutil_env_t</a> *&nbsp;</td>
          <td class="paramname"> <em>env</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">axutil_stream_t *&nbsp;</td>
          <td class="paramname"> <em>stream</em></td><td>&nbsp;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td><td width="100%"></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
Sets the Transport Out Stream <dl compact><dt><b>Parameters:</b></dt><dd>
  <table border="0" cellspacing="2" cellpadding="0">
    <tr><td valign="top"></td><td valign="top"><em>msg_ctx</em>&nbsp;</td><td>message context </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>env</em>&nbsp;</td><td>pointer to environment struct </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>stream</em>&nbsp;</td><td>reference to Transport Out Stream </td></tr>
  </table>
</dl>
<dl class="return" compact><dt><b>Returns:</b></dt><dd>AXIS2_SUCCESS on success, else AXIS2_FAILURE </dd></dl>

</div>
</div><p>
<a class="anchor" name="gcd9816724abf529406fa977b6838f481"></a><!-- doxytag: member="axis2_msg_ctx.h::axis2_msg_ctx_set_transport_url" ref="gcd9816724abf529406fa977b6838f481" args="(axis2_msg_ctx_t *msg_ctx, const axutil_env_t *env, axis2_char_t *str)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">AXIS2_EXTERN axis2_status_t axis2_msg_ctx_set_transport_url           </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="group__axis2__msg__ctx.html#g160acae289ac39cb49fa625ffd88e410">axis2_msg_ctx_t</a> *&nbsp;</td>
          <td class="paramname"> <em>msg_ctx</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const <a class="el" href="structaxutil__env.html">axutil_env_t</a> *&nbsp;</td>
          <td class="paramname"> <em>env</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">axis2_char_t *&nbsp;</td>
          <td class="paramname"> <em>str</em></td><td>&nbsp;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td><td width="100%"></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
Sets the Transport URL <dl compact><dt><b>Parameters:</b></dt><dd>
  <table border="0" cellspacing="2" cellpadding="0">
    <tr><td valign="top"></td><td valign="top"><em>msg_ctx</em>&nbsp;</td><td>message context </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>env</em>&nbsp;</td><td>pointer to environment struct </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>str</em>&nbsp;</td><td>Transport URL string </td></tr>
  </table>
</dl>
<dl class="return" compact><dt><b>Returns:</b></dt><dd>AXIS2_SUCCESS on success, else AXIS2_FAILURE </dd></dl>

</div>
</div><p>
<a class="anchor" name="g1d1b6917c9c9b885e1f658b0787afea3"></a><!-- doxytag: member="axis2_msg_ctx.h::axis2_msg_ctx_set_wsa_action" ref="g1d1b6917c9c9b885e1f658b0787afea3" args="(axis2_msg_ctx_t *msg_ctx, const axutil_env_t *env, const axis2_char_t *action_uri)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">AXIS2_EXTERN axis2_status_t axis2_msg_ctx_set_wsa_action           </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="group__axis2__msg__ctx.html#g160acae289ac39cb49fa625ffd88e410">axis2_msg_ctx_t</a> *&nbsp;</td>
          <td class="paramname"> <em>msg_ctx</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const <a class="el" href="structaxutil__env.html">axutil_env_t</a> *&nbsp;</td>
          <td class="paramname"> <em>env</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const axis2_char_t *&nbsp;</td>
          <td class="paramname"> <em>action_uri</em></td><td>&nbsp;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td><td width="100%"></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
Sets WS-Addressing action. <dl compact><dt><b>Parameters:</b></dt><dd>
  <table border="0" cellspacing="2" cellpadding="0">
    <tr><td valign="top"></td><td valign="top"><em>msg_ctx</em>&nbsp;</td><td>message context </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>env</em>&nbsp;</td><td>pointer to environment struct </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>action_uri</em>&nbsp;</td><td>WSA action URI string </td></tr>
  </table>
</dl>
<dl class="return" compact><dt><b>Returns:</b></dt><dd>AXIS2_SUCCESS on success, else AXIS2_FAILURE </dd></dl>

</div>
</div><p>
<a class="anchor" name="g03166053a7a0bb7db94ace6e56436f81"></a><!-- doxytag: member="axis2_msg_ctx.h::axis2_msg_ctx_set_wsa_message_id" ref="g03166053a7a0bb7db94ace6e56436f81" args="(axis2_msg_ctx_t *msg_ctx, const axutil_env_t *env, const axis2_char_t *message_id)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">AXIS2_EXTERN axis2_status_t axis2_msg_ctx_set_wsa_message_id           </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="group__axis2__msg__ctx.html#g160acae289ac39cb49fa625ffd88e410">axis2_msg_ctx_t</a> *&nbsp;</td>
          <td class="paramname"> <em>msg_ctx</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const <a class="el" href="structaxutil__env.html">axutil_env_t</a> *&nbsp;</td>
          <td class="paramname"> <em>env</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const axis2_char_t *&nbsp;</td>
          <td class="paramname"> <em>message_id</em></td><td>&nbsp;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td><td width="100%"></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
Sets WS-Addressing message ID. <dl compact><dt><b>Parameters:</b></dt><dd>
  <table border="0" cellspacing="2" cellpadding="0">
    <tr><td valign="top"></td><td valign="top"><em>msg_ctx</em>&nbsp;</td><td>message context </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>env</em>&nbsp;</td><td>pointer to environment struct </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>message_id</em>&nbsp;</td><td>pointer to message ID string </td></tr>
  </table>
</dl>
<dl class="return" compact><dt><b>Returns:</b></dt><dd>AXIS2_SUCCESS on success, else AXIS2_FAILURE </dd></dl>

</div>
</div><p>
<hr size="1"><address style="text-align: right;"><small>Generated on Fri Apr 17 11:49:45 2009 for Axis2/C by&nbsp;
<a href="http://www.doxygen.org/index.html">
<img src="doxygen.png" alt="doxygen" align="middle" border="0"></a> 1.5.3 </small></address>
</body>
</html>


<|start_filename|>xdocs/api/html/group__axis2__op__ctx.html<|end_filename|>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html><head><meta http-equiv="Content-Type" content="text/html;charset=UTF-8">
<title>Axis2/C: operation context</title>
<link href="doxygen.css" rel="stylesheet" type="text/css">
<link href="tabs.css" rel="stylesheet" type="text/css">
</head><body>
<!-- Generated by Doxygen 1.5.3 -->
<div class="tabs">
  <ul>
    <li><a href="index.html"><span>Main&nbsp;Page</span></a></li>
    <li><a href="modules.html"><span>Modules</span></a></li>
    <li><a href="annotated.html"><span>Classes</span></a></li>
    <li><a href="files.html"><span>Files</span></a></li>
    <li><a href="dirs.html"><span>Directories</span></a></li>
    <li><a href="pages.html"><span>Related&nbsp;Pages</span></a></li>
    <li><a href="examples.html"><span>Examples</span></a></li>
    <li>
      <form action="search.php" method="get">
        <table cellspacing="0" cellpadding="0" border="0">
          <tr>
            <td><label>&nbsp;<u>S</u>earch&nbsp;for&nbsp;</label></td>
            <td><input type="text" name="query" value="" size="20" accesskey="s"/></td>
          </tr>
        </table>
      </form>
    </li>
  </ul>
</div>
<h1>operation context<br>
<small>
[<a class="el" href="group__axis2__context.html">Context Hierarchy</a>]</small>
</h1><table border="0" cellpadding="0" cellspacing="0">
<tr><td></td></tr>
<tr><td colspan="2"><br><h2>Files</h2></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top">file &nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="axis2__op__ctx_8h.html">axis2_op_ctx.h</a></td></tr>

<tr><td colspan="2"><br><h2>Typedefs</h2></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top">typedef struct <br>
axis2_op_ctx&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__axis2__op__ctx.html#ga1a3bbd22f2313e8da5bd031ea8190c9">axis2_op_ctx_t</a></td></tr>

<tr><td colspan="2"><br><h2>Functions</h2></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top">AXIS2_EXTERN <br>
<a class="el" href="group__axis2__op__ctx.html#ga1a3bbd22f2313e8da5bd031ea8190c9">axis2_op_ctx_t</a> *&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__axis2__op__ctx.html#gddc4d7ced709336945c3f951561cc5fd">axis2_op_ctx_create</a> (const <a class="el" href="structaxutil__env.html">axutil_env_t</a> *env, struct axis2_op *op, struct axis2_svc_ctx *svc_ctx)</td></tr>

<tr><td class="memItemLeft" nowrap align="right" valign="top">AXIS2_EXTERN <br>
<a class="el" href="group__axis2__ctx.html#ga705ff779281577f08fef5330c23402c">axis2_ctx_t</a> *&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__axis2__op__ctx.html#ge3983155246957addf3cf44128797b11">axis2_op_ctx_get_base</a> (const <a class="el" href="group__axis2__op__ctx.html#ga1a3bbd22f2313e8da5bd031ea8190c9">axis2_op_ctx_t</a> *op_ctx, const <a class="el" href="structaxutil__env.html">axutil_env_t</a> *env)</td></tr>

<tr><td class="memItemLeft" nowrap align="right" valign="top">AXIS2_EXTERN void&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__axis2__op__ctx.html#gc2a1dddeaf5f17bae65a8f26baef933b">axis2_op_ctx_free</a> (struct axis2_op_ctx *op_ctx, const <a class="el" href="structaxutil__env.html">axutil_env_t</a> *env)</td></tr>

<tr><td class="memItemLeft" nowrap align="right" valign="top">AXIS2_EXTERN <br>
axis2_status_t&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__axis2__op__ctx.html#g53622e5d4c37263fc6261e2b08f9116e">axis2_op_ctx_init</a> (struct axis2_op_ctx *op_ctx, const <a class="el" href="structaxutil__env.html">axutil_env_t</a> *env, struct axis2_conf *conf)</td></tr>

<tr><td class="memItemLeft" nowrap align="right" valign="top">AXIS2_EXTERN struct <br>
axis2_op *&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__axis2__op__ctx.html#g41e85fb871ff0b60c48f8794d85c3270">axis2_op_ctx_get_op</a> (const <a class="el" href="group__axis2__op__ctx.html#ga1a3bbd22f2313e8da5bd031ea8190c9">axis2_op_ctx_t</a> *op_ctx, const <a class="el" href="structaxutil__env.html">axutil_env_t</a> *env)</td></tr>

<tr><td class="memItemLeft" nowrap align="right" valign="top">AXIS2_EXTERN struct <br>
axis2_svc_ctx *&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__axis2__op__ctx.html#g2c28e9321f282f79b6aa7b5575171fd5">axis2_op_ctx_get_parent</a> (const <a class="el" href="group__axis2__op__ctx.html#ga1a3bbd22f2313e8da5bd031ea8190c9">axis2_op_ctx_t</a> *op_ctx, const <a class="el" href="structaxutil__env.html">axutil_env_t</a> *env)</td></tr>

<tr><td class="memItemLeft" nowrap align="right" valign="top">AXIS2_EXTERN <br>
axis2_status_t&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__axis2__op__ctx.html#gd9f9beba0ac1e3e0cfafe4ee0fd9ffb8">axis2_op_ctx_add_msg_ctx</a> (struct axis2_op_ctx *op_ctx, const <a class="el" href="structaxutil__env.html">axutil_env_t</a> *env, <a class="el" href="group__axis2__msg__ctx.html#g160acae289ac39cb49fa625ffd88e410">axis2_msg_ctx_t</a> *msg_ctx)</td></tr>

<tr><td class="memItemLeft" nowrap align="right" valign="top">AXIS2_EXTERN <br>
<a class="el" href="group__axis2__msg__ctx.html#g160acae289ac39cb49fa625ffd88e410">axis2_msg_ctx_t</a> *&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__axis2__op__ctx.html#g0f79838f18e6689ea44620975092280f">axis2_op_ctx_get_msg_ctx</a> (const <a class="el" href="group__axis2__op__ctx.html#ga1a3bbd22f2313e8da5bd031ea8190c9">axis2_op_ctx_t</a> *op_ctx, const <a class="el" href="structaxutil__env.html">axutil_env_t</a> *env, const axis2_wsdl_msg_labels_t message_id)</td></tr>

<tr><td class="memItemLeft" nowrap align="right" valign="top">AXIS2_EXTERN axis2_bool_t&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__axis2__op__ctx.html#gb22ed4938df18e52dacc388e89a140d0">axis2_op_ctx_get_is_complete</a> (const <a class="el" href="group__axis2__op__ctx.html#ga1a3bbd22f2313e8da5bd031ea8190c9">axis2_op_ctx_t</a> *op_ctx, const <a class="el" href="structaxutil__env.html">axutil_env_t</a> *env)</td></tr>

<tr><td class="memItemLeft" nowrap align="right" valign="top">AXIS2_EXTERN <br>
axis2_status_t&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__axis2__op__ctx.html#g36163f4ddb00ed3a319f42a1bd1700fc">axis2_op_ctx_set_complete</a> (struct axis2_op_ctx *op_ctx, const <a class="el" href="structaxutil__env.html">axutil_env_t</a> *env, axis2_bool_t is_complete)</td></tr>

<tr><td class="memItemLeft" nowrap align="right" valign="top">AXIS2_EXTERN <br>
axis2_status_t&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__axis2__op__ctx.html#g7ae8623d063eed0d7120d49f025bc60b">axis2_op_ctx_cleanup</a> (struct axis2_op_ctx *op_ctx, const <a class="el" href="structaxutil__env.html">axutil_env_t</a> *env)</td></tr>

<tr><td class="memItemLeft" nowrap align="right" valign="top">AXIS2_EXTERN <br>
axis2_status_t&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__axis2__op__ctx.html#g89c08b1de5351278b0fa7f429e8c5c4d">axis2_op_ctx_set_parent</a> (struct axis2_op_ctx *op_ctx, const <a class="el" href="structaxutil__env.html">axutil_env_t</a> *env, struct axis2_svc_ctx *svc_ctx)</td></tr>

<tr><td class="memItemLeft" nowrap align="right" valign="top">AXIS2_EXTERN <br>
<a class="el" href="group__axis2__msg__ctx.html#g160acae289ac39cb49fa625ffd88e410">axis2_msg_ctx_t</a> **&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__axis2__op__ctx.html#g58997985678d28231a97a605967467bc">axis2_op_ctx_get_msg_ctx_map</a> (const <a class="el" href="group__axis2__op__ctx.html#ga1a3bbd22f2313e8da5bd031ea8190c9">axis2_op_ctx_t</a> *op_ctx, const <a class="el" href="structaxutil__env.html">axutil_env_t</a> *env)</td></tr>

<tr><td class="memItemLeft" nowrap align="right" valign="top">AXIS2_EXTERN <br>
axis2_status_t&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__axis2__op__ctx.html#ge742cc55efddb40eddffae46ba11125b">axis2_op_ctx_set_response_written</a> (<a class="el" href="group__axis2__op__ctx.html#ga1a3bbd22f2313e8da5bd031ea8190c9">axis2_op_ctx_t</a> *op_ctx, const <a class="el" href="structaxutil__env.html">axutil_env_t</a> *env, const axis2_bool_t response_written)</td></tr>

<tr><td class="memItemLeft" nowrap align="right" valign="top">AXIS2_EXTERN axis2_bool_t&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__axis2__op__ctx.html#g875d36b0b70b77d84f99969da22e462f">axis2_op_ctx_get_response_written</a> (const <a class="el" href="group__axis2__op__ctx.html#ga1a3bbd22f2313e8da5bd031ea8190c9">axis2_op_ctx_t</a> *op_ctx, const <a class="el" href="structaxutil__env.html">axutil_env_t</a> *env)</td></tr>

<tr><td class="memItemLeft" nowrap align="right" valign="top">AXIS2_EXTERN void&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__axis2__op__ctx.html#ga465e10f016efca08e1beecbcb0c98ce">axis2_op_ctx_destroy_mutex</a> (struct axis2_op_ctx *op_ctx, const <a class="el" href="structaxutil__env.html">axutil_env_t</a> *env)</td></tr>

<tr><td class="memItemLeft" nowrap align="right" valign="top">AXIS2_EXTERN axis2_bool_t&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__axis2__op__ctx.html#g016e131eb3c18c134e81f48f0639eae5">axis2_op_ctx_is_in_use</a> (const <a class="el" href="group__axis2__op__ctx.html#ga1a3bbd22f2313e8da5bd031ea8190c9">axis2_op_ctx_t</a> *op_ctx, const <a class="el" href="structaxutil__env.html">axutil_env_t</a> *env)</td></tr>

<tr><td class="memItemLeft" nowrap align="right" valign="top">AXIS2_EXTERN <br>
axis2_status_t&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__axis2__op__ctx.html#g6b8ae393777089b614b4a771720ce8dd">axis2_op_ctx_set_in_use</a> (struct axis2_op_ctx *op_ctx, const <a class="el" href="structaxutil__env.html">axutil_env_t</a> *env, axis2_bool_t is_in_use)</td></tr>

<tr><td class="memItemLeft" nowrap align="right" valign="top">AXIS2_EXTERN <br>
axis2_status_t&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__axis2__op__ctx.html#g20a35685dc844e4c81aac603a8121dcb">axis2_op_ctx_increment_ref</a> (<a class="el" href="group__axis2__op__ctx.html#ga1a3bbd22f2313e8da5bd031ea8190c9">axis2_op_ctx_t</a> *op_ctx, const <a class="el" href="structaxutil__env.html">axutil_env_t</a> *env)</td></tr>

</table>
<hr><a name="_details"></a><h2>Detailed Description</h2>
operation context represents a running "instance" of an operation. operation context allows messages to be grouped into operations as in WSDL 2.0 specification. operations are essentially arbitrary message exchange patterns (MEP). So as messages are being exchanged, operation context remembers the state of message exchange pattern specifics. The implementation of operation context supports MEPs which have one input message and/or one output message. In order to support other MEPs one must extend this struct. <hr><h2>Typedef Documentation</h2>
<a class="anchor" name="ga1a3bbd22f2313e8da5bd031ea8190c9"></a><!-- doxytag: member="axis2_op_ctx.h::axis2_op_ctx_t" ref="ga1a3bbd22f2313e8da5bd031ea8190c9" args="" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">typedef struct axis2_op_ctx <a class="el" href="group__axis2__op__ctx.html#ga1a3bbd22f2313e8da5bd031ea8190c9">axis2_op_ctx_t</a>          </td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
Type name for struct axis2_op_ctx 
</div>
</div><p>
<hr><h2>Function Documentation</h2>
<a class="anchor" name="gd9f9beba0ac1e3e0cfafe4ee0fd9ffb8"></a><!-- doxytag: member="axis2_op_ctx.h::axis2_op_ctx_add_msg_ctx" ref="gd9f9beba0ac1e3e0cfafe4ee0fd9ffb8" args="(struct axis2_op_ctx *op_ctx, const axutil_env_t *env, axis2_msg_ctx_t *msg_ctx)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">AXIS2_EXTERN axis2_status_t axis2_op_ctx_add_msg_ctx           </td>
          <td>(</td>
          <td class="paramtype">struct axis2_op_ctx *&nbsp;</td>
          <td class="paramname"> <em>op_ctx</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const <a class="el" href="structaxutil__env.html">axutil_env_t</a> *&nbsp;</td>
          <td class="paramname"> <em>env</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype"><a class="el" href="group__axis2__msg__ctx.html#g160acae289ac39cb49fa625ffd88e410">axis2_msg_ctx_t</a> *&nbsp;</td>
          <td class="paramname"> <em>msg_ctx</em></td><td>&nbsp;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td><td width="100%"></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
Adds a message context. <dl compact><dt><b>Parameters:</b></dt><dd>
  <table border="0" cellspacing="2" cellpadding="0">
    <tr><td valign="top"></td><td valign="top"><em>op_ctx</em>&nbsp;</td><td>pointer to operation context </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>env</em>&nbsp;</td><td>pointer to environment struct </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>msg_ctx</em>&nbsp;</td><td>pointer to message context does not assume the ownership of the struct </td></tr>
  </table>
</dl>
<dl class="return" compact><dt><b>Returns:</b></dt><dd>AXIS2_SUCCESS on success, else AXIS2_FAILURE </dd></dl>

</div>
</div><p>
<a class="anchor" name="g7ae8623d063eed0d7120d49f025bc60b"></a><!-- doxytag: member="axis2_op_ctx.h::axis2_op_ctx_cleanup" ref="g7ae8623d063eed0d7120d49f025bc60b" args="(struct axis2_op_ctx *op_ctx, const axutil_env_t *env)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">AXIS2_EXTERN axis2_status_t axis2_op_ctx_cleanup           </td>
          <td>(</td>
          <td class="paramtype">struct axis2_op_ctx *&nbsp;</td>
          <td class="paramname"> <em>op_ctx</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const <a class="el" href="structaxutil__env.html">axutil_env_t</a> *&nbsp;</td>
          <td class="paramname"> <em>env</em></td><td>&nbsp;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td><td width="100%"></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
Cleans up the operation context. Clean up includes removing all message context references recorded in operation context. <dl compact><dt><b>Parameters:</b></dt><dd>
  <table border="0" cellspacing="2" cellpadding="0">
    <tr><td valign="top"></td><td valign="top"><em>op_ctx</em>&nbsp;</td><td>pointer to operation context </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>env</em>&nbsp;</td><td>pointer to environment struct </td></tr>
  </table>
</dl>
<dl class="return" compact><dt><b>Returns:</b></dt><dd>AXIS2_SUCCESS on success, else AXIS2_FAILURE </dd></dl>

</div>
</div><p>
<a class="anchor" name="gddc4d7ced709336945c3f951561cc5fd"></a><!-- doxytag: member="axis2_op_ctx.h::axis2_op_ctx_create" ref="gddc4d7ced709336945c3f951561cc5fd" args="(const axutil_env_t *env, struct axis2_op *op, struct axis2_svc_ctx *svc_ctx)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">AXIS2_EXTERN <a class="el" href="group__axis2__op__ctx.html#ga1a3bbd22f2313e8da5bd031ea8190c9">axis2_op_ctx_t</a>* axis2_op_ctx_create           </td>
          <td>(</td>
          <td class="paramtype">const <a class="el" href="structaxutil__env.html">axutil_env_t</a> *&nbsp;</td>
          <td class="paramname"> <em>env</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">struct axis2_op *&nbsp;</td>
          <td class="paramname"> <em>op</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">struct axis2_svc_ctx *&nbsp;</td>
          <td class="paramname"> <em>svc_ctx</em></td><td>&nbsp;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td><td width="100%"></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
Creates an operation context struct instance. <dl compact><dt><b>Parameters:</b></dt><dd>
  <table border="0" cellspacing="2" cellpadding="0">
    <tr><td valign="top"></td><td valign="top"><em>env</em>&nbsp;</td><td>pointer to environment struct </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>op</em>&nbsp;</td><td>pointer to operation that is related to operation context. operation context does not assume the ownership of the struct </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>svc_ctx</em>&nbsp;</td><td>pointer to parent service context </td></tr>
  </table>
</dl>
<dl class="return" compact><dt><b>Returns:</b></dt><dd>pointer to newly created operation context </dd></dl>

</div>
</div><p>
<a class="anchor" name="ga465e10f016efca08e1beecbcb0c98ce"></a><!-- doxytag: member="axis2_op_ctx.h::axis2_op_ctx_destroy_mutex" ref="ga465e10f016efca08e1beecbcb0c98ce" args="(struct axis2_op_ctx *op_ctx, const axutil_env_t *env)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">AXIS2_EXTERN void axis2_op_ctx_destroy_mutex           </td>
          <td>(</td>
          <td class="paramtype">struct axis2_op_ctx *&nbsp;</td>
          <td class="paramname"> <em>op_ctx</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const <a class="el" href="structaxutil__env.html">axutil_env_t</a> *&nbsp;</td>
          <td class="paramname"> <em>env</em></td><td>&nbsp;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td><td width="100%"></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
Destroys mutex used to synchronize the read/write operations <dl compact><dt><b>Parameters:</b></dt><dd>
  <table border="0" cellspacing="2" cellpadding="0">
    <tr><td valign="top"></td><td valign="top"><em>op_ctx</em>&nbsp;</td><td>pointer to operation context </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>env</em>&nbsp;</td><td>pointer to environment struct </td></tr>
  </table>
</dl>
<dl class="return" compact><dt><b>Returns:</b></dt><dd>returns void </dd></dl>

</div>
</div><p>
<a class="anchor" name="gc2a1dddeaf5f17bae65a8f26baef933b"></a><!-- doxytag: member="axis2_op_ctx.h::axis2_op_ctx_free" ref="gc2a1dddeaf5f17bae65a8f26baef933b" args="(struct axis2_op_ctx *op_ctx, const axutil_env_t *env)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">AXIS2_EXTERN void axis2_op_ctx_free           </td>
          <td>(</td>
          <td class="paramtype">struct axis2_op_ctx *&nbsp;</td>
          <td class="paramname"> <em>op_ctx</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const <a class="el" href="structaxutil__env.html">axutil_env_t</a> *&nbsp;</td>
          <td class="paramname"> <em>env</em></td><td>&nbsp;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td><td width="100%"></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
Frees operation context. <dl compact><dt><b>Parameters:</b></dt><dd>
  <table border="0" cellspacing="2" cellpadding="0">
    <tr><td valign="top"></td><td valign="top"><em>op_ctx</em>&nbsp;</td><td>pointer to operation context </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>env</em>&nbsp;</td><td>pointer to environment struct </td></tr>
  </table>
</dl>
<dl class="return" compact><dt><b>Returns:</b></dt><dd>void </dd></dl>

</div>
</div><p>
<a class="anchor" name="ge3983155246957addf3cf44128797b11"></a><!-- doxytag: member="axis2_op_ctx.h::axis2_op_ctx_get_base" ref="ge3983155246957addf3cf44128797b11" args="(const axis2_op_ctx_t *op_ctx, const axutil_env_t *env)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">AXIS2_EXTERN <a class="el" href="group__axis2__ctx.html#ga705ff779281577f08fef5330c23402c">axis2_ctx_t</a>* axis2_op_ctx_get_base           </td>
          <td>(</td>
          <td class="paramtype">const <a class="el" href="group__axis2__op__ctx.html#ga1a3bbd22f2313e8da5bd031ea8190c9">axis2_op_ctx_t</a> *&nbsp;</td>
          <td class="paramname"> <em>op_ctx</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const <a class="el" href="structaxutil__env.html">axutil_env_t</a> *&nbsp;</td>
          <td class="paramname"> <em>env</em></td><td>&nbsp;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td><td width="100%"></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
Gets base which is of context type. <dl compact><dt><b>Parameters:</b></dt><dd>
  <table border="0" cellspacing="2" cellpadding="0">
    <tr><td valign="top"></td><td valign="top"><em>op_ctx</em>&nbsp;</td><td>pointer to operation context </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>env</em>&nbsp;</td><td>pointer to environment struct </td></tr>
  </table>
</dl>
<dl class="return" compact><dt><b>Returns:</b></dt><dd>pointer to base context </dd></dl>

</div>
</div><p>
<a class="anchor" name="gb22ed4938df18e52dacc388e89a140d0"></a><!-- doxytag: member="axis2_op_ctx.h::axis2_op_ctx_get_is_complete" ref="gb22ed4938df18e52dacc388e89a140d0" args="(const axis2_op_ctx_t *op_ctx, const axutil_env_t *env)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">AXIS2_EXTERN axis2_bool_t axis2_op_ctx_get_is_complete           </td>
          <td>(</td>
          <td class="paramtype">const <a class="el" href="group__axis2__op__ctx.html#ga1a3bbd22f2313e8da5bd031ea8190c9">axis2_op_ctx_t</a> *&nbsp;</td>
          <td class="paramname"> <em>op_ctx</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const <a class="el" href="structaxutil__env.html">axutil_env_t</a> *&nbsp;</td>
          <td class="paramname"> <em>env</em></td><td>&nbsp;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td><td width="100%"></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
Gets the bool value indicating if the MEP is complete. MEP is considered complete when all the messages that are associated with the MEP has arrived. <dl compact><dt><b>Parameters:</b></dt><dd>
  <table border="0" cellspacing="2" cellpadding="0">
    <tr><td valign="top"></td><td valign="top"><em>op_ctx</em>&nbsp;</td><td>pointer to operation context </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>env</em>&nbsp;</td><td>pointer to environment struct </td></tr>
  </table>
</dl>
<dl class="return" compact><dt><b>Returns:</b></dt><dd>AXIS2_TRUE if MEP invocation is complete, else AXIS2_FALSE </dd></dl>

</div>
</div><p>
<a class="anchor" name="g0f79838f18e6689ea44620975092280f"></a><!-- doxytag: member="axis2_op_ctx.h::axis2_op_ctx_get_msg_ctx" ref="g0f79838f18e6689ea44620975092280f" args="(const axis2_op_ctx_t *op_ctx, const axutil_env_t *env, const axis2_wsdl_msg_labels_t message_id)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">AXIS2_EXTERN <a class="el" href="group__axis2__msg__ctx.html#g160acae289ac39cb49fa625ffd88e410">axis2_msg_ctx_t</a>* axis2_op_ctx_get_msg_ctx           </td>
          <td>(</td>
          <td class="paramtype">const <a class="el" href="group__axis2__op__ctx.html#ga1a3bbd22f2313e8da5bd031ea8190c9">axis2_op_ctx_t</a> *&nbsp;</td>
          <td class="paramname"> <em>op_ctx</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const <a class="el" href="structaxutil__env.html">axutil_env_t</a> *&nbsp;</td>
          <td class="paramname"> <em>env</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const axis2_wsdl_msg_labels_t&nbsp;</td>
          <td class="paramname"> <em>message_id</em></td><td>&nbsp;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td><td width="100%"></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
Gets message context with the given message ID. <dl compact><dt><b>Parameters:</b></dt><dd>
  <table border="0" cellspacing="2" cellpadding="0">
    <tr><td valign="top"></td><td valign="top"><em>op_ctx</em>&nbsp;</td><td>pointer to operation context </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>env</em>&nbsp;</td><td>pointer to environment struct </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>message_id</em>&nbsp;</td><td>message label of type axis2_wsdl_msg_labels_t. This can be one of AXIS2_WSDL_MESSAGE_LABEL_IN or AXIS2_WSDL_MESSAGE_LABEL_OUT from the axis2_wsdl_msg_labels enum. </td></tr>
  </table>
</dl>
<dl class="return" compact><dt><b>Returns:</b></dt><dd>pointer to message context with given ID </dd></dl>

</div>
</div><p>
<a class="anchor" name="g58997985678d28231a97a605967467bc"></a><!-- doxytag: member="axis2_op_ctx.h::axis2_op_ctx_get_msg_ctx_map" ref="g58997985678d28231a97a605967467bc" args="(const axis2_op_ctx_t *op_ctx, const axutil_env_t *env)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">AXIS2_EXTERN <a class="el" href="group__axis2__msg__ctx.html#g160acae289ac39cb49fa625ffd88e410">axis2_msg_ctx_t</a>** axis2_op_ctx_get_msg_ctx_map           </td>
          <td>(</td>
          <td class="paramtype">const <a class="el" href="group__axis2__op__ctx.html#ga1a3bbd22f2313e8da5bd031ea8190c9">axis2_op_ctx_t</a> *&nbsp;</td>
          <td class="paramname"> <em>op_ctx</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const <a class="el" href="structaxutil__env.html">axutil_env_t</a> *&nbsp;</td>
          <td class="paramname"> <em>env</em></td><td>&nbsp;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td><td width="100%"></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
Gets the message context map. <dl compact><dt><b>Parameters:</b></dt><dd>
  <table border="0" cellspacing="2" cellpadding="0">
    <tr><td valign="top"></td><td valign="top"><em>op_ctx</em>&nbsp;</td><td>pointer to operation context </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>env</em>&nbsp;</td><td>pointer to environment struct </td></tr>
  </table>
</dl>
<dl class="return" compact><dt><b>Returns:</b></dt><dd>pointer to hash table containing message contexts </dd></dl>

</div>
</div><p>
<a class="anchor" name="g41e85fb871ff0b60c48f8794d85c3270"></a><!-- doxytag: member="axis2_op_ctx.h::axis2_op_ctx_get_op" ref="g41e85fb871ff0b60c48f8794d85c3270" args="(const axis2_op_ctx_t *op_ctx, const axutil_env_t *env)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">AXIS2_EXTERN struct axis2_op* axis2_op_ctx_get_op           </td>
          <td>(</td>
          <td class="paramtype">const <a class="el" href="group__axis2__op__ctx.html#ga1a3bbd22f2313e8da5bd031ea8190c9">axis2_op_ctx_t</a> *&nbsp;</td>
          <td class="paramname"> <em>op_ctx</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const <a class="el" href="structaxutil__env.html">axutil_env_t</a> *&nbsp;</td>
          <td class="paramname"> <em>env</em></td><td>&nbsp;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td><td width="100%"><code> [read]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
Gets operation the operation context is related to. <dl compact><dt><b>Parameters:</b></dt><dd>
  <table border="0" cellspacing="2" cellpadding="0">
    <tr><td valign="top"></td><td valign="top"><em>op_ctx</em>&nbsp;</td><td>pointer to operation context </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>env</em>&nbsp;</td><td>pointer to environment struct </td></tr>
  </table>
</dl>
<dl class="return" compact><dt><b>Returns:</b></dt><dd>pointer to operation </dd></dl>

</div>
</div><p>
<a class="anchor" name="g2c28e9321f282f79b6aa7b5575171fd5"></a><!-- doxytag: member="axis2_op_ctx.h::axis2_op_ctx_get_parent" ref="g2c28e9321f282f79b6aa7b5575171fd5" args="(const axis2_op_ctx_t *op_ctx, const axutil_env_t *env)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">AXIS2_EXTERN struct axis2_svc_ctx* axis2_op_ctx_get_parent           </td>
          <td>(</td>
          <td class="paramtype">const <a class="el" href="group__axis2__op__ctx.html#ga1a3bbd22f2313e8da5bd031ea8190c9">axis2_op_ctx_t</a> *&nbsp;</td>
          <td class="paramname"> <em>op_ctx</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const <a class="el" href="structaxutil__env.html">axutil_env_t</a> *&nbsp;</td>
          <td class="paramname"> <em>env</em></td><td>&nbsp;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td><td width="100%"><code> [read]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
Gets parent which is of service context type. <dl compact><dt><b>Parameters:</b></dt><dd>
  <table border="0" cellspacing="2" cellpadding="0">
    <tr><td valign="top"></td><td valign="top"><em>op_ctx</em>&nbsp;</td><td>pointer to operation context </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>env</em>&nbsp;</td><td>pointer to environment struct </td></tr>
  </table>
</dl>
<dl class="return" compact><dt><b>Returns:</b></dt><dd>pointer to service context within which this operation context lives </dd></dl>

</div>
</div><p>
<a class="anchor" name="g875d36b0b70b77d84f99969da22e462f"></a><!-- doxytag: member="axis2_op_ctx.h::axis2_op_ctx_get_response_written" ref="g875d36b0b70b77d84f99969da22e462f" args="(const axis2_op_ctx_t *op_ctx, const axutil_env_t *env)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">AXIS2_EXTERN axis2_bool_t axis2_op_ctx_get_response_written           </td>
          <td>(</td>
          <td class="paramtype">const <a class="el" href="group__axis2__op__ctx.html#ga1a3bbd22f2313e8da5bd031ea8190c9">axis2_op_ctx_t</a> *&nbsp;</td>
          <td class="paramname"> <em>op_ctx</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const <a class="el" href="structaxutil__env.html">axutil_env_t</a> *&nbsp;</td>
          <td class="paramname"> <em>env</em></td><td>&nbsp;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td><td width="100%"></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
Checks the response status, whether it is written or not. <dl compact><dt><b>Parameters:</b></dt><dd>
  <table border="0" cellspacing="2" cellpadding="0">
    <tr><td valign="top"></td><td valign="top"><em>op_ctx</em>&nbsp;</td><td>pointer to operation context </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>env</em>&nbsp;</td><td>pointer to environment struct </td></tr>
  </table>
</dl>
<dl class="return" compact><dt><b>Returns:</b></dt><dd>AXIS2_TRUE if response is already written, else AXIS2_FALSE </dd></dl>

</div>
</div><p>
<a class="anchor" name="g20a35685dc844e4c81aac603a8121dcb"></a><!-- doxytag: member="axis2_op_ctx.h::axis2_op_ctx_increment_ref" ref="g20a35685dc844e4c81aac603a8121dcb" args="(axis2_op_ctx_t *op_ctx, const axutil_env_t *env)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">AXIS2_EXTERN axis2_status_t axis2_op_ctx_increment_ref           </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="group__axis2__op__ctx.html#ga1a3bbd22f2313e8da5bd031ea8190c9">axis2_op_ctx_t</a> *&nbsp;</td>
          <td class="paramname"> <em>op_ctx</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const <a class="el" href="structaxutil__env.html">axutil_env_t</a> *&nbsp;</td>
          <td class="paramname"> <em>env</em></td><td>&nbsp;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td><td width="100%"></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
Incrementing the op_ctx ref count. This is necessary when prevent freeing op_ctx through op_client when it is in use as in sandesha where the msg_cts is stored. <dl compact><dt><b>Parameters:</b></dt><dd>
  <table border="0" cellspacing="2" cellpadding="0">
    <tr><td valign="top"></td><td valign="top"><em>op_ctx</em>&nbsp;</td><td>pointer to operation context </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>env</em>&nbsp;</td><td>pointer to environment struct </td></tr>
  </table>
</dl>
<dl class="return" compact><dt><b>Returns:</b></dt><dd>AXIS2_TRUE if still in use, else AXIS2_FALSE </dd></dl>

</div>
</div><p>
<a class="anchor" name="g53622e5d4c37263fc6261e2b08f9116e"></a><!-- doxytag: member="axis2_op_ctx.h::axis2_op_ctx_init" ref="g53622e5d4c37263fc6261e2b08f9116e" args="(struct axis2_op_ctx *op_ctx, const axutil_env_t *env, struct axis2_conf *conf)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">AXIS2_EXTERN axis2_status_t axis2_op_ctx_init           </td>
          <td>(</td>
          <td class="paramtype">struct axis2_op_ctx *&nbsp;</td>
          <td class="paramname"> <em>op_ctx</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const <a class="el" href="structaxutil__env.html">axutil_env_t</a> *&nbsp;</td>
          <td class="paramname"> <em>env</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">struct axis2_conf *&nbsp;</td>
          <td class="paramname"> <em>conf</em></td><td>&nbsp;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td><td width="100%"></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
Initializes operation context. This method traverses through all the message contexts stored within it and initialize them all. <dl compact><dt><b>Parameters:</b></dt><dd>
  <table border="0" cellspacing="2" cellpadding="0">
    <tr><td valign="top"></td><td valign="top"><em>op_ctx</em>&nbsp;</td><td>pointer to operation context </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>env</em>&nbsp;</td><td>pointer to environment struct </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>conf</em>&nbsp;</td><td>pointer to conf configuration </td></tr>
  </table>
</dl>
<dl class="return" compact><dt><b>Returns:</b></dt><dd>AXIS2_SUCCESS on success, else AXIS2_FAILURE </dd></dl>

</div>
</div><p>
<a class="anchor" name="g016e131eb3c18c134e81f48f0639eae5"></a><!-- doxytag: member="axis2_op_ctx.h::axis2_op_ctx_is_in_use" ref="g016e131eb3c18c134e81f48f0639eae5" args="(const axis2_op_ctx_t *op_ctx, const axutil_env_t *env)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">AXIS2_EXTERN axis2_bool_t axis2_op_ctx_is_in_use           </td>
          <td>(</td>
          <td class="paramtype">const <a class="el" href="group__axis2__op__ctx.html#ga1a3bbd22f2313e8da5bd031ea8190c9">axis2_op_ctx_t</a> *&nbsp;</td>
          <td class="paramname"> <em>op_ctx</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const <a class="el" href="structaxutil__env.html">axutil_env_t</a> *&nbsp;</td>
          <td class="paramname"> <em>env</em></td><td>&nbsp;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td><td width="100%"></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
Checks whether op_ctx is in use. This is necessary when destroying the thread mutex at the http_worker to check whether the operation context is still in use <dl compact><dt><b>Parameters:</b></dt><dd>
  <table border="0" cellspacing="2" cellpadding="0">
    <tr><td valign="top"></td><td valign="top"><em>op_ctx</em>&nbsp;</td><td>pointer to operation context </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>env</em>&nbsp;</td><td>pointer to environment struct </td></tr>
  </table>
</dl>
<dl class="return" compact><dt><b>Returns:</b></dt><dd>AXIS2_TRUE if still in use, else AXIS2_FALSE </dd></dl>

</div>
</div><p>
<a class="anchor" name="g36163f4ddb00ed3a319f42a1bd1700fc"></a><!-- doxytag: member="axis2_op_ctx.h::axis2_op_ctx_set_complete" ref="g36163f4ddb00ed3a319f42a1bd1700fc" args="(struct axis2_op_ctx *op_ctx, const axutil_env_t *env, axis2_bool_t is_complete)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">AXIS2_EXTERN axis2_status_t axis2_op_ctx_set_complete           </td>
          <td>(</td>
          <td class="paramtype">struct axis2_op_ctx *&nbsp;</td>
          <td class="paramname"> <em>op_ctx</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const <a class="el" href="structaxutil__env.html">axutil_env_t</a> *&nbsp;</td>
          <td class="paramname"> <em>env</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">axis2_bool_t&nbsp;</td>
          <td class="paramname"> <em>is_complete</em></td><td>&nbsp;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td><td width="100%"></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
Sets the bool value indicating if the MEP is complete. MEP is considered complete when all the messages that are associated with the MEP has arrived. <dl compact><dt><b>Parameters:</b></dt><dd>
  <table border="0" cellspacing="2" cellpadding="0">
    <tr><td valign="top"></td><td valign="top"><em>op_ctx</em>&nbsp;</td><td>pointer to operating context </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>env</em>&nbsp;</td><td>pointer to environment struct </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>is_complete</em>&nbsp;</td><td>AXIS2_TRUE if MEP invocation is complete, else AXIS2_FALSE </td></tr>
  </table>
</dl>
<dl class="return" compact><dt><b>Returns:</b></dt><dd>AXIS2_SUCCESS on success, else AXIS2_FAILURE </dd></dl>

</div>
</div><p>
<a class="anchor" name="g6b8ae393777089b614b4a771720ce8dd"></a><!-- doxytag: member="axis2_op_ctx.h::axis2_op_ctx_set_in_use" ref="g6b8ae393777089b614b4a771720ce8dd" args="(struct axis2_op_ctx *op_ctx, const axutil_env_t *env, axis2_bool_t is_in_use)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">AXIS2_EXTERN axis2_status_t axis2_op_ctx_set_in_use           </td>
          <td>(</td>
          <td class="paramtype">struct axis2_op_ctx *&nbsp;</td>
          <td class="paramname"> <em>op_ctx</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const <a class="el" href="structaxutil__env.html">axutil_env_t</a> *&nbsp;</td>
          <td class="paramname"> <em>env</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">axis2_bool_t&nbsp;</td>
          <td class="paramname"> <em>is_in_use</em></td><td>&nbsp;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td><td width="100%"></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
Set operation context's is_in_use attribute. This is necessary when destroying the thread mutex at the http_worker to check whether the operation context is still in use <dl compact><dt><b>Parameters:</b></dt><dd>
  <table border="0" cellspacing="2" cellpadding="0">
    <tr><td valign="top"></td><td valign="top"><em>op_ctx</em>&nbsp;</td><td>pointer to operation context </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>env</em>&nbsp;</td><td>pointer to environment struct </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>is_in_use</em>&nbsp;</td><td>AXIS2_TRUE if still in use, else AXIS2_FALSE </td></tr>
  </table>
</dl>
<dl class="return" compact><dt><b>Returns:</b></dt><dd>AXIS2_TRUE if still in use, else AXIS2_FALSE </dd></dl>

</div>
</div><p>
<a class="anchor" name="g89c08b1de5351278b0fa7f429e8c5c4d"></a><!-- doxytag: member="axis2_op_ctx.h::axis2_op_ctx_set_parent" ref="g89c08b1de5351278b0fa7f429e8c5c4d" args="(struct axis2_op_ctx *op_ctx, const axutil_env_t *env, struct axis2_svc_ctx *svc_ctx)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">AXIS2_EXTERN axis2_status_t axis2_op_ctx_set_parent           </td>
          <td>(</td>
          <td class="paramtype">struct axis2_op_ctx *&nbsp;</td>
          <td class="paramname"> <em>op_ctx</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const <a class="el" href="structaxutil__env.html">axutil_env_t</a> *&nbsp;</td>
          <td class="paramname"> <em>env</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">struct axis2_svc_ctx *&nbsp;</td>
          <td class="paramname"> <em>svc_ctx</em></td><td>&nbsp;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td><td width="100%"></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
Sets parent service context. <dl compact><dt><b>Parameters:</b></dt><dd>
  <table border="0" cellspacing="2" cellpadding="0">
    <tr><td valign="top"></td><td valign="top"><em>op_ctx</em>&nbsp;</td><td>pointer to operation context </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>env</em>&nbsp;</td><td>pointer to environment struct </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>svc_ctx</em>&nbsp;</td><td>pointer to service context, message context does not assume the ownership of the struct </td></tr>
  </table>
</dl>
<dl class="return" compact><dt><b>Returns:</b></dt><dd>AXIS2_SUCCESS on success, else AXIS2_FAILURE </dd></dl>

</div>
</div><p>
<a class="anchor" name="ge742cc55efddb40eddffae46ba11125b"></a><!-- doxytag: member="axis2_op_ctx.h::axis2_op_ctx_set_response_written" ref="ge742cc55efddb40eddffae46ba11125b" args="(axis2_op_ctx_t *op_ctx, const axutil_env_t *env, const axis2_bool_t response_written)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">AXIS2_EXTERN axis2_status_t axis2_op_ctx_set_response_written           </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="group__axis2__op__ctx.html#ga1a3bbd22f2313e8da5bd031ea8190c9">axis2_op_ctx_t</a> *&nbsp;</td>
          <td class="paramname"> <em>op_ctx</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const <a class="el" href="structaxutil__env.html">axutil_env_t</a> *&nbsp;</td>
          <td class="paramname"> <em>env</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const axis2_bool_t&nbsp;</td>
          <td class="paramname"> <em>response_written</em></td><td>&nbsp;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td><td width="100%"></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
Sets the bool value indicating the status of response. <dl compact><dt><b>Parameters:</b></dt><dd>
  <table border="0" cellspacing="2" cellpadding="0">
    <tr><td valign="top"></td><td valign="top"><em>op_ctx</em>&nbsp;</td><td>pointer to operation context </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>env</em>&nbsp;</td><td>pointer to environment struct </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>response_written</em>&nbsp;</td><td>AXIS2_TRUE if response is written, else AXIS2_FALSE </td></tr>
  </table>
</dl>
<dl class="return" compact><dt><b>Returns:</b></dt><dd>AXIS2_SUCCESS on success, else AXIS2_FAILURE </dd></dl>

</div>
</div><p>
<hr size="1"><address style="text-align: right;"><small>Generated on Fri Apr 17 11:49:45 2009 for Axis2/C by&nbsp;
<a href="http://www.doxygen.org/index.html">
<img src="doxygen.png" alt="doxygen" align="middle" border="0"></a> 1.5.3 </small></address>
</body>
</html>


<|start_filename|>xdocs/api/html/axis2__handler_8h-source.html<|end_filename|>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html><head><meta http-equiv="Content-Type" content="text/html;charset=UTF-8">
<title>Axis2/C: axis2_handler.h Source File</title>
<link href="doxygen.css" rel="stylesheet" type="text/css">
<link href="tabs.css" rel="stylesheet" type="text/css">
</head><body>
<!-- Generated by Doxygen 1.5.3 -->
<div class="tabs">
  <ul>
    <li><a href="index.html"><span>Main&nbsp;Page</span></a></li>
    <li><a href="modules.html"><span>Modules</span></a></li>
    <li><a href="annotated.html"><span>Classes</span></a></li>
    <li class="current"><a href="files.html"><span>Files</span></a></li>
    <li><a href="dirs.html"><span>Directories</span></a></li>
    <li><a href="pages.html"><span>Related&nbsp;Pages</span></a></li>
    <li><a href="examples.html"><span>Examples</span></a></li>
    <li>
      <form action="search.php" method="get">
        <table cellspacing="0" cellpadding="0" border="0">
          <tr>
            <td><label>&nbsp;<u>S</u>earch&nbsp;for&nbsp;</label></td>
            <td><input type="text" name="query" value="" size="20" accesskey="s"/></td>
          </tr>
        </table>
      </form>
    </li>
  </ul>
</div>
<div class="nav">
<a class="el" href="dir_f60961de8e5edc3b2658ef023e959e45.html">deploy</a>&nbsp;&raquo&nbsp;<a class="el" href="dir_6b4e91e54b7316b376882a6402adbf44.html">include</a>&nbsp;&raquo&nbsp;<a class="el" href="dir_df3a7695d5a9e696f30b948b566829e7.html">axis2-1.6.0</a></div>
<h1>axis2_handler.h</h1><a href="axis2__handler_8h.html">Go to the documentation of this file.</a><div class="fragment"><pre class="fragment"><a name="l00001"></a>00001 
<a name="l00002"></a>00002 <span class="comment">/*</span>
<a name="l00003"></a>00003 <span class="comment"> * Licensed to the Apache Software Foundation (ASF) under one or more</span>
<a name="l00004"></a>00004 <span class="comment"> * contributor license agreements.  See the NOTICE file distributed with</span>
<a name="l00005"></a>00005 <span class="comment"> * this work for additional information regarding copyright ownership.</span>
<a name="l00006"></a>00006 <span class="comment"> * The ASF licenses this file to You under the Apache License, Version 2.0</span>
<a name="l00007"></a>00007 <span class="comment"> * (the "License"); you may not use this file except in compliance with</span>
<a name="l00008"></a>00008 <span class="comment"> * the License.  You may obtain a copy of the License at</span>
<a name="l00009"></a>00009 <span class="comment"> *</span>
<a name="l00010"></a>00010 <span class="comment"> *      http://www.apache.org/licenses/LICENSE-2.0</span>
<a name="l00011"></a>00011 <span class="comment"> *</span>
<a name="l00012"></a>00012 <span class="comment"> * Unless required by applicable law or agreed to in writing, software</span>
<a name="l00013"></a>00013 <span class="comment"> * distributed under the License is distributed on an "AS IS" BASIS,</span>
<a name="l00014"></a>00014 <span class="comment"> * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.</span>
<a name="l00015"></a>00015 <span class="comment"> * See the License for the specific language governing permissions and</span>
<a name="l00016"></a>00016 <span class="comment"> * limitations under the License.</span>
<a name="l00017"></a>00017 <span class="comment"> */</span>
<a name="l00018"></a>00018 
<a name="l00019"></a>00019 <span class="preprocessor">#ifndef AXIS2_HANDLER_H</span>
<a name="l00020"></a>00020 <span class="preprocessor"></span><span class="preprocessor">#define AXIS2_HANDLER_H</span>
<a name="l00021"></a>00021 <span class="preprocessor"></span>
<a name="l00041"></a>00041 <span class="preprocessor">#include &lt;<a class="code" href="axis2__defines_8h.html" title="Useful definitions, which may have platform concerns.">axis2_defines.h</a>&gt;</span>
<a name="l00042"></a>00042 <span class="preprocessor">#include &lt;<a class="code" href="axutil__qname_8h.html" title="represents a qualified name">axutil_qname.h</a>&gt;</span>
<a name="l00043"></a>00043 <span class="preprocessor">#include &lt;<a class="code" href="axutil__param_8h.html" title="Axis2 param interface.">axutil_param.h</a>&gt;</span>
<a name="l00044"></a>00044 
<a name="l00045"></a>00045 <span class="preprocessor">#ifdef __cplusplus</span>
<a name="l00046"></a>00046 <span class="preprocessor"></span><span class="keyword">extern</span> <span class="stringliteral">"C"</span>
<a name="l00047"></a>00047 {
<a name="l00048"></a>00048 <span class="preprocessor">#endif</span>
<a name="l00049"></a>00049 <span class="preprocessor"></span>
<a name="l00051"></a><a class="code" href="group__axis2__handler.html#g62e76f39f224fb84e98b6b77fdf4655c">00051</a>     <span class="keyword">typedef</span> <span class="keyword">struct </span>axis2_handler <a class="code" href="group__axis2__handler.html#g62e76f39f224fb84e98b6b77fdf4655c">axis2_handler_t</a>;
<a name="l00052"></a>00052 
<a name="l00053"></a>00053     <span class="keyword">struct </span>axis2_handler_desc;
<a name="l00054"></a>00054     <span class="keyword">struct </span>axis2_msg_ctx;
<a name="l00055"></a>00055 
<a name="l00056"></a>00056     <span class="keyword">typedef</span> axis2_status_t(
<a name="l00057"></a>00057         AXIS2_CALL
<a name="l00058"></a>00058         * AXIS2_HANDLER_INVOKE) (
<a name="l00059"></a>00059             <a class="code" href="group__axis2__handler.html#g62e76f39f224fb84e98b6b77fdf4655c">axis2_handler_t</a> * handler,
<a name="l00060"></a>00060             <span class="keyword">const</span> <a class="code" href="structaxutil__env.html" title="Axis2 Environment struct.">axutil_env_t</a> * env,
<a name="l00061"></a>00061             <span class="keyword">struct </span>axis2_msg_ctx * msg_ctx);
<a name="l00062"></a>00062 
<a name="l00069"></a>00069     AXIS2_EXTERN <span class="keywordtype">void</span> AXIS2_CALL
<a name="l00070"></a>00070     <a class="code" href="group__axis2__handler.html#g1e0beec4adf09b9326565095bec4691a">axis2_handler_free</a>(
<a name="l00071"></a>00071         <a class="code" href="group__axis2__handler.html#g62e76f39f224fb84e98b6b77fdf4655c">axis2_handler_t</a> * handler,
<a name="l00072"></a>00072         <span class="keyword">const</span> <a class="code" href="structaxutil__env.html" title="Axis2 Environment struct.">axutil_env_t</a> * env);
<a name="l00073"></a>00073 
<a name="l00081"></a>00081     AXIS2_EXTERN axis2_status_t AXIS2_CALL
<a name="l00082"></a>00082     <a class="code" href="group__axis2__handler.html#g2c33a42d1670dbe42f287a5e3d6dfd1d">axis2_handler_init</a>(
<a name="l00083"></a>00083         <a class="code" href="group__axis2__handler.html#g62e76f39f224fb84e98b6b77fdf4655c">axis2_handler_t</a> * handler,
<a name="l00084"></a>00084         <span class="keyword">const</span> <a class="code" href="structaxutil__env.html" title="Axis2 Environment struct.">axutil_env_t</a> * env,
<a name="l00085"></a>00085         <span class="keyword">struct</span> axis2_handler_desc *handler_desc);
<a name="l00086"></a>00086 
<a name="l00098"></a>00098     AXIS2_EXTERN axis2_status_t AXIS2_CALL
<a name="l00099"></a>00099     <a class="code" href="group__axis2__handler.html#gf53f1c483110e9e371069a9d87985742">axis2_handler_invoke</a>(
<a name="l00100"></a>00100         <a class="code" href="group__axis2__handler.html#g62e76f39f224fb84e98b6b77fdf4655c">axis2_handler_t</a> * handler,
<a name="l00101"></a>00101         <span class="keyword">const</span> <a class="code" href="structaxutil__env.html" title="Axis2 Environment struct.">axutil_env_t</a> * env,
<a name="l00102"></a>00102         <span class="keyword">struct</span> axis2_msg_ctx *msg_ctx);
<a name="l00103"></a>00103 
<a name="l00110"></a>00110     AXIS2_EXTERN <span class="keyword">const</span> axutil_string_t *AXIS2_CALL
<a name="l00111"></a>00111     <a class="code" href="group__axis2__handler.html#g155435ede9e1fcbe13b28dc321601216">axis2_handler_get_name</a>(
<a name="l00112"></a>00112         <span class="keyword">const</span> <a class="code" href="group__axis2__handler.html#g62e76f39f224fb84e98b6b77fdf4655c">axis2_handler_t</a> * handler,
<a name="l00113"></a>00113         <span class="keyword">const</span> <a class="code" href="structaxutil__env.html" title="Axis2 Environment struct.">axutil_env_t</a> * env);
<a name="l00114"></a>00114 
<a name="l00121"></a>00121     AXIS2_EXTERN axutil_param_t *AXIS2_CALL
<a name="l00122"></a>00122     <a class="code" href="group__axis2__handler.html#g6359a617f32df26f912923d4c73f695a">axis2_handler_get_param</a>(
<a name="l00123"></a>00123         <span class="keyword">const</span> <a class="code" href="group__axis2__handler.html#g62e76f39f224fb84e98b6b77fdf4655c">axis2_handler_t</a> * handler,
<a name="l00124"></a>00124         <span class="keyword">const</span> <a class="code" href="structaxutil__env.html" title="Axis2 Environment struct.">axutil_env_t</a> * env,
<a name="l00125"></a>00125         <span class="keyword">const</span> axis2_char_t * name);
<a name="l00126"></a>00126 
<a name="l00133"></a>00133     AXIS2_EXTERN <span class="keyword">struct </span>axis2_handler_desc *AXIS2_CALL
<a name="l00134"></a>00134 
<a name="l00135"></a>00135                 <a class="code" href="group__axis2__handler.html#g68ed525c6303fcf9cda284eef07b270e">axis2_handler_get_handler_desc</a>(
<a name="l00136"></a>00136                     <span class="keyword">const</span> <a class="code" href="group__axis2__handler.html#g62e76f39f224fb84e98b6b77fdf4655c">axis2_handler_t</a> * handler,
<a name="l00137"></a>00137                     <span class="keyword">const</span> <a class="code" href="structaxutil__env.html" title="Axis2 Environment struct.">axutil_env_t</a> * env);
<a name="l00138"></a>00138 
<a name="l00139"></a>00139     AXIS2_EXTERN axis2_status_t AXIS2_CALL
<a name="l00140"></a>00140     axis2_handler_set_invoke(
<a name="l00141"></a>00141         <a class="code" href="group__axis2__handler.html#g62e76f39f224fb84e98b6b77fdf4655c">axis2_handler_t</a> * handler,
<a name="l00142"></a>00142         <span class="keyword">const</span> <a class="code" href="structaxutil__env.html" title="Axis2 Environment struct.">axutil_env_t</a> * env,
<a name="l00143"></a>00143         AXIS2_HANDLER_INVOKE func);
<a name="l00144"></a>00144 
<a name="l00151"></a>00151     <span class="keyword">typedef</span> <a class="code" href="group__axis2__handler.html#g62e76f39f224fb84e98b6b77fdf4655c">axis2_handler_t</a> *(
<a name="l00152"></a>00152         AXIS2_CALL
<a name="l00153"></a><a class="code" href="group__axis2__handler.html#g097dac3689f86e2e189065c772a551f8">00153</a>         * <a class="code" href="group__axis2__handler.html#g097dac3689f86e2e189065c772a551f8">AXIS2_HANDLER_CREATE_FUNC</a>)(
<a name="l00154"></a>00154             <span class="keyword">const</span> <a class="code" href="structaxutil__env.html" title="Axis2 Environment struct.">axutil_env_t</a> * env,
<a name="l00155"></a>00155             <span class="keyword">const</span> axutil_string_t * name);
<a name="l00156"></a>00156 
<a name="l00162"></a>00162     AXIS2_EXTERN <a class="code" href="group__axis2__handler.html#g62e76f39f224fb84e98b6b77fdf4655c">axis2_handler_t</a> *AXIS2_CALL
<a name="l00163"></a>00163     <a class="code" href="group__axis2__handler.html#gf6ebc6af97f6e0f7f3709c3b474cb1e3">axis2_handler_create</a>(
<a name="l00164"></a>00164         <span class="keyword">const</span> <a class="code" href="structaxutil__env.html" title="Axis2 Environment struct.">axutil_env_t</a> * env);
<a name="l00165"></a>00165 
<a name="l00173"></a>00173     AXIS2_EXTERN <a class="code" href="group__axis2__handler.html#g62e76f39f224fb84e98b6b77fdf4655c">axis2_handler_t</a> *AXIS2_CALL
<a name="l00174"></a>00174     <a class="code" href="group__axis2__handler.html#geebcba75e6b92e7f3fa9ab4492390194">axis2_ctx_handler_create</a>(
<a name="l00175"></a>00175         <span class="keyword">const</span> <a class="code" href="structaxutil__env.html" title="Axis2 Environment struct.">axutil_env_t</a> * env,
<a name="l00176"></a>00176         <span class="keyword">const</span> axutil_string_t * qname);
<a name="l00177"></a>00177 
<a name="l00180"></a>00180 <span class="preprocessor">#ifdef __cplusplus</span>
<a name="l00181"></a>00181 <span class="preprocessor"></span>}
<a name="l00182"></a>00182 <span class="preprocessor">#endif</span>
<a name="l00183"></a>00183 <span class="preprocessor"></span>
<a name="l00184"></a>00184 <span class="preprocessor">#endif                          </span><span class="comment">/* AXIS2_HANDLER_H */</span>
</pre></div><hr size="1"><address style="text-align: right;"><small>Generated on Fri Apr 17 11:49:42 2009 for Axis2/C by&nbsp;
<a href="http://www.doxygen.org/index.html">
<img src="doxygen.png" alt="doxygen" align="middle" border="0"></a> 1.5.3 </small></address>
</body>
</html>


<|start_filename|>xdocs/api/html/axis2__disp_8h-source.html<|end_filename|>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html><head><meta http-equiv="Content-Type" content="text/html;charset=UTF-8">
<title>Axis2/C: axis2_disp.h Source File</title>
<link href="doxygen.css" rel="stylesheet" type="text/css">
<link href="tabs.css" rel="stylesheet" type="text/css">
</head><body>
<!-- Generated by Doxygen 1.5.3 -->
<div class="tabs">
  <ul>
    <li><a href="index.html"><span>Main&nbsp;Page</span></a></li>
    <li><a href="modules.html"><span>Modules</span></a></li>
    <li><a href="annotated.html"><span>Classes</span></a></li>
    <li class="current"><a href="files.html"><span>Files</span></a></li>
    <li><a href="dirs.html"><span>Directories</span></a></li>
    <li><a href="pages.html"><span>Related&nbsp;Pages</span></a></li>
    <li><a href="examples.html"><span>Examples</span></a></li>
    <li>
      <form action="search.php" method="get">
        <table cellspacing="0" cellpadding="0" border="0">
          <tr>
            <td><label>&nbsp;<u>S</u>earch&nbsp;for&nbsp;</label></td>
            <td><input type="text" name="query" value="" size="20" accesskey="s"/></td>
          </tr>
        </table>
      </form>
    </li>
  </ul>
</div>
<div class="nav">
<a class="el" href="dir_f60961de8e5edc3b2658ef023e959e45.html">deploy</a>&nbsp;&raquo&nbsp;<a class="el" href="dir_6b4e91e54b7316b376882a6402adbf44.html">include</a>&nbsp;&raquo&nbsp;<a class="el" href="dir_df3a7695d5a9e696f30b948b566829e7.html">axis2-1.6.0</a></div>
<h1>axis2_disp.h</h1><a href="axis2__disp_8h.html">Go to the documentation of this file.</a><div class="fragment"><pre class="fragment"><a name="l00001"></a>00001 
<a name="l00002"></a>00002 <span class="comment">/*</span>
<a name="l00003"></a>00003 <span class="comment">* Licensed to the Apache Software Foundation (ASF) under one or more</span>
<a name="l00004"></a>00004 <span class="comment">* contributor license agreements.  See the NOTICE file distributed with</span>
<a name="l00005"></a>00005 <span class="comment">* this work for additional information regarding copyright ownership.</span>
<a name="l00006"></a>00006 <span class="comment">* The ASF licenses this file to You under the Apache License, Version 2.0</span>
<a name="l00007"></a>00007 <span class="comment">* (the "License"); you may not use this file except in compliance with</span>
<a name="l00008"></a>00008 <span class="comment">* the License.  You may obtain a copy of the License at</span>
<a name="l00009"></a>00009 <span class="comment">*</span>
<a name="l00010"></a>00010 <span class="comment">*      http://www.apache.org/licenses/LICENSE-2.0</span>
<a name="l00011"></a>00011 <span class="comment">*</span>
<a name="l00012"></a>00012 <span class="comment">* Unless required by applicable law or agreed to in writing, software</span>
<a name="l00013"></a>00013 <span class="comment">* distributed under the License is distributed on an "AS IS" BASIS,</span>
<a name="l00014"></a>00014 <span class="comment">* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.</span>
<a name="l00015"></a>00015 <span class="comment">* See the License for the specific language governing permissions and</span>
<a name="l00016"></a>00016 <span class="comment">* limitations under the License.</span>
<a name="l00017"></a>00017 <span class="comment">*/</span>
<a name="l00018"></a>00018 
<a name="l00019"></a>00019 <span class="preprocessor">#ifndef AXIS2_DISP_H</span>
<a name="l00020"></a>00020 <span class="preprocessor"></span><span class="preprocessor">#define AXIS2_DISP_H</span>
<a name="l00021"></a>00021 <span class="preprocessor"></span>
<a name="l00039"></a>00039 <span class="preprocessor">#include &lt;<a class="code" href="axis2__defines_8h.html" title="Useful definitions, which may have platform concerns.">axis2_defines.h</a>&gt;</span>
<a name="l00040"></a>00040 <span class="preprocessor">#include &lt;axutil_string.h&gt;</span>
<a name="l00041"></a>00041 <span class="preprocessor">#include &lt;<a class="code" href="axis2__handler_8h.html">axis2_handler.h</a>&gt;</span>
<a name="l00042"></a>00042 <span class="preprocessor">#include &lt;<a class="code" href="axis2__svc_8h.html">axis2_svc.h</a>&gt;</span>
<a name="l00043"></a>00043 
<a name="l00044"></a>00044 <span class="preprocessor">#ifdef __cplusplus</span>
<a name="l00045"></a>00045 <span class="preprocessor"></span><span class="keyword">extern</span> <span class="stringliteral">"C"</span>
<a name="l00046"></a>00046 {
<a name="l00047"></a>00047 <span class="preprocessor">#endif</span>
<a name="l00048"></a>00048 <span class="preprocessor"></span>
<a name="l00049"></a>00049 <span class="preprocessor">#define AXIS2_DISP_NAMESPACE "http://axis.ws.apache.org"</span>
<a name="l00050"></a>00050 <span class="preprocessor"></span>
<a name="l00052"></a><a class="code" href="group__axis2__disp.html#g8f0bac449c79895127179ee88604be65">00052</a>     <span class="keyword">typedef</span> <span class="keyword">struct </span>axis2_disp <a class="code" href="group__axis2__disp.html#g8f0bac449c79895127179ee88604be65">axis2_disp_t</a>;
<a name="l00053"></a>00053 
<a name="l00061"></a>00061     AXIS2_EXTERN <a class="code" href="group__axis2__handler.html#g62e76f39f224fb84e98b6b77fdf4655c">axis2_handler_t</a> *AXIS2_CALL
<a name="l00062"></a>00062     <a class="code" href="group__axis2__disp.html#g493cb717b675286752bed9e62b314f38">axis2_disp_get_base</a>(
<a name="l00063"></a>00063         <span class="keyword">const</span> <a class="code" href="group__axis2__disp.html#g8f0bac449c79895127179ee88604be65">axis2_disp_t</a> * disp,
<a name="l00064"></a>00064         <span class="keyword">const</span> <a class="code" href="structaxutil__env.html" title="Axis2 Environment struct.">axutil_env_t</a> * env);
<a name="l00065"></a>00065 
<a name="l00073"></a>00073     AXIS2_EXTERN axutil_string_t *AXIS2_CALL
<a name="l00074"></a>00074     <a class="code" href="group__axis2__disp.html#g4b87234842d634edc406ccbf9aaa4f14">axis2_disp_get_name</a>(
<a name="l00075"></a>00075         <span class="keyword">const</span> <a class="code" href="group__axis2__disp.html#g8f0bac449c79895127179ee88604be65">axis2_disp_t</a> * disp,
<a name="l00076"></a>00076         <span class="keyword">const</span> <a class="code" href="structaxutil__env.html" title="Axis2 Environment struct.">axutil_env_t</a> * env);
<a name="l00077"></a>00077 
<a name="l00086"></a>00086     AXIS2_EXTERN axis2_status_t AXIS2_CALL
<a name="l00087"></a>00087     <a class="code" href="group__axis2__disp.html#g8282e341346127933098f7f170c6fd5e">axis2_disp_set_name</a>(
<a name="l00088"></a>00088         <a class="code" href="group__axis2__disp.html#g8f0bac449c79895127179ee88604be65">axis2_disp_t</a> * disp,
<a name="l00089"></a>00089         <span class="keyword">const</span> <a class="code" href="structaxutil__env.html" title="Axis2 Environment struct.">axutil_env_t</a> * env,
<a name="l00090"></a>00090         axutil_string_t * name);
<a name="l00091"></a>00091 
<a name="l00098"></a>00098     AXIS2_EXTERN <span class="keywordtype">void</span> AXIS2_CALL
<a name="l00099"></a>00099     <a class="code" href="group__axis2__disp.html#g4ba871cc3cb7913ca8850de9cf6ce8e1">axis2_disp_free</a>(
<a name="l00100"></a>00100         <a class="code" href="group__axis2__disp.html#g8f0bac449c79895127179ee88604be65">axis2_disp_t</a> * disp,
<a name="l00101"></a>00101         <span class="keyword">const</span> <a class="code" href="structaxutil__env.html" title="Axis2 Environment struct.">axutil_env_t</a> * env);
<a name="l00102"></a>00102 
<a name="l00109"></a>00109     AXIS2_EXTERN <a class="code" href="group__axis2__disp.html#g8f0bac449c79895127179ee88604be65">axis2_disp_t</a> *AXIS2_CALL
<a name="l00110"></a>00110     <a class="code" href="group__axis2__disp.html#g65066d9785fb1f3dbeeef3e4b478fccd">axis2_disp_create</a>(
<a name="l00111"></a>00111         <span class="keyword">const</span> <a class="code" href="structaxutil__env.html" title="Axis2 Environment struct.">axutil_env_t</a> * env,
<a name="l00112"></a>00112         <span class="keyword">const</span> axutil_string_t * name);
<a name="l00113"></a>00113 
<a name="l00114"></a>00114     axis2_status_t AXIS2_CALL
<a name="l00115"></a>00115     axis2_disp_find_svc_and_op(
<a name="l00116"></a>00116         <span class="keyword">struct</span> axis2_handler *handler,
<a name="l00117"></a>00117         <span class="keyword">const</span> <a class="code" href="structaxutil__env.html" title="Axis2 Environment struct.">axutil_env_t</a> * env,
<a name="l00118"></a>00118         <span class="keyword">struct</span> axis2_msg_ctx *msg_ctx);
<a name="l00119"></a>00119 
<a name="l00126"></a>00126     AXIS2_EXTERN <a class="code" href="group__axis2__disp.html#g8f0bac449c79895127179ee88604be65">axis2_disp_t</a> *AXIS2_CALL
<a name="l00127"></a>00127     <a class="code" href="group__axis2__disp.html#gf18d7e04a666303b7e2833c3234e770e">axis2_addr_disp_create</a>(
<a name="l00128"></a>00128         <span class="keyword">const</span> <a class="code" href="structaxutil__env.html" title="Axis2 Environment struct.">axutil_env_t</a> * env);
<a name="l00129"></a>00129 
<a name="l00136"></a>00136     AXIS2_EXTERN <a class="code" href="group__axis2__disp.html#g8f0bac449c79895127179ee88604be65">axis2_disp_t</a> *AXIS2_CALL
<a name="l00137"></a>00137     <a class="code" href="group__axis2__disp.html#g44abce5a9beda1c85ad8263af5971789">axis2_req_uri_disp_create</a>(
<a name="l00138"></a>00138         <span class="keyword">const</span> <a class="code" href="structaxutil__env.html" title="Axis2 Environment struct.">axutil_env_t</a> * env);
<a name="l00139"></a>00139 
<a name="l00146"></a>00146     AXIS2_EXTERN <a class="code" href="group__axis2__disp.html#g8f0bac449c79895127179ee88604be65">axis2_disp_t</a> *AXIS2_CALL
<a name="l00147"></a>00147     <a class="code" href="group__axis2__disp.html#g71f97a999b7c67d329477b2a0dc1b2ce">axis2_rest_disp_create</a>(
<a name="l00148"></a>00148         <span class="keyword">const</span> <a class="code" href="structaxutil__env.html" title="Axis2 Environment struct.">axutil_env_t</a> * env);
<a name="l00149"></a>00149 
<a name="l00156"></a>00156     AXIS2_EXTERN <a class="code" href="group__axis2__disp.html#g8f0bac449c79895127179ee88604be65">axis2_disp_t</a> *AXIS2_CALL
<a name="l00157"></a>00157     <a class="code" href="group__axis2__disp.html#g417c2e8127f982ad198e4804a331016c">axis2_soap_body_disp_create</a>(
<a name="l00158"></a>00158         <span class="keyword">const</span> <a class="code" href="structaxutil__env.html" title="Axis2 Environment struct.">axutil_env_t</a> * env);
<a name="l00159"></a>00159 
<a name="l00166"></a>00166     AXIS2_EXTERN <a class="code" href="group__axis2__disp.html#g8f0bac449c79895127179ee88604be65">axis2_disp_t</a> *AXIS2_CALL
<a name="l00167"></a>00167     <a class="code" href="group__axis2__disp.html#g7ce7cd65ca6b36076181dad1f6560bce">axis2_soap_action_disp_create</a>(
<a name="l00168"></a>00168         <span class="keyword">const</span> <a class="code" href="structaxutil__env.html" title="Axis2 Environment struct.">axutil_env_t</a> * env);
<a name="l00169"></a>00169 
<a name="l00170"></a>00170 <span class="preprocessor">#ifdef __cplusplus</span>
<a name="l00171"></a>00171 <span class="preprocessor"></span>}
<a name="l00172"></a>00172 <span class="preprocessor">#endif</span>
<a name="l00173"></a>00173 <span class="preprocessor"></span>
<a name="l00174"></a>00174 <span class="preprocessor">#endif                          </span><span class="comment">/* AXIS2_DISP_H */</span>
</pre></div><hr size="1"><address style="text-align: right;"><small>Generated on Fri Apr 17 11:49:42 2009 for Axis2/C by&nbsp;
<a href="http://www.doxygen.org/index.html">
<img src="doxygen.png" alt="doxygen" align="middle" border="0"></a> 1.5.3 </small></address>
</body>
</html>


<|start_filename|>util/test/rand/rand_test.c<|end_filename|>
#include "../util/create_env.h"

/** @brief test_rand 
 *   create random variable and get it's value 
 */

axis2_status_t test_rand(axutil_env_t *env)
{    
    int rand_number,rand_value,start = 2,end = 8,rand_range;
    unsigned seed = 10;
    
    rand_number = axutil_rand(&seed);
    if(!rand_number)
    {
        printf("Test axutil_rand failed\n");         
    }
    else
    {
        printf("Test axutil_rand is successfull\n");
        printf("The random value is %d\n",rand_number);
    }
    
    rand_range = axutil_rand_with_range(&seed,start,end);
    if(rand_range == -1)
    {
        printf("Test axutil_rand_with_range failed\n");
    }
    else
    {
        printf("Test axutil_rand_with_range is successfull\n");
        printf("The random seed value is %d\n",rand_range);
    }
    
    rand_value = axutil_rand_get_seed_value_based_on_time(env);
    if(!rand_value)
    {
        printf("The test axutil_rand_get_seed_value_based_on_time failed\n");
    }
    else
    {
        printf("Test axutil_rand_get_seed_value_based_on_time is successfull\n");
        printf("The random range is %d\n",rand_value);
    }
 
    return AXIS2_SUCCESS;
}

int main()
{
    int status = AXIS2_SUCCESS;
    axutil_env_t *env = NULL;

    env = create_environment();
    status = test_rand(env);

    if(status == AXIS2_FAILURE)
    {
        printf("Test  failed\n");
    }
    axutil_env_free(env);
    return 0;
}




<|start_filename|>src/core/clientapi/svc_client.c<|end_filename|>

/*
 * 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.
 */

#include <axis2_svc_client.h>
#include <axis2_phases_info.h>
#include <axis2_const.h>
#include <axutil_hash.h>
#include <axutil_uri.h>
#include "axis2_callback_recv.h"
#include <axiom_soap_const.h>
#include <axiom_soap_body.h>
#include <axiom_soap_header.h>
#include <axiom_util.h>
#include <axis2_listener_manager.h>
#include <axis2_module_desc.h>
#include <axutil_array_list.h>
#include <axis2_options.h>
#include <axis2_conf_init.h>
#include <platforms/axutil_platform_auto_sense.h>
#include <stdio.h>
#include <axutil_generic_obj.h>
#include <axis2_http_transport.h>
#include <axis2_http_header.h>
#include <neethi_util.h>
#include <axis2_policy_include.h>

struct axis2_svc_client
{
    axis2_svc_t *svc;

    axis2_conf_t *conf;

    axis2_conf_ctx_t *conf_ctx;

    axis2_svc_ctx_t *svc_ctx;

    axis2_options_t *options;

    axis2_options_t *override_options;

    /* SOAP Headers */
    axutil_array_list_t *headers;

    /* for receiving the async messages */
    axis2_callback_recv_t *callback_recv;

    axis2_listener_manager_t *listener_manager;

    axis2_op_client_t *op_client;

    axiom_soap_envelope_t *last_response_soap_envelope;

    axis2_bool_t last_response_has_fault;

    axis2_bool_t reuse;

    axis2_bool_t auth_failed;

    axis2_bool_t required_auth_is_http;

    axis2_char_t *auth_type;

    axutil_array_list_t *http_headers;

    int http_status_code;
    
    axis2_bool_t keep_externally_passed_ctx_and_svc;

};

static void axis2_svc_client_set_http_info(
    axis2_svc_client_t * svc_client,
    const axutil_env_t * env,
    axis2_msg_ctx_t * msg_ctx);

static axis2_svc_t *axis2_svc_client_create_annonymous_svc(
    axis2_svc_client_t * svc_client,
    const axutil_env_t * env);

static axis2_bool_t axis2_svc_client_init_transports_from_conf_ctx(
    const axutil_env_t * env,
    axis2_svc_client_t * svc_client,
    axis2_conf_ctx_t * conf_ctx,
    const axis2_char_t * client_home);

static axis2_bool_t axis2_svc_client_init_data(
    const axutil_env_t * env,
    axis2_svc_client_t * svc_client);

static axis2_bool_t axis2_svc_client_fill_soap_envelope(
    const axutil_env_t * env,
    axis2_svc_client_t * svc_client,
    axis2_msg_ctx_t * msg_ctx,
    const axiom_node_t * payload);

AXIS2_EXTERN axis2_svc_client_t *AXIS2_CALL
axis2_svc_client_create(
    const axutil_env_t * env,
    const axis2_char_t * client_home)
{
    axis2_svc_client_t *svc_client = NULL;

    AXIS2_ENV_CHECK(env, NULL);
    svc_client = axis2_svc_client_create_with_conf_ctx_and_svc(env,
                                                               client_home,
                                                               NULL, NULL);

    return svc_client;
}


AXIS2_EXTERN axis2_svc_client_t *AXIS2_CALL
axis2_svc_client_create_with_conf_ctx_and_svc(
    const axutil_env_t * env,
    const axis2_char_t * client_home,
    axis2_conf_ctx_t * conf_ctx,
    axis2_svc_t * svc)
{
    axis2_svc_client_t *svc_client = NULL;
    axis2_svc_grp_t *svc_grp = NULL;
    axis2_svc_grp_ctx_t *svc_grp_ctx = NULL;
    const axis2_char_t *svc_grp_name = NULL;

    svc_client = AXIS2_MALLOC(env->allocator, sizeof(axis2_svc_client_t));
    if (!svc_client)
    {
        AXIS2_ERROR_SET(env->error, AXIS2_ERROR_NO_MEMORY, AXIS2_FAILURE);
        AXIS2_LOG_ERROR(env->log, AXIS2_LOG_SI, "No memory. Cannot create service client.");
        return NULL;
    }
    
    svc_client->svc = NULL;
    svc_client->conf = NULL;
    svc_client->conf_ctx = NULL;
    svc_client->svc_ctx = NULL;
    svc_client->options = NULL;
    svc_client->override_options = NULL;
    svc_client->headers = NULL;
    svc_client->callback_recv = NULL;
    svc_client->listener_manager = NULL;
    svc_client->op_client = NULL;
    svc_client->last_response_soap_envelope = NULL;
    svc_client->last_response_has_fault = AXIS2_FALSE;
    svc_client->reuse = AXIS2_FALSE;
    svc_client->auth_failed = AXIS2_FALSE;
    svc_client->required_auth_is_http = AXIS2_FALSE;
    svc_client->auth_type = NULL;
	svc_client->http_headers = NULL;
    svc_client->keep_externally_passed_ctx_and_svc = AXIS2_FALSE;

    if (!axis2_svc_client_init_data(env, svc_client))
    {
        axis2_svc_client_free(svc_client, env);
        return NULL;
    }

    /*create the default conf_ctx if it is NULL */
    if (!axis2_svc_client_init_transports_from_conf_ctx(env, svc_client,
                                                        conf_ctx, client_home))
    {
        axis2_svc_client_free(svc_client, env);
        return NULL;
    }

    svc_client->conf = axis2_conf_ctx_get_conf(svc_client->conf_ctx, env);

    if (svc)
    {
        svc_client->keep_externally_passed_ctx_and_svc = AXIS2_TRUE;
        svc_client->svc = svc;
    }
    else
    {
        svc_client->svc = axis2_svc_client_create_annonymous_svc(svc_client, env);
        if (!svc_client->svc)
        {
            axis2_svc_client_free(svc_client, env);
            AXIS2_LOG_ERROR(env->log, AXIS2_LOG_SI, "Cannot create annonymous service.");
            return NULL;
        }
    }

    /** add the service to the config context if it isn't in there already */
    if (!axis2_conf_get_svc(svc_client->conf, env,
                            axis2_svc_get_name(svc_client->svc, env)))
    {
        axis2_conf_add_svc(svc_client->conf, env, svc_client->svc);
    }

    /** create a service context for myself: create a new service group
     context and then get the service context for myself as I'll need that
     later for stuff that I gotta do */
    svc_grp = axis2_svc_get_parent(svc_client->svc, env);
    if (!svc_grp)
    {
        AXIS2_LOG_ERROR(env->log, AXIS2_LOG_SI, "Cannot access service group of service client.");
        return NULL;
    }

    svc_grp_ctx = axis2_svc_grp_get_svc_grp_ctx(svc_grp, env,
                                                svc_client->conf_ctx);
    if (!svc_grp_ctx)
    {
        AXIS2_LOG_ERROR(env->log, AXIS2_LOG_SI, "Cannot access service group context of service client.");
        return NULL;
    }

    svc_grp_name = axis2_svc_grp_get_name(svc_grp, env);
    if (!svc_grp_name)
    {
        AXIS2_LOG_ERROR(env->log, AXIS2_LOG_SI, "Cannot access service group name of service client.");
        return NULL;            /* service group name is mandatory */
    }

    axis2_conf_ctx_register_svc_grp_ctx(svc_client->conf_ctx, env,
                                        svc_grp_name, svc_grp_ctx);

    svc_client->svc_ctx = axis2_svc_grp_ctx_get_svc_ctx(svc_grp_ctx, env,
                                                        axis2_svc_get_name
                                                        (svc_client->svc, env));

    return svc_client;
}

AXIS2_EXTERN axis2_svc_t *AXIS2_CALL
axis2_svc_client_get_svc(
    const axis2_svc_client_t * svc_client,
    const axutil_env_t * env)
{
    AXIS2_PARAM_CHECK (env->error, svc_client, NULL);
    return svc_client->svc;
}

AXIS2_EXTERN axis2_conf_ctx_t *AXIS2_CALL
axis2_svc_client_get_conf_ctx(
    const axis2_svc_client_t * svc_client,
    const axutil_env_t * env)
{
    AXIS2_PARAM_CHECK (env->error, svc_client, NULL);
    return svc_client->conf_ctx;
}

AXIS2_EXTERN axis2_status_t AXIS2_CALL
axis2_svc_client_set_options(
    axis2_svc_client_t * svc_client,
    const axutil_env_t * env,
    const axis2_options_t * options)
{
    AXIS2_PARAM_CHECK (env->error, svc_client, AXIS2_FAILURE);
    if (svc_client->options)
    {
        axis2_options_free(svc_client->options, env);
    }
    svc_client->options = (axis2_options_t *) options;
    return AXIS2_SUCCESS;
}

AXIS2_EXTERN const axis2_options_t *AXIS2_CALL
axis2_svc_client_get_options(
    const axis2_svc_client_t * svc_client,
    const axutil_env_t * env)
{
    AXIS2_PARAM_CHECK (env->error, svc_client, NULL);
    return svc_client->options;
}

AXIS2_EXTERN axis2_status_t AXIS2_CALL
axis2_svc_client_set_override_options(
    axis2_svc_client_t * svc_client,
    const axutil_env_t * env,
    const axis2_options_t * override_options)
{
    AXIS2_PARAM_CHECK (env->error, svc_client, AXIS2_FAILURE);
    if (svc_client->override_options)
    {
        axis2_options_free(svc_client->override_options, env);
    }

    svc_client->override_options = (axis2_options_t *) override_options;

    return AXIS2_SUCCESS;
}

AXIS2_EXTERN const axis2_options_t *AXIS2_CALL
axis2_svc_client_get_override_options(
    const axis2_svc_client_t * svc_client,
    const axutil_env_t * env)
{
    AXIS2_PARAM_CHECK (env->error, svc_client, NULL);
    return svc_client->override_options;
}

AXIS2_EXTERN axis2_status_t AXIS2_CALL
axis2_svc_client_engage_module(
    axis2_svc_client_t * svc_client,
    const axutil_env_t * env,
    const axis2_char_t * module_name)
{
    axis2_module_desc_t *module = NULL;
    axutil_qname_t *mod_qname = NULL;

    AXIS2_PARAM_CHECK (env->error, svc_client, AXIS2_FAILURE);
    AXIS2_PARAM_CHECK(env->error, module_name, AXIS2_FAILURE);

    mod_qname = axutil_qname_create(env, module_name, NULL, NULL);

    if (!mod_qname)
    {
        return AXIS2_FAILURE;
    }

    module = axis2_conf_get_module(svc_client->conf, env, mod_qname);

    axutil_qname_free(mod_qname, env);
    mod_qname = NULL;

    if (module)
    {
        return axis2_svc_engage_module(svc_client->svc, env, module,
                                       svc_client->conf);
    }
    return AXIS2_FAILURE;
}

AXIS2_EXTERN axis2_status_t AXIS2_CALL
axis2_svc_client_disengage_module(
    axis2_svc_client_t * svc_client,
    const axutil_env_t * env,
    const axis2_char_t * module_name)
{
    axis2_module_desc_t *module = NULL;
    axutil_qname_t *mod_qname = NULL;

    AXIS2_PARAM_CHECK (env->error, svc_client, AXIS2_FAILURE);
    AXIS2_PARAM_CHECK(env->error, module_name, AXIS2_FAILURE);

    mod_qname = axutil_qname_create(env, module_name, NULL, NULL);
    if (!mod_qname)
    {
        return AXIS2_FAILURE;
    }

    module = axis2_conf_get_module(svc_client->conf, env, mod_qname);
    axutil_qname_free(mod_qname, env);
    mod_qname = NULL;

    if (module)
    {
        return axis2_svc_disengage_module(svc_client->svc, env, module,
                                          svc_client->conf);
    }
    return AXIS2_FAILURE;
}

AXIS2_EXTERN axis2_status_t AXIS2_CALL
axis2_svc_client_add_header(
    axis2_svc_client_t * svc_client,
    const axutil_env_t * env,
    axiom_node_t * header)
{

    AXIS2_PARAM_CHECK (env->error, svc_client, AXIS2_FAILURE);
    if (!svc_client->headers)
    {
        svc_client->headers = axutil_array_list_create(env, 0);
        if (!svc_client->headers)
        {
            return AXIS2_FAILURE;
        }
    }
    axutil_array_list_add(svc_client->headers, env, header);

    return AXIS2_SUCCESS;
}

AXIS2_EXTERN axis2_status_t AXIS2_CALL
axis2_svc_client_remove_all_headers(
    axis2_svc_client_t * svc_client,
    const axutil_env_t * env)
{
    int i = 0;
    int size = 0;

    AXIS2_PARAM_CHECK (env->error, svc_client, AXIS2_FAILURE);

    if (!svc_client->headers)
    {
        return AXIS2_SUCCESS;
    }

    size = axutil_array_list_size(svc_client->headers, env);

    for (i = size-1; i >-1; i--)
    {
        axutil_array_list_remove(svc_client->headers, env, i);
    }
    return AXIS2_SUCCESS;
}

AXIS2_EXTERN axis2_status_t AXIS2_CALL
axis2_svc_client_send_robust_with_op_qname(
    axis2_svc_client_t * svc_client,
    const axutil_env_t * env,
    const axutil_qname_t * op_qname,
    const axiom_node_t * payload)
{
    axis2_msg_ctx_t *msg_ctx = NULL;
    axis2_status_t status = AXIS2_FAILURE;
    axis2_bool_t qname_free_flag = AXIS2_FALSE;

    AXIS2_PARAM_CHECK (env->error, svc_client, AXIS2_FAILURE);

    if (!op_qname)
    {
        op_qname =
            axutil_qname_create(env, AXIS2_ANON_ROBUST_OUT_ONLY_OP, NULL, NULL);
        if(!op_qname)
        {
            return AXIS2_FAILURE;
        }
        qname_free_flag = AXIS2_TRUE;
    }
	else
	{
		axis2_op_t *op = NULL;
		axis2_char_t *mep = NULL;
		axis2_svc_t *svc = NULL;
		svc = axis2_svc_client_get_svc(svc_client, env);
		if (!svc)
		{
			return AXIS2_FAILURE;
		}
		op = axis2_svc_get_op_with_qname(svc, env, op_qname);
		if (!op)
		{
			return AXIS2_FAILURE;
		}
		mep = (axis2_char_t *)axis2_op_get_msg_exchange_pattern(op, env);
		if (!mep || axutil_strcmp(AXIS2_MEP_URI_OUT_ONLY, mep) != 0)
		{
			AXIS2_LOG_ERROR(env->log, AXIS2_LOG_SI, "%s%s", "To use this method opeation uri should be",
				AXIS2_MEP_URI_OUT_ONLY);
			return AXIS2_FAILURE;
		}
	}

    svc_client->auth_failed = AXIS2_FALSE;
    svc_client->required_auth_is_http = AXIS2_FALSE;
    if (svc_client->auth_type)
    {
        AXIS2_FREE(env->allocator, svc_client->auth_type);
    }
    svc_client->auth_type = NULL;

    msg_ctx = axis2_msg_ctx_create(env,
                                   axis2_svc_ctx_get_conf_ctx(svc_client->svc_ctx, env),
                                   NULL, NULL);
    if (!axis2_svc_client_fill_soap_envelope(env, svc_client, msg_ctx, payload))
    {
        return AXIS2_FAILURE;
    }

    if (!axis2_svc_client_create_op_client(svc_client, env, op_qname))
    {
        return AXIS2_FAILURE;
    }

    axis2_op_client_add_out_msg_ctx(svc_client->op_client, env, msg_ctx);
    status = axis2_op_client_execute(svc_client->op_client, env, AXIS2_TRUE);
    axis2_svc_client_set_http_info(svc_client, env, msg_ctx);
    svc_client->auth_failed = axis2_msg_ctx_get_auth_failed(msg_ctx, env);
    svc_client->required_auth_is_http =
        axis2_msg_ctx_get_required_auth_is_http(msg_ctx, env);
    if (axis2_msg_ctx_get_auth_type(msg_ctx, env))
    {
        svc_client->auth_type =
            axutil_strdup(env, axis2_msg_ctx_get_auth_type(msg_ctx, env));
    }

    if (qname_free_flag)
    {
        axutil_qname_free((axutil_qname_t *) op_qname, env);
    }

    return status;
}

AXIS2_EXTERN axis2_status_t AXIS2_CALL
axis2_svc_client_send_robust(
    axis2_svc_client_t * svc_client,
    const axutil_env_t * env,
    const axiom_node_t * payload)
{
    return axis2_svc_client_send_robust_with_op_qname(svc_client, env, NULL,
                                                      payload);
}

AXIS2_EXTERN void AXIS2_CALL
axis2_svc_client_fire_and_forget_with_op_qname(
    axis2_svc_client_t * svc_client,
    const axutil_env_t * env,
    const axutil_qname_t * op_qname,
    const axiom_node_t * payload)
{
    axis2_msg_ctx_t *msg_ctx = NULL;
    axis2_bool_t qname_free_flag = AXIS2_FALSE;

    AXIS2_PARAM_CHECK_VOID(env->error, svc_client);

    if (!op_qname)
    {
        op_qname = axutil_qname_create(env, AXIS2_ANON_OUT_ONLY_OP, NULL, NULL);
        if(!op_qname)
        {
            return;
        }
        qname_free_flag = AXIS2_TRUE;
    }

    svc_client->auth_failed = AXIS2_FALSE;
    svc_client->required_auth_is_http = AXIS2_FALSE;
    if (svc_client->auth_type)
    {
        AXIS2_FREE(env->allocator, svc_client->auth_type);
    }
    svc_client->auth_type = NULL;

    msg_ctx = axis2_msg_ctx_create(env,
                                   axis2_svc_ctx_get_conf_ctx(svc_client->svc_ctx, env),
                                   NULL, NULL);
    if (!axis2_svc_client_fill_soap_envelope(env, svc_client, msg_ctx, payload))
    {
        return;
    }

    if (!axis2_svc_client_create_op_client(svc_client, env, op_qname))
    {
        return;
    }

    axis2_op_client_add_out_msg_ctx(svc_client->op_client, env, msg_ctx);
    axis2_op_client_execute(svc_client->op_client, env, AXIS2_TRUE);
    axis2_svc_client_set_http_info(svc_client, env, msg_ctx);
    svc_client->auth_failed = axis2_msg_ctx_get_auth_failed(msg_ctx, env);
    svc_client->required_auth_is_http =
        axis2_msg_ctx_get_required_auth_is_http(msg_ctx, env);
    if (axis2_msg_ctx_get_auth_type(msg_ctx, env))
    {
        svc_client->auth_type =
            axutil_strdup(env, axis2_msg_ctx_get_auth_type(msg_ctx, env));
    }

    if (qname_free_flag)
    {
        axutil_qname_free((axutil_qname_t *) op_qname, env);
    }
}

AXIS2_EXTERN void AXIS2_CALL
axis2_svc_client_fire_and_forget(
    axis2_svc_client_t * svc_client,
    const axutil_env_t * env,
    const axiom_node_t * payload)
{
    axis2_svc_client_fire_and_forget_with_op_qname(svc_client, env, NULL,
                                                   payload);
}

AXIS2_EXTERN axiom_node_t *AXIS2_CALL
axis2_svc_client_send_receive_with_op_qname(
    axis2_svc_client_t * svc_client,
    const axutil_env_t * env,
    const axutil_qname_t * op_qname,
    const axiom_node_t * payload)
{
    axiom_soap_envelope_t *soap_envelope = NULL;
    axiom_soap_body_t *soap_body = NULL;
    axiom_node_t *soap_node = NULL;
    axis2_op_t *op = NULL;
    axutil_param_t *param = NULL;
    axutil_uri_t *action_uri = NULL;
    axis2_char_t *action_str = NULL;
    axis2_bool_t qname_free_flag = AXIS2_FALSE;

    axis2_msg_ctx_t *res_msg_ctx = NULL;
    axis2_msg_ctx_t *msg_ctx = NULL;

    AXIS2_PARAM_CHECK (env->error, svc_client, NULL);

    svc_client->last_response_soap_envelope = NULL;
    svc_client->last_response_has_fault = AXIS2_FALSE;
    svc_client->auth_failed = AXIS2_FALSE;
    svc_client->required_auth_is_http = AXIS2_FALSE;
    if (svc_client->auth_type)
    {
        AXIS2_FREE(env->allocator, svc_client->auth_type);
    }
    svc_client->auth_type = NULL;

    op = axis2_svc_get_op_with_qname(svc_client->svc, env, op_qname);
    if (op)
    {
        param = axis2_op_get_param(op, env, AXIS2_SOAP_ACTION);
        if (param)
        {
            action_uri = (axutil_uri_t *) axutil_param_get_value(param, env);
            action_str =
                axutil_uri_to_string(action_uri, env,
                                     AXIS2_URI_UNP_OMITUSERINFO);
            axis2_options_set_action(svc_client->options, env, action_str);
        }
    }

    if (!op_qname)
    {
        op_qname = axutil_qname_create(env, AXIS2_ANON_OUT_IN_OP, NULL, NULL);
        if(!op_qname)
            return NULL;

        qname_free_flag = AXIS2_TRUE;
    }

    /* If dual channel blocking. We come to this block if the client indicate to use
     * a separate listener but don't provide a callback function to acted upon when
     * response is received in the listener thread. What we do here is we create a callback
     * and call axis2_svc_client_send_receive_non_blocking_with_op_qname with it. */
    if (axis2_options_get_use_separate_listener(svc_client->options, env))
    {
        axis2_callback_t *callback = NULL;
        axis2_msg_ctx_t *msg_ctx = NULL;
        long index = 0;

        /* This means doing a Request-Response invocation using two channels.
           If the transport is a two way transport (e.g. http), only one channel is used
           (e.g. in http cases 202 OK is sent to say no response available).
           Axis2 gets blocked and return when the response is available. */

        callback = axis2_callback_create(env);
        if (!callback)
        {
            return NULL;
        }

        /* Call two channel non blocking invoke to do the work and wait on the callback. We don't 
         * set a callback function for the callback. That functionality is handled here. 
         */
        axis2_svc_client_send_receive_non_blocking_with_op_qname(svc_client,
                                                                 env, op_qname,
                                                                 payload,
                                                                 callback);

        index =
            axis2_options_get_timeout_in_milli_seconds(svc_client->options,
                                                       env) / 10;

        while(!axis2_callback_get_complete(callback, env))
        {
            if (index-- >= 0)
            {
                AXIS2_USLEEP(10000);
            }
            else
            {
                AXIS2_ERROR_SET(env->error, AXIS2_ERROR_RESPONSE_TIMED_OUT,
                                AXIS2_FAILURE);
                AXIS2_LOG_ERROR(env->log, AXIS2_LOG_SI, "Response time out.");
                return NULL;
            }
        }

        soap_envelope = axis2_callback_get_envelope(callback, env);

        /* start of hack to get rid of memory leak */
        msg_ctx = axis2_msg_ctx_create(env,
                                       axis2_svc_ctx_get_conf_ctx(svc_client->
                                                                  svc_ctx, env),
                                       NULL, NULL);
        if(!msg_ctx)
            return NULL;

        axis2_op_client_add_msg_ctx(svc_client->op_client, env, msg_ctx);

        axis2_msg_ctx_set_soap_envelope(msg_ctx, env, soap_envelope);
        /* end of hack to get rid of memory leak */

        /* process the result of the invocation */
        if (!soap_envelope)
        {
            if (axis2_callback_get_error(callback, env) != AXIS2_ERROR_NONE)
            {
                AXIS2_ERROR_SET(env->error,
                                axis2_callback_get_error(callback, env),
                                AXIS2_FAILURE);
                return NULL;
            }
        }
    }
    else
    {
        msg_ctx = axis2_msg_ctx_create(env,
                                       axis2_svc_ctx_get_conf_ctx(svc_client->svc_ctx, env),
                                       NULL, NULL);
        if(!msg_ctx)
            return NULL;

        if (!axis2_svc_client_fill_soap_envelope(env, svc_client, msg_ctx, payload))
        {
            return NULL;
        }

        if (!axis2_svc_client_create_op_client(svc_client, env, op_qname))
        {
            return NULL;
        }

        axis2_op_client_add_msg_ctx(svc_client->op_client, env, msg_ctx);
        axis2_op_client_execute(svc_client->op_client, env, AXIS2_TRUE);
        axis2_svc_client_set_http_info(svc_client, env, msg_ctx);
        svc_client->auth_failed = axis2_msg_ctx_get_auth_failed(msg_ctx, env);
        svc_client->required_auth_is_http =
            axis2_msg_ctx_get_required_auth_is_http(msg_ctx, env);
        if (axis2_msg_ctx_get_auth_type(msg_ctx, env))
        {
            svc_client->auth_type =
                axutil_strdup(env, axis2_msg_ctx_get_auth_type(msg_ctx, env));
        }
        res_msg_ctx =
            (axis2_msg_ctx_t *) axis2_op_client_get_msg_ctx(svc_client->
                                                            op_client, env,
                                                            AXIS2_WSDL_MESSAGE_LABEL_IN);

        if (res_msg_ctx)
        {
            soap_envelope = axis2_msg_ctx_get_soap_envelope(res_msg_ctx, env);
        }
        else
        {
            axis2_op_client_add_msg_ctx(svc_client->op_client, env, res_msg_ctx);   
            /* set in msg_ctx to be NULL to reset */
        }
    }

    if (qname_free_flag)
    {
        axutil_qname_free((axutil_qname_t *) op_qname, env);
    }

    if (!soap_envelope)
    {
        return NULL;
    }
    svc_client->last_response_soap_envelope = soap_envelope;

    soap_body = axiom_soap_envelope_get_body(soap_envelope, env);

    if (!soap_body)
    {
        axiom_node_t *node =
            axiom_soap_envelope_get_base_node(soap_envelope, env);
        if (node)
        {
            axiom_element_t *envelope_element =
                (axiom_element_t *) axiom_node_get_data_element(node, env);
            axiom_util_get_first_child_element_with_localname(envelope_element,
                                                              env, node,
                                                              AXIOM_SOAP_BODY_LOCAL_NAME,
                                                              &soap_node);
            if (soap_node)
            {
                return axiom_node_get_first_element(soap_node, env);
            }
        }
        return NULL;
    }

    if (axis2_msg_ctx_get_doing_rest (res_msg_ctx, env))
    {
        /* All HTTP 4xx and 5xx status codes are treated as errors */
        if (axis2_msg_ctx_get_status_code (res_msg_ctx, env) >=
            400)
        {
            svc_client->last_response_has_fault = AXIS2_TRUE;
        }
        else
        {
            svc_client->last_response_has_fault = AXIS2_FALSE;
        }
    }
    else
    {
        svc_client->last_response_has_fault =
            axiom_soap_body_has_fault(soap_body, env);
    }

    if (AXIOM_SOAP11 ==
        axiom_soap_envelope_get_soap_version(soap_envelope, env))
    {
        axiom_soap_body_convert_fault_to_soap11(soap_body, env);
    }

    soap_node = axiom_soap_body_get_base_node(soap_body, env);
    if (!soap_node)
    {
        return NULL;
    }
    return axiom_node_get_first_element(soap_node, env);
}

AXIS2_EXTERN axiom_node_t *AXIS2_CALL
axis2_svc_client_send_receive(
    axis2_svc_client_t * svc_client,
    const axutil_env_t * env,
    const axiom_node_t * payload)
{
    return axis2_svc_client_send_receive_with_op_qname(svc_client, env, NULL,
                                                       payload);
}

AXIS2_EXTERN void AXIS2_CALL
axis2_svc_client_send_receive_non_blocking_with_op_qname(
    axis2_svc_client_t * svc_client,
    const axutil_env_t * env,
    const axutil_qname_t * op_qname,
    const axiom_node_t * payload,
    axis2_callback_t * callback)
{
    axis2_msg_ctx_t *msg_ctx = NULL;
    AXIS2_TRANSPORT_ENUMS transport_in_protocol;
    axis2_bool_t qname_free_flag = AXIS2_FALSE;
    
    AXIS2_PARAM_CHECK_VOID(env->error, svc_client);

    if (!op_qname)
    {
        op_qname = axutil_qname_create(env, AXIS2_ANON_OUT_IN_OP, NULL, NULL);
        if(!op_qname)
            return;
        qname_free_flag = AXIS2_TRUE;
    }

    svc_client->auth_failed = AXIS2_FALSE;
    svc_client->required_auth_is_http = AXIS2_FALSE;
    if (svc_client->auth_type)
    {
        AXIS2_FREE(env->allocator, svc_client->auth_type);
    }
    svc_client->auth_type = NULL;

    msg_ctx = axis2_msg_ctx_create(env,
                                   axis2_svc_ctx_get_conf_ctx(svc_client->
                                                              svc_ctx, env),
                                   NULL, NULL);
    if(!msg_ctx)
        return;

    if (!axis2_svc_client_fill_soap_envelope(env, svc_client, msg_ctx, payload))
    {
        return;
    }

    if (!axis2_svc_client_create_op_client(svc_client, env, op_qname))
    {
        return;
    }

    axis2_op_client_set_callback(svc_client->op_client, env, callback);
    axis2_op_client_add_out_msg_ctx(svc_client->op_client, env, msg_ctx);

    /* If dual channel */
    if (axis2_options_get_use_separate_listener(svc_client->options, env))
    {
        axis2_op_t *op = NULL;
		
        transport_in_protocol =
            axis2_options_get_transport_in_protocol(svc_client->options, env);
		if (transport_in_protocol == AXIS2_TRANSPORT_ENUM_MAX)
		{
			axis2_options_set_transport_in_protocol(svc_client->options, env, AXIS2_TRANSPORT_ENUM_HTTP);
			transport_in_protocol = AXIS2_TRANSPORT_ENUM_HTTP;
		}
        axis2_listener_manager_make_sure_started(svc_client->listener_manager,
                                                 env, transport_in_protocol,
                                                 svc_client->conf_ctx);
        /* Following sleep is required to ensure the listner is ready to receive response.
           If it is missing, the response gets lost. - Samisa */
        AXIS2_USLEEP(1);

        op = axis2_svc_get_op_with_qname(svc_client->svc, env, op_qname);
        /* At the end of the incoming flow this message receiver will be hit */
        axis2_op_set_msg_recv(op, env,
                              AXIS2_CALLBACK_RECV_GET_BASE(svc_client->
                                                           callback_recv, env));
        axis2_op_client_set_callback_recv(svc_client->op_client, env,
                                          svc_client->callback_recv);
    }

    axis2_op_client_execute(svc_client->op_client, env, AXIS2_FALSE);
    axis2_svc_client_set_http_info(svc_client, env, msg_ctx);
    svc_client->auth_failed = axis2_msg_ctx_get_auth_failed(msg_ctx, env);
    svc_client->required_auth_is_http =
        axis2_msg_ctx_get_required_auth_is_http(msg_ctx, env);
    if (axis2_msg_ctx_get_auth_type(msg_ctx, env))
    {
        svc_client->auth_type =
            axutil_strdup(env, axis2_msg_ctx_get_auth_type(msg_ctx, env));
    }

    if (qname_free_flag)
    {
        axutil_qname_free((axutil_qname_t *) op_qname, env);
        op_qname = NULL;
    }
}

AXIS2_EXTERN void AXIS2_CALL
axis2_svc_client_send_receive_non_blocking(
    axis2_svc_client_t * svc_client,
    const axutil_env_t * env,
    const axiom_node_t * payload,
    axis2_callback_t * callback)
{
    axis2_svc_client_send_receive_non_blocking_with_op_qname(svc_client, env,
                                                             NULL, payload,
                                                             callback);
}

AXIS2_EXTERN axis2_op_client_t *AXIS2_CALL
axis2_svc_client_create_op_client(
    axis2_svc_client_t * svc_client,
    const axutil_env_t * env,
    const axutil_qname_t * op_qname)
{
    axis2_op_t *op = NULL;

    AXIS2_PARAM_CHECK (env->error, svc_client, NULL);

    op = axis2_svc_get_op_with_qname(svc_client->svc, env, op_qname);

    if (!op)
    {
        AXIS2_LOG_ERROR(env->log, AXIS2_LOG_SI, "Cannot find operation to create op client.");
        return NULL;
    }

    if (!(svc_client->op_client) || svc_client->reuse)
    {
        if ((svc_client->reuse) && (svc_client->op_client))
            axis2_op_client_free(svc_client->op_client, env);
        svc_client->op_client =
            axis2_op_client_create(env, op, svc_client->svc_ctx,
                                   svc_client->options);
    }

    /**
      If override options have been set, that means we need to make sure
      those options override the options of even the operation client. So,
      what we do is switch the parents around to make that work.
    */
    if (svc_client->override_options)
    {
        axis2_options_set_parent(svc_client->override_options, env,
                                 axis2_op_client_get_options(svc_client->
                                                             op_client, env));
        axis2_op_client_set_options(svc_client->op_client, env,
                                    svc_client->override_options);
    }
    svc_client->reuse = AXIS2_TRUE;
    axis2_op_client_set_reuse(svc_client->op_client, env, svc_client->reuse);
    return svc_client->op_client;
}

AXIS2_EXTERN axis2_status_t AXIS2_CALL
axis2_svc_client_finalize_invoke(
    axis2_svc_client_t * svc_client,
    const axutil_env_t * env)
{
    AXIS2_TRANSPORT_ENUMS transport_in_protocol;

    AXIS2_PARAM_CHECK (env->error, svc_client, AXIS2_FAILURE);

    transport_in_protocol =
        axis2_options_get_transport_in_protocol(svc_client->options, env);

    if (svc_client->listener_manager)
    {
        return axis2_listener_manager_stop(svc_client->listener_manager,
                                           env, transport_in_protocol);
    }

    return AXIS2_SUCCESS;
}

AXIS2_EXTERN const axis2_endpoint_ref_t *AXIS2_CALL
axis2_svc_client_get_own_endpoint_ref(
    const axis2_svc_client_t * svc_client,
    const axutil_env_t * env,
    const axis2_char_t * transport)
{
    return NULL;
}

AXIS2_EXTERN const axis2_endpoint_ref_t *AXIS2_CALL
axis2_svc_client_get_target_endpoint_ref(
    const axis2_svc_client_t * svc_client,
    const axutil_env_t * env)
{
    return NULL;
}

AXIS2_EXTERN axis2_status_t AXIS2_CALL
axis2_svc_client_set_target_endpoint_ref(
    axis2_svc_client_t * svc_client,
    const axutil_env_t * env,
    axis2_endpoint_ref_t * target_endpoint_ref)
{
    return AXIS2_FAILURE;
}

AXIS2_EXTERN axis2_svc_ctx_t *AXIS2_CALL
axis2_svc_client_get_svc_ctx(
    const axis2_svc_client_t * svc_client,
    const axutil_env_t * env)
{
    AXIS2_PARAM_CHECK (env->error, svc_client, NULL);
    return svc_client->svc_ctx;
}

static axis2_bool_t
axis2_svc_client_init_transports_from_conf_ctx(
    const axutil_env_t * env,
    axis2_svc_client_t * svc_client,
    axis2_conf_ctx_t * conf_ctx,
    const axis2_char_t * client_home)
{
    svc_client->conf_ctx = conf_ctx;
    if (!svc_client->conf_ctx)
    {
        svc_client->conf_ctx = axis2_build_client_conf_ctx(env, client_home);
        if (!svc_client->conf_ctx)
        {
            return AXIS2_FALSE;
        }
    }
    else
    {
        svc_client->keep_externally_passed_ctx_and_svc = AXIS2_TRUE;
    }

    if (!svc_client->listener_manager)
    {
        svc_client->listener_manager = axis2_listener_manager_create(env);
        if (!svc_client->listener_manager)
        {
            return AXIS2_FALSE;
        }
    }

    return AXIS2_TRUE;
}

static axis2_bool_t
axis2_svc_client_init_data(
    const axutil_env_t * env,
    axis2_svc_client_t * svc_client)
{
    svc_client->svc = NULL;
    svc_client->conf_ctx = NULL;
    svc_client->svc_ctx = NULL;

    svc_client->options = axis2_options_create(env);
    if (!svc_client->options)
    {
        return AXIS2_FALSE;
    }

    svc_client->override_options = NULL;
    svc_client->headers = NULL;

    if (svc_client->callback_recv)
    {
        AXIS2_CALLBACK_RECV_FREE(svc_client->callback_recv, env);
        svc_client->callback_recv = NULL;
    }

    svc_client->callback_recv = axis2_callback_recv_create(env);
    if (!svc_client->callback_recv)
    {
        return AXIS2_FALSE;
    }

    return AXIS2_TRUE;
}

static axis2_svc_t *
axis2_svc_client_create_annonymous_svc(
    axis2_svc_client_t * svc_client,
    const axutil_env_t * env)
{

    /**
     now add anonymous operations to the axis2 service for use with the
     shortcut client API. NOTE: We only add the ones we know we'll use
     later in the convenience API; if you use
     this constructor then you can't expect any magic!
    */
    axutil_qname_t *tmp_qname;
    axis2_svc_t *svc;
    axis2_op_t *op_out_in,
    *op_out_only,
    *op_robust_out_only;
    axis2_phases_info_t *info = NULL;

    tmp_qname = axutil_qname_create(env, AXIS2_ANON_SERVICE, NULL, NULL);
    if (!tmp_qname)
    {
        return NULL;
    }

    svc = axis2_svc_create_with_qname(env, tmp_qname);
    axutil_qname_free(tmp_qname, env);
    if (!svc)
    {
        return NULL;
    }
    

    tmp_qname = axutil_qname_create(env, AXIS2_ANON_OUT_IN_OP, NULL, NULL);
    if (!tmp_qname)
    {
        return NULL;
    }
    op_out_in = axis2_op_create_with_qname(env, tmp_qname);
    axutil_qname_free(tmp_qname, env);

    tmp_qname = axutil_qname_create(env, AXIS2_ANON_OUT_ONLY_OP, NULL, NULL);
    if (!tmp_qname)
    {
        return NULL;
    }
    op_out_only = axis2_op_create_with_qname(env, tmp_qname);
    axutil_qname_free(tmp_qname, env);

    tmp_qname = axutil_qname_create(env, AXIS2_ANON_ROBUST_OUT_ONLY_OP, NULL, NULL);
    if (!tmp_qname)
    {
        return NULL;
    }
    op_robust_out_only = axis2_op_create_with_qname(env, tmp_qname);
    axutil_qname_free(tmp_qname, env);

    if (!op_out_in || !op_out_only || !op_robust_out_only)
    {
        AXIS2_ERROR_SET(env->error, AXIS2_ERROR_NO_MEMORY, AXIS2_FAILURE);
        if (op_out_in)
        {
            axis2_op_free(op_out_in, env);
        }
        if (op_out_only)
        {
            axis2_op_free(op_out_only, env);
        }
        if (op_robust_out_only)
        {
            axis2_op_free(op_robust_out_only, env);
        }

        return NULL;
    }

    axis2_op_set_msg_exchange_pattern(op_out_in, env, AXIS2_MEP_URI_OUT_IN);
    axis2_op_set_msg_exchange_pattern(op_out_only, env, AXIS2_MEP_URI_OUT_ONLY);
    axis2_op_set_msg_exchange_pattern(op_robust_out_only, env,
                                      AXIS2_MEP_URI_ROBUST_OUT_ONLY);

    /* Setting operation phase */
    info = axis2_conf_get_phases_info(svc_client->conf, env);
    axis2_phases_info_set_op_phases(info, env, op_out_in);
    axis2_phases_info_set_op_phases(info, env, op_out_only);
    axis2_phases_info_set_op_phases(info, env, op_robust_out_only);
    axis2_svc_add_op(svc, env, op_out_in);
    axis2_svc_add_op(svc, env, op_out_only);
    axis2_svc_add_op(svc, env, op_robust_out_only);
    return svc;
}

AXIS2_EXTERN void AXIS2_CALL
axis2_svc_client_free(
    axis2_svc_client_t * svc_client,
    const axutil_env_t * env)
{
    if (!svc_client)
    {
        return;
    }

    if (svc_client->headers)
    {
        axis2_svc_client_remove_all_headers(svc_client, env);
        axutil_array_list_free(svc_client->headers, env);
        svc_client->headers = NULL;        
    }

    if (svc_client->svc && !svc_client->keep_externally_passed_ctx_and_svc)
    {
        axis2_svc_free(svc_client->svc, env);
    }

    if (svc_client->callback_recv)
    {
        AXIS2_CALLBACK_RECV_FREE(svc_client->callback_recv, env);
    }

    if (svc_client->op_client)
    {
        axis2_op_client_free(svc_client->op_client, env);
        svc_client->op_client = NULL;
    }

    if (svc_client->options)
    {
        axis2_options_free(svc_client->options, env);
    }

    if (svc_client->listener_manager)
    {
        axis2_listener_manager_free(svc_client->listener_manager, env);
    }

    if (svc_client->conf_ctx && !svc_client->keep_externally_passed_ctx_and_svc)
    {
        axis2_conf_ctx_free(svc_client->conf_ctx, env);
    }

    if (svc_client->auth_type)
    {
        AXIS2_FREE(env->allocator, svc_client->auth_type);
    }

    if (svc_client->http_headers)
    {
        axis2_svc_client_set_http_info(svc_client, env, NULL);
    }

    AXIS2_FREE(env->allocator, svc_client);

    return;
}

static axis2_bool_t
axis2_svc_client_fill_soap_envelope(
    const axutil_env_t * env,
    axis2_svc_client_t * svc_client,
    axis2_msg_ctx_t * msg_ctx,
    const axiom_node_t * payload)
{
    const axis2_char_t *soap_version_uri;
    int soap_version;
    axiom_soap_envelope_t *envelope = NULL;
    AXIS2_PARAM_CHECK (env->error, svc_client, AXIS2_FAILURE);

    soap_version_uri =
        axis2_options_get_soap_version_uri(svc_client->options, env);

    if (!soap_version_uri)
    {
        AXIS2_LOG_ERROR(env->log, AXIS2_LOG_SI, "Cannot find soap version uri.");
        return AXIS2_FALSE;
    }

    if (axutil_strcmp
        (soap_version_uri, AXIOM_SOAP11_SOAP_ENVELOPE_NAMESPACE_URI) == 0)
    {
        soap_version = AXIOM_SOAP11;
    }
    else
    {
        soap_version = AXIOM_SOAP12;
    }

    envelope =
        axiom_soap_envelope_create_default_soap_envelope(env, soap_version);
    if (!envelope)
    {
        AXIS2_LOG_ERROR(env->log, AXIS2_LOG_SI, "Cannot create default soap envelope.");
        return AXIS2_FALSE;
    }

    if (svc_client->headers)
    {
        axiom_soap_header_t *soap_header = NULL;
        soap_header = axiom_soap_envelope_get_header(envelope, env);

        if (soap_header)
        {
            axiom_node_t *header_node = NULL;
            header_node = axiom_soap_header_get_base_node(soap_header, env);

            if (header_node)
            {
                int size = 0;
                int i = 0;
                size = axutil_array_list_size(svc_client->headers, env);
                while (i < size)
                {
                    axiom_node_t *node = NULL;
                    node = axutil_array_list_remove(svc_client->headers,
                                                    env, 0);
                    /* This removes and retrieves data. The order of the 
                     * removal is chosen such that the headers are appended
                     * in the order they were added.
                     */
                    size--;
                    if (node)
                    {
                        axiom_node_add_child(header_node, env, node);
                    }
                }
            }
        }
    }

    if (payload)
    {
        axiom_soap_body_t *soap_body = NULL;
        soap_body = axiom_soap_envelope_get_body(envelope, env);
        if (soap_body)
        {
            axiom_node_t *node = NULL;
            node = axiom_soap_body_get_base_node(soap_body, env);
            if (node)
            {
                axiom_node_add_child(node, env, (axiom_node_t *) payload);
            }
        }
    }

    axis2_msg_ctx_set_soap_envelope(msg_ctx, env, envelope);

    return AXIS2_TRUE;
}

AXIS2_EXTERN axis2_op_client_t *AXIS2_CALL
axis2_svc_client_get_op_client(
    const axis2_svc_client_t * svc_client,
    const axutil_env_t * env)
{
    AXIS2_PARAM_CHECK (env->error, svc_client, NULL);
    return svc_client->op_client;
}

AXIS2_EXTERN axiom_soap_envelope_t *AXIS2_CALL
axis2_svc_client_get_last_response_soap_envelope(
    const axis2_svc_client_t * svc_client,
    const axutil_env_t * env)
{
    AXIS2_PARAM_CHECK (env->error, svc_client, NULL);
    return svc_client->last_response_soap_envelope;
}

AXIS2_EXTERN axis2_bool_t AXIS2_CALL
axis2_svc_client_get_last_response_has_fault(
    const axis2_svc_client_t * svc_client,
    const axutil_env_t * env)
{
    AXIS2_PARAM_CHECK (env->error, svc_client, AXIS2_FALSE);
    return svc_client->last_response_has_fault;
}

AXIS2_EXTERN axis2_bool_t AXIS2_CALL
axis2_svc_client_get_http_auth_required(
    const axis2_svc_client_t * svc_client,
    const axutil_env_t * env)
{
    AXIS2_PARAM_CHECK (env->error, svc_client, AXIS2_FALSE);
    if (svc_client->auth_failed &&
        svc_client->required_auth_is_http)
    {
        return AXIS2_TRUE;
    }
    return AXIS2_FALSE;
}

AXIS2_EXTERN axis2_bool_t AXIS2_CALL
axis2_svc_client_get_proxy_auth_required(
    const axis2_svc_client_t * svc_client,
    const axutil_env_t * env)
{
    AXIS2_PARAM_CHECK (env->error, svc_client, AXIS2_FALSE);
    if (svc_client->auth_failed &&
        !svc_client->required_auth_is_http)
    {
        return AXIS2_TRUE;
    }
    return AXIS2_FALSE;
}

AXIS2_EXTERN axis2_char_t *AXIS2_CALL
axis2_svc_client_get_auth_type(
    const axis2_svc_client_t * svc_client,
    const axutil_env_t * env)
{
    return svc_client->auth_type;
}

AXIS2_EXTERN axis2_status_t AXIS2_CALL
axis2_svc_client_set_proxy_with_auth(
    axis2_svc_client_t * svc_client,
    const axutil_env_t * env,
    axis2_char_t * proxy_host,
    axis2_char_t * proxy_port,
    axis2_char_t * username,
    axis2_char_t * password)
{
    axis2_transport_out_desc_t *trans_desc = NULL;
    axis2_conf_t *conf = NULL;
    axutil_param_container_t *param_container;
    axutil_param_t *param;
    axis2_char_t *proxy = AXIS2_HTTP_PROXY_API;
    axutil_hash_t *attribute;
    axutil_generic_obj_t *host_obj = NULL;
    axutil_generic_obj_t *port_obj = NULL;
    axutil_generic_obj_t *username_obj = NULL;
    axutil_generic_obj_t *password_obj = NULL;
    axiom_attribute_t *host_attr = NULL;
    axiom_attribute_t *port_attr = NULL;
    axiom_attribute_t *username_attr = NULL;
    axiom_attribute_t *password_attr = NULL;

    AXIS2_PARAM_CHECK(env->error, svc_client, AXIS2_FAILURE);
    AXIS2_PARAM_CHECK(env->error, proxy_host, AXIS2_FAILURE);
    AXIS2_PARAM_CHECK(env->error, proxy_port, AXIS2_FAILURE);

    if (svc_client->conf)
    {
        conf = svc_client->conf;
        trans_desc =
            axis2_conf_get_transport_out(conf, env, AXIS2_TRANSPORT_ENUM_HTTP);
        if (!trans_desc)
        {
            return AXIS2_FAILURE;
        }
        param_container =
            axis2_transport_out_desc_param_container(trans_desc, env);
        param = axutil_param_create(env, proxy, (void *) NULL);

        if (!param)
        {
            return AXIS2_FAILURE;
        }
        
        attribute = axutil_hash_make(env);
        host_obj = axutil_generic_obj_create(env);
        port_obj = axutil_generic_obj_create(env);
        host_attr = axiom_attribute_create(env, AXIS2_HTTP_PROXY_HOST, proxy_host, NULL);
        port_attr = axiom_attribute_create(env, AXIS2_HTTP_PROXY_PORT, proxy_port, NULL);
        axutil_generic_obj_set_value(host_obj, env, host_attr);
        axutil_generic_obj_set_free_func(host_obj, env, axiom_attribute_free_void_arg);
        axutil_generic_obj_set_value(port_obj, env, port_attr);
        axutil_generic_obj_set_free_func(port_obj, env, axiom_attribute_free_void_arg);

        axutil_hash_set(attribute, AXIS2_HTTP_PROXY_HOST, AXIS2_HASH_KEY_STRING,
                        host_obj);
        axutil_hash_set(attribute, AXIS2_HTTP_PROXY_PORT, AXIS2_HASH_KEY_STRING,
                        port_obj);
        if (username && password)
        {
                username_obj = axutil_generic_obj_create(env);
                password_obj = axutil_generic_obj_create(env);
                username_attr = axiom_attribute_create(env, AXIS2_HTTP_PROXY_USERNAME, username, NULL);
                password_attr = axiom_attribute_create(env, AXIS2_HTTP_PROXY_PASSWORD, password, NULL);
                axutil_generic_obj_set_value(username_obj, env, username_attr);
                axutil_generic_obj_set_value(password_obj, env, password_attr);
                axutil_generic_obj_set_free_func(username_obj, env, axiom_attribute_free_void_arg);
                axutil_generic_obj_set_free_func(password_obj, env, axiom_attribute_free_void_arg);
                axutil_hash_set(attribute, AXIS2_HTTP_PROXY_USERNAME, AXIS2_HASH_KEY_STRING,
                                username_obj);
                axutil_hash_set(attribute, AXIS2_HTTP_PROXY_PASSWORD, AXIS2_HASH_KEY_STRING,
                                password_obj);
        }
        axutil_param_set_attributes(param, env, attribute);
        axutil_param_container_add_param(param_container, env, param);
    }
    return AXIS2_SUCCESS;
}

AXIS2_EXTERN axis2_status_t AXIS2_CALL
axis2_svc_client_set_proxy(
    axis2_svc_client_t * svc_client,
    const axutil_env_t * env,
    axis2_char_t * proxy_host,
    axis2_char_t * proxy_port)
{
    return axis2_svc_client_set_proxy_with_auth(svc_client, env, proxy_host, proxy_port, NULL, NULL);
}

AXIS2_EXTERN axis2_status_t AXIS2_CALL
axis2_svc_client_set_policy_from_om(
    axis2_svc_client_t * svc_client,
    const axutil_env_t * env,
    axiom_node_t * root_node)
{
    neethi_policy_t *neethi_policy = NULL;

    AXIS2_PARAM_CHECK (env->error, svc_client, AXIS2_FAILURE);
    neethi_policy = neethi_util_create_policy_from_om(env, root_node);

    if (neethi_policy)
    {
        return axis2_svc_client_set_policy(svc_client, env, neethi_policy);
    }
    else
    {
        return AXIS2_FAILURE;
    }
}

AXIS2_EXTERN axis2_status_t AXIS2_CALL
axis2_svc_client_set_policy(
    axis2_svc_client_t * svc_client,
    const axutil_env_t * env,
    neethi_policy_t * policy)
{

    axis2_svc_t *svc = NULL;
    axis2_desc_t *desc = NULL;
    axis2_policy_include_t *policy_include = NULL;

    AXIS2_PARAM_CHECK (env->error, svc_client, AXIS2_FAILURE);
    AXIS2_PARAM_CHECK(env->error, policy, AXIS2_FAILURE);

    svc = axis2_svc_client_get_svc(svc_client, env);

    if (!svc)
    {
        AXIS2_LOG_ERROR(env->log, AXIS2_LOG_SI, "Cannot find service of service client. Cannot set policy.");
        return AXIS2_FAILURE;
    }

    desc = axis2_svc_get_base(svc, env);
    if (!desc)
    {
        AXIS2_LOG_ERROR(env->log, AXIS2_LOG_SI, "Cannot find service description of service client. Cannot set policy.");
        return AXIS2_FAILURE;
    }

    policy_include = axis2_desc_get_policy_include(desc, env);
    if (!policy_include)
    {
        AXIS2_LOG_ERROR(env->log, AXIS2_LOG_SI, "Cannot find policy include. Cannot set policy.");
        return AXIS2_FAILURE;
    }

    axis2_policy_include_add_policy_element(policy_include, env,
                                            AXIS2_SERVICE_POLICY, policy);
    return AXIS2_SUCCESS;
}

AXIS2_EXTERN axutil_array_list_t *AXIS2_CALL
axis2_svc_client_get_http_headers(
    axis2_svc_client_t * svc_client,
    const axutil_env_t * env)
{
    return svc_client->http_headers;
}

AXIS2_EXTERN int AXIS2_CALL
axis2_svc_client_get_http_status_code(
    axis2_svc_client_t * svc_client,
    const axutil_env_t * env)
{
    return svc_client->http_status_code;
}

void axis2_svc_client_set_http_info(
    axis2_svc_client_t * svc_client,
    const axutil_env_t * env,
    axis2_msg_ctx_t * msg_ctx)
{
    axis2_transport_in_desc_t *transport_in = NULL;
    axutil_param_t *expose_headers_param = NULL;
    axis2_bool_t expose_headers = AXIS2_FALSE;

    if (msg_ctx)
    {
        transport_in = axis2_msg_ctx_get_transport_in_desc(msg_ctx, env);
        if (transport_in)
        {
            expose_headers_param =
                 axutil_param_container_get_param(
                     axis2_transport_in_desc_param_container(transport_in, env), env,
                     AXIS2_EXPOSE_HEADERS);
        }
        if (expose_headers_param)
        {
            axis2_char_t *expose_headers_value = NULL;
            expose_headers_value = axutil_param_get_value(expose_headers_param, env);
            if (expose_headers_value && 0 == axutil_strcasecmp (expose_headers_value, AXIS2_VALUE_TRUE))
            {
                expose_headers = AXIS2_TRUE;
            }
        }
    }
    if (expose_headers)
    {
        if (svc_client->http_headers ==
            axis2_msg_ctx_get_http_output_headers(msg_ctx, env))
        {
            svc_client->http_status_code = 
                axis2_msg_ctx_get_status_code(msg_ctx, env);
            return;
        }
    }
    
    if (svc_client->http_headers)
    {
        axis2_http_header_t *header = NULL;
        while (axutil_array_list_size(svc_client->http_headers, env))
        {
            header = (axis2_http_header_t *)
                axutil_array_list_remove(svc_client->http_headers, env, 0);
            if (header)
            {
                axis2_http_header_free(header, env);
            }
        }
        axutil_array_list_free(svc_client->http_headers, env);
        svc_client->http_headers = NULL;
    }
    svc_client->http_status_code = 0;

    if (msg_ctx)
    {
        if (expose_headers)
        {
            svc_client->http_headers =
                axis2_msg_ctx_extract_http_output_headers(msg_ctx, env);
        }
        svc_client->http_status_code = 
            axis2_msg_ctx_get_status_code(msg_ctx, env);
    }
}



<|start_filename|>axiom/src/parser/libxml2/libxml2_writer_wrapper.c<|end_filename|>

/*
 * 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.
 */

#include <libxml/xmlwriter.h>
#include <axutil_utils.h>
#include <axutil_utils_defines.h>
#include <axutil_env.h>
#include <axiom_xml_writer.h>
#include <axutil_string.h>
#include <string.h>
#include <axutil_stack.h>
#include <axutil_hash.h>
#include <axutil_array_list.h>

/*******************************************************************************/

#define ENCODING "ISO-8859-1"

#define AXIS2_XMLNS_NAMESPACE_URI "http://www.w3.org/XML/1998/namespace"
#define AXIS2_XMLNS_PREFIX "xml"

typedef struct uri_prefix_element
{
    axis2_char_t *prefix;

    axis2_char_t *uri;

    axis2_char_t *real_prefix;

    axis2_char_t *key;

}
uri_prefix_element_t;

typedef struct axis2_libxml2_writer_wrapper_impl
{
    axiom_xml_writer_t writer;

    xmlTextWriterPtr xml_writer;

    xmlBufferPtr buffer;

    xmlDocPtr doc;

    int writer_type;

    axis2_char_t *encoding;

    int is_prefix_defaulting;

    int compression;

    axutil_stack_t *stack;

    axis2_bool_t in_empty_element;

    axis2_bool_t in_start_element;

    axutil_hash_t *uri_prefix_map;

    uri_prefix_element_t *default_lang_namespace;

} axis2_libxml2_writer_wrapper_impl_t;

#define AXIS2_INTF_TO_IMPL(p) ((axis2_libxml2_writer_wrapper_impl_t*)p)

void AXIS2_CALL axis2_libxml2_writer_wrapper_free(
    axiom_xml_writer_t * writer,
    const axutil_env_t * env);

axis2_status_t AXIS2_CALL axis2_libxml2_writer_wrapper_write_start_element(
    axiom_xml_writer_t * writer,
    const axutil_env_t * env,
    axis2_char_t * localname);

axis2_status_t AXIS2_CALL axis2_libxml2_writer_wrapper_end_start_element(
    axiom_xml_writer_t * writer,
    const axutil_env_t * env);

axis2_status_t AXIS2_CALL
axis2_libxml2_writer_wrapper_write_start_element_with_namespace(
    axiom_xml_writer_t * writer,
    const axutil_env_t * env,
    axis2_char_t * localname,
    axis2_char_t * namespace_uri);

axis2_status_t AXIS2_CALL
axis2_libxml2_writer_wrapper_write_start_element_with_namespace_prefix(
    axiom_xml_writer_t * writer,
    const axutil_env_t * env,
    axis2_char_t * localname,
    axis2_char_t * namespace_uri,
    axis2_char_t * prefix);

axis2_status_t AXIS2_CALL axis2_libxml2_writer_wrapper_write_empty_element(
    axiom_xml_writer_t * writer,
    const axutil_env_t * env,
    axis2_char_t * localname);

axis2_status_t AXIS2_CALL
axis2_libxml2_writer_wrapper_write_empty_element_with_namespace(
    axiom_xml_writer_t * writer,
    const axutil_env_t * env,
    axis2_char_t * localname,
    axis2_char_t * namespace_uri);

axis2_status_t AXIS2_CALL
axis2_libxml2_writer_wrapper_write_empty_element_with_namespace_prefix(
    axiom_xml_writer_t * writer,
    const axutil_env_t * env,
    axis2_char_t * localname,
    axis2_char_t * namespace_uri,
    axis2_char_t * prefix);

axis2_status_t AXIS2_CALL axis2_libxml2_writer_wrapper_write_end_element(
    axiom_xml_writer_t * writer,
    const axutil_env_t * env);

axis2_status_t AXIS2_CALL axis2_libxml2_writer_wrapper_write_end_document(
    axiom_xml_writer_t * writer,
    const axutil_env_t * env);

axis2_status_t AXIS2_CALL axis2_libxml2_writer_wrapper_write_attribute(
    axiom_xml_writer_t * writer,
    const axutil_env_t * env,
    axis2_char_t * localname,
    axis2_char_t * value);

axis2_status_t AXIS2_CALL
axis2_libxml2_writer_wrapper_write_attribute_with_namespace(
    axiom_xml_writer_t * writer,
    const axutil_env_t * env,
    axis2_char_t * localname,
    axis2_char_t * value,
    axis2_char_t * namespace_uri);

axis2_status_t AXIS2_CALL
axis2_libxml2_writer_wrapper_write_attribute_with_namespace_prefix(
    axiom_xml_writer_t * writer,
    const axutil_env_t * env,
    axis2_char_t * localname,
    axis2_char_t * value,
    axis2_char_t * namespace_uri,
    axis2_char_t * prefix);

axis2_status_t AXIS2_CALL axis2_libxml2_writer_wrapper_write_namespace(
    axiom_xml_writer_t * writer,
    const axutil_env_t * env,
    axis2_char_t * prefix,
    axis2_char_t * namespace_uri);

axis2_status_t AXIS2_CALL axis2_libxml2_writer_wrapper_write_default_namespace(
    axiom_xml_writer_t * writer,
    const axutil_env_t * env,
    axis2_char_t * namespace_uri);

axis2_status_t AXIS2_CALL axis2_libxml2_writer_wrapper_write_comment(
    axiom_xml_writer_t * writer,
    const axutil_env_t * env,
    axis2_char_t * value);

axis2_status_t AXIS2_CALL
axis2_libxml2_writer_wrapper_write_processing_instruction(
    axiom_xml_writer_t * writer,
    const axutil_env_t * env,
    axis2_char_t * target);

axis2_status_t AXIS2_CALL
axis2_libxml2_writer_wrapper_write_processing_instruction_data(
    axiom_xml_writer_t * writer,
    const axutil_env_t * env,
    axis2_char_t * target,
    axis2_char_t * data);

axis2_status_t AXIS2_CALL axis2_libxml2_writer_wrapper_write_cdata(
    axiom_xml_writer_t * writer,
    const axutil_env_t * env,
    axis2_char_t * data);

axis2_status_t AXIS2_CALL axis2_libxml2_writer_wrapper_write_dtd(
    axiom_xml_writer_t * writer,
    const axutil_env_t * env,
    axis2_char_t * dtd);

axis2_status_t AXIS2_CALL axis2_libxml2_writer_wrapper_write_entity_ref(
    axiom_xml_writer_t * writer,
    const axutil_env_t * env,
    axis2_char_t * name);

axis2_status_t AXIS2_CALL axis2_libxml2_writer_wrapper_write_start_document(
    axiom_xml_writer_t * writer,
    const axutil_env_t * env);

axis2_status_t AXIS2_CALL
axis2_libxml2_writer_wrapper_write_start_document_with_version(
    axiom_xml_writer_t * writer,
    const axutil_env_t * env,
    axis2_char_t * version);

axis2_status_t AXIS2_CALL
axis2_libxml2_writer_wrapper_write_start_document_with_version_encoding(
    axiom_xml_writer_t * writer,
    const axutil_env_t * env,
    axis2_char_t * encoding,
    axis2_char_t * version);

axis2_status_t AXIS2_CALL axis2_libxml2_writer_wrapper_write_characters(
    axiom_xml_writer_t * writer,
    const axutil_env_t * env,
    axis2_char_t * text);

axis2_char_t *AXIS2_CALL axis2_libxml2_writer_wrapper_get_prefix(
    axiom_xml_writer_t * writer,
    const axutil_env_t * env,
    axis2_char_t * uri);

axis2_status_t AXIS2_CALL axis2_libxml2_writer_wrapper_set_prefix(
    axiom_xml_writer_t * writer,
    const axutil_env_t * env,
    axis2_char_t * prefix,
    axis2_char_t * uri);

axis2_status_t AXIS2_CALL axis2_libxml2_writer_wrapper_set_default_prefix(
    axiom_xml_writer_t * writer,
    const axutil_env_t * env,
    axis2_char_t * uri);

axis2_status_t AXIS2_CALL axis2_libxml2_writer_wrapper_write_encoded(
    axiom_xml_writer_t * writer,
    const axutil_env_t * env,
    axis2_char_t * text,
    int in_attr);

void *AXIS2_CALL axis2_libxml2_writer_wrapper_get_xml(
    axiom_xml_writer_t * writer,
    const axutil_env_t * env);

unsigned int AXIS2_CALL axis2_libxml2_writer_wrapper_get_xml_size(
    axiom_xml_writer_t * writer,
    const axutil_env_t * env);

axis2_status_t AXIS2_CALL axis2_libxml2_writer_wrapper_flush(
    axiom_xml_writer_t * writer,
    const axutil_env_t * env);

int AXIS2_CALL axis2_libxml2_writer_wrapper_get_type(
    axiom_xml_writer_t * writer,
    const axutil_env_t * env);

axis2_status_t AXIS2_CALL axis2_libxml2_writer_wrapper_write_raw(
    axiom_xml_writer_t * writer,
    const axutil_env_t * env,
    axis2_char_t * content);

static axis2_status_t axis2_libxml2_writer_wrapper_push(
    axiom_xml_writer_t * writer,
    const axutil_env_t * env,
    const axis2_char_t * uri,
    const axis2_char_t * prefix);

static axis2_bool_t axis2_libxml2_writer_wrapper_is_namespace_declared(
    axiom_xml_writer_t * writer,
    const axutil_env_t * env,
    axis2_char_t * key);

static void uri_prefix_element_free(
    uri_prefix_element_t * up_element,
    const axutil_env_t * env);

static uri_prefix_element_t *uri_prefix_element_create(
    const axutil_env_t * env,
    const axis2_char_t * uri,
    const axis2_char_t * prefix,
    const axis2_char_t * real_prefix,
    const axis2_char_t * key);

static void create_key_from_uri_prefix(
    const axutil_env_t * env,
    const axis2_char_t * uri,
    const axis2_char_t * prefix,
    axis2_char_t * array);

static axis2_char_t *axis2_libxml2_writer_wrapper_find_prefix(
    axiom_xml_writer_t * writer,
    const axutil_env_t * env,
    axis2_char_t * uri);

static uri_prefix_element_t *axis2_libxml2_writer_wrapper_find_prefix_in_context(
    axutil_array_list_t * context,
    const axutil_env_t * env,
    axis2_char_t * uri);

static const axiom_xml_writer_ops_t axiom_xml_writer_ops_var = {
    axis2_libxml2_writer_wrapper_free,
    axis2_libxml2_writer_wrapper_write_start_element,
    axis2_libxml2_writer_wrapper_end_start_element,
    axis2_libxml2_writer_wrapper_write_start_element_with_namespace,
    axis2_libxml2_writer_wrapper_write_start_element_with_namespace_prefix,
    axis2_libxml2_writer_wrapper_write_empty_element,
    axis2_libxml2_writer_wrapper_write_empty_element_with_namespace,
    axis2_libxml2_writer_wrapper_write_empty_element_with_namespace_prefix,
    axis2_libxml2_writer_wrapper_write_end_element,
    axis2_libxml2_writer_wrapper_write_end_document,
    axis2_libxml2_writer_wrapper_write_attribute,
    axis2_libxml2_writer_wrapper_write_attribute_with_namespace,
    axis2_libxml2_writer_wrapper_write_attribute_with_namespace_prefix,
    axis2_libxml2_writer_wrapper_write_namespace,
    axis2_libxml2_writer_wrapper_write_default_namespace,
    axis2_libxml2_writer_wrapper_write_comment,
    axis2_libxml2_writer_wrapper_write_processing_instruction,
    axis2_libxml2_writer_wrapper_write_processing_instruction_data,
    axis2_libxml2_writer_wrapper_write_cdata,
    axis2_libxml2_writer_wrapper_write_dtd,
    axis2_libxml2_writer_wrapper_write_entity_ref,
    axis2_libxml2_writer_wrapper_write_start_document,
    axis2_libxml2_writer_wrapper_write_start_document_with_version,
    axis2_libxml2_writer_wrapper_write_start_document_with_version_encoding,
    axis2_libxml2_writer_wrapper_write_characters,
    axis2_libxml2_writer_wrapper_get_prefix,
    axis2_libxml2_writer_wrapper_set_prefix,
    axis2_libxml2_writer_wrapper_set_default_prefix,
    axis2_libxml2_writer_wrapper_write_encoded,
    axis2_libxml2_writer_wrapper_get_xml,
    axis2_libxml2_writer_wrapper_get_xml_size,
    axis2_libxml2_writer_wrapper_get_type,
    axis2_libxml2_writer_wrapper_write_raw,
    axis2_libxml2_writer_wrapper_flush
};

AXIS2_EXTERN axiom_xml_writer_t *AXIS2_CALL
axiom_xml_writer_create(
    const axutil_env_t * env,
    axis2_char_t * filename,
    axis2_char_t * encoding,
    int is_prefix_default,
    int compression)
{
    axis2_libxml2_writer_wrapper_impl_t *writer_impl = NULL;
    AXIS2_ENV_CHECK(env, NULL);
    writer_impl =
        (axis2_libxml2_writer_wrapper_impl_t *) AXIS2_MALLOC(env->allocator,
                                                             sizeof
                                                             (axis2_libxml2_writer_wrapper_impl_t));
    if (!writer_impl)
    {
        AXIS2_ERROR_SET(env->error, AXIS2_ERROR_NO_MEMORY, AXIS2_FAILURE);
        AXIS2_LOG_ERROR(env->log, AXIS2_LOG_SI,
                          "No memory. Cannot create an XML writer wrapper");
        return NULL;
    }
    writer_impl->xml_writer = xmlNewTextWriterFilename(filename, compression);

    if (!(writer_impl->xml_writer))
    {
        AXIS2_FREE(env->allocator, writer_impl);
        AXIS2_HANDLE_ERROR(env,
                        AXIS2_ERROR_CREATING_XML_STREAM_WRITER, AXIS2_FAILURE);
        return NULL;
    }
    writer_impl->buffer = NULL;
    writer_impl->encoding = NULL;
    writer_impl->compression = 0;
    writer_impl->in_empty_element = AXIS2_FALSE;
    writer_impl->in_start_element = AXIS2_FALSE;
    writer_impl->stack = NULL;
    writer_impl->uri_prefix_map = NULL;
    writer_impl->default_lang_namespace = NULL;

    writer_impl->writer_type = AXIS2_XML_PARSER_TYPE_FILE;
    writer_impl->compression = compression;

    if (encoding)
    {
        writer_impl->encoding = axutil_strdup(env, encoding);
    }
    else
    {
        writer_impl->encoding = axutil_strdup(env, ENCODING);
    }

    writer_impl->uri_prefix_map = axutil_hash_make(env);
    if (!(writer_impl->uri_prefix_map))
    {
        axis2_libxml2_writer_wrapper_free(&(writer_impl->writer), env);
        AXIS2_ERROR_SET(env->error, AXIS2_ERROR_NO_MEMORY, AXIS2_FAILURE);
        AXIS2_LOG_ERROR(env->log, AXIS2_LOG_SI,
                          "No memory. Cannot create URI prefix hash map");
        return NULL;
    }
    writer_impl->writer.ops = &axiom_xml_writer_ops_var;
    return &(writer_impl->writer);
}

AXIS2_EXTERN axiom_xml_writer_t *AXIS2_CALL
axiom_xml_writer_create_for_memory(
    const axutil_env_t * env,
    axis2_char_t * encoding,
    int is_prefix_default,
    int compression,
    int type)
{
    axis2_libxml2_writer_wrapper_impl_t *writer_impl = NULL;
    AXIS2_ENV_CHECK(env, NULL);
    writer_impl =
        (axis2_libxml2_writer_wrapper_impl_t *) AXIS2_MALLOC(env->allocator,
                                                             sizeof
                                                             (axis2_libxml2_writer_wrapper_impl_t));
    if (!writer_impl)
    {
        AXIS2_ERROR_SET(env->error, AXIS2_ERROR_NO_MEMORY, AXIS2_FAILURE);
        AXIS2_LOG_ERROR(env->log, AXIS2_LOG_SI,
                          "No memory. Cannot create writer wrapper");
        return NULL;
    }

    writer_impl->encoding = NULL;
    writer_impl->buffer = NULL;
    writer_impl->doc = NULL;
    writer_impl->in_empty_element = AXIS2_FALSE;
    writer_impl->in_start_element = AXIS2_FALSE;
    writer_impl->stack = NULL;
    writer_impl->uri_prefix_map = NULL;
    writer_impl->default_lang_namespace = NULL;
    writer_impl->compression = compression;

    if (AXIS2_XML_PARSER_TYPE_BUFFER == type)
    {
        writer_impl->writer_type = AXIS2_XML_PARSER_TYPE_BUFFER;
        writer_impl->buffer = xmlBufferCreate();
        if (!(writer_impl->buffer))
        {
            axis2_libxml2_writer_wrapper_free(&(writer_impl->writer), env);
            AXIS2_ERROR_SET(env->error, AXIS2_ERROR_NO_MEMORY, AXIS2_FAILURE);
            AXIS2_LOG_ERROR(env->log, AXIS2_LOG_SI,
                              "No memory. Cannot create a buffer for writer wrapper");
            return NULL;
        }

        writer_impl->xml_writer =
            xmlNewTextWriterMemory(writer_impl->buffer, 0);
    }
    else if (AXIS2_XML_PARSER_TYPE_DOC == type)
    {
        writer_impl->writer_type = AXIS2_XML_PARSER_TYPE_DOC;
        writer_impl->xml_writer = xmlNewTextWriterDoc(&writer_impl->doc, 0);
    }
    else
    {
        axis2_libxml2_writer_wrapper_free(&(writer_impl->writer), env);
        AXIS2_HANDLE_ERROR(env, AXIS2_ERROR_XML_PARSER_INVALID_MEM_TYPE,
                        AXIS2_FAILURE);
        return NULL;
    }

    if (!(writer_impl->xml_writer))
    {
        axis2_libxml2_writer_wrapper_free(&(writer_impl->writer), env);
        AXIS2_HANDLE_ERROR(env, AXIS2_ERROR_CREATING_XML_STREAM_WRITER,
                        AXIS2_FAILURE);
        return NULL;
    }

    if (encoding)
    {
        writer_impl->encoding = axutil_strdup(env, encoding);
    }
    else
    {
        writer_impl->encoding = axutil_strdup(env, ENCODING);
    }

    writer_impl->uri_prefix_map = axutil_hash_make(env);
    if (!(writer_impl->uri_prefix_map))
    {
        axis2_libxml2_writer_wrapper_free(&(writer_impl->writer), env);
        AXIS2_ERROR_SET(env->error, AXIS2_ERROR_NO_MEMORY, AXIS2_FAILURE);
        AXIS2_LOG_ERROR(env->log, AXIS2_LOG_SI,
                          "No memory. Cannot create URI prefix hash map");
        return NULL;
    }
    writer_impl->stack = axutil_stack_create(env);
    if (!(writer_impl->stack))
    {
        axis2_libxml2_writer_wrapper_free(&(writer_impl->writer), env);
        AXIS2_ERROR_SET(env->error, AXIS2_ERROR_NO_MEMORY, AXIS2_FAILURE);
        AXIS2_LOG_ERROR(env->log, AXIS2_LOG_SI,
                          "No memory. Cannot create the stack for writer wrapper");
        return NULL;
    }

    writer_impl->writer.ops = &axiom_xml_writer_ops_var;

    return &(writer_impl->writer);
}

void AXIS2_CALL
axis2_libxml2_writer_wrapper_free(
    axiom_xml_writer_t * writer,
    const axutil_env_t * env)
{
    axis2_libxml2_writer_wrapper_impl_t *writer_impl = NULL;
    AXIS2_ENV_CHECK(env, AXIS2_FAILURE);
    writer_impl = AXIS2_INTF_TO_IMPL(writer);

    if (writer_impl->xml_writer)
    {
        xmlFreeTextWriter(writer_impl->xml_writer);
        writer_impl->xml_writer = NULL;
    }
    if (writer_impl->buffer)
    {
        xmlBufferFree(writer_impl->buffer);
        writer_impl->buffer = NULL;
    }
    if (writer_impl->encoding)
    {
        AXIS2_FREE(env->allocator, writer_impl->encoding);
        writer_impl->encoding = NULL;
    }
    if (writer_impl->uri_prefix_map)
    {
        axutil_hash_free(writer_impl->uri_prefix_map, env);
        writer_impl->uri_prefix_map = NULL;
    }
    if (writer_impl->stack)
    {
        axutil_stack_free(writer_impl->stack, env);
        writer_impl->stack = NULL;
    }
    if (writer_impl->default_lang_namespace)
    {
        uri_prefix_element_free(writer_impl->default_lang_namespace, env);
        writer_impl->default_lang_namespace = NULL;
    }

    AXIS2_FREE(env->allocator, writer_impl);
    writer_impl = NULL;
    return;
}

axis2_status_t AXIS2_CALL
axis2_libxml2_writer_wrapper_write_start_element(
    axiom_xml_writer_t * writer,
    const axutil_env_t * env,
    axis2_char_t * localname)
{
    int status = 0;
    axis2_libxml2_writer_wrapper_impl_t *writer_impl = NULL;
    AXIS2_ENV_CHECK(env, AXIS2_FAILURE);
    AXIS2_PARAM_CHECK(env->error, localname, AXIS2_FAILURE);
    writer_impl = AXIS2_INTF_TO_IMPL(writer);

    writer_impl->in_start_element = AXIS2_TRUE;

    status =
        xmlTextWriterStartElement(writer_impl->xml_writer,
                                  (xmlChar *) localname);
    if (status < 0)
    {
        AXIS2_HANDLE_ERROR(env, AXIS2_ERROR_WRITING_START_ELEMENT,
                        AXIS2_FAILURE);
        return AXIS2_FAILURE;
    }
    return AXIS2_SUCCESS;
}

axis2_status_t AXIS2_CALL
axis2_libxml2_writer_wrapper_end_start_element(
    axiom_xml_writer_t * writer,
    const axutil_env_t * env)
{
    AXIS2_ENV_CHECK(env, AXIS2_FAILURE);
    /* nothing to do ,
       it is automatically taken care by the libxml2 writer */
    return AXIS2_SUCCESS;
}

axis2_status_t AXIS2_CALL
axis2_libxml2_writer_wrapper_write_start_element_with_namespace(
    axiom_xml_writer_t * writer,
    const axutil_env_t * env,
    axis2_char_t * localname,
    axis2_char_t * namespace_uri)
{
    axis2_libxml2_writer_wrapper_impl_t *writer_impl = NULL;
    int status = 0;
    AXIS2_ENV_CHECK(env, AXIS2_FAILURE);
    AXIS2_PARAM_CHECK(env->error, localname, AXIS2_FAILURE);
    AXIS2_PARAM_CHECK(env->error, namespace_uri, AXIS2_FAILURE);

    writer_impl = AXIS2_INTF_TO_IMPL(writer);

    status = xmlTextWriterStartElementNS(writer_impl->xml_writer,
                                         NULL, BAD_CAST localname, NULL);

    if (status < 0)
    {
        AXIS2_HANDLE_ERROR(env,
                        AXIS2_ERROR_WRITING_START_ELEMENT_WITH_NAMESPACE,
                        AXIS2_FAILURE);
        return AXIS2_FAILURE;
    }
    return AXIS2_SUCCESS;
}

axis2_status_t AXIS2_CALL
axis2_libxml2_writer_wrapper_write_start_element_with_namespace_prefix(
    axiom_xml_writer_t * writer,
    const axutil_env_t * env,
    axis2_char_t * localname,
    axis2_char_t * namespace_uri,
    axis2_char_t * prefix)
{
    axis2_libxml2_writer_wrapper_impl_t *writer_impl = NULL;
    int status = 0;
    AXIS2_ENV_CHECK(env, AXIS2_FAILURE);
    AXIS2_PARAM_CHECK(env->error, localname, AXIS2_FAILURE);
    AXIS2_PARAM_CHECK(env->error, namespace_uri, AXIS2_FAILURE);
    AXIS2_PARAM_CHECK(env->error, prefix, AXIS2_FAILURE);

    writer_impl = AXIS2_INTF_TO_IMPL(writer);
    writer_impl->in_start_element = AXIS2_TRUE;

    status = xmlTextWriterStartElementNS(writer_impl->xml_writer,
                                         BAD_CAST prefix,
                                         BAD_CAST localname, BAD_CAST NULL);
    if (status < 0)
    {
        AXIS2_HANDLE_ERROR(env,
                        AXIS2_ERROR_WRITING_START_ELEMENT_WITH_NAMESPACE_PREFIX,
                        AXIS2_FAILURE);
        return AXIS2_FAILURE;
    }
    return AXIS2_SUCCESS;
}

axis2_status_t AXIS2_CALL
axis2_libxml2_writer_wrapper_write_empty_element(
    axiom_xml_writer_t * writer,
    const axutil_env_t * env,
    axis2_char_t * localname)
{
    int status = 0;
    axis2_libxml2_writer_wrapper_impl_t *writer_impl = NULL;
    AXIS2_ENV_CHECK(env, AXIS2_FAILURE);
    AXIS2_PARAM_CHECK(env->error, localname, AXIS2_FAILURE);
    writer_impl = AXIS2_INTF_TO_IMPL(writer);

    status =
        xmlTextWriterStartElement(writer_impl->xml_writer,
                                  (xmlChar *) localname);

    if (status < 0)
    {
        AXIS2_HANDLE_ERROR(env, AXIS2_ERROR_WRITING_EMPTY_ELEMENT,
                        AXIS2_FAILURE);
        return AXIS2_FAILURE;
    }
    status = xmlTextWriterEndElement(writer_impl->xml_writer);
    if (status < 0)
    {
        AXIS2_HANDLE_ERROR(env, AXIS2_ERROR_WRITING_EMPTY_ELEMENT,
                        AXIS2_FAILURE);
        return AXIS2_FAILURE;
    }
    return AXIS2_SUCCESS;
}

axis2_status_t AXIS2_CALL
axis2_libxml2_writer_wrapper_write_empty_element_with_namespace(
    axiom_xml_writer_t * writer,
    const axutil_env_t * env,
    axis2_char_t * localname,
    axis2_char_t * namespace_uri)
{
    axis2_libxml2_writer_wrapper_impl_t *writer_impl = NULL;
    int status = 0;
    AXIS2_ENV_CHECK(env, AXIS2_FAILURE);
    AXIS2_PARAM_CHECK(env->error, localname, AXIS2_FAILURE);
    AXIS2_PARAM_CHECK(env->error, namespace_uri, AXIS2_FAILURE);

    writer_impl = AXIS2_INTF_TO_IMPL(writer);

    status = xmlTextWriterStartElementNS(writer_impl->xml_writer,
                                         NULL, BAD_CAST localname,
                                         BAD_CAST namespace_uri);

    if (status < 0)
    {
        AXIS2_HANDLE_ERROR(env,
                        AXIS2_ERROR_WRITING_EMPTY_ELEMENT_WITH_NAMESPACE,
                        AXIS2_FAILURE);
        return AXIS2_FAILURE;
    }
    status = xmlTextWriterEndElement(writer_impl->xml_writer);
    if (status < 0)
    {
        AXIS2_HANDLE_ERROR(env,
                        AXIS2_ERROR_WRITING_EMPTY_ELEMENT_WITH_NAMESPACE,
                        AXIS2_FAILURE);
        return AXIS2_FAILURE;
    }

    return AXIS2_SUCCESS;
}

axis2_status_t AXIS2_CALL
axis2_libxml2_writer_wrapper_write_empty_element_with_namespace_prefix(
    axiom_xml_writer_t * writer,
    const axutil_env_t * env,
    axis2_char_t * localname,
    axis2_char_t * namespace_uri,
    axis2_char_t * prefix)
{
    axis2_libxml2_writer_wrapper_impl_t *writer_impl = NULL;
    int status = 0;
    AXIS2_ENV_CHECK(env, AXIS2_FAILURE);
    AXIS2_PARAM_CHECK(env->error, localname, AXIS2_FAILURE);
    AXIS2_PARAM_CHECK(env->error, namespace_uri, AXIS2_FAILURE);
    AXIS2_PARAM_CHECK(env->error, prefix, AXIS2_FAILURE);

    writer_impl = AXIS2_INTF_TO_IMPL(writer);

    status = xmlTextWriterStartElementNS(writer_impl->xml_writer,
                                         BAD_CAST prefix,
                                         BAD_CAST localname, BAD_CAST NULL);
    if (status < 0)
    {
        AXIS2_HANDLE_ERROR(env,
                        AXIS2_ERROR_WRITING_START_ELEMENT_WITH_NAMESPACE_PREFIX,
                        AXIS2_FAILURE);
        return AXIS2_FAILURE;
    }
    status = xmlTextWriterEndElement(writer_impl->xml_writer);
    if (status < 0)
    {
        AXIS2_HANDLE_ERROR(env,
                        AXIS2_ERROR_WRITING_EMPTY_ELEMENT_WITH_NAMESPACE_PREFIX,
                        AXIS2_FAILURE);
        return AXIS2_FAILURE;
    }
    return AXIS2_SUCCESS;
}

axis2_status_t AXIS2_CALL
axis2_libxml2_writer_wrapper_write_end_element(
    axiom_xml_writer_t * writer,
    const axutil_env_t * env)
{
    axis2_libxml2_writer_wrapper_impl_t *writer_impl = NULL;
    int status = 0;

    AXIS2_ENV_CHECK(env, AXIS2_FAILURE);

    writer_impl = AXIS2_INTF_TO_IMPL(writer);

    writer_impl->in_start_element = AXIS2_FALSE;
    /* write an empty element in case the element is empty, 
       status = xmlTextWriterFullEndElement(writer_impl->xml_writer);
       Above call write it like <a></a>.
       Call below will write it like <a/> */
    status = xmlTextWriterEndElement(writer_impl->xml_writer);
    if (status < 0)
    {
        AXIS2_HANDLE_ERROR(env, AXIS2_ERROR_WRITING_END_ELEMENT,
                        AXIS2_FAILURE);
        return AXIS2_FAILURE;
    }
    return AXIS2_SUCCESS;
}

axis2_status_t AXIS2_CALL
axis2_libxml2_writer_wrapper_write_end_document(
    axiom_xml_writer_t * writer,
    const axutil_env_t * env)
{
    axis2_libxml2_writer_wrapper_impl_t *writer_impl = NULL;
    int status = 0;
    AXIS2_ENV_CHECK(env, AXIS2_FAILURE);

    writer_impl = AXIS2_INTF_TO_IMPL(writer);
    status = xmlTextWriterEndDocument(writer_impl->xml_writer);
    if (status < 0)
    {
        AXIS2_HANDLE_ERROR(env, AXIS2_ERROR_WRITING_END_DOCUMENT,
                        AXIS2_FAILURE);
        return AXIS2_FAILURE;
    }
    return AXIS2_SUCCESS;
}

axis2_status_t AXIS2_CALL
axis2_libxml2_writer_wrapper_write_attribute(
    axiom_xml_writer_t * writer,
    const axutil_env_t * env,
    axis2_char_t * localname,
    axis2_char_t * value)
{
    axis2_libxml2_writer_wrapper_impl_t *writer_impl = NULL;
    int status = 0;
    AXIS2_ENV_CHECK(env, AXIS2_FAILURE);
    AXIS2_PARAM_CHECK(env->error, localname, AXIS2_FAILURE);
    if (!value)
    {
        value = "";
    }

    writer_impl = AXIS2_INTF_TO_IMPL(writer);
    status = xmlTextWriterWriteAttribute(writer_impl->xml_writer,
                                         BAD_CAST localname, BAD_CAST value);
    if (status < 0)
    {
        AXIS2_HANDLE_ERROR(env, AXIS2_ERROR_WRITING_ATTRIBUTE,
                        AXIS2_FAILURE);
        return AXIS2_FAILURE;
    }
    return AXIS2_SUCCESS;
}

axis2_status_t AXIS2_CALL
axis2_libxml2_writer_wrapper_write_attribute_with_namespace(
    axiom_xml_writer_t * writer,
    const axutil_env_t * env,
    axis2_char_t * localname,
    axis2_char_t * value,
    axis2_char_t * namespace_uri)
{
    axis2_libxml2_writer_wrapper_impl_t *writer_impl = NULL;
    int status = 0;
    AXIS2_ENV_CHECK(env, AXIS2_FAILURE);
    AXIS2_PARAM_CHECK(env->error, localname, AXIS2_FAILURE);
    AXIS2_PARAM_CHECK(env->error, namespace_uri, AXIS2_FAILURE);

    if (!value)
    {
        value = "";
    }

    writer_impl = AXIS2_INTF_TO_IMPL(writer);
    status = xmlTextWriterWriteAttributeNS(writer_impl->xml_writer,
                                           NULL, BAD_CAST localname,
                                           BAD_CAST NULL, BAD_CAST value);
    if (status < 0)
    {
        AXIS2_HANDLE_ERROR(env,
                        AXIS2_ERROR_WRITING_ATTRIBUTE_WITH_NAMESPACE,
                        AXIS2_FAILURE);
        return AXIS2_FAILURE;
    }
    return AXIS2_SUCCESS;
}

axis2_status_t AXIS2_CALL
axis2_libxml2_writer_wrapper_write_attribute_with_namespace_prefix(
    axiom_xml_writer_t * writer,
    const axutil_env_t * env,
    axis2_char_t * localname,
    axis2_char_t * value,
    axis2_char_t * namespace_uri,
    axis2_char_t * prefix)
{
    axis2_libxml2_writer_wrapper_impl_t *writer_impl = NULL;
    int status = 0;
    AXIS2_ENV_CHECK(env, AXIS2_FAILURE);
    AXIS2_PARAM_CHECK(env->error, localname, AXIS2_FAILURE);
    AXIS2_PARAM_CHECK(env->error, namespace_uri, AXIS2_FAILURE);
    AXIS2_PARAM_CHECK(env->error, prefix, AXIS2_FAILURE);

    if (!value)
    {
        value = "";
    }
    writer_impl = AXIS2_INTF_TO_IMPL(writer);
    status = xmlTextWriterWriteAttributeNS(writer_impl->xml_writer,
                                           BAD_CAST prefix, BAD_CAST localname,
                                           BAD_CAST NULL, BAD_CAST value);
    if (status < 0)
    {
        AXIS2_HANDLE_ERROR(env,
                        AXIS2_ERROR_WRITING_ATTRIBUTE_WITH_NAMESPACE_PREFIX,
                        AXIS2_FAILURE);
        return AXIS2_FAILURE;
    }
    return AXIS2_SUCCESS;
}

/** need to work on this */
axis2_status_t AXIS2_CALL
axis2_libxml2_writer_wrapper_write_namespace(
    axiom_xml_writer_t * writer,
    const axutil_env_t * env,
    axis2_char_t * prefix,
    axis2_char_t * namespace_uri)
{
    axis2_libxml2_writer_wrapper_impl_t *writer_impl = NULL;
    int status = 0;
    char *xmlnsprefix = NULL;

    AXIS2_ENV_CHECK(env, AXIS2_FAILURE);
    AXIS2_PARAM_CHECK(env->error, namespace_uri, AXIS2_FAILURE);

    writer_impl = AXIS2_INTF_TO_IMPL(writer);

    if (prefix && (axutil_strcmp(prefix, "") != 0))
    {
        xmlnsprefix = (axis2_char_t *) AXIS2_MALLOC(env->allocator,
                                                    (sizeof(char) *
                                                     (axutil_strlen(prefix) +
                                                      7)));
        sprintf(xmlnsprefix, "xmlns:%s", prefix);
    }
    else
    {
        xmlnsprefix = axutil_strdup(env, "xmlns");
    }

    status = xmlTextWriterWriteAttribute(writer_impl->xml_writer,
                                         BAD_CAST xmlnsprefix,
                                         BAD_CAST namespace_uri);
    AXIS2_FREE(env->allocator, xmlnsprefix);
    xmlnsprefix = NULL;

    if (status < 0)
    {
        AXIS2_HANDLE_ERROR(env,
                        AXIS2_ERROR_WRITING_ATTRIBUTE_WITH_NAMESPACE_PREFIX,
                        AXIS2_FAILURE);
        return AXIS2_FAILURE;
    }

    AXIS2_FREE(env->allocator, xmlnsprefix);
    xmlnsprefix = NULL;
    return AXIS2_SUCCESS;
}

axis2_status_t AXIS2_CALL
axis2_libxml2_writer_wrapper_write_default_namespace(
    axiom_xml_writer_t * writer,
    const axutil_env_t * env,
    axis2_char_t * namespace_uri)
{
    axis2_libxml2_writer_wrapper_impl_t *writer_impl = NULL;
    int status = 0;
    axis2_char_t *xmlns = NULL;
    AXIS2_ENV_CHECK(env, AXIS2_FAILURE);
    AXIS2_PARAM_CHECK(env->error, namespace_uri, AXIS2_FAILURE)
        xmlns = AXIS2_MALLOC(env->allocator,
                             sizeof(axis2_char_t) * (strlen("xmlns") + 1));
    sprintf(xmlns, "xmlns");
    status = xmlTextWriterWriteAttribute(writer_impl->xml_writer,
                                         (const xmlChar *) xmlns,
                                         BAD_CAST namespace_uri);

    if (xmlns)
    {
        AXIS2_FREE(env->allocator, xmlns);
        xmlns = NULL;
    }
    if (status < 0)
    {
        AXIS2_HANDLE_ERROR(env, AXIS2_ERROR_WRITING_DEFAULT_NAMESPACE,
                        AXIS2_FAILURE);
        return AXIS2_FAILURE;
    }
    return AXIS2_SUCCESS;
}

axis2_status_t AXIS2_CALL
axis2_libxml2_writer_wrapper_write_comment(
    axiom_xml_writer_t * writer,
    const axutil_env_t * env,
    axis2_char_t * value)
{
    axis2_libxml2_writer_wrapper_impl_t *writer_impl = NULL;
    int status = 0;
    AXIS2_ENV_CHECK(env, AXIS2_FAILURE);
    AXIS2_PARAM_CHECK(env->error, value, AXIS2_FAILURE);

    writer_impl = AXIS2_INTF_TO_IMPL(writer);
    status = xmlTextWriterWriteComment(writer_impl->xml_writer, BAD_CAST value);
    if (status < 0)
    {
        AXIS2_HANDLE_ERROR(env, AXIS2_ERROR_WRITING_COMMENT, AXIS2_FAILURE);
        return AXIS2_FAILURE;
    }
    return AXIS2_SUCCESS;
}

axis2_status_t AXIS2_CALL
axis2_libxml2_writer_wrapper_write_processing_instruction(
    axiom_xml_writer_t * writer,
    const axutil_env_t * env,
    axis2_char_t * target)
{
    axis2_libxml2_writer_wrapper_impl_t *writer_impl = NULL;
    int status = 0;
    AXIS2_ENV_CHECK(env, AXIS2_FAILURE);
    AXIS2_PARAM_CHECK(env->error, target, AXIS2_FAILURE);
    writer_impl = AXIS2_INTF_TO_IMPL(writer);

    status = xmlTextWriterStartPI(writer_impl->xml_writer, BAD_CAST target);
    if (status < 0)
    {
        AXIS2_HANDLE_ERROR(env,
                        AXIS2_ERROR_WRITING_PROCESSING_INSTRUCTION,
                        AXIS2_FAILURE);
        return AXIS2_FAILURE;
    }
    return AXIS2_SUCCESS;
}

axis2_status_t AXIS2_CALL
axis2_libxml2_writer_wrapper_write_processing_instruction_data(
    axiom_xml_writer_t * writer,
    const axutil_env_t * env,
    axis2_char_t * target,
    axis2_char_t * data)
{
    axis2_libxml2_writer_wrapper_impl_t *writer_impl = NULL;
    int status = 0;
    AXIS2_ENV_CHECK(env, AXIS2_FAILURE);
    AXIS2_PARAM_CHECK(env->error, target, AXIS2_FAILURE);
    AXIS2_PARAM_CHECK(env->error, data, AXIS2_FAILURE);
    writer_impl = AXIS2_INTF_TO_IMPL(writer);

    status = xmlTextWriterWritePI(writer_impl->xml_writer,
                                  BAD_CAST target, BAD_CAST data);
    if (status < 0)
    {
        AXIS2_HANDLE_ERROR(env,
                        AXIS2_ERROR_WRITING_PROCESSING_INSTRUCTION,
                        AXIS2_FAILURE);
        return AXIS2_FAILURE;
    }
    return AXIS2_SUCCESS;
}

axis2_status_t AXIS2_CALL
axis2_libxml2_writer_wrapper_write_cdata(
    axiom_xml_writer_t * writer,
    const axutil_env_t * env,
    axis2_char_t * data)
{
    axis2_libxml2_writer_wrapper_impl_t *writer_impl = NULL;
    int status = 0;
    AXIS2_ENV_CHECK(env, AXIS2_FAILURE);
    AXIS2_PARAM_CHECK(env->error, data, AXIS2_FAILURE);

    writer_impl = AXIS2_INTF_TO_IMPL(writer);

    status = xmlTextWriterWriteCDATA(writer_impl->xml_writer, BAD_CAST data);
    if (status < 0)
    {
        AXIS2_HANDLE_ERROR(env, AXIS2_ERROR_WRITING_CDATA, AXIS2_FAILURE);
        return AXIS2_FAILURE;
    }
    return AXIS2_SUCCESS;
}

axis2_status_t AXIS2_CALL
axis2_libxml2_writer_wrapper_write_dtd(
    axiom_xml_writer_t * writer,
    const axutil_env_t * env,
    axis2_char_t * dtd)
{
    axis2_libxml2_writer_wrapper_impl_t *writer_impl = NULL;
    int status = 0;
    AXIS2_ENV_CHECK(env, AXIS2_FAILURE);
    AXIS2_PARAM_CHECK(env->error, dtd, AXIS2_FAILURE);

    status = xmlTextWriterStartDTD(writer_impl->xml_writer,
                                   BAD_CAST dtd, NULL, NULL);
    if (status < 0)
    {
        AXIS2_HANDLE_ERROR(env, AXIS2_ERROR_WRITING_DTD, AXIS2_FAILURE);
        return AXIS2_FAILURE;
    }
    return AXIS2_SUCCESS;
}

axis2_status_t AXIS2_CALL
axis2_libxml2_writer_wrapper_write_entity_ref(
    axiom_xml_writer_t * writer,
    const axutil_env_t * env,
    axis2_char_t * name)
{
    AXIS2_ENV_CHECK(env, AXIS2_FAILURE);
    AXIS2_PARAM_CHECK(env->error, name, AXIS2_FAILURE);
    return AXIS2_FAILURE;
}

axis2_status_t AXIS2_CALL
axis2_libxml2_writer_wrapper_write_start_document(
    axiom_xml_writer_t * writer,
    const axutil_env_t * env)
{
    axis2_libxml2_writer_wrapper_impl_t *wrapper_impl = NULL;
    int status = 0;
    AXIS2_ENV_CHECK(env, AXIS2_FAILURE);

    wrapper_impl = AXIS2_INTF_TO_IMPL(writer);
    status = xmlTextWriterStartDocument(wrapper_impl->xml_writer,
                                        NULL, NULL, NULL);
    if (status < 0)
    {
        AXIS2_HANDLE_ERROR(env,
                        AXIS2_ERROR_WRITING_START_DOCUMENT, AXIS2_FAILURE);
        return AXIS2_FAILURE;
    }
    return AXIS2_SUCCESS;
}

axis2_status_t AXIS2_CALL
axis2_libxml2_writer_wrapper_write_start_document_with_version(
    axiom_xml_writer_t * writer,
    const axutil_env_t * env,
    axis2_char_t * version)
{
    axis2_libxml2_writer_wrapper_impl_t *wrapper_impl = NULL;
    int status = 0;
    AXIS2_ENV_CHECK(env, AXIS2_FAILURE);
    AXIS2_PARAM_CHECK(env->error, version, AXIS2_FAILURE);

    wrapper_impl = AXIS2_INTF_TO_IMPL(writer);
    status = xmlTextWriterStartDocument(wrapper_impl->xml_writer,
                                        version, NULL, NULL);
    if (status < 0)
    {
        AXIS2_HANDLE_ERROR(env,
                        AXIS2_ERROR_WRITING_START_DOCUMENT, AXIS2_FAILURE);
        return AXIS2_FAILURE;
    }
    return AXIS2_SUCCESS;
}

axis2_status_t AXIS2_CALL
axis2_libxml2_writer_wrapper_write_start_document_with_version_encoding(
    axiom_xml_writer_t * writer,
    const axutil_env_t * env,
    axis2_char_t * encoding,
    axis2_char_t * version)
{
    axis2_libxml2_writer_wrapper_impl_t *wrapper_impl = NULL;
    int status = 0;
    AXIS2_ENV_CHECK(env, AXIS2_FAILURE);

    wrapper_impl = AXIS2_INTF_TO_IMPL(writer);
    status = xmlTextWriterStartDocument(wrapper_impl->xml_writer,
                                        version, encoding, NULL);
    if (status < 0)
    {
        AXIS2_HANDLE_ERROR(env,
                        AXIS2_ERROR_WRITING_START_DOCUMENT, AXIS2_FAILURE);
        return AXIS2_FAILURE;
    }
    return AXIS2_SUCCESS;
}

axis2_status_t AXIS2_CALL
axis2_libxml2_writer_wrapper_write_characters(
    axiom_xml_writer_t * writer,
    const axutil_env_t * env,
    axis2_char_t * text)
{
    axis2_libxml2_writer_wrapper_impl_t *writer_impl = NULL;
    int status = 0;

    AXIS2_ENV_CHECK(env, AXIS2_FAILURE);
    AXIS2_PARAM_CHECK(env->error, text, AXIS2_FAILURE);

    writer_impl = AXIS2_INTF_TO_IMPL(writer);

    status = xmlTextWriterWriteString(writer_impl->xml_writer, BAD_CAST text);
    if (status < 0)
    {
        AXIS2_HANDLE_ERROR(env,
                        AXIS2_ERROR_WRITING_START_DOCUMENT, AXIS2_FAILURE);
        return AXIS2_FAILURE;
    }
    return AXIS2_SUCCESS;
}

axis2_char_t *AXIS2_CALL
axis2_libxml2_writer_wrapper_get_prefix(
    axiom_xml_writer_t * writer,
    const axutil_env_t * env,
    axis2_char_t * uri)
{
    axis2_libxml2_writer_wrapper_impl_t *writer_impl = NULL;
    AXIS2_PARAM_CHECK(env->error, uri, NULL);
    writer_impl = AXIS2_INTF_TO_IMPL(writer);
    if (!uri || axutil_strcmp(uri, "") == 0)
    {
        return NULL;
    }
    return axis2_libxml2_writer_wrapper_find_prefix(writer, env, uri);
}

axis2_status_t AXIS2_CALL
axis2_libxml2_writer_wrapper_set_prefix(
    axiom_xml_writer_t * writer,
    const axutil_env_t * env,
    axis2_char_t * prefix,
    axis2_char_t * uri)
{
    axis2_libxml2_writer_wrapper_impl_t *writer_impl = NULL;

    axis2_bool_t is_declared = AXIS2_FALSE;
    axis2_char_t key[1024];

    AXIS2_ENV_CHECK(env, AXIS2_FAILURE);
    AXIS2_PARAM_CHECK(env->error, prefix, AXIS2_FAILURE);
    AXIS2_PARAM_CHECK(env->error, uri, AXIS2_FAILURE);
    writer_impl = AXIS2_INTF_TO_IMPL(writer);
    if (axutil_strcmp(uri, "") == 0)
    {
        return AXIS2_FAILURE;
    }

    create_key_from_uri_prefix(env, uri, prefix, key);

    is_declared =
        axis2_libxml2_writer_wrapper_is_namespace_declared(writer, env, key);
    if (!is_declared)
    {
        return axis2_libxml2_writer_wrapper_push(writer, env, uri, prefix);
    }
    return AXIS2_FAILURE;
}

axis2_status_t AXIS2_CALL
axis2_libxml2_writer_wrapper_set_default_prefix(
    axiom_xml_writer_t * writer,
    const axutil_env_t * env,
    axis2_char_t * uri)
{
    axis2_bool_t is_declared = AXIS2_FALSE;

    AXIS2_ENV_CHECK(env, AXIS2_FAILURE);
    AXIS2_PARAM_CHECK(env->error, uri, AXIS2_FAILURE);
    if (axutil_strcmp(uri, "") == 0)
    {
        return AXIS2_FAILURE;
    }
    is_declared =
        axis2_libxml2_writer_wrapper_is_namespace_declared(writer, env, uri);
    if (!is_declared)
    {
        return axis2_libxml2_writer_wrapper_push(writer, env, uri, NULL);
    }
    return AXIS2_FAILURE;
}

axis2_status_t AXIS2_CALL
axis2_libxml2_writer_wrapper_write_encoded(
    axiom_xml_writer_t * writer,
    const axutil_env_t * env,
    axis2_char_t * text,
    int in_attr)
{
    axis2_libxml2_writer_wrapper_impl_t *writer_impl = NULL;
    AXIS2_ENV_CHECK(env, AXIS2_FAILURE);
    AXIS2_PARAM_CHECK(env->error, text, AXIS2_FAILURE);
    writer_impl = AXIS2_INTF_TO_IMPL(writer);
    return AXIS2_FAILURE;
}

void *AXIS2_CALL
axis2_libxml2_writer_wrapper_get_xml(
    axiom_xml_writer_t * writer,
    const axutil_env_t * env)
{
    axis2_libxml2_writer_wrapper_impl_t *writer_impl = NULL;
    writer_impl = AXIS2_INTF_TO_IMPL(writer);
    if (writer_impl->writer_type == AXIS2_XML_PARSER_TYPE_BUFFER)
    {
        int output_bytes = 0;
        output_bytes = xmlTextWriterFlush(writer_impl->xml_writer);
        return writer_impl->buffer->content;
    }
    else if (writer_impl->writer_type == AXIS2_XML_PARSER_TYPE_DOC)
    {
        return (void *) writer_impl->doc;
    }
    else if (writer_impl->writer_type == AXIS2_XML_PARSER_TYPE_FILE)
    {
        return NULL;
    }

    return NULL;
}

unsigned int AXIS2_CALL
axis2_libxml2_writer_wrapper_get_xml_size(
    axiom_xml_writer_t * writer,
    const axutil_env_t * env)
{
    axis2_libxml2_writer_wrapper_impl_t *writer_impl = NULL;
    writer_impl = AXIS2_INTF_TO_IMPL(writer);

    if (writer_impl->writer_type == AXIS2_XML_PARSER_TYPE_BUFFER)
    {
        return writer_impl->buffer->use;
    }
    else
    {
        return 0;
    }
}

axis2_status_t AXIS2_CALL
axis2_libxml2_writer_wrapper_flush(
    axiom_xml_writer_t * writer,
    const axutil_env_t * env)
{
    axis2_libxml2_writer_wrapper_impl_t *writer_impl = NULL;
    writer_impl = AXIS2_INTF_TO_IMPL(writer);
    if (writer_impl->xml_writer)
    {
        int ret = 0;
        ret = xmlTextWriterFlush(writer_impl->xml_writer);
        if (ret > -1)
            return AXIS2_SUCCESS;
    }

    return AXIS2_FAILURE;
}

int AXIS2_CALL
axis2_libxml2_writer_wrapper_get_type(
    axiom_xml_writer_t * writer,
    const axutil_env_t * env)
{
    axis2_libxml2_writer_wrapper_impl_t *writer_impl = NULL;
    writer_impl = AXIS2_INTF_TO_IMPL(writer);

    return writer_impl->writer_type;
}

static axis2_status_t
axis2_libxml2_writer_wrapper_push(
    axiom_xml_writer_t * writer,
    const axutil_env_t * env,
    const axis2_char_t * uri,
    const axis2_char_t * prefix)
{
    axis2_libxml2_writer_wrapper_impl_t *writer_impl = NULL;
    axutil_array_list_t *current_list = NULL;
    axis2_char_t key[1024];
    const axis2_char_t *temp_prefix = NULL;
    writer_impl = AXIS2_INTF_TO_IMPL(writer);
    if (!prefix || axutil_strcmp(prefix, "") == 0)
    {
        temp_prefix = "default";
    }
    else
    {
        temp_prefix = prefix;
    }

    if (writer_impl->stack)
    {
        current_list = (axutil_array_list_t *)
            axutil_stack_get(writer_impl->stack, env);

        if (current_list)
        {
            uri_prefix_element_t *ele = NULL;
            create_key_from_uri_prefix(env, uri, prefix, key);

            ele = uri_prefix_element_create(env, uri, temp_prefix, prefix, key);
            if (ele)
            {
                axutil_array_list_add(current_list, env, ele);
                axutil_hash_set(writer_impl->uri_prefix_map, ele->key,
                                AXIS2_HASH_KEY_STRING, ele->prefix);
            }
        }
    }
    return AXIS2_SUCCESS;
}

static axis2_bool_t
axis2_libxml2_writer_wrapper_is_namespace_declared(
    axiom_xml_writer_t * writer,
    const axutil_env_t * env,
    axis2_char_t * key)
{
    axis2_libxml2_writer_wrapper_impl_t *writer_impl = NULL;
    AXIS2_ENV_CHECK(env, AXIS2_FALSE);
    writer_impl = AXIS2_INTF_TO_IMPL(writer);
    if (writer_impl->uri_prefix_map && NULL != key)
    {
        void *ret = NULL;
        ret = axutil_hash_get(writer_impl->uri_prefix_map, key,
                              AXIS2_HASH_KEY_STRING);
        if (ret)
        {
            return AXIS2_TRUE;
        }
    }
    return AXIS2_FALSE;
}

static void
uri_prefix_element_free(
    uri_prefix_element_t * up_element,
    const axutil_env_t * env)
{
    if (up_element)
    {
        if (up_element->uri)
        {
            AXIS2_FREE(env->allocator, up_element->uri);
            up_element->uri = NULL;
        }
        if (up_element->prefix)
        {
            AXIS2_FREE(env->allocator, up_element->prefix);
            up_element->prefix = NULL;
        }
        if (up_element->key)
        {
            AXIS2_FREE(env->allocator, up_element->key);
            up_element->key = NULL;
        }
        if (up_element->real_prefix)
        {
            AXIS2_FREE(env->allocator, up_element->real_prefix);
            up_element->real_prefix = NULL;
        }
        AXIS2_FREE(env->allocator, up_element);
        up_element = NULL;
    }
    return;
}

static uri_prefix_element_t *
uri_prefix_element_create(
    const axutil_env_t * env,
    const axis2_char_t * uri,
    const axis2_char_t * prefix,
    const axis2_char_t * real_prefix,
    const axis2_char_t * key)
{
    uri_prefix_element_t *up_element = NULL;
    up_element = (uri_prefix_element_t *) AXIS2_MALLOC(env->allocator,
                                                       sizeof
                                                       (uri_prefix_element_t));

    if (!uri)
    {
        return NULL;
    }

    if (!up_element)
    {
        AXIS2_ERROR_SET(env->error, AXIS2_ERROR_NO_MEMORY, AXIS2_FAILURE);
        AXIS2_LOG_ERROR(env->log, AXIS2_LOG_SI,
                          "No memory. Cannot create URI prefix element %s", uri);
        return NULL;
    }
    up_element->key = NULL;
    up_element->prefix = NULL;
    up_element->uri = NULL;
    up_element->real_prefix = NULL;

    up_element->uri = axutil_strdup(env, uri);
    if (!up_element->uri)
    {
        uri_prefix_element_free(up_element, env);
        AXIS2_ERROR_SET(env->error, AXIS2_ERROR_NO_MEMORY, AXIS2_FAILURE);
        return NULL;
    }
    up_element->prefix = axutil_strdup(env, prefix);
    if (prefix && !up_element->prefix)
    {
        uri_prefix_element_free(up_element, env);
        AXIS2_ERROR_SET(env->error, AXIS2_ERROR_NO_MEMORY, AXIS2_FAILURE);
        return NULL;
    }
    up_element->key = axutil_strdup(env, key);
    if (key && !up_element->key)
    {
        uri_prefix_element_free(up_element, env);
        AXIS2_ERROR_SET(env->error, AXIS2_ERROR_NO_MEMORY, AXIS2_FAILURE);
        return NULL;
    }
    up_element->real_prefix = axutil_strdup(env, real_prefix);

    return up_element;
}

static void
create_key_from_uri_prefix(
    const axutil_env_t * env,
    const axis2_char_t * uri,
    const axis2_char_t * prefix,
    axis2_char_t * array)
{
    if (!prefix)
    {
        prefix = "";
    }
    sprintf(array, "%s%s%s", uri, "|", prefix);
}

static axis2_char_t *
axis2_libxml2_writer_wrapper_find_prefix(
    axiom_xml_writer_t * writer,
    const axutil_env_t * env,
    axis2_char_t * uri)
{
    axis2_libxml2_writer_wrapper_impl_t *writer_impl = NULL;
    int size = 0;
    int i = 0;

    writer_impl = AXIS2_INTF_TO_IMPL(writer);

    if (!writer_impl->stack)
    {
        return NULL;
    }
    size = axutil_stack_size(writer_impl->stack, env);
    if (size <= 0)
    {
        return NULL;
    }

    for (i = size - 1; i < 0; i--)
    {
        axutil_array_list_t *context = NULL;
        void *value = NULL;
        value = axutil_stack_get_at(writer_impl->stack, env, i);
        if (value)
        {
            uri_prefix_element_t *up_ele = NULL;
            context = (axutil_array_list_t *) value;
            up_ele =
                axis2_libxml2_writer_wrapper_find_prefix_in_context(context,
                                                                    env, uri);
            if (up_ele)
            {
                return up_ele->real_prefix;
            }
        }
    }
    return NULL;
}

static uri_prefix_element_t *
axis2_libxml2_writer_wrapper_find_prefix_in_context(
    axutil_array_list_t * context,
    const axutil_env_t * env,
    axis2_char_t * uri)
{
    int size = 0;
    int i = 0;
    if (!context)
    {
        return NULL;
    }
    size = axutil_array_list_size(context, env);
    for (i = 0; i < size; i++)
    {
        uri_prefix_element_t *ele = NULL;
        void *value = NULL;
        value = axutil_array_list_get(context, env, i);
        if (value)
        {
            ele = (uri_prefix_element_t *) value;
            if (ele->uri && axutil_strcmp(uri, ele->uri))
            {
                return ele;
            }
        }
    }
    return NULL;
}

axis2_status_t AXIS2_CALL
axis2_libxml2_writer_wrapper_write_raw(
    axiom_xml_writer_t * writer,
    const axutil_env_t * env,
    axis2_char_t * content)
{
    axis2_libxml2_writer_wrapper_impl_t *writer_impl = NULL;
    int status = 0;
    AXIS2_ENV_CHECK(env, AXIS2_FAILURE);
    AXIS2_PARAM_CHECK(env->error, content, AXIS2_FAILURE);

    writer_impl = AXIS2_INTF_TO_IMPL(writer);
    status = xmlTextWriterWriteRaw(writer_impl->xml_writer, BAD_CAST content);
    if (status < 0)
    {
        AXIS2_HANDLE_ERROR(env,
                        AXIS2_ERROR_WRITING_DATA_SOURCE, AXIS2_FAILURE);
        return AXIS2_FAILURE;
    }
    return AXIS2_SUCCESS;
}


<|start_filename|>xdocs/api/html/axis2__http__transport__utils_8h-source.html<|end_filename|>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html><head><meta http-equiv="Content-Type" content="text/html;charset=UTF-8">
<title>Axis2/C: axis2_http_transport_utils.h Source File</title>
<link href="doxygen.css" rel="stylesheet" type="text/css">
<link href="tabs.css" rel="stylesheet" type="text/css">
</head><body>
<!-- Generated by Doxygen 1.5.3 -->
<div class="tabs">
  <ul>
    <li><a href="index.html"><span>Main&nbsp;Page</span></a></li>
    <li><a href="modules.html"><span>Modules</span></a></li>
    <li><a href="annotated.html"><span>Classes</span></a></li>
    <li class="current"><a href="files.html"><span>Files</span></a></li>
    <li><a href="dirs.html"><span>Directories</span></a></li>
    <li><a href="pages.html"><span>Related&nbsp;Pages</span></a></li>
    <li><a href="examples.html"><span>Examples</span></a></li>
    <li>
      <form action="search.php" method="get">
        <table cellspacing="0" cellpadding="0" border="0">
          <tr>
            <td><label>&nbsp;<u>S</u>earch&nbsp;for&nbsp;</label></td>
            <td><input type="text" name="query" value="" size="20" accesskey="s"/></td>
          </tr>
        </table>
      </form>
    </li>
  </ul>
</div>
<div class="nav">
<a class="el" href="dir_f60961de8e5edc3b2658ef023e959e45.html">deploy</a>&nbsp;&raquo&nbsp;<a class="el" href="dir_6b4e91e54b7316b376882a6402adbf44.html">include</a>&nbsp;&raquo&nbsp;<a class="el" href="dir_df3a7695d5a9e696f30b948b566829e7.html">axis2-1.6.0</a></div>
<h1>axis2_http_transport_utils.h</h1><a href="axis2__http__transport__utils_8h.html">Go to the documentation of this file.</a><div class="fragment"><pre class="fragment"><a name="l00001"></a>00001 <span class="comment">/*</span>
<a name="l00002"></a>00002 <span class="comment"> * Licensedo to the Apache Software Foundation (ASF) under one or more</span>
<a name="l00003"></a>00003 <span class="comment"> * contributor license agreements.  See the NOTICE file distributed with</span>
<a name="l00004"></a>00004 <span class="comment"> * this work for additional information regarding copyright ownership.</span>
<a name="l00005"></a>00005 <span class="comment"> * The ASF licenses this file to You under the Apache License, Version 2.0</span>
<a name="l00006"></a>00006 <span class="comment"> * (the "License"); you may not use this file except in compliance with</span>
<a name="l00007"></a>00007 <span class="comment"> * the License.  You may obtain a copy of the License at</span>
<a name="l00008"></a>00008 <span class="comment"> *</span>
<a name="l00009"></a>00009 <span class="comment"> *      http://www.apache.org/licenses/LICENSE-2.0</span>
<a name="l00010"></a>00010 <span class="comment"> *</span>
<a name="l00011"></a>00011 <span class="comment"> * Unless required by applicable law or agreed to in writing, software</span>
<a name="l00012"></a>00012 <span class="comment"> * distributed under the License is distributed on an "AS IS" BASIS,</span>
<a name="l00013"></a>00013 <span class="comment"> * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.</span>
<a name="l00014"></a>00014 <span class="comment"> * See the License for the specific language governing permissions and</span>
<a name="l00015"></a>00015 <span class="comment"> * limitations under the License.</span>
<a name="l00016"></a>00016 <span class="comment"> */</span>
<a name="l00017"></a>00017 
<a name="l00018"></a>00018 <span class="preprocessor">#ifndef AXIS2_HTTP_TRANSPORT_UTILS_H</span>
<a name="l00019"></a>00019 <span class="preprocessor"></span><span class="preprocessor">#define AXIS2_HTTP_TRANSPORT_UTILS_H</span>
<a name="l00020"></a>00020 <span class="preprocessor"></span>
<a name="l00021"></a>00021 <span class="preprocessor">#define AXIS2_MTOM_OUTPUT_BUFFER_SIZE 1024</span>
<a name="l00022"></a>00022 <span class="preprocessor"></span>
<a name="l00035"></a>00035 <span class="preprocessor">#include &lt;axis2_const.h&gt;</span>
<a name="l00036"></a>00036 <span class="preprocessor">#include &lt;<a class="code" href="axis2__defines_8h.html" title="Useful definitions, which may have platform concerns.">axis2_defines.h</a>&gt;</span>
<a name="l00037"></a>00037 <span class="preprocessor">#include &lt;<a class="code" href="axutil__env_8h.html" title="Axis2 environment that acts as a container for error, log and memory allocator routines...">axutil_env.h</a>&gt;</span>
<a name="l00038"></a>00038 <span class="preprocessor">#include &lt;axiom_stax_builder.h&gt;</span>
<a name="l00039"></a>00039 <span class="preprocessor">#include &lt;<a class="code" href="axis2__msg__ctx_8h.html">axis2_msg_ctx.h</a>&gt;</span>
<a name="l00040"></a>00040 <span class="preprocessor">#include &lt;<a class="code" href="axis2__conf__ctx_8h.html">axis2_conf_ctx.h</a>&gt;</span>
<a name="l00041"></a>00041 <span class="preprocessor">#include &lt;<a class="code" href="axutil__hash_8h.html" title="Axis2 Hash Tables.">axutil_hash.h</a>&gt;</span>
<a name="l00042"></a>00042 <span class="preprocessor">#include &lt;axiom_element.h&gt;</span>
<a name="l00043"></a>00043 <span class="preprocessor">#include &lt;axutil_stream.h&gt;</span>
<a name="l00044"></a>00044 <span class="preprocessor">#include &lt;<a class="code" href="axiom__soap__envelope_8h.html" title="axiom_soap_envelope struct corresponds to root element of soap message">axiom_soap_envelope.h</a>&gt;</span>
<a name="l00045"></a>00045 <span class="preprocessor">#include &lt;<a class="code" href="axutil__http__chunked__stream_8h.html" title="axis2 HTTP Chunked Stream">axutil_http_chunked_stream.h</a>&gt;</span>
<a name="l00046"></a>00046 <span class="preprocessor">#include &lt;<a class="code" href="axis2__http__out__transport__info_8h.html" title="axis2 HTTP Out Transport Info">axis2_http_out_transport_info.h</a>&gt;</span>
<a name="l00047"></a>00047 <span class="preprocessor">#include &lt;<a class="code" href="axutil__url_8h.html" title="axis2 URL container implementation">axutil_url.h</a>&gt;</span>
<a name="l00048"></a>00048 <span class="preprocessor">#include &lt;<a class="code" href="axiom__mtom__sending__callback_8h.html" title="sending callback for attachment sending">axiom_mtom_sending_callback.h</a>&gt;</span>
<a name="l00049"></a>00049 
<a name="l00050"></a>00050 <span class="preprocessor">#ifdef __cplusplus</span>
<a name="l00051"></a>00051 <span class="preprocessor"></span><span class="keyword">extern</span> <span class="stringliteral">"C"</span>
<a name="l00052"></a>00052 {
<a name="l00053"></a>00053 <span class="preprocessor">#endif</span>
<a name="l00054"></a>00054 <span class="preprocessor"></span>        
<a name="l00055"></a>00055         <span class="keyword">typedef</span> <span class="keyword">enum</span> axis2_http_method_types
<a name="l00056"></a>00056         {
<a name="l00057"></a>00057                 AXIS2_HTTP_METHOD_GET = 0,
<a name="l00058"></a>00058                 AXIS2_HTTP_METHOD_POST,
<a name="l00059"></a>00059                 AXIS2_HTTP_METHOD_HEAD,
<a name="l00060"></a>00060                 AXIS2_HTTP_METHOD_PUT,
<a name="l00061"></a>00061                 AXIS2_HTTP_METHOD_DELETE
<a name="l00062"></a>00062         }axis2_http_method_types_t;
<a name="l00063"></a>00063 
<a name="l00064"></a>00064         
<a name="l00065"></a>00065         <span class="keyword">typedef</span> <span class="keyword">struct </span>axis2_http_transport_in
<a name="l00066"></a>00066         {
<a name="l00068"></a>00068                 axis2_char_t *content_type;
<a name="l00070"></a>00070                 <span class="keywordtype">int</span> content_length;
<a name="l00072"></a>00072                 <a class="code" href="group__axis2__msg__ctx.html#g160acae289ac39cb49fa625ffd88e410">axis2_msg_ctx_t</a> *msg_ctx;
<a name="l00073"></a>00073                 
<a name="l00075"></a>00075                 axis2_char_t *soap_action;
<a name="l00076"></a>00076                 
<a name="l00078"></a>00078                 axis2_char_t *request_uri;
<a name="l00079"></a>00079                 
<a name="l00081"></a>00081                 axutil_stream_t *in_stream;
<a name="l00082"></a>00082                 
<a name="l00084"></a>00084                 axis2_char_t *remote_ip;
<a name="l00085"></a>00085                 
<a name="l00087"></a>00087                 axis2_char_t *svr_port;
<a name="l00088"></a>00088                 
<a name="l00090"></a>00090                 axis2_char_t *transfer_encoding;
<a name="l00091"></a>00091                 
<a name="l00093"></a>00093                 axis2_char_t *accept_header;
<a name="l00094"></a>00094                 
<a name="l00096"></a>00096                 axis2_char_t *accept_language_header;
<a name="l00097"></a>00097                 
<a name="l00099"></a>00099                 axis2_char_t *accept_charset_header;
<a name="l00102"></a>00102                 <span class="keywordtype">int</span> request_method;
<a name="l00104"></a>00104                 <a class="code" href="group__axis2__http__out__transport__info.html#g488b445412c39ae4b2a3edd1df4f319c">axis2_http_out_transport_info_t</a> *out_transport_info;
<a name="l00106"></a>00106                 axis2_char_t *request_url_prefix;
<a name="l00107"></a>00107 
<a name="l00108"></a>00108         }axis2_http_transport_in_t;
<a name="l00109"></a>00109 
<a name="l00110"></a>00110         <span class="keyword">typedef</span> <span class="keyword">struct </span>axis2_http_transport_out
<a name="l00111"></a>00111         {
<a name="l00113"></a>00113                 axis2_char_t *http_status_code_name;
<a name="l00115"></a>00115                 <span class="keywordtype">int</span> http_status_code;
<a name="l00117"></a>00117                 <a class="code" href="group__axis2__msg__ctx.html#g160acae289ac39cb49fa625ffd88e410">axis2_msg_ctx_t</a> *msg_ctx;
<a name="l00119"></a>00119                 <span class="keywordtype">void</span> *response_data;
<a name="l00121"></a>00121                 axis2_char_t *content_type;
<a name="l00123"></a>00123                 <span class="keywordtype">int</span> response_data_length;
<a name="l00125"></a>00125                 axis2_char_t *content_language;
<a name="l00127"></a>00127                 <a class="code" href="group__axutil__array__list.html#g1a6a89777db876cfa0cc86787b7be6a0">axutil_array_list_t</a> *output_headers;
<a name="l00128"></a>00128                 
<a name="l00129"></a>00129         }axis2_http_transport_out_t;
<a name="l00130"></a>00130 
<a name="l00131"></a>00131 
<a name="l00138"></a>00138         AXIS2_EXTERN axis2_status_t AXIS2_CALL
<a name="l00139"></a>00139         <a class="code" href="axis2__http__transport__utils_8h.html#5b1c4741faf0fe96b7fe03186c69abdd">axis2_http_transport_utils_transport_in_init</a>(axis2_http_transport_in_t *in, 
<a name="l00140"></a>00140                                                                                                 <span class="keyword">const</span> <a class="code" href="structaxutil__env.html" title="Axis2 Environment struct.">axutil_env_t</a> *env);
<a name="l00141"></a>00141 
<a name="l00148"></a>00148         AXIS2_EXTERN axis2_status_t AXIS2_CALL
<a name="l00149"></a>00149         <a class="code" href="axis2__http__transport__utils_8h.html#f7234adf7d479a35a5c493bdf927cf58">axis2_http_transport_utils_transport_in_uninit</a>(axis2_http_transport_in_t *request, 
<a name="l00150"></a>00150                                                                                                    <span class="keyword">const</span> <a class="code" href="structaxutil__env.html" title="Axis2 Environment struct.">axutil_env_t</a> *env);
<a name="l00151"></a>00151 
<a name="l00158"></a>00158         AXIS2_EXTERN axis2_status_t AXIS2_CALL
<a name="l00159"></a>00159         <a class="code" href="axis2__http__transport__utils_8h.html#6e515e0c355171b2a60b9227a2dc1136">axis2_http_transport_utils_transport_out_init</a>(axis2_http_transport_out_t *out, 
<a name="l00160"></a>00160                                                                                                 <span class="keyword">const</span> <a class="code" href="structaxutil__env.html" title="Axis2 Environment struct.">axutil_env_t</a> *env);
<a name="l00161"></a>00161 
<a name="l00162"></a>00162 
<a name="l00163"></a>00163         AXIS2_EXTERN axis2_status_t AXIS2_CALL
<a name="l00164"></a>00164         axis2_http_transport_utils_transport_out_uninit(axis2_http_transport_out_t *response, 
<a name="l00165"></a>00165                                                                                                 <span class="keyword">const</span> <a class="code" href="structaxutil__env.html" title="Axis2 Environment struct.">axutil_env_t</a> *env);
<a name="l00175"></a>00175         AXIS2_EXTERN axis2_status_t AXIS2_CALL
<a name="l00176"></a>00176         <a class="code" href="axis2__http__transport__utils_8h.html#658b7a4b49b9e111bfa4785681f62133">axis2_http_transport_utils_process_request</a>(
<a name="l00177"></a>00177                 <span class="keyword">const</span> <a class="code" href="structaxutil__env.html" title="Axis2 Environment struct.">axutil_env_t</a> *env,
<a name="l00178"></a>00178                 <a class="code" href="group__axis2__conf__ctx.html#gab2f89df328e63d4f9fa3a4d035d18f0">axis2_conf_ctx_t</a> *conf_ctx,
<a name="l00179"></a>00179                 axis2_http_transport_in_t *request,
<a name="l00180"></a>00180                 axis2_http_transport_out_t *response);
<a name="l00181"></a>00181 
<a name="l00182"></a>00182 
<a name="l00183"></a>00183 
<a name="l00201"></a>00201     AXIS2_EXTERN axis2_status_t AXIS2_CALL
<a name="l00202"></a>00202     <a class="code" href="axis2__http__transport__utils_8h.html#e309ed43dea34867236087b7f333c1df">axis2_http_transport_utils_process_http_post_request</a>(
<a name="l00203"></a>00203         <span class="keyword">const</span> <a class="code" href="structaxutil__env.html" title="Axis2 Environment struct.">axutil_env_t</a> * env,
<a name="l00204"></a>00204         <a class="code" href="group__axis2__msg__ctx.html#g160acae289ac39cb49fa625ffd88e410">axis2_msg_ctx_t</a> * msg_ctx,
<a name="l00205"></a>00205         axutil_stream_t * in_stream,
<a name="l00206"></a>00206         axutil_stream_t * out_stream,
<a name="l00207"></a>00207         <span class="keyword">const</span> axis2_char_t * content_type,
<a name="l00208"></a>00208         <span class="keyword">const</span> <span class="keywordtype">int</span> content_length,
<a name="l00209"></a>00209         axutil_string_t * soap_action_header,
<a name="l00210"></a>00210         <span class="keyword">const</span> axis2_char_t * request_uri);
<a name="l00211"></a>00211 
<a name="l00212"></a>00212 
<a name="l00226"></a>00226     AXIS2_EXTERN axis2_status_t AXIS2_CALL
<a name="l00227"></a>00227     <a class="code" href="axis2__http__transport__utils_8h.html#86eff382a23f3dac365a6d37c7d8ff54">axis2_http_transport_utils_process_http_put_request</a>(
<a name="l00228"></a>00228         <span class="keyword">const</span> <a class="code" href="structaxutil__env.html" title="Axis2 Environment struct.">axutil_env_t</a> * env,
<a name="l00229"></a>00229         <a class="code" href="group__axis2__msg__ctx.html#g160acae289ac39cb49fa625ffd88e410">axis2_msg_ctx_t</a> * msg_ctx,
<a name="l00230"></a>00230         axutil_stream_t * in_stream,
<a name="l00231"></a>00231         axutil_stream_t * out_stream,
<a name="l00232"></a>00232         <span class="keyword">const</span> axis2_char_t * content_type,
<a name="l00233"></a>00233         <span class="keyword">const</span> <span class="keywordtype">int</span> content_length,
<a name="l00234"></a>00234         axutil_string_t * soap_action_header,
<a name="l00235"></a>00235         <span class="keyword">const</span> axis2_char_t * request_uri);
<a name="l00236"></a>00236 
<a name="l00237"></a>00237     AXIS2_EXTERN axis2_bool_t AXIS2_CALL
<a name="l00238"></a>00238     axis2_http_transport_utils_process_http_get_request(
<a name="l00239"></a>00239         <span class="keyword">const</span> <a class="code" href="structaxutil__env.html" title="Axis2 Environment struct.">axutil_env_t</a> * env,
<a name="l00240"></a>00240         <a class="code" href="group__axis2__msg__ctx.html#g160acae289ac39cb49fa625ffd88e410">axis2_msg_ctx_t</a> * msg_ctx,
<a name="l00241"></a>00241         axutil_stream_t * in_stream,
<a name="l00242"></a>00242         axutil_stream_t * out_stream,
<a name="l00243"></a>00243         <span class="keyword">const</span> axis2_char_t * content_type,
<a name="l00244"></a>00244         axutil_string_t * soap_action_header,
<a name="l00245"></a>00245         <span class="keyword">const</span> axis2_char_t * request_uri,
<a name="l00246"></a>00246         <a class="code" href="group__axis2__conf__ctx.html#gab2f89df328e63d4f9fa3a4d035d18f0">axis2_conf_ctx_t</a> * conf_ctx,
<a name="l00247"></a>00247         <a class="code" href="group__axutil__hash.html#gb2d7d14db2de92a101573f44421ac12a">axutil_hash_t</a> * request_params);
<a name="l00248"></a>00248 
<a name="l00249"></a>00249     AXIS2_EXTERN axis2_bool_t AXIS2_CALL
<a name="l00250"></a>00250 
<a name="l00251"></a>00251     axis2_http_transport_utils_process_http_head_request(
<a name="l00252"></a>00252         <span class="keyword">const</span> <a class="code" href="structaxutil__env.html" title="Axis2 Environment struct.">axutil_env_t</a> * env,
<a name="l00253"></a>00253         <a class="code" href="group__axis2__msg__ctx.html#g160acae289ac39cb49fa625ffd88e410">axis2_msg_ctx_t</a> * msg_ctx,
<a name="l00254"></a>00254         axutil_stream_t * in_stream,
<a name="l00255"></a>00255         axutil_stream_t * out_stream,
<a name="l00256"></a>00256         <span class="keyword">const</span> axis2_char_t * content_type,
<a name="l00257"></a>00257         axutil_string_t * soap_action_header,
<a name="l00258"></a>00258         <span class="keyword">const</span> axis2_char_t * request_uri,
<a name="l00259"></a>00259         <a class="code" href="group__axis2__conf__ctx.html#gab2f89df328e63d4f9fa3a4d035d18f0">axis2_conf_ctx_t</a> * conf_ctx,
<a name="l00260"></a>00260         <a class="code" href="group__axutil__hash.html#gb2d7d14db2de92a101573f44421ac12a">axutil_hash_t</a> * request_params);
<a name="l00261"></a>00261 
<a name="l00262"></a>00262     AXIS2_EXTERN axis2_bool_t AXIS2_CALL
<a name="l00263"></a>00263 
<a name="l00264"></a>00264     axis2_http_transport_utils_process_http_delete_request(
<a name="l00265"></a>00265         <span class="keyword">const</span> <a class="code" href="structaxutil__env.html" title="Axis2 Environment struct.">axutil_env_t</a> * env,
<a name="l00266"></a>00266         <a class="code" href="group__axis2__msg__ctx.html#g160acae289ac39cb49fa625ffd88e410">axis2_msg_ctx_t</a> * msg_ctx,
<a name="l00267"></a>00267         axutil_stream_t * in_stream,
<a name="l00268"></a>00268         axutil_stream_t * out_stream,
<a name="l00269"></a>00269         <span class="keyword">const</span> axis2_char_t * content_type,
<a name="l00270"></a>00270         axutil_string_t * soap_action_header,
<a name="l00271"></a>00271         <span class="keyword">const</span> axis2_char_t * request_uri,
<a name="l00272"></a>00272         <a class="code" href="group__axis2__conf__ctx.html#gab2f89df328e63d4f9fa3a4d035d18f0">axis2_conf_ctx_t</a> * conf_ctx,
<a name="l00273"></a>00273         <a class="code" href="group__axutil__hash.html#gb2d7d14db2de92a101573f44421ac12a">axutil_hash_t</a> * request_params);
<a name="l00274"></a>00274 
<a name="l00275"></a>00275     AXIS2_EXTERN axiom_stax_builder_t *AXIS2_CALL
<a name="l00276"></a>00276 
<a name="l00277"></a>00277     axis2_http_transport_utils_select_builder_for_mime(
<a name="l00278"></a>00278         <span class="keyword">const</span> <a class="code" href="structaxutil__env.html" title="Axis2 Environment struct.">axutil_env_t</a> * env,
<a name="l00279"></a>00279         axis2_char_t * request_uri,
<a name="l00280"></a>00280         <a class="code" href="group__axis2__msg__ctx.html#g160acae289ac39cb49fa625ffd88e410">axis2_msg_ctx_t</a> * msg_ctx,
<a name="l00281"></a>00281         axutil_stream_t * in_stream,
<a name="l00282"></a>00282         axis2_char_t * content_type);
<a name="l00283"></a>00283 
<a name="l00284"></a>00284     AXIS2_EXTERN axis2_bool_t AXIS2_CALL
<a name="l00285"></a>00285 
<a name="l00286"></a>00286     axis2_http_transport_utils_do_write_mtom(
<a name="l00287"></a>00287         <span class="keyword">const</span> <a class="code" href="structaxutil__env.html" title="Axis2 Environment struct.">axutil_env_t</a> * env,
<a name="l00288"></a>00288         <a class="code" href="group__axis2__msg__ctx.html#g160acae289ac39cb49fa625ffd88e410">axis2_msg_ctx_t</a> * msg_ctx);
<a name="l00289"></a>00289 
<a name="l00290"></a>00290     AXIS2_EXTERN <a class="code" href="group__axutil__hash.html#gb2d7d14db2de92a101573f44421ac12a">axutil_hash_t</a> *AXIS2_CALL
<a name="l00291"></a>00291 
<a name="l00292"></a>00292     axis2_http_transport_utils_get_request_params(
<a name="l00293"></a>00293         <span class="keyword">const</span> <a class="code" href="structaxutil__env.html" title="Axis2 Environment struct.">axutil_env_t</a> * env,
<a name="l00294"></a>00294         axis2_char_t * request_uri);
<a name="l00295"></a>00295 
<a name="l00296"></a>00296     AXIS2_EXTERN axis2_char_t *AXIS2_CALL
<a name="l00297"></a>00297     axis2_http_transport_utils_get_not_found(
<a name="l00298"></a>00298         <span class="keyword">const</span> <a class="code" href="structaxutil__env.html" title="Axis2 Environment struct.">axutil_env_t</a> * env,
<a name="l00299"></a>00299         <a class="code" href="group__axis2__conf__ctx.html#gab2f89df328e63d4f9fa3a4d035d18f0">axis2_conf_ctx_t</a> * conf_ctx);
<a name="l00300"></a>00300 
<a name="l00301"></a>00301     AXIS2_EXTERN axis2_char_t *AXIS2_CALL
<a name="l00302"></a>00302     axis2_http_transport_utils_get_not_implemented(
<a name="l00303"></a>00303         <span class="keyword">const</span> <a class="code" href="structaxutil__env.html" title="Axis2 Environment struct.">axutil_env_t</a> * env,
<a name="l00304"></a>00304         <a class="code" href="group__axis2__conf__ctx.html#gab2f89df328e63d4f9fa3a4d035d18f0">axis2_conf_ctx_t</a> * conf_ctx);
<a name="l00305"></a>00305 
<a name="l00306"></a>00306     AXIS2_EXTERN axis2_char_t *AXIS2_CALL
<a name="l00307"></a>00307     axis2_http_transport_utils_get_method_not_allowed(
<a name="l00308"></a>00308         <span class="keyword">const</span> <a class="code" href="structaxutil__env.html" title="Axis2 Environment struct.">axutil_env_t</a> * env,
<a name="l00309"></a>00309         <a class="code" href="group__axis2__conf__ctx.html#gab2f89df328e63d4f9fa3a4d035d18f0">axis2_conf_ctx_t</a> * conf_ctx);
<a name="l00310"></a>00310 
<a name="l00311"></a>00311     AXIS2_EXTERN axis2_char_t *AXIS2_CALL
<a name="l00312"></a>00312     axis2_http_transport_utils_get_not_acceptable(
<a name="l00313"></a>00313         <span class="keyword">const</span> <a class="code" href="structaxutil__env.html" title="Axis2 Environment struct.">axutil_env_t</a> * env,
<a name="l00314"></a>00314         <a class="code" href="group__axis2__conf__ctx.html#gab2f89df328e63d4f9fa3a4d035d18f0">axis2_conf_ctx_t</a> * conf_ctx);
<a name="l00315"></a>00315 
<a name="l00316"></a>00316     AXIS2_EXTERN axis2_char_t *AXIS2_CALL
<a name="l00317"></a>00317     axis2_http_transport_utils_get_bad_request(
<a name="l00318"></a>00318         <span class="keyword">const</span> <a class="code" href="structaxutil__env.html" title="Axis2 Environment struct.">axutil_env_t</a> * env,
<a name="l00319"></a>00319         <a class="code" href="group__axis2__conf__ctx.html#gab2f89df328e63d4f9fa3a4d035d18f0">axis2_conf_ctx_t</a> * conf_ctx);
<a name="l00320"></a>00320 
<a name="l00321"></a>00321     AXIS2_EXTERN axis2_char_t *AXIS2_CALL
<a name="l00322"></a>00322     axis2_http_transport_utils_get_request_timeout(
<a name="l00323"></a>00323         <span class="keyword">const</span> <a class="code" href="structaxutil__env.html" title="Axis2 Environment struct.">axutil_env_t</a> * env,
<a name="l00324"></a>00324         <a class="code" href="group__axis2__conf__ctx.html#gab2f89df328e63d4f9fa3a4d035d18f0">axis2_conf_ctx_t</a> * conf_ctx);
<a name="l00325"></a>00325 
<a name="l00326"></a>00326     AXIS2_EXTERN axis2_char_t *AXIS2_CALL
<a name="l00327"></a>00327     axis2_http_transport_utils_get_conflict(
<a name="l00328"></a>00328         <span class="keyword">const</span> <a class="code" href="structaxutil__env.html" title="Axis2 Environment struct.">axutil_env_t</a> * env,
<a name="l00329"></a>00329         <a class="code" href="group__axis2__conf__ctx.html#gab2f89df328e63d4f9fa3a4d035d18f0">axis2_conf_ctx_t</a> * conf_ctx);
<a name="l00330"></a>00330 
<a name="l00331"></a>00331     AXIS2_EXTERN axis2_char_t *AXIS2_CALL
<a name="l00332"></a>00332     axis2_http_transport_utils_get_gone(
<a name="l00333"></a>00333         <span class="keyword">const</span> <a class="code" href="structaxutil__env.html" title="Axis2 Environment struct.">axutil_env_t</a> * env,
<a name="l00334"></a>00334         <a class="code" href="group__axis2__conf__ctx.html#gab2f89df328e63d4f9fa3a4d035d18f0">axis2_conf_ctx_t</a> * conf_ctx);
<a name="l00335"></a>00335 
<a name="l00336"></a>00336     AXIS2_EXTERN axis2_char_t *AXIS2_CALL
<a name="l00337"></a>00337     axis2_http_transport_utils_get_precondition_failed(
<a name="l00338"></a>00338         <span class="keyword">const</span> <a class="code" href="structaxutil__env.html" title="Axis2 Environment struct.">axutil_env_t</a> * env,
<a name="l00339"></a>00339         <a class="code" href="group__axis2__conf__ctx.html#gab2f89df328e63d4f9fa3a4d035d18f0">axis2_conf_ctx_t</a> * conf_ctx);
<a name="l00340"></a>00340 
<a name="l00341"></a>00341     AXIS2_EXTERN axis2_char_t *AXIS2_CALL
<a name="l00342"></a>00342     axis2_http_transport_utils_get_request_entity_too_large(
<a name="l00343"></a>00343         <span class="keyword">const</span> <a class="code" href="structaxutil__env.html" title="Axis2 Environment struct.">axutil_env_t</a> * env,
<a name="l00344"></a>00344         <a class="code" href="group__axis2__conf__ctx.html#gab2f89df328e63d4f9fa3a4d035d18f0">axis2_conf_ctx_t</a> * conf_ctx);
<a name="l00345"></a>00345 
<a name="l00346"></a>00346     AXIS2_EXTERN axis2_char_t *AXIS2_CALL
<a name="l00347"></a>00347     axis2_http_transport_utils_get_service_unavailable(
<a name="l00348"></a>00348         <span class="keyword">const</span> <a class="code" href="structaxutil__env.html" title="Axis2 Environment struct.">axutil_env_t</a> * env,
<a name="l00349"></a>00349         <a class="code" href="group__axis2__conf__ctx.html#gab2f89df328e63d4f9fa3a4d035d18f0">axis2_conf_ctx_t</a> * conf_ctx);
<a name="l00350"></a>00350 
<a name="l00351"></a>00351     AXIS2_EXTERN axis2_char_t *AXIS2_CALL
<a name="l00352"></a>00352     axis2_http_transport_utils_get_internal_server_error(
<a name="l00353"></a>00353         <span class="keyword">const</span> <a class="code" href="structaxutil__env.html" title="Axis2 Environment struct.">axutil_env_t</a> * env,
<a name="l00354"></a>00354         <a class="code" href="group__axis2__conf__ctx.html#gab2f89df328e63d4f9fa3a4d035d18f0">axis2_conf_ctx_t</a> * conf_ctx);
<a name="l00355"></a>00355 
<a name="l00356"></a>00356     AXIS2_EXTERN axis2_char_t *AXIS2_CALL
<a name="l00357"></a>00357 
<a name="l00358"></a>00358     axis2_http_transport_utils_get_services_html(
<a name="l00359"></a>00359         <span class="keyword">const</span> <a class="code" href="structaxutil__env.html" title="Axis2 Environment struct.">axutil_env_t</a> * env,
<a name="l00360"></a>00360         <a class="code" href="group__axis2__conf__ctx.html#gab2f89df328e63d4f9fa3a4d035d18f0">axis2_conf_ctx_t</a> * conf_ctx);
<a name="l00361"></a>00361 
<a name="l00362"></a>00362     AXIS2_EXTERN axis2_char_t *AXIS2_CALL
<a name="l00363"></a>00363 
<a name="l00364"></a>00364     axis2_http_transport_utils_get_services_static_wsdl(
<a name="l00365"></a>00365         <span class="keyword">const</span> <a class="code" href="structaxutil__env.html" title="Axis2 Environment struct.">axutil_env_t</a> * env,
<a name="l00366"></a>00366         <a class="code" href="group__axis2__conf__ctx.html#gab2f89df328e63d4f9fa3a4d035d18f0">axis2_conf_ctx_t</a> * conf_ctx,
<a name="l00367"></a>00367         axis2_char_t * request_url);
<a name="l00368"></a>00368 
<a name="l00369"></a>00369     AXIS2_EXTERN <a class="code" href="group__axutil__hash.html#gb2d7d14db2de92a101573f44421ac12a">axutil_hash_t</a> *AXIS2_CALL
<a name="l00370"></a>00370 
<a name="l00371"></a>00371     axis2_http_transport_utils_get_request_params(
<a name="l00372"></a>00372         <span class="keyword">const</span> <a class="code" href="structaxutil__env.html" title="Axis2 Environment struct.">axutil_env_t</a> * env,
<a name="l00373"></a>00373         axis2_char_t * request_uri);
<a name="l00374"></a>00374 
<a name="l00375"></a>00375     AXIS2_EXTERN axiom_soap_envelope_t *AXIS2_CALL
<a name="l00376"></a>00376 
<a name="l00377"></a>00377     axis2_http_transport_utils_create_soap_msg(
<a name="l00378"></a>00378         <span class="keyword">const</span> <a class="code" href="structaxutil__env.html" title="Axis2 Environment struct.">axutil_env_t</a> * env,
<a name="l00379"></a>00379         <a class="code" href="group__axis2__msg__ctx.html#g160acae289ac39cb49fa625ffd88e410">axis2_msg_ctx_t</a> * msg_ctx,
<a name="l00380"></a>00380         <span class="keyword">const</span> axis2_char_t * soap_ns_uri);
<a name="l00381"></a>00381 
<a name="l00382"></a>00382         AXIS2_EXTERN <a class="code" href="group__axutil__array__list.html#g1a6a89777db876cfa0cc86787b7be6a0">axutil_array_list_t</a>* AXIS2_CALL
<a name="l00383"></a>00383         axis2_http_transport_utils_process_accept_headers(
<a name="l00384"></a>00384                 <span class="keyword">const</span> <a class="code" href="structaxutil__env.html" title="Axis2 Environment struct.">axutil_env_t</a> *env,
<a name="l00385"></a>00385                 axis2_char_t *accept_value);
<a name="l00386"></a>00386 
<a name="l00387"></a>00387     AXIS2_EXTERN axis2_status_t AXIS2_CALL
<a name="l00388"></a>00388     axis2_http_transport_utils_send_mtom_message(
<a name="l00389"></a>00389         <a class="code" href="group__axutil__http__chunked__stream.html#g4f21d685413463e10ac26b40046a25ff">axutil_http_chunked_stream_t</a> * chunked_stream,
<a name="l00390"></a>00390         <span class="keyword">const</span> <a class="code" href="structaxutil__env.html" title="Axis2 Environment struct.">axutil_env_t</a> * env,
<a name="l00391"></a>00391         <a class="code" href="group__axutil__array__list.html#g1a6a89777db876cfa0cc86787b7be6a0">axutil_array_list_t</a> *mime_parts,
<a name="l00392"></a>00392         axis2_char_t *sending_callback_name);
<a name="l00393"></a>00393 
<a name="l00394"></a>00394     AXIS2_EXTERN <span class="keywordtype">void</span> AXIS2_CALL 
<a name="l00395"></a>00395     axis2_http_transport_utils_destroy_mime_parts(
<a name="l00396"></a>00396         <a class="code" href="group__axutil__array__list.html#g1a6a89777db876cfa0cc86787b7be6a0">axutil_array_list_t</a> *mime_parts,
<a name="l00397"></a>00397         <span class="keyword">const</span> <a class="code" href="structaxutil__env.html" title="Axis2 Environment struct.">axutil_env_t</a> *env);
<a name="l00398"></a>00398 
<a name="l00399"></a>00399     AXIS2_EXTERN <span class="keywordtype">void</span> *AXIS2_CALL 
<a name="l00400"></a>00400         axis2_http_transport_utils_initiate_callback(
<a name="l00401"></a>00401         <span class="keyword">const</span> <a class="code" href="structaxutil__env.html" title="Axis2 Environment struct.">axutil_env_t</a> *env,
<a name="l00402"></a>00402         axis2_char_t *callback_name,
<a name="l00403"></a>00403         <span class="keywordtype">void</span> *user_param,
<a name="l00404"></a>00404         <a class="code" href="group__mtom__sending__callback.html#g1b8c0dbaa427283987be2131fcb340ee">axiom_mtom_sending_callback_t</a> **callback);
<a name="l00405"></a>00405 
<a name="l00406"></a>00406     AXIS2_EXTERN axis2_bool_t AXIS2_CALL axis2_http_transport_utils_is_callback_required(
<a name="l00407"></a>00407         <span class="keyword">const</span> <a class="code" href="structaxutil__env.html" title="Axis2 Environment struct.">axutil_env_t</a> *env,
<a name="l00408"></a>00408         <a class="code" href="group__axutil__array__list.html#g1a6a89777db876cfa0cc86787b7be6a0">axutil_array_list_t</a> *mime_parts);
<a name="l00409"></a>00409 
<a name="l00410"></a>00410 
<a name="l00411"></a>00411 
<a name="l00413"></a>00413 <span class="preprocessor">#ifdef __cplusplus</span>
<a name="l00414"></a>00414 <span class="preprocessor"></span>}
<a name="l00415"></a>00415 <span class="preprocessor">#endif</span>
<a name="l00416"></a>00416 <span class="preprocessor"></span>
<a name="l00417"></a>00417 <span class="preprocessor">#endif       </span><span class="comment">/* AXIS2_HTTP_TRANSPORT_UTILS_H */</span>
</pre></div><hr size="1"><address style="text-align: right;"><small>Generated on Fri Apr 17 11:49:42 2009 for Axis2/C by&nbsp;
<a href="http://www.doxygen.org/index.html">
<img src="doxygen.png" alt="doxygen" align="middle" border="0"></a> 1.5.3 </small></address>
</body>
</html>


<|start_filename|>xdocs/api/html/axiom__text_8h-source.html<|end_filename|>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html><head><meta http-equiv="Content-Type" content="text/html;charset=UTF-8">
<title>Axis2/C: axiom_text.h Source File</title>
<link href="doxygen.css" rel="stylesheet" type="text/css">
<link href="tabs.css" rel="stylesheet" type="text/css">
</head><body>
<!-- Generated by Doxygen 1.5.3 -->
<div class="tabs">
  <ul>
    <li><a href="index.html"><span>Main&nbsp;Page</span></a></li>
    <li><a href="modules.html"><span>Modules</span></a></li>
    <li><a href="annotated.html"><span>Classes</span></a></li>
    <li class="current"><a href="files.html"><span>Files</span></a></li>
    <li><a href="dirs.html"><span>Directories</span></a></li>
    <li><a href="pages.html"><span>Related&nbsp;Pages</span></a></li>
    <li><a href="examples.html"><span>Examples</span></a></li>
    <li>
      <form action="search.php" method="get">
        <table cellspacing="0" cellpadding="0" border="0">
          <tr>
            <td><label>&nbsp;<u>S</u>earch&nbsp;for&nbsp;</label></td>
            <td><input type="text" name="query" value="" size="20" accesskey="s"/></td>
          </tr>
        </table>
      </form>
    </li>
  </ul>
</div>
<div class="nav">
<a class="el" href="dir_f60961de8e5edc3b2658ef023e959e45.html">deploy</a>&nbsp;&raquo&nbsp;<a class="el" href="dir_6b4e91e54b7316b376882a6402adbf44.html">include</a>&nbsp;&raquo&nbsp;<a class="el" href="dir_df3a7695d5a9e696f30b948b566829e7.html">axis2-1.6.0</a></div>
<h1>axiom_text.h</h1><div class="fragment"><pre class="fragment"><a name="l00001"></a>00001 
<a name="l00002"></a>00002 <span class="comment">/*</span>
<a name="l00003"></a>00003 <span class="comment"> * Licensed to the Apache Software Foundation (ASF) under one or more</span>
<a name="l00004"></a>00004 <span class="comment"> * contributor license agreements.  See the NOTICE file distributed with</span>
<a name="l00005"></a>00005 <span class="comment"> * this work for additional information regarding copyright ownership.</span>
<a name="l00006"></a>00006 <span class="comment"> * The ASF licenses this file to You under the Apache License, Version 2.0</span>
<a name="l00007"></a>00007 <span class="comment"> * (the "License"); you may not use this file except in compliance with</span>
<a name="l00008"></a>00008 <span class="comment"> * the License.  You may obtain a copy of the License at</span>
<a name="l00009"></a>00009 <span class="comment"> *</span>
<a name="l00010"></a>00010 <span class="comment"> *      http://www.apache.org/licenses/LICENSE-2.0</span>
<a name="l00011"></a>00011 <span class="comment"> *</span>
<a name="l00012"></a>00012 <span class="comment"> * Unless required by applicable law or agreed to in writing, software</span>
<a name="l00013"></a>00013 <span class="comment"> * distributed under the License is distributed on an "AS IS" BASIS,</span>
<a name="l00014"></a>00014 <span class="comment"> * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.</span>
<a name="l00015"></a>00015 <span class="comment"> * See the License for the specific language governing permissions and</span>
<a name="l00016"></a>00016 <span class="comment"> * limitations under the License.</span>
<a name="l00017"></a>00017 <span class="comment"> */</span>
<a name="l00018"></a>00018 
<a name="l00019"></a>00019 <span class="preprocessor">#ifndef AXIOM_TEXT_H</span>
<a name="l00020"></a>00020 <span class="preprocessor"></span><span class="preprocessor">#define AXIOM_TEXT_H</span>
<a name="l00021"></a>00021 <span class="preprocessor"></span>
<a name="l00022"></a>00022 <span class="preprocessor">#include &lt;<a class="code" href="axutil__env_8h.html" title="Axis2 environment that acts as a container for error, log and memory allocator routines...">axutil_env.h</a>&gt;</span>
<a name="l00023"></a>00023 <span class="preprocessor">#include &lt;<a class="code" href="axiom__node_8h.html" title="defines axiom_node struct">axiom_node.h</a>&gt;</span>
<a name="l00024"></a>00024 <span class="preprocessor">#include &lt;axiom_output.h&gt;</span>
<a name="l00025"></a>00025 <span class="preprocessor">#include &lt;<a class="code" href="axiom__data__handler_8h.html" title="axis2 data_handler interface">axiom_data_handler.h</a>&gt;</span>
<a name="l00026"></a>00026 
<a name="l00027"></a>00027 <span class="preprocessor">#ifdef __cplusplus</span>
<a name="l00028"></a>00028 <span class="preprocessor"></span><span class="keyword">extern</span> <span class="stringliteral">"C"</span>
<a name="l00029"></a>00029 {
<a name="l00030"></a>00030 <span class="preprocessor">#endif</span>
<a name="l00031"></a>00031 <span class="preprocessor"></span>
<a name="l00038"></a>00038     <span class="keyword">typedef</span> <span class="keyword">struct </span>axiom_text axiom_text_t;
<a name="l00039"></a>00039 
<a name="l00051"></a>00051     AXIS2_EXTERN axiom_text_t *AXIS2_CALL
<a name="l00052"></a>00052     <a class="code" href="group__axiom__text.html#g6ec9f4843b931cbf3220ae0505aa933b">axiom_text_create</a>(
<a name="l00053"></a>00053         <span class="keyword">const</span> <a class="code" href="structaxutil__env.html" title="Axis2 Environment struct.">axutil_env_t</a> * env,
<a name="l00054"></a>00054         axiom_node_t * parent,
<a name="l00055"></a>00055         <span class="keyword">const</span> axis2_char_t * value,
<a name="l00056"></a>00056         axiom_node_t ** node);
<a name="l00057"></a>00057 
<a name="l00069"></a>00069     AXIS2_EXTERN axiom_text_t *AXIS2_CALL
<a name="l00070"></a>00070     <a class="code" href="group__axiom__text.html#g680d66526e3cbc1179a65f4185f29910">axiom_text_create_str</a>(
<a name="l00071"></a>00071         <span class="keyword">const</span> <a class="code" href="structaxutil__env.html" title="Axis2 Environment struct.">axutil_env_t</a> * env,
<a name="l00072"></a>00072         axiom_node_t * parent,
<a name="l00073"></a>00073         axutil_string_t * value,
<a name="l00074"></a>00074         axiom_node_t ** node);
<a name="l00075"></a>00075 
<a name="l00087"></a>00087     AXIS2_EXTERN axiom_text_t *AXIS2_CALL
<a name="l00088"></a>00088     <a class="code" href="group__axiom__text.html#gab4be5d4a50ee8c04058d77957abef1c">axiom_text_create_with_data_handler</a>(
<a name="l00089"></a>00089         <span class="keyword">const</span> <a class="code" href="structaxutil__env.html" title="Axis2 Environment struct.">axutil_env_t</a> * env,
<a name="l00090"></a>00090         axiom_node_t * parent,
<a name="l00091"></a>00091         axiom_data_handler_t * data_handler,
<a name="l00092"></a>00092         axiom_node_t ** node);
<a name="l00093"></a>00093 
<a name="l00101"></a>00101     AXIS2_EXTERN <span class="keywordtype">void</span> AXIS2_CALL
<a name="l00102"></a>00102     <a class="code" href="group__axiom__text.html#g0eb6a7b65c61cee5e6a5a5d1a93ab44e">axiom_text_free</a>(
<a name="l00103"></a>00103         <span class="keyword">struct</span> axiom_text *om_text,
<a name="l00104"></a>00104         <span class="keyword">const</span> <a class="code" href="structaxutil__env.html" title="Axis2 Environment struct.">axutil_env_t</a> * env);
<a name="l00105"></a>00105 
<a name="l00114"></a>00114     AXIS2_EXTERN axis2_status_t AXIS2_CALL
<a name="l00115"></a>00115     <a class="code" href="group__axiom__text.html#gba5bb858827a9aee46b829926862dc46">axiom_text_serialize</a>(
<a name="l00116"></a>00116         <span class="keyword">struct</span> axiom_text *om_text,
<a name="l00117"></a>00117         <span class="keyword">const</span> <a class="code" href="structaxutil__env.html" title="Axis2 Environment struct.">axutil_env_t</a> * env,
<a name="l00118"></a>00118         <a class="code" href="group__axiom__output.html#gfe1ea804d7a8179e85371f065cd9df09" title="output struct The XML writer interface struct of om">axiom_output_t</a> * om_output);
<a name="l00119"></a>00119 
<a name="l00128"></a>00128     AXIS2_EXTERN axis2_status_t AXIS2_CALL
<a name="l00129"></a>00129     <a class="code" href="group__axiom__text.html#g38e8fc267df5245ee5b65b62c37ecac9">axiom_text_set_value</a>(
<a name="l00130"></a>00130         <span class="keyword">struct</span> axiom_text *om_text,
<a name="l00131"></a>00131         <span class="keyword">const</span> <a class="code" href="structaxutil__env.html" title="Axis2 Environment struct.">axutil_env_t</a> * env,
<a name="l00132"></a>00132         <span class="keyword">const</span> axis2_char_t * value);
<a name="l00133"></a>00133 
<a name="l00140"></a>00140     AXIS2_EXTERN <span class="keyword">const</span> axis2_char_t *AXIS2_CALL
<a name="l00141"></a>00141     <a class="code" href="group__axiom__text.html#ga620cffb41a4f6c01ddba83e2a52fb97">axiom_text_get_value</a>(
<a name="l00142"></a>00142         <span class="keyword">struct</span> axiom_text *om_text,
<a name="l00143"></a>00143         <span class="keyword">const</span> <a class="code" href="structaxutil__env.html" title="Axis2 Environment struct.">axutil_env_t</a> * env);
<a name="l00144"></a>00144 
<a name="l00153"></a>00153     AXIS2_EXTERN axis2_status_t AXIS2_CALL
<a name="l00154"></a>00154     <a class="code" href="group__axiom__text.html#g345a35e52d57a4626006d527ba1e7b63">axiom_text_set_value_str</a>(
<a name="l00155"></a>00155         <span class="keyword">struct</span> axiom_text *om_text,
<a name="l00156"></a>00156         <span class="keyword">const</span> <a class="code" href="structaxutil__env.html" title="Axis2 Environment struct.">axutil_env_t</a> * env,
<a name="l00157"></a>00157         axutil_string_t * value);
<a name="l00158"></a>00158 
<a name="l00166"></a>00166     AXIS2_EXTERN <span class="keyword">const</span> axis2_char_t *AXIS2_CALL
<a name="l00167"></a>00167     <a class="code" href="group__axiom__text.html#g4025d1d2319b08b8cc797a99a316ae6b">axiom_text_get_text</a>(
<a name="l00168"></a>00168         axiom_text_t * om_text,
<a name="l00169"></a>00169         <span class="keyword">const</span> <a class="code" href="structaxutil__env.html" title="Axis2 Environment struct.">axutil_env_t</a> * env);
<a name="l00170"></a>00170 
<a name="l00177"></a>00177     AXIS2_EXTERN axutil_string_t *AXIS2_CALL
<a name="l00178"></a>00178     <a class="code" href="group__axiom__text.html#gd311692e5f2cf142803f4f5c48de0745">axiom_text_get_value_str</a>(
<a name="l00179"></a>00179         <span class="keyword">struct</span> axiom_text *om_text,
<a name="l00180"></a>00180         <span class="keyword">const</span> <a class="code" href="structaxutil__env.html" title="Axis2 Environment struct.">axutil_env_t</a> * env);
<a name="l00181"></a>00181 
<a name="l00189"></a>00189     AXIS2_EXTERN axis2_status_t AXIS2_CALL
<a name="l00190"></a>00190     <a class="code" href="group__axiom__text.html#g92afcea629a6c1aba1bb66203e8b0453">axiom_text_set_optimize</a>(
<a name="l00191"></a>00191         <span class="keyword">struct</span> axiom_text *om_text,
<a name="l00192"></a>00192         <span class="keyword">const</span> <a class="code" href="structaxutil__env.html" title="Axis2 Environment struct.">axutil_env_t</a> * env,
<a name="l00193"></a>00193         axis2_bool_t optimize);
<a name="l00194"></a>00194 
<a name="l00201"></a>00201     AXIS2_EXTERN axis2_status_t AXIS2_CALL
<a name="l00202"></a>00202     <a class="code" href="group__axiom__text.html#g636febf81c7bd801197ba1dd6c3967ee">axiom_text_set_is_binary</a>(
<a name="l00203"></a>00203         <span class="keyword">struct</span> axiom_text *om_text,
<a name="l00204"></a>00204         <span class="keyword">const</span> <a class="code" href="structaxutil__env.html" title="Axis2 Environment struct.">axutil_env_t</a> * env,
<a name="l00205"></a>00205         <span class="keyword">const</span> axis2_bool_t is_binary);
<a name="l00206"></a>00206 
<a name="l00214"></a>00214     AXIS2_EXTERN axiom_data_handler_t *AXIS2_CALL
<a name="l00215"></a>00215     <a class="code" href="group__axiom__text.html#ge5eaee2c45f9f4d56fac397aa80b92ee">axiom_text_get_data_handler</a>(
<a name="l00216"></a>00216         <span class="keyword">struct</span> axiom_text *om_text,
<a name="l00217"></a>00217         <span class="keyword">const</span> <a class="code" href="structaxutil__env.html" title="Axis2 Environment struct.">axutil_env_t</a> * env);
<a name="l00218"></a>00218 
<a name="l00226"></a>00226     AXIS2_EXTERN axis2_char_t *AXIS2_CALL
<a name="l00227"></a>00227     <a class="code" href="group__axiom__text.html#g7f941bcbbeda74c50e117100e190fdc6">axiom_text_get_content_id</a>(
<a name="l00228"></a>00228         <span class="keyword">struct</span> axiom_text *om_text,
<a name="l00229"></a>00229         <span class="keyword">const</span> <a class="code" href="structaxutil__env.html" title="Axis2 Environment struct.">axutil_env_t</a> * env);
<a name="l00230"></a>00230 
<a name="l00239"></a>00239     AXIS2_EXTERN axis2_status_t AXIS2_CALL
<a name="l00240"></a>00240     <a class="code" href="group__axiom__text.html#g6b6f7fea7e2abc3798f92a4a39f42070">axiom_text_set_content_id</a>(
<a name="l00241"></a>00241         axiom_text_t * om_text,
<a name="l00242"></a>00242         <span class="keyword">const</span> <a class="code" href="structaxutil__env.html" title="Axis2 Environment struct.">axutil_env_t</a> * env,
<a name="l00243"></a>00243         <span class="keyword">const</span> axis2_char_t * content_id);
<a name="l00244"></a>00244 
<a name="l00253"></a>00253     AXIS2_EXTERN axis2_status_t AXIS2_CALL
<a name="l00254"></a>00254     <a class="code" href="group__axiom__text.html#g825ec8b46977acc79eeb695d741b6d19">axiom_text_set_is_swa</a>(
<a name="l00255"></a>00255         <span class="keyword">struct</span> axiom_text *om_text,
<a name="l00256"></a>00256         <span class="keyword">const</span> <a class="code" href="structaxutil__env.html" title="Axis2 Environment struct.">axutil_env_t</a> * env,
<a name="l00257"></a>00257         <span class="keyword">const</span> axis2_bool_t is_swa);
<a name="l00258"></a>00258 
<a name="l00261"></a>00261 <span class="preprocessor">#ifdef __cplusplus</span>
<a name="l00262"></a>00262 <span class="preprocessor"></span>}
<a name="l00263"></a>00263 <span class="preprocessor">#endif</span>
<a name="l00264"></a>00264 <span class="preprocessor"></span>
<a name="l00265"></a>00265 <span class="preprocessor">#endif                          </span><span class="comment">/* AXIOM_TEXT_H */</span>
</pre></div><hr size="1"><address style="text-align: right;"><small>Generated on Fri Apr 17 11:49:42 2009 for Axis2/C by&nbsp;
<a href="http://www.doxygen.org/index.html">
<img src="doxygen.png" alt="doxygen" align="middle" border="0"></a> 1.5.3 </small></address>
</body>
</html>


<|start_filename|>util/src/dir_handler.c<|end_filename|>

/*
 * 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.
 */

#include <axutil_dir_handler.h>
#include <axutil_file.h>
#include <platforms/axutil_platform_auto_sense.h>
#include <axutil_string.h>
#ifndef S_ISDIR
#   define S_ISDIR(m) ((m & S_IFMT) == S_IFDIR)
#endif

#ifdef AXIS2_ARCHIVE_ENABLED
#include <minizip/axis2_archive_extract.h>
#endif


extern int AXIS2_ALPHASORT(
    );
int file_select(
    const struct dirent *entry);

/**
 * List the dll files in the given service or module folder path
 * @param pathname path to your service or module directory
 * @return array list of dll file names
 */
AXIS2_EXTERN axutil_array_list_t *AXIS2_CALL
axutil_dir_handler_list_services_or_modules_in_dir(
    const axutil_env_t *env,
    const axis2_char_t *pathname)
{
    axutil_array_list_t *file_list = NULL;
    struct stat *buf = NULL;
    int count = 1;
    int i = 0;
    struct dirent **files = NULL;
    /*int file_select(
        );*/
    /* Removed un-wanted redefinition leading to warnings on
     * Windows. If this is the desired behaviour, please look
     * into the file_select function definition below and comment
     * out the code if neccessary.
     */
    axis2_status_t status = AXIS2_FAILURE;

    AXIS2_ENV_CHECK(env, NULL);
    file_list = axutil_array_list_create(env, 100);
    count = AXIS2_SCANDIR(pathname, &files, file_select, AXIS2_ALPHASORT);
    /* If no files found, make a non-selectable menu item */
    if (count <= 0)
    {
        axutil_array_list_free(file_list, env);
        AXIS2_LOG_DEBUG(env->log, AXIS2_LOG_SI, "No files in the path %s.",
            pathname);
        return NULL;
    }

    for (i = 1; i < (count + 1); ++i)
    {
        axis2_char_t *fname = NULL;
        axutil_file_t *arch_file = NULL;
        axis2_char_t *path = NULL;
        axis2_char_t *temp_path = NULL;

        fname = files[i - 1]->d_name;
        arch_file = (axutil_file_t *) axutil_file_create(env);
        if (!arch_file)
        {
            int size = 0;
            int j = 0;
            axutil_file_t *del_file = NULL;

            size = axutil_array_list_size(file_list, env);
            for (j = 0; j < size; j++)
            {
                del_file = axutil_array_list_get(file_list, env, j);
                axutil_file_free(del_file, env);
            }
            axutil_array_list_free(file_list, env);
            AXIS2_ERROR_SET(env->error, AXIS2_ERROR_NO_MEMORY, AXIS2_FAILURE);
            return NULL;
        }
        axutil_file_set_name(arch_file, env, fname);
        temp_path = axutil_stracat(env, pathname, AXIS2_PATH_SEP_STR);
        path = axutil_stracat(env, temp_path, fname);
        AXIS2_FREE(env->allocator, temp_path);
        if (!path)
        {
            int size = 0;
            int j = 0;
            axutil_file_t *del_file = NULL;

            axutil_file_free(arch_file, env);
            size = axutil_array_list_size(file_list, env);
            for (j = 0; j < size; j++)
            {
                del_file = axutil_array_list_get(file_list, env, j);
                axutil_file_free(del_file, env);
            }
            axutil_array_list_free(file_list, env);
            AXIS2_ERROR_SET(env->error, AXIS2_ERROR_NO_MEMORY, AXIS2_FAILURE);
            return NULL;
        }
        axutil_file_set_path(arch_file, env, path);
        buf = AXIS2_MALLOC(env->allocator, sizeof(struct stat));
        if (!buf)
        {
            int size = 0;
            int j = 0;
            axutil_file_t *del_file = NULL;

            AXIS2_FREE(env->allocator, path);
            axutil_file_free(arch_file, env);
            size = axutil_array_list_size(file_list, env);
            for (j = 0; j < size; j++)
            {
                del_file = axutil_array_list_get(file_list, env, j);
                axutil_file_free(del_file, env);
            }
            axutil_array_list_free(file_list, env);
            AXIS2_ERROR_SET(env->error, AXIS2_ERROR_NO_MEMORY, AXIS2_FAILURE);
            return NULL;
        }
        stat(path, buf);
        axutil_file_set_timestamp(arch_file, env, (time_t) buf->st_ctime);
        status = axutil_array_list_add(file_list, env, arch_file);
        if (AXIS2_SUCCESS != status)
        {
            int size = 0;
            int j = 0;
            axutil_file_t *del_file = NULL;

            axutil_file_free(arch_file, env);
            AXIS2_FREE(env->allocator, path);
            AXIS2_FREE(env->allocator, buf);
            size = axutil_array_list_size(file_list, env);
            for (j = 0; j < size; j++)
            {
                del_file = axutil_array_list_get(file_list, env, j);
                axutil_file_free(del_file, env);
            }
            axutil_array_list_free(file_list, env);
            return NULL;
        }
        AXIS2_FREE(env->allocator, path);
        AXIS2_FREE(env->allocator, buf);

    }
    return file_list;
}

/**
 * List services or modules directories in the services or modules folder
 * respectively
 * @param pathname path  your modules or services folder
 * @return array list of contents of services or modules folder
 */
AXIS2_EXTERN axutil_array_list_t *AXIS2_CALL
axutil_dir_handler_list_service_or_module_dirs(
    const axutil_env_t *env,
    const axis2_char_t *pathname)
{
    axutil_array_list_t *file_list = NULL;
    struct stat buf;
    int count = 1;
    int i = 0;
    struct dirent **files = NULL;
#ifdef AXIS2_ARCHIVE_ENABLED
    char cwd[500];

    /**FIXME:
     * This magic number 500 was selected as a temperary solution. It has to be
     * replaced with dinamic memory allocation. This will be done once the use of
     * errno after getwcd() on Windows is figured out.
     */
#endif

    axis2_status_t status = AXIS2_FAILURE;
    AXIS2_ENV_CHECK(env, NULL);
    file_list = axutil_array_list_create(env, 0);

#ifdef AXIS2_ARCHIVE_ENABLED
    if (!AXIS2_GETCWD(cwd, 500))
        exit(1);

    /* pathname is path of services directory or modules directory. */
    AXIS2_CHDIR(pathname);
    axis2_archive_extract();
    AXIS2_CHDIR(cwd);
#endif

    count = AXIS2_SCANDIR(pathname, &files, NULL, AXIS2_ALPHASORT);

    /* If no files found, make a non-selectable menu item */
    if (count <= 0)
    {
        axutil_array_list_free(file_list, env);
        AXIS2_LOG_INFO(env->log, "No files in the path %s.", pathname);
        return NULL;
    }

    for (i = 1; i < (count + 1); ++i)
    {
        axis2_char_t *fname = NULL;
        axutil_file_t *arch_file = NULL;
        axis2_char_t *path = NULL;

        fname = files[i - 1]->d_name;

        if (fname[0] == '.')
            continue;

        path = axutil_strcat(env, pathname, AXIS2_PATH_SEP_STR, fname, NULL);
        if (!path)
        {
            int size = 0;
            int j = 0;
            axutil_file_t *del_file = NULL;

            size = axutil_array_list_size(file_list, env);
            for (j = 0; j < size; j++)
            {
                del_file = axutil_array_list_get(file_list, env, j);
                axutil_file_free(del_file, env);
            }
            axutil_array_list_free(file_list, env);
            AXIS2_ERROR_SET(env->error, AXIS2_ERROR_NO_MEMORY, AXIS2_FAILURE);
            return NULL;
        }

        if (stat(path, &buf) != 0)
        {
            AXIS2_FREE(env->allocator, path);
            continue;
        }

        if (!S_ISDIR(buf.st_mode))
        {
            AXIS2_FREE(env->allocator, path);
            continue;
        }

        arch_file = (axutil_file_t *) axutil_file_create(env);
        if (!arch_file)
        {
            int size = 0;
            int j = 0;
            axutil_file_t *del_file = NULL;

            size = axutil_array_list_size(file_list, env);
            for (j = 0; j < size; j++)
            {
                del_file = axutil_array_list_get(file_list, env, j);
                axutil_file_free(del_file, env);
            }
            axutil_array_list_free(file_list, env);
            AXIS2_ERROR_SET(env->error, AXIS2_ERROR_NO_MEMORY, AXIS2_FAILURE);
            return NULL;
        }
        axutil_file_set_name(arch_file, env, fname);
        axutil_file_set_path(arch_file, env, path);
        axutil_file_set_timestamp(arch_file, env, (time_t) buf.st_ctime);
        status = axutil_array_list_add(file_list, env, arch_file);
        if (AXIS2_SUCCESS != status)
        {
            int size = 0;
            int j = 0;
            axutil_file_t *del_file = NULL;

            axutil_file_free(arch_file, env);
            AXIS2_FREE(env->allocator, path);
            size = axutil_array_list_size(file_list, env);
            for (j = 0; j < size; j++)
            {
                del_file = axutil_array_list_get(file_list, env, j);
                axutil_file_free(del_file, env);
            }
            axutil_array_list_free(file_list, env);
            return NULL;
        }
        AXIS2_FREE(env->allocator, path);
    }

    for (i = 0; i < count; i++)
    {
        free(files[i]);
    }
    free(files);
    return file_list;
}


int
file_select(
    const struct dirent *entry)
{

    /** FIXME:
      * This block of code has been sitting here doing nothing.
      * I have made the existing logic use this code portion.
      * Have no idea about the side-effects of this modification.
      * If this code block is not required, we might as well remove
      * it.
      */
    axis2_char_t *ptr;

    if ((strcmp(entry->d_name, ".") == 0) || (strcmp(entry->d_name, "..") == 0))
        return (AXIS2_FALSE);

    /* Check for filename extensions */
    ptr = axutil_rindex(entry->d_name, '.');
    if ((ptr) && ((strcmp(ptr, AXIS2_LIB_SUFFIX) == 0)))
    {
        return (AXIS2_TRUE);
    }
    else
        return (AXIS2_FALSE);
}


<|start_filename|>xdocs/api/html/axis2__svc__ctx_8h-source.html<|end_filename|>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html><head><meta http-equiv="Content-Type" content="text/html;charset=UTF-8">
<title>Axis2/C: axis2_svc_ctx.h Source File</title>
<link href="doxygen.css" rel="stylesheet" type="text/css">
<link href="tabs.css" rel="stylesheet" type="text/css">
</head><body>
<!-- Generated by Doxygen 1.5.3 -->
<div class="tabs">
  <ul>
    <li><a href="index.html"><span>Main&nbsp;Page</span></a></li>
    <li><a href="modules.html"><span>Modules</span></a></li>
    <li><a href="annotated.html"><span>Classes</span></a></li>
    <li class="current"><a href="files.html"><span>Files</span></a></li>
    <li><a href="dirs.html"><span>Directories</span></a></li>
    <li><a href="pages.html"><span>Related&nbsp;Pages</span></a></li>
    <li><a href="examples.html"><span>Examples</span></a></li>
    <li>
      <form action="search.php" method="get">
        <table cellspacing="0" cellpadding="0" border="0">
          <tr>
            <td><label>&nbsp;<u>S</u>earch&nbsp;for&nbsp;</label></td>
            <td><input type="text" name="query" value="" size="20" accesskey="s"/></td>
          </tr>
        </table>
      </form>
    </li>
  </ul>
</div>
<div class="nav">
<a class="el" href="dir_f60961de8e5edc3b2658ef023e959e45.html">deploy</a>&nbsp;&raquo&nbsp;<a class="el" href="dir_6b4e91e54b7316b376882a6402adbf44.html">include</a>&nbsp;&raquo&nbsp;<a class="el" href="dir_df3a7695d5a9e696f30b948b566829e7.html">axis2-1.6.0</a></div>
<h1>axis2_svc_ctx.h</h1><a href="axis2__svc__ctx_8h.html">Go to the documentation of this file.</a><div class="fragment"><pre class="fragment"><a name="l00001"></a>00001 
<a name="l00002"></a>00002 <span class="comment">/*</span>
<a name="l00003"></a>00003 <span class="comment">* Licensed to the Apache Software Foundation (ASF) under one or more</span>
<a name="l00004"></a>00004 <span class="comment">* contributor license agreements.  See the NOTICE file distributed with</span>
<a name="l00005"></a>00005 <span class="comment">* this work for additional information regarding copyright ownership.</span>
<a name="l00006"></a>00006 <span class="comment">* The ASF licenses this file to You under the Apache License, Version 2.0</span>
<a name="l00007"></a>00007 <span class="comment">* (the "License"); you may not use this file except in compliance with</span>
<a name="l00008"></a>00008 <span class="comment">* the License.  You may obtain a copy of the License at</span>
<a name="l00009"></a>00009 <span class="comment">*</span>
<a name="l00010"></a>00010 <span class="comment">*      http://www.apache.org/licenses/LICENSE-2.0</span>
<a name="l00011"></a>00011 <span class="comment">*</span>
<a name="l00012"></a>00012 <span class="comment">* Unless required by applicable law or agreed to in writing, software</span>
<a name="l00013"></a>00013 <span class="comment">* distributed under the License is distributed on an "AS IS" BASIS,</span>
<a name="l00014"></a>00014 <span class="comment">* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.</span>
<a name="l00015"></a>00015 <span class="comment">* See the License for the specific language governing permissions and</span>
<a name="l00016"></a>00016 <span class="comment">* limitations under the License.</span>
<a name="l00017"></a>00017 <span class="comment">*/</span>
<a name="l00018"></a>00018 
<a name="l00019"></a>00019 <span class="preprocessor">#ifndef AXIS2_SVC_CTX_H</span>
<a name="l00020"></a>00020 <span class="preprocessor"></span><span class="preprocessor">#define AXIS2_SVC_CTX_H</span>
<a name="l00021"></a>00021 <span class="preprocessor"></span>
<a name="l00035"></a>00035 <span class="preprocessor">#include &lt;<a class="code" href="axis2__defines_8h.html" title="Useful definitions, which may have platform concerns.">axis2_defines.h</a>&gt;</span>
<a name="l00036"></a>00036 <span class="preprocessor">#include &lt;<a class="code" href="axutil__env_8h.html" title="Axis2 environment that acts as a container for error, log and memory allocator routines...">axutil_env.h</a>&gt;</span>
<a name="l00037"></a>00037 <span class="preprocessor">#include &lt;<a class="code" href="axis2__op__ctx_8h.html">axis2_op_ctx.h</a>&gt;</span>
<a name="l00038"></a>00038 
<a name="l00039"></a>00039 <span class="preprocessor">#ifdef __cplusplus</span>
<a name="l00040"></a>00040 <span class="preprocessor"></span><span class="keyword">extern</span> <span class="stringliteral">"C"</span>
<a name="l00041"></a>00041 {
<a name="l00042"></a>00042 <span class="preprocessor">#endif</span>
<a name="l00043"></a>00043 <span class="preprocessor"></span>
<a name="l00045"></a><a class="code" href="group__axis2__svc__ctx.html#g2a3845db3eb9e9a47b992f6c8882e482">00045</a>     <span class="keyword">typedef</span> <span class="keyword">struct </span>axis2_svc_ctx <a class="code" href="group__axis2__svc__ctx.html#g2a3845db3eb9e9a47b992f6c8882e482">axis2_svc_ctx_t</a>;
<a name="l00046"></a>00046 
<a name="l00058"></a>00058     AXIS2_EXTERN <a class="code" href="group__axis2__svc__ctx.html#g2a3845db3eb9e9a47b992f6c8882e482">axis2_svc_ctx_t</a> *AXIS2_CALL
<a name="l00059"></a>00059     <a class="code" href="group__axis2__svc__ctx.html#gfde2ce40c07183001b2a1ef867fb36ae">axis2_svc_ctx_create</a>(
<a name="l00060"></a>00060         <span class="keyword">const</span> <a class="code" href="structaxutil__env.html" title="Axis2 Environment struct.">axutil_env_t</a> * env,
<a name="l00061"></a>00061         <span class="keyword">struct</span> axis2_svc *svc,
<a name="l00062"></a>00062         <span class="keyword">struct</span> axis2_svc_grp_ctx *svc_grp_ctx);
<a name="l00063"></a>00063 
<a name="l00070"></a>00070     AXIS2_EXTERN <a class="code" href="group__axis2__ctx.html#ga705ff779281577f08fef5330c23402c">axis2_ctx_t</a> *AXIS2_CALL
<a name="l00071"></a>00071     <a class="code" href="group__axis2__svc__ctx.html#gf2139308d0b7d17fb9e5cfe531927ecc">axis2_svc_ctx_get_base</a>(
<a name="l00072"></a>00072         <span class="keyword">const</span> <a class="code" href="group__axis2__svc__ctx.html#g2a3845db3eb9e9a47b992f6c8882e482">axis2_svc_ctx_t</a> * svc_ctx,
<a name="l00073"></a>00073         <span class="keyword">const</span> <a class="code" href="structaxutil__env.html" title="Axis2 Environment struct.">axutil_env_t</a> * env);
<a name="l00074"></a>00074 
<a name="l00081"></a>00081     AXIS2_EXTERN <span class="keyword">struct </span>axis2_svc_grp_ctx *AXIS2_CALL
<a name="l00082"></a>00082     <a class="code" href="group__axis2__svc__ctx.html#g2e53ac655251a1f8c59eeb30fbc5565d">axis2_svc_ctx_get_parent</a>(
<a name="l00083"></a>00083         <span class="keyword">const</span> <a class="code" href="group__axis2__svc__ctx.html#g2a3845db3eb9e9a47b992f6c8882e482">axis2_svc_ctx_t</a> * svc_ctx,
<a name="l00084"></a>00084         <span class="keyword">const</span> <a class="code" href="structaxutil__env.html" title="Axis2 Environment struct.">axutil_env_t</a> * env);
<a name="l00085"></a>00085 
<a name="l00094"></a>00094     AXIS2_EXTERN axis2_status_t AXIS2_CALL
<a name="l00095"></a>00095     <a class="code" href="group__axis2__svc__ctx.html#gccbd28eff1c261a89ae12ba43382c284">axis2_svc_ctx_set_parent</a>(
<a name="l00096"></a>00096         <a class="code" href="group__axis2__svc__ctx.html#g2a3845db3eb9e9a47b992f6c8882e482">axis2_svc_ctx_t</a> * svc_ctx,
<a name="l00097"></a>00097         <span class="keyword">const</span> <a class="code" href="structaxutil__env.html" title="Axis2 Environment struct.">axutil_env_t</a> * env,
<a name="l00098"></a>00098         <span class="keyword">struct</span> axis2_svc_grp_ctx *parent);
<a name="l00099"></a>00099 
<a name="l00106"></a>00106     AXIS2_EXTERN <span class="keywordtype">void</span> AXIS2_CALL
<a name="l00107"></a>00107     <a class="code" href="group__axis2__svc__ctx.html#g0ef5d19c153f6e053ebc0c0146d0bbd6">axis2_svc_ctx_free</a>(
<a name="l00108"></a>00108         <span class="keyword">struct</span> axis2_svc_ctx *svc_ctx,
<a name="l00109"></a>00109         <span class="keyword">const</span> <a class="code" href="structaxutil__env.html" title="Axis2 Environment struct.">axutil_env_t</a> * env);
<a name="l00110"></a>00110 
<a name="l00120"></a>00120     AXIS2_EXTERN axis2_status_t AXIS2_CALL
<a name="l00121"></a>00121     <a class="code" href="group__axis2__svc__ctx.html#gceab7004549d691ce03343fffdd08c1b">axis2_svc_ctx_init</a>(
<a name="l00122"></a>00122         <span class="keyword">struct</span> axis2_svc_ctx *svc_ctx,
<a name="l00123"></a>00123         <span class="keyword">const</span> <a class="code" href="structaxutil__env.html" title="Axis2 Environment struct.">axutil_env_t</a> * env,
<a name="l00124"></a>00124         <span class="keyword">struct</span> axis2_conf *conf);
<a name="l00125"></a>00125 
<a name="l00133"></a>00133     AXIS2_EXTERN <span class="keyword">const</span> axis2_char_t *AXIS2_CALL
<a name="l00134"></a>00134     <a class="code" href="group__axis2__svc__ctx.html#ge6b5b3dec329ae2a97080f4a02d8874b">axis2_svc_ctx_get_svc_id</a>(
<a name="l00135"></a>00135         <span class="keyword">const</span> <a class="code" href="group__axis2__svc__ctx.html#g2a3845db3eb9e9a47b992f6c8882e482">axis2_svc_ctx_t</a> * svc_ctx,
<a name="l00136"></a>00136         <span class="keyword">const</span> <a class="code" href="structaxutil__env.html" title="Axis2 Environment struct.">axutil_env_t</a> * env);
<a name="l00137"></a>00137 
<a name="l00144"></a>00144     AXIS2_EXTERN <span class="keyword">struct </span>axis2_svc *AXIS2_CALL
<a name="l00145"></a>00145     <a class="code" href="group__axis2__svc__ctx.html#g3c50b06c933101a834e178e6e9305237">axis2_svc_ctx_get_svc</a>(
<a name="l00146"></a>00146         <span class="keyword">const</span> <a class="code" href="group__axis2__svc__ctx.html#g2a3845db3eb9e9a47b992f6c8882e482">axis2_svc_ctx_t</a> * svc_ctx,
<a name="l00147"></a>00147         <span class="keyword">const</span> <a class="code" href="structaxutil__env.html" title="Axis2 Environment struct.">axutil_env_t</a> * env);
<a name="l00148"></a>00148 
<a name="l00157"></a>00157     AXIS2_EXTERN axis2_status_t AXIS2_CALL
<a name="l00158"></a>00158     <a class="code" href="group__axis2__svc__ctx.html#g9d465a820d440585864dd7235d4747dd">axis2_svc_ctx_set_svc</a>(
<a name="l00159"></a>00159         <a class="code" href="group__axis2__svc__ctx.html#g2a3845db3eb9e9a47b992f6c8882e482">axis2_svc_ctx_t</a> * svc_ctx,
<a name="l00160"></a>00160         <span class="keyword">const</span> <a class="code" href="structaxutil__env.html" title="Axis2 Environment struct.">axutil_env_t</a> * env,
<a name="l00161"></a>00161         <span class="keyword">struct</span> axis2_svc *svc);
<a name="l00162"></a>00162 
<a name="l00170"></a>00170     AXIS2_EXTERN <span class="keyword">struct </span>axis2_conf_ctx *AXIS2_CALL
<a name="l00171"></a>00171     <a class="code" href="group__axis2__svc__ctx.html#gf0645d1d2501588e81ba725137927348">axis2_svc_ctx_get_conf_ctx</a>(
<a name="l00172"></a>00172         <span class="keyword">const</span> <a class="code" href="group__axis2__svc__ctx.html#g2a3845db3eb9e9a47b992f6c8882e482">axis2_svc_ctx_t</a> * svc_ctx,
<a name="l00173"></a>00173         <span class="keyword">const</span> <a class="code" href="structaxutil__env.html" title="Axis2 Environment struct.">axutil_env_t</a> * env);
<a name="l00174"></a>00174 
<a name="l00184"></a>00184     AXIS2_EXTERN <span class="keyword">struct </span>axis2_op_ctx *AXIS2_CALL
<a name="l00185"></a>00185     <a class="code" href="group__axis2__svc__ctx.html#g6db441773d780252be4111f7a8a8c68f">axis2_svc_ctx_create_op_ctx</a>(
<a name="l00186"></a>00186         <span class="keyword">struct</span> axis2_svc_ctx *svc_ctx,
<a name="l00187"></a>00187         <span class="keyword">const</span> <a class="code" href="structaxutil__env.html" title="Axis2 Environment struct.">axutil_env_t</a> * env,
<a name="l00188"></a>00188         <span class="keyword">const</span> axutil_qname_t * qname);
<a name="l00189"></a>00189 
<a name="l00192"></a>00192 <span class="preprocessor">#ifdef __cplusplus</span>
<a name="l00193"></a>00193 <span class="preprocessor"></span>}
<a name="l00194"></a>00194 <span class="preprocessor">#endif</span>
<a name="l00195"></a>00195 <span class="preprocessor"></span>
<a name="l00196"></a>00196 <span class="preprocessor">#endif                          </span><span class="comment">/* AXIS2_SVC_CTX_H */</span>
</pre></div><hr size="1"><address style="text-align: right;"><small>Generated on Fri Apr 17 11:49:42 2009 for Axis2/C by&nbsp;
<a href="http://www.doxygen.org/index.html">
<img src="doxygen.png" alt="doxygen" align="middle" border="0"></a> 1.5.3 </small></address>
</body>
</html>


<|start_filename|>include/axis2_msg_ctx.h<|end_filename|>
/*
* 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 AXIS2_MSG_CTX_H
#define AXIS2_MSG_CTX_H

/**
 * @defgroup axis2_msg_ctx message context
 * @ingroup axis2_context
 * message context captures all state information related to a message
 * invocation. It holds information on the service and operation to be invoked
 * as well as context hierarchy information related to the service and operation.
 * It also has information on transports, that are to be used in invocation. The
 * phase information is kept, along with the phase at which message invocation was
 * paused as well as the handler in the phase from which the invocation is to be
 * resumed. message context would hold the request SOAP message along the out
 * path and would capture response along the in path.
 * message context also has information on various engine specific information,
 * such as if it should be doing MTOM, REST.
 * As message context is inherited form context, it has the capability of
 * storing user defined properties.
 * @{
 */

/**
 * @file axis2_msg_ctx.h
 */

#include <axis2_defines.h>
#include <axutil_env.h>
#include <axis2_ctx.h>
#include <axis2_relates_to.h>
#include <axutil_param.h>
#include <axis2_handler_desc.h>
#include <axutil_qname.h>
#include <axutil_stream.h>
#include <axis2_msg_info_headers.h>

#ifdef __cplusplus
extern "C"
{
#endif

    /** transport headers */
#define AXIS2_TRANSPORT_HEADERS "AXIS2_TRANSPORT_HEADERS"

    /** transport in */
#define AXIS2_TRANSPORT_OUT "AXIS2_TRANSPORT_OUT"

    /** transport out */
#define AXIS2_TRANSPORT_IN "AXIS2_TRANSPORT_IN"

    /** character set encoding */
#define AXIS2_CHARACTER_SET_ENCODING "AXIS2_CHARACTER_SET_ENCODING"

    /** UTF_8; This is the 'utf-8' value for AXIS2_CHARACTER_SET_ENCODING property  */
#define AXIS2_UTF_8 "UTF-8"

    /** UTF_16; This is the 'utf-16' value for AXIS2_CHARACTER_SET_ENCODING property  */
#define AXIS2_UTF_16 "utf-16"

    /** default char set encoding; This is the default value for AXIS2_CHARACTER_SET_ENCODING property */
#define AXIS2_DEFAULT_CHAR_SET_ENCODING "UTF-8"

    /** transport succeeded */
#define AXIS2_TRANSPORT_SUCCEED "AXIS2_TRANSPORT_SUCCEED"

    /** HTTP Client */
#define AXIS2_HTTP_CLIENT "AXIS2_HTTP_CLIENT"

    /** Transport URL */
#define AXIS2_TRANSPORT_URL "TransportURL"

    /** PEER IP Address of Server */
#define AXIS2_SVR_PEER_IP_ADDR "peer_ip_addr"

    /* Message flows */

    /* In flow */

    /*#define AXIS2_IN_FLOW 1*/

    /* In fault flow */

    /*#define AXIS2_IN_FAULT_FLOW 2*/

    /* Out flow */

    /*#define AXIS2_OUT_FLOW 3*/

    /* Out fault flow */

    /*#define AXIS2_OUT_FAULT_FLOW 4*/

    /** Type name for struct axis2_msg_ctx */
    typedef struct axis2_msg_ctx axis2_msg_ctx_t;

    struct axis2_svc;
    struct axis2_op;

    struct axis2_conf_ctx;
    struct axis2_svc_grp_ctx;
    struct axis2_svc_ctx;
    struct axis2_op_ctx;
    struct axis2_conf;
    struct axiom_soap_envelope;
    struct axis2_options;
    struct axis2_transport_in_desc;
    struct axis2_transport_out_desc;
    struct axis2_out_transport_info;

    /** Type name for pointer to a function to find a service */
    typedef struct axis2_svc *(
        AXIS2_CALL
        * AXIS2_MSG_CTX_FIND_SVC) (
            axis2_msg_ctx_t * msg_ctx,
            const axutil_env_t * env);

    /** Type name for pointer to a function to find an operation in a service */
    typedef struct axis2_op *(
        AXIS2_CALL
        * AXIS2_MSG_CTX_FIND_OP) (
            axis2_msg_ctx_t * msg_ctx,
            const axutil_env_t * env,
            struct axis2_svc * svc);

    /**
     * Creates a message context struct instance.
     * @param env pointer to environment struct
     * @param conf_ctx pointer to configuration context struct, message context
     * does not assume the ownership of the struct
     * @param transport_in_desc pointer to transport in description struct, 
     * message context does not assume the ownership of the struct
     * @param transport_out_desc pointer to transport out description struct,
     * message context does not assume the ownership of the struct
     * @return pointer to newly created message context instance
     */
    AXIS2_EXTERN axis2_msg_ctx_t *AXIS2_CALL
    axis2_msg_ctx_create(
        const axutil_env_t * env,
        struct axis2_conf_ctx *conf_ctx,
        struct axis2_transport_in_desc *transport_in_desc,
        struct axis2_transport_out_desc *transport_out_desc);

    /**
     * Gets the base, which is of type context.
     * @param msg_ctx message context
     * @param env pointer to environment struct
     * @return pointer to base context struct
     */
    AXIS2_EXTERN axis2_ctx_t *AXIS2_CALL
    axis2_msg_ctx_get_base(
        const axis2_msg_ctx_t * msg_ctx,
        const axutil_env_t * env);

    /**
     * Gets parent. Parent of a message context is of type operation
     * context.
     * @param msg_ctx message context
     * @param env pointer to environment struct
     * @return pointer to operation context which is the parent
     */
    AXIS2_EXTERN struct axis2_op_ctx *AXIS2_CALL
    axis2_msg_ctx_get_parent(
        const axis2_msg_ctx_t * msg_ctx,
        const axutil_env_t * env);

    /**
     * Sets parent. Parent of a message context is of type operation
     * context.
     * @param msg_ctx message context
     * @param env pointer to environment struct
     * @param parent pointer to parent operation context
     * @return AXIS2_SUCCESS on success, else AXIS2_FAILURE
     */
    AXIS2_EXTERN axis2_status_t AXIS2_CALL
    axis2_msg_ctx_set_parent(
        axis2_msg_ctx_t * msg_ctx,
        const axutil_env_t * env,
        struct axis2_op_ctx *parent);

    /**
     * Frees message context.
     * @param msg_ctx message context
     * @param env pointer to environment struct
     * @return void
     */
    AXIS2_EXTERN void AXIS2_CALL
    axis2_msg_ctx_free(
        axis2_msg_ctx_t * msg_ctx,
        const axutil_env_t * env);

    /**
     * Initializes the message context. Based on the transport, service and
     * operation qnames set on top of message context, correct instances of 
     * those struct instances would be extracted from configuration and 
     * set within message context.
     * @param msg_ctx message context
     * @param env pointer to environment struct
     * @param conf pointer to configuration
     * @return AXIS2_SUCCESS on success, else AXIS2_FAILURE
     */
    AXIS2_EXTERN axis2_status_t AXIS2_CALL
    axis2_msg_ctx_init(
        axis2_msg_ctx_t * msg_ctx,
        const axutil_env_t * env,
        struct axis2_conf *conf);

    /**
     * Gets WS-Addressing fault to address. Fault to address tells where to 
     * send the fault in case there is an error.
     * @param msg_ctx message context
     * @param env pointer to environment struct
     * @return pointer to endpoint reference struct representing the fault 
     * to address, returns a reference not a cloned copy
     */
    AXIS2_EXTERN axis2_endpoint_ref_t *AXIS2_CALL
    axis2_msg_ctx_get_fault_to(
        const axis2_msg_ctx_t * msg_ctx,
        const axutil_env_t * env);

    /**
     * Gets WS-Addressing from endpoint. From address tells where the 
     * request came from.
     * @param msg_ctx message context
     * @param env pointer to environment struct
     * @return pointer to endpoint reference struct representing the from 
     * address, returns a reference not a cloned copy
     */
    AXIS2_EXTERN axis2_endpoint_ref_t *AXIS2_CALL
    axis2_msg_ctx_get_from(
        const axis2_msg_ctx_t * msg_ctx,
        const axutil_env_t * env);

    /**
     * Checks if there is a SOAP fault on in flow.
     * @param msg_ctx message context
     * @param env pointer to environment struct
     * @return AXIS2_TRUE if there is an in flow fault, else AXIS2_FALSE
     */
    AXIS2_EXTERN axis2_bool_t AXIS2_CALL
    axis2_msg_ctx_get_in_fault_flow(
        const axis2_msg_ctx_t * msg_ctx,
        const axutil_env_t * env);

    /**
     * Gets the SOAP envelope. This SOAP envelope could be either request
     * SOAP envelope or the response SOAP envelope, based on the state
     * the message context is in.
     * @param msg_ctx message context
     * @param env pointer to environment struct
     * @return pointer to SOAP envelope stored within message context
     */
    AXIS2_EXTERN struct axiom_soap_envelope *AXIS2_CALL
    axis2_msg_ctx_get_soap_envelope(
        const axis2_msg_ctx_t * msg_ctx,
        const axutil_env_t * env);

    /**
     * Gets the SOAP envelope of the response.
     * @param msg_ctx message context
     * @param env pointer to environment struct
     * @return pointer to response SOAP envelope stored within message context
     */
    AXIS2_EXTERN struct axiom_soap_envelope *AXIS2_CALL
    axis2_msg_ctx_get_response_soap_envelope(
        const axis2_msg_ctx_t * msg_ctx,
        const axutil_env_t * env);

    /**
     * Gets fault SOAP envelope.
     * @param msg_ctx message context
     * @param env pointer to environment struct
     * @return pointer to fault SOAP envelope stored within message context
     */
    AXIS2_EXTERN struct axiom_soap_envelope *AXIS2_CALL
    axis2_msg_ctx_get_fault_soap_envelope(
        const axis2_msg_ctx_t * msg_ctx,
        const axutil_env_t * env);

    /**
     * Sets message ID.
     * @param msg_ctx message context
     * @param env pointer to environment struct
     * @param msg_id
     * @return AXIS2_SUCCESS on success, else AXIS2_FAILURE
     */
    AXIS2_EXTERN axis2_status_t AXIS2_CALL
    axis2_msg_ctx_set_msg_id(
        const axis2_msg_ctx_t * msg_ctx,
        const axutil_env_t * env,
        axis2_char_t * msg_id);

    /**
     * Gets message ID.
     * @param msg_ctx message context
     * @param env pointer to environment struct
     * @return message ID string corresponding to the message the message 
     * context is related to
     */
    AXIS2_EXTERN const axis2_char_t *AXIS2_CALL
    axis2_msg_ctx_get_msg_id(
        const axis2_msg_ctx_t * msg_ctx,
        const axutil_env_t * env);

    /**
     * Gets process fault status.
     * @param msg_ctx message context
     * @param env pointer to environment struct
     * @return AXIS2_TRUE if process fault is on, else AXIS2_FALSE
     */
    AXIS2_EXTERN axis2_bool_t AXIS2_CALL
    axis2_msg_ctx_get_process_fault(
        const axis2_msg_ctx_t * msg_ctx,
        const axutil_env_t * env);

    /**
     * Gets relates to information for the message context.
     * @param msg_ctx message context
     * @param env pointer to environment struct
     * @return pointer to relates to struct 
     */
    AXIS2_EXTERN axis2_relates_to_t *AXIS2_CALL
    axis2_msg_ctx_get_relates_to(
        const axis2_msg_ctx_t * msg_ctx,
        const axutil_env_t * env);

    /**
     * Gets WS-Addressing reply to endpoint. Reply to address tells where 
     * the the response should be sent to.    
     * @param msg_ctx message context
     * @param env pointer to environment struct
     * @return pointer to endpoint reference struct representing the reply 
     * to address, returns a reference not a cloned copy
     */
    AXIS2_EXTERN axis2_endpoint_ref_t *AXIS2_CALL
    axis2_msg_ctx_get_reply_to(
        const axis2_msg_ctx_t * msg_ctx,
        const axutil_env_t * env);

    /**
     * Checks if it is on the server side that the message is being dealt 
     * with, or on the client side.
     * @param msg_ctx message context
     * @param env pointer to environment struct
     * @return AXIS2_TRUE if it is server side, AXIS2_FALSE if it is client
     * side
     */
    AXIS2_EXTERN axis2_bool_t AXIS2_CALL
    axis2_msg_ctx_get_server_side(
        const axis2_msg_ctx_t * msg_ctx,
        const axutil_env_t * env);

    /**
     * Gets WS-Addressing to endpoint. To address tells where message should 
     * be sent to.
     * @param msg_ctx message context
     * @param env pointer to environment struct
     * @return pointer to endpoint reference struct representing the 
     * to address, returns a reference not a cloned copy
     */
    AXIS2_EXTERN axis2_endpoint_ref_t *AXIS2_CALL
    axis2_msg_ctx_get_to(
        const axis2_msg_ctx_t * msg_ctx,
        const axutil_env_t * env);

    /**
     * Sets WS-Addressing fault to endpoint. Fault to address tells where 
     * the fault message should be sent when there is an error.
     * @param msg_ctx message context
     * @param env pointer to environment struct
     * @param reference pointer to endpoint reference representing fault to 
     * address. message context assumes the ownership of endpoint struct
     * @return AXIS2_SUCCESS on success, else AXIS2_FAILURE
     */
    AXIS2_EXTERN axis2_status_t AXIS2_CALL
    axis2_msg_ctx_set_fault_to(
        axis2_msg_ctx_t * msg_ctx,
        const axutil_env_t * env,
        axis2_endpoint_ref_t * reference);

    /**
     * Sets WS-Addressing from endpoint. From address tells where 
     * the message came from.
     * @param msg_ctx message context
     * @param env pointer to environment struct
     * @param reference pointer to endpoint reference representing from 
     * address. message context assumes the ownership of endpoint struct
     * @return AXIS2_SUCCESS on success, else AXIS2_FAILURE
     */
    AXIS2_EXTERN axis2_status_t AXIS2_CALL
    axis2_msg_ctx_set_from(
        axis2_msg_ctx_t * msg_ctx,
        const axutil_env_t * env,
        axis2_endpoint_ref_t * reference);

    /**
     * Sets in fault flow status. 
     * @param msg_ctx message context
     * @param env pointer to environment struct
     * @param in_fault_flow AXIS2_TRUE if there is a fault on in path, 
     * else AXIS2_FALSE
     * @return AXIS2_SUCCESS on success, else AXIS2_FAILURE
     */
    AXIS2_EXTERN axis2_status_t AXIS2_CALL
    axis2_msg_ctx_set_in_fault_flow(
        axis2_msg_ctx_t * msg_ctx,
        const axutil_env_t * env,
        const axis2_bool_t in_fault_flow);

    /**
     * Sets SOAP envelope. The fact that if it is the request SOAP envelope
     * or that of response depends on the current status represented by 
     * message context.
     * @param msg_ctx message context
     * @param env pointer to environment struct
     * @param soap_envelope pointer to SOAP envelope, message context
     * assumes ownership of SOAP envelope
     * @return AXIS2_SUCCESS on success, else AXIS2_FAILURE
     */
    AXIS2_EXTERN axis2_status_t AXIS2_CALL
    axis2_msg_ctx_set_soap_envelope(
        axis2_msg_ctx_t * msg_ctx,
        const axutil_env_t * env,
        struct axiom_soap_envelope *soap_envelope);

    /**
     * Sets response SOAP envelope.
     * @param msg_ctx message context
     * @param env pointer to environment struct
     * @param soap_envelope pointer to SOAP envelope, message context
     * assumes ownership of SOAP envelope
     * @return AXIS2_SUCCESS on success, else AXIS2_FAILURE
     */
    AXIS2_EXTERN axis2_status_t AXIS2_CALL
    axis2_msg_ctx_set_response_soap_envelope(
        axis2_msg_ctx_t * msg_ctx,
        const axutil_env_t * env,
        struct axiom_soap_envelope *soap_envelope);

    /**
     * Sets fault SOAP envelope.
     * @param msg_ctx message context
     * @param env pointer to environment struct
     * @param soap_envelope pointer to SOAP envelope, message context
     * assumes ownership of SOAP envelope
     * @return AXIS2_SUCCESS on success, else AXIS2_FAILURE
     */
    AXIS2_EXTERN axis2_status_t AXIS2_CALL
    axis2_msg_ctx_set_fault_soap_envelope(
        axis2_msg_ctx_t * msg_ctx,
        const axutil_env_t * env,
        struct axiom_soap_envelope *soap_envelope);

    /**
     * Sets message ID.
     * @param msg_ctx message context
     * @param env pointer to environment struct
     * @param message_id message ID string
     * @return AXIS2_SUCCESS on success, else AXIS2_FAILURE
     */
    AXIS2_EXTERN axis2_status_t AXIS2_CALL
    axis2_msg_ctx_set_message_id(
        axis2_msg_ctx_t * msg_ctx,
        const axutil_env_t * env,
        const axis2_char_t * message_id);

    /**
     * Sets process fault bool value.
     * @param msg_ctx message context
     * @param env pointer to environment struct
     * @param process_fault AXIS2_TRUE if SOAP faults are to be processed,
     * else AXIS2_FALSE
     * @return AXIS2_SUCCESS on success, else AXIS2_FAILURE
     */
    AXIS2_EXTERN axis2_status_t AXIS2_CALL
    axis2_msg_ctx_set_process_fault(
        axis2_msg_ctx_t * msg_ctx,
        const axutil_env_t * env,
        const axis2_bool_t process_fault);

    /**
     * Sets relates to struct.
     * @param msg_ctx message context
     * @param env pointer to environment struct
     * @param reference pointer to relates to struct, message context 
     * assumes ownership of the struct
     * @return AXIS2_SUCCESS on success, else AXIS2_FAILURE
     */
    AXIS2_EXTERN axis2_status_t AXIS2_CALL
    axis2_msg_ctx_set_relates_to(
        axis2_msg_ctx_t * msg_ctx,
        const axutil_env_t * env,
        axis2_relates_to_t * reference);

    /**
     * Sets WS-Addressing reply to address indicating the location to which
     * the reply would be sent.
     * @param msg_ctx message context
     * @param env pointer to environment struct
     * @param reference pointer to endpoint reference representing reply to 
     * address    
     * @return AXIS2_SUCCESS on success, else AXIS2_FAILURE
     */
    AXIS2_EXTERN axis2_status_t AXIS2_CALL
    axis2_msg_ctx_set_reply_to(
        axis2_msg_ctx_t * msg_ctx,
        const axutil_env_t * env,
        axis2_endpoint_ref_t * reference);

    /**
     * Sets the bool value indicating if it is the server side or the
     * client side.
     * @param msg_ctx message context
     * @param env pointer to environment struct
     * @param server_side AXIS2_TRUE if it is server side, AXIS2_FALSE if it
     * is client side
     * @return AXIS2_SUCCESS on success, else AXIS2_FAILURE
     */
    AXIS2_EXTERN axis2_status_t AXIS2_CALL
    axis2_msg_ctx_set_server_side(
        axis2_msg_ctx_t * msg_ctx,
        const axutil_env_t * env,
        const axis2_bool_t server_side);

    /**
     * Sets WS-Addressing to address.
     * @param msg_ctx message context
     * @param env pointer to environment struct
     * @param reference pointer to endpoint reference struct representing
     * the address where the request should be sent to. message context
     * assumes ownership of endpoint struct
     * @return AXIS2_SUCCESS on success, else AXIS2_FAILURE
     */
    AXIS2_EXTERN axis2_status_t AXIS2_CALL
    axis2_msg_ctx_set_to(
        axis2_msg_ctx_t * msg_ctx,
        const axutil_env_t * env,
        axis2_endpoint_ref_t * reference);

    /**
     * Gets the bool value indicating if it is required to have a new thread
     * for the invocation, or if the same thread of execution could be used.
     * @param msg_ctx message context
     * @param env pointer to environment struct
     * @return AXIS2_TRUE if new thread is required, else AXIS2_FALSE
     */
    AXIS2_EXTERN axis2_bool_t AXIS2_CALL
    axis2_msg_ctx_get_new_thread_required(
        const axis2_msg_ctx_t * msg_ctx,
        const axutil_env_t * env);

    /**
     * Sets the bool value indicating if it is required to have a new thread
     * for the invocation, or if the same thread of execution could be used.    
     * @param msg_ctx message context
     * @param env pointer to environment struct
     * @param new_thread_required AXIS2_TRUE if a new thread is required, 
     * else AXIS2_FALSE
     * @return AXIS2_SUCCESS on success, else AXIS2_FAILURE
     */
    AXIS2_EXTERN axis2_status_t AXIS2_CALL
    axis2_msg_ctx_set_new_thread_required(
        axis2_msg_ctx_t * msg_ctx,
        const axutil_env_t * env,
        const axis2_bool_t new_thread_required);

    /**
     * Sets WS-Addressing action. 
     * @param msg_ctx message context
     * @param env pointer to environment struct
     * @param action_uri WSA action URI string
     * @return AXIS2_SUCCESS on success, else AXIS2_FAILURE
     */
    AXIS2_EXTERN axis2_status_t AXIS2_CALL
    axis2_msg_ctx_set_wsa_action(
        axis2_msg_ctx_t * msg_ctx,
        const axutil_env_t * env,
        const axis2_char_t * action_uri);

    /**
     * Gets WS-Addressing action.
     * @param msg_ctx message context
     * @param env pointer to environment struct
     * @return pointer to WSA action URI string
     */
    AXIS2_EXTERN const axis2_char_t *AXIS2_CALL
    axis2_msg_ctx_get_wsa_action(
        const axis2_msg_ctx_t * msg_ctx,
        const axutil_env_t * env);

    /**
     * Sets WS-Addressing message ID.
     * @param msg_ctx message context
     * @param env pointer to environment struct
     * @param message_id pointer to message ID string
     * @return AXIS2_SUCCESS on success, else AXIS2_FAILURE
     */
    AXIS2_EXTERN axis2_status_t AXIS2_CALL
    axis2_msg_ctx_set_wsa_message_id(
        axis2_msg_ctx_t * msg_ctx,
        const axutil_env_t * env,
        const axis2_char_t * message_id);

    /**
     * Gets WS-Addressing message ID. 
     * @param msg_ctx message context
     * @param env pointer to environment struct
     * @return WSA message ID string
     */
    AXIS2_EXTERN const axis2_char_t *AXIS2_CALL
    axis2_msg_ctx_get_wsa_message_id(
        const axis2_msg_ctx_t * msg_ctx,
        const axutil_env_t * env);

    /**
     * Gets WS-Addressing message information headers.
     * @param msg_ctx message context
     * @param env pointer to environment struct
     * @return pointer to message information headers struct with 
     * WS-Addressing information. Returns a reference, not a cloned copy
     */
    AXIS2_EXTERN axis2_msg_info_headers_t *AXIS2_CALL
    axis2_msg_ctx_get_msg_info_headers(
        const axis2_msg_ctx_t * msg_ctx,
        const axutil_env_t * env);

    /**
     * Gets the bool value indicating the paused status. It is possible 
     * to pause the engine invocation by any handler. By calling this method
     * one can find out if some handler has paused the invocation.
     * @param msg_ctx message context
     * @param env pointer to environment struct
     * @return AXIS2_TRUE if message context is paused, else AXIS2_FALSE
     */
    AXIS2_EXTERN axis2_bool_t AXIS2_CALL
    axis2_msg_ctx_get_paused(
        const axis2_msg_ctx_t * msg_ctx,
        const axutil_env_t * env);

    /**
     * Sets the bool value indicating the paused status of invocation.
     * @param msg_ctx message context
     * @param env pointer to environment struct
     * @param paused paused
     * @return AXIS2_SUCCESS on success, else AXIS2_FAILURE
     */
    AXIS2_EXTERN axis2_status_t AXIS2_CALL
    axis2_msg_ctx_set_paused(
        axis2_msg_ctx_t * msg_ctx,
        const axutil_env_t * env,
        const axis2_bool_t paused);

    /**
     * Gets the bool value indicating the keep alive status. It is possible 
     * to keep alive the message context by any handler. By calling this method
     * one can see whether it is possible to clean the message context.
     * @param msg_ctx message context
     * @param env pointer to environment struct
     * @return AXIS2_TRUE if message context is keep alive, else AXIS2_FALSE
     */
    AXIS2_EXTERN axis2_bool_t AXIS2_CALL
    axis2_msg_ctx_is_keep_alive(
        const axis2_msg_ctx_t * msg_ctx,
        const axutil_env_t * env);

    /**
     * Sets the bool value indicating the keep alive status of invocation.
     * By setting this one can indicate the engine not to clean the message 
     * context.
     * @param msg_ctx message context
     * @param env pointer to environment struct
     * @param keep_alive keep alive
     * @return AXIS2_SUCCESS on success, else AXIS2_FAILURE
     */
    AXIS2_EXTERN axis2_status_t AXIS2_CALL
    axis2_msg_ctx_set_keep_alive(
        axis2_msg_ctx_t * msg_ctx,
        const axutil_env_t * env,
        const axis2_bool_t keep_alive);

    /**
     * Gets transport in description.
     * @param msg_ctx message context
     * @param env pointer to environment struct
     * @return pointer to transport in description struct, returns a 
     * reference not a cloned copy
     */
    AXIS2_EXTERN struct axis2_transport_in_desc *AXIS2_CALL
    axis2_msg_ctx_get_transport_in_desc(
        const axis2_msg_ctx_t * msg_ctx,
        const axutil_env_t * env);

    /**
     * Gets transport out description.
     * @param msg_ctx message context
     * @param env pointer to environment struct
     * @return pointer to transport out description struct, returns a 
     * reference not a cloned copy
     */
    AXIS2_EXTERN struct axis2_transport_out_desc *AXIS2_CALL
    axis2_msg_ctx_get_transport_out_desc(
        const axis2_msg_ctx_t * msg_ctx,
        const axutil_env_t * env);

    /**
     * Sets transport in description.
     * @param msg_ctx message context
     * @param env pointer to environment struct
     * @param transport_in_desc pointer to transport in description struct,
     * message context does not assume the ownership of the struct
     * @return AXIS2_SUCCESS on success, else AXIS2_FAILURE
     */
    AXIS2_EXTERN axis2_status_t AXIS2_CALL
    axis2_msg_ctx_set_transport_in_desc(
        axis2_msg_ctx_t * msg_ctx,
        const axutil_env_t * env,
        struct axis2_transport_in_desc *transport_in_desc);

    /**
     * Sets transport out description.
     * @param msg_ctx message context
     * @param env pointer to environment struct
     * @param transport_out_desc pointer to transport out description,
     * message context does not assume the ownership of the struct
     * @return AXIS2_SUCCESS on success, else AXIS2_FAILURE
     */
    AXIS2_EXTERN axis2_status_t AXIS2_CALL
    axis2_msg_ctx_set_transport_out_desc(
        axis2_msg_ctx_t * msg_ctx,
        const axutil_env_t * env,
        struct axis2_transport_out_desc *transport_out_desc);

    /**
     * Gets operation context related to the operation that this message
     * context is related to.
     * @param msg_ctx message context
     * @param env pointer to environment struct
     * @return pointer to operation context struct
     */
    AXIS2_EXTERN struct axis2_op_ctx *AXIS2_CALL
    axis2_msg_ctx_get_op_ctx(
        const axis2_msg_ctx_t * msg_ctx,
        const axutil_env_t * env);

    /**
     * Sets operation context related to the operation that this message
     * context is related to.
     * @param msg_ctx message context
     * @param env pointer to environment struct
     * @param op_ctx pointer to operation context, message context does not 
     * assume the ownership of operation context
     * @return AXIS2_SUCCESS on success, else AXIS2_FAILURE
     */
    AXIS2_EXTERN axis2_status_t AXIS2_CALL
    axis2_msg_ctx_set_op_ctx(
        axis2_msg_ctx_t * msg_ctx,
        const axutil_env_t * env,
        struct axis2_op_ctx *op_ctx);

    /**
     * Sets ownership flag of operation context.
     * @param msg_ctx message context
     * @param env pointer to environment struct
     * @param owner_flag ownership flag
     * @return AXIS2_SUCCESS on success, else AXIS2_FAILURE
     */
    AXIS2_EXTERN axis2_status_t AXIS2_CALL
    axis2_msg_ctx_set_op_ctx_owner_flag(
            axis2_msg_ctx_t * msg_ctx,
            const axutil_env_t * env,
            axis2_bool_t owner_flag);

    /**
     * Gets the bool value indicating the output written status. 
     * @param msg_ctx message context
     * @param env pointer to environment struct 
     * @return AXIS2_TRUE if output is written, else AXIS2_FALSE
     */
    AXIS2_EXTERN axis2_bool_t AXIS2_CALL
    axis2_msg_ctx_get_output_written(
        const axis2_msg_ctx_t * msg_ctx,
        const axutil_env_t * env);

    /**
     * Sets the bool value indicating the output written status. 
     * @param msg_ctx message context
     * @param env pointer to environment struct
     * @param output_written AXIS2_TRUE if output is written, else AXIS2_FALSE
     * @return AXIS2_SUCCESS on success, else AXIS2_FAILURE
     */
    AXIS2_EXTERN axis2_status_t AXIS2_CALL
    axis2_msg_ctx_set_output_written(
        axis2_msg_ctx_t * msg_ctx,
        const axutil_env_t * env,
        const axis2_bool_t output_written);

    /**
     * Gets the HTTP Method that relates to the service that is 
     * related to the message context.
     * @param msg_ctx message context
     * @param env pointer to environment struct
     * @return HTTP Method string, returns a reference,
     * not a cloned copy
     */
    AXIS2_EXTERN const axis2_char_t *AXIS2_CALL
    axis2_msg_ctx_get_rest_http_method(
        const axis2_msg_ctx_t * msg_ctx,
        const axutil_env_t * env);

    /**
     * Sets the HTTP Method that relates to the service that is 
     * related to the message context.
     * @param msg_ctx message context
     * @param env pointer to environment struct
     * @param rest_http_method HTTP Method string, msg_ctx does not assume
     * ownership of rest_http_method.
     * @return AXIS2_SUCCESS on success, else AXIS2_FAILURE
     */
    AXIS2_EXTERN axis2_status_t AXIS2_CALL
    axis2_msg_ctx_set_rest_http_method(
        struct axis2_msg_ctx * msg_ctx,
        const axutil_env_t * env,
        const axis2_char_t * rest_http_method);

    /**
     * Gets the ID of service context that relates to the service that is 
     * related to the message context.
     * @param msg_ctx message context
     * @param env pointer to environment struct
     * @return service context ID string
     */
    AXIS2_EXTERN const axis2_char_t *AXIS2_CALL
    axis2_msg_ctx_get_svc_ctx_id(
        const axis2_msg_ctx_t * msg_ctx,
        const axutil_env_t * env);

    /**
     * Sets the ID of service context that relates to the service that is 
     * related to the message context.
     * @param msg_ctx message context
     * @param env pointer to environment struct
     * @param svc_ctx_id The service context ID string
     * @return AXIS2_SUCCESS on success, else AXIS2_FAILURE
     */
    AXIS2_EXTERN axis2_status_t AXIS2_CALL
    axis2_msg_ctx_set_svc_ctx_id(
        axis2_msg_ctx_t * msg_ctx,
        const axutil_env_t * env,
        const axis2_char_t * svc_ctx_id);

    /**
     * Gets configuration context.
     * @param msg_ctx message context
     * @param env pointer to environment struct
     * @return pointer to configuration context
     */
    AXIS2_EXTERN struct axis2_conf_ctx *AXIS2_CALL
    axis2_msg_ctx_get_conf_ctx(
        const axis2_msg_ctx_t * msg_ctx,
        const axutil_env_t * env);

    /**
     * Gets service context that relates to the service that the message 
     * context is related to.
     * @param msg_ctx message context
     * @param env pointer to environment struct
     * @return pointer to message context struct
     */
    AXIS2_EXTERN struct axis2_svc_ctx *AXIS2_CALL
    axis2_msg_ctx_get_svc_ctx(
        const axis2_msg_ctx_t * msg_ctx,
        const axutil_env_t * env);

    /**
     * Sets configuration context.
     * @param msg_ctx message context
     * @param env pointer to environment struct
     * @param conf_ctx pointer to configuration context struct, message 
     * context does not assume the ownership of struct
     * @return AXIS2_SUCCESS on success, else AXIS2_FAILURE
     */
    AXIS2_EXTERN axis2_status_t AXIS2_CALL
    axis2_msg_ctx_set_conf_ctx(
        axis2_msg_ctx_t * msg_ctx,
        const axutil_env_t * env,
        struct axis2_conf_ctx *conf_ctx);

    /**
     * Sets service context.    
     * @param msg_ctx message context
     * @param env pointer to environment struct
     * @param svc_ctx pointer to service context struct,  message 
     * context does not assume the ownership of struct
     * @return AXIS2_SUCCESS on success, else AXIS2_FAILURE
     */
    AXIS2_EXTERN axis2_status_t AXIS2_CALL
    axis2_msg_ctx_set_svc_ctx(
        axis2_msg_ctx_t * msg_ctx,
        const axutil_env_t * env,
        struct axis2_svc_ctx *svc_ctx);

    /**
     * Sets message information headers.
     * @param msg_ctx message context
     * @param env pointer to environment struct
     * @param msg_info_headers pointer to message information headers,
     * message context assumes the ownership of the struct
     * @return AXIS2_SUCCESS on success, else AXIS2_FAILURE
     */
    AXIS2_EXTERN axis2_status_t AXIS2_CALL
    axis2_msg_ctx_set_msg_info_headers(
        axis2_msg_ctx_t * msg_ctx,
        const axutil_env_t * env,
        axis2_msg_info_headers_t * msg_info_headers);

    /**
     * Gets configuration descriptor parameter with given key. This method 
     * recursively search the related description hierarchy for the parameter 
     * with given key until it is found or the parent of the description 
     * hierarchy is reached. The order of search is as follows:
     * \n
     * 1. search in operation description, if its there return
     * \n
     * 2. if the parameter is not found in operation or operation is NULL, 
     * search in service
     * \n
     * 3. if the parameter is not found in service or service is NULL search 
     * in configuration
     * @param msg_ctx message context
     * @param env pointer to environment struct
     * @param key parameter key  
     * @return pointer to parameter struct corresponding to the given key
     */
    AXIS2_EXTERN axutil_param_t *AXIS2_CALL
    axis2_msg_ctx_get_parameter(
        const axis2_msg_ctx_t * msg_ctx,
        const axutil_env_t * env,
        const axis2_char_t * key);

    /**
     * Gets parameters related to a named module and a given handler 
     * description. The order of searching for parameter is as follows:
     * \n
     * 1. search in module configuration stored inside corresponding operation 
     * description if its there
     * \n
     * 2. search in corresponding operation if its there
     * \n
     * 3. search in module configurations stored inside corresponding 
     * service description if its there
     * \n
     * 4. search in corresponding service description if its there
     * \n
     * 5. search in module configurations stored inside configuration
     * \n
     * 6. search in configuration for parameters
     * \n
     * 7. get the corresponding module and search for the parameters
     * \n
     * 8. search in handler description for the parameter
     * @param msg_ctx pointer to message context
     * @param env pointer to environment struct
     * @param key parameter key
     * @param module_name name of the module
     * @param handler_desc pointer to handler description
     * @return pointer to parameter 
     */
    AXIS2_EXTERN axutil_param_t *AXIS2_CALL
    axis2_msg_ctx_get_module_parameter(
        const axis2_msg_ctx_t * msg_ctx,
        const axutil_env_t * env,
        const axis2_char_t * key,
        const axis2_char_t * module_name,
        axis2_handler_desc_t * handler_desc);

    /**
     * Gets property corresponding to the given key.
     * @param msg_ctx pointer to message context
     * @param env pointer to environment struct
     * @param key key string with which the property is stored
     * @return pointer to property struct
     */
    AXIS2_EXTERN axutil_property_t *AXIS2_CALL
    axis2_msg_ctx_get_property(
        const axis2_msg_ctx_t * msg_ctx,
        const axutil_env_t * env,
        const axis2_char_t * key);

    /**
     * Gets property value corresponding to the property given key.
     * @param msg_ctx pointer to message context
     * @param env pointer to environment struct
     * @param property_str key string with which the property is stored
     * @return pointer to property struct
     */
    AXIS2_EXTERN void *AXIS2_CALL
    axis2_msg_ctx_get_property_value(
        axis2_msg_ctx_t * msg_ctx,
        const axutil_env_t * env,
        const axis2_char_t * property_str);

    /**
     * Sets property with given key.
     * @param msg_ctx message context
     * @param env pointer to environment struct
     * @param key key string
     * @param value property to be stored
     * @return AXIS2_SUCCESS on success, else AXIS2_FAILURE
     */
    AXIS2_EXTERN axis2_status_t AXIS2_CALL
    axis2_msg_ctx_set_property(
        axis2_msg_ctx_t * msg_ctx,
        const axutil_env_t * env,
        const axis2_char_t * key,
        axutil_property_t * value);

    /**
     * Gets the QName of the handler at which invocation was paused.
     * @param msg_ctx message context
     * @param env pointer to environment struct
     * @return pointer to QName of the paused handler
     */
    AXIS2_EXTERN const axutil_string_t *AXIS2_CALL
    axis2_msg_ctx_get_paused_handler_name(
        const axis2_msg_ctx_t * msg_ctx,
        const axutil_env_t * env);

    /**
     * Gets the name of the phase at which the invocation was paused.
     * @param msg_ctx message context
     * @param env pointer to environment struct
     * @return name string of the paused phase.
     */
    AXIS2_EXTERN const axis2_char_t *AXIS2_CALL
    axis2_msg_ctx_get_paused_phase_name(
        const axis2_msg_ctx_t * msg_ctx,
        const axutil_env_t * env);

    /**
     * Sets the name of the phase at which the invocation was paused.
     * @param msg_ctx message context
     * @param env pointer to environment struct
     * @param paused_phase_name paused phase name string
     * @return AXIS2_SUCCESS on success, else AXIS2_FAILURE
     */
    AXIS2_EXTERN axis2_status_t AXIS2_CALL
    axis2_msg_ctx_set_paused_phase_name(
        axis2_msg_ctx_t * msg_ctx,
        const axutil_env_t * env,
        const axis2_char_t * paused_phase_name);

    /**
     * Gets SOAP action.
     * @param msg_ctx message context
     * @param env pointer to environment struct
     * @return SOAP action string
     */
    AXIS2_EXTERN axutil_string_t *AXIS2_CALL
    axis2_msg_ctx_get_soap_action(
        const axis2_msg_ctx_t * msg_ctx,
        const axutil_env_t * env);

    /**
     * Sets SOAP action.
     * @param msg_ctx message context
     * @param env pointer to environment struct
     * @param soap_action SOAP action string
     * @return AXIS2_SUCCESS on success, else AXIS2_FAILURE
     */
    AXIS2_EXTERN axis2_status_t AXIS2_CALL
    axis2_msg_ctx_set_soap_action(
        axis2_msg_ctx_t * msg_ctx,
        const axutil_env_t * env,
        axutil_string_t * soap_action);

    /**
     * Gets the boolean value indicating if MTOM is enabled or not.
     * @param msg_ctx message context
     * @param env pointer to environment struct
     * @return AXIS2_TRUE if MTOM is enabled, else AXIS2_FALSE
     */
    AXIS2_EXTERN axis2_bool_t AXIS2_CALL
    axis2_msg_ctx_get_doing_mtom(
        axis2_msg_ctx_t * msg_ctx,
        const axutil_env_t * env);

    /**
     * Sets the boolean value indicating if MTOM is enabled or not.
     * @param msg_ctx message context
     * @param env pointer to environment struct
     * @param doing_mtom AXIS2_TRUE if MTOM is enabled, else AXIS2_FALSE
     * @return AXIS2_SUCCESS on success, else AXIS2_FAILURE
     */
    AXIS2_EXTERN axis2_status_t AXIS2_CALL
    axis2_msg_ctx_set_doing_mtom(
        axis2_msg_ctx_t * msg_ctx,
        const axutil_env_t * env,
        const axis2_bool_t doing_mtom);

    /**
     * Gets the boolean value indicating if REST is enabled or not.
     * @param msg_ctx message context
     * @param env pointer to environment struct
     * @return AXIS2_TRUE if REST is enabled, else AXIS2_FALSE
     */
    AXIS2_EXTERN axis2_bool_t AXIS2_CALL
    axis2_msg_ctx_get_doing_rest(
        const axis2_msg_ctx_t * msg_ctx,
        const axutil_env_t * env);

    /**
     * Sets the boolean value indicating if REST is enabled or not.
     * @param msg_ctx message context
     * @param env pointer to environment struct
     * @param doing_rest AXIS2_TRUE if REST is enabled, else AXIS2_FALSE
     * @return AXIS2_SUCCESS on success, else AXIS2_FAILURE
     */
    AXIS2_EXTERN axis2_status_t AXIS2_CALL
    axis2_msg_ctx_set_doing_rest(
        axis2_msg_ctx_t * msg_ctx,
        const axutil_env_t * env,
        const axis2_bool_t doing_rest);

    /**
     * Sets the boolean value indicating if REST should be done through 
     * HTTP POST or not.
     * @param msg_ctx message context
     * @param env pointer to environment struct
     * @param do_rest_through_post AXIS2_TRUE if REST is to be done with 
     * HTTP POST, else AXIS2_FALSE if REST is not to be done with HTTP POST
     * @return AXIS2_SUCCESS on success, else AXIS2_FAILURE
     */
    AXIS2_EXTERN axis2_status_t AXIS2_CALL
    axis2_msg_ctx_set_do_rest_through_post(
        axis2_msg_ctx_t * msg_ctx,
        const axutil_env_t * env,
        const axis2_bool_t do_rest_through_post);

    /**
     * Sets the boolean value indicating if REST should be done through 
     * HTTP POST or not.
     * @param msg_ctx message context
     * @param env pointer to environment struct
     * @return AXIS2_TRUE if REST is to be done with HTTP POST, else 
     * AXIS2_FALSE if REST is not to be done with HTTP POST
     */
    AXIS2_EXTERN axis2_bool_t AXIS2_CALL
    axis2_msg_ctx_get_do_rest_through_post(
        const axis2_msg_ctx_t * msg_ctx,
        const axutil_env_t * env);

    /**
     * Gets manage session bool value.
     * @param msg_ctx message context
     * @param env pointer to environment struct
     * @return AXIS2_TRUE if session is managed, else AXIS2_FALSE
     */
    AXIS2_EXTERN axis2_bool_t AXIS2_CALL
    axis2_msg_ctx_get_manage_session(
        const axis2_msg_ctx_t * msg_ctx,
        const axutil_env_t * env);

    /**
     * Sets manage session bool value.
     * @param msg_ctx message context
     * @param env pointer to environment struct
     * @param manage_session manage session bool value
     * @return AXIS2_SUCCESS on success, else AXIS2_FAILURE
     */
    AXIS2_EXTERN axis2_status_t AXIS2_CALL
    axis2_msg_ctx_set_manage_session(
        axis2_msg_ctx_t * msg_ctx,
        const axutil_env_t * env,
        const axis2_bool_t manage_session);

    /**
     * Gets the bool value indicating the SOAP version being used either
     * SOAP 1.1 or SOAP 1.2
     * @param msg_ctx message context
     * @param env pointer to environment struct
     * @return AXIS2_TRUE if SOAP 1.1 is being used, else AXIS2_FALSE if 
     * SOAP 1.2 is being used
     */
    AXIS2_EXTERN axis2_bool_t AXIS2_CALL
    axis2_msg_ctx_get_is_soap_11(
        const axis2_msg_ctx_t * msg_ctx,
        const axutil_env_t * env);

    /**
     * Sets the bool value indicating the SOAP version being used either
     * SOAP 1.1 or SOAP 1.2
     * @param msg_ctx message context
     * @param env pointer to environment struct
     * @param is_soap11 AXIS2_TRUE if SOAP 1.1 is being used, else 
     * AXIS2_FALSE if SOAP 1.2 is being used
     * @return AXIS2_SUCCESS on success, else AXIS2_FAILURE
     */
    AXIS2_EXTERN axis2_status_t AXIS2_CALL
    axis2_msg_ctx_set_is_soap_11(
        axis2_msg_ctx_t * msg_ctx,
        const axutil_env_t * env,
        const axis2_bool_t is_soap11);

    /**
     * Gets service group context. The returned service group context 
     * relates to the service group to which the service, related to the 
     * message context, belongs.
     * @param msg_ctx message context
     * @param env pointer to environment struct
     * @return pointer to service group struct
     */
    AXIS2_EXTERN struct axis2_svc_grp_ctx *AXIS2_CALL
    axis2_msg_ctx_get_svc_grp_ctx(
        const axis2_msg_ctx_t * msg_ctx,
        const axutil_env_t * env);

    /**
     * Gets service group context. The returned service group context 
     * relates to the service group to which the service, related to the 
     * message context, belongs.
     * @param msg_ctx message context
     * @param env pointer to environment struct
     * @param svc_grp_ctx pointer to service group context
     * @return AXIS2_SUCCESS on success, else AXIS2_FAILURE
     */
    AXIS2_EXTERN axis2_status_t AXIS2_CALL
    axis2_msg_ctx_set_svc_grp_ctx(
        axis2_msg_ctx_t * msg_ctx,
        const axutil_env_t * env,
        struct axis2_svc_grp_ctx *svc_grp_ctx);

    /**
     * Gets the operation that is to be invoked.
     * @param msg_ctx message context
     * @param env pointer to environment struct
     * @return pointer to operation, returns a reference not a cloned copy
     */
    AXIS2_EXTERN struct axis2_op *AXIS2_CALL
    axis2_msg_ctx_get_op(
        const axis2_msg_ctx_t * msg_ctx,
        const axutil_env_t * env);

    /**
     * Sets the operation that is to be invoked.
     * @param msg_ctx message context
     * @param env pointer to environment struct
     * @param op pointer to operation, message context does not assume the 
     * ownership of operation
     * @return AXIS2_SUCCESS on success, else AXIS2_FAILURE
     */
    AXIS2_EXTERN axis2_status_t AXIS2_CALL
    axis2_msg_ctx_set_op(
        axis2_msg_ctx_t * msg_ctx,
        const axutil_env_t * env,
        struct axis2_op *op);

    /**
     * Gets the service to which the operation to be invoked belongs.
     * @param msg_ctx message context
     * @param env pointer to environment struct
     * @return pointer to service struct, returns a reference not a cloned copy
     */
    AXIS2_EXTERN struct axis2_svc *AXIS2_CALL
    axis2_msg_ctx_get_svc(
        const axis2_msg_ctx_t * msg_ctx,
        const axutil_env_t * env);

    /**
     * Sets the service to which the operation to be invoked belongs.
     * @param msg_ctx message context
     * @param env pointer to environment struct
     * @param svc pointer to service struct, message context does not assume
     * the ownership of struct
     * @return AXIS2_SUCCESS on success, else AXIS2_FAILURE
     */
    AXIS2_EXTERN axis2_status_t AXIS2_CALL
    axis2_msg_ctx_set_svc(
        axis2_msg_ctx_t * msg_ctx,
        const axutil_env_t * env,
        struct axis2_svc *svc);

    /**
     * Gets the service group to which the service to be invoked belongs.
     * @param msg_ctx message context
     * @param env pointer to environment struct
     * @return pointer to service group struct, returns a reference not 
     * a cloned copy
     */
    AXIS2_EXTERN struct axis2_svc_grp *AXIS2_CALL
    axis2_msg_ctx_get_svc_grp(
        const axis2_msg_ctx_t * msg_ctx,
        const axutil_env_t * env);

    /**
     * Sets the service group to which the service to be invoked belongs.
     * @param msg_ctx message context
     * @param env pointer to environment struct
     * @param svc_grp pointer to service group struct, message context does 
     * not assume the ownership of the struct
     * @return AXIS2_SUCCESS on success, else AXIS2_FAILURE
     */
    AXIS2_EXTERN axis2_status_t AXIS2_CALL
    axis2_msg_ctx_set_svc_grp(
        axis2_msg_ctx_t * msg_ctx,
        const axutil_env_t * env,
        struct axis2_svc_grp *svc_grp);

    /**
     * Gets the service group context ID.
     * @param msg_ctx message context
     * @param env pointer to environment struct
     * @return service group context ID string
     */
    AXIS2_EXTERN const axutil_string_t *AXIS2_CALL
    axis2_msg_ctx_get_svc_grp_ctx_id(
        const axis2_msg_ctx_t * msg_ctx,
        const axutil_env_t * env);

    /**
     * Sets the service group context ID.
     * @param msg_ctx message context
     * @param env pointer to environment struct
     * @param svc_grp_ctx_id service group context ID string 
     * @return AXIS2_SUCCESS on success, else AXIS2_FAILURE
     */
    AXIS2_EXTERN axis2_status_t AXIS2_CALL
    axis2_msg_ctx_set_svc_grp_ctx_id(
        axis2_msg_ctx_t * msg_ctx,
        const axutil_env_t * env,
        axutil_string_t * svc_grp_ctx_id);

    /**
     * Sets function to be used to find a service. This function is used by dispatchers 
     * to locate the service to be invoked.
     * @param msg_ctx message context
     * @param env pointer to environment struct
     * @param func function to be used to find an operation
     * @return pointer to service to be invoked
     */
    AXIS2_EXTERN axis2_status_t AXIS2_CALL
    axis2_msg_ctx_set_find_svc(
        axis2_msg_ctx_t * msg_ctx,
        const axutil_env_t * env,
        AXIS2_MSG_CTX_FIND_SVC func);

    /**
     * Sets function to be used to find an operation in the given service.
     * This function is used by dispatchers to locate the operation to be invoked.
     * @param msg_ctx message context
     * @param env pointer to environment struct
     * @param func function to be used to find an operation 
     * @return pointer to the operation to be invoked
     */
    AXIS2_EXTERN axis2_status_t AXIS2_CALL
    axis2_msg_ctx_set_find_op(
        axis2_msg_ctx_t * msg_ctx,
        const axutil_env_t * env,
        AXIS2_MSG_CTX_FIND_OP func);

    /**
     * Finds the service to be invoked. This function is used by dispatchers 
     * to locate the service to be invoked.
     * @param msg_ctx message context
     * @param env pointer to environment struct
     * @return pointer to service to be invoked
     */
    AXIS2_EXTERN struct axis2_svc *AXIS2_CALL
    axis2_msg_ctx_find_svc(
        axis2_msg_ctx_t * msg_ctx,
        const axutil_env_t * env);

    /**
     * Finds the operation to be invoked in the given service. This function 
     * is used by dispatchers to locate the operation to be invoked.
     * @param msg_ctx message context
     * @param env pointer to environment struct
     * @param svc pointer to service to whom the operation belongs 
     * @return pointer to the operation to be invoked
     */
    AXIS2_EXTERN struct axis2_op *AXIS2_CALL
    axis2_msg_ctx_find_op(
        axis2_msg_ctx_t * msg_ctx,
        const axutil_env_t * env,
        struct axis2_svc *svc);

    /**
      * Gets the options to be used in invocation.
      * @param msg_ctx message context
      * @param env pointer to environment struct
      * @return options pointer to options struct, message context does not 
      * assume the ownership of the struct
      */
    AXIS2_EXTERN struct axis2_options *AXIS2_CALL
    axis2_msg_ctx_get_options(
        axis2_msg_ctx_t * msg_ctx,
        const axutil_env_t * env);

    /**
     * Gets the bool value indicating the paused status.
     * @param msg_ctx message context
     * @param env pointer to environment struct
     * @return AXIS2_TRUE if invocation is paused, else AXIS2_FALSE
     */
    AXIS2_EXTERN axis2_bool_t AXIS2_CALL
    axis2_msg_ctx_is_paused(
        axis2_msg_ctx_t * msg_ctx,
        const axutil_env_t * env);

    /**
     * Sets the options to be used in invocation.
     * @param msg_ctx message context
     * @param env pointer to environment struct
     * @param options pointer to options struct, message context does not 
     * assume the ownership of the struct
     * @return AXIS2_SUCCESS on success, else AXIS2_FAILURE
     */
    AXIS2_EXTERN axis2_status_t AXIS2_CALL
    axis2_msg_ctx_set_options(
        axis2_msg_ctx_t * msg_ctx,
        const axutil_env_t * env,
        struct axis2_options *options);

    /**
     * Sets the flow to be invoked.
     * @param msg_ctx message context
     * @param env pointer to environment struct
     * @param flow int value indicating the flow
     * @return AXIS2_SUCCESS on success, else AXIS2_FAILURE
     */
    AXIS2_EXTERN axis2_status_t AXIS2_CALL
    axis2_msg_ctx_set_flow(
        axis2_msg_ctx_t * msg_ctx,
        const axutil_env_t * env,
        int flow);

    /**
     * Gets the flow to be invoked.
     * @param msg_ctx message context
     * @param env pointer to environment struct
     * @return int value indicating the flow
     */
    AXIS2_EXTERN int AXIS2_CALL
    axis2_msg_ctx_get_flow(
        const axis2_msg_ctx_t * msg_ctx,
        const axutil_env_t * env);

    /**
     * Sets the list of supported REST HTTP Methods
     * @param msg_ctx message context
     * @param env pointer to environment struct
     * @param supported_rest_http_methods pointer array list containing
     * the list of HTTP Methods supported. Message context does
     * assumes the ownership of the array list. Anything added to this
     * array list will be freed by the msg_ctx
     * @return AXIS2_SUCCESS on success, else AXIS2_FAILURE
     */
    AXIS2_EXTERN axis2_status_t AXIS2_CALL
    axis2_msg_ctx_set_supported_rest_http_methods(
        axis2_msg_ctx_t * msg_ctx,
        const axutil_env_t * env,
        axutil_array_list_t * supported_rest_http_methods);

    /**
     * Gets the list of supported REST HTTP Methods 
     * @param msg_ctx message context
     * @param env pointer to environment struct
     * @return pointer array list containing
     * the list of HTTP Methods supported. Message context does
     * assumes the ownership of the array list
     */
    AXIS2_EXTERN  axutil_array_list_t *AXIS2_CALL
    axis2_msg_ctx_get_supported_rest_http_methods(
        const axis2_msg_ctx_t * msg_ctx,
        const axutil_env_t * env);

    /**
     * Sets the execution chain to be invoked. The execution chain is a 
     * list of phases containing the handlers to be invoked.
     * @param msg_ctx message context
     * @param env pointer to environment struct
     * @param execution_chain pointer array list containing the list of 
     * handlers that constitute the execution chain. Message context does
     * not assume the ownership of the array list
     * @return AXIS2_SUCCESS on success, else AXIS2_FAILURE
     */
    AXIS2_EXTERN axis2_status_t AXIS2_CALL
    axis2_msg_ctx_set_execution_chain(
        axis2_msg_ctx_t * msg_ctx,
        const axutil_env_t * env,
        axutil_array_list_t * execution_chain);

    /**
     * Gets the execution chain to be invoked. The execution chain is a 
     * list of phases containing the handlers to be invoked.
     * @param msg_ctx message context
     * @param env pointer to environment struct
     * @return pointer array list containing the list of handlers that 
     * constitute the execution chain. Message context does not assume 
     * the ownership of the array list
     */
    AXIS2_EXTERN axutil_array_list_t *AXIS2_CALL
    axis2_msg_ctx_get_execution_chain(
        const axis2_msg_ctx_t * msg_ctx,
        const axutil_env_t * env);

    /**
     * Sets current handler index, indicating which handler is currently 
     * being invoked in the execution chain
     * @param msg_ctx message context
     * @param env pointer to environment struct
     * @param index index of currently executed handler
     * @return AXIS2_SUCCESS on success, else AXIS2_FAILURE
     */
    AXIS2_EXTERN axis2_status_t AXIS2_CALL
    axis2_msg_ctx_set_current_handler_index(
        axis2_msg_ctx_t * msg_ctx,
        const axutil_env_t * env,
        const int index);

    /**
     * Gets current handler index, indicating which handler is currently 
     * being invoked in the execution chain    
     * @param msg_ctx message context
     * @param env pointer to environment struct
     * @return index of currently executed handler
     */
    AXIS2_EXTERN int AXIS2_CALL
    axis2_msg_ctx_get_current_handler_index(
        const axis2_msg_ctx_t * msg_ctx,
        const axutil_env_t * env);

    /**
     * Gets paused handler index, indicating at which handler the execution 
     * chain was paused.
     * @param msg_ctx message context
     * @param env pointer to environment struct
     * @return index of handler at which invocation was paused
     */
    AXIS2_EXTERN int AXIS2_CALL
    axis2_msg_ctx_get_paused_handler_index(
        const axis2_msg_ctx_t * msg_ctx,
        const axutil_env_t * env);

    /**
     * Sets index of the current phase being invoked.    
     * @param msg_ctx message context
     * @param env pointer to environment struct
     * @param index index of current phase
     * @return AXIS2_SUCCESS on success, else AXIS2_FAILURE
     */
    AXIS2_EXTERN axis2_status_t AXIS2_CALL
    axis2_msg_ctx_set_current_phase_index(
        axis2_msg_ctx_t * msg_ctx,
        const axutil_env_t * env,
        const int index);

    /**
     * Gets index of the current phase being invoked.    
     * @param msg_ctx message context
     * @param env pointer to environment struct
     * @return index of current phase
     */
    AXIS2_EXTERN int AXIS2_CALL
    axis2_msg_ctx_get_current_phase_index(
        const axis2_msg_ctx_t * msg_ctx,
        const axutil_env_t * env);

    /**
     * Gets the phase at which the invocation was paused.
     * @param msg_ctx message context
     * @param env pointer to environment struct
     * @return index of paused phase
     */
    AXIS2_EXTERN int AXIS2_CALL
    axis2_msg_ctx_get_paused_phase_index(
        const axis2_msg_ctx_t * msg_ctx,
        const axutil_env_t * env);

    /**
     * Gets character set encoding to be used.
     * @param msg_ctx message context
     * @param env pointer to environment struct
     * @return AXIS2_SUCCESS on success, else AXIS2_FAILURE
     */
    AXIS2_EXTERN axutil_string_t *AXIS2_CALL
    axis2_msg_ctx_get_charset_encoding(
        axis2_msg_ctx_t * msg_ctx,
        const axutil_env_t * env);

    /**
     * Sets character set encoding to be used.
     * @param msg_ctx message context
     * @param env pointer to environment struct
     * @param str pointer to string struct representing encoding
     * @return AXIS2_SUCCESS on success, else AXIS2_FAILURE
     */
    AXIS2_EXTERN axis2_status_t AXIS2_CALL
    axis2_msg_ctx_set_charset_encoding(
        axis2_msg_ctx_t * msg_ctx,
        const axutil_env_t * env,
        axutil_string_t * str);

    /**
     * Gets the integer value indicating http status_code.
     * @param msg_ctx message context
     * @param env pointer to environment struct
     * @return status value
     */
    AXIS2_EXTERN int AXIS2_CALL
    axis2_msg_ctx_get_status_code(
        axis2_msg_ctx_t * msg_ctx,
        const axutil_env_t * env);

    /**
     * Sets the int value indicating http status code
     * @param msg_ctx message context
     * @param env pointer to environment struct
     * @param status_code of the http response
     * @return AXIS2_SUCCESS on success, else AXIS2_FAILURE
     */
    AXIS2_EXTERN axis2_status_t AXIS2_CALL
    axis2_msg_ctx_set_status_code(
        axis2_msg_ctx_t * msg_ctx,
        const axutil_env_t * env,
        const int status_code);

    /**
     * Gets the Transport Out Stream
     * @param msg_ctx message context
     * @param env pointer to environment struct
     * @return reference to Transport Out Stream
     */
    AXIS2_EXTERN axutil_stream_t *AXIS2_CALL
    axis2_msg_ctx_get_transport_out_stream(
        axis2_msg_ctx_t * msg_ctx,
        const axutil_env_t * env);

    /**
     * Sets the Transport Out Stream
     * @param msg_ctx message context
     * @param env pointer to environment struct
     * @param stream reference to Transport Out Stream
     * @return AXIS2_SUCCESS on success, else AXIS2_FAILURE
     */
    AXIS2_EXTERN axis2_status_t AXIS2_CALL
    axis2_msg_ctx_set_transport_out_stream(
        axis2_msg_ctx_t * msg_ctx,
        const axutil_env_t * env,
        axutil_stream_t * stream);

    /**
     * Resets Transport Out Stream
     * @param msg_ctx message context
     * @param env pointer to environment struct
     * @return AXIS2_SUCCESS on success, else AXIS2_FAILURE
     */
    AXIS2_EXTERN axis2_status_t AXIS2_CALL
    axis2_msg_ctx_reset_transport_out_stream(
        axis2_msg_ctx_t * msg_ctx,
        const axutil_env_t * env);

    /**
     * Gets the HTTP Out Transport Info associated
     * @param msg_ctx message context
     * @param env pointer to environment struct
     * @return reference to HTTP Out Transport Info associated 
     */
    AXIS2_EXTERN struct axis2_out_transport_info *AXIS2_CALL
    axis2_msg_ctx_get_out_transport_info(
        axis2_msg_ctx_t * msg_ctx,
        const axutil_env_t * env);

    /**
     * Sets the HTTP Out Transport Info associated
     * @param msg_ctx message context
     * @param env pointer to environment struct
     * @param out_transport_info reference to HTTP Out
     * Transport Info associated 
     * @return AXIS2_SUCCESS on success, else AXIS2_FAILURE
     */
    AXIS2_EXTERN axis2_status_t AXIS2_CALL
    axis2_msg_ctx_set_out_transport_info(
        axis2_msg_ctx_t * msg_ctx,
        const axutil_env_t * env,
        struct axis2_out_transport_info *out_transport_info);

    /**
     * Resets the HTTP Out Transport Info associated
     * @param msg_ctx message context
     * @param env pointer to environment struct
     * @return AXIS2_SUCCESS on success, else AXIS2_FAILURE
     */
    AXIS2_EXTERN axis2_status_t AXIS2_CALL
    axis2_msg_ctx_reset_out_transport_info(
        axis2_msg_ctx_t * msg_ctx,
        const axutil_env_t * env);

    /**
     * Retrieves Transport Headers.
     * @param msg_ctx message context
     * @param env pointer to environment struct
     * @return Transport Headers associated.
     */
    AXIS2_EXTERN axutil_hash_t *AXIS2_CALL
    axis2_msg_ctx_get_transport_headers(
        axis2_msg_ctx_t * msg_ctx,
        const axutil_env_t * env);

    /**
     * Retrieves Transport Headers, and removes them
     * from the message context
     * @param msg_ctx message context
     * @param env pointer to environment struct
     * @return Transport Headers associated.
     */
    AXIS2_EXTERN axutil_hash_t *AXIS2_CALL
    axis2_msg_ctx_extract_transport_headers(
        axis2_msg_ctx_t * msg_ctx,
        const axutil_env_t * env);

    /**
     * Sets the Transport Headers
     * @param msg_ctx message context
     * @param env pointer to environment struct
     * @param transport_headers a Hash containing the
     * Transport Headers
     * @return AXIS2_SUCCESS on success, else AXIS2_FAILURE
     */
    AXIS2_EXTERN axis2_status_t AXIS2_CALL
    axis2_msg_ctx_set_transport_headers(
        axis2_msg_ctx_t * msg_ctx,
        const axutil_env_t * env,
        axutil_hash_t * transport_headers);

    /**
     * Retrieves HTTP Accept-Charset records.
     * @param msg_ctx message context
     * @param env pointer to environment struct
     * @return HTTP Accept-Charset records associated.
     */
    AXIS2_EXTERN axutil_array_list_t *AXIS2_CALL
    axis2_msg_ctx_get_http_accept_charset_record_list(
        axis2_msg_ctx_t * msg_ctx,
        const axutil_env_t * env);

    /**
     * Retrieves HTTP Accept-Charset records, and removes them
     * from the message context
     * @param msg_ctx message context
     * @param env pointer to environment struct
     * @return HTTP Accept-Charset records associated.
     */
    AXIS2_EXTERN axutil_array_list_t *AXIS2_CALL
    axis2_msg_ctx_extract_http_accept_charset_record_list(
        axis2_msg_ctx_t * msg_ctx,
        const axutil_env_t * env);

    /**
     * Sets the HTTP Accept-Charset records
     * @param msg_ctx message context
     * @param env pointer to environment struct
     * @param accept_charset_record_list an Array List containing the
     * HTTP Accept-Charset records
     * @return AXIS2_SUCCESS on success, else AXIS2_FAILURE
     */
    AXIS2_EXTERN axis2_status_t AXIS2_CALL
    axis2_msg_ctx_set_http_accept_charset_record_list(
        axis2_msg_ctx_t * msg_ctx,
        const axutil_env_t * env,
        axutil_array_list_t * accept_charset_record_list);

    /**
     * Retrieves HTTP Accept-Language records.
     * @param msg_ctx message context
     * @param env pointer to environment struct
     * @return HTTP Accept-Language records associated.
     */
    AXIS2_EXTERN axutil_array_list_t *AXIS2_CALL
    axis2_msg_ctx_get_http_accept_language_record_list(
        axis2_msg_ctx_t * msg_ctx,
        const axutil_env_t * env);

    /**
     * Retrieves HTTP Accept-Language records, and removes them
     * from the message context
     * @param msg_ctx message context
     * @param env pointer to environment struct
     * @return HTTP Accept-Language records associated.
     */
    AXIS2_EXTERN axutil_array_list_t *AXIS2_CALL
    axis2_msg_ctx_extract_http_accept_language_record_list(
        axis2_msg_ctx_t * msg_ctx,
        const axutil_env_t * env);

    /**
     * Sets the HTTP Accept-Language records
     * @param msg_ctx message context
     * @param env pointer to environment struct
     * @param accept_language_record_list an Array List containing the
     * HTTP Accept-Language records
     * @return AXIS2_SUCCESS on success, else AXIS2_FAILURE
     */
    AXIS2_EXTERN axis2_status_t AXIS2_CALL
    axis2_msg_ctx_set_http_accept_language_record_list(
        axis2_msg_ctx_t * msg_ctx,
        const axutil_env_t * env,
        axutil_array_list_t * accept_language_record_list);

    /**
     * Gets the Content Language used
     * @param msg_ctx message context
     * @param env pointer to environment struct
     * @return Content Language string
     */
    AXIS2_EXTERN axis2_char_t *AXIS2_CALL
    axis2_msg_ctx_get_content_language(
        axis2_msg_ctx_t * msg_ctx,
        const axutil_env_t * env);

    /**
     * Sets the Content Language used
     * @param msg_ctx message context
     * @param env pointer to environment struct
     * @param str Content Language string
     * @return AXIS2_SUCCESS on success, else AXIS2_FAILURE
     */
    AXIS2_EXTERN axis2_status_t AXIS2_CALL
    axis2_msg_ctx_set_content_language(
        axis2_msg_ctx_t * msg_ctx,
        const axutil_env_t * env,
        axis2_char_t * str);

    /**
     * Retrieves HTTP Accept records.
     * @param msg_ctx message context
     * @param env pointer to environment struct
     * @return HTTP Accept records associated.
     */
    AXIS2_EXTERN axutil_array_list_t *AXIS2_CALL
    axis2_msg_ctx_get_http_accept_record_list(
        axis2_msg_ctx_t * msg_ctx,
        const axutil_env_t * env);

    /**
     * Retrieves HTTP Accept records, and removes them
     * from the message context
     * @param msg_ctx message context
     * @param env pointer to environment struct
     * @return HTTP Accept records associated.
     */
    AXIS2_EXTERN axutil_array_list_t *AXIS2_CALL
    axis2_msg_ctx_extract_http_accept_record_list(
        axis2_msg_ctx_t * msg_ctx,
        const axutil_env_t * env);

    /**
     * Sets the HTTP Accept records
     * @param msg_ctx message context
     * @param env pointer to environment struct
     * @param accept_record_list an Array List containing the
     * HTTP Accept records
     * @return AXIS2_SUCCESS on success, else AXIS2_FAILURE
     */
    AXIS2_EXTERN axis2_status_t AXIS2_CALL
    axis2_msg_ctx_set_http_accept_record_list(
        axis2_msg_ctx_t * msg_ctx,
        const axutil_env_t * env,
        axutil_array_list_t * accept_record_list);

    /**
     * Gets the transfer encoding used
     * @param msg_ctx message context
     * @param env pointer to environment struct
     * @return Transfer encoding string
     */
    AXIS2_EXTERN axis2_char_t *AXIS2_CALL
    axis2_msg_ctx_get_transfer_encoding(
        axis2_msg_ctx_t * msg_ctx,
        const axutil_env_t * env);

    /**
     * Sets the transfer encoding used
     * @param msg_ctx message context
     * @param env pointer to environment struct
     * @param str Transfer encoding string
     * @return AXIS2_SUCCESS on success, else AXIS2_FAILURE
     */
    AXIS2_EXTERN axis2_status_t AXIS2_CALL
    axis2_msg_ctx_set_transfer_encoding(
        axis2_msg_ctx_t * msg_ctx,
        const axutil_env_t * env,
        axis2_char_t * str);

    /**
     * Gets the Transport URL
     * @param msg_ctx message context
     * @param env pointer to environment struct
     * @return Transport URL string
     */
    AXIS2_EXTERN axis2_char_t *AXIS2_CALL
    axis2_msg_ctx_get_transport_url(
        axis2_msg_ctx_t * msg_ctx,
        const axutil_env_t * env);

    /**
     * Sets the Transport URL
     * @param msg_ctx message context
     * @param env pointer to environment struct
     * @param str Transport URL string
     * @return AXIS2_SUCCESS on success, else AXIS2_FAILURE
     */
    AXIS2_EXTERN axis2_status_t AXIS2_CALL
    axis2_msg_ctx_set_transport_url(
        axis2_msg_ctx_t * msg_ctx,
        const axutil_env_t * env,
        axis2_char_t * str);

    /**
     * Gets whether there was no content in the response.
     * This will cater for a situation where the invoke
     * method in a service returns NULL when no fault has
     * occured.
     * @param msg_ctx message context
     * @param env pointer to environment struct
     * @return returns AXIS2_TRUE if there was no content
     * occured or AXIS2_FALSE otherwise
     */
    AXIS2_EXTERN axis2_bool_t AXIS2_CALL
    axis2_msg_ctx_get_no_content(
        axis2_msg_ctx_t * msg_ctx,
        const axutil_env_t * env);
    
    /**
     * Sets that there was no content in the response.
     * @param msg_ctx message context
     * @param env pointer to environment struct
     * @param no_content expects AXIS2_TRUE if there was no
     * content in the response or AXIS2_FALSE otherwise
     * @return AXIS2_SUCCESS on success, else AXIS2_FAILURE
     */
    AXIS2_EXTERN axis2_status_t AXIS2_CALL
    axis2_msg_ctx_set_no_content(
        axis2_msg_ctx_t * msg_ctx,
        const axutil_env_t * env,
        const axis2_bool_t no_content);

    /**
     * Gets whether an authentication failure occured
     * @param msg_ctx message context
     * @param env pointer to environment struct
     * @return returns AXIS2_TRUE if an authentication failure
     * occured or AXIS2_FALSE if not
     */
    AXIS2_EXTERN axis2_bool_t AXIS2_CALL
    axis2_msg_ctx_get_auth_failed(
        axis2_msg_ctx_t * msg_ctx,
        const axutil_env_t * env);

    /**
     * Sets whether an authentication failure occured
     * @param msg_ctx message context
     * @param env pointer to environment struct
     * @param status expects AXIS2_TRUE if an authentication failure
     * occured or AXIS2_FALSE if not
     * @return AXIS2_SUCCESS on success, else AXIS2_FAILURE
     */
    AXIS2_EXTERN axis2_status_t AXIS2_CALL
    axis2_msg_ctx_set_auth_failed(
        axis2_msg_ctx_t * msg_ctx,
        const axutil_env_t * env,
        const axis2_bool_t status);

    /**
     * Gets whether HTTP Authentication is required or
     * whether Proxy Authentication is required
     * @param msg_ctx message context
     * @param env pointer to environment struct
     * @return returns AXIS2_TRUE for HTTP Authentication
     * and AXIS2_FALSE for Proxy Authentication
     */
    AXIS2_EXTERN axis2_bool_t AXIS2_CALL
    axis2_msg_ctx_get_required_auth_is_http(
        axis2_msg_ctx_t * msg_ctx,
        const axutil_env_t * env);

    /**
     * Sets whether HTTP Authentication is required or
     * whether Proxy Authentication is required
     * @param msg_ctx message context
     * @param env pointer to environment struct
     * @param is_http use AXIS2_TRUE for HTTP Authentication
     * and AXIS2_FALSE for Proxy Authentication
     * @return AXIS2_SUCCESS on success, else AXIS2_FAILURE
     */
    AXIS2_EXTERN axis2_status_t AXIS2_CALL
    axis2_msg_ctx_set_required_auth_is_http(
        axis2_msg_ctx_t * msg_ctx,
        const axutil_env_t * env,
        const axis2_bool_t is_http);

    /**
     * Sets the authentication type
     * @param msg_ctx message context
     * @param env pointer to environment struct
     * @param auth_type Authentication type string
     * @return AXIS2_SUCCESS on success, else AXIS2_FAILURE
     */
    AXIS2_EXTERN axis2_status_t AXIS2_CALL
    axis2_msg_ctx_set_auth_type(
        axis2_msg_ctx_t * msg_ctx,
        const axutil_env_t * env,
        const axis2_char_t * auth_type);

    /**
     * Gets the authentication type
     * @param msg_ctx message context
     * @param env pointer to environment struct
     * @return Authentication type string
     */
    AXIS2_EXTERN axis2_char_t *AXIS2_CALL
    axis2_msg_ctx_get_auth_type(
        axis2_msg_ctx_t * msg_ctx,
        const axutil_env_t * env);

    /**
     * Gets the Output Header list
     * @param msg_ctx message context
     * @param env pointer to environment struct
     * @return Output Header list
     */
    AXIS2_EXTERN axutil_array_list_t *AXIS2_CALL
    axis2_msg_ctx_get_http_output_headers(
        axis2_msg_ctx_t * msg_ctx,
        const axutil_env_t * env);

    /**
     * Retrieves the Output Headers, and removes them
     * from the message context
     * @param msg_ctx message context
     * @param env pointer to environment struct
     * @return Output Header list
     */
    AXIS2_EXTERN axutil_array_list_t *AXIS2_CALL
    axis2_msg_ctx_extract_http_output_headers(
        axis2_msg_ctx_t * msg_ctx,
        const axutil_env_t * env);

    /**
     * Sets the Output Header list
     * @param msg_ctx message context
     * @param env pointer to environment struct
     * @param output_headers Output Header list
     * @return AXIS2_SUCCESS on success, else AXIS2_FAILURE
     */
    AXIS2_EXTERN axis2_status_t AXIS2_CALL
    axis2_msg_ctx_set_http_output_headers(
        axis2_msg_ctx_t * msg_ctx,
        const axutil_env_t * env,
        axutil_array_list_t * output_headers);



    AXIS2_EXTERN axutil_array_list_t *AXIS2_CALL
    axis2_msg_ctx_get_mime_parts(
        axis2_msg_ctx_t * msg_ctx,
        const axutil_env_t * env);


    AXIS2_EXTERN void AXIS2_CALL
    axis2_msg_ctx_set_mime_parts(
        axis2_msg_ctx_t * msg_ctx,
        const axutil_env_t * env,
        axutil_array_list_t *mime_parts);

    /**
     * Incrementing the msg_ctx ref count. This is necessary when 
     * prevent freeing msg_ctx through op_client when it is in use 
     * as in sandesha2.
     * @param msg_ctx pointer to message context  
     * @param env pointer to environment struct
     * @return AXIS2_TRUE if still in use, else AXIS2_FALSE 
     */
    AXIS2_EXTERN axis2_status_t AXIS2_CALL
    axis2_msg_ctx_increment_ref(
        axis2_msg_ctx_t * msg_ctx,
        const axutil_env_t * env);


#ifdef AXIS2_JSON_ENABLED
    AXIS2_EXTERN axis2_bool_t AXIS2_CALL
    axis2_msg_ctx_get_doing_json(
        const axis2_msg_ctx_t *msg_ctx,
        const axutil_env_t *env);

    AXIS2_EXTERN axis2_status_t AXIS2_CALL
    axis2_msg_ctx_set_doing_json(axis2_msg_ctx_t *msg_ctx,
        const axutil_env_t *env,
        const axis2_bool_t doing_json);
#endif

/** @} */

#ifdef __cplusplus
}
#endif

#endif                          /* AXIS2_MSG_CTX_H */


<|start_filename|>xdocs/api/html/modules.html<|end_filename|>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html><head><meta http-equiv="Content-Type" content="text/html;charset=UTF-8">
<title>Axis2/C: Module Index</title>
<link href="doxygen.css" rel="stylesheet" type="text/css">
<link href="tabs.css" rel="stylesheet" type="text/css">
</head><body>
<!-- Generated by Doxygen 1.5.3 -->
<div class="tabs">
  <ul>
    <li><a href="index.html"><span>Main&nbsp;Page</span></a></li>
    <li class="current"><a href="modules.html"><span>Modules</span></a></li>
    <li><a href="annotated.html"><span>Classes</span></a></li>
    <li><a href="files.html"><span>Files</span></a></li>
    <li><a href="dirs.html"><span>Directories</span></a></li>
    <li><a href="pages.html"><span>Related&nbsp;Pages</span></a></li>
    <li><a href="examples.html"><span>Examples</span></a></li>
    <li>
      <form action="search.php" method="get">
        <table cellspacing="0" cellpadding="0" border="0">
          <tr>
            <td><label>&nbsp;<u>S</u>earch&nbsp;for&nbsp;</label></td>
            <td><input type="text" name="query" value="" size="20" accesskey="s"/></td>
          </tr>
        </table>
      </form>
    </li>
  </ul>
</div>
<h1>Axis2/C Modules</h1>Here is a list of all modules:<ul>
<li><a class="el" href="group__axiom__data__handler.html">Flow</a>
<li><a class="el" href="group__axiom__mime__parser.html">Flow</a>
<li><a class="el" href="group__axiom.html">AXIOM project</a>
<ul>
<li><a class="el" href="group__caching__callback.html">Caching_callback</a>
<li><a class="el" href="group__mtom__sending__callback.html">Mtom_sending_callback</a>
</ul>
<li><a class="el" href="group__axiom__om.html">AXIOM</a>
<ul>
<li><a class="el" href="group__axiom__attribute.html">attribute</a>
<li><a class="el" href="group__axiom__child__element__iterator.html">child element iterator</a>
<li><a class="el" href="group__axiom__children__iterator.html">children iterator</a>
<li><a class="el" href="group__axiom__children__qname__iterator.html">children qname iterator</a>
<li><a class="el" href="group__axiom__children__with__specific__attribute__iterator.html">children with specific attribute iterator</a>
<li><a class="el" href="group__axiom__comment.html">comment</a>
<li><a class="el" href="group__axiom__data__source.html">data_source</a>
<li><a class="el" href="group__axiom__doctype.html">doctype</a>
<li><a class="el" href="group__axiom__document.html">document</a>
<li><a class="el" href="group__axiom__element.html">element</a>
<li><a class="el" href="group__axiom__namespace.html">namespace</a>
<li><a class="el" href="group__axiom__navigator.html">navigator</a>
<li><a class="el" href="group__axiom__node.html">node</a>
<li><a class="el" href="group__axiom__output.html">output</a>
<li><a class="el" href="group__axiom__processing__instruction.html">pocessing instruction</a>
<li><a class="el" href="group__axiom__stax__builder.html">stax builder</a>
<li><a class="el" href="group__axiom__text.html">text</a>
</ul>
<li><a class="el" href="group__axiom__soap.html">SOAP</a>
<ul>
<li><a class="el" href="group__axiom__soap__body.html">soap body</a>
<li><a class="el" href="group__axiom__soap__builder.html">soap builder</a>
<li><a class="el" href="group__axiom__soap__envelope.html">soap envelope</a>
<li><a class="el" href="group__axiom__soap__fault.html">soap fault</a>
<li><a class="el" href="group__axiom__soap__fault__code.html">soap fault code</a>
<li><a class="el" href="group__axiom__soap__fault__detail.html">soap fault detail</a>
<li><a class="el" href="group__axiom__soap__fault__node.html">soap fault node</a>
<li><a class="el" href="group__axiom__soap__fault__reason.html">soap fault reason</a>
<li><a class="el" href="group__axiom__soap__fault__role.html">soap fault role</a>
<li><a class="el" href="group__axiom__soap__fault__sub__code.html">soap fault sub code</a>
<li><a class="el" href="group__axiom__soap__fault__text.html">soap fault text</a>
<li><a class="el" href="group__axiom__soap__fault__value.html">soap fault value</a>
<li><a class="el" href="group__axiom__soap__header.html">soap header</a>
<li><a class="el" href="group__axiom__soap__header__block.html">soap header block</a>
</ul>
<li><a class="el" href="group__axiom__parser.html">parser</a>
<ul>
<li><a class="el" href="group__axiom__xml__reader.html">XML reader</a>
<li><a class="el" href="group__axiom__xml__writer.html">XML writer</a>
</ul>
<li><a class="el" href="group__axiom__xpath__api.html">api</a>
<li><a class="el" href="group__axis2__addr.html">WS-Addressing</a>
<ul>
<li><a class="el" href="group__axis2__addr__consts.html">WS-Addressing related constants</a>
<li><a class="el" href="group__axis2__any__content__type.html">any content type</a>
<li><a class="el" href="group__axis2__endpoint__ref.html">endpoint reference</a>
<li><a class="el" href="group__axis2__msg__info__headers.html">message information headers</a>
<li><a class="el" href="group__axis2__relates__to.html">relates to</a>
<li><a class="el" href="group__axis2__svc__name.html">service name</a>
</ul>
<li><a class="el" href="group__axis2__mod__addr.html">WS-Addressing Module</a>
<ul>
<li><a class="el" href="group__axis2__addr__mod.html">addressing module interface</a>
</ul>
<li><a class="el" href="group__axis2__engine.html">engine</a>
<ul>
<li><a class="el" href="group__axis2__config.html">configuration</a>
<li><a class="el" href="group__axis2__disp.html">dispatcher</a>
<li><a class="el" href="group__axis2__phase.html">phases</a>
<li><a class="el" href="group__axis2__phase__meta.html">phase meta data</a>
</ul>
<li><a class="el" href="group__axis2__conf__init.html">configuration initilizing functions</a>
<li><a class="el" href="group__axis2.html">Axis2/C project</a>
<li><a class="el" href="group__axis2__core__utils.html">Core Utils</a>
<ul>
<li><a class="el" href="group__axis2__core__dll__desc.html">Core DLL description</a>
</ul>
<li><a class="el" href="group__axis2__context.html">Context Hierarchy</a>
<ul>
<li><a class="el" href="group__axis2__conf__ctx.html">configuration context</a>
<li><a class="el" href="group__axis2__ctx.html">context</a>
<li><a class="el" href="group__axis2__msg__ctx.html">message context</a>
<li><a class="el" href="group__axis2__op__ctx.html">operation context</a>
<li><a class="el" href="group__axis2__svc__ctx.html">service context</a>
<li><a class="el" href="group__axis2__svc__grp__ctx.html">service group context</a>
</ul>
<li><a class="el" href="group__axis2__desc.html">description</a>
<ul>
<li><a class="el" href="group__axis2__description.html">description</a>
<li><a class="el" href="group__axis2__desc__constants.html">description related constants</a>
<li><a class="el" href="group__axis2__flow.html">flow</a>
<li><a class="el" href="group__axis2__flow__container.html">flow container</a>
<li><a class="el" href="group__axis2__handler__desc.html">handler description</a>
<li><a class="el" href="group__axis2__module.html">module</a>
<li><a class="el" href="group__axis2__module__desc.html">module description</a>
<li><a class="el" href="group__axis2__msg.html">message</a>
<li><a class="el" href="group__axis2__op.html">operation</a>
<li><a class="el" href="group__axis2__phase__rule.html">phase rule</a>
<li><a class="el" href="group__axis2__policy__include.html">policy include</a>
<li><a class="el" href="group__axis2__svc.html">service</a>
<li><a class="el" href="group__axis2__svc__grp.html">service group</a>
<li><a class="el" href="group__axis2__transport__in__desc.html">transport in description</a>
<li><a class="el" href="group__axis2__transport__out__desc.html">transport out description</a>
</ul>
<li><a class="el" href="group__axis2__handler.html">handler</a>
<li><a class="el" href="group__axis2__listener__manager.html">listener manager</a>
<li><a class="el" href="group__axis2__receivers.html">receivers</a>
<ul>
<li><a class="el" href="group__axis2__msg__recv.html">message receiver</a>
<li><a class="el" href="group__axis2__raw__xml__in__out__msg__recv.html">raw XML in-out message receiver</a>
</ul>
<li><a class="el" href="group__axis2__client__api.html">client API</a>
<ul>
<li><a class="el" href="group__axis2__async__result.html">async result</a>
<li><a class="el" href="group__axis2__callback.html">callback</a>
<li><a class="el" href="group__axis2__callback__recv.html">callback message receiver. This can be considered as a</a>
<li><a class="el" href="group__axis2__op__client.html">operation client</a>
<li><a class="el" href="group__axis2__options.html">options</a>
<li><a class="el" href="group__axis2__stub.html">stub</a>
<li><a class="el" href="group__axis2__svc__client.html">service client</a>
</ul>
<li><a class="el" href="group__axis2__out__transport__info.html">out transport info</a>
<li><a class="el" href="group__axis2__phase__resolver.html">phase resolver</a>
<ul>
<li><a class="el" href="group__axis2__phase__holder.html">phase holder</a>
</ul>
<li><a class="el" href="group__axis2__phases__info.html">phases information</a>
<li><a class="el" href="group__axis2__rm__assertion.html">Axis2_rm_assertion</a>
<li><a class="el" href="group__axis2__rm__assertion__builder.html">Axis2_rm_assertion_builder</a>
<li><a class="el" href="group__axis2__soc__api.html">service API</a>
<li><a class="el" href="group__axis2__svc__skeleton.html">service skeleton</a>
<li><a class="el" href="group__axis2__svr__callback.html">server callback</a>
<li><a class="el" href="group__axis2__transport.html">transport</a>
<ul>
<li><a class="el" href="group__axis2__core__trans__http.html">http transport</a>
<ul>
<li><a class="el" href="group__axis2__http__accept__record.html">HTTP Accept record</a>
<li><a class="el" href="group__axis2__http__client.html">http client</a>
<li><a class="el" href="group__axis2__http__header.html">http header</a>
<li><a class="el" href="group__axis2__http__out__transport__info.html">http out transport info</a>
<li><a class="el" href="group__axis2__http__request__line.html">http request line</a>
<li><a class="el" href="group__axis2__http__response__writer.html">http response writer</a>
<li><a class="el" href="group__axis2__http__server.html">http server</a>
<li><a class="el" href="group__axis2__http__simple__request.html">http simple request</a>
<li><a class="el" href="group__axis2__http__simple__response.html">http simple response</a>
<li><a class="el" href="group__axis2__http__status__line.html">http status line</a>
<li><a class="el" href="group__axis2__http__svr__thread.html">http server thread</a>
<li><a class="el" href="group__axis2__core__transport__http.html">core http transport</a>
<li><a class="el" href="group__axis2__http__transport__sender.html">http transport sender</a>
<li><a class="el" href="group__axis2__http__worker.html">http worker</a>
<li><a class="el" href="group__axutil__http__chunked__stream.html">http chunked stream</a>
</ul>
<li><a class="el" href="group__axis2__transport__receiver.html">transport receiver</a>
<li><a class="el" href="group__axis2__transport__sender.html">transport sender</a>
</ul>
<li><a class="el" href="group__axis2__util.html">utilities</a>
<ul>
<li><a class="el" href="group__axis2__mutex.html">thread mutex routines</a>
<li><a class="el" href="group__axutil__allocator.html">allocator</a>
<li><a class="el" href="group__axutil__array__list.html">array list</a>
<li><a class="el" href="group__axutil__base64__binary.html">encoding holder</a>
<li><a class="el" href="group__axutil__class__loader.html">class loader</a>
<li><a class="el" href="group__axutil__date__time.html">Axutil_date_time</a>
<li><a class="el" href="group__axutil__uuid__gen.html">UUID generator</a>
<li><a class="el" href="group__axutil__digest__calc.html">digest_calc</a>
<li><a class="el" href="group__axutil__dir__handler.html">dir handler</a>
<li><a class="el" href="group__axutil__dll__desc.html">DLL description</a>
<li><a class="el" href="group__axutil__duration.html">Axutil_duration</a>
<li><a class="el" href="group__axutil__env.html">environment</a>
<li><a class="el" href="group__axutil__error.html">error</a>
<li><a class="el" href="group__axutil__file.html">file</a>
<li><a class="el" href="group__axutil__file__handler.html">file handler</a>
<li><a class="el" href="group__axutil__generic__obj.html">generic object</a>
<li><a class="el" href="group__axutil__hash.html">hash</a>
<li><a class="el" href="group__axutil__linked__list.html">linked list</a>
<li><a class="el" href="group__axutil__log.html">log</a>
<li><a class="el" href="group__axutil__md5.html">md5</a>
<li><a class="el" href="group__axutil__network__handler.html">network handler</a>
<li><a class="el" href="group__axutil__param.html">parameter</a>
<li><a class="el" href="group__axutil__properties.html">properties</a>
<li><a class="el" href="group__axutil__property.html">property</a>
<li><a class="el" href="group__axutil__qname.html">qname</a>
<li><a class="el" href="group__axutil__rand.html">rand</a>
<li><a class="el" href="group__axis2__util__stack.html">stack</a>
<li><a class="el" href="group__axutil__stream.html">stream</a>
<li><a class="el" href="group__axutil__string.html">string</a>
<li><a class="el" href="group__axutil__string__utils.html">string_utils</a>
<li><a class="el" href="group__axutil__thread.html">thread</a>
<li><a class="el" href="group__axutil__thread__pool.html">thread pool</a>
<li><a class="el" href="group__axutil__types.html">type convertors</a>
<li><a class="el" href="group__axutil__uri.html">URI</a>
<li><a class="el" href="group__axutil__utils.html">utils</a>
</ul>
<li><a class="el" href="group__axutil__param__container.html">Parameter Container</a>
<li><a class="el" href="group__neethi__assertion__builder.html">Neethi_assertion_builder</a>
<li><a class="el" href="group__rp__algoruthmsuite.html">Rp_algoruthmsuite</a>
<li><a class="el" href="group__rp__algorithmsuite__builder.html">Rp_algorithmsuite_builder</a>
<li><a class="el" href="group__rp__asymmetric__binding.html">Rp_asymmetric_binding</a>
<li><a class="el" href="group__rp__asymmetric__binding__builder.html">Rp_asymmetric_binding_builder</a>
<li><a class="el" href="group__rp__binding__commons.html">Rp_binding_commons</a>
<li><a class="el" href="group__rp__bootstrap__policy__builder.html">Rp_bootstrap_policy_builder</a>
<li><a class="el" href="group__rp__defines.html">Rp_defines</a>
<li><a class="el" href="group__rp__element.html">Rp_element</a>
<li><a class="el" href="group__rp__encryption__token__builder.html">Rp_encryption_token_builder</a>
<li><a class="el" href="group__rp__header.html">Rp_header</a>
<li><a class="el" href="group__rp__https__token.html">Rp_https_token</a>
<li><a class="el" href="group__rp__https__token__builder.html">Rp_https_token_builder</a>
<li><a class="el" href="group__rp__initiator__token__builder.html">Rp_initiator_token_builder</a>
<li><a class="el" href="group__trust10.html">Trust10</a>
<li><a class="el" href="group__rp__layout.html">Rp_layout</a>
<li><a class="el" href="group__rp__layout__builder.html">Rp_layout_builder</a>
<li><a class="el" href="group__rp__policy__creator.html">Rp_policy_creator</a>
<li><a class="el" href="group__rp__property.html">Rp_property</a>
<li><a class="el" href="group__rp__protection__token__builder.html">Rp_protection_token_builder</a>
<li><a class="el" href="group__rp__rampart__config.html">Rp_rampart_config</a>
<li><a class="el" href="group__rp__rampart__config__builder.html">Rp_rampart_config_builder</a>
<li><a class="el" href="group__rp__recipient__token__builder.html">Rp_recipient_token_builder</a>
<li><a class="el" href="group__rp__saml__token__builder.html">Rp_saml_token_builder</a>
<li><a class="el" href="group__rp__secpolicy.html">Rp_secpolicy</a>
<li><a class="el" href="group__rp__secpolicy__builder.html">Rp_secpolicy_builder</a>
<li><a class="el" href="group__rp__security__context__token.html">Rp_security_context_token</a>
<li><a class="el" href="group__rp__security__context__token__builder.html">Rp_security_context_token_builder</a>
<li><a class="el" href="group__rp__signature__token__builder.html">Rp_signature_token_builder</a>
<li><a class="el" href="group__rp__signed__encrypted__elements.html">Rp_signed_encrypted_elements</a>
<li><a class="el" href="group__rp__signed__encrypted__items.html">Rp_signed_encrypted_items</a>
<li><a class="el" href="group__rp__signed__encrypted__parts.html">Rp_signed_encrypted_parts</a>
<li><a class="el" href="group__rp__signed__encrypted__parts__builder.html">Rp_signed_encrypted_parts_builder</a>
<li><a class="el" href="group__rp__supporting__tokens.html">Rp_supporting_tokens</a>
<li><a class="el" href="group__rp__supporting__tokens__builder.html">Rp_supporting_tokens_builder</a>
<li><a class="el" href="group__rp__assymmetric__symmetric__binding__commons.html">Rp_assymmetric_symmetric_binding_commons</a>
<li><a class="el" href="group__rp__symmetric__binding.html">Rp_symmetric_binding</a>
<li><a class="el" href="group__rp__symmetric__binding__builder.html">Rp_symmetric_binding_builder</a>
<li><a class="el" href="group__rp__token.html">Rp_token</a>
<li><a class="el" href="group__rp__token__identifier.html">Rp_token_identifier</a>
<li><a class="el" href="group__rp__transport__binding.html">Rp_transport_binding</a>
<li><a class="el" href="group__rp__transport__binding__builder.html">Rp_transport_binding_builder</a>
<li><a class="el" href="group__rp__transport__token__builder.html">Rp_transport_token_builder</a>
<li><a class="el" href="group__rp__trust10__builder.html">Rp_trust10_builder</a>
<li><a class="el" href="group__rp__username__token.html">Rp_username_token</a>
<li><a class="el" href="group__rp__username__token__builder.html">Rp_username_token_builder</a>
<li><a class="el" href="group__wss10.html">Wss10</a>
<li><a class="el" href="group__rp__wss10__builder.html">Rp_wss10_builder</a>
<li><a class="el" href="group__wss11.html">Wss11</a>
<li><a class="el" href="group__rp__wss11__builder.html">Rp_wss11_builder</a>
<li><a class="el" href="group__rp__x509__token.html">Rp_x509_token</a>
<li><a class="el" href="group__rp__x509__token__builder.html">Rp_x509_token_builder</a>
</ul>
<hr size="1"><address style="text-align: right;"><small>Generated on Fri Apr 17 11:49:47 2009 for Axis2/C by&nbsp;
<a href="http://www.doxygen.org/index.html">
<img src="doxygen.png" alt="doxygen" align="middle" border="0"></a> 1.5.3 </small></address>
</body>
</html>


<|start_filename|>xdocs/api/html/group__axis2__op.html<|end_filename|>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html><head><meta http-equiv="Content-Type" content="text/html;charset=UTF-8">
<title>Axis2/C: operation</title>
<link href="doxygen.css" rel="stylesheet" type="text/css">
<link href="tabs.css" rel="stylesheet" type="text/css">
</head><body>
<!-- Generated by Doxygen 1.5.3 -->
<div class="tabs">
  <ul>
    <li><a href="index.html"><span>Main&nbsp;Page</span></a></li>
    <li><a href="modules.html"><span>Modules</span></a></li>
    <li><a href="annotated.html"><span>Classes</span></a></li>
    <li><a href="files.html"><span>Files</span></a></li>
    <li><a href="dirs.html"><span>Directories</span></a></li>
    <li><a href="pages.html"><span>Related&nbsp;Pages</span></a></li>
    <li><a href="examples.html"><span>Examples</span></a></li>
    <li>
      <form action="search.php" method="get">
        <table cellspacing="0" cellpadding="0" border="0">
          <tr>
            <td><label>&nbsp;<u>S</u>earch&nbsp;for&nbsp;</label></td>
            <td><input type="text" name="query" value="" size="20" accesskey="s"/></td>
          </tr>
        </table>
      </form>
    </li>
  </ul>
</div>
<h1>operation<br>
<small>
[<a class="el" href="group__axis2__desc.html">description</a>]</small>
</h1><table border="0" cellpadding="0" cellspacing="0">
<tr><td></td></tr>
<tr><td colspan="2"><br><h2>Defines</h2></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top">#define&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__axis2__op.html#ge7774d96963e30c6d1223b91cbca8d4c">AXIS2_SOAP_ACTION</a>&nbsp;&nbsp;&nbsp;&quot;soapAction&quot;</td></tr>

<tr><td colspan="2"><br><h2>Typedefs</h2></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top">typedef struct axis2_op&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__axis2__op.html#g13ff0e97eb92c0681768b60a93bf1bc9">axis2_op_t</a></td></tr>

<tr><td colspan="2"><br><h2>Functions</h2></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top">AXIS2_EXTERN <a class="el" href="group__axis2__op.html#g13ff0e97eb92c0681768b60a93bf1bc9">axis2_op_t</a> *&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__axis2__op.html#g363737401304df2a665f0bbda92e3df3">axis2_op_create</a> (const <a class="el" href="structaxutil__env.html">axutil_env_t</a> *env)</td></tr>

<tr><td class="memItemLeft" nowrap align="right" valign="top">AXIS2_EXTERN void&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__axis2__op.html#gd1ecba5cbec7a54a42ea8199f38d9d74">axis2_op_free</a> (<a class="el" href="group__axis2__op.html#g13ff0e97eb92c0681768b60a93bf1bc9">axis2_op_t</a> *op, const <a class="el" href="structaxutil__env.html">axutil_env_t</a> *env)</td></tr>

<tr><td class="memItemLeft" nowrap align="right" valign="top">AXIS2_EXTERN void&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__axis2__op.html#gccd673b28205b690db8852990efd1ebe">axis2_op_free_void_arg</a> (void *op, const <a class="el" href="structaxutil__env.html">axutil_env_t</a> *env)</td></tr>

<tr><td class="memItemLeft" nowrap align="right" valign="top">AXIS2_EXTERN <br>
axis2_status_t&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__axis2__op.html#g642a38669d70655fa4ba8dd3be359aa0">axis2_op_add_param</a> (<a class="el" href="group__axis2__op.html#g13ff0e97eb92c0681768b60a93bf1bc9">axis2_op_t</a> *op, const <a class="el" href="structaxutil__env.html">axutil_env_t</a> *env, axutil_param_t *param)</td></tr>

<tr><td class="memItemLeft" nowrap align="right" valign="top">AXIS2_EXTERN <br>
axutil_param_t *&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__axis2__op.html#gc1bdf618feaa90bdc941a41f3a60f8ca">axis2_op_get_param</a> (const <a class="el" href="group__axis2__op.html#g13ff0e97eb92c0681768b60a93bf1bc9">axis2_op_t</a> *op, const <a class="el" href="structaxutil__env.html">axutil_env_t</a> *env, const axis2_char_t *name)</td></tr>

<tr><td class="memItemLeft" nowrap align="right" valign="top">AXIS2_EXTERN <br>
<a class="el" href="group__axutil__array__list.html#g1a6a89777db876cfa0cc86787b7be6a0">axutil_array_list_t</a> *&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__axis2__op.html#ga7d5af951f8b08565907ecb4fcb9ed22">axis2_op_get_all_params</a> (const <a class="el" href="group__axis2__op.html#g13ff0e97eb92c0681768b60a93bf1bc9">axis2_op_t</a> *op, const <a class="el" href="structaxutil__env.html">axutil_env_t</a> *env)</td></tr>

<tr><td class="memItemLeft" nowrap align="right" valign="top">AXIS2_EXTERN axis2_bool_t&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__axis2__op.html#g118ba8c76ce88e87fb343802fbf475c2">axis2_op_is_param_locked</a> (<a class="el" href="group__axis2__op.html#g13ff0e97eb92c0681768b60a93bf1bc9">axis2_op_t</a> *op, const <a class="el" href="structaxutil__env.html">axutil_env_t</a> *env, const axis2_char_t *param_name)</td></tr>

<tr><td class="memItemLeft" nowrap align="right" valign="top">AXIS2_EXTERN <br>
axis2_status_t&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__axis2__op.html#g0165b6250afa9b6ad3889bd160ae3f3c">axis2_op_set_parent</a> (<a class="el" href="group__axis2__op.html#g13ff0e97eb92c0681768b60a93bf1bc9">axis2_op_t</a> *op, const <a class="el" href="structaxutil__env.html">axutil_env_t</a> *env, struct axis2_svc *svc)</td></tr>

<tr><td class="memItemLeft" nowrap align="right" valign="top">AXIS2_EXTERN struct <br>
axis2_svc *&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__axis2__op.html#gd4dcb1a2db3a2a05cfc23a853553b314">axis2_op_get_parent</a> (const <a class="el" href="group__axis2__op.html#g13ff0e97eb92c0681768b60a93bf1bc9">axis2_op_t</a> *op, const <a class="el" href="structaxutil__env.html">axutil_env_t</a> *env)</td></tr>

<tr><td class="memItemLeft" nowrap align="right" valign="top">AXIS2_EXTERN <br>
axis2_status_t&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__axis2__op.html#gf94055dea4ef812645371eede4935db2">axis2_op_set_rest_http_method</a> (<a class="el" href="group__axis2__op.html#g13ff0e97eb92c0681768b60a93bf1bc9">axis2_op_t</a> *op, const <a class="el" href="structaxutil__env.html">axutil_env_t</a> *env, const axis2_char_t *rest_http_method)</td></tr>

<tr><td class="memItemLeft" nowrap align="right" valign="top">AXIS2_EXTERN <br>
axis2_char_t *&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__axis2__op.html#ga8727e126abd06683ddab5830164a336">axis2_op_get_rest_http_method</a> (const <a class="el" href="group__axis2__op.html#g13ff0e97eb92c0681768b60a93bf1bc9">axis2_op_t</a> *op, const <a class="el" href="structaxutil__env.html">axutil_env_t</a> *env)</td></tr>

<tr><td class="memItemLeft" nowrap align="right" valign="top">AXIS2_EXTERN <br>
axis2_status_t&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__axis2__op.html#gb74832ea66fe6c054f540848045fd417">axis2_op_set_rest_http_location</a> (<a class="el" href="group__axis2__op.html#g13ff0e97eb92c0681768b60a93bf1bc9">axis2_op_t</a> *op, const <a class="el" href="structaxutil__env.html">axutil_env_t</a> *env, const axis2_char_t *rest_http_location)</td></tr>

<tr><td class="memItemLeft" nowrap align="right" valign="top">AXIS2_EXTERN <br>
axis2_char_t *&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__axis2__op.html#g2346e418ceb5c2c3a3a0863137b1ea83">axis2_op_get_rest_http_location</a> (const <a class="el" href="group__axis2__op.html#g13ff0e97eb92c0681768b60a93bf1bc9">axis2_op_t</a> *op, const <a class="el" href="structaxutil__env.html">axutil_env_t</a> *env)</td></tr>

<tr><td class="memItemLeft" nowrap align="right" valign="top">AXIS2_EXTERN <br>
axis2_status_t&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__axis2__op.html#gbe0ca6f87c2c653fbac05ca6da7ff706">axis2_op_set_qname</a> (<a class="el" href="group__axis2__op.html#g13ff0e97eb92c0681768b60a93bf1bc9">axis2_op_t</a> *op, const <a class="el" href="structaxutil__env.html">axutil_env_t</a> *env, const axutil_qname_t *qname)</td></tr>

<tr><td class="memItemLeft" nowrap align="right" valign="top">AXIS2_EXTERN const <br>
axutil_qname_t *&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__axis2__op.html#gc29a00eec143ec118c61ce7d08df09c3">axis2_op_get_qname</a> (void *op, const <a class="el" href="structaxutil__env.html">axutil_env_t</a> *env)</td></tr>

<tr><td class="memItemLeft" nowrap align="right" valign="top">AXIS2_EXTERN <br>
axis2_status_t&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__axis2__op.html#g52a0934ae264d08854a0eb9903dbc889">axis2_op_set_msg_exchange_pattern</a> (<a class="el" href="group__axis2__op.html#g13ff0e97eb92c0681768b60a93bf1bc9">axis2_op_t</a> *op, const <a class="el" href="structaxutil__env.html">axutil_env_t</a> *env, const axis2_char_t *pattern)</td></tr>

<tr><td class="memItemLeft" nowrap align="right" valign="top">AXIS2_EXTERN const <br>
axis2_char_t *&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__axis2__op.html#g462462d70f7534b112d1ca683093d0cc">axis2_op_get_msg_exchange_pattern</a> (const <a class="el" href="group__axis2__op.html#g13ff0e97eb92c0681768b60a93bf1bc9">axis2_op_t</a> *op, const <a class="el" href="structaxutil__env.html">axutil_env_t</a> *env)</td></tr>

<tr><td class="memItemLeft" nowrap align="right" valign="top">AXIS2_EXTERN <br>
axis2_status_t&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__axis2__op.html#g4d6dc17290afa1d5ed5e00d9c2311bcf">axis2_op_set_msg_recv</a> (<a class="el" href="group__axis2__op.html#g13ff0e97eb92c0681768b60a93bf1bc9">axis2_op_t</a> *op, const <a class="el" href="structaxutil__env.html">axutil_env_t</a> *env, struct axis2_msg_recv *msg_recv)</td></tr>

<tr><td class="memItemLeft" nowrap align="right" valign="top">AXIS2_EXTERN struct <br>
axis2_msg_recv *&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__axis2__op.html#g497a76b535ba0288733f9e0197d1eb2e">axis2_op_get_msg_recv</a> (const <a class="el" href="group__axis2__op.html#g13ff0e97eb92c0681768b60a93bf1bc9">axis2_op_t</a> *op, const <a class="el" href="structaxutil__env.html">axutil_env_t</a> *env)</td></tr>

<tr><td class="memItemLeft" nowrap align="right" valign="top">AXIS2_EXTERN const <br>
axis2_char_t *&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__axis2__op.html#ga0a58defbcb90d40ab35416225af044f">axis2_op_get_style</a> (const <a class="el" href="group__axis2__op.html#g13ff0e97eb92c0681768b60a93bf1bc9">axis2_op_t</a> *op, const <a class="el" href="structaxutil__env.html">axutil_env_t</a> *env)</td></tr>

<tr><td class="memItemLeft" nowrap align="right" valign="top">AXIS2_EXTERN <br>
axis2_status_t&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__axis2__op.html#g49c363288528fd63b48030a0f9bc4149">axis2_op_set_style</a> (<a class="el" href="group__axis2__op.html#g13ff0e97eb92c0681768b60a93bf1bc9">axis2_op_t</a> *op, const <a class="el" href="structaxutil__env.html">axutil_env_t</a> *env, const axis2_char_t *style)</td></tr>

<tr><td class="memItemLeft" nowrap align="right" valign="top">AXIS2_EXTERN <br>
axis2_status_t&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__axis2__op.html#g2898d2698c34db4d41003046ae3ae7c4">axis2_op_engage_module</a> (<a class="el" href="group__axis2__op.html#g13ff0e97eb92c0681768b60a93bf1bc9">axis2_op_t</a> *op, const <a class="el" href="structaxutil__env.html">axutil_env_t</a> *env, struct axis2_module_desc *module_desc, struct axis2_conf *conf)</td></tr>

<tr><td class="memItemLeft" nowrap align="right" valign="top">AXIS2_EXTERN <br>
axis2_status_t&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__axis2__op.html#ga54a9d47584ba744fc345f8afa48d08d">axis2_op_add_to_engaged_module_list</a> (<a class="el" href="group__axis2__op.html#g13ff0e97eb92c0681768b60a93bf1bc9">axis2_op_t</a> *op, const <a class="el" href="structaxutil__env.html">axutil_env_t</a> *env, struct axis2_module_desc *module_dec)</td></tr>

<tr><td class="memItemLeft" nowrap align="right" valign="top">AXIS2_EXTERN <br>
<a class="el" href="group__axutil__array__list.html#g1a6a89777db876cfa0cc86787b7be6a0">axutil_array_list_t</a> *&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__axis2__op.html#g0c59eea9d18fa94ff2b2375c0efd1929">axis2_op_get_all_modules</a> (const <a class="el" href="group__axis2__op.html#g13ff0e97eb92c0681768b60a93bf1bc9">axis2_op_t</a> *op, const <a class="el" href="structaxutil__env.html">axutil_env_t</a> *env)</td></tr>

<tr><td class="memItemLeft" nowrap align="right" valign="top">AXIS2_EXTERN int&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__axis2__op.html#gc92244a5db8c70d5708178b946e66e1f">axis2_op_get_axis_specific_mep_const</a> (<a class="el" href="group__axis2__op.html#g13ff0e97eb92c0681768b60a93bf1bc9">axis2_op_t</a> *op, const <a class="el" href="structaxutil__env.html">axutil_env_t</a> *env)</td></tr>

<tr><td class="memItemLeft" nowrap align="right" valign="top">AXIS2_EXTERN <br>
<a class="el" href="group__axutil__array__list.html#g1a6a89777db876cfa0cc86787b7be6a0">axutil_array_list_t</a> *&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__axis2__op.html#g1293a6929137fe7d795790141ec0d3d1">axis2_op_get_fault_in_flow</a> (const <a class="el" href="group__axis2__op.html#g13ff0e97eb92c0681768b60a93bf1bc9">axis2_op_t</a> *op, const <a class="el" href="structaxutil__env.html">axutil_env_t</a> *env)</td></tr>

<tr><td class="memItemLeft" nowrap align="right" valign="top">AXIS2_EXTERN <br>
<a class="el" href="group__axutil__array__list.html#g1a6a89777db876cfa0cc86787b7be6a0">axutil_array_list_t</a> *&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__axis2__op.html#gf0b956c2bcc05e930cc3c2dcdc8a5abf">axis2_op_get_fault_out_flow</a> (const <a class="el" href="group__axis2__op.html#g13ff0e97eb92c0681768b60a93bf1bc9">axis2_op_t</a> *op, const <a class="el" href="structaxutil__env.html">axutil_env_t</a> *env)</td></tr>

<tr><td class="memItemLeft" nowrap align="right" valign="top">AXIS2_EXTERN <br>
<a class="el" href="group__axutil__array__list.html#g1a6a89777db876cfa0cc86787b7be6a0">axutil_array_list_t</a> *&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__axis2__op.html#g0e48f8565d6852e9e477c63e13efbad4">axis2_op_get_out_flow</a> (const <a class="el" href="group__axis2__op.html#g13ff0e97eb92c0681768b60a93bf1bc9">axis2_op_t</a> *op, const <a class="el" href="structaxutil__env.html">axutil_env_t</a> *env)</td></tr>

<tr><td class="memItemLeft" nowrap align="right" valign="top">AXIS2_EXTERN <br>
<a class="el" href="group__axutil__array__list.html#g1a6a89777db876cfa0cc86787b7be6a0">axutil_array_list_t</a> *&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__axis2__op.html#gc7238b80fb87bc6b56ee74d1cf80a7d4">axis2_op_get_in_flow</a> (const <a class="el" href="group__axis2__op.html#g13ff0e97eb92c0681768b60a93bf1bc9">axis2_op_t</a> *op, const <a class="el" href="structaxutil__env.html">axutil_env_t</a> *env)</td></tr>

<tr><td class="memItemLeft" nowrap align="right" valign="top">AXIS2_EXTERN <br>
axis2_status_t&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__axis2__op.html#gd86a41350164282a15b96ed5e4d95303">axis2_op_set_fault_in_flow</a> (<a class="el" href="group__axis2__op.html#g13ff0e97eb92c0681768b60a93bf1bc9">axis2_op_t</a> *op, const <a class="el" href="structaxutil__env.html">axutil_env_t</a> *env, <a class="el" href="group__axutil__array__list.html#g1a6a89777db876cfa0cc86787b7be6a0">axutil_array_list_t</a> *list)</td></tr>

<tr><td class="memItemLeft" nowrap align="right" valign="top">AXIS2_EXTERN <br>
axis2_status_t&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__axis2__op.html#g9f6107dc7ed032712720a32e47147abf">axis2_op_set_fault_out_flow</a> (<a class="el" href="group__axis2__op.html#g13ff0e97eb92c0681768b60a93bf1bc9">axis2_op_t</a> *op, const <a class="el" href="structaxutil__env.html">axutil_env_t</a> *env, <a class="el" href="group__axutil__array__list.html#g1a6a89777db876cfa0cc86787b7be6a0">axutil_array_list_t</a> *list)</td></tr>

<tr><td class="memItemLeft" nowrap align="right" valign="top">AXIS2_EXTERN <br>
axis2_status_t&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__axis2__op.html#g17294ba6ee8144d9c89c05db4b938188">axis2_op_set_out_flow</a> (<a class="el" href="group__axis2__op.html#g13ff0e97eb92c0681768b60a93bf1bc9">axis2_op_t</a> *op, const <a class="el" href="structaxutil__env.html">axutil_env_t</a> *env, <a class="el" href="group__axutil__array__list.html#g1a6a89777db876cfa0cc86787b7be6a0">axutil_array_list_t</a> *list)</td></tr>

<tr><td class="memItemLeft" nowrap align="right" valign="top">AXIS2_EXTERN <br>
axis2_status_t&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__axis2__op.html#g50f9a012ec96509acddeb84071ec2f32">axis2_op_set_in_flow</a> (<a class="el" href="group__axis2__op.html#g13ff0e97eb92c0681768b60a93bf1bc9">axis2_op_t</a> *op, const <a class="el" href="structaxutil__env.html">axutil_env_t</a> *env, <a class="el" href="group__axutil__array__list.html#g1a6a89777db876cfa0cc86787b7be6a0">axutil_array_list_t</a> *list)</td></tr>

<tr><td class="memItemLeft" nowrap align="right" valign="top">AXIS2_EXTERN <br>
axis2_status_t&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__axis2__op.html#ga4dc08740074220306e97ace2e94b4d9">axis2_op_add_module_qname</a> (<a class="el" href="group__axis2__op.html#g13ff0e97eb92c0681768b60a93bf1bc9">axis2_op_t</a> *op, const <a class="el" href="structaxutil__env.html">axutil_env_t</a> *env, const axutil_qname_t *module_qname)</td></tr>

<tr><td class="memItemLeft" nowrap align="right" valign="top">AXIS2_EXTERN <br>
<a class="el" href="group__axutil__array__list.html#g1a6a89777db876cfa0cc86787b7be6a0">axutil_array_list_t</a> *&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__axis2__op.html#ge7b0cabe5e54eda2d24590d72bc61638">axis2_op_get_all_module_qnames</a> (const <a class="el" href="group__axis2__op.html#g13ff0e97eb92c0681768b60a93bf1bc9">axis2_op_t</a> *op, const <a class="el" href="structaxutil__env.html">axutil_env_t</a> *env)</td></tr>

<tr><td class="memItemLeft" nowrap align="right" valign="top">AXIS2_EXTERN struct <br>
axis2_op_ctx *&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__axis2__op.html#gcc6b42d73fa1f2b7eb5e626dc09c7672">axis2_op_find_op_ctx</a> (<a class="el" href="group__axis2__op.html#g13ff0e97eb92c0681768b60a93bf1bc9">axis2_op_t</a> *op, const <a class="el" href="structaxutil__env.html">axutil_env_t</a> *env, struct axis2_msg_ctx *msg_ctx, struct axis2_svc_ctx *svc_ctx)</td></tr>

<tr><td class="memItemLeft" nowrap align="right" valign="top">AXIS2_EXTERN struct <br>
axis2_op_ctx *&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__axis2__op.html#g41ce1517f61709b1fd0819a86671f5bf">axis2_op_find_existing_op_ctx</a> (<a class="el" href="group__axis2__op.html#g13ff0e97eb92c0681768b60a93bf1bc9">axis2_op_t</a> *op, const <a class="el" href="structaxutil__env.html">axutil_env_t</a> *env, const struct axis2_msg_ctx *msg_ctx)</td></tr>

<tr><td class="memItemLeft" nowrap align="right" valign="top">AXIS2_EXTERN <br>
axis2_status_t&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__axis2__op.html#gc609bbc51888e90769428cec974590d1">axis2_op_register_op_ctx</a> (<a class="el" href="group__axis2__op.html#g13ff0e97eb92c0681768b60a93bf1bc9">axis2_op_t</a> *op, const <a class="el" href="structaxutil__env.html">axutil_env_t</a> *env, struct axis2_msg_ctx *msg_ctx, struct axis2_op_ctx *op_ctx)</td></tr>

<tr><td class="memItemLeft" nowrap align="right" valign="top">AXIS2_EXTERN struct <br>
axis2_msg *&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__axis2__op.html#g6bacac4dc143d92360b08e6c9c2d58a2">axis2_op_get_msg</a> (const <a class="el" href="group__axis2__op.html#g13ff0e97eb92c0681768b60a93bf1bc9">axis2_op_t</a> *op, const <a class="el" href="structaxutil__env.html">axutil_env_t</a> *env, const axis2_char_t *label)</td></tr>

<tr><td class="memItemLeft" nowrap align="right" valign="top">AXIS2_EXTERN <br>
axis2_status_t&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__axis2__op.html#g8a6c92b0427612989a196efe5874c2f5">axis2_op_add_msg</a> (<a class="el" href="group__axis2__op.html#g13ff0e97eb92c0681768b60a93bf1bc9">axis2_op_t</a> *op, const <a class="el" href="structaxutil__env.html">axutil_env_t</a> *env, const axis2_char_t *label, const struct axis2_msg *msg)</td></tr>

<tr><td class="memItemLeft" nowrap align="right" valign="top">AXIS2_EXTERN axis2_bool_t&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__axis2__op.html#g16832b71e04062cac2acb9a0ed4e4d04">axis2_op_is_from_module</a> (const <a class="el" href="group__axis2__op.html#g13ff0e97eb92c0681768b60a93bf1bc9">axis2_op_t</a> *op, const <a class="el" href="structaxutil__env.html">axutil_env_t</a> *env)</td></tr>

<tr><td class="memItemLeft" nowrap align="right" valign="top">AXIS2_EXTERN <br>
axis2_status_t&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__axis2__op.html#g40970b24e863c1073914adcdd8fcfbb1">axis2_op_set_wsamapping_list</a> (<a class="el" href="group__axis2__op.html#g13ff0e97eb92c0681768b60a93bf1bc9">axis2_op_t</a> *op, const <a class="el" href="structaxutil__env.html">axutil_env_t</a> *env, <a class="el" href="group__axutil__array__list.html#g1a6a89777db876cfa0cc86787b7be6a0">axutil_array_list_t</a> *mapping_list)</td></tr>

<tr><td class="memItemLeft" nowrap align="right" valign="top">AXIS2_EXTERN <br>
<a class="el" href="group__axutil__array__list.html#g1a6a89777db876cfa0cc86787b7be6a0">axutil_array_list_t</a> *&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__axis2__op.html#gcf4875f7477726d9ae5a901bf9f9c46f">axis2_op_get_wsamapping_list</a> (<a class="el" href="group__axis2__op.html#g13ff0e97eb92c0681768b60a93bf1bc9">axis2_op_t</a> *op, const <a class="el" href="structaxutil__env.html">axutil_env_t</a> *env)</td></tr>

<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="g7df85e46e753d8de9db16f472bfada24"></a><!-- doxytag: member="axis2_op::axis2_op_get_param_container" ref="g7df85e46e753d8de9db16f472bfada24" args="(const axis2_op_t *op, const axutil_env_t *env)" -->
AXIS2_EXTERN <br>
axutil_param_container_t *&nbsp;</td><td class="memItemRight" valign="bottom"><b>axis2_op_get_param_container</b> (const <a class="el" href="group__axis2__op.html#g13ff0e97eb92c0681768b60a93bf1bc9">axis2_op_t</a> *op, const <a class="el" href="structaxutil__env.html">axutil_env_t</a> *env)</td></tr>

<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="g9f7d35efd6f1787cbccefb3fda7f57cc"></a><!-- doxytag: member="axis2_op::axis2_op_remove_from_engaged_module_list" ref="g9f7d35efd6f1787cbccefb3fda7f57cc" args="(axis2_op_t *op, const axutil_env_t *env, struct axis2_module_desc *module_desc)" -->
AXIS2_EXTERN <br>
axis2_status_t&nbsp;</td><td class="memItemRight" valign="bottom"><b>axis2_op_remove_from_engaged_module_list</b> (<a class="el" href="group__axis2__op.html#g13ff0e97eb92c0681768b60a93bf1bc9">axis2_op_t</a> *op, const <a class="el" href="structaxutil__env.html">axutil_env_t</a> *env, struct axis2_module_desc *module_desc)</td></tr>

<tr><td class="memItemLeft" nowrap align="right" valign="top">AXIS2_EXTERN <a class="el" href="group__axis2__op.html#g13ff0e97eb92c0681768b60a93bf1bc9">axis2_op_t</a> *&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__axis2__op.html#g1c375463b20738f3a5a4d81859f8f420">axis2_op_create_from_module</a> (const <a class="el" href="structaxutil__env.html">axutil_env_t</a> *env)</td></tr>

<tr><td class="memItemLeft" nowrap align="right" valign="top">AXIS2_EXTERN <a class="el" href="group__axis2__op.html#g13ff0e97eb92c0681768b60a93bf1bc9">axis2_op_t</a> *&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__axis2__op.html#gcf1b842dded98ee8f9ecbb940fa0ca2b">axis2_op_create_with_qname</a> (const <a class="el" href="structaxutil__env.html">axutil_env_t</a> *env, const axutil_qname_t *name)</td></tr>

<tr><td class="memItemLeft" nowrap align="right" valign="top">AXIS2_EXTERN <br>
<a class="el" href="group__axis2__description.html#g9bbf771ae43a8364c5f453c7077f0f1e">axis2_desc_t</a> *&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__axis2__op.html#gf04e4c6f801ea0fb353b04f329c68760">axis2_op_get_base</a> (const <a class="el" href="group__axis2__op.html#g13ff0e97eb92c0681768b60a93bf1bc9">axis2_op_t</a> *op, const <a class="el" href="structaxutil__env.html">axutil_env_t</a> *env)</td></tr>

</table>
<hr><a name="_details"></a><h2>Detailed Description</h2>
operation represents the static structure of an operation in a service. In Axis2 description hierarchy, an operation lives inside the service to which it belongs. operations are configured in services.xml files located in the respective service group folders of the services folder in the repository. In services.xml file, operations are declared in association with a given service. The deployment engine would create operation instances to represent those configured operations and would associate them with the respective service in the configuration. operation encapsulates data on message exchange pattern (MEP), the execution flows, engaged module information, and the message receiver associated with the operation. <hr><h2>Define Documentation</h2>
<a class="anchor" name="ge7774d96963e30c6d1223b91cbca8d4c"></a><!-- doxytag: member="axis2_op.h::AXIS2_SOAP_ACTION" ref="ge7774d96963e30c6d1223b91cbca8d4c" args="" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">#define AXIS2_SOAP_ACTION&nbsp;&nbsp;&nbsp;&quot;soapAction&quot;          </td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
SOAP action string constant 
</div>
</div><p>
<hr><h2>Typedef Documentation</h2>
<a class="anchor" name="g13ff0e97eb92c0681768b60a93bf1bc9"></a><!-- doxytag: member="axis2_op.h::axis2_op_t" ref="g13ff0e97eb92c0681768b60a93bf1bc9" args="" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">typedef struct axis2_op <a class="el" href="group__axis2__op.html#g13ff0e97eb92c0681768b60a93bf1bc9">axis2_op_t</a>          </td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
Type name for struct axis2_op 
</div>
</div><p>
<hr><h2>Function Documentation</h2>
<a class="anchor" name="ga4dc08740074220306e97ace2e94b4d9"></a><!-- doxytag: member="axis2_op.h::axis2_op_add_module_qname" ref="ga4dc08740074220306e97ace2e94b4d9" args="(axis2_op_t *op, const axutil_env_t *env, const axutil_qname_t *module_qname)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">AXIS2_EXTERN axis2_status_t axis2_op_add_module_qname           </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="group__axis2__op.html#g13ff0e97eb92c0681768b60a93bf1bc9">axis2_op_t</a> *&nbsp;</td>
          <td class="paramname"> <em>op</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const <a class="el" href="structaxutil__env.html">axutil_env_t</a> *&nbsp;</td>
          <td class="paramname"> <em>env</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const axutil_qname_t *&nbsp;</td>
          <td class="paramname"> <em>module_qname</em></td><td>&nbsp;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td><td width="100%"></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
Adds given QName to module QName list. <dl compact><dt><b>Parameters:</b></dt><dd>
  <table border="0" cellspacing="2" cellpadding="0">
    <tr><td valign="top"></td><td valign="top"><em>op</em>&nbsp;</td><td>pointer to operation </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>env</em>&nbsp;</td><td>pointer to environment struct </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>module_name</em>&nbsp;</td><td>pointer to module QName, QName would be cloned by this method </td></tr>
  </table>
</dl>
<dl class="return" compact><dt><b>Returns:</b></dt><dd>AXIS2_SUCCESS on success, else AXIS2_FAILURE </dd></dl>

</div>
</div><p>
<a class="anchor" name="g8a6c92b0427612989a196efe5874c2f5"></a><!-- doxytag: member="axis2_op.h::axis2_op_add_msg" ref="g8a6c92b0427612989a196efe5874c2f5" args="(axis2_op_t *op, const axutil_env_t *env, const axis2_char_t *label, const struct axis2_msg *msg)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">AXIS2_EXTERN axis2_status_t axis2_op_add_msg           </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="group__axis2__op.html#g13ff0e97eb92c0681768b60a93bf1bc9">axis2_op_t</a> *&nbsp;</td>
          <td class="paramname"> <em>op</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const <a class="el" href="structaxutil__env.html">axutil_env_t</a> *&nbsp;</td>
          <td class="paramname"> <em>env</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const axis2_char_t *&nbsp;</td>
          <td class="paramname"> <em>label</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const struct axis2_msg *&nbsp;</td>
          <td class="paramname"> <em>msg</em></td><td>&nbsp;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td><td width="100%"></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
Adds given message with the given label. <dl compact><dt><b>Parameters:</b></dt><dd>
  <table border="0" cellspacing="2" cellpadding="0">
    <tr><td valign="top"></td><td valign="top"><em>op</em>&nbsp;</td><td>pointer to operation </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>env</em>&nbsp;</td><td>pointer to environment struct </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>label</em>&nbsp;</td><td>label string </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>msg</em>&nbsp;</td><td>pointer to message </td></tr>
  </table>
</dl>
<dl class="return" compact><dt><b>Returns:</b></dt><dd>AXIS2_SUCCESS on success, else AXIS2_FAILURE </dd></dl>

</div>
</div><p>
<a class="anchor" name="g642a38669d70655fa4ba8dd3be359aa0"></a><!-- doxytag: member="axis2_op.h::axis2_op_add_param" ref="g642a38669d70655fa4ba8dd3be359aa0" args="(axis2_op_t *op, const axutil_env_t *env, axutil_param_t *param)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">AXIS2_EXTERN axis2_status_t axis2_op_add_param           </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="group__axis2__op.html#g13ff0e97eb92c0681768b60a93bf1bc9">axis2_op_t</a> *&nbsp;</td>
          <td class="paramname"> <em>op</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const <a class="el" href="structaxutil__env.html">axutil_env_t</a> *&nbsp;</td>
          <td class="paramname"> <em>env</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">axutil_param_t *&nbsp;</td>
          <td class="paramname"> <em>param</em></td><td>&nbsp;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td><td width="100%"></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
Adds a parameter to method. <dl compact><dt><b>Parameters:</b></dt><dd>
  <table border="0" cellspacing="2" cellpadding="0">
    <tr><td valign="top"></td><td valign="top"><em>op</em>&nbsp;</td><td>pointer to operation </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>env</em>&nbsp;</td><td>pointer to environment struct </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>param</em>&nbsp;</td><td>pointer parameter to be added, operation assumes ownership of parameter </td></tr>
  </table>
</dl>
<dl class="return" compact><dt><b>Returns:</b></dt><dd>AXIS2_SUCCESS on success, else AXIS2_FAILURE </dd></dl>

</div>
</div><p>
<a class="anchor" name="ga54a9d47584ba744fc345f8afa48d08d"></a><!-- doxytag: member="axis2_op.h::axis2_op_add_to_engaged_module_list" ref="ga54a9d47584ba744fc345f8afa48d08d" args="(axis2_op_t *op, const axutil_env_t *env, struct axis2_module_desc *module_dec)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">AXIS2_EXTERN axis2_status_t axis2_op_add_to_engaged_module_list           </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="group__axis2__op.html#g13ff0e97eb92c0681768b60a93bf1bc9">axis2_op_t</a> *&nbsp;</td>
          <td class="paramname"> <em>op</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const <a class="el" href="structaxutil__env.html">axutil_env_t</a> *&nbsp;</td>
          <td class="paramname"> <em>env</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">struct axis2_module_desc *&nbsp;</td>
          <td class="paramname"> <em>module_dec</em></td><td>&nbsp;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td><td width="100%"></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
Adds module description to engaged module list. <dl compact><dt><b>Parameters:</b></dt><dd>
  <table border="0" cellspacing="2" cellpadding="0">
    <tr><td valign="top"></td><td valign="top"><em>op</em>&nbsp;</td><td>pointer to operation </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>env</em>&nbsp;</td><td>pointer to environment struct </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>module_dec</em>&nbsp;</td><td>pointer to module description, operation does not assume ownership of struct </td></tr>
  </table>
</dl>
<dl class="return" compact><dt><b>Returns:</b></dt><dd>AXIS2_SUCCESS on success, else AXIS2_FAILURE </dd></dl>

</div>
</div><p>
<a class="anchor" name="g363737401304df2a665f0bbda92e3df3"></a><!-- doxytag: member="axis2_op.h::axis2_op_create" ref="g363737401304df2a665f0bbda92e3df3" args="(const axutil_env_t *env)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">AXIS2_EXTERN <a class="el" href="group__axis2__op.html#g13ff0e97eb92c0681768b60a93bf1bc9">axis2_op_t</a>* axis2_op_create           </td>
          <td>(</td>
          <td class="paramtype">const <a class="el" href="structaxutil__env.html">axutil_env_t</a> *&nbsp;</td>
          <td class="paramname"> <em>env</em>          </td>
          <td>&nbsp;)&nbsp;</td>
          <td width="100%"></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
Creates operation struct. <dl compact><dt><b>Parameters:</b></dt><dd>
  <table border="0" cellspacing="2" cellpadding="0">
    <tr><td valign="top"></td><td valign="top"><em>env</em>&nbsp;</td><td>pointer to environment struct </td></tr>
  </table>
</dl>
<dl class="return" compact><dt><b>Returns:</b></dt><dd>pointer to newly created operation </dd></dl>

</div>
</div><p>
<a class="anchor" name="g1c375463b20738f3a5a4d81859f8f420"></a><!-- doxytag: member="axis2_op.h::axis2_op_create_from_module" ref="g1c375463b20738f3a5a4d81859f8f420" args="(const axutil_env_t *env)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">AXIS2_EXTERN <a class="el" href="group__axis2__op.html#g13ff0e97eb92c0681768b60a93bf1bc9">axis2_op_t</a>* axis2_op_create_from_module           </td>
          <td>(</td>
          <td class="paramtype">const <a class="el" href="structaxutil__env.html">axutil_env_t</a> *&nbsp;</td>
          <td class="paramname"> <em>env</em>          </td>
          <td>&nbsp;)&nbsp;</td>
          <td width="100%"></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
Creates operation struct for an operation defined in a module. <dl compact><dt><b>Parameters:</b></dt><dd>
  <table border="0" cellspacing="2" cellpadding="0">
    <tr><td valign="top"></td><td valign="top"><em>env</em>&nbsp;</td><td>pointer to environment struct </td></tr>
  </table>
</dl>
<dl class="return" compact><dt><b>Returns:</b></dt><dd>pointer to newly created operation </dd></dl>

</div>
</div><p>
<a class="anchor" name="gcf1b842dded98ee8f9ecbb940fa0ca2b"></a><!-- doxytag: member="axis2_op.h::axis2_op_create_with_qname" ref="gcf1b842dded98ee8f9ecbb940fa0ca2b" args="(const axutil_env_t *env, const axutil_qname_t *name)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">AXIS2_EXTERN <a class="el" href="group__axis2__op.html#g13ff0e97eb92c0681768b60a93bf1bc9">axis2_op_t</a>* axis2_op_create_with_qname           </td>
          <td>(</td>
          <td class="paramtype">const <a class="el" href="structaxutil__env.html">axutil_env_t</a> *&nbsp;</td>
          <td class="paramname"> <em>env</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const axutil_qname_t *&nbsp;</td>
          <td class="paramname"> <em>name</em></td><td>&nbsp;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td><td width="100%"></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
Creates operation struct with given QName. <dl compact><dt><b>Parameters:</b></dt><dd>
  <table border="0" cellspacing="2" cellpadding="0">
    <tr><td valign="top"></td><td valign="top"><em>env</em>&nbsp;</td><td>pointer to environment struct </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>name</em>&nbsp;</td><td>pointer to QName </td></tr>
  </table>
</dl>
<dl class="return" compact><dt><b>Returns:</b></dt><dd>pointer to newly created operation </dd></dl>

</div>
</div><p>
<a class="anchor" name="g2898d2698c34db4d41003046ae3ae7c4"></a><!-- doxytag: member="axis2_op.h::axis2_op_engage_module" ref="g2898d2698c34db4d41003046ae3ae7c4" args="(axis2_op_t *op, const axutil_env_t *env, struct axis2_module_desc *module_desc, struct axis2_conf *conf)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">AXIS2_EXTERN axis2_status_t axis2_op_engage_module           </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="group__axis2__op.html#g13ff0e97eb92c0681768b60a93bf1bc9">axis2_op_t</a> *&nbsp;</td>
          <td class="paramname"> <em>op</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const <a class="el" href="structaxutil__env.html">axutil_env_t</a> *&nbsp;</td>
          <td class="paramname"> <em>env</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">struct axis2_module_desc *&nbsp;</td>
          <td class="paramname"> <em>module_desc</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">struct axis2_conf *&nbsp;</td>
          <td class="paramname"> <em>conf</em></td><td>&nbsp;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td><td width="100%"></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
Engages given module to operation. <dl compact><dt><b>Parameters:</b></dt><dd>
  <table border="0" cellspacing="2" cellpadding="0">
    <tr><td valign="top"></td><td valign="top"><em>op</em>&nbsp;</td><td>pointer to operation </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>env</em>&nbsp;</td><td>pointer to environment struct </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>module_desc</em>&nbsp;</td><td>pointer to module description, operation does not assume ownership of struct </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>conf</em>&nbsp;</td><td>pointer to configuration, operation does not assume ownership of configuration </td></tr>
  </table>
</dl>
<dl class="return" compact><dt><b>Returns:</b></dt><dd>AXIS2_SUCCESS on success, else AXIS2_FAILURE </dd></dl>

</div>
</div><p>
<a class="anchor" name="g41ce1517f61709b1fd0819a86671f5bf"></a><!-- doxytag: member="axis2_op.h::axis2_op_find_existing_op_ctx" ref="g41ce1517f61709b1fd0819a86671f5bf" args="(axis2_op_t *op, const axutil_env_t *env, const struct axis2_msg_ctx *msg_ctx)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">AXIS2_EXTERN struct axis2_op_ctx* axis2_op_find_existing_op_ctx           </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="group__axis2__op.html#g13ff0e97eb92c0681768b60a93bf1bc9">axis2_op_t</a> *&nbsp;</td>
          <td class="paramname"> <em>op</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const <a class="el" href="structaxutil__env.html">axutil_env_t</a> *&nbsp;</td>
          <td class="paramname"> <em>env</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const struct axis2_msg_ctx *&nbsp;</td>
          <td class="paramname"> <em>msg_ctx</em></td><td>&nbsp;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td><td width="100%"><code> [read]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
Finds operation context related to this operation using given message context. This method will not create a new operation context if an associated operation context could not be found. <dl compact><dt><b>Parameters:</b></dt><dd>
  <table border="0" cellspacing="2" cellpadding="0">
    <tr><td valign="top"></td><td valign="top"><em>op</em>&nbsp;</td><td>pointer to operation </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>env</em>&nbsp;</td><td>pointer to environment struct </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>msg_ctx</em>&nbsp;</td><td>pointer to message context </td></tr>
  </table>
</dl>
<dl class="return" compact><dt><b>Returns:</b></dt><dd>pointer to operation context if found, else NULL. Returns a reference, not a cloned copy </dd></dl>

</div>
</div><p>
<a class="anchor" name="gcc6b42d73fa1f2b7eb5e626dc09c7672"></a><!-- doxytag: member="axis2_op.h::axis2_op_find_op_ctx" ref="gcc6b42d73fa1f2b7eb5e626dc09c7672" args="(axis2_op_t *op, const axutil_env_t *env, struct axis2_msg_ctx *msg_ctx, struct axis2_svc_ctx *svc_ctx)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">AXIS2_EXTERN struct axis2_op_ctx* axis2_op_find_op_ctx           </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="group__axis2__op.html#g13ff0e97eb92c0681768b60a93bf1bc9">axis2_op_t</a> *&nbsp;</td>
          <td class="paramname"> <em>op</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const <a class="el" href="structaxutil__env.html">axutil_env_t</a> *&nbsp;</td>
          <td class="paramname"> <em>env</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">struct axis2_msg_ctx *&nbsp;</td>
          <td class="paramname"> <em>msg_ctx</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">struct axis2_svc_ctx *&nbsp;</td>
          <td class="paramname"> <em>svc_ctx</em></td><td>&nbsp;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td><td width="100%"><code> [read]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
Finds operation context related to this operation using given message context and service context. This method would create a new operation context related to the operation, if one could not be found. <dl compact><dt><b>Parameters:</b></dt><dd>
  <table border="0" cellspacing="2" cellpadding="0">
    <tr><td valign="top"></td><td valign="top"><em>op</em>&nbsp;</td><td>pointer to operation </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>env</em>&nbsp;</td><td>pointer to environment struct </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>msg_ctx</em>&nbsp;</td><td>pointer to message context </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>svc_ctx</em>&nbsp;</td><td>pointer to service context </td></tr>
  </table>
</dl>
<dl class="return" compact><dt><b>Returns:</b></dt><dd>pointer to operation context, returns a reference, not a cloned copy </dd></dl>

</div>
</div><p>
<a class="anchor" name="gd1ecba5cbec7a54a42ea8199f38d9d74"></a><!-- doxytag: member="axis2_op.h::axis2_op_free" ref="gd1ecba5cbec7a54a42ea8199f38d9d74" args="(axis2_op_t *op, const axutil_env_t *env)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">AXIS2_EXTERN void axis2_op_free           </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="group__axis2__op.html#g13ff0e97eb92c0681768b60a93bf1bc9">axis2_op_t</a> *&nbsp;</td>
          <td class="paramname"> <em>op</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const <a class="el" href="structaxutil__env.html">axutil_env_t</a> *&nbsp;</td>
          <td class="paramname"> <em>env</em></td><td>&nbsp;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td><td width="100%"></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
Frees operation. <dl compact><dt><b>Parameters:</b></dt><dd>
  <table border="0" cellspacing="2" cellpadding="0">
    <tr><td valign="top"></td><td valign="top"><em>op</em>&nbsp;</td><td>pointer to operation </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>env</em>&nbsp;</td><td>pointer to environment struct </td></tr>
  </table>
</dl>
<dl class="return" compact><dt><b>Returns:</b></dt><dd>void </dd></dl>

</div>
</div><p>
<a class="anchor" name="gccd673b28205b690db8852990efd1ebe"></a><!-- doxytag: member="axis2_op.h::axis2_op_free_void_arg" ref="gccd673b28205b690db8852990efd1ebe" args="(void *op, const axutil_env_t *env)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">AXIS2_EXTERN void axis2_op_free_void_arg           </td>
          <td>(</td>
          <td class="paramtype">void *&nbsp;</td>
          <td class="paramname"> <em>op</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const <a class="el" href="structaxutil__env.html">axutil_env_t</a> *&nbsp;</td>
          <td class="paramname"> <em>env</em></td><td>&nbsp;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td><td width="100%"></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
Frees operation given as a void pointer. <dl compact><dt><b>Parameters:</b></dt><dd>
  <table border="0" cellspacing="2" cellpadding="0">
    <tr><td valign="top"></td><td valign="top"><em>op</em>&nbsp;</td><td>pointer to operation as a void pointer </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>env</em>&nbsp;</td><td>pointer to environment struct </td></tr>
  </table>
</dl>
<dl class="return" compact><dt><b>Returns:</b></dt><dd>void</dd></dl>
Frees the operation given as a void pointer. This method would cast the void parameter to an operation pointer and then call free method. <dl compact><dt><b>Parameters:</b></dt><dd>
  <table border="0" cellspacing="2" cellpadding="0">
    <tr><td valign="top"></td><td valign="top"><em>pointer</em>&nbsp;</td><td>to operation as a void pointer </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>env</em>&nbsp;</td><td>pointer to environment struct </td></tr>
  </table>
</dl>
<dl class="return" compact><dt><b>Returns:</b></dt><dd>void </dd></dl>

</div>
</div><p>
<a class="anchor" name="ge7b0cabe5e54eda2d24590d72bc61638"></a><!-- doxytag: member="axis2_op.h::axis2_op_get_all_module_qnames" ref="ge7b0cabe5e54eda2d24590d72bc61638" args="(const axis2_op_t *op, const axutil_env_t *env)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">AXIS2_EXTERN <a class="el" href="group__axutil__array__list.html#g1a6a89777db876cfa0cc86787b7be6a0">axutil_array_list_t</a>* axis2_op_get_all_module_qnames           </td>
          <td>(</td>
          <td class="paramtype">const <a class="el" href="group__axis2__op.html#g13ff0e97eb92c0681768b60a93bf1bc9">axis2_op_t</a> *&nbsp;</td>
          <td class="paramname"> <em>op</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const <a class="el" href="structaxutil__env.html">axutil_env_t</a> *&nbsp;</td>
          <td class="paramname"> <em>env</em></td><td>&nbsp;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td><td width="100%"></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
Gets all module QNames as a list. <dl compact><dt><b>Parameters:</b></dt><dd>
  <table border="0" cellspacing="2" cellpadding="0">
    <tr><td valign="top"></td><td valign="top"><em>op</em>&nbsp;</td><td>pointer to operation </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>env</em>&nbsp;</td><td>pointer to environment struct </td></tr>
  </table>
</dl>
<dl class="return" compact><dt><b>Returns:</b></dt><dd>pointer to array list containing module QNames, returns a reference, not a cloned copy </dd></dl>

</div>
</div><p>
<a class="anchor" name="g0c59eea9d18fa94ff2b2375c0efd1929"></a><!-- doxytag: member="axis2_op.h::axis2_op_get_all_modules" ref="g0c59eea9d18fa94ff2b2375c0efd1929" args="(const axis2_op_t *op, const axutil_env_t *env)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">AXIS2_EXTERN <a class="el" href="group__axutil__array__list.html#g1a6a89777db876cfa0cc86787b7be6a0">axutil_array_list_t</a>* axis2_op_get_all_modules           </td>
          <td>(</td>
          <td class="paramtype">const <a class="el" href="group__axis2__op.html#g13ff0e97eb92c0681768b60a93bf1bc9">axis2_op_t</a> *&nbsp;</td>
          <td class="paramname"> <em>op</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const <a class="el" href="structaxutil__env.html">axutil_env_t</a> *&nbsp;</td>
          <td class="paramname"> <em>env</em></td><td>&nbsp;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td><td width="100%"></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
Gets all modules associated to operation. <dl compact><dt><b>Parameters:</b></dt><dd>
  <table border="0" cellspacing="2" cellpadding="0">
    <tr><td valign="top"></td><td valign="top"><em>op</em>&nbsp;</td><td>pointer to operation </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>env</em>&nbsp;</td><td>pointer to environment struct </td></tr>
  </table>
</dl>
<dl class="return" compact><dt><b>Returns:</b></dt><dd>pointer to array list containing module descriptions </dd></dl>

</div>
</div><p>
<a class="anchor" name="ga7d5af951f8b08565907ecb4fcb9ed22"></a><!-- doxytag: member="axis2_op.h::axis2_op_get_all_params" ref="ga7d5af951f8b08565907ecb4fcb9ed22" args="(const axis2_op_t *op, const axutil_env_t *env)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">AXIS2_EXTERN <a class="el" href="group__axutil__array__list.html#g1a6a89777db876cfa0cc86787b7be6a0">axutil_array_list_t</a>* axis2_op_get_all_params           </td>
          <td>(</td>
          <td class="paramtype">const <a class="el" href="group__axis2__op.html#g13ff0e97eb92c0681768b60a93bf1bc9">axis2_op_t</a> *&nbsp;</td>
          <td class="paramname"> <em>op</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const <a class="el" href="structaxutil__env.html">axutil_env_t</a> *&nbsp;</td>
          <td class="paramname"> <em>env</em></td><td>&nbsp;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td><td width="100%"></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
Gets all parameters. <dl compact><dt><b>Parameters:</b></dt><dd>
  <table border="0" cellspacing="2" cellpadding="0">
    <tr><td valign="top"></td><td valign="top"><em>op</em>&nbsp;</td><td>pointer to operation </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>env</em>&nbsp;</td><td>pointer to environment struct </td></tr>
  </table>
</dl>
<dl class="return" compact><dt><b>Returns:</b></dt><dd>pointer to array list containing all parameters, returns a reference, not a cloned copy </dd></dl>

</div>
</div><p>
<a class="anchor" name="gc92244a5db8c70d5708178b946e66e1f"></a><!-- doxytag: member="axis2_op.h::axis2_op_get_axis_specific_mep_const" ref="gc92244a5db8c70d5708178b946e66e1f" args="(axis2_op_t *op, const axutil_env_t *env)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">AXIS2_EXTERN int axis2_op_get_axis_specific_mep_const           </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="group__axis2__op.html#g13ff0e97eb92c0681768b60a93bf1bc9">axis2_op_t</a> *&nbsp;</td>
          <td class="paramname"> <em>op</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const <a class="el" href="structaxutil__env.html">axutil_env_t</a> *&nbsp;</td>
          <td class="paramname"> <em>env</em></td><td>&nbsp;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td><td width="100%"></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
Gets Axis specific MEP constant. This method simply maps the string URI of the MEP to an integer. <dl compact><dt><b>Parameters:</b></dt><dd>
  <table border="0" cellspacing="2" cellpadding="0">
    <tr><td valign="top"></td><td valign="top"><em>op</em>&nbsp;</td><td>pointer to operation </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>env</em>&nbsp;</td><td>pointer to environment struct </td></tr>
  </table>
</dl>
<dl class="return" compact><dt><b>Returns:</b></dt><dd>integer representing MEP </dd></dl>

</div>
</div><p>
<a class="anchor" name="gf04e4c6f801ea0fb353b04f329c68760"></a><!-- doxytag: member="axis2_op.h::axis2_op_get_base" ref="gf04e4c6f801ea0fb353b04f329c68760" args="(const axis2_op_t *op, const axutil_env_t *env)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">AXIS2_EXTERN <a class="el" href="group__axis2__description.html#g9bbf771ae43a8364c5f453c7077f0f1e">axis2_desc_t</a>* axis2_op_get_base           </td>
          <td>(</td>
          <td class="paramtype">const <a class="el" href="group__axis2__op.html#g13ff0e97eb92c0681768b60a93bf1bc9">axis2_op_t</a> *&nbsp;</td>
          <td class="paramname"> <em>op</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const <a class="el" href="structaxutil__env.html">axutil_env_t</a> *&nbsp;</td>
          <td class="paramname"> <em>env</em></td><td>&nbsp;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td><td width="100%"></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
Gets base description. <dl compact><dt><b>Parameters:</b></dt><dd>
  <table border="0" cellspacing="2" cellpadding="0">
    <tr><td valign="top"></td><td valign="top"><em>op</em>&nbsp;</td><td>pointer to message </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>env</em>&nbsp;</td><td>pointer to environment struct </td></tr>
  </table>
</dl>
<dl class="return" compact><dt><b>Returns:</b></dt><dd>pointer to base description struct </dd></dl>

</div>
</div><p>
<a class="anchor" name="g1293a6929137fe7d795790141ec0d3d1"></a><!-- doxytag: member="axis2_op.h::axis2_op_get_fault_in_flow" ref="g1293a6929137fe7d795790141ec0d3d1" args="(const axis2_op_t *op, const axutil_env_t *env)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">AXIS2_EXTERN <a class="el" href="group__axutil__array__list.html#g1a6a89777db876cfa0cc86787b7be6a0">axutil_array_list_t</a>* axis2_op_get_fault_in_flow           </td>
          <td>(</td>
          <td class="paramtype">const <a class="el" href="group__axis2__op.html#g13ff0e97eb92c0681768b60a93bf1bc9">axis2_op_t</a> *&nbsp;</td>
          <td class="paramname"> <em>op</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const <a class="el" href="structaxutil__env.html">axutil_env_t</a> *&nbsp;</td>
          <td class="paramname"> <em>env</em></td><td>&nbsp;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td><td width="100%"></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
Gets fault in flow. Fault in flow is the list of phases invoked when a fault happens along in path. <dl compact><dt><b>Parameters:</b></dt><dd>
  <table border="0" cellspacing="2" cellpadding="0">
    <tr><td valign="top"></td><td valign="top"><em>op</em>&nbsp;</td><td>pointer to operation </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>env</em>&nbsp;</td><td>pointer to environment struct </td></tr>
  </table>
</dl>
<dl class="return" compact><dt><b>Returns:</b></dt><dd>pointer to array list containing phases, returns a reference, not a cloned copy </dd></dl>

</div>
</div><p>
<a class="anchor" name="gf0b956c2bcc05e930cc3c2dcdc8a5abf"></a><!-- doxytag: member="axis2_op.h::axis2_op_get_fault_out_flow" ref="gf0b956c2bcc05e930cc3c2dcdc8a5abf" args="(const axis2_op_t *op, const axutil_env_t *env)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">AXIS2_EXTERN <a class="el" href="group__axutil__array__list.html#g1a6a89777db876cfa0cc86787b7be6a0">axutil_array_list_t</a>* axis2_op_get_fault_out_flow           </td>
          <td>(</td>
          <td class="paramtype">const <a class="el" href="group__axis2__op.html#g13ff0e97eb92c0681768b60a93bf1bc9">axis2_op_t</a> *&nbsp;</td>
          <td class="paramname"> <em>op</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const <a class="el" href="structaxutil__env.html">axutil_env_t</a> *&nbsp;</td>
          <td class="paramname"> <em>env</em></td><td>&nbsp;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td><td width="100%"></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
Gets fault out flow. Fault out flow is the list of phases invoked when a fault happens along out path. <dl compact><dt><b>Parameters:</b></dt><dd>
  <table border="0" cellspacing="2" cellpadding="0">
    <tr><td valign="top"></td><td valign="top"><em>op</em>&nbsp;</td><td>pointer to operation </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>env</em>&nbsp;</td><td>pointer to environment struct </td></tr>
  </table>
</dl>
<dl class="return" compact><dt><b>Returns:</b></dt><dd>pointer to array list containing phases, returns a reference, not a cloned copy </dd></dl>

</div>
</div><p>
<a class="anchor" name="gc7238b80fb87bc6b56ee74d1cf80a7d4"></a><!-- doxytag: member="axis2_op.h::axis2_op_get_in_flow" ref="gc7238b80fb87bc6b56ee74d1cf80a7d4" args="(const axis2_op_t *op, const axutil_env_t *env)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">AXIS2_EXTERN <a class="el" href="group__axutil__array__list.html#g1a6a89777db876cfa0cc86787b7be6a0">axutil_array_list_t</a>* axis2_op_get_in_flow           </td>
          <td>(</td>
          <td class="paramtype">const <a class="el" href="group__axis2__op.html#g13ff0e97eb92c0681768b60a93bf1bc9">axis2_op_t</a> *&nbsp;</td>
          <td class="paramname"> <em>op</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const <a class="el" href="structaxutil__env.html">axutil_env_t</a> *&nbsp;</td>
          <td class="paramname"> <em>env</em></td><td>&nbsp;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td><td width="100%"></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
Gets in flow. In flow is the list of phases invoked along in path. <dl compact><dt><b>Parameters:</b></dt><dd>
  <table border="0" cellspacing="2" cellpadding="0">
    <tr><td valign="top"></td><td valign="top"><em>op</em>&nbsp;</td><td>pointer to operation </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>env</em>&nbsp;</td><td>pointer to environment struct </td></tr>
  </table>
</dl>
<dl class="return" compact><dt><b>Returns:</b></dt><dd>pointer to array list containing phases, returns a reference, not a cloned copy </dd></dl>

</div>
</div><p>
<a class="anchor" name="g6bacac4dc143d92360b08e6c9c2d58a2"></a><!-- doxytag: member="axis2_op.h::axis2_op_get_msg" ref="g6bacac4dc143d92360b08e6c9c2d58a2" args="(const axis2_op_t *op, const axutil_env_t *env, const axis2_char_t *label)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">AXIS2_EXTERN struct axis2_msg* axis2_op_get_msg           </td>
          <td>(</td>
          <td class="paramtype">const <a class="el" href="group__axis2__op.html#g13ff0e97eb92c0681768b60a93bf1bc9">axis2_op_t</a> *&nbsp;</td>
          <td class="paramname"> <em>op</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const <a class="el" href="structaxutil__env.html">axutil_env_t</a> *&nbsp;</td>
          <td class="paramname"> <em>env</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const axis2_char_t *&nbsp;</td>
          <td class="paramname"> <em>label</em></td><td>&nbsp;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td><td width="100%"><code> [read]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
Gets message with given label. <dl compact><dt><b>Parameters:</b></dt><dd>
  <table border="0" cellspacing="2" cellpadding="0">
    <tr><td valign="top"></td><td valign="top"><em>op</em>&nbsp;</td><td>pointer to operation </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>env</em>&nbsp;</td><td>pointer to environment struct </td></tr>
  </table>
</dl>
<dl class="return" compact><dt><b>Returns:</b></dt><dd>pointer to message corresponding to given label, returns a reference, not a cloned copy </dd></dl>

</div>
</div><p>
<a class="anchor" name="g462462d70f7534b112d1ca683093d0cc"></a><!-- doxytag: member="axis2_op.h::axis2_op_get_msg_exchange_pattern" ref="g462462d70f7534b112d1ca683093d0cc" args="(const axis2_op_t *op, const axutil_env_t *env)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">AXIS2_EXTERN const axis2_char_t* axis2_op_get_msg_exchange_pattern           </td>
          <td>(</td>
          <td class="paramtype">const <a class="el" href="group__axis2__op.html#g13ff0e97eb92c0681768b60a93bf1bc9">axis2_op_t</a> *&nbsp;</td>
          <td class="paramname"> <em>op</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const <a class="el" href="structaxutil__env.html">axutil_env_t</a> *&nbsp;</td>
          <td class="paramname"> <em>env</em></td><td>&nbsp;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td><td width="100%"></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
Gets operation message exchange pattern (MEP). <dl compact><dt><b>Parameters:</b></dt><dd>
  <table border="0" cellspacing="2" cellpadding="0">
    <tr><td valign="top"></td><td valign="top"><em>op</em>&nbsp;</td><td>pointer to operation </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>env</em>&nbsp;</td><td>pointer to environment struct </td></tr>
  </table>
</dl>
<dl class="return" compact><dt><b>Returns:</b></dt><dd>MEP string </dd></dl>

</div>
</div><p>
<a class="anchor" name="g497a76b535ba0288733f9e0197d1eb2e"></a><!-- doxytag: member="axis2_op.h::axis2_op_get_msg_recv" ref="g497a76b535ba0288733f9e0197d1eb2e" args="(const axis2_op_t *op, const axutil_env_t *env)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">AXIS2_EXTERN struct axis2_msg_recv* axis2_op_get_msg_recv           </td>
          <td>(</td>
          <td class="paramtype">const <a class="el" href="group__axis2__op.html#g13ff0e97eb92c0681768b60a93bf1bc9">axis2_op_t</a> *&nbsp;</td>
          <td class="paramname"> <em>op</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const <a class="el" href="structaxutil__env.html">axutil_env_t</a> *&nbsp;</td>
          <td class="paramname"> <em>env</em></td><td>&nbsp;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td><td width="100%"><code> [read]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
Gets message receiver. message receiver is responsible for invoking the business logic associated with the operation. <dl compact><dt><b>Parameters:</b></dt><dd>
  <table border="0" cellspacing="2" cellpadding="0">
    <tr><td valign="top"></td><td valign="top"><em>op</em>&nbsp;</td><td>pointer to operation </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>env</em>&nbsp;</td><td>pointer to environment struct </td></tr>
  </table>
</dl>
<dl class="return" compact><dt><b>Returns:</b></dt><dd>pointer to message receiver, returns a reference, not a cloned copy </dd></dl>

</div>
</div><p>
<a class="anchor" name="g0e48f8565d6852e9e477c63e13efbad4"></a><!-- doxytag: member="axis2_op.h::axis2_op_get_out_flow" ref="g0e48f8565d6852e9e477c63e13efbad4" args="(const axis2_op_t *op, const axutil_env_t *env)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">AXIS2_EXTERN <a class="el" href="group__axutil__array__list.html#g1a6a89777db876cfa0cc86787b7be6a0">axutil_array_list_t</a>* axis2_op_get_out_flow           </td>
          <td>(</td>
          <td class="paramtype">const <a class="el" href="group__axis2__op.html#g13ff0e97eb92c0681768b60a93bf1bc9">axis2_op_t</a> *&nbsp;</td>
          <td class="paramname"> <em>op</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const <a class="el" href="structaxutil__env.html">axutil_env_t</a> *&nbsp;</td>
          <td class="paramname"> <em>env</em></td><td>&nbsp;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td><td width="100%"></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
Gets out flow. Out flow is the list of phases invoked along out path. <dl compact><dt><b>Parameters:</b></dt><dd>
  <table border="0" cellspacing="2" cellpadding="0">
    <tr><td valign="top"></td><td valign="top"><em>op</em>&nbsp;</td><td>pointer to operation </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>env</em>&nbsp;</td><td>pointer to environment struct </td></tr>
  </table>
</dl>
<dl class="return" compact><dt><b>Returns:</b></dt><dd>pointer to array list containing phases, returns a reference, not a cloned copy </dd></dl>

</div>
</div><p>
<a class="anchor" name="gc1bdf618feaa90bdc941a41f3a60f8ca"></a><!-- doxytag: member="axis2_op.h::axis2_op_get_param" ref="gc1bdf618feaa90bdc941a41f3a60f8ca" args="(const axis2_op_t *op, const axutil_env_t *env, const axis2_char_t *name)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">AXIS2_EXTERN axutil_param_t* axis2_op_get_param           </td>
          <td>(</td>
          <td class="paramtype">const <a class="el" href="group__axis2__op.html#g13ff0e97eb92c0681768b60a93bf1bc9">axis2_op_t</a> *&nbsp;</td>
          <td class="paramname"> <em>op</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const <a class="el" href="structaxutil__env.html">axutil_env_t</a> *&nbsp;</td>
          <td class="paramname"> <em>env</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const axis2_char_t *&nbsp;</td>
          <td class="paramname"> <em>name</em></td><td>&nbsp;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td><td width="100%"></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
Gets named parameter. <dl compact><dt><b>Parameters:</b></dt><dd>
  <table border="0" cellspacing="2" cellpadding="0">
    <tr><td valign="top"></td><td valign="top"><em>op</em>&nbsp;</td><td>pointer to operation </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>env</em>&nbsp;</td><td>pointer to environment struct </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>name</em>&nbsp;</td><td>name of parameter to be retrieved as a string </td></tr>
  </table>
</dl>
<dl class="return" compact><dt><b>Returns:</b></dt><dd>pointer to named parameter if exists, else NULL. Returns a reference, not a cloned copy </dd></dl>

</div>
</div><p>
<a class="anchor" name="gd4dcb1a2db3a2a05cfc23a853553b314"></a><!-- doxytag: member="axis2_op.h::axis2_op_get_parent" ref="gd4dcb1a2db3a2a05cfc23a853553b314" args="(const axis2_op_t *op, const axutil_env_t *env)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">AXIS2_EXTERN struct axis2_svc* axis2_op_get_parent           </td>
          <td>(</td>
          <td class="paramtype">const <a class="el" href="group__axis2__op.html#g13ff0e97eb92c0681768b60a93bf1bc9">axis2_op_t</a> *&nbsp;</td>
          <td class="paramname"> <em>op</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const <a class="el" href="structaxutil__env.html">axutil_env_t</a> *&nbsp;</td>
          <td class="paramname"> <em>env</em></td><td>&nbsp;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td><td width="100%"><code> [read]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
Gets parent. Parent of an operation is of type service. <dl compact><dt><b>Parameters:</b></dt><dd>
  <table border="0" cellspacing="2" cellpadding="0">
    <tr><td valign="top"></td><td valign="top"><em>op</em>&nbsp;</td><td>pointer to operation </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>env</em>&nbsp;</td><td>pointer to environment struct </td></tr>
  </table>
</dl>
<dl class="return" compact><dt><b>Returns:</b></dt><dd>pointer to parent service, returns a reference, not a cloned copy </dd></dl>

</div>
</div><p>
<a class="anchor" name="gc29a00eec143ec118c61ce7d08df09c3"></a><!-- doxytag: member="axis2_op.h::axis2_op_get_qname" ref="gc29a00eec143ec118c61ce7d08df09c3" args="(void *op, const axutil_env_t *env)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">AXIS2_EXTERN const axutil_qname_t* axis2_op_get_qname           </td>
          <td>(</td>
          <td class="paramtype">void *&nbsp;</td>
          <td class="paramname"> <em>op</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const <a class="el" href="structaxutil__env.html">axutil_env_t</a> *&nbsp;</td>
          <td class="paramname"> <em>env</em></td><td>&nbsp;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td><td width="100%"></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
Gets operation QName. <dl compact><dt><b>Parameters:</b></dt><dd>
  <table border="0" cellspacing="2" cellpadding="0">
    <tr><td valign="top"></td><td valign="top"><em>op</em>&nbsp;</td><td>pointer to operation </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>env</em>&nbsp;</td><td>pointer to environment struct </td></tr>
  </table>
</dl>
<dl class="return" compact><dt><b>Returns:</b></dt><dd>pointer to QName, returns a reference, not a cloned copy </dd></dl>

</div>
</div><p>
<a class="anchor" name="g2346e418ceb5c2c3a3a0863137b1ea83"></a><!-- doxytag: member="axis2_op.h::axis2_op_get_rest_http_location" ref="g2346e418ceb5c2c3a3a0863137b1ea83" args="(const axis2_op_t *op, const axutil_env_t *env)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">AXIS2_EXTERN axis2_char_t* axis2_op_get_rest_http_location           </td>
          <td>(</td>
          <td class="paramtype">const <a class="el" href="group__axis2__op.html#g13ff0e97eb92c0681768b60a93bf1bc9">axis2_op_t</a> *&nbsp;</td>
          <td class="paramname"> <em>op</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const <a class="el" href="structaxutil__env.html">axutil_env_t</a> *&nbsp;</td>
          <td class="paramname"> <em>env</em></td><td>&nbsp;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td><td width="100%"></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
Gets HTTP Location for RESTful Services. <dl compact><dt><b>Parameters:</b></dt><dd>
  <table border="0" cellspacing="2" cellpadding="0">
    <tr><td valign="top"></td><td valign="top"><em>op</em>&nbsp;</td><td>pointer to operation </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>env</em>&nbsp;</td><td>pointer to environment struct </td></tr>
  </table>
</dl>
<dl class="return" compact><dt><b>Returns:</b></dt><dd>HTTP Location string, returns a reference, not a cloned copy </dd></dl>

</div>
</div><p>
<a class="anchor" name="ga8727e126abd06683ddab5830164a336"></a><!-- doxytag: member="axis2_op.h::axis2_op_get_rest_http_method" ref="ga8727e126abd06683ddab5830164a336" args="(const axis2_op_t *op, const axutil_env_t *env)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">AXIS2_EXTERN axis2_char_t* axis2_op_get_rest_http_method           </td>
          <td>(</td>
          <td class="paramtype">const <a class="el" href="group__axis2__op.html#g13ff0e97eb92c0681768b60a93bf1bc9">axis2_op_t</a> *&nbsp;</td>
          <td class="paramname"> <em>op</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const <a class="el" href="structaxutil__env.html">axutil_env_t</a> *&nbsp;</td>
          <td class="paramname"> <em>env</em></td><td>&nbsp;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td><td width="100%"></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
Gets HTTP Method for RESTful Services. <dl compact><dt><b>Parameters:</b></dt><dd>
  <table border="0" cellspacing="2" cellpadding="0">
    <tr><td valign="top"></td><td valign="top"><em>op</em>&nbsp;</td><td>pointer to operation </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>env</em>&nbsp;</td><td>pointer to environment struct </td></tr>
  </table>
</dl>
<dl class="return" compact><dt><b>Returns:</b></dt><dd>HTTP Method string, returns a reference, not a cloned copy </dd></dl>

</div>
</div><p>
<a class="anchor" name="ga0a58defbcb90d40ab35416225af044f"></a><!-- doxytag: member="axis2_op.h::axis2_op_get_style" ref="ga0a58defbcb90d40ab35416225af044f" args="(const axis2_op_t *op, const axutil_env_t *env)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">AXIS2_EXTERN const axis2_char_t* axis2_op_get_style           </td>
          <td>(</td>
          <td class="paramtype">const <a class="el" href="group__axis2__op.html#g13ff0e97eb92c0681768b60a93bf1bc9">axis2_op_t</a> *&nbsp;</td>
          <td class="paramname"> <em>op</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const <a class="el" href="structaxutil__env.html">axutil_env_t</a> *&nbsp;</td>
          <td class="paramname"> <em>env</em></td><td>&nbsp;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td><td width="100%"></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
Gets style of operation. Style is that mentioned in WSDL, either RPC or document literal. <dl compact><dt><b>Parameters:</b></dt><dd>
  <table border="0" cellspacing="2" cellpadding="0">
    <tr><td valign="top"></td><td valign="top"><em>op</em>&nbsp;</td><td>pointer to operation </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>env</em>&nbsp;</td><td>pointer to environment struct </td></tr>
  </table>
</dl>
<dl class="return" compact><dt><b>Returns:</b></dt><dd>string representing style </dd></dl>

</div>
</div><p>
<a class="anchor" name="gcf4875f7477726d9ae5a901bf9f9c46f"></a><!-- doxytag: member="axis2_op.h::axis2_op_get_wsamapping_list" ref="gcf4875f7477726d9ae5a901bf9f9c46f" args="(axis2_op_t *op, const axutil_env_t *env)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">AXIS2_EXTERN <a class="el" href="group__axutil__array__list.html#g1a6a89777db876cfa0cc86787b7be6a0">axutil_array_list_t</a>* axis2_op_get_wsamapping_list           </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="group__axis2__op.html#g13ff0e97eb92c0681768b60a93bf1bc9">axis2_op_t</a> *&nbsp;</td>
          <td class="paramname"> <em>op</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const <a class="el" href="structaxutil__env.html">axutil_env_t</a> *&nbsp;</td>
          <td class="paramname"> <em>env</em></td><td>&nbsp;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td><td width="100%"></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
Get the wsamapping list. <dl compact><dt><b>Parameters:</b></dt><dd>
  <table border="0" cellspacing="2" cellpadding="0">
    <tr><td valign="top"></td><td valign="top"><em>op</em>&nbsp;</td><td>pointer to operation </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>env</em>&nbsp;</td><td>pointer to environment struct </td></tr>
  </table>
</dl>
<dl class="return" compact><dt><b>Returns:</b></dt><dd>AXIS2_SUCCESS on success, else AXIS2_FAILURE </dd></dl>

</div>
</div><p>
<a class="anchor" name="g16832b71e04062cac2acb9a0ed4e4d04"></a><!-- doxytag: member="axis2_op.h::axis2_op_is_from_module" ref="g16832b71e04062cac2acb9a0ed4e4d04" args="(const axis2_op_t *op, const axutil_env_t *env)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">AXIS2_EXTERN axis2_bool_t axis2_op_is_from_module           </td>
          <td>(</td>
          <td class="paramtype">const <a class="el" href="group__axis2__op.html#g13ff0e97eb92c0681768b60a93bf1bc9">axis2_op_t</a> *&nbsp;</td>
          <td class="paramname"> <em>op</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const <a class="el" href="structaxutil__env.html">axutil_env_t</a> *&nbsp;</td>
          <td class="paramname"> <em>env</em></td><td>&nbsp;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td><td width="100%"></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
Checks if the operation is from a module. <dl compact><dt><b>Parameters:</b></dt><dd>
  <table border="0" cellspacing="2" cellpadding="0">
    <tr><td valign="top"></td><td valign="top"><em>op</em>&nbsp;</td><td>pointer to operation </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>env</em>&nbsp;</td><td>pointer to environment struct AXIS2_TRUE if the operation is from a module, else AXIS2_FALSE </td></tr>
  </table>
</dl>

</div>
</div><p>
<a class="anchor" name="g118ba8c76ce88e87fb343802fbf475c2"></a><!-- doxytag: member="axis2_op.h::axis2_op_is_param_locked" ref="g118ba8c76ce88e87fb343802fbf475c2" args="(axis2_op_t *op, const axutil_env_t *env, const axis2_char_t *param_name)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">AXIS2_EXTERN axis2_bool_t axis2_op_is_param_locked           </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="group__axis2__op.html#g13ff0e97eb92c0681768b60a93bf1bc9">axis2_op_t</a> *&nbsp;</td>
          <td class="paramname"> <em>op</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const <a class="el" href="structaxutil__env.html">axutil_env_t</a> *&nbsp;</td>
          <td class="paramname"> <em>env</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const axis2_char_t *&nbsp;</td>
          <td class="paramname"> <em>param_name</em></td><td>&nbsp;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td><td width="100%"></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
Checks if the named parameter is locked. <dl compact><dt><b>Parameters:</b></dt><dd>
  <table border="0" cellspacing="2" cellpadding="0">
    <tr><td valign="top"></td><td valign="top"><em>op</em>&nbsp;</td><td>pointer to operation </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>env</em>&nbsp;</td><td>pointer to environment struct </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>param_name</em>&nbsp;</td><td>name of the parameter to be checked </td></tr>
  </table>
</dl>
<dl class="return" compact><dt><b>Returns:</b></dt><dd>AXIS2_TRUE if named parameter is locked, else AXIS2_FALSE </dd></dl>

</div>
</div><p>
<a class="anchor" name="gc609bbc51888e90769428cec974590d1"></a><!-- doxytag: member="axis2_op.h::axis2_op_register_op_ctx" ref="gc609bbc51888e90769428cec974590d1" args="(axis2_op_t *op, const axutil_env_t *env, struct axis2_msg_ctx *msg_ctx, struct axis2_op_ctx *op_ctx)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">AXIS2_EXTERN axis2_status_t axis2_op_register_op_ctx           </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="group__axis2__op.html#g13ff0e97eb92c0681768b60a93bf1bc9">axis2_op_t</a> *&nbsp;</td>
          <td class="paramname"> <em>op</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const <a class="el" href="structaxutil__env.html">axutil_env_t</a> *&nbsp;</td>
          <td class="paramname"> <em>env</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">struct axis2_msg_ctx *&nbsp;</td>
          <td class="paramname"> <em>msg_ctx</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">struct axis2_op_ctx *&nbsp;</td>
          <td class="paramname"> <em>op_ctx</em></td><td>&nbsp;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td><td width="100%"></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
Registers given operation context against this operation. Registration happens within the given message context, as it is the message context that captures the state information of a given invocation. <dl compact><dt><b>Parameters:</b></dt><dd>
  <table border="0" cellspacing="2" cellpadding="0">
    <tr><td valign="top"></td><td valign="top"><em>op</em>&nbsp;</td><td>pointer to operation </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>env</em>&nbsp;</td><td>pointer to environment struct </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>msg_ctx</em>&nbsp;</td><td>pointer to message context </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>op_ctx</em>&nbsp;</td><td>pointer to operation context, operation does not assume ownership of operation context </td></tr>
  </table>
</dl>
<dl class="return" compact><dt><b>Returns:</b></dt><dd>AXIS2_SUCCESS on success, else AXIS2_FAILURE </dd></dl>

</div>
</div><p>
<a class="anchor" name="gd86a41350164282a15b96ed5e4d95303"></a><!-- doxytag: member="axis2_op.h::axis2_op_set_fault_in_flow" ref="gd86a41350164282a15b96ed5e4d95303" args="(axis2_op_t *op, const axutil_env_t *env, axutil_array_list_t *list)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">AXIS2_EXTERN axis2_status_t axis2_op_set_fault_in_flow           </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="group__axis2__op.html#g13ff0e97eb92c0681768b60a93bf1bc9">axis2_op_t</a> *&nbsp;</td>
          <td class="paramname"> <em>op</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const <a class="el" href="structaxutil__env.html">axutil_env_t</a> *&nbsp;</td>
          <td class="paramname"> <em>env</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype"><a class="el" href="group__axutil__array__list.html#g1a6a89777db876cfa0cc86787b7be6a0">axutil_array_list_t</a> *&nbsp;</td>
          <td class="paramname"> <em>list</em></td><td>&nbsp;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td><td width="100%"></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
Sets fault in flow. Fault in flow is the list of phases invoked when a fault happens along in path. <dl compact><dt><b>Parameters:</b></dt><dd>
  <table border="0" cellspacing="2" cellpadding="0">
    <tr><td valign="top"></td><td valign="top"><em>op</em>&nbsp;</td><td>pointer to operation </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>env</em>&nbsp;</td><td>pointer to environment struct </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>list</em>&nbsp;</td><td>pointer to array list containing phases, operation takes over the ownership of list </td></tr>
  </table>
</dl>
<dl class="return" compact><dt><b>Returns:</b></dt><dd>AXIS2_SUCCESS on success, else AXIS2_FAILURE </dd></dl>

</div>
</div><p>
<a class="anchor" name="g9f6107dc7ed032712720a32e47147abf"></a><!-- doxytag: member="axis2_op.h::axis2_op_set_fault_out_flow" ref="g9f6107dc7ed032712720a32e47147abf" args="(axis2_op_t *op, const axutil_env_t *env, axutil_array_list_t *list)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">AXIS2_EXTERN axis2_status_t axis2_op_set_fault_out_flow           </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="group__axis2__op.html#g13ff0e97eb92c0681768b60a93bf1bc9">axis2_op_t</a> *&nbsp;</td>
          <td class="paramname"> <em>op</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const <a class="el" href="structaxutil__env.html">axutil_env_t</a> *&nbsp;</td>
          <td class="paramname"> <em>env</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype"><a class="el" href="group__axutil__array__list.html#g1a6a89777db876cfa0cc86787b7be6a0">axutil_array_list_t</a> *&nbsp;</td>
          <td class="paramname"> <em>list</em></td><td>&nbsp;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td><td width="100%"></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
Sets fault out flow. Fault out flow is the list of phases invoked when a fault happens along out path. <dl compact><dt><b>Parameters:</b></dt><dd>
  <table border="0" cellspacing="2" cellpadding="0">
    <tr><td valign="top"></td><td valign="top"><em>op</em>&nbsp;</td><td>pointer to operation </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>env</em>&nbsp;</td><td>pointer to environment struct </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>list</em>&nbsp;</td><td>pointer to array list containing phases, operation takes over the ownership of list </td></tr>
  </table>
</dl>
<dl class="return" compact><dt><b>Returns:</b></dt><dd>AXIS2_SUCCESS on success, else AXIS2_FAILURE </dd></dl>

</div>
</div><p>
<a class="anchor" name="g50f9a012ec96509acddeb84071ec2f32"></a><!-- doxytag: member="axis2_op.h::axis2_op_set_in_flow" ref="g50f9a012ec96509acddeb84071ec2f32" args="(axis2_op_t *op, const axutil_env_t *env, axutil_array_list_t *list)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">AXIS2_EXTERN axis2_status_t axis2_op_set_in_flow           </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="group__axis2__op.html#g13ff0e97eb92c0681768b60a93bf1bc9">axis2_op_t</a> *&nbsp;</td>
          <td class="paramname"> <em>op</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const <a class="el" href="structaxutil__env.html">axutil_env_t</a> *&nbsp;</td>
          <td class="paramname"> <em>env</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype"><a class="el" href="group__axutil__array__list.html#g1a6a89777db876cfa0cc86787b7be6a0">axutil_array_list_t</a> *&nbsp;</td>
          <td class="paramname"> <em>list</em></td><td>&nbsp;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td><td width="100%"></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
Sets in flow. In flow is the list of phases invoked along in path. <dl compact><dt><b>Parameters:</b></dt><dd>
  <table border="0" cellspacing="2" cellpadding="0">
    <tr><td valign="top"></td><td valign="top"><em>op</em>&nbsp;</td><td>pointer to operation </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>env</em>&nbsp;</td><td>pointer to environment struct </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>list</em>&nbsp;</td><td>pointer to array list containing phases, operation takes over the ownership of list </td></tr>
  </table>
</dl>
<dl class="return" compact><dt><b>Returns:</b></dt><dd>AXIS2_SUCCESS on success, else AXIS2_FAILURE </dd></dl>

</div>
</div><p>
<a class="anchor" name="g52a0934ae264d08854a0eb9903dbc889"></a><!-- doxytag: member="axis2_op.h::axis2_op_set_msg_exchange_pattern" ref="g52a0934ae264d08854a0eb9903dbc889" args="(axis2_op_t *op, const axutil_env_t *env, const axis2_char_t *pattern)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">AXIS2_EXTERN axis2_status_t axis2_op_set_msg_exchange_pattern           </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="group__axis2__op.html#g13ff0e97eb92c0681768b60a93bf1bc9">axis2_op_t</a> *&nbsp;</td>
          <td class="paramname"> <em>op</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const <a class="el" href="structaxutil__env.html">axutil_env_t</a> *&nbsp;</td>
          <td class="paramname"> <em>env</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const axis2_char_t *&nbsp;</td>
          <td class="paramname"> <em>pattern</em></td><td>&nbsp;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td><td width="100%"></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
Sets operation message exchange pattern (MEP). <dl compact><dt><b>Parameters:</b></dt><dd>
  <table border="0" cellspacing="2" cellpadding="0">
    <tr><td valign="top"></td><td valign="top"><em>op</em>&nbsp;</td><td>pointer to operation </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>env</em>&nbsp;</td><td>pointer to environment struct </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>pattern</em>&nbsp;</td><td>message exchange pattern string </td></tr>
  </table>
</dl>
<dl class="return" compact><dt><b>Returns:</b></dt><dd>AXIS2_SUCCESS on success, else AXIS2_FAILURE </dd></dl>

</div>
</div><p>
<a class="anchor" name="g4d6dc17290afa1d5ed5e00d9c2311bcf"></a><!-- doxytag: member="axis2_op.h::axis2_op_set_msg_recv" ref="g4d6dc17290afa1d5ed5e00d9c2311bcf" args="(axis2_op_t *op, const axutil_env_t *env, struct axis2_msg_recv *msg_recv)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">AXIS2_EXTERN axis2_status_t axis2_op_set_msg_recv           </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="group__axis2__op.html#g13ff0e97eb92c0681768b60a93bf1bc9">axis2_op_t</a> *&nbsp;</td>
          <td class="paramname"> <em>op</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const <a class="el" href="structaxutil__env.html">axutil_env_t</a> *&nbsp;</td>
          <td class="paramname"> <em>env</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">struct axis2_msg_recv *&nbsp;</td>
          <td class="paramname"> <em>msg_recv</em></td><td>&nbsp;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td><td width="100%"></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
Sets message receiver. message receiver is responsible for invoking the business logic associated with the operation. <dl compact><dt><b>Parameters:</b></dt><dd>
  <table border="0" cellspacing="2" cellpadding="0">
    <tr><td valign="top"></td><td valign="top"><em>op</em>&nbsp;</td><td>pointer to operation </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>env</em>&nbsp;</td><td>pointer to environment struct </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>msg_recv</em>&nbsp;</td><td>pointer to message receiver, operation assumes ownership of message receiver </td></tr>
  </table>
</dl>
<dl class="return" compact><dt><b>Returns:</b></dt><dd>AXIS2_SUCCESS on success, else AXIS2_FAILURE </dd></dl>

</div>
</div><p>
<a class="anchor" name="g17294ba6ee8144d9c89c05db4b938188"></a><!-- doxytag: member="axis2_op.h::axis2_op_set_out_flow" ref="g17294ba6ee8144d9c89c05db4b938188" args="(axis2_op_t *op, const axutil_env_t *env, axutil_array_list_t *list)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">AXIS2_EXTERN axis2_status_t axis2_op_set_out_flow           </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="group__axis2__op.html#g13ff0e97eb92c0681768b60a93bf1bc9">axis2_op_t</a> *&nbsp;</td>
          <td class="paramname"> <em>op</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const <a class="el" href="structaxutil__env.html">axutil_env_t</a> *&nbsp;</td>
          <td class="paramname"> <em>env</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype"><a class="el" href="group__axutil__array__list.html#g1a6a89777db876cfa0cc86787b7be6a0">axutil_array_list_t</a> *&nbsp;</td>
          <td class="paramname"> <em>list</em></td><td>&nbsp;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td><td width="100%"></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
Sets out flow. Out flow is the list of phases invoked along out path. <dl compact><dt><b>Parameters:</b></dt><dd>
  <table border="0" cellspacing="2" cellpadding="0">
    <tr><td valign="top"></td><td valign="top"><em>op</em>&nbsp;</td><td>pointer to operation </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>env</em>&nbsp;</td><td>pointer to environment struct </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>list</em>&nbsp;</td><td>pointer to array list containing phases, operation takes over the ownership of list </td></tr>
  </table>
</dl>
<dl class="return" compact><dt><b>Returns:</b></dt><dd>AXIS2_SUCCESS on success, else AXIS2_FAILURE </dd></dl>

</div>
</div><p>
<a class="anchor" name="g0165b6250afa9b6ad3889bd160ae3f3c"></a><!-- doxytag: member="axis2_op.h::axis2_op_set_parent" ref="g0165b6250afa9b6ad3889bd160ae3f3c" args="(axis2_op_t *op, const axutil_env_t *env, struct axis2_svc *svc)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">AXIS2_EXTERN axis2_status_t axis2_op_set_parent           </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="group__axis2__op.html#g13ff0e97eb92c0681768b60a93bf1bc9">axis2_op_t</a> *&nbsp;</td>
          <td class="paramname"> <em>op</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const <a class="el" href="structaxutil__env.html">axutil_env_t</a> *&nbsp;</td>
          <td class="paramname"> <em>env</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">struct axis2_svc *&nbsp;</td>
          <td class="paramname"> <em>svc</em></td><td>&nbsp;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td><td width="100%"></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
Sets parent. Parent of an operation is of type service. <dl compact><dt><b>Parameters:</b></dt><dd>
  <table border="0" cellspacing="2" cellpadding="0">
    <tr><td valign="top"></td><td valign="top"><em>op</em>&nbsp;</td><td>pointer to operation </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>env</em>&nbsp;</td><td>pointer to environment struct </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>svc</em>&nbsp;</td><td>pointer to parent service, operation does not assume ownership of service </td></tr>
  </table>
</dl>
<dl class="return" compact><dt><b>Returns:</b></dt><dd>AXIS2_SUCCESS on success, else AXIS2_FAILURE </dd></dl>

</div>
</div><p>
<a class="anchor" name="gbe0ca6f87c2c653fbac05ca6da7ff706"></a><!-- doxytag: member="axis2_op.h::axis2_op_set_qname" ref="gbe0ca6f87c2c653fbac05ca6da7ff706" args="(axis2_op_t *op, const axutil_env_t *env, const axutil_qname_t *qname)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">AXIS2_EXTERN axis2_status_t axis2_op_set_qname           </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="group__axis2__op.html#g13ff0e97eb92c0681768b60a93bf1bc9">axis2_op_t</a> *&nbsp;</td>
          <td class="paramname"> <em>op</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const <a class="el" href="structaxutil__env.html">axutil_env_t</a> *&nbsp;</td>
          <td class="paramname"> <em>env</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const axutil_qname_t *&nbsp;</td>
          <td class="paramname"> <em>qname</em></td><td>&nbsp;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td><td width="100%"></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
Sets operation QName. <dl compact><dt><b>Parameters:</b></dt><dd>
  <table border="0" cellspacing="2" cellpadding="0">
    <tr><td valign="top"></td><td valign="top"><em>op</em>&nbsp;</td><td>pointer to operation as a void pointer. </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>env</em>&nbsp;</td><td>pointer to environment struct </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>qname</em>&nbsp;</td><td>pointer to QName, this method creates a clone of the QName </td></tr>
  </table>
</dl>
<dl class="return" compact><dt><b>Returns:</b></dt><dd>AXIS2_SUCCESS on success, else AXIS2_FAILURE </dd></dl>

</div>
</div><p>
<a class="anchor" name="gb74832ea66fe6c054f540848045fd417"></a><!-- doxytag: member="axis2_op.h::axis2_op_set_rest_http_location" ref="gb74832ea66fe6c054f540848045fd417" args="(axis2_op_t *op, const axutil_env_t *env, const axis2_char_t *rest_http_location)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">AXIS2_EXTERN axis2_status_t axis2_op_set_rest_http_location           </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="group__axis2__op.html#g13ff0e97eb92c0681768b60a93bf1bc9">axis2_op_t</a> *&nbsp;</td>
          <td class="paramname"> <em>op</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const <a class="el" href="structaxutil__env.html">axutil_env_t</a> *&nbsp;</td>
          <td class="paramname"> <em>env</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const axis2_char_t *&nbsp;</td>
          <td class="paramname"> <em>rest_http_location</em></td><td>&nbsp;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td><td width="100%"></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
Sets HTTP Location for RESTful Services. <dl compact><dt><b>Parameters:</b></dt><dd>
  <table border="0" cellspacing="2" cellpadding="0">
    <tr><td valign="top"></td><td valign="top"><em>op</em>&nbsp;</td><td>pointer to operation </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>env</em>&nbsp;</td><td>pointer to environment struct </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>rest_http_location</em>&nbsp;</td><td>HTTP Location string, operation does not assume ownership of rest_http_location. </td></tr>
  </table>
</dl>
<dl class="return" compact><dt><b>Returns:</b></dt><dd>AXIS2_SUCCESS on success, else AXIS2_FAILURE </dd></dl>

</div>
</div><p>
<a class="anchor" name="gf94055dea4ef812645371eede4935db2"></a><!-- doxytag: member="axis2_op.h::axis2_op_set_rest_http_method" ref="gf94055dea4ef812645371eede4935db2" args="(axis2_op_t *op, const axutil_env_t *env, const axis2_char_t *rest_http_method)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">AXIS2_EXTERN axis2_status_t axis2_op_set_rest_http_method           </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="group__axis2__op.html#g13ff0e97eb92c0681768b60a93bf1bc9">axis2_op_t</a> *&nbsp;</td>
          <td class="paramname"> <em>op</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const <a class="el" href="structaxutil__env.html">axutil_env_t</a> *&nbsp;</td>
          <td class="paramname"> <em>env</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const axis2_char_t *&nbsp;</td>
          <td class="paramname"> <em>rest_http_method</em></td><td>&nbsp;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td><td width="100%"></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
Sets HTTP Method for RESTful Services. <dl compact><dt><b>Parameters:</b></dt><dd>
  <table border="0" cellspacing="2" cellpadding="0">
    <tr><td valign="top"></td><td valign="top"><em>op</em>&nbsp;</td><td>pointer to operation </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>env</em>&nbsp;</td><td>pointer to environment struct </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>rest_http_method</em>&nbsp;</td><td>HTTP Method string, operation does not assume ownership of rest_http_method. </td></tr>
  </table>
</dl>
<dl class="return" compact><dt><b>Returns:</b></dt><dd>AXIS2_SUCCESS on success, else AXIS2_FAILURE </dd></dl>

</div>
</div><p>
<a class="anchor" name="g49c363288528fd63b48030a0f9bc4149"></a><!-- doxytag: member="axis2_op.h::axis2_op_set_style" ref="g49c363288528fd63b48030a0f9bc4149" args="(axis2_op_t *op, const axutil_env_t *env, const axis2_char_t *style)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">AXIS2_EXTERN axis2_status_t axis2_op_set_style           </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="group__axis2__op.html#g13ff0e97eb92c0681768b60a93bf1bc9">axis2_op_t</a> *&nbsp;</td>
          <td class="paramname"> <em>op</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const <a class="el" href="structaxutil__env.html">axutil_env_t</a> *&nbsp;</td>
          <td class="paramname"> <em>env</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const axis2_char_t *&nbsp;</td>
          <td class="paramname"> <em>style</em></td><td>&nbsp;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td><td width="100%"></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
Sets style of operation. Style is that mentioned in WSDL, either RPC or document literal. <dl compact><dt><b>Parameters:</b></dt><dd>
  <table border="0" cellspacing="2" cellpadding="0">
    <tr><td valign="top"></td><td valign="top"><em>op</em>&nbsp;</td><td>pointer to operation </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>env</em>&nbsp;</td><td>pointer to environment struct </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>style</em>&nbsp;</td><td>string representing style </td></tr>
  </table>
</dl>
<dl class="return" compact><dt><b>Returns:</b></dt><dd>AXIS2_SUCCESS on success, else AXIS2_FAILURE </dd></dl>

</div>
</div><p>
<a class="anchor" name="g40970b24e863c1073914adcdd8fcfbb1"></a><!-- doxytag: member="axis2_op.h::axis2_op_set_wsamapping_list" ref="g40970b24e863c1073914adcdd8fcfbb1" args="(axis2_op_t *op, const axutil_env_t *env, axutil_array_list_t *mapping_list)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">AXIS2_EXTERN axis2_status_t axis2_op_set_wsamapping_list           </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="group__axis2__op.html#g13ff0e97eb92c0681768b60a93bf1bc9">axis2_op_t</a> *&nbsp;</td>
          <td class="paramname"> <em>op</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const <a class="el" href="structaxutil__env.html">axutil_env_t</a> *&nbsp;</td>
          <td class="paramname"> <em>env</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype"><a class="el" href="group__axutil__array__list.html#g1a6a89777db876cfa0cc86787b7be6a0">axutil_array_list_t</a> *&nbsp;</td>
          <td class="paramname"> <em>mapping_list</em></td><td>&nbsp;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td><td width="100%"></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
Set the wsamapping list. <dl compact><dt><b>Parameters:</b></dt><dd>
  <table border="0" cellspacing="2" cellpadding="0">
    <tr><td valign="top"></td><td valign="top"><em>op</em>&nbsp;</td><td>pointer to operation </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>env</em>&nbsp;</td><td>pointer to environment struct </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>mapping_list</em>&nbsp;</td><td>list of action mappings </td></tr>
  </table>
</dl>
<dl class="return" compact><dt><b>Returns:</b></dt><dd>AXIS2_SUCCESS on success, else AXIS2_FAILURE </dd></dl>

</div>
</div><p>
<hr size="1"><address style="text-align: right;"><small>Generated on Fri Apr 17 11:49:45 2009 for Axis2/C by&nbsp;
<a href="http://www.doxygen.org/index.html">
<img src="doxygen.png" alt="doxygen" align="middle" border="0"></a> 1.5.3 </small></address>
</body>
</html>


<|start_filename|>xdocs/api/html/axutil__env_8h.html<|end_filename|>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html><head><meta http-equiv="Content-Type" content="text/html;charset=UTF-8">
<title>Axis2/C: axutil_env.h File Reference</title>
<link href="doxygen.css" rel="stylesheet" type="text/css">
<link href="tabs.css" rel="stylesheet" type="text/css">
</head><body>
<!-- Generated by Doxygen 1.5.3 -->
<div class="tabs">
  <ul>
    <li><a href="index.html"><span>Main&nbsp;Page</span></a></li>
    <li><a href="modules.html"><span>Modules</span></a></li>
    <li><a href="annotated.html"><span>Classes</span></a></li>
    <li class="current"><a href="files.html"><span>Files</span></a></li>
    <li><a href="dirs.html"><span>Directories</span></a></li>
    <li><a href="pages.html"><span>Related&nbsp;Pages</span></a></li>
    <li><a href="examples.html"><span>Examples</span></a></li>
    <li>
      <form action="search.php" method="get">
        <table cellspacing="0" cellpadding="0" border="0">
          <tr>
            <td><label>&nbsp;<u>S</u>earch&nbsp;for&nbsp;</label></td>
            <td><input type="text" name="query" value="" size="20" accesskey="s"/></td>
          </tr>
        </table>
      </form>
    </li>
  </ul>
</div>
<div class="nav">
<a class="el" href="dir_f60961de8e5edc3b2658ef023e959e45.html">deploy</a>&nbsp;&raquo&nbsp;<a class="el" href="dir_6b4e91e54b7316b376882a6402adbf44.html">include</a>&nbsp;&raquo&nbsp;<a class="el" href="dir_df3a7695d5a9e696f30b948b566829e7.html">axis2-1.6.0</a></div>
<h1>axutil_env.h File Reference</h1>Axis2 environment that acts as a container for error, log and memory allocator routines. <a href="#_details">More...</a>
<p>
<code>#include &lt;<a class="el" href="axutil__allocator_8h-source.html">axutil_allocator.h</a>&gt;</code><br>
<code>#include &lt;axutil_error.h&gt;</code><br>
<code>#include &lt;axutil_log.h&gt;</code><br>
<code>#include &lt;<a class="el" href="axutil__thread__pool_8h-source.html">axutil_thread_pool.h</a>&gt;</code><br>

<p>
<a href="axutil__env_8h-source.html">Go to the source code of this file.</a><table border="0" cellpadding="0" cellspacing="0">
<tr><td></td></tr>
<tr><td colspan="2"><br><h2>Classes</h2></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top">struct &nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="structaxutil__env.html">axutil_env</a></td></tr>

<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Axis2 Environment struct.  <a href="structaxutil__env.html#_details">More...</a><br></td></tr>
<tr><td colspan="2"><br><h2>Defines</h2></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="g447fa899e815a5ead66d7d11b3ec9b64"></a><!-- doxytag: member="axutil_env.h::AXIS_ENV_FREE_LOG" ref="g447fa899e815a5ead66d7d11b3ec9b64" args="" -->
#define&nbsp;</td><td class="memItemRight" valign="bottom"><b>AXIS_ENV_FREE_LOG</b>&nbsp;&nbsp;&nbsp;0x1</td></tr>

<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="g7e82bfc152825a777665e7acf05a682f"></a><!-- doxytag: member="axutil_env.h::AXIS_ENV_FREE_ERROR" ref="g7e82bfc152825a777665e7acf05a682f" args="" -->
#define&nbsp;</td><td class="memItemRight" valign="bottom"><b>AXIS_ENV_FREE_ERROR</b>&nbsp;&nbsp;&nbsp;0x2</td></tr>

<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="g79f0bf625d0f1496c0bfba6089b8b158"></a><!-- doxytag: member="axutil_env.h::AXIS_ENV_FREE_THREADPOOL" ref="g79f0bf625d0f1496c0bfba6089b8b158" args="" -->
#define&nbsp;</td><td class="memItemRight" valign="bottom"><b>AXIS_ENV_FREE_THREADPOOL</b>&nbsp;&nbsp;&nbsp;0x4</td></tr>

<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="g82b7c5dfb8ae2c8f79565619d3f832ee"></a><!-- doxytag: member="axutil_env.h::AXIS2_ENV_CHECK" ref="g82b7c5dfb8ae2c8f79565619d3f832ee" args="(env, error_return)" -->
#define&nbsp;</td><td class="memItemRight" valign="bottom"><b>AXIS2_ENV_CHECK</b>(env, error_return)</td></tr>

<tr><td colspan="2"><br><h2>Typedefs</h2></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top">typedef struct <a class="el" href="structaxutil__env.html">axutil_env</a>&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__axutil__env.html#gd1083f9198686518871a41ce0e08cd0a">axutil_env_t</a></td></tr>

<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Axis2 Environment struct.  <a href="group__axutil__env.html#gd1083f9198686518871a41ce0e08cd0a"></a><br></td></tr>
<tr><td colspan="2"><br><h2>Functions</h2></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top">AXIS2_EXTERN <br>
<a class="el" href="structaxutil__env.html">axutil_env_t</a> *&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__axutil__env.html#g136fef9fc5d4e435f40a0949375d324d">axutil_env_create</a> (<a class="el" href="structaxutil__allocator.html">axutil_allocator_t</a> *allocator)</td></tr>

<tr><td class="memItemLeft" nowrap align="right" valign="top">AXIS2_EXTERN <br>
<a class="el" href="structaxutil__env.html">axutil_env_t</a> *&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__axutil__env.html#g2dc8a2c80be26e619410e196725a9599">axutil_env_create_all</a> (const axis2_char_t *log_file, const <a class="el" href="group__axutil__log.html#g0c477f6f8724a6258a9caaabfcf2c482">axutil_log_levels_t</a> log_level)</td></tr>

<tr><td class="memItemLeft" nowrap align="right" valign="top">AXIS2_EXTERN <br>
<a class="el" href="structaxutil__env.html">axutil_env_t</a> *&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__axutil__env.html#gbab7fef475986db1dfcf5c3cec7e5b6b">axutil_env_create_with_error</a> (<a class="el" href="structaxutil__allocator.html">axutil_allocator_t</a> *allocator, <a class="el" href="structaxutil__error.html">axutil_error_t</a> *error)</td></tr>

<tr><td class="memItemLeft" nowrap align="right" valign="top">AXIS2_EXTERN <br>
<a class="el" href="structaxutil__env.html">axutil_env_t</a> *&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__axutil__env.html#g69b71ca4f32dffb546a225e8f018256e">axutil_env_create_with_error_log</a> (<a class="el" href="structaxutil__allocator.html">axutil_allocator_t</a> *allocator, <a class="el" href="structaxutil__error.html">axutil_error_t</a> *error, <a class="el" href="structaxutil__log.html">axutil_log_t</a> *log)</td></tr>

<tr><td class="memItemLeft" nowrap align="right" valign="top">AXIS2_EXTERN <br>
<a class="el" href="structaxutil__env.html">axutil_env_t</a> *&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__axutil__env.html#g354311dd06dcbb5cb4e2d6ec2532e8a6">axutil_env_create_with_error_log_thread_pool</a> (<a class="el" href="structaxutil__allocator.html">axutil_allocator_t</a> *allocator, <a class="el" href="structaxutil__error.html">axutil_error_t</a> *error, <a class="el" href="structaxutil__log.html">axutil_log_t</a> *log, axutil_thread_pool_t *pool)</td></tr>

<tr><td class="memItemLeft" nowrap align="right" valign="top">AXIS2_EXTERN <br>
axis2_status_t&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__axutil__env.html#g3a5d8481e405b8b63bd05df9b33b9ccd">axutil_env_enable_log</a> (<a class="el" href="structaxutil__env.html">axutil_env_t</a> *env, axis2_bool_t enable)</td></tr>

<tr><td class="memItemLeft" nowrap align="right" valign="top">AXIS2_EXTERN <br>
axis2_status_t&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__axutil__env.html#g14eb39c983da990a3cdc5d2505a3ab31">axutil_env_check_status</a> (const <a class="el" href="structaxutil__env.html">axutil_env_t</a> *env)</td></tr>

<tr><td class="memItemLeft" nowrap align="right" valign="top">AXIS2_EXTERN void&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__axutil__env.html#g35511f188ef8470bec29c255e84217db">axutil_env_free</a> (<a class="el" href="structaxutil__env.html">axutil_env_t</a> *env)</td></tr>

<tr><td class="memItemLeft" nowrap align="right" valign="top">AXIS2_EXTERN void&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__axutil__env.html#g538c867378b066cd37390a8a0589f6cb">axutil_env_free_masked</a> (<a class="el" href="structaxutil__env.html">axutil_env_t</a> *env, char mask)</td></tr>

<tr><td class="memItemLeft" nowrap align="right" valign="top">AXIS2_EXTERN <br>
axis2_status_t&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__axutil__env.html#g5ea411964e441ce76a071a1ac3a08a78">axutil_env_increment_ref</a> (<a class="el" href="structaxutil__env.html">axutil_env_t</a> *env)</td></tr>

</table>
<hr><a name="_details"></a><h2>Detailed Description</h2>
Axis2 environment that acts as a container for error, log and memory allocator routines. 
<p>
<hr size="1"><address style="text-align: right;"><small>Generated on Fri Apr 17 11:49:43 2009 for Axis2/C by&nbsp;
<a href="http://www.doxygen.org/index.html">
<img src="doxygen.png" alt="doxygen" align="middle" border="0"></a> 1.5.3 </small></address>
</body>
</html>


<|start_filename|>util/test/allocator/allocator_test.c<|end_filename|>
#include <axutil_log_default.h>
#include <axutil_error_default.h>
#include <axiom_node.h>
#include <stdio.h>
#include "../util/create_env.h"

int plain_binary_len;
unsigned char *plain_binary ;

/** @brief read binary
 *  read the binary file 
 */

int read_binary()
{
      unsigned char buffer[1024];
      FILE *in = fopen("test","rb");
      FILE *out = fopen("test.doc","w");
      int fwrite_result = 0;

      if (!(in && out))
      {
          fprintf (stderr, "unable to open streams\n");
          return -1;
      }

      while((plain_binary_len = fread(buffer,1,sizeof(buffer),in)) > 0)
      {
          fwrite_result = fwrite(buffer,1,plain_binary_len,out);
      }

      fclose(in);
      fclose(out);
      plain_binary = buffer;
      printf("%s",buffer);
      return plain_binary_len;
}

/** @brief test base64
 *  create duration from values and retrieve values
 */
axis2_status_t test_base64(axutil_env_t *env)
{  
    axis2_status_t status = AXIS2_FAILURE;
    axutil_base64_binary_t *base64_binary;
    axutil_base64_binary_t *plain_base64_binary;
    const char *encoded_binary;
    char * get_binary = NULL;
    int binary_len;
    unsigned char * plain_binary = NULL;
    read_binary(); 

    base64_binary = axutil_base64_binary_create(env);
    if(!base64_binary)
    {
        printf("The test axutil_base64_binary_create is failed\n");
        axutil_base64_binary_free(base64_binary,env);
        return AXIS2_FAILURE;
    }
    else 
        printf("The test axutil_base64_binary_create is successfull\n");

    plain_base64_binary = axutil_base64_binary_create_with_plain_binary(env,
                                                                        plain_binary,
                                                                        plain_binary_len); 
    if(!plain_base64_binary)
    {
        printf("The test axutil_base64_binary_create_with_plain_binary is failed\n");
        axutil_base64_binary_free(plain_base64_binary,env);
    }
    else
        printf("The test axutil_base64_binary_create_with_plain_binary is successfull\n");

    encoded_binary = axutil_base64_binary_get_encoded_binary(base64_binary,env);
    if(!encoded_binary)
    {
        printf("The test axutil_base64_binary_get_encoded_binary is failed\n");
        axutil_base64_binary_free(base64_binary,env);
    }
    else
        printf("The test axutil_base64_binary_get_encoded_binary is successfull\n");

    status = axutil_base64_binary_set_plain_binary(base64_binary,env,plain_binary,
                                                   plain_binary_len);
    if (status == AXIS2_SUCCESS)
        printf("The test axutil_base64_binary_set_plain_binary is successful\n");
    else
        printf("The test axutil_base64_binary_set_plain_binary failed\n") ;

    plain_binary = axutil_base64_binary_get_plain_binary(base64_binary,env,&plain_binary_len);
    if(!plain_binary)
    {   
        printf("The test axutil_base64_binary_get_plain_binary is failed\n");
        axutil_base64_binary_free(base64_binary,env);
    }
    else
        printf("The test axutil_base64_binary_get_plain_binary is successfull\n" );

    status = axutil_base64_binary_set_encoded_binary(base64_binary,env,encoded_binary);
    if (status == AXIS2_SUCCESS)
        printf("The test axutil_base64_binary_set_encoded_binary is successful\n");
    else
        printf("The test axutil_base64_binary_set_encoded_binary failed\n");

    get_binary = axutil_base64_binary_get_encoded_binary(base64_binary,env);
    if(!get_binary)
    {
        printf("The test axutil_base64_binary_get_encoded_binary is failed\n");
        axutil_base64_binary_free(base64_binary,env);
    }
    else
        printf("The test axutil_base64_binary_get_encoded_binary is successfull\n");

    binary_len = axutil_base64_binary_get_encoded_binary_len(base64_binary,env);
    if(!binary_len)
    {
        printf("The test axutil_base64_binary_get_encoded_binary_len is failed\n");
        axutil_base64_binary_free(base64_binary,env);
    }
    else
        printf("The test  axutil_base64_binary_get_encoded_binary_len is successfull\n");

    return AXIS2_SUCCESS;
}

int main()
{
    int status = AXIS2_SUCCESS;
    axutil_env_t *env = NULL;
    env = create_environment();
    status = test_base64(env);

    if(status == AXIS2_FAILURE)
    {
        printf("build  failed");
    }
    axutil_env_free(env);
    return 0;
}










<|start_filename|>xdocs/api/html/group__axis2__handler.html<|end_filename|>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html><head><meta http-equiv="Content-Type" content="text/html;charset=UTF-8">
<title>Axis2/C: handler</title>
<link href="doxygen.css" rel="stylesheet" type="text/css">
<link href="tabs.css" rel="stylesheet" type="text/css">
</head><body>
<!-- Generated by Doxygen 1.5.3 -->
<div class="tabs">
  <ul>
    <li><a href="index.html"><span>Main&nbsp;Page</span></a></li>
    <li><a href="modules.html"><span>Modules</span></a></li>
    <li><a href="annotated.html"><span>Classes</span></a></li>
    <li><a href="files.html"><span>Files</span></a></li>
    <li><a href="dirs.html"><span>Directories</span></a></li>
    <li><a href="pages.html"><span>Related&nbsp;Pages</span></a></li>
    <li><a href="examples.html"><span>Examples</span></a></li>
    <li>
      <form action="search.php" method="get">
        <table cellspacing="0" cellpadding="0" border="0">
          <tr>
            <td><label>&nbsp;<u>S</u>earch&nbsp;for&nbsp;</label></td>
            <td><input type="text" name="query" value="" size="20" accesskey="s"/></td>
          </tr>
        </table>
      </form>
    </li>
  </ul>
</div>
<h1>handler</h1><table border="0" cellpadding="0" cellspacing="0">
<tr><td></td></tr>
<tr><td colspan="2"><br><h2>Files</h2></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top">file &nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="axis2__handler_8h.html">axis2_handler.h</a></td></tr>

<tr><td colspan="2"><br><h2>Typedefs</h2></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top">typedef struct <br>
axis2_handler&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__axis2__handler.html#g62e76f39f224fb84e98b6b77fdf4655c">axis2_handler_t</a></td></tr>

<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="g2c528673112976486f57a552795378f0"></a><!-- doxytag: member="axis2_handler::AXIS2_HANDLER_INVOKE" ref="g2c528673112976486f57a552795378f0" args=")(axis2_handler_t *handler, const axutil_env_t *env, struct axis2_msg_ctx *msg_ctx)" -->
typedef axis2_status_t(*&nbsp;</td><td class="memItemRight" valign="bottom"><b>AXIS2_HANDLER_INVOKE</b> )(<a class="el" href="group__axis2__handler.html#g62e76f39f224fb84e98b6b77fdf4655c">axis2_handler_t</a> *handler, const <a class="el" href="structaxutil__env.html">axutil_env_t</a> *env, struct axis2_msg_ctx *msg_ctx)</td></tr>

<tr><td class="memItemLeft" nowrap align="right" valign="top">typedef <br>
<a class="el" href="group__axis2__handler.html#g62e76f39f224fb84e98b6b77fdf4655c">axis2_handler_t</a> *(*&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__axis2__handler.html#g097dac3689f86e2e189065c772a551f8">AXIS2_HANDLER_CREATE_FUNC</a> )(const <a class="el" href="structaxutil__env.html">axutil_env_t</a> *env, const axutil_string_t *name)</td></tr>

<tr><td colspan="2"><br><h2>Functions</h2></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top">AXIS2_EXTERN void&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__axis2__handler.html#g1e0beec4adf09b9326565095bec4691a">axis2_handler_free</a> (<a class="el" href="group__axis2__handler.html#g62e76f39f224fb84e98b6b77fdf4655c">axis2_handler_t</a> *handler, const <a class="el" href="structaxutil__env.html">axutil_env_t</a> *env)</td></tr>

<tr><td class="memItemLeft" nowrap align="right" valign="top">AXIS2_EXTERN <br>
axis2_status_t&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__axis2__handler.html#g2c33a42d1670dbe42f287a5e3d6dfd1d">axis2_handler_init</a> (<a class="el" href="group__axis2__handler.html#g62e76f39f224fb84e98b6b77fdf4655c">axis2_handler_t</a> *handler, const <a class="el" href="structaxutil__env.html">axutil_env_t</a> *env, struct axis2_handler_desc *handler_desc)</td></tr>

<tr><td class="memItemLeft" nowrap align="right" valign="top">AXIS2_EXTERN <br>
axis2_status_t&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__axis2__handler.html#gf53f1c483110e9e371069a9d87985742">axis2_handler_invoke</a> (<a class="el" href="group__axis2__handler.html#g62e76f39f224fb84e98b6b77fdf4655c">axis2_handler_t</a> *handler, const <a class="el" href="structaxutil__env.html">axutil_env_t</a> *env, struct axis2_msg_ctx *msg_ctx)</td></tr>

<tr><td class="memItemLeft" nowrap align="right" valign="top">AXIS2_EXTERN const <br>
axutil_string_t *&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__axis2__handler.html#g155435ede9e1fcbe13b28dc321601216">axis2_handler_get_name</a> (const <a class="el" href="group__axis2__handler.html#g62e76f39f224fb84e98b6b77fdf4655c">axis2_handler_t</a> *handler, const <a class="el" href="structaxutil__env.html">axutil_env_t</a> *env)</td></tr>

<tr><td class="memItemLeft" nowrap align="right" valign="top">AXIS2_EXTERN <br>
axutil_param_t *&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__axis2__handler.html#g6359a617f32df26f912923d4c73f695a">axis2_handler_get_param</a> (const <a class="el" href="group__axis2__handler.html#g62e76f39f224fb84e98b6b77fdf4655c">axis2_handler_t</a> *handler, const <a class="el" href="structaxutil__env.html">axutil_env_t</a> *env, const axis2_char_t *name)</td></tr>

<tr><td class="memItemLeft" nowrap align="right" valign="top">AXIS2_EXTERN struct <br>
axis2_handler_desc *&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__axis2__handler.html#g68ed525c6303fcf9cda284eef07b270e">axis2_handler_get_handler_desc</a> (const <a class="el" href="group__axis2__handler.html#g62e76f39f224fb84e98b6b77fdf4655c">axis2_handler_t</a> *handler, const <a class="el" href="structaxutil__env.html">axutil_env_t</a> *env)</td></tr>

<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="g57900872f5ba915d669bc0e3e243d6de"></a><!-- doxytag: member="axis2_handler::axis2_handler_set_invoke" ref="g57900872f5ba915d669bc0e3e243d6de" args="(axis2_handler_t *handler, const axutil_env_t *env, AXIS2_HANDLER_INVOKE func)" -->
AXIS2_EXTERN <br>
axis2_status_t&nbsp;</td><td class="memItemRight" valign="bottom"><b>axis2_handler_set_invoke</b> (<a class="el" href="group__axis2__handler.html#g62e76f39f224fb84e98b6b77fdf4655c">axis2_handler_t</a> *handler, const <a class="el" href="structaxutil__env.html">axutil_env_t</a> *env, AXIS2_HANDLER_INVOKE func)</td></tr>

<tr><td class="memItemLeft" nowrap align="right" valign="top">AXIS2_EXTERN <br>
<a class="el" href="group__axis2__handler.html#g62e76f39f224fb84e98b6b77fdf4655c">axis2_handler_t</a> *&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__axis2__handler.html#gf6ebc6af97f6e0f7f3709c3b474cb1e3">axis2_handler_create</a> (const <a class="el" href="structaxutil__env.html">axutil_env_t</a> *env)</td></tr>

<tr><td class="memItemLeft" nowrap align="right" valign="top">AXIS2_EXTERN <br>
<a class="el" href="group__axis2__handler.html#g62e76f39f224fb84e98b6b77fdf4655c">axis2_handler_t</a> *&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__axis2__handler.html#geebcba75e6b92e7f3fa9ab4492390194">axis2_ctx_handler_create</a> (const <a class="el" href="structaxutil__env.html">axutil_env_t</a> *env, const axutil_string_t *qname)</td></tr>

</table>
<hr><a name="_details"></a><h2>Detailed Description</h2>
handler is the smallest unit of execution in the Axis2 engine's execution flow. The engine could have two flows, the in-flow and out-flow. A flow is a collection of phases and a phase in turn is a collection of handlers. handlers are configured in relation to modules. A module is a point of extension in the Axis2 engine and a module would have one or more handlers defined in its configuration. The module configuration defines the phases each handler is attached to. A handler is invoked when the phase within which it lives is invoked. handler is stateless and it is using the message context that the state information is captures across invocations. <hr><h2>Typedef Documentation</h2>
<a class="anchor" name="g097dac3689f86e2e189065c772a551f8"></a><!-- doxytag: member="axis2_handler.h::AXIS2_HANDLER_CREATE_FUNC" ref="g097dac3689f86e2e189065c772a551f8" args=")(const axutil_env_t *env, const axutil_string_t *name)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">typedef <a class="el" href="group__axis2__handler.html#g62e76f39f224fb84e98b6b77fdf4655c">axis2_handler_t</a>*( *  <a class="el" href="group__axis2__handler.html#g097dac3689f86e2e189065c772a551f8">AXIS2_HANDLER_CREATE_FUNC</a>)(const <a class="el" href="structaxutil__env.html">axutil_env_t</a> *env, const axutil_string_t *name)          </td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
Function pointer defining the creates syntax for a handler struct instance. <dl compact><dt><b>Parameters:</b></dt><dd>
  <table border="0" cellspacing="2" cellpadding="0">
    <tr><td valign="top"></td><td valign="top"><em>env</em>&nbsp;</td><td>pointer to environment struct </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>pointer</em>&nbsp;</td><td>to qname </td></tr>
  </table>
</dl>
<dl class="return" compact><dt><b>Returns:</b></dt><dd>pointer to newly created handler struct </dd></dl>

</div>
</div><p>
<a class="anchor" name="g62e76f39f224fb84e98b6b77fdf4655c"></a><!-- doxytag: member="axis2_handler.h::axis2_handler_t" ref="g62e76f39f224fb84e98b6b77fdf4655c" args="" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">typedef struct axis2_handler <a class="el" href="group__axis2__handler.html#g62e76f39f224fb84e98b6b77fdf4655c">axis2_handler_t</a>          </td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
Type name for struct axis2_handler 
</div>
</div><p>
<hr><h2>Function Documentation</h2>
<a class="anchor" name="geebcba75e6b92e7f3fa9ab4492390194"></a><!-- doxytag: member="axis2_handler.h::axis2_ctx_handler_create" ref="geebcba75e6b92e7f3fa9ab4492390194" args="(const axutil_env_t *env, const axutil_string_t *qname)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">AXIS2_EXTERN <a class="el" href="group__axis2__handler.html#g62e76f39f224fb84e98b6b77fdf4655c">axis2_handler_t</a>* axis2_ctx_handler_create           </td>
          <td>(</td>
          <td class="paramtype">const <a class="el" href="structaxutil__env.html">axutil_env_t</a> *&nbsp;</td>
          <td class="paramname"> <em>env</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const axutil_string_t *&nbsp;</td>
          <td class="paramname"> <em>qname</em></td><td>&nbsp;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td><td width="100%"></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
Creates a handler with invoke method implemented to fill in the service and operation context information. <dl compact><dt><b>Parameters:</b></dt><dd>
  <table border="0" cellspacing="2" cellpadding="0">
    <tr><td valign="top"></td><td valign="top"><em>env</em>&nbsp;</td><td>pointer to environment struct </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>qname</em>&nbsp;</td><td>pointer to qname, this is cloned within create method </td></tr>
  </table>
</dl>
<dl class="return" compact><dt><b>Returns:</b></dt><dd>pointer to newly created handler struct </dd></dl>

</div>
</div><p>
<a class="anchor" name="gf6ebc6af97f6e0f7f3709c3b474cb1e3"></a><!-- doxytag: member="axis2_handler.h::axis2_handler_create" ref="gf6ebc6af97f6e0f7f3709c3b474cb1e3" args="(const axutil_env_t *env)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">AXIS2_EXTERN <a class="el" href="group__axis2__handler.html#g62e76f39f224fb84e98b6b77fdf4655c">axis2_handler_t</a>* axis2_handler_create           </td>
          <td>(</td>
          <td class="paramtype">const <a class="el" href="structaxutil__env.html">axutil_env_t</a> *&nbsp;</td>
          <td class="paramname"> <em>env</em>          </td>
          <td>&nbsp;)&nbsp;</td>
          <td width="100%"></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
Creates handler struct instance. <dl compact><dt><b>Parameters:</b></dt><dd>
  <table border="0" cellspacing="2" cellpadding="0">
    <tr><td valign="top"></td><td valign="top"><em>env</em>&nbsp;</td><td>pointer to environment struct </td></tr>
  </table>
</dl>
<dl class="return" compact><dt><b>Returns:</b></dt><dd>pointer to newly created handler struct </dd></dl>

</div>
</div><p>
<a class="anchor" name="g1e0beec4adf09b9326565095bec4691a"></a><!-- doxytag: member="axis2_handler.h::axis2_handler_free" ref="g1e0beec4adf09b9326565095bec4691a" args="(axis2_handler_t *handler, const axutil_env_t *env)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">AXIS2_EXTERN void axis2_handler_free           </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="group__axis2__handler.html#g62e76f39f224fb84e98b6b77fdf4655c">axis2_handler_t</a> *&nbsp;</td>
          <td class="paramname"> <em>handler</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const <a class="el" href="structaxutil__env.html">axutil_env_t</a> *&nbsp;</td>
          <td class="paramname"> <em>env</em></td><td>&nbsp;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td><td width="100%"></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
Free handler struct. <dl compact><dt><b>Parameters:</b></dt><dd>
  <table border="0" cellspacing="2" cellpadding="0">
    <tr><td valign="top"></td><td valign="top"><em>handler</em>&nbsp;</td><td>pointer to handler </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>env</em>&nbsp;</td><td>pointer to environment struct </td></tr>
  </table>
</dl>
<dl class="return" compact><dt><b>Returns:</b></dt><dd>AXIS2_SUCCESS on success, else AXIS2_FAILURE </dd></dl>

</div>
</div><p>
<a class="anchor" name="g68ed525c6303fcf9cda284eef07b270e"></a><!-- doxytag: member="axis2_handler.h::axis2_handler_get_handler_desc" ref="g68ed525c6303fcf9cda284eef07b270e" args="(const axis2_handler_t *handler, const axutil_env_t *env)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">AXIS2_EXTERN struct axis2_handler_desc* axis2_handler_get_handler_desc           </td>
          <td>(</td>
          <td class="paramtype">const <a class="el" href="group__axis2__handler.html#g62e76f39f224fb84e98b6b77fdf4655c">axis2_handler_t</a> *&nbsp;</td>
          <td class="paramname"> <em>handler</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const <a class="el" href="structaxutil__env.html">axutil_env_t</a> *&nbsp;</td>
          <td class="paramname"> <em>env</em></td><td>&nbsp;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td><td width="100%"><code> [read]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
Gets the handler description related to the handler. <dl compact><dt><b>Parameters:</b></dt><dd>
  <table border="0" cellspacing="2" cellpadding="0">
    <tr><td valign="top"></td><td valign="top"><em>handler</em>&nbsp;</td><td>pointer to handler </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>env</em>&nbsp;</td><td>pointer to environment struct </td></tr>
  </table>
</dl>
<dl class="return" compact><dt><b>Returns:</b></dt><dd>pointer to handler description struct related to handler </dd></dl>

</div>
</div><p>
<a class="anchor" name="g155435ede9e1fcbe13b28dc321601216"></a><!-- doxytag: member="axis2_handler.h::axis2_handler_get_name" ref="g155435ede9e1fcbe13b28dc321601216" args="(const axis2_handler_t *handler, const axutil_env_t *env)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">AXIS2_EXTERN const axutil_string_t* axis2_handler_get_name           </td>
          <td>(</td>
          <td class="paramtype">const <a class="el" href="group__axis2__handler.html#g62e76f39f224fb84e98b6b77fdf4655c">axis2_handler_t</a> *&nbsp;</td>
          <td class="paramname"> <em>handler</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const <a class="el" href="structaxutil__env.html">axutil_env_t</a> *&nbsp;</td>
          <td class="paramname"> <em>env</em></td><td>&nbsp;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td><td width="100%"></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
Gets QName. <dl compact><dt><b>Parameters:</b></dt><dd>
  <table border="0" cellspacing="2" cellpadding="0">
    <tr><td valign="top"></td><td valign="top"><em>handler</em>&nbsp;</td><td>pointer to handler </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>env</em>&nbsp;</td><td>pointer to environment struct </td></tr>
  </table>
</dl>
<dl class="return" compact><dt><b>Returns:</b></dt><dd>pointer to QName of the handler </dd></dl>

</div>
</div><p>
<a class="anchor" name="g6359a617f32df26f912923d4c73f695a"></a><!-- doxytag: member="axis2_handler.h::axis2_handler_get_param" ref="g6359a617f32df26f912923d4c73f695a" args="(const axis2_handler_t *handler, const axutil_env_t *env, const axis2_char_t *name)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">AXIS2_EXTERN axutil_param_t* axis2_handler_get_param           </td>
          <td>(</td>
          <td class="paramtype">const <a class="el" href="group__axis2__handler.html#g62e76f39f224fb84e98b6b77fdf4655c">axis2_handler_t</a> *&nbsp;</td>
          <td class="paramname"> <em>handler</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const <a class="el" href="structaxutil__env.html">axutil_env_t</a> *&nbsp;</td>
          <td class="paramname"> <em>env</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const axis2_char_t *&nbsp;</td>
          <td class="paramname"> <em>name</em></td><td>&nbsp;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td><td width="100%"></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
Gets the named parameter. <dl compact><dt><b>Parameters:</b></dt><dd>
  <table border="0" cellspacing="2" cellpadding="0">
    <tr><td valign="top"></td><td valign="top"><em>handler</em>&nbsp;</td><td>pointer to handler </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>env</em>&nbsp;</td><td>pointer to environment struct </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>name</em>&nbsp;</td><td>name of the parameter to be accessed </td></tr>
  </table>
</dl>

</div>
</div><p>
<a class="anchor" name="g2c33a42d1670dbe42f287a5e3d6dfd1d"></a><!-- doxytag: member="axis2_handler.h::axis2_handler_init" ref="g2c33a42d1670dbe42f287a5e3d6dfd1d" args="(axis2_handler_t *handler, const axutil_env_t *env, struct axis2_handler_desc *handler_desc)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">AXIS2_EXTERN axis2_status_t axis2_handler_init           </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="group__axis2__handler.html#g62e76f39f224fb84e98b6b77fdf4655c">axis2_handler_t</a> *&nbsp;</td>
          <td class="paramname"> <em>handler</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const <a class="el" href="structaxutil__env.html">axutil_env_t</a> *&nbsp;</td>
          <td class="paramname"> <em>env</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">struct axis2_handler_desc *&nbsp;</td>
          <td class="paramname"> <em>handler_desc</em></td><td>&nbsp;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td><td width="100%"></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
Initializes the handler with the information form handler description. <dl compact><dt><b>Parameters:</b></dt><dd>
  <table border="0" cellspacing="2" cellpadding="0">
    <tr><td valign="top"></td><td valign="top"><em>handler</em>&nbsp;</td><td>pointer to handler </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>env</em>&nbsp;</td><td>pointer to environment struct </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>handler_desc</em>&nbsp;</td><td>pointer to handler description related to the handler </td></tr>
  </table>
</dl>
<dl class="return" compact><dt><b>Returns:</b></dt><dd>AXIS2_SUCCESS on success, else AXIS2_FAILURE </dd></dl>

</div>
</div><p>
<a class="anchor" name="gf53f1c483110e9e371069a9d87985742"></a><!-- doxytag: member="axis2_handler.h::axis2_handler_invoke" ref="gf53f1c483110e9e371069a9d87985742" args="(axis2_handler_t *handler, const axutil_env_t *env, struct axis2_msg_ctx *msg_ctx)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">AXIS2_EXTERN axis2_status_t axis2_handler_invoke           </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="group__axis2__handler.html#g62e76f39f224fb84e98b6b77fdf4655c">axis2_handler_t</a> *&nbsp;</td>
          <td class="paramname"> <em>handler</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const <a class="el" href="structaxutil__env.html">axutil_env_t</a> *&nbsp;</td>
          <td class="paramname"> <em>env</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">struct axis2_msg_ctx *&nbsp;</td>
          <td class="paramname"> <em>msg_ctx</em></td><td>&nbsp;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td><td width="100%"></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
Invoke is called to do the actual work assigned to the handler. The phase that owns the handler is responsible for calling invoke on top of the handler. Those structs that implement the interface of the handler should implement the logic for invoke and assign the respective function pointer to invoke operation of the ops struct. <dl compact><dt><b>Parameters:</b></dt><dd>
  <table border="0" cellspacing="2" cellpadding="0">
    <tr><td valign="top"></td><td valign="top"><em>handler</em>&nbsp;</td><td>pointer to handler </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>env</em>&nbsp;</td><td>pointer to environment struct </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>msg_ctx</em>&nbsp;</td><td>pointer to message context </td></tr>
  </table>
</dl>
<dl class="return" compact><dt><b>Returns:</b></dt><dd>AXIS2_SUCCESS on success, else AXIS2_FAILURE </dd></dl>

</div>
</div><p>
<hr size="1"><address style="text-align: right;"><small>Generated on Fri Apr 17 11:49:44 2009 for Axis2/C by&nbsp;
<a href="http://www.doxygen.org/index.html">
<img src="doxygen.png" alt="doxygen" align="middle" border="0"></a> 1.5.3 </small></address>
</body>
</html>


<|start_filename|>neethi/src/secpolicy/model/transport_binding.c<|end_filename|>

/*
 * 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.
 */

#include <rp_transport_binding.h>

struct rp_transport_binding_t
{
    rp_binding_commons_t *binding_commons;
    rp_property_t *transport_token;
    int ref;
};

AXIS2_EXTERN rp_transport_binding_t *AXIS2_CALL
rp_transport_binding_create(
    const axutil_env_t * env)
{
    rp_transport_binding_t *transport_binding = NULL;

    AXIS2_ENV_CHECK(env, NULL);

    transport_binding = (rp_transport_binding_t *) AXIS2_MALLOC(env->allocator,
                                                                sizeof
                                                                (rp_transport_binding_t));

    if (transport_binding == NULL)
    {
        AXIS2_ERROR_SET(env->error, AXIS2_ERROR_NO_MEMORY, AXIS2_FAILURE);
        return NULL;
    }
    transport_binding->binding_commons = NULL;
    transport_binding->transport_token = NULL;
    transport_binding->ref = 0;

    return transport_binding;

}

AXIS2_EXTERN void AXIS2_CALL
rp_transport_binding_free(
    rp_transport_binding_t * transport_binding,
    const axutil_env_t * env)
{
    AXIS2_ENV_CHECK(env, AXIS2_FAILURE);

    if (transport_binding)
    {
        if (--(transport_binding->ref) > 0)
        {
            return;
        }
        if (transport_binding->binding_commons)
        {
            rp_binding_commons_free(transport_binding->binding_commons, env);
            transport_binding->binding_commons = NULL;
        }
        if (transport_binding->transport_token)
        {
            rp_property_free(transport_binding->transport_token, env);
            transport_binding->transport_token = NULL;
        }
        AXIS2_FREE(env->allocator, transport_binding);
    }

    return;
}

/* Implementations */

AXIS2_EXTERN rp_binding_commons_t *AXIS2_CALL
rp_transport_binding_get_binding_commons(
    rp_transport_binding_t * transport_binding,
    const axutil_env_t * env)
{
    AXIS2_ENV_CHECK(env, NULL);

    return transport_binding->binding_commons;
}

AXIS2_EXTERN axis2_status_t AXIS2_CALL
rp_transport_binding_set_binding_commons(
    rp_transport_binding_t * transport_binding,
    const axutil_env_t * env,
    rp_binding_commons_t * binding_commons)
{
    AXIS2_ENV_CHECK(env, AXIS2_FAILURE);
    AXIS2_PARAM_CHECK(env->error, binding_commons, AXIS2_FAILURE);

    transport_binding->binding_commons = binding_commons;
    return AXIS2_SUCCESS;
}

AXIS2_EXTERN rp_property_t *AXIS2_CALL
rp_transport_binding_get_transport_token(
    rp_transport_binding_t * transport_binding,
    const axutil_env_t * env)
{
    AXIS2_ENV_CHECK(env, NULL);

    return transport_binding->transport_token;
}

AXIS2_EXTERN axis2_status_t AXIS2_CALL
rp_transport_binding_set_transport_token(
    rp_transport_binding_t * transport_binding,
    const axutil_env_t * env,
    rp_property_t * transport_token)
{
    AXIS2_ENV_CHECK(env, AXIS2_FAILURE);
    AXIS2_PARAM_CHECK(env->error, transport_token, AXIS2_FAILURE);

    rp_property_increment_ref(transport_token, env);
    transport_binding->transport_token = transport_token;
    return AXIS2_SUCCESS;
}

AXIS2_EXTERN axis2_status_t AXIS2_CALL
rp_transport_binding_increment_ref(
    rp_transport_binding_t * transport_binding,
    const axutil_env_t * env)
{
    AXIS2_ENV_CHECK(env, AXIS2_FAILURE);
    transport_binding->ref++;
    return AXIS2_SUCCESS;
}


<|start_filename|>xdocs/api/html/axutil__allocator_8h.html<|end_filename|>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html><head><meta http-equiv="Content-Type" content="text/html;charset=UTF-8">
<title>Axis2/C: axutil_allocator.h File Reference</title>
<link href="doxygen.css" rel="stylesheet" type="text/css">
<link href="tabs.css" rel="stylesheet" type="text/css">
</head><body>
<!-- Generated by Doxygen 1.5.3 -->
<div class="tabs">
  <ul>
    <li><a href="index.html"><span>Main&nbsp;Page</span></a></li>
    <li><a href="modules.html"><span>Modules</span></a></li>
    <li><a href="annotated.html"><span>Classes</span></a></li>
    <li class="current"><a href="files.html"><span>Files</span></a></li>
    <li><a href="dirs.html"><span>Directories</span></a></li>
    <li><a href="pages.html"><span>Related&nbsp;Pages</span></a></li>
    <li><a href="examples.html"><span>Examples</span></a></li>
    <li>
      <form action="search.php" method="get">
        <table cellspacing="0" cellpadding="0" border="0">
          <tr>
            <td><label>&nbsp;<u>S</u>earch&nbsp;for&nbsp;</label></td>
            <td><input type="text" name="query" value="" size="20" accesskey="s"/></td>
          </tr>
        </table>
      </form>
    </li>
  </ul>
</div>
<div class="nav">
<a class="el" href="dir_f60961de8e5edc3b2658ef023e959e45.html">deploy</a>&nbsp;&raquo&nbsp;<a class="el" href="dir_6b4e91e54b7316b376882a6402adbf44.html">include</a>&nbsp;&raquo&nbsp;<a class="el" href="dir_df3a7695d5a9e696f30b948b566829e7.html">axis2-1.6.0</a></div>
<h1>axutil_allocator.h File Reference</h1>Axis2 memory allocator interface. <a href="#_details">More...</a>
<p>
<code>#include &lt;axutil_utils_defines.h&gt;</code><br>
<code>#include &lt;stdlib.h&gt;</code><br>

<p>
<a href="axutil__allocator_8h-source.html">Go to the source code of this file.</a><table border="0" cellpadding="0" cellspacing="0">
<tr><td></td></tr>
<tr><td colspan="2"><br><h2>Classes</h2></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top">struct &nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="structaxutil__allocator.html">axutil_allocator</a></td></tr>

<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Axis2 memory allocator.  <a href="structaxutil__allocator.html#_details">More...</a><br></td></tr>
<tr><td colspan="2"><br><h2>Defines</h2></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="g75454cdc276a059934e8e4872e3d251c"></a><!-- doxytag: member="axutil_allocator.h::AXIS2_MALLOC" ref="g75454cdc276a059934e8e4872e3d251c" args="(allocator, size)" -->
#define&nbsp;</td><td class="memItemRight" valign="bottom"><b>AXIS2_MALLOC</b>(allocator, size)&nbsp;&nbsp;&nbsp;((allocator)-&gt;malloc_fn(allocator, size))</td></tr>

<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="g9126622fd049275a6ac0d5d4641ea02d"></a><!-- doxytag: member="axutil_allocator.h::AXIS2_REALLOC" ref="g9126622fd049275a6ac0d5d4641ea02d" args="(allocator, ptr, size)" -->
#define&nbsp;</td><td class="memItemRight" valign="bottom"><b>AXIS2_REALLOC</b>(allocator, ptr, size)&nbsp;&nbsp;&nbsp;((allocator)-&gt;realloc(allocator, ptr, size))</td></tr>

<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="gbdd0a8a66ad0e49b2f99e07244ccaa2f"></a><!-- doxytag: member="axutil_allocator.h::AXIS2_FREE" ref="gbdd0a8a66ad0e49b2f99e07244ccaa2f" args="(allocator, ptr)" -->
#define&nbsp;</td><td class="memItemRight" valign="bottom"><b>AXIS2_FREE</b>(allocator, ptr)&nbsp;&nbsp;&nbsp;((allocator)-&gt;free_fn(allocator, ptr))</td></tr>

<tr><td colspan="2"><br><h2>Typedefs</h2></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top">typedef struct <br>
<a class="el" href="structaxutil__allocator.html">axutil_allocator</a>&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__axutil__allocator.html#g24403baa66b6208837ff50b46f8ba930">axutil_allocator_t</a></td></tr>

<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Axis2 memory allocator.  <a href="group__axutil__allocator.html#g24403baa66b6208837ff50b46f8ba930"></a><br></td></tr>
<tr><td colspan="2"><br><h2>Functions</h2></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top">AXIS2_EXTERN <br>
<a class="el" href="structaxutil__allocator.html">axutil_allocator_t</a> *&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__axutil__allocator.html#g102e762ca4def99ded7ef3f0244f2f88">axutil_allocator_init</a> (<a class="el" href="structaxutil__allocator.html">axutil_allocator_t</a> *allocator)</td></tr>

<tr><td class="memItemLeft" nowrap align="right" valign="top">AXIS2_EXTERN void&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__axutil__allocator.html#g5e629bf41638a6df23793dbefb542f5b">axutil_allocator_free</a> (<a class="el" href="structaxutil__allocator.html">axutil_allocator_t</a> *allocator)</td></tr>

<tr><td class="memItemLeft" nowrap align="right" valign="top">AXIS2_EXTERN void&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__axutil__allocator.html#g7c4b9b9277c33abdfbd7f5838c1482da">axutil_allocator_switch_to_global_pool</a> (<a class="el" href="structaxutil__allocator.html">axutil_allocator_t</a> *allocator)</td></tr>

<tr><td class="memItemLeft" nowrap align="right" valign="top">AXIS2_EXTERN void&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__axutil__allocator.html#g84fcfb6c00bfaf95d676a8cc98c2ac33">axutil_allocator_switch_to_local_pool</a> (<a class="el" href="structaxutil__allocator.html">axutil_allocator_t</a> *allocator)</td></tr>

</table>
<hr><a name="_details"></a><h2>Detailed Description</h2>
Axis2 memory allocator interface. 
<p>
<hr size="1"><address style="text-align: right;"><small>Generated on Fri Apr 17 11:49:43 2009 for Axis2/C by&nbsp;
<a href="http://www.doxygen.org/index.html">
<img src="doxygen.png" alt="doxygen" align="middle" border="0"></a> 1.5.3 </small></address>
</body>
</html>


<|start_filename|>src/core/transport/amqp/receiver/qpid_receiver/axis2_qpid_receiver.cpp<|end_filename|>
/*
 * 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
 *
 *      tcp://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.
 */

#include <qpid/client/Connection.h>
#include <qpid/client/Session.h>
#include <qpid/client/SubscriptionManager.h>
#include <axis2_amqp_request_processor.h>
#include <axis2_amqp_defines.h>
#include <axis2_amqp_util.h>
#include <axis2_qpid_receiver_listener.h>
#include <axis2_qpid_receiver.h>
#include <list>

Axis2QpidReceiver::Axis2QpidReceiver(const axutil_env_t* env,
									 axis2_conf_ctx_t* conf_ctx)
{
	this->env = env;
	this->conf_ctx = conf_ctx;
}


Axis2QpidReceiver::~Axis2QpidReceiver(void)
{}


bool Axis2QpidReceiver::start(void)
{
	if (!conf_ctx)
		return false;
	
	Connection connection;
	axis2_bool_t serverSide = AXIS2_TRUE;
	
	serverSide = axis2_amqp_util_conf_ctx_get_server_side(conf_ctx, env);

	while (true)
	{
		try
		{
			std::list<string> queueNameList;
			string qpidBrokerIP = axis2_amqp_util_conf_ctx_get_qpid_broker_ip(
									conf_ctx, env);
			int qpidBrokerPort = axis2_amqp_util_conf_ctx_get_qpid_broker_port(
									conf_ctx, env);
			
			/* Check if Client Side and Resolve Dynamic Queue Name */
			if (serverSide == AXIS2_TRUE) /* Server side */
			{
				std::cout << "Connecting to Qpid Broker on " << qpidBrokerIP 
						  << ":" << qpidBrokerPort << " ... ";
			}

			/* Create Connection to Qpid Broker */
			connection.open(qpidBrokerIP, qpidBrokerPort);
			
			if (serverSide == AXIS2_TRUE) /* Server side */
			{
				/* Create queue for each service. Queue name is equal to service name */
				axis2_conf_t* conf = axis2_conf_ctx_get_conf(conf_ctx, env);
				if (!conf)
					return false;
				
				axutil_hash_t* serviceMap = axis2_conf_get_all_svcs(conf, env);
				if (!serviceMap)
					return false;
					
				axutil_hash_index_t* serviceHI = NULL;
				void* serviceValue = NULL;
				
				for (serviceHI = axutil_hash_first(serviceMap, env);
					 serviceHI; serviceHI = axutil_hash_next(env, serviceHI))
				{
					axutil_hash_this(serviceHI, NULL, NULL, &serviceValue);
					
					axis2_svc_t* service = (axis2_svc_t*)serviceValue;
					if (!service)
						return false;
					
					axis2_char_t* serviceName = axutil_qname_get_localpart(
							axis2_svc_get_qname(service, env), env);
					if (!serviceName)
						return false;
					
					queueNameList.push_back(serviceName);
				}

				std::cout << "CONNECTED" << std::endl;
			}
			else /* Client side separate listener in dual-channel case */
			{
				string queueName = axis2_amqp_util_conf_ctx_get_dual_channel_queue_name(
									conf_ctx, env);

				queueNameList.push_back(queueName);
			}
			
			/* Create new session */
			Session session = connection.newSession();

			/* Create Subscription manager */
			SubscriptionManager subscriptionManager(session);
			
			Axis2QpidReceiverListener qpidReceiverListener(env, conf_ctx);

			/* Subscribe to queues */
			while (!queueNameList.empty())
			{
				string queueName = queueNameList.front();

				session.queueDeclare(arg::queue = queueName, arg::autoDelete = true);
				session.exchangeBind(arg::exchange = AXIS2_AMQP_EXCHANGE_DIRECT,
									 arg::queue = queueName,
									 arg::bindingKey = queueName);
				
				subscriptionManager.subscribe(qpidReceiverListener, queueName);

				queueNameList.pop_front();
			}
	
			/* Listen and Wait */
			if (serverSide == AXIS2_TRUE) /* Server side */
			{
				std::cout << "Started Axis2 AMQP Server ..." << std::endl;
			}
			
			subscriptionManager.run();

			return true;
		}
		catch (const std::exception& e)
		{
			connection.close();

			if (serverSide == AXIS2_TRUE) /* Server side */
			{
				std::cout << "FAILED" << std::endl;
			}

			sleep(5);
		}
	}

	connection.close();

	return false;
}


bool Axis2QpidReceiver::shutdown(void)
{
	return true;
}
